Slashdot Mirror


User: sesquiped

sesquiped's activity in the archive.

Stories
0
Comments
128
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 128

  1. Re:Old Favorites on Industry Folks Talk Underrated Games · · Score: 1

    Another awesome NES game that wasn't very popular was StarTropics: an action-rpg where your primary weapon was a yo-yo. Funny dialog and minor puzzles in the rpg mode, fun gameplay and hidden stuff in the action mode.

    I also have to mention King's Bounty, the predecessor to the Heroes of Might and Magic series. You lead an army of creatures around four continents capturing villains for bounties, and clues to the location of some hidden sceptre, the finding of which constitutes winning the game. Some interesting bits reappear in HOMM, like the fact that creatures from the same terrain type get along better together. Some features are unique, like your leadership rating, that limits the number of creatures you can safely control, and the fact that you have to pay out money to your army weekly, or they'll desert. This made some creature types (like orcs) more cost-effective than other seemingly better ones (black dragons). KB came out for PC (dos) and Genesis.

  2. use erlang on Writing High-Availability Services? · · Score: 2, Informative

    Erlang makes writing applications like this much much easier than in any other language or framework I've seen.

    Check out this tutoral on making a fault-tolerant server in Erlang.

  3. Re:Dutch code! on Linux Kernel Code Humor · · Score: 1

    Um, no. He's caching the result of the glGetString() call, which might take much longer than the strcmp().

  4. Re:Best Game No One Played on PC on Games of the Year · · Score: 1

    Nobody that I know has played Space Wars, but just about everyone has played some clone or variant of asteroids. And although the gameplay is very different, the graphics are a bit similar, and I was trying to give people some sort of idea of what they'll see if they try it.

    Btw, one of the more immediate ancestors of subspace was a little demo called "Gravity", by (I think) two of the people on the original ss team. It actually plays very similarly to asteroids, including the lack of backwards thrust, puny one-shot gun, and the fact that it's really fucking hard.

  5. Re:Subspace?!? on Games of the Year · · Score: 1

    I didn't say it was "Game of the Year," I only said it's one of the most underappreciated games I've seen.

    And I'm still playing Subspace after 5 years, unlike Starcraft and Half-Life (which are great games, but they just don't do it for me like ss does).

  6. Re:Best Game No One Played on PC on Games of the Year · · Score: 1

    There's no contest for the best game that nobody's playing: Subspace. Think multiplayer asteroids, but blowing up other people instead of rocks, with varied weapons and specials, and lots of game types, including deathmatch (chaos), ctf (warzone) and soccer (powerball).

    Oh yeah, and it's totally free.

    (In case the site is confusing, you want to download Continuum 0.37)

  7. Re:Standardisation is important...... on Yet Another Call for Linux Standardization · · Score: 1

    For libraries, you should require whichever libraries your application uses. All distros supply packaged versions of most standard libraries. If they don't, the user can compile it from source.

    As for directory layout, your application should be able to install itself anywhere on the system. It should not hardcode paths for anything, except perhaps configuration files in /etc, but even those should be able to be moved. If you want to link to shared dynamic libraries that you don't know the location of, that's fine, because all the locations those libraries can be in will be listed in /etc/ld.so.conf. If you need to link to your own private shared libraries installed somewhere in your application's directory tree, you can use a simple LD_LIBRARY_PATH wrapper script to launch your app, just like mozilla and countless other packages.

    It's that easy. The only distribution-specific stuff you have to worry about is if your application needs to load kernel modules (which means you're doing something wrong), or needs to do stuff like add new user accounts, in which case you can just ask the user to do it manually as part of the install procedure.

    The lack of standardization across distributions doesn't affect properly written applications.

  8. Re:Description of O(1) scheduler? on Interview With Linux Kernel Guru Ingo Molnar · · Score: 4, Informative
  9. Re:One Problem: on Mac OS X 10.2.2 Update Available · · Score: 4, Interesting

    I often name files starting with uppercase letters so they don't conflict with others for tab-completion, but that's not the important issue. The important issue is unicode. In general, it's much more difficult to do things case-insensitively when dealing with unicode, because case isn't a very well-defined concept. Sure, for English text using the Latin alphabet, it's pretty straightforward, but for other languages and other alphabets, it can get much messier, and you have situations like several consecutive characters being shortened to a single one, as part of case normalizing, or a character turning into multiple ones. So strings can even change size as part of case normalization, making the implementation of an accurate case-insensitive unicode string comparison quite a difficult and complex piece of code, and in particular, one that you don't want anywhere near your filesystem code.

  10. Re:Regular Expressions Haven't Changed on Next Generation Regexp · · Score: 1

    Er.. the one you posted, /(.)\1/ is regular. Perhaps you meant /(.*)\1/?

  11. Re:write event driven programs; threads for CPU wo on Is Profiling Useless in Today's World? · · Score: 1

    I suppose I'm already following that advice: I'm using a combined thread/main-loop design in the current server. There are a fixed, small, number of threads for things that are time-criticial or might block, and also a loop running in the main thread that calls a bunch of registered functions every once in a while, for low-priority tasks.

    The problem is this: once you start using threads, even a few, you have to start protecting your data structures with mutexes and probably use other synchronization methods as well. If your code already has mutexes around shared structures, then there's little harm in adding a few extra threads. The big benefit I can see from minimizing threading is to get it down to a single thread, so that you can eliminate all of the synchronization overhead.

  12. Re:write event driven programs; threads for CPU wo on Is Profiling Useless in Today's World? · · Score: 1

    Ok, I agree that non-threaded code can be easier to understand than threaded code, and can usually run faster.

    However, I'd like to hear what you'd do in a situation like this: You have a network server that has to respond to incoming packets within something like 50 ms (it's for a multiplayer action game). The server also needs to keep track of player information in a database, so it uses something like the mysql C client library. But then it has to block on a mysql_query or mysql_insert, because that library doesn't provide any way to do things asynchronously (this maybe have changed with newer versions; I looked at mysql a few years ago). Or what about DNS resolution? Or any other blocking event other than plain IO through an fd?

    One solution might be to fork off a process doing the mysql, and have it communicate with the parent through pipes/sockets. But you have to invent a small, one-time protocol for each of these you do. And did I mention this has to run on Windows too, whose IPC sucks?

  13. Re:virii on Unix Shell-Scripting Malware · · Score: 1

    Oops, sorry. /home/wrap_foo/real_foo should be owned by group A, obviously.

  14. Re:virii on Unix Shell-Scripting Malware · · Score: 1

    Wrong. It's possible. Here's a solution:

    Let's say you want to allow access r/w access to /home/foo to group A, and ro access to group B.

    Create a new group, C, that's the union of A and B.

    Create /home/wrap_foo, owned by root and group C, with permissions rwxr-x---.

    Create /home/wrap_foo/real_foo, owned by root and group B, with permissions rwxrwxr-x.

    Create /home/foo as a symlink to wrap_foo/real_foo.

    Obviously, the need for a third group that has to be maintained in parallel and the symlink make this method somewhat awkward. But it does work.

  15. Re:Language power is a myth. Here is my take. on What Makes a Powerful Programming Language? · · Score: 1

    Tail recursion is supported in all three languages? Excuse me? Sure, you can make all the tail calls you want, but in none of those three languagues is the compiler guaranteed to perform them without growing the stack, which is absolutely essential for safety. (What if you want your while loop to run indefinitely until the user selects "quit"?)

    And I think you missed the point of Kaz's post: he's claiming that the object abstraction isn't suitable for making new control structures with the language. As an example of something that provides better abstractions (at least for this purpose), take Common Lisp. It has first-class closures, which are perfect for expressing the condition and body of the loop, because they can refer to variables of the lexical scope where they appear. The macro system (which you might think of as the abstraction of code as data) also helps here, though not as much as the basic lambda abstraction, which is much more powerful than a C, C++, or Java function. Using lambda (and other Lisp-ish features) you can create control structures, like coroutines, that aren't supported in the basic language.

  16. Re:Don't know if this is it, though it sounds good on DirectFB: A New Linux Graphics Standard? · · Score: 1

    It feels like an "unaccelerated SVGA driver" because it is. The nv driver that comes with XFree86 performs no hardware acceleration at all. You should be using NVidia's accelerated drivers from http://www.nvidia.com/view.asp?PAGE=linux. Yes, they are closed source, but at least they exist, unlike drivers from many other manufacturers.

  17. Re:Scheme in CS on Ask Kent M. Pitman About Lisp, Scheme And More · · Score: 1

    I can't speak for other places, since I'm still an undergraduate, but here, we give them a choice (specifically look at the contrast between 15 and 17 on that page).

    A few years ago, some people were fed up with the then-only introductory CS course sequence and decided to make a totally new one, based on functional languages (Scheme and ML in the first semester) and more heavily focused on theory. It started pretty small, but it's been steadily growing in popularity every year. At present, it's about half the size of the "traditional" intro course (which focuses entirely on OO and design in Java), which I think says a lot about what students will do if you give them a choice.

  18. Re:multithreading vs singlethreading on Whither OpenAL? · · Score: 1

    Thanks for your reply, I'm getting a better idea of some of the issues involved.

    I happen to be interested in some of these architectural-performance issues because I'm currently working on a network server for an online game. It has to stay responsive to "unreliable" movement data at all times while other parts of it might be blocking on various things (e.g. libmysql calls, big file i/o, interpreting extension code in Scheme). I started out thinking it could be done in a single thread with lots of message-passing, but I switched over to a small number of (preemptive) threads when I realized that some of the stuff I'll be using (the mysql, for example) simply blocks and can't be forced into an asyncronous model.

    Getting back to the topic, I was thinking about how my decision to use preemptive threads to "guarantee"* that the time-critical data would be processed quicky would affect cache consistency. Now, a network server is much less CPU-intensive than sound or graphics, so my intution suggests that cache effects would be much less as well. Does that make any sense? Are there alternative structures I should be considering, give my (vague) requirements?

    I have looked into pth, and it seems useful for some things, but I'm not sure it's appropriate for me. Also, switching over to it would require lots of effort at this point, and I'm not sure I would even get any benefits.

    *Of course that's only a soft guarantee, but it's enough for this application.

  19. Re:objprelink on KDE 2.2.1 Up · · Score: 1

    KDE does this to a very large extent already. All important KDE applications are already shared libraries (konsole.so, konqueror.so, etc.) and have embeddable versions (libkonsolepart.so, libkonq.so, etc).

    In fact, this is the basis behind KDE's previous (and still useful) startup-time-reducing hack: kdeinit. The idea was to have one process (kdeinit) load all the necessary shared libraries for all kde apps, and then to run a new konsole, all it has to do is fork and call a function, instead of forking and invoking the dynamic loader to load all those libraries all over again.

    (Note: I'm not a KDE hacker, so some of the details might be wrong. I'm just a user who's interested in these kind of issues.)

  20. Re:Yes, but on Whither OpenAL? · · Score: 1

    What you (the context switch to the sound thread screwing up the cache) makes perfect sense, but I'm a bit confused as to how a single-threaded design can avoid that problem. You still have the same amount of vector math and the same amount of sound processing to do, but instead of the OS taking care of scheduling them, you have to do it manually. Doesn't the cache still get dirtied when the single process switches from doing some graphics work to doing some sound work? Or do you arrage it so you do the sound in between unrelated parts of the graphics work, so the cache would be dirtied anyway?

    If so, can't a multi-threaded design work if you have enough control over scheduling? Enough control meaning being able to give the scheduler hints like: no, don't switch me out now and yes, do a switch now.

  21. Re:Damn it! on New (More) Annoying Microsoft Worm Hits Net · · Score: 1

    I don't know all the details of your mail setup, so I'm not sure if this will work, but have you considered fetchmail?

    It will contact a remote server and download your mail, feeding it to the local MTA (pull instead of push). This means you can block port 25 from outside and have everything still work. You can even configure it to skip the MTA and talk directly to an MDA if you want.

  22. Re:Yeah, I guess so on Anti-Aliased Fonts For GNOME · · Score: 1

    Why in the world should the OSS community be embarrassed at limitations of a display system and protocol that they didn't create? I'd suggest go learning a bit about the history of X Windows and the X Consortium before you start criticizing whole communities for things they are entirely not responsible for.

  23. Re:Why is /. defending this? on MPAA Goes After Gnutella · · Score: 1

    Interesting post... I'd like to make one small point, though:

    In today's world, the distribution cost of what is known as "intellectual property" is not the cost of a CD, or some small number, which when multiplied by the scale of the theft, becomes a real number. It is zero. Not very small, but zero. Because music doesn't have to be stolen on CD's, it can be transferred over Napster for absolutely no money at all. And even a billion times zero is still zero.

    So I'd like to reiterate the original poster's point: the economics of physical goods don't apply to the economy of intellectual property not because the marginal cost is small, but because the marginal cost is zero!

  24. Re:If Netscape would just get off their ass on MSIE Security Worsens: Patch Bungled · · Score: 1

    Actually, it can do both. Granted, using Gecko is a bit harder to configure, and I think it's only in CVS at the moment, but it is technically possible. But there's nothing wrong with KHTML. I've been using it for the past few months and I've found very few sites that don't render properly.

  25. Re:I think we'd have more important problems on Rebooting The World? · · Score: 5

    > The typical *nix sysadmin or Perl hacker has a
    > very specialised set of skills that only counts
    > within the narrow environment in which they are
    > confortable operating in.

    I'd tend to disagree: although the body of knowledge used by a sysadmin is admittedly specialized, that is true of almost any modern profession. However, to be a competent sysadmin or programmer requires lots of general intelligence as well as problem-solving skills, and in general, the ability to think rationally about things and find logical solutions. A hacker would not be "like a fish out of water" at all. He would simply transfer his skills to his new environment, just like everyone else would have to do. And there's a good chance he'd be more successful at the transfer too.

    Your assumption that hackers' skills would not transfer, and your unfair generalization of their lack of social skills shows that you have a very limited (and inaccurate) idea of what a hacker actually is.