Especially since their utilities are already open source: http://www.ksplice.com/git/ksplice.git/
But ya, you're essentially paying for their subscription service. It would make a nice addition to RHEL subscriptions, I wouldn't be surprised if Red Hat acquired them.
Yep, silly article, the CPU intensive work is already in C++; the PHP code is mostly doing I/O. C++ won't make your memory/disks/network any faster. That's why they need all those servers.
There've even been cases of hysterical GNU "developers" thinking they need to re-license BSD-licensed software under the GPL, but it just doesn't work that way.
Actually it's been more the other way around: a developer includes BSD code into his GPL-licensed project, makes improvements (knowing that his GPLed improvements are safe from non-FOSS software, and yes it does just work that way). Original BSD developer throws a public hissy fit because he can't use the new and improved code in his project. Funny how he didn't care when it was happening behind closed doors, but having the new code right under his nose was just too much.
Moral of the story, if you don't want people doing whatever with your code, don't choose a permissive license!
Have a look at the book How to Design Programs, which was written with a pedagogical focus and is a great way to teach the fundamentals of programming and problem solving. It uses an excellent free programming environment which should make it easy for students to get started.
Nvidia could probably acquire AMD nowadays, seeing as how AMD hasn't been doing to well in the markets lately. Biggest roadblock might be getting approval for that merger since that would leave us with only one discrete GPU vendor to choose from.
This may not be what you're looking for, but when I was in high school I wrote a very simple ray casting game (a la Wolfenstein 3D), which makes good use of high school level math. Here's a tutorial for example: http://www.permadi.com/tutorial/raycast/
It definitely helped me get more interested in math, which is why I think showing how math is used in the real world is very useful (although writing video games probably won't interest everyone).
It's free to donate it and you know it actually gets put to good use rather than sitting in a blood bank. Plus I think you get some real life karma for it. Well either way, don't let the doctor discard it (like usually happens).
Letting repositories sprout like mushrooms is a good thing, it will let your developers experiment with ideas they might have, things that they aren't sure would work yet but they want to try out anyways. In those scenarios, asking for permission and having to create an official branch in the central repo might be too big of a barrier, so they might work on it without the help of any version control which is bad but happens often with centralized VCS, or they'll just drop the idea altogether. And anyways, using something like svn won't stop people from sprouting their own repositories now that we have tools like git-svn which will allow you to clone an svn repo into a local git one.
The other big advantage is that when you start using a distributed VCS like git, the performance difference is so large that you find yourself using it a lot more. For example, you might notice that your developers start committing smaller atomic changes (rather than full days work at the end of the day) or they'll be more willing to create branches for different tasks because merging them back is easy in git and not so much in svn.
Also regarding your question about developers arguing who should merge with whom, a VCS isn't a replacement for communication. Git will allow developers to try out different ideas easier and allows easier offline collaboration, but at the end of the day, as the project lead you are responsible for what goes into the "official" repo and what doesn't. So you can still have a central place where releases are made (like your own local repo or one on a central server), but with git the development process is a lot more flexible.
1. No fecking media support! I get XMMS inform me on first attempt at playing an MP3 that it won't because of licensing conflict. Wtf? Codecs for avi's and DVDs were a simular story; all had to be downloaded via yum (bloody excellent tool!). Seriously; not good, but fixed in the end.
See this page to understand why these things are not included by default.
Essentially you are either complaining that you aren't getting something for free that requires royalties (or you don't agree with the current laws making the use of these technologies without paying royalties illegal). =)
This is why many people try to use and promote the use of non-restricted formats.
2. Why the hell do I have to install a new kernel? Why? I've never had to on Windows - why is Linux different? Is it so buggy? I installed with a factory version something ending 054. Now I have something ending 122 I believe. I did it ok, but that's not the point I'm making; were there really 68 cock-ups so great in the kernel build from release-time until that now they had to re-release 68 times? I'm guessing probablly not, but still.
All software has bugs. =) I don't think you're ever *forced* to upgrade your Linux kernel, but it's generally a good idea to keep up with minor updates to reduce security vulnerabilities and such.
Are you sure you've never upgraded your Windows kernel? You've never ran Windows updates? I think you just don't know that you have. You're effectively complaining that Linux is more transparent about what it's doing. That's a good thing!
3. Point 2 also breaks my nvidia drivers. I don't want to re-compile new drivers everytime there's a new 'patch'. For the love of god, why?!
I'm not sure I understand this one... nvidia's drivers are closed, so you can't actually compile new drivers each time. If nvidia doesn't support the kernel you want to upgrade to, you are at their mercy, and I don't use nvidia cards for this reason, but I thought that nvidia generally kept up with the latest stable kernel versions. I assume you just had to add an external yum repository (like Livna)? Does Fedora not take care of upgrading the nvidia driver for you automatically then?
4. X-Windows. What a mess. Why do I have to tell it my x & y refresh rates for my monitor? Windows just 'knows'. Many more things here I feel that X-Windows should just 'know' - the number of buttons on my USB mouse for-instance. If Windows can do it, there's no reason why Linux can't. Also, X-Windows 'feels' slower than Windows. I'm sure there's good reasons for this, but I don't care; Windows is snappier.
I agree with you that X is still behind in a lot of ways. There's a reason why Apple didn't use it when developing OS X. It's development had stagnated for a while, but it's been picking up steam again, so we'll see...
5. Lack of decent file-browser. The best I've come across is Nautilus in a mode that resembles Windows Explorer. It'll do for now, but as far as I'm aware, offers no context-sensitive menus for applications (like the Winamp "Play in Winamp" right-click menu on folders.
Yes won't argue with you there either, I think there's still a lot of room for improvement on the desktop side of things for Linux.
Many interfaces and plugins have been created for Git, so it is not command line only.
Also, how on earth do IDE plugins fix deficiencies inherit in the svn/cvs model? Do you have any example of what you're talking about here? The closest thing I can think of is svk, but that isn't an IDE plugin.
Here some SSD benchmarks for MySQL with a conclusion of "with the relatively low cost of the technology, you could net 10X+ performance increase on your database servers for under $2000."
I used to be an nvidia fanboy, but for my last machine, I went with AMD/ATI specifically because of them opening up their GPU specs and helping open source developers with the new radeonhd driver.
Is it still insanely counter-intuitive and hard to learn?
For the 3D part? Probably. And even for the 3D part, it's really not bad. I think most of the complaints you hear are from people who have spent a lot of time working with another 3D package and expect Blender to be a close clone of their favorite package. For example, you've learnt a small part of the app in a short amount of time, and I'm sure that with the same motivation, you could learn the other parts the same way, a little bit at a time.
Another comment above compared Blender to Emacs, which I think is a great analogy. It was not designed to be pretty or provide nice screenshots for the marketing department to sell more copies. It was originally an in-house tool that was designed especially for efficiency, which is why many of the complaints are about all the keyboard shortcuts you have to learn. Very Emacs-like.
Imagine a Visual Studio developer trying to learn Emacs and getting frustrated because pressing F5 has always built and ran the app in every IDE he's ever used. Don't get me wrong, Visual Studio is a great app, but it's not the equivalent to Emacs for efficiency.
The only thing missing from my desired tool set on Linux right now is basically an easy to use, high powered MIDI to music recording and notation system You are probably already aware of this but Ardour has a GSoC project to add MIDI support. Something to keep an eye on...
The kernel needs to support hotpluggable CPUs for virtualizated machines. Being able to add or remove CPUs on the fly based on load will be pretty neat.
Yep, I knew a few developers who switched to Linux because they realized that they were using Firefox and Eclipse all day long. Windows open source makes a good gateway drug.;)
I have Ubuntu 6.10 working fine with my Dell D620 at 1440x900 attached to a 1680x1050 LCD (dual monitor, both widescreen). But you're right, I did have to muck around with my xorg.conf (ie: Option "MetaModes" "1440x900,1680x1050; 1440x900,NULL"), and it would be nice if it would auto-detect all this stuff like Windows does.
What languages were used? I would think that, given the time limit, something like Python (with PyGame or PyOgre) would be preferred over the more traditional C++?
Especially since their utilities are already open source: http://www.ksplice.com/git/ksplice.git/ But ya, you're essentially paying for their subscription service. It would make a nice addition to RHEL subscriptions, I wouldn't be surprised if Red Hat acquired them.
Yep, silly article, the CPU intensive work is already in C++; the PHP code is mostly doing I/O. C++ won't make your memory/disks/network any faster. That's why they need all those servers.
There've even been cases of hysterical GNU "developers" thinking they need to re-license BSD-licensed software under the GPL, but it just doesn't work that way.
Actually it's been more the other way around: a developer includes BSD code into his GPL-licensed project, makes improvements (knowing that his GPLed improvements are safe from non-FOSS software, and yes it does just work that way). Original BSD developer throws a public hissy fit because he can't use the new and improved code in his project. Funny how he didn't care when it was happening behind closed doors, but having the new code right under his nose was just too much.
Moral of the story, if you don't want people doing whatever with your code, don't choose a permissive license!
Isn't that why Google created the V8 JavaScript engine? It (just-in-time) compiles JavaScript to native machine code.
I'm surprised there was no mention of YouTube's Flashless HTML5 demo page. I think it's a bit more popular than Dailymotion.
Have a look at the book How to Design Programs, which was written with a pedagogical focus and is a great way to teach the fundamentals of programming and problem solving. It uses an excellent free programming environment which should make it easy for students to get started.
Nvidia could probably acquire AMD nowadays, seeing as how AMD hasn't been doing to well in the markets lately. Biggest roadblock might be getting approval for that merger since that would leave us with only one discrete GPU vendor to choose from.
This may not be what you're looking for, but when I was in high school I wrote a very simple ray casting game (a la Wolfenstein 3D), which makes good use of high school level math. Here's a tutorial for example: http://www.permadi.com/tutorial/raycast/ It definitely helped me get more interested in math, which is why I think showing how math is used in the real world is very useful (although writing video games probably won't interest everyone).
It's free to donate it and you know it actually gets put to good use rather than sitting in a blood bank. Plus I think you get some real life karma for it. Well either way, don't let the doctor discard it (like usually happens).
Git is way better than SVN in pretty much every respect except possibly its lack of slick Windows GUI
And even for those who must have a Windows GUI, TortoiseGit is currently being worked on.
Letting repositories sprout like mushrooms is a good thing, it will let your developers experiment with ideas they might have, things that they aren't sure would work yet but they want to try out anyways. In those scenarios, asking for permission and having to create an official branch in the central repo might be too big of a barrier, so they might work on it without the help of any version control which is bad but happens often with centralized VCS, or they'll just drop the idea altogether. And anyways, using something like svn won't stop people from sprouting their own repositories now that we have tools like git-svn which will allow you to clone an svn repo into a local git one.
The other big advantage is that when you start using a distributed VCS like git, the performance difference is so large that you find yourself using it a lot more. For example, you might notice that your developers start committing smaller atomic changes (rather than full days work at the end of the day) or they'll be more willing to create branches for different tasks because merging them back is easy in git and not so much in svn.
Also regarding your question about developers arguing who should merge with whom, a VCS isn't a replacement for communication. Git will allow developers to try out different ideas easier and allows easier offline collaboration, but at the end of the day, as the project lead you are responsible for what goes into the "official" repo and what doesn't. So you can still have a central place where releases are made (like your own local repo or one on a central server), but with git the development process is a lot more flexible.
1. No fecking media support! I get XMMS inform me on first attempt at playing an MP3 that it won't because of licensing conflict. Wtf? Codecs for avi's and DVDs were a simular story; all had to be downloaded via yum (bloody excellent tool!). Seriously; not good, but fixed in the end.
See this page to understand why these things are not included by default. Essentially you are either complaining that you aren't getting something for free that requires royalties (or you don't agree with the current laws making the use of these technologies without paying royalties illegal). =) This is why many people try to use and promote the use of non-restricted formats.
2. Why the hell do I have to install a new kernel? Why? I've never had to on Windows - why is Linux different? Is it so buggy? I installed with a factory version something ending 054. Now I have something ending 122 I believe. I did it ok, but that's not the point I'm making; were there really 68 cock-ups so great in the kernel build from release-time until that now they had to re-release 68 times? I'm guessing probablly not, but still.
All software has bugs. =) I don't think you're ever *forced* to upgrade your Linux kernel, but it's generally a good idea to keep up with minor updates to reduce security vulnerabilities and such. Are you sure you've never upgraded your Windows kernel? You've never ran Windows updates? I think you just don't know that you have. You're effectively complaining that Linux is more transparent about what it's doing. That's a good thing!
3. Point 2 also breaks my nvidia drivers. I don't want to re-compile new drivers everytime there's a new 'patch'. For the love of god, why?!
I'm not sure I understand this one... nvidia's drivers are closed, so you can't actually compile new drivers each time. If nvidia doesn't support the kernel you want to upgrade to, you are at their mercy, and I don't use nvidia cards for this reason, but I thought that nvidia generally kept up with the latest stable kernel versions. I assume you just had to add an external yum repository (like Livna)? Does Fedora not take care of upgrading the nvidia driver for you automatically then?
4. X-Windows. What a mess. Why do I have to tell it my x & y refresh rates for my monitor? Windows just 'knows'. Many more things here I feel that X-Windows should just 'know' - the number of buttons on my USB mouse for-instance. If Windows can do it, there's no reason why Linux can't. Also, X-Windows 'feels' slower than Windows. I'm sure there's good reasons for this, but I don't care; Windows is snappier.
I agree with you that X is still behind in a lot of ways. There's a reason why Apple didn't use it when developing OS X. It's development had stagnated for a while, but it's been picking up steam again, so we'll see...
5. Lack of decent file-browser. The best I've come across is Nautilus in a mode that resembles Windows Explorer. It'll do for now, but as far as I'm aware, offers no context-sensitive menus for applications (like the Winamp "Play in Winamp" right-click menu on folders.
Yes won't argue with you there either, I think there's still a lot of room for improvement on the desktop side of things for Linux.
Many interfaces and plugins have been created for Git, so it is not command line only. Also, how on earth do IDE plugins fix deficiencies inherit in the svn/cvs model? Do you have any example of what you're talking about here? The closest thing I can think of is svk, but that isn't an IDE plugin.
Here some SSD benchmarks for MySQL with a conclusion of "with the relatively low cost of the technology, you could net 10X+ performance increase on your database servers for under $2000."
I used to be an nvidia fanboy, but for my last machine, I went with AMD/ATI specifically because of them opening up their GPU specs and helping open source developers with the new radeonhd driver.
You despise it because it's different from what you're used to, not because it's better or worse.
If so, Stanford has recently changed their financial aid program and will not charge you any tuition! See here: http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2008/02/20/MNABV5LHM.DTL&tsp=1
The kernel needs to support hotpluggable CPUs for virtualizated machines. Being able to add or remove CPUs on the fly based on load will be pretty neat.
Yep, I knew a few developers who switched to Linux because they realized that they were using Firefox and Eclipse all day long. Windows open source makes a good gateway drug. ;)
/etc - configuration files, startup scripts, etc...I have Ubuntu 6.10 working fine with my Dell D620 at 1440x900 attached to a 1680x1050 LCD (dual monitor, both widescreen). But you're right, I did have to muck around with my xorg.conf (ie: Option "MetaModes" "1440x900,1680x1050; 1440x900,NULL"), and it would be nice if it would auto-detect all this stuff like Windows does.
http://triangle.bizjournals.com/triangle/stories/2 005/05/09/story1.html
Why would Dell try to convince people that there is no demand for Linux?
What languages were used? I would think that, given the time limit, something like Python (with PyGame or PyOgre) would be preferred over the more traditional C++?