I'd be impressed if Microsoft responded with a usable interface for any of their products. Yeh, Office has a brilliant interface. Makes me want to kill myself. I think Yahoo must be out of their mind if they're copying Outlook. That's a horrible mail program.
Google has the right idea. Streamline and make the UI more responsive. Ease of use over feature bloat.
The number one GMail feature for me was the free pop access. I used to use Yahoo for that and then they started wanting to charge for it. I haven't looked to see if they've made it free again..
If only GMail would let you delete messages read by pop instead of just trashing them. Trash uses quota which quickly, for some of us, limits how much mail we can move through GMail.
I'm cheating and developed a program that reads my incoming mail for attachments, collects the attachments, inserts web links to the attachements, and passes the rest through to my usual mail program (still leaving me with over a gig of mail a day). After seeing how popular the trial version I offered was I'm rewriting the whole thing to handle bandwidth usage better. I can't believe Yahoo and Google are to dense to care about this market. Yahoo and Google Groups are both crap and that is what generates the majority of this traffic.
I get more than a gig of email a day not even counting the couple gigs I get of pics, video, etc (pr0n) a day. I use a gmail account up in about a day and due to their poor design of trash it's a significant pain trying to pipe all that through their service. Luckily I have my own servers so it's not a problem for me.;)
That sounds exceptional. I bet it saves your company a lot of money over time. Are they making any special effort to document the change in expenses over time?
I've worked at half a dozen different companies in the web development department and none of them have done anything near that. I've worked with Perl, Python, PHP, ColdFusion, JSP, and ASP so I don't think it's just a certain group that has this weakness either. If I ever move to the Dallas area I'll have to apply with you guys as you sound like people who know what they're doing.;)
Using C for web apps seems a really bad idea to me. It might make sense for a small portion of an app but it's such a security risk and such a pain to make changes to that I can't see why anyone would do it. I hope you're getting a nice license fee from Expedia.
I was thinking that programmers should get tips like other service workers based on how pleasing their work and service is. If your company can license out your code to others then they should give everyone on your team a bonus.:)
Over the Internet? You can ue web technology without running your code over unsecured portions of the Internet. Secure services should run deep inside your network on your most secure machines. There is some risk that reusing such code could create a single point of failure but that isn't much since someone that's penetrated your network to the most secure depth is likely to already have the run of the rest of the network.
Handling application users and permissions should not be done by the OS. There are many times when apps need to share users across multiple systems including systems of different types. Also there are many times when you don't want all application users to have user accounts of the systems running the apps. Would Slashdot want to give Unix accounts to every Slashdot user on the Slashdot servers? Hardly a good idea. Rules are rules are they are just as easy to abstract across applications as they are to apply to apps in general. To the apps it shouldn't matter.
You're approach is really why web apps are so buggy and insecure. It's not about how long it takes to write the code - it's about writing good code that is maintainable. I've yet to see code that 'never needs to be touched' in the real world either. Eventually everything needs new features or bug fixes. Perfect code is incredibly rare especially when written by inexperienced junior programmers in twenty minutes.
Try doing any work in companies that develop web apps. They usually write horrible code. Most developers for such companies either have no structured software development experience or they seem to totally ignore their experience and write quick and dirty crap software. To some extent that makes sense but only for one off development of little complexity. Yes, many of these companies don't even use functions let alone objects or higher abstractions. If you think that makes life easier then you haven't tried it.
Most such companies don't do meetings and rarely have teams. It tends to be a lot of lone gonemen sitting in their own dark corners pounding out their own terrible code with no communication with anyone else.
Functions, objects, and even services are nothing new. They've all been around for decades. I hardly think they qualify as the flavor of the month buzzword technology although certain companies may be pushing their own variant (which is seldom needed). They are well know abstractions that have well known usage methodology and are taught in most decent computer science programs.
Black-ops refactoring goes on but eventually you hit a point where it takes you extra time to fix problems which makes you look bad so you just have to throw in the towel and do your work just as bad as everyone else if you want to keep your job. Most employers I had didn't even understand that new functionality, better interfaces, etc really mattered let alone things like documentation and support for disabled users.
Maybe the golden rule should be to just avoid working with small development companies? Do larger companies write better code? I've always thought small companies would make more of an effort to get things right but my evidence doesn't agree with that expectation.
Objects can make more complex problems easier than functions alone can do.
I've seen plenty of poorly designed objects too but that doesn't mean objects are a bad idea. I've seen horribly written software in general but I still think software is a good idea.:)
I'll assume that by web service you're refering to web-tech based components and not user apps like GMail. There are plenty of good reasons to use thse. If you're writing a complex program or set of programs that need to reuse functionality then they can be a good idea. You can reuse functionality without reinventing the wheel or sharing code (for security reasons, simplification, etc). Something as simple as handling users and permissions is a good thing to build into a service. There is no reason for every app to have it's own users and permission levels for those permissions. Why not abstract them into a service that all your apps use? Having this abstracted simplifies your logic both in the service and in the app, lets you more closely audit this important code for security flaws, and makes management of users easier.
I agree totally. Using standard protocols is the pay to go and when picking the standard to use it's often best to pick the ones that are easiest to work with. CORBA is great but HTTP and XML have far more support and thus will be easier for other's to work with. When you have a choice pick what is well supported and lightweight. If you need the extra functionality of something such as CORBA then use it. This is why I suggest picking RDF over XML-RPC, XML-RPC over SOAP, SOAP over CORBA, etc. Always use as little complexity as is needed but no less than is needed.
I personally like using XML-RPC to decouple components because it is easy to work with and easy to use from any programming language. Different languages can make different problems vastly easier or harder to approach so being able to pick the best tool for each job can be a real time saver. Something that is easy in PHP might be hard in C. Something that is easy in Prolog might be hard in PHP. Something easy in SQL might be hard in Prolog. And so on. Having the code bases sepperate makes debugging and maintainence a lot easier to. You can keep each service simple and direct and just use a little glue code to tie it all together. Code you can't reuse is the oddity in my experience and is usually the bits that change often - mostly UI stuff.
I have to agree that talent is important but I think talent combined with good methodologies can create magic. When you get a few talented people that are communicating and working well together wonders really do happen.
My bad luck is that every programming job I get is where the sloppy developers have risen to the top for seeming to be faster. Try to use functions, objects, services, etc and you get your ass stuck at the bottom of the ladder or worse you get fired. Management doesn't care if something is faster in the long run because all they can see is that it is slower in the initial development. Hell, even code comments and design documentation is a luxury I rarely see. It can really drive a programmer nuts to not be allowed to use any sort of abstractions or other 'time wasting' methods. Working with old code that's been designed this way is nothing short of a nightmare because you're under a time limit and not getting the changes done quickly makes you, not the original programmer, look bad.
Except services is another step of abstraction beyond objects. The major difference being that services can more easily be on other machines, can have different permissions, and can be written in other languages. In general services are much easier to program to than just using pure objects in much the way that objects are much easier than pure functions and functions are easier than goto's. To keep getting more done we have to create more and more abstractions. Each slows the software slightly but lessens development time required and gives additional flexibility.
No doubt the lack of reusable code is why the majority of code is buggy, bloated, and inflexible. Taking the time to build reusable components results in better code, smaller code, more flexible code, and in the end faster development time.
Novice programmers (even the experienced novices) think that quick development time is more important but all they end up doing is taking more time because they blindly recode everything instead of building upon what they've already built. Yes, it's faster the first time you code something to do it that way (if the project isn't very complex) but with each additional time your wasting time. Spend the effort up front and you'll save a lot more time in the long run.
I'm always horrified when I look at people's code and see how many of them don't even use functions let alone objects, components, and external services. I see programmers that should know better using cut and paste methods. Great.. that's quick.. until you have to change that code which means locating all instances of the code and applying changes.. which is of course made harder by the way most such developers don't comment code and often make several minor changes to various occurances of the code.
An example I attack a lot is how web-based services and applications are usually written. Rather than write a service that handles things like logins and credit card transactions you see this code just mixed in with application code. This is very standardized functionality that could easily be abstracted but instead it's rewritten over and over and ends up very buggy and insecure. You end up with everything mixed together as spaghetti code.
Try reusing that code. With a little practice and the gradual build-up of reusable parts it'll result in better code and faster development times.
It seems to me that people that actually like to program tend to reuse code whereas people who do it just as a job or to fill a need don't. Real geeks are lazy because we're overflowing with ideas. If we have to keep reinventing the wheel we don't find time to invent the cool stuff we really want to work on. That's why we invented shell scripts, pipes, pluggable components, functions, objects, services, high-level languages, development frameworks, etc. These things combine to let us do more in less time.
I learned early that hard work and giving it all to the company earns you no favors and more often than not earns you a knife in the back. Sadly, now it's all but impossible for an employer to motivate me because I simply distrust them all the time. If they offer me a carrot I'm looking for the axe that's going to fall on the back of my neck. There is little chance of me doing any of my best work or giving up any of my really good ideas unless my employer can earn my trust and as I go through more and more bad employers that becomes harder and harder. I'd love to find an employer that really valued innovation and hard work but I can't see that ever happening.
I use Win2k (which I like better than XP actually) and it is a great improvement over Win9x or WinNT but it just can't handle the kind of abuse I put on machines. In part this is just because the designers of Windows no doubt didn't imagine abusing systems this way but it still can't take the same level of abuse as Linux. Of course all systems get blamed for faulty hardware. I perfer Linux's behavior of complaining loudly about broken hardware over Windows' behavior of trying to gloss over the problem as long as it can but I'm sure both methods have fans.
I'm not sure about your claim that most Linux users are WinME users. I've used everything from TRS-80 on up. I'm pretty expert in DOS, Windows 3.1 - XP, Linux, OS X, AS/400, BeOS, and a lot of flavors of Unix. A lot of the Linux people I know have similar experience. Of coruse, I may know the more experienced users.
Not knowing what your system settings are or being able to easily copy them to new systems is one of the problems with Windows. It doesn't make such configuration options very transparent.
Linux's UI is currently comparable to Windows and OS X. I don't really like any of the above but it's not an extreme difference. I move between them all without hassle and often teach total novices to use all of them without them having any extra trouble in any of the interfaces. There is software available that makes configuring pretty much everything easy through a nice UI (I've written much of this myself) but you're right in that use of such tools isn't very standardized across distros. I'm actually shocked that there isn't more interest among distros to make such tools more standardized. They seem to see such features as a way to sell themselves and miss the fact that standardizing would bring more business to all of them.
Geeks as a whole seem to not think such features are very important which is a mistake. UI design needs to come out of the stone age for all OS's. Good UI design is about being easy to use and not about adding pretty gee-whiz features. KDE, Gnome, OS X, and Windows all fail on this point.
This fits with my experience with SAP and similar companies. They make huge, bloated, crappy software that sells for a fortune. This crap makes Microsoft look good by comparison. The only sad thing is that companies keep buying this software because they really have no viable alternative and nobody with the resources to produce some real competition seems smart enough to see that lack of an alternative as a business opportunity.
This article screamed to me that the problem was A) Crest Electronics have very little Linux experience and really don't know what they're doing and didn't listen to the support staff from RedHat and B) SAP products generally suck and are broken by minor issues that shouldn't really matter.
The later is a problem with commercial software in general or at least pre-compiled commercial software. Because it's pre-compiled it can't be custom compiled for your system and the Linux vender can't produce tested packaged versions of the software that keep up with needed system updates. Because the system is closed source the company doesn't have a community to help look for and debug issues and they usually can't or won't dedicate enough employees to do the job. The sad fact is that such software is really only stable on a platform the doesn't change. That means no patches, security updates, configuration changes, etc. Essentially the machine and software become a black box appliance if you want it to be reliable. Pretty much sucks if you want good security or need to share the machine for other uses. I wonder though if they couldn't use a virtual machine on the real machine to lessen these issues?
Whereas my Linux servers have each been up for more than a year since I last choose to reboot them to upgrade their kernels. These aren't machines running idle with all stock programs either. They're under heavy load with many custom compiled and even custom written programs.
I wonder what the hell they are doing that causes the system to crash? Or did they check for hardware problems before deciding to pull the plug? The only times I've had Linux crash in more than 10 years of using it were related to serious hardware failures.
First off, Windows just plain sucks. Any game that doesn't play on Linux or PlayStation I just don't buy. I'm not going to spend a lot of extra time and money to have a bunch of extra machines around just to play a stupid game. If they have it for a platform I already have then great. Otherwise, forget it.
Second, porting a game doesn't make a game buggier or lower quality. Quite the opposite. Porting will usually result in removing poorly designed bits of code and replacing them with code that is more solid and more flexible. A program that has been ported to several platforms will almost always have less bugs than a single platform program. Since porting tends to make code more flexible it tends to make it easier to add features. For games especially these is important - it's the little detail features that really pull you into a game.
I only wish ALL games, and most programs, were ported to a few different platforms. It'd be great to have more stable and flexible software that I could use on whatever platform I wanted to. It's really silly to need to have three different computers (Linux, Windows, and Mac) and a dozen different consoles (Atari, NES, Sega, N64, PS, Dreamcast, PS2, etc) just so I can run different programs. Almost all opensource programs are platform agnostic and I see no reason commercial programs shouldn't be too.
Maybe better scholarships for science and engineering students and beter paying jobs when they graduate would help more? I can't even count the number of eng/sci students I've known that dropped out for lack of money or didn't go on to a Master's or PhD because their job just didn't pay enough to make it possible. A lot of tech's work extremely long hours for not that much pay. $30,000/yr for 18 hour days isn't much of a wage. A lot of tech jobs I see even pay less than working fast food which is just lame.
passwords suck - we need something better
on
Too Many Passwords
·
· Score: 1
Passwords for individual websites is a bad idea. Better would be to modify software to generate custom key pairs on a per website basis based from a combined salt string generated from a digital signature for both the user and website. The browser could prompt, on first demand, for a username and password that would be hashed to create a unique sig for the user and that'd be hashed with the website's digital sig to create a unique id sig and that would then be transmitted to the website to prove the user's identity.
I'd use the site's domain name as part of it's sig so that it couldn't be spoofed easily. Have the browser check that the sig is coming from the site it claims it is coming from.
I'm sure this idea needs polish but it's really the sort of system we need. Something that doesn't require the user remember more than one username/password combo and doesn't require any computer to remember the user's password data for them (bad for security and troublesome if the user roams). If the user decided to change their password they could use current methods of going to the site and submitting their email address, which gets sent a link that will allow the user to associate their new password with the old identity.
I was even experimenting last night and in a couple hours hacking was able to come up with a pretty decent desktop built on top of X and Firefox. Load alternate chrome so you get none of the Firefox menus and run it fullscreen and you can make a pretty decent little desktop enviroment. I went for a task-based design that gives you a double tab bar along the top. The first lets you create and manage logical task groups and the second lets you manage programs and documents within whichever task you have viewable at the time. The default (always-on) task lets you create other tasks and associate programs, websites, and documents with given tasks as well as basics like quitting. Pretty nifty really. I've been toying with implementing this system in Gnome for a while but it seems much easier to implement in my web-based desktop. With some work it could be pretty awesome and it is really light-weight and supports things like transparency in UI elements that Gnome, Windows, etc still aren't to sharp on.
If I can make a decent looking lil desktop in a couple hours then surely Google w/ their Firefox-experienced employees can do wonders given a lil time.
This is really killer. For the cost of a copy of Windows a user could get a computer with bundled OS and free web-based apps and free broadband. Combine with concepts such as Google VoIP and Google TV and you could replace the home PC, phone, and television in one swoop. That is a lot of possible advertising money for Google.
*sigh* If only I had the money to implement this sort of thing!:)
It's a shame we can't seem to find a political leader with the balls to fight oppression both inside and outside our country all at once. Isn't personal liberty what America stands for?
Our war on terror seems to have been a war to steal our personal liberties while supposedly trying to give those same liberties to others. Let's make it perfectly clear. America isn't supposed to be a country where everything is safe and profitable - it's supposed to be a place where everyone has the freedom to do anything so long as it doesn't stop others from doing likewise. The only price for this freedom is that we have the responsibility to stop other's from stealing this freedom from ourselves and others. It's seems that this later part has been forgotten from the people on the street all the way up to the President himself.
Oh well.. it doesn't matter. The only rule that really exists for America today is the golden rule.. he who has the gold makes the rules. Rich companies and wacko extremist groups rule because they have the money. They'll continue to rule because they manipulate laws to keep themselves rich. Ohhhh this is so much better than monarchy or dictatorship. The rich and powerful rule us where under those systems.. oh wait.. the rich and powerful rule them too.
I guess that just leaves one important question.. will Google searching for Bush and Dick now get us arrested as perverts?
True. Short movies and cartoons are especially common with a few longer movies and tv shows available and of course the new offerings by the BBC. It'd just be fun to crank out some more of these and try to kickstart a movement similar to the free software movement. I think enough actors and film makers never get a real chance to go mainstream and might enjoy participating. Even some mainstream people might be interested in such a chance to explore the artistic concepts that Hollywood movies so often lack.
Have you ever met ESR? While he isn't a complete moron he certainly isn't the brightest hacker either. The guy kept bugging me asking what I was working on which kept distracting me from my work. As if, because he is the grand ESR, he couldn't just wait for my presentation like everyone else. His talk was interesting but nothing I hadn't heard from many other hackers and IMO was less interesting than the technical talks going on. Saying that the GPL isn't needed any longer just proves that he really doesn't get it. He seems to think that everyone will just play nice if you remove legal protections. It'd be great if that was true but I've never seen any evidence of it (and quite a lot of counter evidence). Maybe he should work on coding for a while so he'll get his head back into the proper hacker mindset.
Probably so. I'm not especially an expert in metal plates. I just have experience at how easy it is to carve in aluminum. Some sort of cheap, easily carved metal plate then..
I'd be impressed if Microsoft responded with a usable interface for any of their products. Yeh, Office has a brilliant interface. Makes me want to kill myself. I think Yahoo must be out of their mind if they're copying Outlook. That's a horrible mail program.
Google has the right idea. Streamline and make the UI more responsive. Ease of use over feature bloat.
The number one GMail feature for me was the free pop access. I used to use Yahoo for that and then they started wanting to charge for it. I haven't looked to see if they've made it free again..
If only GMail would let you delete messages read by pop instead of just trashing them. Trash uses quota which quickly, for some of us, limits how much mail we can move through GMail.
I'm cheating and developed a program that reads my incoming mail for attachments, collects the attachments, inserts web links to the attachements, and passes the rest through to my usual mail program (still leaving me with over a gig of mail a day). After seeing how popular the trial version I offered was I'm rewriting the whole thing to handle bandwidth usage better. I can't believe Yahoo and Google are to dense to care about this market. Yahoo and Google Groups are both crap and that is what generates the majority of this traffic.
I get more than a gig of email a day not even counting the couple gigs I get of pics, video, etc (pr0n) a day. I use a gmail account up in about a day and due to their poor design of trash it's a significant pain trying to pipe all that through their service. Luckily I have my own servers so it's not a problem for me. ;)
That sounds exceptional. I bet it saves your company a lot of money over time. Are they making any special effort to document the change in expenses over time?
;)
:)
I've worked at half a dozen different companies in the web development department and none of them have done anything near that. I've worked with Perl, Python, PHP, ColdFusion, JSP, and ASP so I don't think it's just a certain group that has this weakness either. If I ever move to the Dallas area I'll have to apply with you guys as you sound like people who know what they're doing.
Using C for web apps seems a really bad idea to me. It might make sense for a small portion of an app but it's such a security risk and such a pain to make changes to that I can't see why anyone would do it. I hope you're getting a nice license fee from Expedia.
I was thinking that programmers should get tips like other service workers based on how pleasing their work and service is. If your company can license out your code to others then they should give everyone on your team a bonus.
Over the Internet? You can ue web technology without running your code over unsecured portions of the Internet. Secure services should run deep inside your network on your most secure machines. There is some risk that reusing such code could create a single point of failure but that isn't much since someone that's penetrated your network to the most secure depth is likely to already have the run of the rest of the network.
Handling application users and permissions should not be done by the OS. There are many times when apps need to share users across multiple systems including systems of different types. Also there are many times when you don't want all application users to have user accounts of the systems running the apps. Would Slashdot want to give Unix accounts to every Slashdot user on the Slashdot servers? Hardly a good idea. Rules are rules are they are just as easy to abstract across applications as they are to apply to apps in general. To the apps it shouldn't matter.
You're approach is really why web apps are so buggy and insecure. It's not about how long it takes to write the code - it's about writing good code that is maintainable. I've yet to see code that 'never needs to be touched' in the real world either. Eventually everything needs new features or bug fixes. Perfect code is incredibly rare especially when written by inexperienced junior programmers in twenty minutes.
Try doing any work in companies that develop web apps. They usually write horrible code. Most developers for such companies either have no structured software development experience or they seem to totally ignore their experience and write quick and dirty crap software. To some extent that makes sense but only for one off development of little complexity. Yes, many of these companies don't even use functions let alone objects or higher abstractions. If you think that makes life easier then you haven't tried it.
Most such companies don't do meetings and rarely have teams. It tends to be a lot of lone gonemen sitting in their own dark corners pounding out their own terrible code with no communication with anyone else.
Functions, objects, and even services are nothing new. They've all been around for decades. I hardly think they qualify as the flavor of the month buzzword technology although certain companies may be pushing their own variant (which is seldom needed). They are well know abstractions that have well known usage methodology and are taught in most decent computer science programs.
Black-ops refactoring goes on but eventually you hit a point where it takes you extra time to fix problems which makes you look bad so you just have to throw in the towel and do your work just as bad as everyone else if you want to keep your job. Most employers I had didn't even understand that new functionality, better interfaces, etc really mattered let alone things like documentation and support for disabled users.
Maybe the golden rule should be to just avoid working with small development companies? Do larger companies write better code? I've always thought small companies would make more of an effort to get things right but my evidence doesn't agree with that expectation.
Objects can make more complex problems easier than functions alone can do.
:)
I've seen plenty of poorly designed objects too but that doesn't mean objects are a bad idea. I've seen horribly written software in general but I still think software is a good idea.
I'll assume that by web service you're refering to web-tech based components and not user apps like GMail. There are plenty of good reasons to use thse. If you're writing a complex program or set of programs that need to reuse functionality then they can be a good idea. You can reuse functionality without reinventing the wheel or sharing code (for security reasons, simplification, etc). Something as simple as handling users and permissions is a good thing to build into a service. There is no reason for every app to have it's own users and permission levels for those permissions. Why not abstract them into a service that all your apps use? Having this abstracted simplifies your logic both in the service and in the app, lets you more closely audit this important code for security flaws, and makes management of users easier.
I agree totally. Using standard protocols is the pay to go and when picking the standard to use it's often best to pick the ones that are easiest to work with. CORBA is great but HTTP and XML have far more support and thus will be easier for other's to work with. When you have a choice pick what is well supported and lightweight. If you need the extra functionality of something such as CORBA then use it. This is why I suggest picking RDF over XML-RPC, XML-RPC over SOAP, SOAP over CORBA, etc. Always use as little complexity as is needed but no less than is needed.
I personally like using XML-RPC to decouple components because it is easy to work with and easy to use from any programming language. Different languages can make different problems vastly easier or harder to approach so being able to pick the best tool for each job can be a real time saver. Something that is easy in PHP might be hard in C. Something that is easy in Prolog might be hard in PHP. Something easy in SQL might be hard in Prolog. And so on. Having the code bases sepperate makes debugging and maintainence a lot easier to. You can keep each service simple and direct and just use a little glue code to tie it all together. Code you can't reuse is the oddity in my experience and is usually the bits that change often - mostly UI stuff.
I have to agree that talent is important but I think talent combined with good methodologies can create magic. When you get a few talented people that are communicating and working well together wonders really do happen.
My bad luck is that every programming job I get is where the sloppy developers have risen to the top for seeming to be faster. Try to use functions, objects, services, etc and you get your ass stuck at the bottom of the ladder or worse you get fired. Management doesn't care if something is faster in the long run because all they can see is that it is slower in the initial development. Hell, even code comments and design documentation is a luxury I rarely see. It can really drive a programmer nuts to not be allowed to use any sort of abstractions or other 'time wasting' methods. Working with old code that's been designed this way is nothing short of a nightmare because you're under a time limit and not getting the changes done quickly makes you, not the original programmer, look bad.
Okay.. I'm bitter..
Except services is another step of abstraction beyond objects. The major difference being that services can more easily be on other machines, can have different permissions, and can be written in other languages. In general services are much easier to program to than just using pure objects in much the way that objects are much easier than pure functions and functions are easier than goto's. To keep getting more done we have to create more and more abstractions. Each slows the software slightly but lessens development time required and gives additional flexibility.
No doubt the lack of reusable code is why the majority of code is buggy, bloated, and inflexible. Taking the time to build reusable components results in better code, smaller code, more flexible code, and in the end faster development time.
Novice programmers (even the experienced novices) think that quick development time is more important but all they end up doing is taking more time because they blindly recode everything instead of building upon what they've already built. Yes, it's faster the first time you code something to do it that way (if the project isn't very complex) but with each additional time your wasting time. Spend the effort up front and you'll save a lot more time in the long run.
I'm always horrified when I look at people's code and see how many of them don't even use functions let alone objects, components, and external services. I see programmers that should know better using cut and paste methods. Great.. that's quick.. until you have to change that code which means locating all instances of the code and applying changes.. which is of course made harder by the way most such developers don't comment code and often make several minor changes to various occurances of the code.
An example I attack a lot is how web-based services and applications are usually written. Rather than write a service that handles things like logins and credit card transactions you see this code just mixed in with application code. This is very standardized functionality that could easily be abstracted but instead it's rewritten over and over and ends up very buggy and insecure. You end up with everything mixed together as spaghetti code.
Try reusing that code. With a little practice and the gradual build-up of reusable parts it'll result in better code and faster development times.
It seems to me that people that actually like to program tend to reuse code whereas people who do it just as a job or to fill a need don't. Real geeks are lazy because we're overflowing with ideas. If we have to keep reinventing the wheel we don't find time to invent the cool stuff we really want to work on. That's why we invented shell scripts, pipes, pluggable components, functions, objects, services, high-level languages, development frameworks, etc. These things combine to let us do more in less time.
I learned early that hard work and giving it all to the company earns you no favors and more often than not earns you a knife in the back. Sadly, now it's all but impossible for an employer to motivate me because I simply distrust them all the time. If they offer me a carrot I'm looking for the axe that's going to fall on the back of my neck. There is little chance of me doing any of my best work or giving up any of my really good ideas unless my employer can earn my trust and as I go through more and more bad employers that becomes harder and harder. I'd love to find an employer that really valued innovation and hard work but I can't see that ever happening.
I use Win2k (which I like better than XP actually) and it is a great improvement over Win9x or WinNT but it just can't handle the kind of abuse I put on machines. In part this is just because the designers of Windows no doubt didn't imagine abusing systems this way but it still can't take the same level of abuse as Linux. Of course all systems get blamed for faulty hardware. I perfer Linux's behavior of complaining loudly about broken hardware over Windows' behavior of trying to gloss over the problem as long as it can but I'm sure both methods have fans.
I'm not sure about your claim that most Linux users are WinME users. I've used everything from TRS-80 on up. I'm pretty expert in DOS, Windows 3.1 - XP, Linux, OS X, AS/400, BeOS, and a lot of flavors of Unix. A lot of the Linux people I know have similar experience. Of coruse, I may know the more experienced users.
Not knowing what your system settings are or being able to easily copy them to new systems is one of the problems with Windows. It doesn't make such configuration options very transparent.
Linux's UI is currently comparable to Windows and OS X. I don't really like any of the above but it's not an extreme difference. I move between them all without hassle and often teach total novices to use all of them without them having any extra trouble in any of the interfaces. There is software available that makes configuring pretty much everything easy through a nice UI (I've written much of this myself) but you're right in that use of such tools isn't very standardized across distros. I'm actually shocked that there isn't more interest among distros to make such tools more standardized. They seem to see such features as a way to sell themselves and miss the fact that standardizing would bring more business to all of them.
Geeks as a whole seem to not think such features are very important which is a mistake. UI design needs to come out of the stone age for all OS's. Good UI design is about being easy to use and not about adding pretty gee-whiz features. KDE, Gnome, OS X, and Windows all fail on this point.
This fits with my experience with SAP and similar companies. They make huge, bloated, crappy software that sells for a fortune. This crap makes Microsoft look good by comparison. The only sad thing is that companies keep buying this software because they really have no viable alternative and nobody with the resources to produce some real competition seems smart enough to see that lack of an alternative as a business opportunity.
This article screamed to me that the problem was A) Crest Electronics have very little Linux experience and really don't know what they're doing and didn't listen to the support staff from RedHat and B) SAP products generally suck and are broken by minor issues that shouldn't really matter.
The later is a problem with commercial software in general or at least pre-compiled commercial software. Because it's pre-compiled it can't be custom compiled for your system and the Linux vender can't produce tested packaged versions of the software that keep up with needed system updates. Because the system is closed source the company doesn't have a community to help look for and debug issues and they usually can't or won't dedicate enough employees to do the job. The sad fact is that such software is really only stable on a platform the doesn't change. That means no patches, security updates, configuration changes, etc. Essentially the machine and software become a black box appliance if you want it to be reliable. Pretty much sucks if you want good security or need to share the machine for other uses. I wonder though if they couldn't use a virtual machine on the real machine to lessen these issues?
Whereas my Linux servers have each been up for more than a year since I last choose to reboot them to upgrade their kernels. These aren't machines running idle with all stock programs either. They're under heavy load with many custom compiled and even custom written programs.
I wonder what the hell they are doing that causes the system to crash? Or did they check for hardware problems before deciding to pull the plug? The only times I've had Linux crash in more than 10 years of using it were related to serious hardware failures.
First off, Windows just plain sucks. Any game that doesn't play on Linux or PlayStation I just don't buy. I'm not going to spend a lot of extra time and money to have a bunch of extra machines around just to play a stupid game. If they have it for a platform I already have then great. Otherwise, forget it.
Second, porting a game doesn't make a game buggier or lower quality. Quite the opposite. Porting will usually result in removing poorly designed bits of code and replacing them with code that is more solid and more flexible. A program that has been ported to several platforms will almost always have less bugs than a single platform program. Since porting tends to make code more flexible it tends to make it easier to add features. For games especially these is important - it's the little detail features that really pull you into a game.
I only wish ALL games, and most programs, were ported to a few different platforms. It'd be great to have more stable and flexible software that I could use on whatever platform I wanted to. It's really silly to need to have three different computers (Linux, Windows, and Mac) and a dozen different consoles (Atari, NES, Sega, N64, PS, Dreamcast, PS2, etc) just so I can run different programs. Almost all opensource programs are platform agnostic and I see no reason commercial programs shouldn't be too.
Maybe better scholarships for science and engineering students and beter paying jobs when they graduate would help more? I can't even count the number of eng/sci students I've known that dropped out for lack of money or didn't go on to a Master's or PhD because their job just didn't pay enough to make it possible. A lot of tech's work extremely long hours for not that much pay. $30,000/yr for 18 hour days isn't much of a wage. A lot of tech jobs I see even pay less than working fast food which is just lame.
Passwords for individual websites is a bad idea. Better would be to modify software to generate custom key pairs on a per website basis based from a combined salt string generated from a digital signature for both the user and website. The browser could prompt, on first demand, for a username and password that would be hashed to create a unique sig for the user and that'd be hashed with the website's digital sig to create a unique id sig and that would then be transmitted to the website to prove the user's identity.
I'd use the site's domain name as part of it's sig so that it couldn't be spoofed easily. Have the browser check that the sig is coming from the site it claims it is coming from.
I'm sure this idea needs polish but it's really the sort of system we need. Something that doesn't require the user remember more than one username/password combo and doesn't require any computer to remember the user's password data for them (bad for security and troublesome if the user roams). If the user decided to change their password they could use current methods of going to the site and submitting their email address, which gets sent a link that will allow the user to associate their new password with the old identity.
I was even experimenting last night and in a couple hours hacking was able to come up with a pretty decent desktop built on top of X and Firefox. Load alternate chrome so you get none of the Firefox menus and run it fullscreen and you can make a pretty decent little desktop enviroment. I went for a task-based design that gives you a double tab bar along the top. The first lets you create and manage logical task groups and the second lets you manage programs and documents within whichever task you have viewable at the time. The default (always-on) task lets you create other tasks and associate programs, websites, and documents with given tasks as well as basics like quitting. Pretty nifty really. I've been toying with implementing this system in Gnome for a while but it seems much easier to implement in my web-based desktop. With some work it could be pretty awesome and it is really light-weight and supports things like transparency in UI elements that Gnome, Windows, etc still aren't to sharp on.
:)
If I can make a decent looking lil desktop in a couple hours then surely Google w/ their Firefox-experienced employees can do wonders given a lil time.
This is really killer. For the cost of a copy of Windows a user could get a computer with bundled OS and free web-based apps and free broadband. Combine with concepts such as Google VoIP and Google TV and you could replace the home PC, phone, and television in one swoop. That is a lot of possible advertising money for Google.
*sigh* If only I had the money to implement this sort of thing!
It's a shame we can't seem to find a political leader with the balls to fight oppression both inside and outside our country all at once. Isn't personal liberty what America stands for?
Our war on terror seems to have been a war to steal our personal liberties while supposedly trying to give those same liberties to others. Let's make it perfectly clear. America isn't supposed to be a country where everything is safe and profitable - it's supposed to be a place where everyone has the freedom to do anything so long as it doesn't stop others from doing likewise. The only price for this freedom is that we have the responsibility to stop other's from stealing this freedom from ourselves and others. It's seems that this later part has been forgotten from the people on the street all the way up to the President himself.
Oh well.. it doesn't matter. The only rule that really exists for America today is the golden rule.. he who has the gold makes the rules. Rich companies and wacko extremist groups rule because they have the money. They'll continue to rule because they manipulate laws to keep themselves rich. Ohhhh this is so much better than monarchy or dictatorship. The rich and powerful rule us where under those systems.. oh wait.. the rich and powerful rule them too.
I guess that just leaves one important question.. will Google searching for Bush and Dick now get us arrested as perverts?
LOL. Maybe we could make an animated movie about cowboys done completely in pudding paint? Would that be a decent tribute?
True. Short movies and cartoons are especially common with a few longer movies and tv shows available and of course the new offerings by the BBC. It'd just be fun to crank out some more of these and try to kickstart a movement similar to the free software movement. I think enough actors and film makers never get a real chance to go mainstream and might enjoy participating. Even some mainstream people might be interested in such a chance to explore the artistic concepts that Hollywood movies so often lack.
Have you ever met ESR? While he isn't a complete moron he certainly isn't the brightest hacker either. The guy kept bugging me asking what I was working on which kept distracting me from my work. As if, because he is the grand ESR, he couldn't just wait for my presentation like everyone else. His talk was interesting but nothing I hadn't heard from many other hackers and IMO was less interesting than the technical talks going on. Saying that the GPL isn't needed any longer just proves that he really doesn't get it. He seems to think that everyone will just play nice if you remove legal protections. It'd be great if that was true but I've never seen any evidence of it (and quite a lot of counter evidence). Maybe he should work on coding for a while so he'll get his head back into the proper hacker mindset.
Probably so. I'm not especially an expert in metal plates. I just have experience at how easy it is to carve in aluminum. Some sort of cheap, easily carved metal plate then..