switch to room list switch to menu My folders
Go to page: First ... 18 19 20 21 [22] 23 24 25 26 ... Last
[#] Sat Apr 09 2016 16:13:14 EDT from IGnatius T Foobar

[Reply] [ReplyQuoted] [Headers] [Print]

I just figured something out, while sitting in my car hacking on Citadel code (waiting for my daughter's dance class to finish ... 2 hours at the computer is more productive than wasting :50 driving home and back).

My skills in managed hosting are hurting my skills in software development.

Today I finally started ripping apart a couple of small, outdated subsystems that need to be modernized. I've been skirting around them for months because I couldn't figure out a clean way to start working on them. I didn't really want to badly break the build, even on my own development machine.

Eventuallly I remembered the old adage "If you want to make an omelette, you've got to break some eggs."

And I realized that it has a lot to do with my career in managed hosting.
We run large scale data centers, and uptime is *everything*. Even a minute or two of downtime causes people to get hostile. So everything we do is carefully planned. Maintenance is like replacing the engine of an airplane while it's in flight.

I've got to get myself out of the habit of thinking of uptime when I'm working on a development system. It's ok to break the build on my own machine. It's ok if the code stops working for a few days. Nobody is running it in production.

I have a lot of brain damage. And this particular bit I probably can't blame on my parents.

[#] Tue Apr 12 2016 00:06:25 EDT from ax25

[Reply] [ReplyQuoted] [Headers] [Print]

I hear you IG.  I work at a small hosting company and have the luxury of thinking out the "chess moves" of what I plan to do.  I also have the luxury of performing some of the acrobatics involved overnight.  The thing is, eventually, the  businesses grows to  a point where you are to a point where you are still in a hole in the ground and trying to pile up dirt to stay alive.

[#] Wed Apr 13 2016 14:08:33 EDT from fleeb

[Reply] [ReplyQuoted] [Headers] [Print]


Some of my co-workers have a fear of 'breaking the build'. Understandable, but anything involving fixing setup involves breaking the build, since you have no other way to get the setup built.

Of course, there's also the whole 'branch, break the world in the branch, once you have it all working, merge again' sort of method.

[#] Thu Apr 14 2016 16:48:17 EDT from dothebart

[Reply] [ReplyQuoted] [Headers] [Print]

maybe you should use the time of habit changing to start writing some tests? maybe using ctdlsh to test if its the same again after you modified everything? ;-)

[#] Mon Apr 18 2016 04:40:49 EDT from dothebart

[Reply] [ReplyQuoted] [Headers] [Print]

I whish I have had this while debugging the eventloop stuff in citadel:

it records a session of a program with all io it does, and lets you replay it again and again in gdb.

No need for feeding in the external data again. Its storing and replaying all i/o state for you.

[#] Sat Apr 23 2016 08:29:31 EDT from fleeb

[Reply] [ReplyQuoted] [Headers] [Print]

Man, that's what I need to get the guys to do... fix the damn testing harnesses so they're actually testing code in the builds.

[#] Fri May 13 2016 00:30:43 EDT from LoanShark

[Reply] [ReplyQuoted] [Headers] [Print]

Interesting. Can you run the same binary with recompiled code later, for test cases.

That could help unit testing, but would of course be brittle. You need the ability to edit the I/O data to suit changes in the code. Tricky. ;-)

[#] Fri May 13 2016 00:35:36 EDT from LoanShark

[Reply] [ReplyQuoted] [Headers] [Print]

If it's not clear over my pithy phrasing, I think this is problematic. A compiled binary is a whole program, and therefore (in any non-academic, reasonably large, industrial system) too large for unit testing tricks. Kernel-level I/O capture solutions will be too broad to be of use, if they are from production. Even in an encapsulated test environment, this can be too high-level to be of use.

[#] Mon May 16 2016 08:57:43 EDT from IGnatius T Foobar

[Reply] [ReplyQuoted] [Headers] [Print]

"I don't always test my code ... but when I do, I test it in production."

[#] Mon May 16 2016 10:39:14 EDT from zooer

[Reply] [ReplyQuoted] [Headers] [Print]

You are formally a TV guy.... "Real men don't preview their edits."

[#] Wed May 25 2016 09:04:28 EDT from IGnatius T Foobar

[Reply] [ReplyQuoted] [Headers] [Print]

Well ... with non linear editing you can undo edits, so yeah :)

Back in the day ... only weenies did assembly and insert editing. Real men spliced videotape!

[#] Mon Jun 06 2016 16:37:07 EDT from IGnatius T Foobar

[Reply] [ReplyQuoted] [Headers] [Print]

So, how about those fun useful macros, __FILE__ and __LINE__ ?

Are they still only available in GCC? Or does the rest of the civilized world have them now?

[#] Tue Jun 07 2016 01:21:04 EDT from ax25

[Reply] [ReplyQuoted] [Headers] [Print]

Just check for __STDC_VERSION__

1 = Good to go.

[#] Tue Jun 07 2016 10:57:43 EDT from IGnatius T Foobar

[Reply] [ReplyQuoted] [Headers] [Print]

That's good to know ... although at the time I was posting that I was trying to figure out a way to generate a variable name inside a macro that would be unique each time the macro is called, so using #ifdef to provide optional functionality isn't an option.  I ended up compromising, though, and writing a function instead of a macro.

My current attitude, though, is to leave behind anyone who isn't reasonably modern.  At the moment I'm working in an autoconf-free environment and finding the air is fresh, the sky is sunny, and the birds are chirping merrily.  I no longer have any interest in supporting HP/UX from 1994, and I am losing interest in the idea of trying to keep the build going with reduced functionality if optional dependencies are not found.  In short, using autoconf makes the build ridiculously complicated, hard to maintain, and bloats the code with #ifdef's that don't really benefit a lot of people.

I want to spend time writing code, not build systems  :)

[#] Wed Jun 08 2016 00:45:40 EDT from ax25

[Reply] [ReplyQuoted] [Headers] [Print]

I hear ya.  Onward and upward.  Only entangle and make automated that which becomes mind numbing drudgery if not automated.  Better to write a README I say.  The packagers can figure out a way to make it "user friendly".

[#] Tue Jun 21 2016 17:18:28 EDT from Sig

[Reply] [ReplyQuoted] [Headers] [Print]

We installed the RaspberryJuice plugin on our Minecraft server that allows a regular (not Pi-edition) Minecraft server to respond to the Python commands written for that version. This lets my kids write little programs that modify and interact with the Minecraft world in various amusing ways, and my 8yo son has been working his way through a book on this topic.

One of the things you can do is spoof messages from another user in the chat.
So my 5yo son spoofed a message from "God" telling my older boy to build a giant wooden boat. I just happened to have remoted into the server console from work when this happened, and I saw the message come across the line. I immediately typed a message from the server: "A boat would be a really good idea." And then I changed the weather to rain and thunder.

My wife reported (via chat) that the kids were having a really amazing reaction to the server suddenly talking back to them and interacting. They didn't know it could do that.

[#] Sat Jun 25 2016 00:54:58 EDT from ax25

[Reply] [ReplyQuoted] [Headers] [Print]

Nice Sig.  My son has a Pi and when I showed him the cool stuff you could do with Mincraft on it and some simple Python, he said - 'meh'.

If I had that back in the day, I would have had quite the kick butt 3d graphing calculator (at a minimum).

[#] Wed Jul 13 2016 07:09:36 EDT from fleeb

[Reply] [ReplyQuoted] [Headers] [Print]

I'm pretty sure Visual C++ has the __FILE__ and __LINE__ macros, although I haven't tried them.

But then, if the resumes we are getting in response to the vacant position we've had for months now is any indication, nobody actually programs in C/C++ anymore, and everything only happens in the web anymore.

(Which, if anyone is interested in working remotely, maybe send a resume... intermediate to senior systems engineer on old-to-modern flavors of linux to help create software for an automated classroom).

[#] Fri Jul 15 2016 14:15:19 EDT from fleeb

[Reply] [ReplyQuoted] [Headers] [Print]


"Don't use the 'auto' keyword," I said.

"We have to support compilers that were written 10 years ago, and that keyword is c++11."

So my co-worker used it.

And it broke the build today, now that we're having to support a machine that used gcc 4.3.

Worse yet, the person who did this had absolutely no reason to do so short of being fucking lazy.

[#] Thu Jul 21 2016 23:03:04 EDT from IGnatius T Foobar

[Reply] [ReplyQuoted] [Headers] [Print]

JavaScript anyone?

"Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience."

WTF? What if I *need* that data in order to determine how to complete the rest of the page?

Go to page: First ... 18 19 20 21 [22] 23 24 25 26 ... Last