Look, this article, a little vaporous, but overall the stuff you're looking into is not vaporous. If you work in the IT industry, then this stuff is actually your job. Linus and Jobs and Balmer are leaders of large amounts of IT resources. Their decisions influence millions of dollars, move hundreds of bodies and affect the way that you do business.
Paris Hilton == vapour, she's really not important, she's really just an unimportant peon of the tabloids. Linus/Jobs/Balmer, these are guys influencing the future of your industry, Google's next product may be part of your next customer solution. Don't feel bad, these are indeed different things.
Indeed they are, but having been to several concerts/football games/basketball games/major events in the last few years, I can tell you that they have serious issues even selling the beer.
These places tend to be filled with rookie staffers and 13-year olds at the booths with no alcohol. They've been consistently incompetent and ill-prepared and simply incapable of processing large crowds.
Just last summer I walked up to the mini-donuts booth with 1 minute left in the half. They don't have any donuts popping out, they're mixing more dough... there's one minute left in the half and they're mixing dough! Hello, with one minute left in the half you have 30 bags of donuts ready to go, one batch spitting donuts and a backup batch ready to go, it's not rocket science, it's not even tough.
Point being, I've don't even buy overpriced beer at these events anymore b/c I'm just hampered by excruciating lines brought on by poor planning.
From my experience, there are two things going on here:
Lack of clear goals to keep you focused
Lack of correct break time to keep you fresh
We've all had great coding session where we sit down for 12 hours straight and do nothing but write clean, beautiful, working code. It seems to happen a lot in University in fact:), but it just doesn't scale during the daily grind. Especially where creativity and focus are involved, you'll have days that are more productive then weeks and you'll have days where you can't possibly justify the rates you were billing. These are both normal.
For point #1, you're an intern, so the work you do is probably not well-monitored or high-priority or even something that's really exciting. You probably feel like no one cares if you get this done today or next week. That's a big deal, so you have to sit down and be your own project manager. List out your tasks, jot down expectations and shoot for them. Take yourself out for a treat if you nail them and try to push for the next "speed level". This type of activity helps keep the your focus away from the mundane, which is likely what's draining you.
For point #2, get away from the computer, don't look at it for 8 hours straight, especially when you're doing something mundane. If I told you to grab an axe and chop wood for 8 straight hours/day (no breaks), you'd just laugh, man we even have labour laws that require you take ~3 breaks in that 8 hour day. These laws apply for IT people too, but we generally tend to ignore them. We'll just sit there and plug away all day, slowly bleeding focus and attention. Unless you're "in the zone", find a way to break every 2 hours: drink lots of water (forcing bathroom breaks), prep 2 snacks/day for breaks and eat them in your lunch room, organize a noon-hour walk with co-workers, set a timer on your comp/watch and take a stretch/tai-chi/desk aerobics break (you can find activities on the web), etc. Your body and your brain need breaks, in fact, your brain definitely needs time away from the screen to formulate solutions. All of my co-walkers (workers) have had "post-lunch" resolutions where they solved the problem they'd worked all morning in the first 5 minutes after getting back. They just needed time to let their brain do some "churning" and that's what these breaks help to do.
Combine both concepts and start your day with a "to-do" list that actually breaks out into four pieces (divided with 3 breaks). Then you'll be able to pace/track yourself and keep yourself interested. When your attention start dying, you can use the activity list to re-focus yourself. Don't worry if it seems odd, you've probably never worked this way before (but you've probably never worked this type of 9-5 either). So give it a try and see if you don't feel more focused and start drastically improving your output.
First of all you have 30 years of experience so you should (in theory) be making way more. But there are a lot of problems with logic:
Scarcity of work has gone down. You may have been a specialist at one time, but right now, most IT staff are just commodities.
Failure to acknowledge technical expertise. Right now, people are subscribing to the Fallacy of Management, the concept that managers are somehow more important than the teams that they manage. Top companies recognize "technical expertise" with pay equal to those with "managerial expertise", but you have to be working for one of these companies. Most companies are still paying for "body" over productivity, so you have to find the right company (or boss) that's going to pay for productivity over face time and "presence".
Erosion of expertise: you can't buy 30 years experience, but in our field productivity is closely tied with "up-to-date" technical expertise. Unless you're the current C#/Java/RoR master for the office, you won't be making 2x what the others are making b/c your specialized COBOL knowledge just isn't relevant. It's easy to train programmers, it's hard to train business analysts. If you're not filling a key role (like analyst), then maybe the company just can't make anything of your extra productivity.
Responsibility level: at some point you have to take on extra responsibility to earn extra pay. Management is one way, but even things like "team lead" or "mentor" can command higher prices. If you've been coding for 30 years and you don't want to help train the n00bz, then all you're getting is an "experience/productivity bonus", b/c that's all you're earning the company.
Personal marketing ability: let's face it, you have to be able to market yourself correctly as a technical expert to justify a higher than normal salary. If you're 2x as productive and only making 25% more, then you should be talking to your boss about the differential amd making them own up to paying you more. Companies want to pay "as little" as possible, that's the way the game is played. Top performers will earn their salary by finding ways to command top prices otherwise your boss is just reaping extra benefits from your extra capabilities. It's your job to change that, not theirs.
Inflation: here's a chart for you, but as you'll recall, inflation in the 70s and early 80s was pretty crazy. It's quite likely that you didn't keep up then either, so comparing your start salary in the middle of inflationary period to your current salary now may just be bad math. This is like those IT workers who complained in 2004-2005 that they were stuck at the same salary as they were making in 2000 (like there should be any surprise). I mean, even the current adjustments could actually just be an upward reversion to the mean. So you could be up 15% over inflation in the next two years, if the correction continues. We could just be taking a snapshot at the wrong times.
Either way, big quagmire, but if you're provably more productive and you're not earning some form of "productivity premium" then your problem is that you're being taken to the cleaners and this has nothing to do with the charts or graphs or inflation, it has to do with points #1 to #5.
Wow man, you think it's tough now, the dropping USD is just going to aggravate inflation. But hey let's get to the quotes:
am currently stuck at renting, which is a waste of money.
Wow, learn to do some math. Hit the web, the NY Times has a good Rent vs. Buy calculator. The concept that renting is a waste of money is just total BS and completely unsupported by the math. Unless you have a family or needs for large amounts of space, owning can end up being a big waste of money AND time. There are people making more from their side investments than you're making in salary and they're still renters, keep that in mind before you spout off non-sense.
(I can't even afford to buy a second-hand car at the moment.)
Boo-hoo man, a car is basically the single most expensive way to mitigate your transportation expenses. It's unfortunate that as a professional you can't quite afford a "professional lifestyle", but not operating a car is also one of the most wallet-efficient lifestyles around (right up there with renting small places). And the truth is, most people can't afford the car they are operating. How many people have you met that complain about car expenses or bitch that they had to cancel some outing b/c their car needed new tires or the transmission died? How many people do you know would miss payments and lose their car if they lost their job for more than two months? Yeah, well these are the guys who also "can't afford their cars", at least you know it.
Again, unless you have a family or large numbers of people to ship around, the car is just a giant money-hole for your transportation costs. Owning a car is actually a giant luxury, so you're not getting any sympathy here.
And before the hate comes from someone else, if your job "requires you to have a car" due to either job description or location; then that's part of your salary. If you can't work without a car or can't reduce car expenses b/c of your job, then you better make sure that your job is covering this aspect. If you didn't account for that when you signed up, then it's your loss, find a new job that will or move somewhere else and find a new job that doesn't need a car.
Clearly, just like tasers, this will cause some fatalities.
However, there's another issue here: Pain is mental. When you get hit with a taser, your body spasms, that's actually a muscle response to an electrical impulse. But here, it's just "fluttering nerve endings" which will cause the illusion of pain.
There are people who just disconnect from pain. I don't care about a bunch of "hardened marines", that just means they're used to pain, not immune to pain. I know I'm going to sound like a metaphysics nut-job, but there are people way beyond a bunch of regular marines.
I'm sure some zen monk will have a youtube video in 5 years where he just walks through the ray and turns off the device, plus there's no mention of the effect with people on drugs, what happens if I don't feel pain?
This may be the whole fatal flaw to the system, it's incurring pain as if pain were something real.
OK, we obviously have different concepts of a "class" here. Where I went to University, we divvied things up by "Credit Hours". One full year was 2 semesters (4 months each) with a total of 30 credit hours. Courses were typically 3 or 6 credit hours (one semester or two). The average cost of a course was $100-150/credit hour. So a "full course load" was 15 hour/week "in-class" + lab time at a cost of $4500.
If the gvmt subsidized 50% of actual tuition then that's still $9000 / year real cost, so you can still get out of University for less than 40k. Especially if you live "with the parents" and work full-time over the summer.
Check out my reply to the post above, somebody quoted me numbers where more than half of the "education cost" was actually "living expenses" for being in the dorm. Moreover, the housing/food cost amounted to $1400+ / month!
So subsidies or not, something still doesn't add up. At 9k / year, I could borrow the *entire* cost of my education for 40k with no money down and no payments.
Estimated On-Campus Housing (including 15 meals per week in the dorm): $5,785.00
Found your problem, that's not the cost of University, that's the cost of living. This here: Estimated Tuition and Fees: $3,708.00 is the cost of schooling. Is living on campus required at a place like Purdue? That number (3708) is definitely higher than a Canadian tuition, which is somewhere between 50-90% of that number (based on program/school), but that still only brings you up to 40k total cost (~10k/year).
I'll level with you, most Canadian University students are living at home and commuting or renting out a cheap place with some friends nearby. Most places up here have limited school housing and it's usually prioritized for specific needs (out of town students, grad student housing and special cases). Even in expensive places like Toronto or Vancouver, students can still live close to campus for $500/month rent + $200/month food + $80/month transit pass. Your on-campus housing and meal cost is ~1450/month! Do you guys get private suites with room and laundry service?
Out here you can make 6-8k working full time over the summer and then put in 10-20 hours weeks over the school year. I landed a TA position during school and I was bringing in over $500/month (in 2000 $) At 8k/year for schooling, that type of money may not cover all of the bills, but it definitely comes pretty close. Between tax benefits of student-hood and the availability of government-funded student loans, an unprepared student with no savings can still graduate debt-free.
The whole concept of American University being expensive seems to be a direct result of living in overpriced housing while going to school. I mean, by your own numbers, housing is 60% of the cost and I'm sure that doesn't include the required fraternity/sorority fees and whole bunch of other stuff that just creeps the prices even higher.
Again, you're spending more money to live on campus than you are to actually educate yourself, that sounds like money mismanagement to me.
And that's not a winning bet when it comes to paying back your $40,000 of student loans it will take to get that Bachelor's degree.
What? you're required to take on 40k of loans to pay for 4 years of courses? What is that 10k/year = 2k/course? Wow man, my fiancé just graduated from the University of Manitoba and she was paying less than 1k/course with books included. Are you working during University? Are you being forced to live in a dorm or something? Don't they have "commuter campuses"? My fiancé graduated with zero debt by living at home and working 10-20 hours / week, plus full-time summers (and getting straight As in her last 3 years).
Man, the entirety of my Bachelor's (at 30k+ student school) cost me less than 20k. I paid for bills by working part-time. I know that US universities are a little more expensive and I hear that tuitions are going up, but like more than twice as expensive? That's hard to believe. Are you sure that people aren't just graduating with 40k in debt b/c they don't know how manage their money?
What? And you didn't quit? You'd rather work long hours to fix problems brought upon by the poor decisions of those above you? You could've spent all of that OT looking for a new job. He made a shitty decision and rather than stick to your guns you just put your head down and pulled him out of the muck?
I don't know if I would call that lazy or foolish, but you just completely failed rule #1: Defend yourself
Then you have the people who complain about being unable to install software when our policies are clear that they need to run it past their supervisor first and then submit a request to finance + IT for funding and install.
But this only breeds the inverse battle: "I'm looking for an app that does X and will save us money, but I need to install 4 or 5 different trials." Which is, of course, a perfectly justified use of time.
Lastly, what were these "Side Projects"? How do you think IT figures out if a new product will help you or not....
Hey that's a softball. You arrange for (and contract in) 2-4 hours/week of dedicated continuous/ongoing training time. You explain that the work you do is evolving so quickly that they can either send you to an expensive week-long seminar every year or that they can give you 2 hours/week to "study other stuff". If they don't understand this mentality and logic, then you are clearly working for the wrong people, it's time to find a new job.
Then there's the set of users who don't understand Scope of Support & When we discussed the major database + client update
Your point is well-heeded, yeah, users aren't always the greatest clients. And to make matters worse, you're supporting a setup that you are often incapable of testing (new acct. software?) and you're supporting software that you didn't write (e.g.: bad roaming profiles). And when nothing is going wrong and you're doing your job correctly, then nobody seems to notice and they wonder what you're doing.
What's actually going on here is that most bosses don't appreciate what's involved in good IT administration. This stems from the fact that they don't understand any of it, it's all just voodoo magic to them. Of course, basically every boss has dealt with voodoo charlatans, so they end up with very little trust in the actual magicians. The real problem here is two-fold, it's not just about mastering the details of IT, it's about PR work crossing with IT work. Good system admins must also be PR specialists, they have to be able to communicate correctly with the managers they encounter, they have to be able to breed trust and generate contracts of understanding with management.
And let's face it, the big problems you're talking about stem directly from that seed. Most IT admins yell and bitch about [l]users and shitty bosses and romp on the boards b/c "no one else gets them". But they're completely failing to acknowledge that the very source of their problems is their own inability to meaningfully communicate complexity to both users and management. If you can't do this, take a course from someone who can. You spent 2, 4 (6, 8?) years learning to operate/program/manage/debug/troubleshoot computers with hours of classroom and personal time spent on some of the most obscure pieces of knowledge. If you can't be bothered to take a few months to really learn how to communicate, then you deserve all of the shit flung your way.
Not really, this is pointless. It may be nice to fix comments, but the very code itself will be rife with specific jargon that no spell-checked will appropriately handle.
Anyone who's worked with a POS system knows the definition of PO. The spell-checker won't pick up on this, but everybody (users, analysts, programmers, testers, support staff) will refer to this object as a PO. So then you'll also need to make the dictionary jargon-aware. Don't know if you've ever been on a government or large-business project, but this is an issue in and of itself. It's typical for big companies to actually have an on-line list (wiki-style) of the "commonly-used" acronyms in the company, and they're not all 3 letters.
I mean, is this function name incorrect? TransferUrisPOToJiruSofToPrint. That means something to people I worked with, but means absolutely nothing to the spell-checker. So even if you or someone else has "the solution", this is definitely not some type "hey, just add spell checker" problem, you're also pumping in 4 different acronyms just to make this function pass.
Mass renaming, simply does not scale. If you've written an API or a common library or even just an interface you can't run around just renaming stuff. Sure it's good on your one little project, but the software giant paying MS millions instead of hundreds probably don't developers renaming pieces of the API they released last month!
If they image analysis tool becomes the image data collection tool, why do you have to rename tons of libraries? Can you even rename these existing libraries? How are you going to coordinate with the other 10 developers on your team?
We're not talking about plans gone mildly awry here "upon contact with the enemy" here. We're talking about a mass refactoring that affects large swaths of people. We're talking about a deliverable product that has to make money and you're telling me that we have to spend time renaming Public parts of the API, updating the documentation, update related database items, update the Test Cases, inform the VARs of the updates, etc...
No you're talking about small-time development with none of these constraints. That stuff generally counts as "largely irrelevant". I know, I work at a small software co with less than 10 guys, we're not paying thousands of dollars for Team Studio, we count as largely irrelevant:)
No I'm the guy who works on multi-person projects where you can't just check out the source tree and rename a project without breaking a lot of other projects.
Don't get me wrong, I've done this before. I've had to rename large swaths of code, but unless you're basically alone or working on a completely fresh project, the actual renaming is the smallest part of the process. You have to let people know, you have to isolate whole sections of the source tree and lock out co-workers (who all have to know what you're doing) you have to bring in some type of testing etc. The whole problem gets worse if you've developed an API or some form of interface.
So two reasons: new project; work alone. If you have a new project, sure maybe the utility is useful to have, however the utility is definitely making up for some questionable planning. I mean, why would you change the product name on the third week of development? Product branding change? You were working on an important and relevant project that didn't even have branding in place? Change in functionality makes the names you selected incorrect? Design / planning problem. If you work alone, well hey good for cleanliness!
Point is, this mass-rename feature is "nice to have", but it's fundamentally there to correct big mistakes. This functionality comes at the expense of a dangerous amount of power. It's a giant eraser that can cost hours of time and the people who pay the most for licenses (enterprise) are the people who least want to see this tool. From a financial standpoint that counts as "largely irrelevant", even though I'd have liked such a tool once or twice.
As mentioned, VS2005 has some powerful renaming tools.
However, the other thing you're missing is that your case is largely irrelevant. Names should be accurately picked during the analysis and design phases. Why you're even re-naming things more significant than a class level private variable while programming, I don't know.
If you can afford to rename something from the project level all the way down, then you're clearly the only person working on the project. If you're the only person working the project, then who cares about the naming, you're the only one using it. Either way, your case is largely irrelevant.
Yeah, but does ISO have any more credibility in this regards than does, say, the US Patent Office? I'd love to come down on these guys, but you really can't, the whole concept of standards and interoperability in computing has basically been one giant mess for at least a decade (some would say 2 or 3, but I'm not that old).
Look, we can probably standardize hardware quite well over the long-term, hell my new Mobo still has a parallel port (why?!?). At the least, our ability to generate paperwork standards is fully capable of keeping up with our ability to design the next generation of parts and retrofit factories for the changes. But we cannot "keep up" with the software changes, they happen too fast and we don't have any good laws or even lawmakers with a good concept on the nature of software.
And that makes sense, lots of people can't correctly absorb first-year calc and linear algebra (aka:vectors), it's just too abstract. Working software is an entire magnitude more abstract! Software is still akin to magic in most people's eyes.
So how do we write laws to govern this stuff? Patent laws can't account for software, it's just different enough to be outside of any originally intended scope. But copyright laws don't really cut the mustard either b/c they were never created with software in mind. To make life worse, software is not just the finished product, sometimes it's the process that's special (new algorithm), sometimes it's the implementation that's special (more efficient algorithm) and sometimes it's the package deal (swiss army knife).
So the ISO will do what they can, but the concept of "standards" simply doesn't apply very well in a free-market software environment. They're just changing too quickly to have any real relevance. Everyone wants their own version of the standards b/c that's their competitive edge. At the best, standards organizations can be "behind" the software curve, but it simply can't lead.
Good "conspiracy theory". Ever heard of Singularity? Whole OS written in C, Assembler and Managed.NET. They've end-of-lifed FoxPro and VB6, I'm sure that ASP will dying. They've started moving big chunks of Office 2007 to.NET so it's probably just a matter of a few years before they're ready to dump everything into managed code and start rolling out Singularity (Windows 2010?).
You're really not that far off, people have been "waiting" for Vista, but this is really a throwaway OS, nobody is using it and it's not like business is "clamoring" for even this version. Heck many Enterprises have just finish rolling out XP. The new WPF and WCF will surely be functional under Singularity, and Enterprises are just now moving to Managed Code applications (check out the market for ".NET developers"). MS won't die away if this Vista "fails", so we're probably all looking at a Managed Code future in 2010 or 2011:)
I think I do have a bit more common sense than a lot of the people who do end up raising kids though
Watch the intro to Idiocracy, laugh a whole bunch and then realize that they're right. Most parents (and I do mean 50%+) don't have a lot common sense, that's the very reason they end up having kids.
The people who are self-aware enough to recognize the limitations of their current parenting skills are the same people who are smart enough to avoid having kids. It's actually an aggravation of the whole "rich getting richer and poor getting poorer" phenomenon, which works out really well for the rich b/c they just get more peons to control on each successive generation. But that's a different post...:)
I'm in a small shop and we do this too. Truth is, we don't even have a real DBA, but a few of us know SQL Server really well. The reason we actually do it this way is cost. On small projects, Dev time is really expensive, server resources are not. If you can support 30 more clients with one $5k server, then it's simply not worth Dev time to stress over performance.
Truth is, if performance is becoming an issue, then the project should be generating enough revenue to justify the Dev time spent on performance tuning. As Devs, we'd like to build a highly-performant system every time, but as business owners, dev time is the greatest expense and needs to be kept in check. Really, using SPs and Views and building in good logic into your Data Access / Business Object / Entities / Whatever layer(s), is likely the best way to keep up performance for small to mid-sized solutions.
Classic example, we just implemented some "partitioned table" in SQL Server 2005. We didn't use the actual SQL Server feature, b/c we're not running the Enterprise version, so we did the poor-man's version and agreed that we'll use the real version if the loads increase. If the loads increase to this point, then we'll be able to both afford the Enterprise version and pay for a couple weeks of Dev time to re-optimize the appropriate code.
It's a very business-oriented approach to say "Hey, if we ever get that big, we'll have the money to make the system perform better". It may rankle the developer in us, but it's important to be able to identify wasted energy.
but it is unrealistic for you to expect one camp to throw away everything and basically say "whoops, sorry everyone - we got it completely wrong, the other camp were right so we'll use all their stuff now."
Hey, when you put it that way, you're right. But that's just developer hubris. That one camp of devs staunchly dedicated to the correctness of their solution and frankly that's not what I asking. I'm asking both camps to say: "The arguing is pointless b/c we have the two best solutions and the two smallest market shares, let's put aside our differences, flip a coin and run with it."
Of course, this won't happen, Linux is built by nerds for nerds; MS and Mac were built by Businessmen for Businessmen (or by money for money). And this is why I laugh when people ask about Linux as a consumer desktop OS. The guys dedicated to Linux don't actually want it to become a consumer desktop OS and so the market share will stay small. And it's b/c of the very thing you illustrated, the developer mistakenly believes that conceding their solution makes them wrong, it's the very hubris that made Linux so powerful. This has nothing to do with being right or wrong, this has nothing to do with egos, this has to do with becoming big.
"KDE and GNOME should just merge", yeah, I'm not arguing this point at all. I could understand the technological reasons for making 3 or 4 different desktop platforms, but that's not the issue.
So basically if a distribution such as Ubuntu makes a decision about the right direction to go in, I as a developer should just automatically follow them even if what they are doing conflicts with what I believe is the correct decision? Right.
You see, this is the issue, you're citing philosophical reasons, in response to a business question. I'm a programmer, I know the reasons why I would like one Window Manager over another. But I'm also a consultant and I know that professionally, number of platforms is a really big Linux issue.
What you are suggesting not only goes against open markets (where companies can have competing products and competition drives innovation),.
This would be true if *nix had any significant amount of consumer desktop share, but it simply doesn't. Right now Linux is creating competing products to drive innovations that basically no one is using (outside the server market). Linux camps are basically beating up on the other small fish by diluting an already small market share. Taking Consumer Desktop shares from MS requires some form of uniform and organized effort, picking standards and increasing interoperability is a very big part of the effort.
So am I asking you to accept designs that you don't agree with? Unless you're happy fighting over the server market, then definitely! From a business perspective fighting over KDE vs GNOME is absolutely pointless, neither decision is making anyone any money. So pick one and then start making decisions that will make you money.
But that Kubuntu derivative is exactly the problem. There is no Linux monopoly b/c anything successful (like Ubuntu) just eventually gets forked. This is good for the evolution of the OS ecosystem, but bad for the evolution of the Software eco-systems that surround the OS.
And that's the #1 problem right now. Let's face it, Linux/Debian are technically superior to MS Windows, but the lack of a unified infrastructure and the million forks completely prevent is from usurping any type of power on the desktop. I too had hopes for Ubuntu, but then it got forked. Somebody decided that their time was better spent morphing applying KDE to Ubuntu than on trying to find a way to transform Ubuntu into the premier consumer desktop environment.
And this is the exact problem, whoever made Kubuntu does not want Linux to succeed as the consumer desktop environment of choice. I'm sure this group learned quite a bit about Window Managers while they were at it, but they spent hours on the "wrong things". KDE and GNOME are both superior Window Managers. They're both better than MS offerings, so why do you need two?
Professional business-men would've picked one and cut their losses. Someone trying to make money would've said: "Hey we can't afford to operate two Window Managers, the overhead on that is crazy". A business definition of success is selling lots of copies, a Linux definition of success is well-architected, efficient and secure.
Linux is filled with people taking both roads. Want a file system? we have 5! need a Window Manager? we have 3! want a free Database manager? an Internet Services manager? go ahead we have 8 of each! This is great for making a sandbox and breeding competition but really horrible for making a system you can sell. The OS market is a commodity market, the OS has very little value, its the software that runs on the OS that is valuable. Stop trying to make it hard to make software.
Mac is going to be successful b/c they dumped all of the crap, made a whole bunch of key decisions (FS, WMM, Debian Core, etc.) and then started making software that works and selling dev tools to make more software. Truth is Mac IS what the Linux consumer desktop of choice. They decided that they wanted to sell a consumer desktop OS and then made the sacrifices required to make it happen, everyone else is just spinning their wheels.
Actually, I think it means a boost for Apple (so kind of Linux:) rather than Linux directly. Apple is intended to be a consumer desktop system and it does this very well. Linux variants are undoubtedly improving, but (in my experience) unlike Apple, the Linux systems are simply not designed to be consumer desktop system. If somebody actually did this, then you'd have an Apple competitor.
But Linux development seems more focused on generating dozens of distros and taking all of the forks in the road instead of picking something and sticking with it. For the simple example look at KDE vs GNOME. You can argue back and forth about the merits of both, but as a person building software I don't want to have to make screenshots for both and test under both, this is just needless doubling of my work.
Linux does not encourage the development of shrink-wrapped, quick-to-develop software. Part of making a consumer (non-business) OS is making decisions for the consumer (b/c they don't know how) and then to sticking with those. We can yell about the Windows Registry, but Linux has how many "replacements" (all of them better)? How does this help consumers? All it does is make things more complicated for developers rather than simpler.
Linux is like the giant sandbox of great ideas, it constantly gets better, but it's goals is not be a consumer desktop OS. Until somebody stands up and says: "This is THE linux consumer OS and EVERYTHING done for consumer (not business) needs will work here", until that day, disgruntled MS users will simply shift to MAC.
Look, at some point the laptops much connect to a storage facility (i.e.: the 'Net).
Find a backup program that can use Volume Shadow Copy to back up SQL Server databases incrementally and set that program to run. Ensure that your consultants leave the laptop on and connected for a period each day to allow the backup to happen. We're using Backup for Workgroups from Lockstep Systems which is capable of effectively restoring the entire system, settings and all.
Perform the initial backup while the laptop is directly connected and then make sure that they are running their nightlies when they're off-site. This can't be stressed enough though: no backup system for laptops will function correctly if the laptop user does not do their part. The weakest link in the chain will likely be the laptop user, so regulations on their behaviour must be severely enforced or all good plans will go to waste.
I'll actually take that one step further. Get an inexpensive backup drive with automatic encryption and throw that thing in your backpack/briefcase/car when you go out or go to work. Admiteddly, the off-line stuff is cool, but it will take days to retrieve your data.
You're primarily worried about an off-site backup in the extreme case of say, your home burning down. If your home burns down and you're not around, then you have the backup drive with you. If your home burns down and you are around, then what's left of you probably doesn't need the data anymore. Obviously, this doesn't scale if you have family or co-workers or friends that depend upon this data, but that's a totally different issue.
The other option of course, is to rotate drives and just keep one at the office (or wherever else you go regularly). If the office and the house both burn down on the same night (and they're different buildings), then you've had one hell of a crisis and maybe your computer data is not the most relevant issue right now (what you not having a home or a workplace).
Look, this article, a little vaporous, but overall the stuff you're looking into is not vaporous. If you work in the IT industry, then this stuff is actually your job. Linus and Jobs and Balmer are leaders of large amounts of IT resources. Their decisions influence millions of dollars, move hundreds of bodies and affect the way that you do business.
Paris Hilton == vapour, she's really not important, she's really just an unimportant peon of the tabloids. Linus/Jobs/Balmer, these are guys influencing the future of your industry, Google's next product may be part of your next customer solution. Don't feel bad, these are indeed different things.
in the business of selling overpriced beer
Indeed they are, but having been to several concerts/football games/basketball games/major events in the last few years, I can tell you that they have serious issues even selling the beer.
These places tend to be filled with rookie staffers and 13-year olds at the booths with no alcohol. They've been consistently incompetent and ill-prepared and simply incapable of processing large crowds.
Just last summer I walked up to the mini-donuts booth with 1 minute left in the half. They don't have any donuts popping out, they're mixing more dough... there's one minute left in the half and they're mixing dough! Hello, with one minute left in the half you have 30 bags of donuts ready to go, one batch spitting donuts and a backup batch ready to go, it's not rocket science, it's not even tough.
Point being, I've don't even buy overpriced beer at these events anymore b/c I'm just hampered by excruciating lines brought on by poor planning.
Been there, still fight it every once in a while.
From my experience, there are two things going on here:
We've all had great coding session where we sit down for 12 hours straight and do nothing but write clean, beautiful, working code. It seems to happen a lot in University in fact :), but it just doesn't scale during the daily grind. Especially where creativity and focus are involved, you'll have days that are more productive then weeks and you'll have days where you can't possibly justify the rates you were billing. These are both normal.
For point #1, you're an intern, so the work you do is probably not well-monitored or high-priority or even something that's really exciting. You probably feel like no one cares if you get this done today or next week. That's a big deal, so you have to sit down and be your own project manager. List out your tasks, jot down expectations and shoot for them. Take yourself out for a treat if you nail them and try to push for the next "speed level". This type of activity helps keep the your focus away from the mundane, which is likely what's draining you.
For point #2, get away from the computer, don't look at it for 8 hours straight, especially when you're doing something mundane. If I told you to grab an axe and chop wood for 8 straight hours/day (no breaks), you'd just laugh, man we even have labour laws that require you take ~3 breaks in that 8 hour day. These laws apply for IT people too, but we generally tend to ignore them. We'll just sit there and plug away all day, slowly bleeding focus and attention. Unless you're "in the zone", find a way to break every 2 hours: drink lots of water (forcing bathroom breaks), prep 2 snacks/day for breaks and eat them in your lunch room, organize a noon-hour walk with co-workers, set a timer on your comp/watch and take a stretch/tai-chi/desk aerobics break (you can find activities on the web), etc. Your body and your brain need breaks, in fact, your brain definitely needs time away from the screen to formulate solutions. All of my co-walkers (workers) have had "post-lunch" resolutions where they solved the problem they'd worked all morning in the first 5 minutes after getting back. They just needed time to let their brain do some "churning" and that's what these breaks help to do.
Combine both concepts and start your day with a "to-do" list that actually breaks out into four pieces (divided with 3 breaks). Then you'll be able to pace/track yourself and keep yourself interested. When your attention start dying, you can use the activity list to re-focus yourself. Don't worry if it seems odd, you've probably never worked this way before (but you've probably never worked this type of 9-5 either). So give it a try and see if you don't feel more focused and start drastically improving your output.
Wow man, your problems are a total mess.
First of all you have 30 years of experience so you should (in theory) be making way more. But there are a lot of problems with logic:
Either way, big quagmire, but if you're provably more productive and you're not earning some form of "productivity premium" then your problem is that you're being taken to the cleaners and this has nothing to do with the charts or graphs or inflation, it has to do with points #1 to #5.
Wow man, you think it's tough now, the dropping USD is just going to aggravate inflation. But hey let's get to the quotes:
am currently stuck at renting, which is a waste of money.
Wow, learn to do some math. Hit the web, the NY Times has a good Rent vs. Buy calculator. The concept that renting is a waste of money is just total BS and completely unsupported by the math. Unless you have a family or needs for large amounts of space, owning can end up being a big waste of money AND time. There are people making more from their side investments than you're making in salary and they're still renters, keep that in mind before you spout off non-sense.
(I can't even afford to buy a second-hand car at the moment.)
Boo-hoo man, a car is basically the single most expensive way to mitigate your transportation expenses. It's unfortunate that as a professional you can't quite afford a "professional lifestyle", but not operating a car is also one of the most wallet-efficient lifestyles around (right up there with renting small places). And the truth is, most people can't afford the car they are operating. How many people have you met that complain about car expenses or bitch that they had to cancel some outing b/c their car needed new tires or the transmission died? How many people do you know would miss payments and lose their car if they lost their job for more than two months? Yeah, well these are the guys who also "can't afford their cars", at least you know it.
Again, unless you have a family or large numbers of people to ship around, the car is just a giant money-hole for your transportation costs. Owning a car is actually a giant luxury, so you're not getting any sympathy here.
And before the hate comes from someone else, if your job "requires you to have a car" due to either job description or location; then that's part of your salary. If you can't work without a car or can't reduce car expenses b/c of your job, then you better make sure that your job is covering this aspect. If you didn't account for that when you signed up, then it's your loss, find a new job that will or move somewhere else and find a new job that doesn't need a car.
Clearly, just like tasers, this will cause some fatalities.
However, there's another issue here: Pain is mental. When you get hit with a taser, your body spasms, that's actually a muscle response to an electrical impulse. But here, it's just "fluttering nerve endings" which will cause the illusion of pain.
There are people who just disconnect from pain. I don't care about a bunch of "hardened marines", that just means they're used to pain, not immune to pain. I know I'm going to sound like a metaphysics nut-job, but there are people way beyond a bunch of regular marines.
I'm sure some zen monk will have a youtube video in 5 years where he just walks through the ray and turns off the device, plus there's no mention of the effect with people on drugs, what happens if I don't feel pain?
This may be the whole fatal flaw to the system, it's incurring pain as if pain were something real.
OK, we obviously have different concepts of a "class" here. Where I went to University, we divvied things up by "Credit Hours". One full year was 2 semesters (4 months each) with a total of 30 credit hours. Courses were typically 3 or 6 credit hours (one semester or two). The average cost of a course was $100-150/credit hour. So a "full course load" was 15 hour/week "in-class" + lab time at a cost of $4500.
If the gvmt subsidized 50% of actual tuition then that's still $9000 / year real cost, so you can still get out of University for less than 40k. Especially if you live "with the parents" and work full-time over the summer.
Check out my reply to the post above, somebody quoted me numbers where more than half of the "education cost" was actually "living expenses" for being in the dorm. Moreover, the housing/food cost amounted to $1400+ / month!
So subsidies or not, something still doesn't add up. At 9k / year, I could borrow the *entire* cost of my education for 40k with no money down and no payments.
Estimated On-Campus Housing (including 15 meals per week in the dorm): $5,785.00
Found your problem, that's not the cost of University, that's the cost of living. This here: Estimated Tuition and Fees: $3,708.00 is the cost of schooling. Is living on campus required at a place like Purdue? That number (3708) is definitely higher than a Canadian tuition, which is somewhere between 50-90% of that number (based on program/school), but that still only brings you up to 40k total cost (~10k/year).
I'll level with you, most Canadian University students are living at home and commuting or renting out a cheap place with some friends nearby. Most places up here have limited school housing and it's usually prioritized for specific needs (out of town students, grad student housing and special cases). Even in expensive places like Toronto or Vancouver, students can still live close to campus for $500/month rent + $200/month food + $80/month transit pass. Your on-campus housing and meal cost is ~1450/month! Do you guys get private suites with room and laundry service?
Out here you can make 6-8k working full time over the summer and then put in 10-20 hours weeks over the school year. I landed a TA position during school and I was bringing in over $500/month (in 2000 $) At 8k/year for schooling, that type of money may not cover all of the bills, but it definitely comes pretty close. Between tax benefits of student-hood and the availability of government-funded student loans, an unprepared student with no savings can still graduate debt-free.
The whole concept of American University being expensive seems to be a direct result of living in overpriced housing while going to school. I mean, by your own numbers, housing is 60% of the cost and I'm sure that doesn't include the required fraternity/sorority fees and whole bunch of other stuff that just creeps the prices even higher.
Again, you're spending more money to live on campus than you are to actually educate yourself, that sounds like money mismanagement to me.
And that's not a winning bet when it comes to paying back your $40,000 of student loans it will take to get that Bachelor's degree.
What? you're required to take on 40k of loans to pay for 4 years of courses? What is that 10k/year = 2k/course? Wow man, my fiancé just graduated from the University of Manitoba and she was paying less than 1k/course with books included. Are you working during University? Are you being forced to live in a dorm or something? Don't they have "commuter campuses"? My fiancé graduated with zero debt by living at home and working 10-20 hours / week, plus full-time summers (and getting straight As in her last 3 years).
Man, the entirety of my Bachelor's (at 30k+ student school) cost me less than 20k. I paid for bills by working part-time. I know that US universities are a little more expensive and I hear that tuitions are going up, but like more than twice as expensive? That's hard to believe. Are you sure that people aren't just graduating with 40k in debt b/c they don't know how manage their money?
What? And you didn't quit? You'd rather work long hours to fix problems brought upon by the poor decisions of those above you? You could've spent all of that OT looking for a new job. He made a shitty decision and rather than stick to your guns you just put your head down and pulled him out of the muck?
I don't know if I would call that lazy or foolish, but you just completely failed rule #1: Defend yourself
Then you have the people who complain about being unable to install software when our policies are clear that they need to run it past their supervisor first and then submit a request to finance + IT for funding and install.
But this only breeds the inverse battle: "I'm looking for an app that does X and will save us money, but I need to install 4 or 5 different trials." Which is, of course, a perfectly justified use of time.
Lastly, what were these "Side Projects"? How do you think IT figures out if a new product will help you or not....
Hey that's a softball. You arrange for (and contract in) 2-4 hours/week of dedicated continuous/ongoing training time. You explain that the work you do is evolving so quickly that they can either send you to an expensive week-long seminar every year or that they can give you 2 hours/week to "study other stuff". If they don't understand this mentality and logic, then you are clearly working for the wrong people, it's time to find a new job.
Then there's the set of users who don't understand Scope of Support & When we discussed the major database + client update
Your point is well-heeded, yeah, users aren't always the greatest clients. And to make matters worse, you're supporting a setup that you are often incapable of testing (new acct. software?) and you're supporting software that you didn't write (e.g.: bad roaming profiles). And when nothing is going wrong and you're doing your job correctly, then nobody seems to notice and they wonder what you're doing.
What's actually going on here is that most bosses don't appreciate what's involved in good IT administration. This stems from the fact that they don't understand any of it, it's all just voodoo magic to them. Of course, basically every boss has dealt with voodoo charlatans, so they end up with very little trust in the actual magicians. The real problem here is two-fold, it's not just about mastering the details of IT, it's about PR work crossing with IT work. Good system admins must also be PR specialists, they have to be able to communicate correctly with the managers they encounter, they have to be able to breed trust and generate contracts of understanding with management.
And let's face it, the big problems you're talking about stem directly from that seed. Most IT admins yell and bitch about [l]users and shitty bosses and romp on the boards b/c "no one else gets them". But they're completely failing to acknowledge that the very source of their problems is their own inability to meaningfully communicate complexity to both users and management. If you can't do this, take a course from someone who can. You spent 2, 4 (6, 8?) years learning to operate/program/manage/debug/troubleshoot computers with hours of classroom and personal time spent on some of the most obscure pieces of knowledge. If you can't be bothered to take a few months to really learn how to communicate, then you deserve all of the shit flung your way.
Not really, this is pointless. It may be nice to fix comments, but the very code itself will be rife with specific jargon that no spell-checked will appropriately handle.
Anyone who's worked with a POS system knows the definition of PO. The spell-checker won't pick up on this, but everybody (users, analysts, programmers, testers, support staff) will refer to this object as a PO. So then you'll also need to make the dictionary jargon-aware. Don't know if you've ever been on a government or large-business project, but this is an issue in and of itself. It's typical for big companies to actually have an on-line list (wiki-style) of the "commonly-used" acronyms in the company, and they're not all 3 letters.
I mean, is this function name incorrect? TransferUrisPOToJiruSofToPrint. That means something to people I worked with, but means absolutely nothing to the spell-checker. So even if you or someone else has "the solution", this is definitely not some type "hey, just add spell checker" problem, you're also pumping in 4 different acronyms just to make this function pass.
Mass renaming, simply does not scale. If you've written an API or a common library or even just an interface you can't run around just renaming stuff. Sure it's good on your one little project, but the software giant paying MS millions instead of hundreds probably don't developers renaming pieces of the API they released last month!
If they image analysis tool becomes the image data collection tool, why do you have to rename tons of libraries? Can you even rename these existing libraries? How are you going to coordinate with the other 10 developers on your team?
We're not talking about plans gone mildly awry here "upon contact with the enemy" here. We're talking about a mass refactoring that affects large swaths of people. We're talking about a deliverable product that has to make money and you're telling me that we have to spend time renaming Public parts of the API, updating the documentation, update related database items, update the Test Cases, inform the VARs of the updates, etc...
No you're talking about small-time development with none of these constraints. That stuff generally counts as "largely irrelevant". I know, I work at a small software co with less than 10 guys, we're not paying thousands of dollars for Team Studio, we count as largely irrelevant :)
No I'm the guy who works on multi-person projects where you can't just check out the source tree and rename a project without breaking a lot of other projects.
Don't get me wrong, I've done this before. I've had to rename large swaths of code, but unless you're basically alone or working on a completely fresh project, the actual renaming is the smallest part of the process. You have to let people know, you have to isolate whole sections of the source tree and lock out co-workers (who all have to know what you're doing) you have to bring in some type of testing etc. The whole problem gets worse if you've developed an API or some form of interface.
So two reasons: new project; work alone. If you have a new project, sure maybe the utility is useful to have, however the utility is definitely making up for some questionable planning. I mean, why would you change the product name on the third week of development? Product branding change? You were working on an important and relevant project that didn't even have branding in place? Change in functionality makes the names you selected incorrect? Design / planning problem. If you work alone, well hey good for cleanliness!
Point is, this mass-rename feature is "nice to have", but it's fundamentally there to correct big mistakes. This functionality comes at the expense of a dangerous amount of power. It's a giant eraser that can cost hours of time and the people who pay the most for licenses (enterprise) are the people who least want to see this tool. From a financial standpoint that counts as "largely irrelevant", even though I'd have liked such a tool once or twice.
As mentioned, VS2005 has some powerful renaming tools.
However, the other thing you're missing is that your case is largely irrelevant. Names should be accurately picked during the analysis and design phases. Why you're even re-naming things more significant than a class level private variable while programming, I don't know.
If you can afford to rename something from the project level all the way down, then you're clearly the only person working on the project. If you're the only person working the project, then who cares about the naming, you're the only one using it. Either way, your case is largely irrelevant.
Yeah, but does ISO have any more credibility in this regards than does, say, the US Patent Office? I'd love to come down on these guys, but you really can't, the whole concept of standards and interoperability in computing has basically been one giant mess for at least a decade (some would say 2 or 3, but I'm not that old).
Look, we can probably standardize hardware quite well over the long-term, hell my new Mobo still has a parallel port (why?!?). At the least, our ability to generate paperwork standards is fully capable of keeping up with our ability to design the next generation of parts and retrofit factories for the changes. But we cannot "keep up" with the software changes, they happen too fast and we don't have any good laws or even lawmakers with a good concept on the nature of software.
And that makes sense, lots of people can't correctly absorb first-year calc and linear algebra (aka:vectors), it's just too abstract. Working software is an entire magnitude more abstract! Software is still akin to magic in most people's eyes.
So how do we write laws to govern this stuff? Patent laws can't account for software, it's just different enough to be outside of any originally intended scope. But copyright laws don't really cut the mustard either b/c they were never created with software in mind. To make life worse, software is not just the finished product, sometimes it's the process that's special (new algorithm), sometimes it's the implementation that's special (more efficient algorithm) and sometimes it's the package deal (swiss army knife).
So the ISO will do what they can, but the concept of "standards" simply doesn't apply very well in a free-market software environment. They're just changing too quickly to have any real relevance. Everyone wants their own version of the standards b/c that's their competitive edge. At the best, standards organizations can be "behind" the software curve, but it simply can't lead.
Good "conspiracy theory". Ever heard of Singularity? Whole OS written in C, Assembler and Managed .NET. They've end-of-lifed FoxPro and VB6, I'm sure that ASP will dying. They've started moving big chunks of Office 2007 to .NET so it's probably just a matter of a few years before they're ready to dump everything into managed code and start rolling out Singularity (Windows 2010?).
You're really not that far off, people have been "waiting" for Vista, but this is really a throwaway OS, nobody is using it and it's not like business is "clamoring" for even this version. Heck many Enterprises have just finish rolling out XP. The new WPF and WCF will surely be functional under Singularity, and Enterprises are just now moving to Managed Code applications (check out the market for ".NET developers"). MS won't die away if this Vista "fails", so we're probably all looking at a Managed Code future in 2010 or 2011 :)
I think I do have a bit more common sense than a lot of the people who do end up raising kids though
Watch the intro to Idiocracy, laugh a whole bunch and then realize that they're right. Most parents (and I do mean 50%+) don't have a lot common sense, that's the very reason they end up having kids.
The people who are self-aware enough to recognize the limitations of their current parenting skills are the same people who are smart enough to avoid having kids. It's actually an aggravation of the whole "rich getting richer and poor getting poorer" phenomenon, which works out really well for the rich b/c they just get more peons to control on each successive generation. But that's a different post... :)
I'm in a small shop and we do this too. Truth is, we don't even have a real DBA, but a few of us know SQL Server really well. The reason we actually do it this way is cost. On small projects, Dev time is really expensive, server resources are not. If you can support 30 more clients with one $5k server, then it's simply not worth Dev time to stress over performance.
Truth is, if performance is becoming an issue, then the project should be generating enough revenue to justify the Dev time spent on performance tuning. As Devs, we'd like to build a highly-performant system every time, but as business owners, dev time is the greatest expense and needs to be kept in check. Really, using SPs and Views and building in good logic into your Data Access / Business Object / Entities / Whatever layer(s), is likely the best way to keep up performance for small to mid-sized solutions.
Classic example, we just implemented some "partitioned table" in SQL Server 2005. We didn't use the actual SQL Server feature, b/c we're not running the Enterprise version, so we did the poor-man's version and agreed that we'll use the real version if the loads increase. If the loads increase to this point, then we'll be able to both afford the Enterprise version and pay for a couple weeks of Dev time to re-optimize the appropriate code.
It's a very business-oriented approach to say "Hey, if we ever get that big, we'll have the money to make the system perform better". It may rankle the developer in us, but it's important to be able to identify wasted energy.
but it is unrealistic for you to expect one camp to throw away everything and basically say "whoops, sorry everyone - we got it completely wrong, the other camp were right so we'll use all their stuff now."
Hey, when you put it that way, you're right. But that's just developer hubris. That one camp of devs staunchly dedicated to the correctness of their solution and frankly that's not what I asking. I'm asking both camps to say: "The arguing is pointless b/c we have the two best solutions and the two smallest market shares, let's put aside our differences, flip a coin and run with it."
Of course, this won't happen, Linux is built by nerds for nerds; MS and Mac were built by Businessmen for Businessmen (or by money for money). And this is why I laugh when people ask about Linux as a consumer desktop OS. The guys dedicated to Linux don't actually want it to become a consumer desktop OS and so the market share will stay small. And it's b/c of the very thing you illustrated, the developer mistakenly believes that conceding their solution makes them wrong, it's the very hubris that made Linux so powerful. This has nothing to do with being right or wrong, this has nothing to do with egos, this has to do with becoming big.
"KDE and GNOME should just merge", yeah, I'm not arguing this point at all. I could understand the technological reasons for making 3 or 4 different desktop platforms, but that's not the issue.
So basically if a distribution such as Ubuntu makes a decision about the right direction to go in, I as a developer should just automatically follow them even if what they are doing conflicts with what I believe is the correct decision? Right.
You see, this is the issue, you're citing philosophical reasons, in response to a business question. I'm a programmer, I know the reasons why I would like one Window Manager over another. But I'm also a consultant and I know that professionally, number of platforms is a really big Linux issue.
What you are suggesting not only goes against open markets (where companies can have competing products and competition drives innovation),.
This would be true if *nix had any significant amount of consumer desktop share, but it simply doesn't. Right now Linux is creating competing products to drive innovations that basically no one is using (outside the server market). Linux camps are basically beating up on the other small fish by diluting an already small market share. Taking Consumer Desktop shares from MS requires some form of uniform and organized effort, picking standards and increasing interoperability is a very big part of the effort.
So am I asking you to accept designs that you don't agree with? Unless you're happy fighting over the server market, then definitely! From a business perspective fighting over KDE vs GNOME is absolutely pointless, neither decision is making anyone any money. So pick one and then start making decisions that will make you money.
But that Kubuntu derivative is exactly the problem. There is no Linux monopoly b/c anything successful (like Ubuntu) just eventually gets forked. This is good for the evolution of the OS ecosystem, but bad for the evolution of the Software eco-systems that surround the OS.
And that's the #1 problem right now. Let's face it, Linux/Debian are technically superior to MS Windows, but the lack of a unified infrastructure and the million forks completely prevent is from usurping any type of power on the desktop. I too had hopes for Ubuntu, but then it got forked. Somebody decided that their time was better spent morphing applying KDE to Ubuntu than on trying to find a way to transform Ubuntu into the premier consumer desktop environment.
And this is the exact problem, whoever made Kubuntu does not want Linux to succeed as the consumer desktop environment of choice. I'm sure this group learned quite a bit about Window Managers while they were at it, but they spent hours on the "wrong things". KDE and GNOME are both superior Window Managers. They're both better than MS offerings, so why do you need two?
Professional business-men would've picked one and cut their losses. Someone trying to make money would've said: "Hey we can't afford to operate two Window Managers, the overhead on that is crazy". A business definition of success is selling lots of copies, a Linux definition of success is well-architected, efficient and secure.
Linux is filled with people taking both roads. Want a file system? we have 5! need a Window Manager? we have 3! want a free Database manager? an Internet Services manager? go ahead we have 8 of each! This is great for making a sandbox and breeding competition but really horrible for making a system you can sell. The OS market is a commodity market, the OS has very little value, its the software that runs on the OS that is valuable. Stop trying to make it hard to make software.
Mac is going to be successful b/c they dumped all of the crap, made a whole bunch of key decisions (FS, WMM, Debian Core, etc.) and then started making software that works and selling dev tools to make more software. Truth is Mac IS what the Linux consumer desktop of choice. They decided that they wanted to sell a consumer desktop OS and then made the sacrifices required to make it happen, everyone else is just spinning their wheels.
Actually, I think it means a boost for Apple (so kind of Linux :) rather than Linux directly. Apple is intended to be a consumer desktop system and it does this very well. Linux variants are undoubtedly improving, but (in my experience) unlike Apple, the Linux systems are simply not designed to be consumer desktop system. If somebody actually did this, then you'd have an Apple competitor.
But Linux development seems more focused on generating dozens of distros and taking all of the forks in the road instead of picking something and sticking with it. For the simple example look at KDE vs GNOME. You can argue back and forth about the merits of both, but as a person building software I don't want to have to make screenshots for both and test under both, this is just needless doubling of my work.
Linux does not encourage the development of shrink-wrapped, quick-to-develop software. Part of making a consumer (non-business) OS is making decisions for the consumer (b/c they don't know how) and then to sticking with those. We can yell about the Windows Registry, but Linux has how many "replacements" (all of them better)? How does this help consumers? All it does is make things more complicated for developers rather than simpler.
Linux is like the giant sandbox of great ideas, it constantly gets better, but it's goals is not be a consumer desktop OS. Until somebody stands up and says: "This is THE linux consumer OS and EVERYTHING done for consumer (not business) needs will work here", until that day, disgruntled MS users will simply shift to MAC.
Look, at some point the laptops much connect to a storage facility (i.e.: the 'Net).
Find a backup program that can use Volume Shadow Copy to back up SQL Server databases incrementally and set that program to run. Ensure that your consultants leave the laptop on and connected for a period each day to allow the backup to happen. We're using Backup for Workgroups from Lockstep Systems which is capable of effectively restoring the entire system, settings and all.
Perform the initial backup while the laptop is directly connected and then make sure that they are running their nightlies when they're off-site. This can't be stressed enough though: no backup system for laptops will function correctly if the laptop user does not do their part. The weakest link in the chain will likely be the laptop user, so regulations on their behaviour must be severely enforced or all good plans will go to waste.
I'll actually take that one step further. Get an inexpensive backup drive with automatic encryption and throw that thing in your backpack/briefcase/car when you go out or go to work. Admiteddly, the off-line stuff is cool, but it will take days to retrieve your data.
You're primarily worried about an off-site backup in the extreme case of say, your home burning down. If your home burns down and you're not around, then you have the backup drive with you. If your home burns down and you are around, then what's left of you probably doesn't need the data anymore. Obviously, this doesn't scale if you have family or co-workers or friends that depend upon this data, but that's a totally different issue.
The other option of course, is to rotate drives and just keep one at the office (or wherever else you go regularly). If the office and the house both burn down on the same night (and they're different buildings), then you've had one hell of a crisis and maybe your computer data is not the most relevant issue right now (what you not having a home or a workplace).