I'm currently working as a Game Developer using my Flash developement skills to build free + subsciption model RIA games. I was suprised to find that it is a rapidly growing market (my current employer went from 2 to 170 people since 2003), but thinking of it, it makes sense. People often use the computer or computer-like devices for proaktive escapisim more than 90% of the time. Or they're doing mostly pointless stuff that could easyly be automated without the need of someine sitting in front of the screen all the time.
Business Process Automation, GUI/Web, Embedded and Games, that's basically where the large chunks of the field are at. And it has been that way the last 25 years ever since IT gained traction. Given the amount of people with access to computers is steadyly rising and at the same time plafforms are getting more diverse (pro gaming PCs down to mobile devices), I'm not suprised anymore that computer-gaming is a currently growing market with many niches to cover.
Oh, the bitching and the whining I hear and read. Cut it out allready.
PHP is a whacky PL. It allways has been, ever since it derived from Perl. Which explains quite a bit. And while I don't like the solution of using a backslash as namespace seperator and the totally off-the-mark easyer-to-type criterion (Something like 80% of the non-trivial PHP appliations are developed with non-english keyboards) and the utter bullshitting criterion table they've come up with - the solution they've presented is as good as any other. They probably also have technical reasons (xpath type stuff comes to mind) to do it this way. And no matter which way they'd have done it, it allways would've hurt someones feelings.
And let's be honest: As batshit crazy PHP is allready, wether or not namespace delimiters are well chosen really matters squat.
And as for the poo-flinging: You people just go on ranting about how PHP is crappy, imature and oh-so-dead in the water. Meanwhile Joomla, Drupal, Typo3, Cake, Symfony, Prado, ZendFW and EZ Publish carry on getting the job done. And gaining market share.
Yeah, they actually had a smiley as seperator on the list. Now that might have been just as weird, but at least it would have been funny. They should've taken that.
I read the specs of a current Sun Mainframe last week and it listed FORTRAN, COBOL, C++ and Java as the key PLs to develop apps in. FORTRAN! (No Joke!)
I found that rather hilarious. And while I'd have no problem learning COBOL, if the payment is right. After all I've developed in Lingo (as far as developing is actually possible in Lingo), Transscript and the one or other bizar language in the last 10 years. And people still use SQL, which I personally consider the most superflous, ancient and bizar PL in existance.
But still the question arises: Which would be todays programming language for mainframes. Perl? I heard there's a European Bank or two using Perl for their number-crunching (also no joke!) Would it be a hip interpreted language such as Python, Lua, Ruby or something? What kind of PL is COBOL anyway, an interpreted language or is it a compiled one?
As a european citizen, I beg to differ. Euro? Maybe. Snob? Definitely. But both aren't connected just because they may have appeared together in this instance. Please keep that in mind.
Well done. Would you like a biscuit? I don't speak any German and I knew what it meant.
Which isn't too difficult, as it's german wording, but in english grammar - which sounds awkward to german ears and thus is funny in more that one way.
But it also works the other way around. English wording directly translated whilst keeping the german grammar is particularly funny as those germans understanding english will recognise the awkward and funny german grammar in english sentences inmediately and then recognise the directly translated german compound-words on a second parse. Which is even more funny because the german language has many compound words. Exceptionally funny with proverbs and such that can't all be translated directly without transforming them.
Such as: "By your english there runs it me yes cold the back down." or "By your english there get I yes a circle-run-together-break."
There are multiple class definitions per file, HTML output directly in functions within the classes...
Chill. There is no silver bullet and no free lunch. Since you're bickering about HTML in the PHP code I gather you would rather build a templating system on top of PHP - which is so pointless, it's silly, as PHP itself *is* a templating language. That's where it comes from anyway. And most PHP crews have noticed that by now (Thank God). Except maybe for some Smarty hardcases that is. Kill one for me if you see one.;-)
A Web-CMS and/or Framework is there to take the gruntwork away, and if you pick a current day CMS that has 5+ years with 30+ coredevs on its history and don't like the code, chances are you haven't understood it and what it is meant to do in context of the entire stack. Go on and build your own then - halfway through you'll run into the problems all others had back in 2001 and end up with the same mess others started off with. Only that they cleaned theirs up allready.
Bottom line: It appears you haven't done much non-trivial web developement, otherwise your tone would be a tad milder.
Plone - Technologically Plone is the leading CMS as it's built on top of Zope, a Web Application Server with an integrated Object-Relational DB. Zope basically is what all other web frameworks want to be when they grow up. Rails including. It is considered by many CMS dev-teams to be the holy grail, and most other CMS crews, such as Joomla, Typo3 or Rails usually speak very favourably of it. However the downside of its conceptual superiority can be - of course - performance. Since it takes aprox. 5 minutes to load balance a single instance across 2 or more servers, this isn't that much of a problem and many professional CMS enviroments who have the resources to build their stack around Python (Plone & Zopes PL) and Zope use it. Zope also is the oldest and most mature of modern paradigm systems, dating back to 1999.
EZ Publish - EZ Publish is a widespread mature PHP CMS, with a compareatively large international second market that has grown around it. The main developer is a norwegian company that provides consulting and services for EZ Publish and sees to it that it maintains its overall professional feel.
Typo3 - Typo3 is an Enterprise CMS Behemoth built with PHP. It's a massive piece of software that comes with the most comprehensive set of features in the web CMS field. It has a very large second market with many high profile agencies and system houses offering programming and services. OReilly even has a thick animal book on TypoScript, the Typo3 Configuration language, which sort of goes to show its impact. Typo3 also pratically owns the german speaking market. You can actually make a living as a Typo3 programmer in Central Europe. The next major release due within the next year or two is in the works and is a complete redo of the entire Typo3 stack including a FW called Flow3 that attempts to integrate the purest of modern architectures. As far as that is possible with a classic seperate SQL-driven RDBMS.
Joomla! - Joomla! is a PHP Web-CMS and one of the most popular pieces of software in general. (A Google query usually scores somewhere around a hundred million hits). Installation and operation is insanely easy and it has an impressive featureset. It only has a handfull of user types and lacks flexible granular n-dimensional user right management however - the most prominent missing feature. It makes up for this in ease of use and maturity of the admin interface and the integrated templates. It usually takes less than 10 minutes to set up a ready Joomla site.
Right now I feel like times are changing back again. With low-cost netbooks on the rise, SSDs and OSes burnt on to Bioses we're going to see more of this stuff creeping out into the computing world. It's the only way MS can attempt to enforce their Windows Family lockin. By providing inflexible hardware with some locks bolted on to them. I feel like the 80s are coming back, with Atari, Comodore and Archimedes stepping back into the ring. Oh well, time to switch to the Pandorra for handheld gaming then.
The US dollar is appreciating greatly vs. the Euro, because at least the US realizes the problem and are acting with concerted vigor.
Only as long as nobody starts dropping the dollar due to overinflation. Which is on the radar right now for quite a few high-ups in the money world. And then God help America.
1) From what I understand, the code you already wrote is out in the wild. If they want locked code from you on top of that, the only way you'll be able to provide it to them without doing anything illegal or the deal being invalid is to write their proprietary part as a patch.
2a) As people have pointed out allready certain Non-Competes may be illegal, so signing them may mean squat anyway. Check the laws on that where you live.
2b) Non-Competes are often rippoffs. A rule of thumb I like to use is the following: Unless you get big time money and can go on an extended vacation to learn a new technology or dive into a project and reach the same level as the one covered by the non-compete or can feed yourself and your family of the royalties from the agreement until it runs out you shouldn't sign it. And if your contractors are willing to do that they probably have enough money to sponsor a rewrite which you can offer to them aswell, which ever bodes best for you.
3) I had a very simular situation where along the run my partners and I would've gotten into a fight over wether they own the code or just the module which I built for them. Even though it would have legally been me owning it without the slightest doubt, I didn't want to spoil the relationship with partners simply because they didn't understand OSS licencing - which is understandable.
I told my next partner in the contract chain something of the following: "Give me the money we agreed on, free reign whilst implementing our product and keep the end customers of my back for a few months and I'll build a modular system that won't require a programmer for each little change. You'll be able to have secretaries do the grunt work using a custom editor that outputs XML config files. You pay me and get all that for free, a dual-licenced code-base with you *and* me both owning 100% and in exchange we GPL the entire shebang, slap a brand-name on it and continue our successfull co-operation into further projects."
He agreed and we went on to have:
A) An open source project that leads the field by far with our companies names attached to it and my personal name attached to it as project lead with the accompaning bragging rights (and User Thank-you emails arriving at my in-box to this very day)...
B) The largest competitor in our field kicked out of their pitch due to our far superiour open source project and it's custom extensions for the end customer with the big pockets (a Pharmaceutical Global Player)...
C) said custom editor developed by a third party partner company / our now drinking-buddies for minimal costs as they wanted to leverage the new OSS project themselves...
D) a dual licenced code base that keeps everybody happy and proves that I put my money where my mouth is and have no trouble moving into the OSS version of our product if I'm cut out of the loop our the partners go out of business / other ways - which is sort of happening right now with everything still fine and dandy between us all -...
E)... and after the first iteration all involved noticed what was clear to me right from the begining: People and corporations don't care squat about under which licence you implement your shit. As long as it works and you're there to help middle management justify the expenses in front of the chiefs.
F) A super-pure conscience for me and a great feeling of having done something good. Plus two years of good worry-free living as a freelancer.
Mind you, this is a web project, so YMMV - but that pretty much sums it up for any situation I can think of.
4) / Bottom Line: You've got the strong end of the stick. Be understanding but don't be foolish. Talk to your partners and cut a deal that makes you and them feel comfortable. U
I find the arrogance and ignorance of modern science unnerving. People like Pytagoras thousands of years ago described essential parts of what scientists are 'discovering' today. They described it in their own words, but some of that is pretty clear, even for todays vocabulary:
Pytagoras: "The Universe is shaped like a pentacondodecaeder" - Fits right smack on to the modern multi-universe-bubble theory. Various Okkultists and Alchemists: "The validity of the laws of nature change with the distance to a certain point in space." - Fits what we observe in cosmology (and strange voyager course deviation) on a daily basis. And raises some questions about the flow of time over the cosmic history aswell.
Note that the above was said *way* before any technical devices existed to observe these facts. Instead these people claim to have sensed these things with their higher senses - ESP if you will - which, according to quite a few intelligent people, we have lost along with the gain of our advancements in and of materialisim. That, of course, no one even wants to ponder.
Mod me a potential crackpot if you will, but I actually recommend the cosmologists return to the old master once in a while for some inspiration on their explaination of the universe and all that. They'd be suprised about what they find.
Since 10 weeks now I've been programming for a game company that gives it's games away for free. Browser and 3D Client MMORPG games mostly. The money is made with ads, Premium accounts and ingame benefits. Zero fuss with DRM. It simply doesn't fly. DRM will have a different, undesired effect: Gaming is the last bastion that OSS has to take. Because it's the most risky, still under constant advancement, the least productive and among the most complex, OSS gaming is behind regular productivity software in closing in on critical mass. However, I expect DRM to push a few more into OSS gaming and modding projects. Let's not forget: Modders are the key in 3D gaming. Win them over, and you've won. It may take a decade or so, but in the end, OSS is going to win out in gaming, DRM can't stop it. To the contrary, it encourages it. Game Vendors will switch to service oriented stuff like WoW or Valve eventually. Or to what my employer is doing. Looking at recent OSS game progresses, such as the Spring RTS Framework, Planeshift, Sauerbraten or Vegastrike I have no doubt that in the long run OSS will take over.
Bottom line: Quit moaning and join the community of an OSS game.
Well, as someone who has been programming for the last 22 years I could write an entire book on this subject. But from the top of my head I have three things you should definitely bear in mind, whatever programming area you are about to move in to.
1) Plan. If a project goes wrong and it's the programmers fault, in most cases it's due to the lack of planning. If you don't know how to plan a software project or a software programm: Learn it and apply it whereever you go. There is an entire subsection of our profession dedicated to this particular issue. Quite a bit of it is academic masturbation, but there is a reason this field of expertise exists.
2) Cover the entire pipeline of software production. If you don't know how to automate the tasks you need to do 10 times a day, how do you expect to be able to automate other peoples tasks with your software? Learn about your tools, toolkits and appstacks at every level and learn to cover the entire pipeline of software production with what you do. That includes versioning, building/compiling (if you're using compiled stuff), sync & deploy (if you're doing web-stuff), deployment, testing and debugging. Read my comment on the web-admins stack here to get a picture of how deep you should be able to dive in your field of expertise.
3) *START* with learning OOP. If you haven't programmed yet, you have an advantage. You can start learning the OOP way right away and won't have to deal with academics and crappy literature that can't explain OOP to people who are used to the procedural way of doing things. OOP isn't hard and it's also not the holy grail it's presented as, but it's a good approach and methodology and the only way to do software in certain fields (such as business logic). As a sidenote: It's a myth that people not used to OOP are spoiled for their life. It is true however, that there are very few people out there that can properly explain OOP to old-school programmers. You avoid that shortage by learnign OOP right away. Look into procedural stuff later on. Also because the people doing that are helpfull and usually don't have their head up their ass as much as the former.:-)... I actually recommend that you look into starting your programming with Java - however bizar that may sound. It probably will help you in the long run.
- Haiku OS. OSS BeOS variant. Lightning fast, designed with the GUI in mind. Sub-10-seconds booting is rumored.
- The Syllable OS. An OSS OS inspired by the proof-of-concept project Athena OS and some concepts implemented in BeOS. This one is actually quite interesting, as they've come quite far for a project that started from scratch without being a simple Unix rippoff. The site has demo videos showing Syllable coldboot into the Desktop under 10 seconds on older hardware and they've got quite a few apps ported to it allready, including a native browser using a pimped-out webkit renderer. Shutdown is sub 5 seconds (also important). They're working on a completely seperate server variant too. I consider this one a truely interesting alternate OS. You should check it out.
- Current Debian with a 2.2 kernel, Fluxbox or Windowmaker VM and a little tweaking should get you a very lightweight OS enviroment aswell.
Take any of the above and flash them onto a modern bios that you plug into your Mobo and your set for super-fast booting.
Serving up one of the most crappy and broken corporate websites I've seen lately, Cray bedazzles me. They can't be serious, can they? Running a high throughput, custom piece of hardware on Windows as the prime OS?... Unbelievable.
What Oomph does this thing have anyway? 16 Quad-Core Xeons. 64GB per node. Doesn't sound like that much of a a big deal to me. What corners could Cray have cut with the system archiecture itself to justify the hype? Won't a smalish blade-box or something simular from Sun or IBM wipe the floor with this thing?... Just wondering.
For once I'm reading an 'xzy is going to die' article that doesn't sound like utter rubbish. Could it be that, for once, the one stating this actually knows what he's talking about?
My last custom realtime GPU was a Geforce Ti4200. I'm now using a Mac Mini with GT950. Mind you, Blender *is* quite a bit slower on the 950, even though it runs with twice the sysclock, but I'm not really missing the old Geforce. I too think it highly plausible that the GPU and the CPU merge within the next few years.
On what planet does Debian/Ubuntu get deployed in corporate environments for anything other than trivial tasks?
*MEEP.* (annoying buzzer sound + sign 'Do not hire.' flashing)
Earth. 3rd one out from the closest sun.
From where I'm standing, SuSE and RedHat are both "semi-professsional" wannabee distros. Ever since an update install of SuSE 8.0 required a powercycle with a SuSE CD and a KB attached and would only display that in a GUI screen which you only saw if you attached a Monitor to VGA 1 on the box in question, SuSE has had something of a Toy department feel to it. I remember people doing a remote server update and wondering for days what problem was, as something like this is actually unimaginable in the *nix world. I love SuSE, I started off with SuSE 5 and 6, but time is way passed and Debian is the way to go. Today I'd might give Ubuntu Server a try aswell. Especially since LAMP seems to be a total zero-fuss issue with it.
Anything for which Debian 'isn't professional enough' (whatever that means anyway) is big enough to move to Sun HW and Solaris and armies of tie-wearing consultants and flocks of Sun Certified Whatevers filling stacks of Servers into airconditioned rooms upwards of 30m^2. Burning wads of my bosses cash and having me sitting at a desk, shooing interns about.... And a scantly clad, barely legal pyt secretary tending to my needs. No room for SuSE or RedHat here.
But honestly now: Everybody can shove in a RH CD and call themselves an admin. Debian people use debian because its better and they are good enough to know why. Sounds like a safer hire, doesn't it? But then again, that's just me and I've only been doing Linux since... 11 years now.
You're headed the right way. Just keep going. I'd recommend Debian over CentOS, because it's the generic professionals distro, but that's not that important. If you're feeling overwelmed by what is required to get a webstack up and running, you're absolutely right in that respect - its a non-trivial amount of stuff. Allthough it is a tag irresponsible to take such a job without the basic knowlege, mind you.
The classic LAMP webstack is solid but has lot's of components. Start with making a list of what you *don't* know, but would like to know. Formulate these out in questions and sidenotes to your self and write then down in a simple indented list in a text editor. Notch them of as you go deeper into each issue throughout the next few weeks.
Here's a list of things from the top of my head you need to know your way around as a professional admin:
- daemons on Linux/Unix
- cron-jobs
- the cli/Bash
- cli tools: wget, mc, emacs, ssh, scp, sort, ls, less, the concept of piping, rm, chmod, chgrp (these two will help you FUBAR your LAMP-stack a few times before you get a hang of it. Don't worry, we've all been there.:-) )
- learn VI or Emacs (the "No X" versions!!!). Get a book/download the docs/print out the cheatsheets. I personally recommend Emacs. Start today. Either are a pain in the ass and you won't bare any of those longer than 2 minutes in the beginning - their handling is bizar beyond any words - but 6 weeks from now, when you know your way about the 20 basic editing actions in Emacs and are logged in via SSH and have to digg through a script or a huge Apache config you'll be very thankfull.
- Learn Apache. Start with 2.2. Get a book. Oreilly is a safe bet.
- If the P in LAMP is PHP, learn PHP and do your maintenance scripting with the CLI version of PHP, thats what I do. Copying, maintenance, cron-jobs... all in PHP. Very neat. You swat two flies in one move, as you can look into PHP code at app-level and find your way around should that be needed in an emergency.
- Replace PHP in the above paragraph with Python or Perl if required. If Emacs is your choice of CLI editor, Elisp is a good choice for scripting aswell.
- try to understand the file system and directory standard of Linux before you implement your own little world. A lot of the dirtree in Linux is a historically grown mess and up to individual disposition, but the essential security related stuff is not(!!). So don't mess around. Plan ahead. Take notes (on paper!) and be prepared for a reinstall after a week or two when you've totally borked your system or your systems rights.
- Learn a versioning system. I recommend SVN, as the newest hype, Git, is still to unwieldy to handle in most cases (not enough tried and true 3rd party tools). Learn the CLI of your versioning system and use it too, so you get a hang of it. Put your docs, custom configs and other files like scripts into versioning and use it. I strongly recommend "Pragmatic Version Control with [fill in favorite vcs here]" from the Pragmatic Programmers Bookshelf guys. Real world versioning without the useless theoretical bullcrap. A very good line of books that finally made me understand versioning the way it was meant to be. AND USE VERSIONING! F*CKING VERSION YOUR SHIT. At every occasion. I'm dead serious. Learn to use revert, diff, etc. DO PRACTICE IT! It seperates the pros from the wannabees. You'll eventually find out why. Trust me on this one.
- MySQL. Well, it sucks just as much as any other SQL RDBMS. If you hate SQL and all that comes with it with your mind, soul and body like I do, you'll just have to bite the bullet. Get a book with a good index and keep it around for hard times. Play with a few basics of the mysql cli client so you can get up to speed when you are in a jam. Don't waste to much time with it though. It takes a strange state of mind to deal with this kind of stuff. I've never quite gotten the hang of it. A GUI-tool can take the pain out of DB admining.
According to Eurogamer's interview with producer Cameron Suey, previous Star Wars games suffered from a "lack of ambition."
Bingo. LucasArts - while famous for their groundbreaking games back in the early days (80s/90s) - has been screwing around with their StarWars franchise for quite some time now. Watch the latest CloneWars movie to see what I mean. That a SW Game get press for not being that bad shows how far LA has sunk. I personally consider this the most promising game in the SW universe right now (a HL full conversion). Sadly enough, LucasArts is so corrupted with politics, they don't give a damn about modders / enthusiast game developers. Would this be Valve themselves, they'd've hired the entire team allready.
Superstition is a sub-variant of premeditation, more commonly known as "thinking ahead" or just plain "thinking". The one prime ability that seperates us from animals and the rest of the living stuff on this planet. So, yeah, I would say that "thinking" managed to get humanity where it is today. Duh. And that you can also think wrong / asume wrong when 'superstizing' (wording??) is a part of the deal. So no news here either.
So, yeah, humans can think. Contrary to animals, they can actively memorize, they can pre- and post-meditate and they can apply the results of that to self-restraint and a managing of their animalistic drives and instincts. Yepp, that's quite a survival benefit if you ask me. Philosophers have answered those issues like 5000 years ago already.
I'm currently working as a Game Developer using my Flash developement skills to build free + subsciption model RIA games. I was suprised to find that it is a rapidly growing market (my current employer went from 2 to 170 people since 2003), but thinking of it, it makes sense. People often use the computer or computer-like devices for proaktive escapisim more than 90% of the time. Or they're doing mostly pointless stuff that could easyly be automated without the need of someine sitting in front of the screen all the time.
Business Process Automation, GUI/Web, Embedded and Games, that's basically where the large chunks of the field are at. And it has been that way the last 25 years ever since IT gained traction. Given the amount of people with access to computers is steadyly rising and at the same time plafforms are getting more diverse (pro gaming PCs down to mobile devices), I'm not suprised anymore that computer-gaming is a currently growing market with many niches to cover.
Oh, the bitching and the whining I hear and read.
Cut it out allready.
PHP is a whacky PL. It allways has been, ever since it derived from Perl. Which explains quite a bit. And while I don't like the solution of using a backslash as namespace seperator and the totally off-the-mark easyer-to-type criterion (Something like 80% of the non-trivial PHP appliations are developed with non-english keyboards) and the utter bullshitting criterion table they've come up with - the solution they've presented is as good as any other. They probably also have technical reasons (xpath type stuff comes to mind) to do it this way. And no matter which way they'd have done it, it allways would've hurt someones feelings.
And let's be honest: As batshit crazy PHP is allready, wether or not namespace delimiters are well chosen really matters squat.
And as for the poo-flinging: You people just go on ranting about how PHP is crappy, imature and oh-so-dead in the water.
Meanwhile Joomla, Drupal, Typo3, Cake, Symfony, Prado, ZendFW and EZ Publish carry on getting the job done. And gaining market share.
Yeah, they actually had a smiley as seperator on the list. Now that might have been just as weird, but at least it would have been funny. They should've taken that.
What would be todays Mainframe language?
I read the specs of a current Sun Mainframe last week and it listed FORTRAN, COBOL, C++ and Java as the key PLs to develop apps in. FORTRAN! (No Joke!)
I found that rather hilarious. And while I'd have no problem learning COBOL, if the payment is right. After all I've developed in Lingo (as far as developing is actually possible in Lingo), Transscript and the one or other bizar language in the last 10 years. And people still use SQL, which I personally consider the most superflous, ancient and bizar PL in existance.
But still the question arises: Which would be todays programming language for mainframes. Perl? I heard there's a European Bank or two using Perl for their number-crunching (also no joke!) Would it be a hip interpreted language such as Python, Lua, Ruby or something? What kind of PL is COBOL anyway, an interpreted language or is it a compiled one?
Input please.
OSS is a developement model, not a business model. Please bring your brain along to the discussion table the next time. Thank you.
As a european citizen, I beg to differ. Euro? Maybe. Snob? Definitely. But both aren't connected just because they may have appeared together in this instance. Please keep that in mind.
Well done. Would you like a biscuit?
I don't speak any German and I knew what it meant.
Which isn't too difficult, as it's german wording, but in english grammar - which sounds awkward to german ears and thus is funny in more that one way.
But it also works the other way around. English wording directly translated whilst keeping the german grammar is particularly funny as those germans understanding english will recognise the awkward and funny german grammar in english sentences inmediately and then recognise the directly translated german compound-words on a second parse. Which is even more funny because the german language has many compound words. Exceptionally funny with proverbs and such that can't all be translated directly without transforming them.
Such as: "By your english there runs it me yes cold the back down." or "By your english there get I yes a circle-run-together-break."
And what about you, speak you english?
There are multiple class definitions per file, HTML output directly in functions within the classes ...
Chill. There is no silver bullet and no free lunch. Since you're bickering about HTML in the PHP code I gather you would rather build a templating system on top of PHP - which is so pointless, it's silly, as PHP itself *is* a templating language. That's where it comes from anyway. And most PHP crews have noticed that by now (Thank God). Except maybe for some Smarty hardcases that is. Kill one for me if you see one. ;-)
A Web-CMS and/or Framework is there to take the gruntwork away, and if you pick a current day CMS that has 5+ years with 30+ coredevs on its history and don't like the code, chances are you haven't understood it and what it is meant to do in context of the entire stack. Go on and build your own then - halfway through you'll run into the problems all others had back in 2001 and end up with the same mess others started off with. Only that they cleaned theirs up allready.
Bottom line:
It appears you haven't done much non-trivial web developement, otherwise your tone would be a tad milder.
Plone - Technologically Plone is the leading CMS as it's built on top of Zope, a Web Application Server with an integrated Object-Relational DB. Zope basically is what all other web frameworks want to be when they grow up. Rails including. It is considered by many CMS dev-teams to be the holy grail, and most other CMS crews, such as Joomla, Typo3 or Rails usually speak very favourably of it. However the downside of its conceptual superiority can be - of course - performance. Since it takes aprox. 5 minutes to load balance a single instance across 2 or more servers, this isn't that much of a problem and many professional CMS enviroments who have the resources to build their stack around Python (Plone & Zopes PL) and Zope use it. Zope also is the oldest and most mature of modern paradigm systems, dating back to 1999.
EZ Publish - EZ Publish is a widespread mature PHP CMS, with a compareatively large international second market that has grown around it. The main developer is a norwegian company that provides consulting and services for EZ Publish and sees to it that it maintains its overall professional feel.
Typo3 - Typo3 is an Enterprise CMS Behemoth built with PHP. It's a massive piece of software that comes with the most comprehensive set of features in the web CMS field. It has a very large second market with many high profile agencies and system houses offering programming and services. OReilly even has a thick animal book on TypoScript, the Typo3 Configuration language, which sort of goes to show its impact. Typo3 also pratically owns the german speaking market. You can actually make a living as a Typo3 programmer in Central Europe. The next major release due within the next year or two is in the works and is a complete redo of the entire Typo3 stack including a FW called Flow3 that attempts to integrate the purest of modern architectures. As far as that is possible with a classic seperate SQL-driven RDBMS.
Joomla! - Joomla! is a PHP Web-CMS and one of the most popular pieces of software in general. (A Google query usually scores somewhere around a hundred million hits). Installation and operation is insanely easy and it has an impressive featureset. It only has a handfull of user types and lacks flexible granular n-dimensional user right management however - the most prominent missing feature. It makes up for this in ease of use and maturity of the admin interface and the integrated templates. It usually takes less than 10 minutes to set up a ready Joomla site.
Right now I feel like times are changing back again. With low-cost netbooks on the rise, SSDs and OSes burnt on to Bioses we're going to see more of this stuff creeping out into the computing world. It's the only way MS can attempt to enforce their Windows Family lockin. By providing inflexible hardware with some locks bolted on to them. I feel like the 80s are coming back, with Atari, Comodore and Archimedes stepping back into the ring.
Oh well, time to switch to the Pandorra for handheld gaming then.
The US dollar is appreciating greatly vs. the Euro, because at least the US realizes the problem and are acting with concerted vigor.
Only as long as nobody starts dropping the dollar due to overinflation. Which is on the radar right now for quite a few high-ups in the money world. And then God help America.
1) From what I understand, the code you already wrote is out in the wild. If they want locked code from you on top of that, the only way you'll be able to provide it to them without doing anything illegal or the deal being invalid is to write their proprietary part as a patch.
2a) As people have pointed out allready certain Non-Competes may be illegal, so signing them may mean squat anyway. Check the laws on that where you live.
2b) Non-Competes are often rippoffs. A rule of thumb I like to use is the following: Unless you get big time money and can go on an extended vacation to learn a new technology or dive into a project and reach the same level as the one covered by the non-compete or can feed yourself and your family of the royalties from the agreement until it runs out you shouldn't sign it. And if your contractors are willing to do that they probably have enough money to sponsor a rewrite which you can offer to them aswell, which ever bodes best for you.
3) I had a very simular situation where along the run my partners and I would've gotten into a fight over wether they own the code or just the module which I built for them. Even though it would have legally been me owning it without the slightest doubt, I didn't want to spoil the relationship with partners simply because they didn't understand OSS licencing - which is understandable.
I told my next partner in the contract chain something of the following: "Give me the money we agreed on, free reign whilst implementing our product and keep the end customers of my back for a few months and I'll build a modular system that won't require a programmer for each little change. You'll be able to have secretaries do the grunt work using a custom editor that outputs XML config files. You pay me and get all that for free, a dual-licenced code-base with you *and* me both owning 100% and in exchange we GPL the entire shebang, slap a brand-name on it and continue our successfull co-operation into further projects."
He agreed and we went on to have:
A) An open source project that leads the field by far with our companies names attached to it and my personal name attached to it as project lead with the accompaning bragging rights (and User Thank-you emails arriving at my in-box to this very day) ...
B) The largest competitor in our field kicked out of their pitch due to our far superiour open source project and it's custom extensions for the end customer with the big pockets (a Pharmaceutical Global Player) ...
C) said custom editor developed by a third party partner company / our now drinking-buddies for minimal costs as they wanted to leverage the new OSS project themselves ...
D) a dual licenced code base that keeps everybody happy and proves that I put my money where my mouth is and have no trouble moving into the OSS version of our product if I'm cut out of the loop our the partners go out of business / other ways - which is sort of happening right now with everything still fine and dandy between us all - ...
E) ... and after the first iteration all involved noticed what was clear to me right from the begining: People and corporations don't care squat about under which licence you implement your shit. As long as it works and you're there to help middle management justify the expenses in front of the chiefs.
F) A super-pure conscience for me and a great feeling of having done something good. Plus two years of good worry-free living as a freelancer.
Mind you, this is a web project, so YMMV - but that pretty much sums it up for any situation I can think of.
4) / Bottom Line: You've got the strong end of the stick. Be understanding but don't be foolish. Talk to your partners and cut a deal that makes you and them feel comfortable. U
I find the arrogance and ignorance of modern science unnerving. People like Pytagoras thousands of years ago described essential parts of what scientists are 'discovering' today. They described it in their own words, but some of that is pretty clear, even for todays vocabulary:
Pytagoras: "The Universe is shaped like a pentacondodecaeder" - Fits right smack on to the modern multi-universe-bubble theory.
Various Okkultists and Alchemists: "The validity of the laws of nature change with the distance to a certain point in space." - Fits what we observe in cosmology (and strange voyager course deviation) on a daily basis. And raises some questions about the flow of time over the cosmic history aswell.
Note that the above was said *way* before any technical devices existed to observe these facts. Instead these people claim to have sensed these things with their higher senses - ESP if you will - which, according to quite a few intelligent people, we have lost along with the gain of our advancements in and of materialisim. That, of course, no one even wants to ponder.
Mod me a potential crackpot if you will, but I actually recommend the cosmologists return to the old master once in a while for some inspiration on their explaination of the universe and all that. They'd be suprised about what they find.
Won't fly unless they pay me royalties big time.
I've allready patented the patenting of patents involving technologies that deal with patents.
Yeah, I'm rich!
Since 10 weeks now I've been programming for a game company that gives it's games away for free. Browser and 3D Client MMORPG games mostly. The money is made with ads, Premium accounts and ingame benefits. Zero fuss with DRM. It simply doesn't fly. DRM will have a different, undesired effect:
Gaming is the last bastion that OSS has to take. Because it's the most risky, still under constant advancement, the least productive and among the most complex, OSS gaming is behind regular productivity software in closing in on critical mass. However, I expect DRM to push a few more into OSS gaming and modding projects. Let's not forget: Modders are the key in 3D gaming. Win them over, and you've won. It may take a decade or so, but in the end, OSS is going to win out in gaming, DRM can't stop it. To the contrary, it encourages it. Game Vendors will switch to service oriented stuff like WoW or Valve eventually. Or to what my employer is doing.
Looking at recent OSS game progresses, such as the Spring RTS Framework, Planeshift, Sauerbraten or Vegastrike I have no doubt that in the long run OSS will take over.
Bottom line:
Quit moaning and join the community of an OSS game.
Well, as someone who has been programming for the last 22 years I could write an entire book on this subject. But from the top of my head I have three things you should definitely bear in mind, whatever programming area you are about to move in to.
1) Plan. If a project goes wrong and it's the programmers fault, in most cases it's due to the lack of planning. If you don't know how to plan a software project or a software programm: Learn it and apply it whereever you go. There is an entire subsection of our profession dedicated to this particular issue. Quite a bit of it is academic masturbation, but there is a reason this field of expertise exists.
2) Cover the entire pipeline of software production. If you don't know how to automate the tasks you need to do 10 times a day, how do you expect to be able to automate other peoples tasks with your software? Learn about your tools, toolkits and appstacks at every level and learn to cover the entire pipeline of software production with what you do. That includes versioning, building/compiling (if you're using compiled stuff), sync & deploy (if you're doing web-stuff), deployment, testing and debugging. Read my comment on the web-admins stack here to get a picture of how deep you should be able to dive in your field of expertise.
3) *START* with learning OOP. If you haven't programmed yet, you have an advantage. You can start learning the OOP way right away and won't have to deal with academics and crappy literature that can't explain OOP to people who are used to the procedural way of doing things. OOP isn't hard and it's also not the holy grail it's presented as, but it's a good approach and methodology and the only way to do software in certain fields (such as business logic). As a sidenote: It's a myth that people not used to OOP are spoiled for their life. It is true however, that there are very few people out there that can properly explain OOP to old-school programmers. You avoid that shortage by learnign OOP right away. Look into procedural stuff later on. Also because the people doing that are helpfull and usually don't have their head up their ass as much as the former. :-) ... I actually recommend that you look into starting your programming with Java - however bizar that may sound. It probably will help you in the long run.
Good luck.
From the top of my head:
- (X)Ubuntu with a default XFCE enviroment. Designed for very old computers and people who hate the Gnome/KDE slowpoking.
- Haiku OS. OSS BeOS variant. Lightning fast, designed with the GUI in mind. Sub-10-seconds booting is rumored.
- The Syllable OS. An OSS OS inspired by the proof-of-concept project Athena OS and some concepts implemented in BeOS. This one is actually quite interesting, as they've come quite far for a project that started from scratch without being a simple Unix rippoff. The site has demo videos showing Syllable coldboot into the Desktop under 10 seconds on older hardware and they've got quite a few apps ported to it allready, including a native browser using a pimped-out webkit renderer. Shutdown is sub 5 seconds (also important). They're working on a completely seperate server variant too. I consider this one a truely interesting alternate OS. You should check it out.
- Current Debian with a 2.2 kernel, Fluxbox or Windowmaker VM and a little tweaking should get you a very lightweight OS enviroment aswell.
Take any of the above and flash them onto a modern bios that you plug into your Mobo and your set for super-fast booting.
If Mozilla is eyeing for the phone - doesn't that make it an eyePhone?
*TA-DUM* *CHRASH* *THUD*
Thank you, thank you, I'm here all week. Try the fish.
Serving up one of the most crappy and broken corporate websites I've seen lately, Cray bedazzles me. They can't be serious, can they? Running a high throughput, custom piece of hardware on Windows as the prime OS? ... Unbelievable.
What Oomph does this thing have anyway? 16 Quad-Core Xeons. 64GB per node. Doesn't sound like that much of a a big deal to me. What corners could Cray have cut with the system archiecture itself to justify the hype? Won't a smalish blade-box or something simular from Sun or IBM wipe the floor with this thing? ... Just wondering.
Anybody with deeper insights on this?
Erics Python IDE
Wing IDE
Komodo
If you're hell-bent on using an Editor, I can warmly recommend jEdit for Python stuff. It's the best Editor in existance.
And one more thing: There is this think called 'Google', you may have heard of it. It usually answers this sort of question in under 10 seconds.
For once I'm reading an 'xzy is going to die' article that doesn't sound like utter rubbish. Could it be that, for once, the one stating this actually knows what he's talking about?
My last custom realtime GPU was a Geforce Ti4200. I'm now using a Mac Mini with GT950. Mind you, Blender *is* quite a bit slower on the 950, even though it runs with twice the sysclock, but I'm not really missing the old Geforce. I too think it highly plausible that the GPU and the CPU merge within the next few years.
On what planet does Debian/Ubuntu get deployed in corporate environments for anything other than trivial tasks?
*MEEP.* (annoying buzzer sound + sign 'Do not hire.' flashing)
Earth. 3rd one out from the closest sun.
From where I'm standing, SuSE and RedHat are both "semi-professsional" wannabee distros. Ever since an update install of SuSE 8.0 required a powercycle with a SuSE CD and a KB attached and would only display that in a GUI screen which you only saw if you attached a Monitor to VGA 1 on the box in question, SuSE has had something of a Toy department feel to it. I remember people doing a remote server update and wondering for days what problem was, as something like this is actually unimaginable in the *nix world.
I love SuSE, I started off with SuSE 5 and 6, but time is way passed and Debian is the way to go. Today I'd might give Ubuntu Server a try aswell. Especially since LAMP seems to be a total zero-fuss issue with it.
Anything for which Debian 'isn't professional enough' (whatever that means anyway) is big enough to move to Sun HW and Solaris and armies of tie-wearing consultants and flocks of Sun Certified Whatevers filling stacks of Servers into airconditioned rooms upwards of 30m^2. Burning wads of my bosses cash and having me sitting at a desk, shooing interns about. ... And a scantly clad, barely legal pyt secretary tending to my needs.
No room for SuSE or RedHat here.
But honestly now: Everybody can shove in a RH CD and call themselves an admin. Debian people use debian because its better and they are good enough to know why. Sounds like a safer hire, doesn't it? But then again, that's just me and I've only been doing Linux since ... 11 years now.
Whatever, YMMV.
But you should look into Debian.
You're headed the right way. Just keep going. I'd recommend Debian over CentOS, because it's the generic professionals distro, but that's not that important.
If you're feeling overwelmed by what is required to get a webstack up and running, you're absolutely right in that respect - its a non-trivial amount of stuff. Allthough it is a tag irresponsible to take such a job without the basic knowlege, mind you.
The classic LAMP webstack is solid but has lot's of components. Start with making a list of what you *don't* know, but would like to know. Formulate these out in questions and sidenotes to your self and write then down in a simple indented list in a text editor. Notch them of as you go deeper into each issue throughout the next few weeks.
Here's a list of things from the top of my head you need to know your way around as a professional admin:
- daemons on Linux/Unix
- cron-jobs
- the cli/Bash
- cli tools: wget, mc, emacs, ssh, scp, sort, ls, less, the concept of piping, rm, chmod, chgrp (these two will help you FUBAR your LAMP-stack a few times before you get a hang of it. Don't worry, we've all been there. :-) )
- learn VI or Emacs (the "No X" versions!!!). Get a book/download the docs/print out the cheatsheets. I personally recommend Emacs. Start today. Either are a pain in the ass and you won't bare any of those longer than 2 minutes in the beginning - their handling is bizar beyond any words - but 6 weeks from now, when you know your way about the 20 basic editing actions in Emacs and are logged in via SSH and have to digg through a script or a huge Apache config you'll be very thankfull.
- Learn Apache. Start with 2.2. Get a book. Oreilly is a safe bet.
- If the P in LAMP is PHP, learn PHP and do your maintenance scripting with the CLI version of PHP, thats what I do. Copying, maintenance, cron-jobs ... all in PHP. Very neat. You swat two flies in one move, as you can look into PHP code at app-level and find your way around should that be needed in an emergency.
- Replace PHP in the above paragraph with Python or Perl if required. If Emacs is your choice of CLI editor, Elisp is a good choice for scripting aswell.
- try to understand the file system and directory standard of Linux before you implement your own little world. A lot of the dirtree in Linux is a historically grown mess and up to individual disposition, but the essential security related stuff is not(!!). So don't mess around. Plan ahead. Take notes (on paper!) and be prepared for a reinstall after a week or two when you've totally borked your system or your systems rights.
- Learn a versioning system. I recommend SVN, as the newest hype, Git, is still to unwieldy to handle in most cases (not enough tried and true 3rd party tools). Learn the CLI of your versioning system and use it too, so you get a hang of it. Put your docs, custom configs and other files like scripts into versioning and use it. I strongly recommend "Pragmatic Version Control with [fill in favorite vcs here]" from the Pragmatic Programmers Bookshelf guys. Real world versioning without the useless theoretical bullcrap. A very good line of books that finally made me understand versioning the way it was meant to be. AND USE VERSIONING! F*CKING VERSION YOUR SHIT. At every occasion. I'm dead serious. Learn to use revert, diff, etc. DO PRACTICE IT! It seperates the pros from the wannabees. You'll eventually find out why. Trust me on this one.
- MySQL. Well, it sucks just as much as any other SQL RDBMS. If you hate SQL and all that comes with it with your mind, soul and body like I do, you'll just have to bite the bullet. Get a book with a good index and keep it around for hard times. Play with a few basics of the mysql cli client so you can get up to speed when you are in a jam. Don't waste to much time with it though. It takes a strange state of mind to deal with this kind of stuff. I've never quite gotten the hang of it. A GUI-tool can take the pain out of DB admining.
According to Eurogamer's interview with producer Cameron Suey, previous Star Wars games suffered from a "lack of ambition."
Bingo. LucasArts - while famous for their groundbreaking games back in the early days (80s/90s) - has been screwing around with their StarWars franchise for quite some time now. Watch the latest CloneWars movie to see what I mean. That a SW Game get press for not being that bad shows how far LA has sunk. I personally consider this the most promising game in the SW universe right now (a HL full conversion). Sadly enough, LucasArts is so corrupted with politics, they don't give a damn about modders / enthusiast game developers. Would this be Valve themselves, they'd've hired the entire team allready.
Errm, yes.
Superstition is a sub-variant of premeditation, more commonly known as "thinking ahead" or just plain "thinking". The one prime ability that seperates us from animals and the rest of the living stuff on this planet.
So, yeah, I would say that "thinking" managed to get humanity where it is today. Duh. And that you can also think wrong / asume wrong when 'superstizing' (wording??) is a part of the deal. So no news here either.
So, yeah, humans can think. Contrary to animals, they can actively memorize, they can pre- and post-meditate and they can apply the results of that to self-restraint and a managing of their animalistic drives and instincts. Yepp, that's quite a survival benefit if you ask me. Philosophers have answered those issues like 5000 years ago already.
And what was the big scientific news again?
Next up:
Earth is not flat.