> home servers that will control your entertainment, > television, telephony, and your home automation system
My goodness. This strikes me as being a little out of touch. Most folks I know don't have a home automation system and they use whatever the phone company brings in for their phone lines, with maybe a little Skype. And that's a small maybe.
I think a more interesting battle is to secure and improve communications within and around the current stuff. So while I still have email accounts and mailing lists and such, I use indi to share pictures with my relatives. It's our one spam-free and ad-free comms mechanism...
....including "Operating Systems and Systems Programming" and "Machine Structures" are here. Hopefully these are a good listen.
I've also gotten through most of the Structure and Interpretation of Computer Programs lectures and although there's a lot of chalk-on-blackboard noises that you're not able to see, you can still pick up quite a bit of good info.
I think the trick here is for the developers to write lots of automated unit tests. This catches the vast majority of obvious bugs, and lets testers become more like "power users" or something. That is to say, rather than the testers writing bugs like "I did xyz and it crashed" they can write bugs like "it'd be great if this screen had a 'quick user lookup' field". The testers then begin to think of ways to improve and streamline the application, the end users get a better experience, and the developers have more fun because they're actually adding features rather than constantly fixing easy bugs.
Andy Glover has a good blog on testing and QA in general. He uses FitNesse and TestNG and various other Java testing tools so he's pretty up on all the latest junx.
The blurb on parallel constructs is well said. This has been said on Slashdot before, but with more and more computers getting multicore CPUs, it behooves us to figure out ways to get apps to use multiple threads of execution.
We can do this by multithreading in a single process, which the latest release of PMD does. This is kind of complicated, although using a good concurrency library certainly helps. Or we can separate concerns, like moving the user interface into a separate process like we do with indi. Either way, no sense in leaving CPU power on the table...
> While technically inclined individuals tend to want control, > Platt argues, most people just want something that works.
And after "most people" have used a program for a certain amount of time, they'll also want control. That's part of programming - figuring out a way to make an app immediately accessible while still allowing advanced users to do what they need to do.
For the app I work on, indi, it should be easy to create a secure channel, but maybe it's a little harder to customize your profile stylesheet. But that's OK because most people won't be aware of what their profile contains until after they've used indi for a while and have created a couple of channels. Then they'll want their family channel profile to look different than their "project team" profile.
And if that's the case, you might want to look at indi. You can send pictures/movies/documents/whatever over channels, but it's all encrypted and only you and the people in your group can descrypt it. Kind of like email without the spam and attachment size limits. But secure.
> For a company of our size, they package this as a VMWare image.
FWIW, there are also GForge VMWare appliances out there. I can see how it'd make a normal installation easier to troubleshoot, too, if you had a VMWare installation for comparison.
And of course, it's awesome that they both run on PostgreSQL, great stuff!
> You might need to hit yourself with the cluestick > a few times to remove the delusion that there is some advantage > in having all the glyphs take the same number of bits and/or that > there is any solution out there where the glyphs do all take the same number of bits.
Hm, doesn't UTF-32 do just that? Quite a bit of wasted space... but you can certainly index into it quickly.
> You might as well build native x86 code linked against > Windows libraries for all the portability you have.
That's a good point. Still, the VM does serve as an insulating layer against OS changes. But Microsoft is pretty good about not breaking backwards compatibility, so that's not a great advantage. Any idea if there's a C# to native compiler out there? Googling around, I came up with this thing.
The app I work on uses Ruby and Flash to be crossplatform; working out pretty well so far...
> Do what I do - download the books as ebooks from some illegal ebook site.
Fortunately, enough people feel this is wrong to keep book publishers in business, even for niche markets. Also, ebooks are still a pain. I'm not sure which is the more significant factor...
> I still get people asking me why they get an error along the > lines of "you must have the.NET Framework v2.0 or higher > installed" when they run them.
Yup, I hear you. Still, being able to use C# seems like it'd be worth the runtime hassles...
"I think that the Delphi community has shrunk past the point of sustainability, at least in the U.S. When I got my current position, maintenance of a group of legacy Delphi apps, I immediately went looking for the remnants of the old Delphi user group in the Dallas area. I was unable to find any of the members that still used Delphi at all."
Interestingly, the TIOBE index still has Delphi at a pretty high position. We get about 40-50 people for our local Ruby user's group meetings; I'm surprised to see it below Delphi...
Mongrel itself is pretty sweet
on
Mongrel Shortcuts
·
· Score: 4, Interesting
It's supplanted Apache+FastCGI as the preferred way of deploying Rails apps in a very short time and seems to be a much better solution all around. "gem install mongrel mongrel_cluster" sure beats the steps necessary to get FCGI running.
I wonder how many people have upgraded to Apache 2.2 in order to get mod_proxy_balancer to balance between Mongrel instances... that's why I did it for indi.
+1 on the "Zed says" notes
on
Mongrel Shortcuts
·
· Score: 2, Insightful
They are indeed one of the nicer parts of the book. One of them says, more or less, "if you're SSH'ing into your server more than once a week, you haven't automated things well enough." So true!
> home servers that will control your entertainment,
> television, telephony, and your home automation system
My goodness. This strikes me as being a little out of touch. Most folks I know don't have a home automation system and they use whatever the phone company brings in for their phone lines, with maybe a little Skype. And that's a small maybe.
I think a more interesting battle is to secure and improve communications within and around the current stuff. So while I still have email accounts and mailing lists and such, I use indi to share pictures with my relatives. It's our one spam-free and ad-free comms mechanism...
....including "Operating Systems and Systems Programming" and "Machine Structures" are here. Hopefully these are a good listen.
I've also gotten through most of the Structure and Interpretation of Computer Programs lectures and although there's a lot of chalk-on-blackboard noises that you're not able to see, you can still pick up quite a bit of good info.
Haskell is so 2006! OCaml is all the rage now!
I think the trick here is for the developers to write lots of automated unit tests. This catches the vast majority of obvious bugs, and lets testers become more like "power users" or something. That is to say, rather than the testers writing bugs like "I did xyz and it crashed" they can write bugs like "it'd be great if this screen had a 'quick user lookup' field". The testers then begin to think of ways to improve and streamline the application, the end users get a better experience, and the developers have more fun because they're actually adding features rather than constantly fixing easy bugs.
Andy Glover has a good blog on testing and QA in general. He uses FitNesse and TestNG and various other Java testing tools so he's pretty up on all the latest junx.
The blurb on parallel constructs is well said. This has been said on Slashdot before, but with more and more computers getting multicore CPUs, it behooves us to figure out ways to get apps to use multiple threads of execution.
We can do this by multithreading in a single process, which the latest release of PMD does. This is kind of complicated, although using a good concurrency library certainly helps. Or we can separate concerns, like moving the user interface into a separate process like we do with indi. Either way, no sense in leaving CPU power on the table...
And all this time you thought it was just if and switch statements!
Whenever someone claims that a program is semantically aware, be sure to reread Clay Shirky's article on the Semantic web.
> While technically inclined individuals tend to want control,
> Platt argues, most people just want something that works.
And after "most people" have used a program for a certain amount of time, they'll also want control. That's part of programming - figuring out a way to make an app immediately accessible while still allowing advanced users to do what they need to do.
For the app I work on, indi, it should be easy to create a secure channel, but maybe it's a little harder to customize your profile stylesheet. But that's OK because most people won't be aware of what their profile contains until after they've used indi for a while and have created a couple of channels. Then they'll want their family channel profile to look different than their "project team" profile.
> It would be nice if there was a nice open source COBOL IDE
A starting point might be this JavaCC grammar for COBOL.
> People should not be entering data that can be used against them
Or they should use a system that lets them display only the appropriate profile details for each group or person or whatever - like indi.
> 1. Maybe you don't *want* data to be portable.
And if that's the case, you might want to look at indi. You can send pictures/movies/documents/whatever over channels, but it's all encrypted and only you and the people in your group can descrypt it. Kind of like email without the spam and attachment size limits. But secure.
> For a company of our size, they package this as a VMWare image.
FWIW, there are also GForge VMWare appliances out there. I can see how it'd make a normal installation easier to troubleshoot, too, if you had a VMWare installation for comparison.
And of course, it's awesome that they both run on PostgreSQL, great stuff!
> Email will continue to be the corporate
> IT bedrock it's been for the last decade.
Unless people start using a spam-free alternative, like indi.
e.g., get indi. Sure cuts down on spam, and you can reliably transfer large files within a group of people.
Plus, it's probably the largest desktop out there that uses Flash for its primary user interface. w00t!
> You might need to hit yourself with the cluestick
> a few times to remove the delusion that there is some advantage
> in having all the glyphs take the same number of bits and/or that
> there is any solution out there where the glyphs do all take the same number of bits.
Hm, doesn't UTF-32 do just that? Quite a bit of wasted space... but you can certainly index into it quickly.
> You might as well build native x86 code linked against
> Windows libraries for all the portability you have.
That's a good point. Still, the VM does serve as an insulating layer against OS changes. But Microsoft is pretty good about not breaking backwards compatibility, so that's not a great advantage. Any idea if there's a C# to native compiler out there? Googling around, I came up with this thing.
The app I work on uses Ruby and Flash to be crossplatform; working out pretty well so far...
> Do what I do - download the books as ebooks from some illegal ebook site.
Fortunately, enough people feel this is wrong to keep book publishers in business, even for niche markets. Also, ebooks are still a pain. I'm not sure which is the more significant factor...
Right here, w00t!
> I still get people asking me why they get an error along the .NET Framework v2.0 or higher
> lines of "you must have the
> installed" when they run them.
Yup, I hear you. Still, being able to use C# seems like it'd be worth the runtime hassles...
> C# is not "native Windows app", it's .NET app.
.net runtime installed... I think it's a viable option. And you can always dip into unmanaged code if need be.
:) What library? MFC?
True. But most Windows boxes have the
> Ruby - what library gives you native windows UI
I'd probably try WxWindows and see how that worked out. If not, maybe QT; there seem to be pretty good Ruby bindings for that.
> C++ - of course
WxWindows or QT, probably. My few brushes with MFC have been unpleasant...
> BTW - if you'd need to develop a native Windows
> GUI distributable app what would you use?
C#, probably. C++ in a pinch. Or Ruby (via RubyScript2Exe) if at all possible!
Yeah, true... OK, I've passed it on to our guy.
It's supplanted Apache+FastCGI as the preferred way of deploying Rails apps in a very short time and seems to be a much better solution all around. "gem install mongrel mongrel_cluster" sure beats the steps necessary to get FCGI running.
I wonder how many people have upgraded to Apache 2.2 in order to get mod_proxy_balancer to balance between Mongrel instances... that's why I did it for indi.
They are indeed one of the nicer parts of the book. One of them says, more or less, "if you're SSH'ing into your server more than once a week, you haven't automated things well enough." So true!
> So, we run a full vacuum and reindex
> of our tables nightly through cron.
I've found that just enabling autovacuum seems to keep things in order. And you can tweak it for individual tables if you're so inclined.