Intellectually, I know that if it were more complex, there's no way it would have seen widespread adoption, and that markup is actually still complicated for many people. I can even look back at the early days of the web, when Marc Andreessen butted heads with Tim Berners-Lee about the media tag meant to display images, sounds, video and anything else and said, 'Screw it, you guys take too long to decide anything and it's over complicated, here's an img tag, done.' - and I can see how simple beats theoretically perfect and well designed.
However, we're already at the point of widespread adoption now, and it's a good time to have a new css that actually is a programming language, with flow control, dynamic calculations of element values, and so on. This is what we need to provide real separation between the document and how it looks. Anyone experienced enough to write non-trivial web applications that are meant to be run on a browser, tablets of varying sizes (including accounting for reorientation), and even cell phones knows that it's unrealistic to use a single page - you get sent to the 'mobile' variant of the page or elsewhere.
Css has been around for 16 years and it still lacks the ability to easily declare a completely separate layout based on display height or width, something like "If width is less than _x_, use this css, else this" or "set width equal to - 30". If you want those things now, you have to use javascript, and it's sometimes pretty awkward - like calculating the width of an element filled with content prior to displaying it.
To you folks who cite javascript to fix this, realize that css no longer manages the document display at that point, the javascript does. That means that css is missing something required to manage a display. It can only do some of it's job.
- side thought; I'd be happy if css allowed javascript within the css. Assign values based on closures or predefined functions. Simple fix -
Disclaimer: I think it's silly, but I'll try to keep my personal opinions restricted to parens.
A rape trigger is apparently anything that could cause negative feelings in a person based on their experiences with rape, or sympathy with those who have been raped. (as opposed to the norm, I guess, which is everyone is pro-rape?)
So, talking about rape is an obvious rape trigger. Talking about being powerless is a rape trigger. Talking about sex is a rape trigger. (even loving, consensual, romantic sex.). Talking about drugs, or the role of women in society, human rights violations - all rape triggers.
Like the warnings before TV shows, some groups prefix their discussions (usually men-and-sex-are-pure-evil feminist blog entries) with a list of potential rape triggers (the list, by-the-by, is also a rape trigger). In this way, the person who is sensitive to these triggers (and more likely, those who are attention whoring and overly-sensitive to those who are sensitive) may avoid the discussions.
(This post is also a rape trigger, due to it's content)
I have been doing side jobs for a long while now, and I've can't stress the parent post enough - it's a lot more work than just programming. Like, 80/20.
It means that I have to be an incredible communicator, since I'll not only be the entire technical team, I'm the analyst, tax accountant and lawyer as well. I need to distill the verbal needs into discrete requirements, estimate costs, lay out contractual obligations, and so on. It's a heap of work. It's _real_ work, same as I do in my day job, just more varieties of it in less time.
Say I'm contracted to build a website - nothing too fancy, 1 main page template, 1 subpage template with 5 variants, a sign up form, bunch of javascript, database on the back end. I can manage that in a few hours. Actual effort including changing requirements, various designs, deciphering their documentation, getting hosting/account/access, fixing the provided assets, walking through setup, helping the copywriters populate the pages etc = 40+ hours. Doing it well enough that they feel I'm not only professional but exceptional - and they're getting their money's worth - quite a bit more.
Don't get me wrong, it can be personally rewarding both financially and intellectually, but it is a job, and it's not even my primary job.
I've found that I can manage as long as I set strict limits. I have to cut off potential clients as soon as they start making demands that aren't compatible with having a separate full time job; meetings during my normal working hours, travel, iterative development, taking vacation time from my primary job to work on a contract, etc. I stress the importance of having a predictable schedule - they can have it fast, but they can't have it now - I can't count the times a client left a voicemail with something like '...and it turns out we need it by tomorrow's 8 am meeting'. I try to stick with known business contacts, and maintain my business relationship with them - which is more time spent.
In my experience, projects of smaller size end up being horrible. I avoid Rentacoder and other similar sites since they appear to be unable to pay actual market value for the many of their tasks, or focus on items of dubious use - like the old request for forum-specific email harvesting programs. Outside of certified job posting sites, I have to worry about even getting paid. (If you want a scare, read http://clientsfromhell.net./
I don't know how you could do this casually and profit. It takes dedication of time and energy. I probably spend 30-40 hours a week on my side contracts when I'm active, but I work less than every other week, on average. Everyone wants an early completion date, but they rarely have their projects lined up in a row. I also find myself scheduling breaks, days I don't work, just so I can unwind a little.
It's ironic, but it takes a lot of stress to get yourself to a point where you can relax and enjoy what you're doing.
I think that if your goal isn't money, but rather to have fun, I recommend what other posters have suggested - find an OSS project. Something you can enjoy for itself, but not something that you're contractually obligated to spend your nights and weekends on.
Most colleges are not vocational colleges - that is, they do not focus specifically on work skills that you'll use in a job. They are not specifically training you for a career, rather, they're providing you with the theoretical foundation and building blocks to understand, appreciate, and contribute to a specific discipline. That some of these provide job skills is at best a secondary concern.
If you want to have a specific job, or follow a specific career, then focus on that job or career. We're starting to move out of the era of college-degree-required (at least for IT-related jobs) so there's no great stigma.
That's not to say a college degree is worthless however. As other posters have no doubt pointed out, there's a big difference between being able to make something work, and make it work well. Without understanding the theory, that information is hard to arrive at. If the technology changes, that theoretical knowledge allows you to evaluate the new offerings on an even footing, rather than having to diverge from your specialized skillset.
Last, and specific to web development in general, I've noted two types of folks that call themselves web developers. One makes pretty pages, and one makes web applications. The two rarely seem to share skillsets. One relies on artistic flair and a knowledge of HTML, CSS, and some common javascript libraries - but nothing fancy. The other usually seems to need a good grounding in HTML, CSS, and javascript, but focuses on back-end development, database management, and so on.
If you're going to be the first type - a computer science degree is probably not very useful. If you're going to be writing web applications, a computer science degree is probably going to be very helpful.
I switched to U-Verse when they had a switch-discount program, but only for about a month. The problem was that nothing worked.
I actually wrote a program to track when I was connected. In a 3 day period, I had around 200 outages, each requiring between 3-5 minutes before the connection was regained. I literally could not use it to work from home - the time required to perform the VPN connection, get back to the machine I needed to use, and get back to work was just barely shorter than the average uptime.
I reported and had techs out to fix this problem on 3 separate instances, and in each case the techs found a new problem, and blamed it on the incompetence of the previous tech. Then it would work more or less well for about an hour, before having the same problems again. Despite not being able to provide me with phone, tv, or internet service in a usable form for over a month, they refused to refund any money, and only offered to credit us for free months of their non-working service.
Switched to Time Warner who not only gave me a better deal for switching, but credited me with a free month to make up for U-Verse not doing it. Not that their random downtimes and slower-than-advertised-speeds-most-of-the-time are as well appreciated, nor their apparent throttling high-usage systems by mac address - at least in the Austin area - but at least the damn thing works.
Again, the root problem is a cultural one, not simply the presence of guns. In this light, federal registries appear to be nothing more than a dodge, focusing on one small piece (tracking) of a symptom (gun crime) of the actual problem. Not only that, if Canada's gun registry is any measure, it'll have no appreciable impact on crime, and it will cost billions. In every way, it's an irrational choice unless your goals are simply to "get a gun registry" - any conceivable benefits it produces can be had more easily or more cheaply or both, without unnecessary additional restrictions.
It brings to mind cities that want to fix trouble intersections. The obvious, cheap, statistically proven, and simple option is to increase the length of yellow lights. Less accidents result. Some come up with an alternate 'solution', speed cameras. The real goal is not safety in these cases, it's revenue. Especially when they shorten the yellow to increase finable violations - and accident rates as well. To claim that the real goal is anything else is either to admit a level of stupidity that would make it difficult to function on a daily basis, or more likely, is simply a lie.
For some reason, guns spark some primal emotions that we can often add "irrational" as a choice, instead of simply saying someone is stupid or a liar. This goes for both sides of gun control arguments.
I didn't say that locations or living conditions were an issue; in fact, there are strong correlations between having a good education, being financially stable, criminal activity, and living in a nuclear family (where both parents are present). These relationships are common sense, but they're also demonstrably significant. Statistically, having a distant ancestor who was a slave appears to have no correlation.
Don't take my word for it though, do the math. If the US's data isn't enough for you, look at these same racial groups in other nations - if you're interested in including it, even in those with a similar history of slavery as the US - and note that in developed nations, there's a significant skew in standard deviations between racial groups there, and in the US. In other words, it's an oddity, even with similar backgrounds.
In layman's terms, it's obvious there's a problem, and what it is, what's not obvious is how to fix it, and we're hindered by political correctness making it difficult to target, much less discuss. It may just be as simple as encouraging education, financial management, avoiding crime, and advocating for parental responsibility, and it may very well be cheaper and more likely to work than trying to ban a small range of weapons that are used in less than a percent of violent crimes in the country. Focusing on a 'solution' that won't fix the problem is irrational.
Waaay back when, I hit the Bureau of Crime Statistics, the Dept of Justice, and the FBI websites to see all the data relating to violent crimes, gun crimes, and so on.
According to our own records, automatic or high-capacity weapons are used so infrequently to perpetrate crimes that they don't even have their own separate breakdown - they're sloshed into the 'other' bucket with weapons like 'talking billy bass animated fish sculpture'. The most popular weapon for crime appears to be cheap semiautomatic pistols. The cheaper the better.
If your goal is to reduce gun crime, it seems like focusing on automatic rifles and other scary-sounding guns is dumb. Even if they had the potential for greater harm, the smaller guns have actually realized their potential. Of course, if the goal is not just myopically focused on guns, and instead it's meant to reduce suffering, to save lives, and so on - why does no one look at the statistics that say there's more than twice the number of suicides by gun in a year than murders in the US? If we're going to spend money, why not focus on the sectors with the biggest benefits?
(as an amusing aside, check out the violent crime breakdowns by race. What if it was politically correct acknowledge the groups that are outliers by several orders of magnitude, and try to focus on fixing the cultural problems that cause it?).
I'm not going to argue that humans aren't good at rational analysis of probabilities - there's reams of data to show that our instincts which kept our ancestors safe in the wild actively work against us when it comes to rational, long term decisions. It also shows us that the associations we make are usually shallow and immediate. The knowledge of one improbable thing only impresses upon us that that same improbable thing is not as improbable as we once thought.
So the knowledge that someone won the lottery may make it more likely for an individual to decide to buy a ticket, but they won't consider super-powers any more likely than they did before.
The biggest hit to my productivity is bad requirements, which usually comes directly from the lack of empowerment of the developers. We know bad requirements when we see them, but rarely do we have the ability to push back. However, we all know, without good requirements you can't deliver a good product without unnecessary iterations, much less design for future usage and so on. The best you can do is make a series of somewhat-related mediocre guesses about what needs to be done. Then wipe half of it out when the team comes back because they were smoking meth during the planning phase.
The second biggest hit to my productivity at any given job is when it's implied or expected that any programmer can and will wear every hat associated with every piece of network or computer hardware and software. That they're some sort of universal replacement for every skilled job that includes computers.
If I write Java code, why would you expect that I'm the right person to install SAP? What about writing a file parser indicates I know how to make complex custom graphs in excel, can administer 250 windows servers, will fix the toner cartridge on the printer, will crawl under desks to track down a bad network cable, or should be troubleshooting a customer's firewall configuration, or building a QA test environment?
Even when I do have those skills, it is not very efficient for me to be multitasking on an hour-to-hour basis. Hard to get into, and stay in code-mode with constant context switching.
The best interview-test I ever had placed me, a computer with a collection of IDE's, an internet connection, and someone in the company who was already an employee in the room, and asked me to work with him as a team to write a simplified wget clone. We found some non-gpl'ed open source implementation in about 3 minutes, made the necessary changes in another 2, and finished with debugging and unit tests in under 10. It was so fast that they ended up asking us to support https connections as well to fill up the rest of the allotted hour.
I thought that was a pretty good test; it simulated what they'd actually be doing on the job - working in a team to produce output, without being artificially limited by unrealistic constraints like lack of an internet connection, auto-complete and in-line access to docs via the IDE, and re-use of preexisting code. At the same time, they could tell whether or not I was practiced with the IDE of my choice, if I had a familiarity with the language, and whether or not I was a good fit with their corporate culture.
Pity that most companies still do the 'test to see if you know how to reverse a linked list'-style quizes.
Too many people seem to be focusing on this as a technical or engineering problem that can be fixed by education, rationalization, discipline, design, or process. The info I see above seems pretty well thought out and rational, each person focusing on one facet of the symtom, and trying to leverage a fix.
I'm not surprised - that's what I come to slashdot for.
However, this is fundamentally a communications issue with potential business ramifications.
You want it changed for the better, you need to put a price on it, and show it to management. It's that simple. I'm assuming it's in man hours spent on bugs, and lost sales due to poor quality code engendering bugs, bring-up time for new employees, migration/maintenance costs for tools, etc. Not speculation either, actual literal costs. The next best thing is to find a manager who understands the actual costs, who agrees with you, who can then put a price on it and show it to management.
The outcome may be firing, it may be company mandated coding styles, it may be enforced design process, it may even be the adoption of a new development framework or third party release management system. However, if you can't put a dollar value on it, there's no business reason in the end.
As a side note: I just left a company which had this type of problem, and were at the point where 80-90% of the dev staff were involved in bug fixing only. Management's opinion was still that refactors or other mechanisms to reduce bugs and produce well thought out designs were still more expensive than delays in releases due to lack of manpower for new features. So even when it seems apparent from a technical problem standpoint, the finances favored the mess.
Perhaps I'm an optimist, but I think Roberts has demonstrated that he has the know-how and ability to produce this game. The information available about the game, the time table, the apparent openness and speed at which questions have been tackled make me believe that the game is being well thought out. Not just the design and gameplay, but the entire lifecycle. The hefty 7.2 million war fund helps too.
I've got doubts and questions, but they're mostly about the multiplayer experience. If they can deliver on the single-player game alone, I'll feel well satisfied.
I look at the production history of the company and I wonder if they can pull of an A game of significant scope after having so many previous false starts, and a history of producing buggy games, only a few popular titles and failing to complete products.
To make a comparison, 3D Realms/Apogee put out more than three times the number of games Frontier Developments was working on in the same time period, and many of them enjoyed impressive sales and popularity, even compared to reasonably popular Frontier Development projects like the xbox port of Roller Coaster Tycoon and an expansion pack. Elite 4 (now Elite: Dangerous) was announced in 1998, so it's been in development in one form or another for 14 years.
Don't get me wrong, false starts and a limited number of original A-class titles for the last 2 decades doesn't detract from the fact that David Braben was a pioneer of the space sim genre, nor does it affect his ability to produce innovative ideas or the potential for astounding games. It just makes me question if the necessary business acumen is there to push reality out of the way for long enough to make an innovative, astounding game, with enough safety net to allow the risk of failure that is so necessary when pushing boundaries, and a realistic schedule that allows enough new/neat along with the established fun gameplay to really set it apart from other titles and it's own direct predecessors.
If I were to continue the 3D Realms/Apogee comparison, I'd note that they had a successful game they made several sequels for as well. The last started development in April 1997 and continued in one form or another till 2011, when Duke Nukem Forever was finally released. This from a company that was several times more successful, with a greater wealth of experience both in game design and publishing.
I'd be overjoyed if this project lived up to even a reasonable number of the expectations we've heaped on it over the years, but at this point, I doubt that it'll even produce an average quality game: I'm expecting to be disappointed. For now at least, I'm going to pin my hopes for a space-sim on Star Citizen.
I'm a software dev, and I could do a decent evaluation for anyone from architect down to data-entry, but I don't know that there's anything in my background or skill set that would mark me as being especially able to evaluate a manager based on their day to day duties.
That being said, what I could look for that's important for my manager to have that affects MY day to day duties - which is going to be the minority of what they do - is awareness of the technical processes, awareness of technical limitations, and a reasonable shot from the hip estimate of costs and risk they think a given task will require.
I have had managers who have asked me to get a remote server with no external access email us when they or their internet connection goes down. I've had folks who don't understand that if I push a change of a major subsystem directly into production after working on it for only a few hours, it could very well take down all customers. In many cases, these folks won't be able to justify or even consider the costs for refactors, or for separate test environments, but it's a little late after they've told their boss's boss they'll hit the deadline and now you're on the hook for it.
Beyond those things, just check to see if his management style gels with how your company like to work. Some folks like teams, some like seclusion. Some managers are hands on, some are hands off. Some like rigid project plans, others prefer desk drive-bys. Make sure that their style is good for your company, and for you.
Actually, I had no problems installing and running these types of apps locally. Follow their suggestions and requirements exactly, and I've never had a problem. Deviate from them, and you better hope you know what you're doing with custom systems and installs.
But just to get the damn thing to run? That should be able to be done by a first level tech.
These pieces of software are not written for the first level tech. They're not written for the software dev who's forced to wear too many hats. They're not written so that your administrative assistant or their mom can install it. Where do you see those requirements, or where is the monetary incentive for these companies to do that? What significant population of their user base drives such a requirement?
These apps are written for people who are trained to install and administer them. They are complex, and unapologeticly so. There's no money in simplifying them, and frankly, they're not actively courting the lone developer at small company X that doesn't have the budget for the retail 300k/yr or better package or won't spend the time to learn their complex system. Their actual paying customers don't have the same problems, so naturally, those issues are ignored.
Aside from logistics making this a non-priority, there's also the issue of compatibility. The fact that someone who isn't suitable for it is tasked with installation and administration of these apps shows ineptitude of management, not a fault of the software or even the user.
So in summary:
- There's no assumption that an untrained person will be using this software.
- There's no business motivation to write the app for untrained individuals.
- Despite that, there's nothing stopping someone from simply following their instructions and getting it running.
I understand the desire that all software products everywhere be accessible to everyone without instruction, but the fact of the matter is that complexity in processes engenders complexity in execution. You can only make a complex thing so simple, and no simpler. (example: Could you easily simplify GCC and keep all the features?)
This is where other products come in to fill those niches, like MySQL if you didn't need Oracle.
This was the first company I had worked for - including startups - that was this badly managed, and I've been doing this for 15 years.
I think that 40% dev work on bugs in a continually-updated, large product seems reasonable. 10% seems like an exceptional - but realistic goal. At the 80-90% point where your devs are working and on call 24/7 just so you can fall behind less quickly, you need to re-evaluate how the product is being managed. It then becomes a more than an SDLC issue; it engenders problems with morale and the loss of experienced personnel, and encourages an attitude where you do just enough to get by in the day, because you can't afford to be personally vested in the product or company.
I see where you're coming from, but you're not talking about installation. You're talking about running. Also, the output of a program is not a 'customization', it's a product. I don't create a spreadsheet and say, "Look, I customized OpenOffice!".
Installation of GCC can be potentially painful. Once you start getting into actual customizations like cross-compiler libraries, or having to bootstrap whatever native compiler you have on the machine - I still have a CD with all the bootstrapping utils to build GCC on HP-UX, and old versions of Solaris, like replacements for sed, ask, and as required by the build. All the same, once you get it built and the make install completes - or you've got an OS that will just aptitude it for you, it doesn't require a lot of interaction or maintenance. It's not a server, it doesn't have a persistent runtime, it tends not to be clustered or distributed, and so on. The customizations are generally done at build time, there's precious few system-wide persistent GCC settings that you'd ever want to change.
For the most part, you can get away with the defaults, and they're good enough.
The intended audience of Oracle or SAP tools is not the guy who's going to want the default settings (no matter how reasonable you could argue a single set will be). For the same reason I picked Slackware; if you're the guy who just wants to click 'next', then it's probably not the right distro for you.
As a side note: you can install oracle with the default settings, and get a perfectly useful - but non-optimized install. It's not going to be accurate for measuring speed or throughput, but you can write code against it at least. Of course, you're trying to run a race car that hasn't been tuned up, so expect to crash a few times, especially if you don't understand the requirements to drive it - but the point is that it's a race car, not an astrovan. That you don't know how to drive the race car, and end up crashing it is less to do with failures for the race car, and more to do with your expectations of the experience.
The virtualbox install of Oracle that was providing the 500 error? Chances are that it was due to network issues with the virtualbox install. I can say that from personal experience, but it's really just a guess until I check log files. The fact that it was provided as a virtualbox instance makes it likely it was properly configured, so the error was likely on his side, somewhere. Is that Oracle's fault, or is it the commuter who try a few laps in a formula one race?
(That he tried a reinstall before checking the logs just hammers home the point that he's not the right person to be doing this. He sounds all... well, let's be fair. Microsofty. Reboot/reinstall to fix a problem? For enterprise apps on linux machines? Really?)
That being said, it doesn't let people off the hook for writing shoddy products, I just don't see good examples of that happening here. I see someone trying to learn how to install and run highly complex software which requires it's own skillset, and treating it like it should be no more difficult than a mobile phone app.
There is a problem in what you've stated, and it comes down to the last line, "entirely the discipline and ability of the team and its management that makes all the difference"
I've know a lot of exceptional programmers, and I've known a few absolutely horrible developers. However, I've known of NO developer who wanted to push code out that door that was just awful. Rather, I see a lot of developers end up over-engineering on every level to ensure that their product is the brightest, best thing ever. If they had all the time in the world, I'm sure their products would be simply exceptional.
On the other hand, I haven't worked for a single manager who, when the chips were on the table, said something along the lines of, "We'll give you 5 more moths to refactor this, to ensure that ongoing updates and maintenance will be straightforward, and our internal tools can support automation of common tasks," instead of "Just make it work, we'll worry about the rest in the next release."...and when the next release comes up, it's, "We promised these new features, we don't have time to refactor: if it ain't broke, don't fix it."
I actually just left a company which has been fighting this problem for so long that the entire dev department is spending 80-90% of their time tracking down reported bugs, and the remaining time cramming in whatever was promised to the customers in the fastest way, damn the maintainability. Each year, the cost of bugs and maintenance has gone up, and the devs are now all on call - the operations team cannot support the product themselves anymore. Think about that; you are a developer, and you are on call. 24-7.
The problem is that you need an exceptional development manager who can fight the good fight for the good of the product and the company, and can make the subjective value of code reuse, good architecture, and so on apparent to those above and around him. The company needs that discipline you point out to set realistic customer expectations, to train their sales people not to overreach just to ensure a sale, to listen to the development managers when they describe cost, manpower required, and so on.
Of course, that's only if you want a perfect product, with ever-decreasing quality returns for your time and money investment. It's probably impossible for a developer or even development manager to say where the pivot point is in the market; where time and money spent on quality causes a potential loss of revenue for a product. Unless we're talking about military, healthcare, or hostile environment systems (subs, satellites, space travel, etc), there IS a point where the cost for quality is too high.
In layman's terms, the cost to make high-quality software exceeds the price people would be willing to pay for it. This means that we're all going to be happy 'enough' with imperfect software.
To those who haven't read the article, the author posits that testing two same-purpose pieces of software to see if they generate the same result is a simple proposition. Then we find out that the systems are SAP and Oracle. This is not like installing two mp3 players, these are the poorly-defined field of 'enterprise apps'.
I don't disagree that the installation for anything claiming to be an enterprise app is usually hard. Setting either SAP or Oracle ~properly~ requires expert knowledge, and running either ~properly~ requires expert knowledge. This is expected, because it's an extremely complex product which is meant to be deeply customized to your own business solutions. This is similar to the gulf between installing the next version of windows and installing, say, a slackware distribution. One is more about clicking next, while the other requests explicit knowledge of the system in order to tailor it to your specific needs, and even after install requires effort to make it usable. One requires you know nothing, and allows almost no customization, the other expects you know everything, and allows an almost infinite level of customization.
That's why the install of MySQLwas so easy for him. Nothing against MySQL, but I'm not going to put it in the same category as Oracle or SAP. It's not trying to be either of those - it has it's own niche. It just doesn't have the same level of customizations or capabilities.
The other thing that always irritates me: Why the hell would you have a software developer installing 'enterprise' software anyway, unless they're some sort of expert in that software type anyway? Don't get me wrong, I've installed many a developer version of Oracle locally, but I'd be the first to point out that I'm not the Oracle-certified expert that I expect will be running the show in production. Don't people understand that these are separate skillsets? The author states that he came from a j2ee shop running large products, my guess is, he didn't have to know how to admin the application servers. Ever try to dive into enterprise app server configurations? Clustering across firewalled domains with reverse proxies, remote caching, load balancing, certificate management, and active directory tie ins? In something 'big', like JBoss or worse, WebSphere? You could be an incredible java developer, but it has nothing to do with setting up and configuring the app server.
So, he was the wrong person for a task that was, quite honestly, supposed to be hard. Of course he had problems.
So if you want rare earth magnets before they're officially banned, get them from zenmagnets.com. Cheaper and higher quality. Also, they're not jerks like the buckyballs guys are.
I know it looks like an advertisement posting, but as someone who owns a crudload of rare earth magnets, zenmagnets seem to me to be the best. I keep a mandala set on my desk at work for downtimes, and I have a manager who keeps trying to make the perfect soccer ball when I'm not looking.
- and if you get the colored ones, just beware - the color tends to come off very easily if you're rough at all with them. You've been warned.
Colleges were not originally intended to provide one with skills to get a career. Not directly at least.
You can search around, but the idea is that it would make someone a better person, and thus, a credit to society. This is why we still have general education requirements, due to the belief that in order to be a useful person, you need to be a "well rounded individual". In fact, most college goal statements go out of their way to say this, especially when you get to the LAS department pages, that their purpose is to increase the potential of a student, not to train them.
Somewhere in the last 60 years, we've turned away from that. In the US, you'll be hard pressed to find someone who won't claim that college is where you go to train for a career, and frankly, that's fine.
The problem then is simply this:
- Certain degrees are meant to provide career skills and can be seen as a financial investment with reasonable expectation of high ROI.
- Other degrees are not meant to provide career skills, and can be seen as a luxury purchase, with no reasonable return.
and...
- People who couldn't afford a luxury, and had no reasonable guarantee of future income took out loans and purchased a luxury degree anyway.
Some of the "I have a 200k student loan debt" english majors in the OWS movement exemplified this; they purchased luxury goods which they did not have the money for on credit. The fact that their purchase was a type of education doesn't exempt them from this simple, obvious economic fact. That one would actually have to deliberately ignore those facts and then blame others for it is frankly insulting then.
If we were to fix anything, I'd say that we make the new separation more explicit. LAS schools for luxury degrees, STEM schools for careers requiring advanced white collar education, vocational schools for careers requiring skilled labor, etc.
Baby steps though - charging less for the degrees that objectively provide more value to society is a good tiny step forward.
Intellectually, I know that if it were more complex, there's no way it would have seen widespread adoption, and that markup is actually still complicated for many people. I can even look back at the early days of the web, when Marc Andreessen butted heads with Tim Berners-Lee about the media tag meant to display images, sounds, video and anything else and said, 'Screw it, you guys take too long to decide anything and it's over complicated, here's an img tag, done.' - and I can see how simple beats theoretically perfect and well designed.
However, we're already at the point of widespread adoption now, and it's a good time to have a new css that actually is a programming language, with flow control, dynamic calculations of element values, and so on. This is what we need to provide real separation between the document and how it looks. Anyone experienced enough to write non-trivial web applications that are meant to be run on a browser, tablets of varying sizes (including accounting for reorientation), and even cell phones knows that it's unrealistic to use a single page - you get sent to the 'mobile' variant of the page or elsewhere.
Css has been around for 16 years and it still lacks the ability to easily declare a completely separate layout based on display height or width, something like "If width is less than _x_, use this css, else this" or "set width equal to - 30". If you want those things now, you have to use javascript, and it's sometimes pretty awkward - like calculating the width of an element filled with content prior to displaying it.
To you folks who cite javascript to fix this, realize that css no longer manages the document display at that point, the javascript does. That means that css is missing something required to manage a display. It can only do some of it's job.
- side thought; I'd be happy if css allowed javascript within the css. Assign values based on closures or predefined functions. Simple fix -
Nope: http://unews.utah.edu/old/p/112608-2.html
... I don't think 'rubbished' is a legitimate word.
Disclaimer: I think it's silly, but I'll try to keep my personal opinions restricted to parens.
A rape trigger is apparently anything that could cause negative feelings in a person based on their experiences with rape, or sympathy with those who have been raped. (as opposed to the norm, I guess, which is everyone is pro-rape?)
So, talking about rape is an obvious rape trigger. Talking about being powerless is a rape trigger. Talking about sex is a rape trigger. (even loving, consensual, romantic sex.). Talking about drugs, or the role of women in society, human rights violations - all rape triggers.
Like the warnings before TV shows, some groups prefix their discussions (usually men-and-sex-are-pure-evil feminist blog entries) with a list of potential rape triggers (the list, by-the-by, is also a rape trigger). In this way, the person who is sensitive to these triggers (and more likely, those who are attention whoring and overly-sensitive to those who are sensitive) may avoid the discussions.
(This post is also a rape trigger, due to it's content)
I have been doing side jobs for a long while now, and I've can't stress the parent post enough - it's a lot more work than just programming. Like, 80/20.
It means that I have to be an incredible communicator, since I'll not only be the entire technical team, I'm the analyst, tax accountant and lawyer as well. I need to distill the verbal needs into discrete requirements, estimate costs, lay out contractual obligations, and so on. It's a heap of work. It's _real_ work, same as I do in my day job, just more varieties of it in less time.
Say I'm contracted to build a website - nothing too fancy, 1 main page template, 1 subpage template with 5 variants, a sign up form, bunch of javascript, database on the back end. I can manage that in a few hours. Actual effort including changing requirements, various designs, deciphering their documentation, getting hosting/account/access, fixing the provided assets, walking through setup, helping the copywriters populate the pages etc = 40+ hours. Doing it well enough that they feel I'm not only professional but exceptional - and they're getting their money's worth - quite a bit more.
Don't get me wrong, it can be personally rewarding both financially and intellectually, but it is a job, and it's not even my primary job.
I've found that I can manage as long as I set strict limits. I have to cut off potential clients as soon as they start making demands that aren't compatible with having a separate full time job; meetings during my normal working hours, travel, iterative development, taking vacation time from my primary job to work on a contract, etc. I stress the importance of having a predictable schedule - they can have it fast, but they can't have it now - I can't count the times a client left a voicemail with something like '...and it turns out we need it by tomorrow's 8 am meeting'. I try to stick with known business contacts, and maintain my business relationship with them - which is more time spent.
In my experience, projects of smaller size end up being horrible. I avoid Rentacoder and other similar sites since they appear to be unable to pay actual market value for the many of their tasks, or focus on items of dubious use - like the old request for forum-specific email harvesting programs. Outside of certified job posting sites, I have to worry about even getting paid. (If you want a scare, read http://clientsfromhell.net./
I don't know how you could do this casually and profit. It takes dedication of time and energy. I probably spend 30-40 hours a week on my side contracts when I'm active, but I work less than every other week, on average. Everyone wants an early completion date, but they rarely have their projects lined up in a row. I also find myself scheduling breaks, days I don't work, just so I can unwind a little.
It's ironic, but it takes a lot of stress to get yourself to a point where you can relax and enjoy what you're doing.
I think that if your goal isn't money, but rather to have fun, I recommend what other posters have suggested - find an OSS project. Something you can enjoy for itself, but not something that you're contractually obligated to spend your nights and weekends on.
Most colleges are not vocational colleges - that is, they do not focus specifically on work skills that you'll use in a job. They are not specifically training you for a career, rather, they're providing you with the theoretical foundation and building blocks to understand, appreciate, and contribute to a specific discipline. That some of these provide job skills is at best a secondary concern.
If you want to have a specific job, or follow a specific career, then focus on that job or career. We're starting to move out of the era of college-degree-required (at least for IT-related jobs) so there's no great stigma.
That's not to say a college degree is worthless however. As other posters have no doubt pointed out, there's a big difference between being able to make something work, and make it work well. Without understanding the theory, that information is hard to arrive at. If the technology changes, that theoretical knowledge allows you to evaluate the new offerings on an even footing, rather than having to diverge from your specialized skillset.
Last, and specific to web development in general, I've noted two types of folks that call themselves web developers. One makes pretty pages, and one makes web applications. The two rarely seem to share skillsets. One relies on artistic flair and a knowledge of HTML, CSS, and some common javascript libraries - but nothing fancy. The other usually seems to need a good grounding in HTML, CSS, and javascript, but focuses on back-end development, database management, and so on.
If you're going to be the first type - a computer science degree is probably not very useful. If you're going to be writing web applications, a computer science degree is probably going to be very helpful.
Bit late to the party, but I think this is pretty old news; http://www.ted.com/talks/marcus_byrne_the_dance_of_the_dung_beetle.html
I switched to U-Verse when they had a switch-discount program, but only for about a month. The problem was that nothing worked.
I actually wrote a program to track when I was connected. In a 3 day period, I had around 200 outages, each requiring between 3-5 minutes before the connection was regained. I literally could not use it to work from home - the time required to perform the VPN connection, get back to the machine I needed to use, and get back to work was just barely shorter than the average uptime.
I reported and had techs out to fix this problem on 3 separate instances, and in each case the techs found a new problem, and blamed it on the incompetence of the previous tech. Then it would work more or less well for about an hour, before having the same problems again. Despite not being able to provide me with phone, tv, or internet service in a usable form for over a month, they refused to refund any money, and only offered to credit us for free months of their non-working service.
Switched to Time Warner who not only gave me a better deal for switching, but credited me with a free month to make up for U-Verse not doing it. Not that their random downtimes and slower-than-advertised-speeds-most-of-the-time are as well appreciated, nor their apparent throttling high-usage systems by mac address - at least in the Austin area - but at least the damn thing works.
Again, the root problem is a cultural one, not simply the presence of guns. In this light, federal registries appear to be nothing more than a dodge, focusing on one small piece (tracking) of a symptom (gun crime) of the actual problem. Not only that, if Canada's gun registry is any measure, it'll have no appreciable impact on crime, and it will cost billions. In every way, it's an irrational choice unless your goals are simply to "get a gun registry" - any conceivable benefits it produces can be had more easily or more cheaply or both, without unnecessary additional restrictions.
It brings to mind cities that want to fix trouble intersections. The obvious, cheap, statistically proven, and simple option is to increase the length of yellow lights. Less accidents result. Some come up with an alternate 'solution', speed cameras. The real goal is not safety in these cases, it's revenue. Especially when they shorten the yellow to increase finable violations - and accident rates as well. To claim that the real goal is anything else is either to admit a level of stupidity that would make it difficult to function on a daily basis, or more likely, is simply a lie.
For some reason, guns spark some primal emotions that we can often add "irrational" as a choice, instead of simply saying someone is stupid or a liar. This goes for both sides of gun control arguments.
I didn't say that locations or living conditions were an issue; in fact, there are strong correlations between having a good education, being financially stable, criminal activity, and living in a nuclear family (where both parents are present). These relationships are common sense, but they're also demonstrably significant. Statistically, having a distant ancestor who was a slave appears to have no correlation.
Don't take my word for it though, do the math. If the US's data isn't enough for you, look at these same racial groups in other nations - if you're interested in including it, even in those with a similar history of slavery as the US - and note that in developed nations, there's a significant skew in standard deviations between racial groups there, and in the US. In other words, it's an oddity, even with similar backgrounds.
In layman's terms, it's obvious there's a problem, and what it is, what's not obvious is how to fix it, and we're hindered by political correctness making it difficult to target, much less discuss. It may just be as simple as encouraging education, financial management, avoiding crime, and advocating for parental responsibility, and it may very well be cheaper and more likely to work than trying to ban a small range of weapons that are used in less than a percent of violent crimes in the country. Focusing on a 'solution' that won't fix the problem is irrational.
Waaay back when, I hit the Bureau of Crime Statistics, the Dept of Justice, and the FBI websites to see all the data relating to violent crimes, gun crimes, and so on.
According to our own records, automatic or high-capacity weapons are used so infrequently to perpetrate crimes that they don't even have their own separate breakdown - they're sloshed into the 'other' bucket with weapons like 'talking billy bass animated fish sculpture'. The most popular weapon for crime appears to be cheap semiautomatic pistols. The cheaper the better.
If your goal is to reduce gun crime, it seems like focusing on automatic rifles and other scary-sounding guns is dumb. Even if they had the potential for greater harm, the smaller guns have actually realized their potential. Of course, if the goal is not just myopically focused on guns, and instead it's meant to reduce suffering, to save lives, and so on - why does no one look at the statistics that say there's more than twice the number of suicides by gun in a year than murders in the US? If we're going to spend money, why not focus on the sectors with the biggest benefits?
(as an amusing aside, check out the violent crime breakdowns by race. What if it was politically correct acknowledge the groups that are outliers by several orders of magnitude, and try to focus on fixing the cultural problems that cause it?).
Therefore, I will gain the power of flight.
I'm not going to argue that humans aren't good at rational analysis of probabilities - there's reams of data to show that our instincts which kept our ancestors safe in the wild actively work against us when it comes to rational, long term decisions. It also shows us that the associations we make are usually shallow and immediate. The knowledge of one improbable thing only impresses upon us that that same improbable thing is not as improbable as we once thought.
So the knowledge that someone won the lottery may make it more likely for an individual to decide to buy a ticket, but they won't consider super-powers any more likely than they did before.
The biggest hit to my productivity is bad requirements, which usually comes directly from the lack of empowerment of the developers. We know bad requirements when we see them, but rarely do we have the ability to push back. However, we all know, without good requirements you can't deliver a good product without unnecessary iterations, much less design for future usage and so on. The best you can do is make a series of somewhat-related mediocre guesses about what needs to be done. Then wipe half of it out when the team comes back because they were smoking meth during the planning phase.
The second biggest hit to my productivity at any given job is when it's implied or expected that any programmer can and will wear every hat associated with every piece of network or computer hardware and software. That they're some sort of universal replacement for every skilled job that includes computers.
If I write Java code, why would you expect that I'm the right person to install SAP? What about writing a file parser indicates I know how to make complex custom graphs in excel, can administer 250 windows servers, will fix the toner cartridge on the printer, will crawl under desks to track down a bad network cable, or should be troubleshooting a customer's firewall configuration, or building a QA test environment?
Even when I do have those skills, it is not very efficient for me to be multitasking on an hour-to-hour basis. Hard to get into, and stay in code-mode with constant context switching.
The best interview-test I ever had placed me, a computer with a collection of IDE's, an internet connection, and someone in the company who was already an employee in the room, and asked me to work with him as a team to write a simplified wget clone. We found some non-gpl'ed open source implementation in about 3 minutes, made the necessary changes in another 2, and finished with debugging and unit tests in under 10. It was so fast that they ended up asking us to support https connections as well to fill up the rest of the allotted hour.
I thought that was a pretty good test; it simulated what they'd actually be doing on the job - working in a team to produce output, without being artificially limited by unrealistic constraints like lack of an internet connection, auto-complete and in-line access to docs via the IDE, and re-use of preexisting code. At the same time, they could tell whether or not I was practiced with the IDE of my choice, if I had a familiarity with the language, and whether or not I was a good fit with their corporate culture.
Pity that most companies still do the 'test to see if you know how to reverse a linked list'-style quizes.
Too many people seem to be focusing on this as a technical or engineering problem that can be fixed by education, rationalization, discipline, design, or process. The info I see above seems pretty well thought out and rational, each person focusing on one facet of the symtom, and trying to leverage a fix.
I'm not surprised - that's what I come to slashdot for.
However, this is fundamentally a communications issue with potential business ramifications.
You want it changed for the better, you need to put a price on it, and show it to management. It's that simple. I'm assuming it's in man hours spent on bugs, and lost sales due to poor quality code engendering bugs, bring-up time for new employees, migration/maintenance costs for tools, etc. Not speculation either, actual literal costs. The next best thing is to find a manager who understands the actual costs, who agrees with you, who can then put a price on it and show it to management.
The outcome may be firing, it may be company mandated coding styles, it may be enforced design process, it may even be the adoption of a new development framework or third party release management system. However, if you can't put a dollar value on it, there's no business reason in the end.
As a side note: I just left a company which had this type of problem, and were at the point where 80-90% of the dev staff were involved in bug fixing only. Management's opinion was still that refactors or other mechanisms to reduce bugs and produce well thought out designs were still more expensive than delays in releases due to lack of manpower for new features. So even when it seems apparent from a technical problem standpoint, the finances favored the mess.
Perhaps I'm an optimist, but I think Roberts has demonstrated that he has the know-how and ability to produce this game. The information available about the game, the time table, the apparent openness and speed at which questions have been tackled make me believe that the game is being well thought out. Not just the design and gameplay, but the entire lifecycle. The hefty 7.2 million war fund helps too.
I've got doubts and questions, but they're mostly about the multiplayer experience. If they can deliver on the single-player game alone, I'll feel well satisfied.
I look at the production history of the company and I wonder if they can pull of an A game of significant scope after having so many previous false starts, and a history of producing buggy games, only a few popular titles and failing to complete products.
To make a comparison, 3D Realms/Apogee put out more than three times the number of games Frontier Developments was working on in the same time period, and many of them enjoyed impressive sales and popularity, even compared to reasonably popular Frontier Development projects like the xbox port of Roller Coaster Tycoon and an expansion pack. Elite 4 (now Elite: Dangerous) was announced in 1998, so it's been in development in one form or another for 14 years.
Don't get me wrong, false starts and a limited number of original A-class titles for the last 2 decades doesn't detract from the fact that David Braben was a pioneer of the space sim genre, nor does it affect his ability to produce innovative ideas or the potential for astounding games. It just makes me question if the necessary business acumen is there to push reality out of the way for long enough to make an innovative, astounding game, with enough safety net to allow the risk of failure that is so necessary when pushing boundaries, and a realistic schedule that allows enough new/neat along with the established fun gameplay to really set it apart from other titles and it's own direct predecessors.
If I were to continue the 3D Realms/Apogee comparison, I'd note that they had a successful game they made several sequels for as well. The last started development in April 1997 and continued in one form or another till 2011, when Duke Nukem Forever was finally released. This from a company that was several times more successful, with a greater wealth of experience both in game design and publishing.
I'd be overjoyed if this project lived up to even a reasonable number of the expectations we've heaped on it over the years, but at this point, I doubt that it'll even produce an average quality game: I'm expecting to be disappointed. For now at least, I'm going to pin my hopes for a space-sim on Star Citizen.
I'm a software dev, and I could do a decent evaluation for anyone from architect down to data-entry, but I don't know that there's anything in my background or skill set that would mark me as being especially able to evaluate a manager based on their day to day duties.
That being said, what I could look for that's important for my manager to have that affects MY day to day duties - which is going to be the minority of what they do - is awareness of the technical processes, awareness of technical limitations, and a reasonable shot from the hip estimate of costs and risk they think a given task will require.
I have had managers who have asked me to get a remote server with no external access email us when they or their internet connection goes down. I've had folks who don't understand that if I push a change of a major subsystem directly into production after working on it for only a few hours, it could very well take down all customers. In many cases, these folks won't be able to justify or even consider the costs for refactors, or for separate test environments, but it's a little late after they've told their boss's boss they'll hit the deadline and now you're on the hook for it.
Beyond those things, just check to see if his management style gels with how your company like to work. Some folks like teams, some like seclusion. Some managers are hands on, some are hands off. Some like rigid project plans, others prefer desk drive-bys. Make sure that their style is good for your company, and for you.
Actually, I had no problems installing and running these types of apps locally. Follow their suggestions and requirements exactly, and I've never had a problem. Deviate from them, and you better hope you know what you're doing with custom systems and installs.
But just to get the damn thing to run? That should be able to be done by a first level tech.
These pieces of software are not written for the first level tech. They're not written for the software dev who's forced to wear too many hats. They're not written so that your administrative assistant or their mom can install it. Where do you see those requirements, or where is the monetary incentive for these companies to do that? What significant population of their user base drives such a requirement?
These apps are written for people who are trained to install and administer them. They are complex, and unapologeticly so. There's no money in simplifying them, and frankly, they're not actively courting the lone developer at small company X that doesn't have the budget for the retail 300k/yr or better package or won't spend the time to learn their complex system. Their actual paying customers don't have the same problems, so naturally, those issues are ignored.
Aside from logistics making this a non-priority, there's also the issue of compatibility. The fact that someone who isn't suitable for it is tasked with installation and administration of these apps shows ineptitude of management, not a fault of the software or even the user.
So in summary:
- There's no assumption that an untrained person will be using this software.
- There's no business motivation to write the app for untrained individuals.
- Despite that, there's nothing stopping someone from simply following their instructions and getting it running.
I understand the desire that all software products everywhere be accessible to everyone without instruction, but the fact of the matter is that complexity in processes engenders complexity in execution. You can only make a complex thing so simple, and no simpler. (example: Could you easily simplify GCC and keep all the features?)
This is where other products come in to fill those niches, like MySQL if you didn't need Oracle.
This was the first company I had worked for - including startups - that was this badly managed, and I've been doing this for 15 years.
I think that 40% dev work on bugs in a continually-updated, large product seems reasonable. 10% seems like an exceptional - but realistic goal. At the 80-90% point where your devs are working and on call 24/7 just so you can fall behind less quickly, you need to re-evaluate how the product is being managed. It then becomes a more than an SDLC issue; it engenders problems with morale and the loss of experienced personnel, and encourages an attitude where you do just enough to get by in the day, because you can't afford to be personally vested in the product or company.
I see where you're coming from, but you're not talking about installation. You're talking about running. Also, the output of a program is not a 'customization', it's a product. I don't create a spreadsheet and say, "Look, I customized OpenOffice!".
Installation of GCC can be potentially painful. Once you start getting into actual customizations like cross-compiler libraries, or having to bootstrap whatever native compiler you have on the machine - I still have a CD with all the bootstrapping utils to build GCC on HP-UX, and old versions of Solaris, like replacements for sed, ask, and as required by the build. All the same, once you get it built and the make install completes - or you've got an OS that will just aptitude it for you, it doesn't require a lot of interaction or maintenance. It's not a server, it doesn't have a persistent runtime, it tends not to be clustered or distributed, and so on. The customizations are generally done at build time, there's precious few system-wide persistent GCC settings that you'd ever want to change.
For the most part, you can get away with the defaults, and they're good enough.
The intended audience of Oracle or SAP tools is not the guy who's going to want the default settings (no matter how reasonable you could argue a single set will be). For the same reason I picked Slackware; if you're the guy who just wants to click 'next', then it's probably not the right distro for you.
As a side note: you can install oracle with the default settings, and get a perfectly useful - but non-optimized install. It's not going to be accurate for measuring speed or throughput, but you can write code against it at least. Of course, you're trying to run a race car that hasn't been tuned up, so expect to crash a few times, especially if you don't understand the requirements to drive it - but the point is that it's a race car, not an astrovan. That you don't know how to drive the race car, and end up crashing it is less to do with failures for the race car, and more to do with your expectations of the experience.
The virtualbox install of Oracle that was providing the 500 error? Chances are that it was due to network issues with the virtualbox install. I can say that from personal experience, but it's really just a guess until I check log files. The fact that it was provided as a virtualbox instance makes it likely it was properly configured, so the error was likely on his side, somewhere. Is that Oracle's fault, or is it the commuter who try a few laps in a formula one race?
(That he tried a reinstall before checking the logs just hammers home the point that he's not the right person to be doing this. He sounds all ... well, let's be fair. Microsofty. Reboot/reinstall to fix a problem? For enterprise apps on linux machines? Really?)
That being said, it doesn't let people off the hook for writing shoddy products, I just don't see good examples of that happening here. I see someone trying to learn how to install and run highly complex software which requires it's own skillset, and treating it like it should be no more difficult than a mobile phone app.
There is a problem in what you've stated, and it comes down to the last line, "entirely the discipline and ability of the team and its management that makes all the difference"
I've know a lot of exceptional programmers, and I've known a few absolutely horrible developers. However, I've known of NO developer who wanted to push code out that door that was just awful. Rather, I see a lot of developers end up over-engineering on every level to ensure that their product is the brightest, best thing ever. If they had all the time in the world, I'm sure their products would be simply exceptional.
On the other hand, I haven't worked for a single manager who, when the chips were on the table, said something along the lines of, "We'll give you 5 more moths to refactor this, to ensure that ongoing updates and maintenance will be straightforward, and our internal tools can support automation of common tasks," instead of "Just make it work, we'll worry about the rest in the next release." ...and when the next release comes up, it's, "We promised these new features, we don't have time to refactor: if it ain't broke, don't fix it."
I actually just left a company which has been fighting this problem for so long that the entire dev department is spending 80-90% of their time tracking down reported bugs, and the remaining time cramming in whatever was promised to the customers in the fastest way, damn the maintainability. Each year, the cost of bugs and maintenance has gone up, and the devs are now all on call - the operations team cannot support the product themselves anymore. Think about that; you are a developer, and you are on call. 24-7.
The problem is that you need an exceptional development manager who can fight the good fight for the good of the product and the company, and can make the subjective value of code reuse, good architecture, and so on apparent to those above and around him. The company needs that discipline you point out to set realistic customer expectations, to train their sales people not to overreach just to ensure a sale, to listen to the development managers when they describe cost, manpower required, and so on.
Of course, that's only if you want a perfect product, with ever-decreasing quality returns for your time and money investment. It's probably impossible for a developer or even development manager to say where the pivot point is in the market; where time and money spent on quality causes a potential loss of revenue for a product. Unless we're talking about military, healthcare, or hostile environment systems (subs, satellites, space travel, etc), there IS a point where the cost for quality is too high.
In layman's terms, the cost to make high-quality software exceeds the price people would be willing to pay for it. This means that we're all going to be happy 'enough' with imperfect software.
To those who haven't read the article, the author posits that testing two same-purpose pieces of software to see if they generate the same result is a simple proposition. Then we find out that the systems are SAP and Oracle. This is not like installing two mp3 players, these are the poorly-defined field of 'enterprise apps'.
I don't disagree that the installation for anything claiming to be an enterprise app is usually hard. Setting either SAP or Oracle ~properly~ requires expert knowledge, and running either ~properly~ requires expert knowledge. This is expected, because it's an extremely complex product which is meant to be deeply customized to your own business solutions. This is similar to the gulf between installing the next version of windows and installing, say, a slackware distribution. One is more about clicking next, while the other requests explicit knowledge of the system in order to tailor it to your specific needs, and even after install requires effort to make it usable. One requires you know nothing, and allows almost no customization, the other expects you know everything, and allows an almost infinite level of customization.
That's why the install of MySQLwas so easy for him. Nothing against MySQL, but I'm not going to put it in the same category as Oracle or SAP. It's not trying to be either of those - it has it's own niche. It just doesn't have the same level of customizations or capabilities.
The other thing that always irritates me: Why the hell would you have a software developer installing 'enterprise' software anyway, unless they're some sort of expert in that software type anyway? Don't get me wrong, I've installed many a developer version of Oracle locally, but I'd be the first to point out that I'm not the Oracle-certified expert that I expect will be running the show in production. Don't people understand that these are separate skillsets? The author states that he came from a j2ee shop running large products, my guess is, he didn't have to know how to admin the application servers. Ever try to dive into enterprise app server configurations? Clustering across firewalled domains with reverse proxies, remote caching, load balancing, certificate management, and active directory tie ins? In something 'big', like JBoss or worse, WebSphere? You could be an incredible java developer, but it has nothing to do with setting up and configuring the app server.
So, he was the wrong person for a task that was, quite honestly, supposed to be hard. Of course he had problems.
So if you want rare earth magnets before they're officially banned, get them from zenmagnets.com. Cheaper and higher quality. Also, they're not jerks like the buckyballs guys are.
Fun video here comparing the two http://www.youtube.com/watch?v=S7Tka4NUmUo
I know it looks like an advertisement posting, but as someone who owns a crudload of rare earth magnets, zenmagnets seem to me to be the best. I keep a mandala set on my desk at work for downtimes, and I have a manager who keeps trying to make the perfect soccer ball when I'm not looking.
- and if you get the colored ones, just beware - the color tends to come off very easily if you're rough at all with them. You've been warned.
Colleges were not originally intended to provide one with skills to get a career. Not directly at least.
You can search around, but the idea is that it would make someone a better person, and thus, a credit to society. This is why we still have general education requirements, due to the belief that in order to be a useful person, you need to be a "well rounded individual". In fact, most college goal statements go out of their way to say this, especially when you get to the LAS department pages, that their purpose is to increase the potential of a student, not to train them.
Somewhere in the last 60 years, we've turned away from that. In the US, you'll be hard pressed to find someone who won't claim that college is where you go to train for a career, and frankly, that's fine.
The problem then is simply this:
- Certain degrees are meant to provide career skills and can be seen as a financial investment with reasonable expectation of high ROI.
- Other degrees are not meant to provide career skills, and can be seen as a luxury purchase, with no reasonable return.
and ...
- People who couldn't afford a luxury, and had no reasonable guarantee of future income took out loans and purchased a luxury degree anyway.
Some of the "I have a 200k student loan debt" english majors in the OWS movement exemplified this; they purchased luxury goods which they did not have the money for on credit. The fact that their purchase was a type of education doesn't exempt them from this simple, obvious economic fact. That one would actually have to deliberately ignore those facts and then blame others for it is frankly insulting then.
If we were to fix anything, I'd say that we make the new separation more explicit. LAS schools for luxury degrees, STEM schools for careers requiring advanced white collar education, vocational schools for careers requiring skilled labor, etc.
Baby steps though - charging less for the degrees that objectively provide more value to society is a good tiny step forward.