This week’s project is a molecular dynamics simulation. Don’t get too excited, it’s not using any of the state-of-art algorithms nor is assembling 3-dimensional structures of complex proteins. I began with a simple carbon chain using only coulomb’s law in a spring-mass system.
The molecule I’m using is this:
The drawing program is quite simple and wont work for most molecules, but for the 2-dimensional simple molecules (max. of 3 connections per atom) it kinda works.
Later on, putting the program to run, each atom “pushes” all others electrically and the spring “pulls” them back. A good way to solve that is to say that q1 . q2 / x² = – k . x = m . d²x/dx² (where x is a vector) and integrate numerically using Runge-Kutta.
But that’s my first openGL program, so I decided to go easy on the model and actually see it pseudo-working with an iterative-based simulation following the same equations above. This picture is a frame after a few iterations.
Quoting its page: “As this simulation is not using any differential solution, the forces grow and grow until the atom becomes unstable and break apart. Some Runge-Kutta is required to push the realism further.”
The webpage of the fully-functional prototype is HERE.
I’m a big advocate of free software, highly active on the Anti-DRM campaign and a big fan of Richard Stallman (as you can see by reading back lots of posts on this very blog). In his last text to the media about Bill Gates’ retirement, he says (as usual) some very strong arguments about fair societies, freedom of use and copy etc. We all know that, right?
Well, there is one thing I don’t particularly agree: proprietary software.
In a recent talk, he said there was a fair reason why there is copyright: Investment in technology. In the old days, it was the press. Today, we have software companies.
The beauty and the beast
Microsoft, as he said (and I reiterate), only abused of development made by other companies since their first product. Worse, since then, they’ve been buying one company after the other and scraping each one of them (pretty much like Yahoo! is doing recently, therefore the interest). But there are lots of others that are doing fine, and it’s not fair to put them all in the same box.
Adobe Photoshop is a great example. Gimp is fantastic, of course, but the investment in Photoshop is huge and there is a clear difference. The cost is high, but the quality is also high. Like Photoshop, many other specialist software in music, video, animation, scientific, electronic, games and so on have a specific market, to which they belong and are doing pretty well. I’m not saying Adobe (or any other specialist company) is fair, just that some are investing seriously in development, not only sucking their users money and freedom.
Windows is unfair, it locks the user, it treats them as liars, cheaters, yes. Worse still, you can’t use it with anything else because it’s forcefully incompatible with the rest of the world, yes! They’re cheating by making you buy their license even if you’re not using, to force you update Internet Explorer even if you use Firefox, to report all your actions to Microsoft and god know what more. YES!!
Apple with horrible DRM locks, pushing iPhone updates and all we already know they do, Warner, Sony and all the like. Yes! They are mean! But that doesn’t mean all companies are.
Research and Development
If you have a free software (open source) that is enough for your uses, or you can hire someone to increment or adapt it to your needs, fine! If you can write software to your needs and redistribute it to the rest of the world, perfect! But why negate the existence of fair research and development, I don’t know.
I’ve been on the academia side of development to know very well what happens here: some PhD writes a piece of software, without any care for quality or extensibility. Later on, someone (or themselves) make it open source and people start using it, extending it. But most of the time it’s not possible to carry on incrementing, its need a re-write. And people re-write software fortnightly on academia.
The investment is in giving PhDs a good time and not to produce good software. Free software is good not because of that investment, but because people that need it, do it. It’d be fantastic if academia could teach them about software quality, if there was a real control over what they produce (like acceptance by the open source community) as part of their grades.
Now, private companies (like many around Cambridge) invest a good bunch of money in research and development, hiring those same guys and giving them a proper training in software engineering and getting things done, very well indeed. That costs money, I can’t see how they could open the source, at least not in the first years of sale.
Some companies give it for free (as in beer) for academic institutes. But the most important (IMHO) is to be extensible and to have a clear interface. Good software, even if closed source, have a clear and easy-to-use interface. With that, you can extend it to suit your needs. It’s not as good as having the source, but it’s a start.
Enforcing DRM locks, spying on users, making impossible to connect to other software, being nasty is the problem, not being proprietary.