Aug 18

Long ago when DirectX 10 was released and soon after when everyone started bagging it I predicted either one of two things: OpenGL will undergo a similar transformation and cop the same amount of criticism from know-it-all fanboys, or OpenGL will stay the same and cop a fair amount of criticism from game devs and consequently know-it-all fanboys with no hope of getting better in the future.

OpenGL 3.0 spec’s are released and… “I can hear the laughing at Seattle from here (and i’m in europe)” sez a forum goer, reflecting the sentiment in the thread the announcement was made.

In a bid to make the non-game developer happy OpenGL 3.0 comes chock full of legacy support, the same kind of legacy support that game devs don’t need, the same kind of legacy support that is turning into bloat and becoming increasingly harder to remove with each and every new iteration.

However there’s still hope for OpenGL, it can break into two seperate fields, one for game dev which dumps legacy support and changes to better compete with DirectX and one can remain for the engineer types who are building bridges or whatever it is they do with OpenGL. OpenGL ES does this to an extent, but it needs to be taken to the next level, a whole new consortium of experts should get together to create the new game dev targetted specifications, much like what ARB is doing to please the engineers.

It’s not good enough we have OpenGL 3 and nothing for game developers, it’s not good enough OpenGL now actually has a deprecation model but still keeps everything it has deprecated with no sign of actually evolving, it’s not good enough we have OpenGL ES which does not have any support for PC games and virtually no input from hardware vendors and game devs (I might be wrong here, please correct me if so).

Aug 13

Well my harddrive had been getting very full and rather than selectively uninstalling this that or the other thing I just took a match to it and started fresh. Of course with a fresh OS install and an empty hard drive comes a new IDE, so I used it as an excuse to update from Visual C++ Express 2005 to 2008.

The new IDE looks very preddy but there may be some problems with the way the vector library is now handled. In the ZAMN remake I use the DirectX animation libraries, I use a mesh container which looks something (read: exactly) like this:

struct MultiAnimMC : public D3DXMESHCONTAINER
{
LPDIRECT3DTEXTURE9 *m_apTextures;
//vector <LPDIRECT3DTEXTURE9> textures;
LPDIRECT3DTEXTURE9* textures;
LPD3DXMESH m_pWorkingMesh;
D3DXMATRIX * m_amxBoneOffsets; // Bone offset matrices retrieved from pSkinInfo
D3DXMATRIX ** m_apmxBonePointers; // Provides index to bone matrix lookup

DWORD m_dwNumPaletteEntries;
DWORD m_dwMaxNumFaceInfls;
DWORD m_dwNumAttrGroups;
LPD3DXBUFFER m_pBufBoneCombos;

HRESULT SetupBonePtrs( D3DXFRAME * pFrameRoot );
};

Notice the line that says vector<LPDIRECT3DTEXTURE9> textures? I had to comment it out and replace it with what you see underneath, an array. For reasons unknown when I attempted to call the push_back function of the vector I would get strange errors regarding an overloaded operator, well this one:

_Myt& operator+=(difference_type _Off)
{ // increment by integer
_SCL_SECURE_VALIDATE(this->_Has_container());
_SCL_SECURE_VALIDATE_RANGE(
_Myptr + _Off <= ((_Myvec *)(this->_Getmycont()))->_Mylast &&
_Myptr + _Off >= ((_Myvec *)(this->_Getmycont()))->_Myfirst);
_Myptr += _Off;
return (*this);
}

Normally I’d feel very angry about not understanding why there is an error where I don’t think there should be an error but I’m trying to just live and let live, no harm done, everythings working as before, no need to waste hours figuring out whats so different. Still, I’ve got my eyes on it.

I just hope they’ve fixed the memory leak in the ofstream class that was ever so present in the 2005 version. Imagine a memory leak on an std function, last place anyone would look.

Aug 6
Reading typical pro-Apple drivel is quite a common experience for anyone who frequents websites like Digg or Reddit, or the internet in generel. So no matter, I’m used to seeing and ignoring the irrational attacks Microsoft gets and the unconditional praise Apple is lavished with but on this case I have to reply, and kick some uninformed ass.

Mark Damon Hughes has written an article claiming Macs Make Programmers citing some very wierd examples as to why. He misses the mark so many times that I have decided to take action and correct his misunderstandings.

The basic premise of the article is this: Because Mac’s come pre-installed with development tools and have a fairly large install base it makes programmers, wherein Windows and Linux come short. If that does not sound like fundamentally flawed reasoning on face value I don’t know what to think of you, but since the reddit submission to the story has recieved 100+ upmods there clearly are a lot of people who have fallen for this crap.

Since ohlai from Reddit has already stated why this reasoning is way too flawed to apply to Linux better than I ever could I’m just going to copy and paste it here,

Wow. This shows a pretty fundamental misunderstanding of GNU/Linux, especially since the whole damn thing was built and is maintained by hobby programmers.

Additionally anything you need to get going is a single package manager command away from being installed.

This guy kinda throws out his argument for not having to install anything additionally buy say that XCode needs to be installed from the OS X DVD. :(

Also, IIRC, C & C++ aren’t part of a standard OS X install, but need to be installed separately or at least need to have some sort of license agreement accepted.

Finally the author overlooks that OS X is based off of BSD UNIX, and that Linux shares this history insofar as it is based off of UNIX. To get started using a command line, Linux would be no more hostile than OS X.

FWIW, Linux also has BASH, as does it have CSH, TCSH, ZSH, KSH, and a whole fuckton of other shells. On a modern distribution, you also have access to Lisp, ml, ocaml, MIPS, flasm, nasm, haskell, D, a mega-fuckton of other language compilers/interpreters, including ObjectiveC.

permalink

As for Windows, Mark starts off with “But MS Windows ships with nothing. No BASIC. No C compiler. You’re trapped, stuck playing with Solitaire and MS Paint” which pretty much sums up the tone for the rest of his article, sensational and perhaps even delibrately misleading.

It is irrelevent what Windows ships with, or what any OS ships with, you can download various frameworks and APIs to get started with programming. Mark seems to forget there is this thing called the internet which most people have access to. Glossing over this Mark moves on to pinning Visual Basic to beginner or hobbyist programming, like it’s the only langauge that exists on Windows which is suitable for beginners and hobbyists.

As a novice programmer I went out and read about how to get started in programming. Back then I, as a novice programmer, was not aware of what Python was or what Ruby was. Someone who wants to be a programmer but doesn’t know the first thing about programming would probably google it. After learning about various langauges the next step would probably be to pick one to learn. Pick any, from C++ to Mark’s beloved Python, it is very easy to get access to either on Windows.

He also for some reason or another insists that Microsoft has killed hobby programming. Considering Microsoft has invested so heavily in XNA, released various IDEs for their languages in the ‘Express’ line and how hard they work in third world countries to get kids familiar with Windows one has to wonder just how Microsoft plans on killing hobby programmers. Mark insists that since Microsoft is not supporting Visual Basic it is delibrately discouraging novice programmers who are in it for the fun. I don’t know if he is aware we are no longer in the 1990s, there are dozens of languages suitable for beginners available on Windows, Python included.

If Python is ideal for beginners then the best Mark could say is the difference between OSX and Windows for novice programmers who are interested in programming specifically for Python is a Google search.

I’m only 20 so I don’t really know, but from the ancient programming textbooks I’ve read BASIC itself has a reputation for being a bad teacher to novice programmers, but we’ll leave that for some other time. The point is, there are far more languages a novice can pick up on for Windows than Visual Basic, which is fairly obvious, but apparently unclear to Mark.

Let’s move on, as Mark does. So what else has Microsoft done in an effort to reduce the number of people who code on Windows (and, you know, help make it sell)? Apparently being a professional Windows developer is not cheap, starting at $300. That’s right, kids who just want to code at home are now professional Windows developers who need to spend at least $300 to make their dreams come true. Is there any real limitation to Microsoft’s free offerings? For the record all my projects use Visual C++ Express and various free APIs, my only expense thusfar has been the 3D models, which are not even related to programming. I don’t know what Mark means by ’serious’, but if he means ‘work in a professional environment’ then sure, big companies will be more than willing to throw around thousands of dollars for support and productivity tools only they will need (which novices won’t).

Perhaps the only thing I can agree with Mark on absoloutely is young hobbyist programmers of today make the dedicated professionals of tomorrow (who will work for companies which pay for the $12000 software but what right do I have to say that?) Of course I don’t agree with him on the semantics. He is wrong when he generelises and says “once you teach someone to program, it’s completely addictive”. Programming is like anything else, you either like it, or you don’t, or you fall somewhere in between. There are many people who don’t like to program, they’re just not interested in it much like there are people who don’t like going camping and there are people who do, or there are people who like reading novels and there are people who don’t.

Delayed teaching is an interesting concept, the idea that if you wait until college it’s too late to code, period. I don’t think that’s true, there seems to be a misunderstanding in the programming world. The best programmers probably did start young, however this is a reflection of their desire to program more than anything else. Likewise we could say the best tennis players started young, it doesn’t mean it’s too late to play tennis when you’re in college or even past that stage in life but odds are if you liked tennis when you were younger you are more passionate about it. I actually started programming in college and while I don’t mean to speak ill of my fellow classmates I did probably do a lot more than they could, even the ones who did start at a young age. I mean in second year my friends were making Windows Form Based ‘First Person Shooters’ and I was going the whole way with a 3D shooter. I had the passion and dedication to do it, doesn’t matter if I coded while young or not.

Unlike Mark I blame the lack of programmers on the work conditions. Programming is probably one of the more underappreciated professions in the industry today. What I find disturbing is even those who claim to be most passionate about programming have strange goals, if I take, say, Facebooks original developer, and ask him ‘what do you want to be in five years?’ the answer will probably be ’stinking rich!’

So why do people still get into the field? Because they love it, enthusiasm makes programmers, not Macs or Windows or Linux.

While I don’t want to sound like I’m out to assassinate Mark’s character saying such things as:

I suppose Linux and Windows users don’t notice this, they probably think it’s great, because they have no taste. To a Mac user, it’s repulsive and dysfunctional.

When referring to the quality of software does not help your credibility in the world of software engineering.

Elitist much?