Unfortunately the drive I need to restore is 300GB of pure, unbacked up, data. I'm looking into tapping a cooling system onto the sucker to keep it cool long enough to copy off all that damn data.
Someday maybe they'll invent a decent, affordable, backup solution for people that have TB's of files. For now my future money is all going for a decent RAID setup. TeraStation's are pretty cool.
I like CherryPy because it is very lightweight and doesn't rely on an external webserver. It's especially well suited to tasks such as web-based system managers. Afterall, it really sucks to enter changes into your web-based web server configuration manager only to find out that your changes broke the web server so you can no longer configure said web server. I converted my existing mod_python scripts to CherryPy and have so far had very good luck with it.
Python is a much better language for writing complex programs in than PHP, Perl, or things like ColdFusion and it's less resource intensive than Java which is good for the kinds of lightweight tasks web-based apps usually do. Very good reasons to give Python a try for your development.
All pages should work with any browser but there is no reason not to create an advanced version for browsers that can support it. Right now Firefox is far and away the most advanced and most standards compliant browser around but Safari is looking as if it could give it a good challenge. Since they are both choosing to cooperate on a standards level the competition is healthy unlike the IE/Netscape war. Why should we limit websites to doing only what IE supports? You may as well avoid using tables, images, etc since some browsers do't support those.
HTML was always a crappy standard. It's time to begin looking for a better standard. We need some sort of standard for tagging XML data to be accessible by screen readers, text-based browsers, etc and then we can just make all our data XML and provide rich interfaces in XUL or some other XML/DOM/client-side scripting style of interface.
I don't know about other developers but I'm seriously beginning to stop supporting IE for anything but a basic HTML interface. All the advanced interface features are designed for Firefox. I have no problem with putting a 'Designed for Firefox.' button on my sites and leaving IE users out of the really cool stuff if IE can't keep up.
I'm seriously playing with some sites that combine AJAX, XUL, and Java into a single powerful user-interface. IE will get the same interface that Lynx users get.
I cheat. I use a Java (Jython actually) applet that acts as a client as long as my users are connected anywhere on my website. I was pouring out 150GB+ a day in bandwidth from my server so switching to distributed downloads was sort of essential for my budget.
Maybe students would learn more if we had well paid teachers who actually knew their subject and were good teachers? My biggest hurdle in school was that teachers didn't know the answers to my questions and neither the teachers or the textbooks were good at passing on knowledge to students. This was especially true in science and math classes.
Luckily I was a geek so I figured things out for myself and read every book I could get my hands on.:)
No doubt. Still there are many times when minor features just go unincluded for long periods of time. An example being.. GMail still doesn't have a way to change how long trash is kept before deleting it. This should be a minor feature to add and an obvious feature but it still isn't there. I've asked for it as I'm sure others have.
Or why can't we Translate and Search on Google? They have a translate tool but if you want to search for your search string in those languages you have to manually translate and search for each of the languages. Again that option seems obvious to me but they still seem to lack it or have it well hidden.
I've asked several times for searching by file hash MD5 or SHA, which would be great for finding ISO images of your choice distro, stolen copies of the pics off your website, etc, but they haven't included it to my knowledge.
Most software features don't involve much of a change in staffing. Yet progress in these giants is still slow.
GMaps on the other hand was quick to add a hybrid view that I, as I'm sure many others did, suggested. Having that extra feature makes GMaps much more usable so it's great that they responded to user feedback.
I've thought of making a bot trained to find site's with google ads on them and just start 'clicking' them until the sites get kicked off their income source. Lets see how many websites we can screw over in 24 hours.:p
I always wonder why it takes Google, Yahoo, etc so long to work out the bugs and add features that are requested. They have lots of programmers and yet they take longer to develop these things than I alone do even if I code to huge-ass-load enterprise quality standards. What's up with that?
They cut me off too just a couple weeks into trying their program. I didn't even get to launch on all my sites before they cut me off. I don't really care for their no explanation and no appeal process.
It seems AdSense killed off most of the other decent Pay Per Click programs too which left me with mostly the option of Per Signup porn ads which pays nothing.:p
AdSense ads greatly slowed down my load time too which didn't please me. I hope Yahoo does a better job. The slowness of Google's ads would have made me remove them from several of my sites anyway as some of them are designed to load quickly.
For one rare moment I agree with Joel on this. One good engineer is irreplacable by any number of okay engineers. Lesser engineers are fine for doing the bits of the process that are little more than testing and data entry but they lack inspiration and insight into how things work.
Simply knowing how to code doesn't make you a programmer. I come up with elegant solutions others usually would never come close to. I rather like having some of those programmers available to write the boring crap but I still have to tell them how to do their work and review it to make sure they did it. They are cogs and the real programmers are the engines.
It ends in the difference between a product that, if you're lucky, just works and one that Just Works(tm).
Real geeks are to caught up with taking technology further to worry about the petty fights of mortals. There is no law other than what you can make happen and what you can't make happen. Let the rest of society, the stupid people, worry about the consequences and legalities.:)
It'd be nice if Firefox, Safari, and Opera got together and would actually agree on a standard (and implement it!) for attaching fonts to web pages that isn't complex or weird. I suggest just making it work with the html link tag.
Then you could use nicer fonts without having to use images. That mixed with CSS could fix a lot of the existing problems with website design.
Exactly. It is something of a mess to parse. Try doing it from Javascript and see. navigator.product shows it as being Gecko. Really screws stuff up if you're using such a test to decide to offer a HTML interface or a XUL interface. As far as I can tell Safari doesn't support XUL.
I wouldn't use PHP for millions of lines of code but I hardly think Java is that great either. In general it is way to verbose a language which makes it only slightly better than languages with poor namespace support such as PHP. Java is good for certain types of problems that require fast processing but aren't very sensitive to load time or memory usage. In some of those tasks it can process almost as fast as native C compiled apps.
Almost any programming language can be used for scalable apps if that's all you need. The real pain is in writing maintainable apps. 1,000,000 lines of Perl for instance would make me commit suicide whereas 1,000,000 lines of Java is more managable. Still the same 1,000,000 lines of Java could be reduced to 500,000 lines of Python or Ruby and still be as easy to manage. Python or Ruby load faster and use less resources but usually (without special effort) can't run code quite as fast as Java.
The major problem with PHP is poor namespace support.
IMO performance is a moot point because almost any language will give you reasonable performance on todays hardware and a well written app can easily be divided across multiple machines.
Using compiled languages seems quaint IMO. Like gee you have to compile it before you can see if your minor change fixed it or broke it wide open? How lame is that.
Pick the best tool for your specific job and things will be fine. Don't pick tools based on what magazines tell you is what REAL companies would use.
It makes no difference. Not that I'm crazy about PHP either.
Perl is still a bad language for large apps. Perl encourages dense coding and more than one way to do a job which is bad for maintainability. It's not that you can't code Perl well.. it's just that it makes it really easy not to. I've been using Perl for years and I still hate any big project that requires me to switch back to it.
My experience is that most programmers don't really know what they are doing. If you give them enough rope they'll hang themselves and effectively leave others a minefield to wade through to fix every damn little bug.
Perl is great for small scripts that just need to make some quick use of one or two CPAN modules or do something with strings. It's the perfect tool for those kinds of jobs. You'd be insane to write a 10,000 line program in it though.
Of course I wouldn't write a 10,000+ line program in PHP either.:) I'd probably suggest looking into something more structured for big complex projects. I like Python but Ruby or Java would also be okay.
It depends what you are doing. If you're implementing a very OO sort of system where you want persistant objects over a long period of time then using MOO could work very well for you. Of course you'd want to get rid of the majority of the default DB but besides that there is nothing at all wrong in using MOO for other web projects. It's stable, easy to work in, works well for large complex problems, and has more than a decade of running online systems under heavy load. Before there were such things as ASP, PHP, CF, and Java there were MOO backends powering websites.
I've found that since XML-RPC is usually transported over HTTP it's easy to use a normal proxy server such as Squid as a cache layer. Just use normal HTTP headers to let the proxy know how to cache the information. Really simple since web programmers should be familiar with HTTP caching already anyway.
Safari does something similar to that and it annoys me greatly because it makes it really hard to test what browser is being used. Last time I checked Safari was identifying itself as Gecko.:p
I agree that PHP is great for what it was really designed for.. templating and light web scripting. It gets painful only when you try to implement a lot of app logic in it and a lot of that is just because PHP programmers tend not to have any sepperation between their frontend logic, app logic, and db logic which is something of a nightmare for big programs.
I like XML-RPC. It's simple enough to implement and gets the job done just fine. Each implementation still has it's little quirks but I've not had any problem adjusting to them.
Really your choice of languages isn't that important so much as how you choose your language. Something with good namespaces and object support for the app logic and something easy to use and modify with good string handling for the frontend. As long as they all speak XML-RPC you can mix and match for whatever works best for your individual tasks. It might be fun to implement some sort of knowledge base in something like Prolog and expose it as XML-RPC. A heavy duty portion of your app logic might be done best in Java. Lighter app logic can be done well in Python or Ruby. You could use Perl for an interface that does a lot of string parsing such as exposing a credit processing interface as XML-RPC. And of course you can provide interfaces as PHP or even as Javascript if you wanted a more dynamic (AJAX) interface.
Hell yeah. I'm available for any decent job offers!;)
Seriously though.. I've been using and programming on the Net for more than twelve years and have came up with most of the same concepts that these 'A engineers' are famous for (before them.. or at least before hearing of them) so I'm not actually that much less of a brain than those superstars so much as I'm just not as lucky or just don't care so much about turning my ideas into my own businesses.
I expect there are a lot of people out there like me (many on Slashdot) and we're available for hire for anyone intelligent enough to find us and hire us and then allow us to do our own thing. I crank out far more interesting stuff in my spare time than I do at work.. if I had a job that was smart enough to let me work on my own projects and then figure out how to commercialize those projects then they could probably make a fortune. Having me produce a couple dozen non-commercial websites and various tools (programs, designs for consumer goods, etc) I either never publish or end up just sort of throwing out and forgetting about doesn't do anyone much good.
I like my current job but if they took better advantage of my skills we could all probably make a lot more money. Or someone else could hire me and do the same.
Google's real genius is their Bell Labs style of allowing employees time to work on their own projects and then taking those projects seriously. Keep those people working on the bread and butter part of the time but also let them loose to create innovations that could make your companies future brighter. Combined with good stock options (so engineers don't want to keep their best ideas to themselves) that is a sure way for a company to thrive.
Unfortunately the drive I need to restore is 300GB of pure, unbacked up, data. I'm looking into tapping a cooling system onto the sucker to keep it cool long enough to copy off all that damn data.
Someday maybe they'll invent a decent, affordable, backup solution for people that have TB's of files. For now my future money is all going for a decent RAID setup. TeraStation's are pretty cool.
I like CherryPy because it is very lightweight and doesn't rely on an external webserver. It's especially well suited to tasks such as web-based system managers. Afterall, it really sucks to enter changes into your web-based web server configuration manager only to find out that your changes broke the web server so you can no longer configure said web server. I converted my existing mod_python scripts to CherryPy and have so far had very good luck with it.
Python is a much better language for writing complex programs in than PHP, Perl, or things like ColdFusion and it's less resource intensive than Java which is good for the kinds of lightweight tasks web-based apps usually do. Very good reasons to give Python a try for your development.
All pages should work with any browser but there is no reason not to create an advanced version for browsers that can support it. Right now Firefox is far and away the most advanced and most standards compliant browser around but Safari is looking as if it could give it a good challenge. Since they are both choosing to cooperate on a standards level the competition is healthy unlike the IE/Netscape war. Why should we limit websites to doing only what IE supports? You may as well avoid using tables, images, etc since some browsers do't support those.
HTML was always a crappy standard. It's time to begin looking for a better standard. We need some sort of standard for tagging XML data to be accessible by screen readers, text-based browsers, etc and then we can just make all our data XML and provide rich interfaces in XUL or some other XML/DOM/client-side scripting style of interface.
I don't know about other developers but I'm seriously beginning to stop supporting IE for anything but a basic HTML interface. All the advanced interface features are designed for Firefox. I have no problem with putting a 'Designed for Firefox.' button on my sites and leaving IE users out of the really cool stuff if IE can't keep up.
I'm seriously playing with some sites that combine AJAX, XUL, and Java into a single powerful user-interface. IE will get the same interface that Lynx users get.
I cheat. I use a Java (Jython actually) applet that acts as a client as long as my users are connected anywhere on my website. I was pouring out 150GB+ a day in bandwidth from my server so switching to distributed downloads was sort of essential for my budget.
Actually I think my hs sci teacher had been some sort of nurse and had a BS in bio.. but wasn't good at anything else.
Maybe students would learn more if we had well paid teachers who actually knew their subject and were good teachers? My biggest hurdle in school was that teachers didn't know the answers to my questions and neither the teachers or the textbooks were good at passing on knowledge to students. This was especially true in science and math classes.
:)
Luckily I was a geek so I figured things out for myself and read every book I could get my hands on.
No doubt. Still there are many times when minor features just go unincluded for long periods of time. An example being.. GMail still doesn't have a way to change how long trash is kept before deleting it. This should be a minor feature to add and an obvious feature but it still isn't there. I've asked for it as I'm sure others have.
Or why can't we Translate and Search on Google? They have a translate tool but if you want to search for your search string in those languages you have to manually translate and search for each of the languages. Again that option seems obvious to me but they still seem to lack it or have it well hidden.
I've asked several times for searching by file hash MD5 or SHA, which would be great for finding ISO images of your choice distro, stolen copies of the pics off your website, etc, but they haven't included it to my knowledge.
Most software features don't involve much of a change in staffing. Yet progress in these giants is still slow.
GMaps on the other hand was quick to add a hybrid view that I, as I'm sure many others did, suggested. Having that extra feature makes GMaps much more usable so it's great that they responded to user feedback.
I've thought of making a bot trained to find site's with google ads on them and just start 'clicking' them until the sites get kicked off their income source. Lets see how many websites we can screw over in 24 hours. :p
I always wonder why it takes Google, Yahoo, etc so long to work out the bugs and add features that are requested. They have lots of programmers and yet they take longer to develop these things than I alone do even if I code to huge-ass-load enterprise quality standards. What's up with that?
They cut me off too just a couple weeks into trying their program. I didn't even get to launch on all my sites before they cut me off. I don't really care for their no explanation and no appeal process.
:p
It seems AdSense killed off most of the other decent Pay Per Click programs too which left me with mostly the option of Per Signup porn ads which pays nothing.
AdSense ads greatly slowed down my load time too which didn't please me. I hope Yahoo does a better job. The slowness of Google's ads would have made me remove them from several of my sites anyway as some of them are designed to load quickly.
For one rare moment I agree with Joel on this. One good engineer is irreplacable by any number of okay engineers. Lesser engineers are fine for doing the bits of the process that are little more than testing and data entry but they lack inspiration and insight into how things work.
Simply knowing how to code doesn't make you a programmer. I come up with elegant solutions others usually would never come close to. I rather like having some of those programmers available to write the boring crap but I still have to tell them how to do their work and review it to make sure they did it. They are cogs and the real programmers are the engines.
It ends in the difference between a product that, if you're lucky, just works and one that Just Works(tm).
Real geeks are to caught up with taking technology further to worry about the petty fights of mortals. There is no law other than what you can make happen and what you can't make happen. Let the rest of society, the stupid people, worry about the consequences and legalities. :)
It's no different than copyright issues of any other embedded objects.. images, flash, etc.
;)
And hey, so let people without broadband turn off the font download feature.
It'd be nice if Firefox, Safari, and Opera got together and would actually agree on a standard (and implement it!) for attaching fonts to web pages that isn't complex or weird. I suggest just making it work with the html link tag.
Then you could use nicer fonts without having to use images. That mixed with CSS could fix a lot of the existing problems with website design.
Exactly. It is something of a mess to parse. Try doing it from Javascript and see. navigator.product shows it as being Gecko. Really screws stuff up if you're using such a test to decide to offer a HTML interface or a XUL interface. As far as I can tell Safari doesn't support XUL.
I wouldn't use PHP for millions of lines of code but I hardly think Java is that great either. In general it is way to verbose a language which makes it only slightly better than languages with poor namespace support such as PHP. Java is good for certain types of problems that require fast processing but aren't very sensitive to load time or memory usage. In some of those tasks it can process almost as fast as native C compiled apps.
Almost any programming language can be used for scalable apps if that's all you need. The real pain is in writing maintainable apps. 1,000,000 lines of Perl for instance would make me commit suicide whereas 1,000,000 lines of Java is more managable. Still the same 1,000,000 lines of Java could be reduced to 500,000 lines of Python or Ruby and still be as easy to manage. Python or Ruby load faster and use less resources but usually (without special effort) can't run code quite as fast as Java.
The major problem with PHP is poor namespace support.
IMO performance is a moot point because almost any language will give you reasonable performance on todays hardware and a well written app can easily be divided across multiple machines.
Using compiled languages seems quaint IMO. Like gee you have to compile it before you can see if your minor change fixed it or broke it wide open? How lame is that.
Pick the best tool for your specific job and things will be fine. Don't pick tools based on what magazines tell you is what REAL companies would use.
Some of us have alreayd been laid several times and are taking a break.. thanks for asking.
It makes no difference. Not that I'm crazy about PHP either.
:) I'd probably suggest looking into something more structured for big complex projects. I like Python but Ruby or Java would also be okay.
Perl is still a bad language for large apps. Perl encourages dense coding and more than one way to do a job which is bad for maintainability. It's not that you can't code Perl well.. it's just that it makes it really easy not to. I've been using Perl for years and I still hate any big project that requires me to switch back to it.
My experience is that most programmers don't really know what they are doing. If you give them enough rope they'll hang themselves and effectively leave others a minefield to wade through to fix every damn little bug.
Perl is great for small scripts that just need to make some quick use of one or two CPAN modules or do something with strings. It's the perfect tool for those kinds of jobs. You'd be insane to write a 10,000 line program in it though.
Of course I wouldn't write a 10,000+ line program in PHP either.
It depends what you are doing. If you're implementing a very OO sort of system where you want persistant objects over a long period of time then using MOO could work very well for you. Of course you'd want to get rid of the majority of the default DB but besides that there is nothing at all wrong in using MOO for other web projects. It's stable, easy to work in, works well for large complex problems, and has more than a decade of running online systems under heavy load. Before there were such things as ASP, PHP, CF, and Java there were MOO backends powering websites.
:)
Ooooh those were the days!
I've found that since XML-RPC is usually transported over HTTP it's easy to use a normal proxy server such as Squid as a cache layer. Just use normal HTTP headers to let the proxy know how to cache the information. Really simple since web programmers should be familiar with HTTP caching already anyway.
Safari does something similar to that and it annoys me greatly because it makes it really hard to test what browser is being used. Last time I checked Safari was identifying itself as Gecko. :p
I agree that PHP is great for what it was really designed for.. templating and light web scripting. It gets painful only when you try to implement a lot of app logic in it and a lot of that is just because PHP programmers tend not to have any sepperation between their frontend logic, app logic, and db logic which is something of a nightmare for big programs.
I like XML-RPC. It's simple enough to implement and gets the job done just fine. Each implementation still has it's little quirks but I've not had any problem adjusting to them.
Really your choice of languages isn't that important so much as how you choose your language. Something with good namespaces and object support for the app logic and something easy to use and modify with good string handling for the frontend. As long as they all speak XML-RPC you can mix and match for whatever works best for your individual tasks. It might be fun to implement some sort of knowledge base in something like Prolog and expose it as XML-RPC. A heavy duty portion of your app logic might be done best in Java. Lighter app logic can be done well in Python or Ruby. You could use Perl for an interface that does a lot of string parsing such as exposing a credit processing interface as XML-RPC. And of course you can provide interfaces as PHP or even as Javascript if you wanted a more dynamic (AJAX) interface.
Hell yeah. I'm available for any decent job offers! ;)
Seriously though.. I've been using and programming on the Net for more than twelve years and have came up with most of the same concepts that these 'A engineers' are famous for (before them.. or at least before hearing of them) so I'm not actually that much less of a brain than those superstars so much as I'm just not as lucky or just don't care so much about turning my ideas into my own businesses.
I expect there are a lot of people out there like me (many on Slashdot) and we're available for hire for anyone intelligent enough to find us and hire us and then allow us to do our own thing. I crank out far more interesting stuff in my spare time than I do at work.. if I had a job that was smart enough to let me work on my own projects and then figure out how to commercialize those projects then they could probably make a fortune. Having me produce a couple dozen non-commercial websites and various tools (programs, designs for consumer goods, etc) I either never publish or end up just sort of throwing out and forgetting about doesn't do anyone much good.
I like my current job but if they took better advantage of my skills we could all probably make a lot more money. Or someone else could hire me and do the same.
Google's real genius is their Bell Labs style of allowing employees time to work on their own projects and then taking those projects seriously. Keep those people working on the bread and butter part of the time but also let them loose to create innovations that could make your companies future brighter. Combined with good stock options (so engineers don't want to keep their best ideas to themselves) that is a sure way for a company to thrive.