Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×

Comment Re:So what did I already buy? (Score 1) 235

IOCP or WMFO are both options on Windows which are worth investigating. Thankfully, a bit ago (sometime last decade) somebody wrote a Java library called NIO (http://en.wikipedia.org/wiki/New_I/O) which provides platform-independent networking services, and somebody else included it into the Java standard library. Then, some people wrote a thing called MINA (http://mina.apache.org/) which provides even better networking services on top of NIO, and somebody else got the Apache guys to maintain it.

So yeah, there's no excuse for thead-per-connection these days. Using NIO or MINA in Java is the right way to build asynchronous servers.

Comment Re:*Now* can we admit PHP sucks? (Score 1) 213

Python 2 has Unicode string literals...

$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> if len(u"£") == 1: ... print "Lawl @ some kid thinking PHP's a real language" ...
Lawl @ some kid thinking PHP's a real language

And of course, Python 3's strings *default* to Unicode...

$ python3
Python 3.1.2 (release31-maint, Sep 17 2010, 20:27:33)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> if len("£") == 1: ... print("Wait, Unicode by default? Awesome!") ...
Wait, Unicode by default? Awesome!

So I think you need to go stuff it.

Comment Re:It's not easy (Score 4, Insightful) 182

Ever read Raymond Chen's book? It's pretty terrific. There's an entire section dedicated to showing how Win32's stable API and ABI in kernel and user space has been a horrific nightmare and is a large waste of developer manpower.

Also, the *only* people affected by the lack of stable ABI are people that ship out-of-tree kernel drivers, all of whom have no excuse for not immediately pursuing upstream merges of one sort or another.

Also, some exported kernel APIs, like the syscall list and ioctl list, are sacred and are never altered. To take a topical example, all KMS graphics drivers respect and give sensible return values for legacy userspace X components calling pre-KMS settings.

And finally, to answer your strawman, *yes*, you can get a driver accepted if it has no users besides yourself. IBM's notorious for this; one of their upstream drivers has something like 2 users in the entire world. The drivers that tend to be controversial are things like reiserfs4 (layering issues, maintainer conflicts), aufs (layering issues, code quality issues), OSS4 (licensing issues, maintainers want to keep it out-of-tree!), etc. where there are clear and obvious reasons why the upstream merge hasn't happened.

Hell, for DRM, this was a problem too, since the DRM/libdrm tree was buildable for BSD as well. We made the decision a bit ago to merge into the Linux tree and make the out-of-tree repo for libdrm only, and all of a sudden, life gets *easier* because we no longer have to switch back and forth between Linux and BSD compat.

Comment Re:Poor programmer? (Score 4, Interesting) 279

He is a terrible programmer.

He doesn't use Java NIO; instead, he uses threads. Wanna guess how many threads he spawns on startup? How about how many threads he spawns per connected player? (Answer: 12 and 4.)

His wire protocol and disk format are horrible. No delimiters, no seekability, no fixed packet sizes. He invented his own little standards and they are horrible. http://www.minecraft.net/docs/NBT.txt is the disk format; before that, he just serialized the Java classes directly to disk. (And to wire; one of the Alpha wire packets was just a chunk of the disk format!)

His grasp of GL is embarrassingly awful. He pridefully boasts GL 1.1 compatibility, but the fact is that he uses no features or extensions from GL 1.2 or later, including shaders, dynamic lighting, or vertex buffer objects. All of the drawing is done in slow display lists, and the lighting is done through a statically stored light map. (This might not set off alarm bells if you haven't done GL before. Trust me when I say that this is horribly slow.)

I wouldn't mind if it weren't for the fact that he has charged for alpha-quality software, as part of an open alpha test.

Slashdot Top Deals

"Don't try to outweird me, three-eyes. I get stranger things than you free with my breakfast cereal." - Zaphod Beeblebrox in "Hithiker's Guide to the Galaxy"

Working...