Slashdot Mirror


User: SimHacker

SimHacker's activity in the archive.

Stories
0
Comments
1,231
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 1,231

  1. Re:Listen to Alan Kay, and ask him questions! on One SimCity Per Child · · Score: 1

    In other (and fewer) words, the plan is to respond to Alan Kay's valid criticisms of SimCity by opening it up to scripting languages, documenting and parameterizing how it works, and ultimately implementing an eToys-like visual programming language for scripting and extending SimCity, and implementing your own games based on the reusable components that SimCity will be rebuilt in terms of (like a generic tile engine, sprite engine, map editing tools, numerical and symbolic layers, data visualizations, overlays, annotations, points of interest, etc).

    Oops, I was trying for fewer words. Oh well...

    -Don

  2. Re:Listen to Alan Kay, and ask him questions! on One SimCity Per Child · · Score: 1

    Alan Kay wrote this on the OLPC Sugar mailing list, about implementing visual programming languages like eToys in Python:

    Guido knows that I've been advocating that the Python folks should do Etoys or a very Etoys like environment in Python (and that the rest of the OLPC be given an objectification and media and scripting integration that is Etoys like).

    However, there are simply zillions of things left to be done everywhere for OLPC so the first round of SW on the XO will be more of a gathering of "suggestive" features and abilities (of which Etoys is just one). That seems fine to me.

    Viewpoints Research (our little non-profit) doesn't have any "ego or identity" staked around whether the children's authoring environment is Python based or Squeak based. I have said many times that, if the general integrative base of XO is to be Python, then the Etoys-like authoring should be based in Python also.

    However, I will personally fight to the death to make sure that there is a children's authoring environment that allows even young children to do simulation style programming with very rich media objects.

    For now, that is Etoys. It could be a suitable object-oriented Logo with media objects (this is essentially what Etoys is). It could be some better design (let's do one). The base could be Javascript (if implemented on top of an integrated environment of sufficient power), Python (ditto), Ruby (ditto), etc. Whatever it is, it has to be above high thresholds, not a hack or a gesture.

    Besides the programming the children use to learn important ideas in math and science, they also need to be able to see how their own computer world is structured by being able to "pop the hood" on practically everything they use. Perhaps it is OK for high school children to see the current code (but I don't think so). I think there needs to be a wrapping on the entire set of facilities that uses the same conventions that 9 year olds do their own programming in. Again, if it is to be Python, then it needs to be crafted a bit for younger children. E.g. Etoys allows easy unlimited parallel tasking, and this is very important for children's programming. Etc.

    There are many good things that can be done here. We live in a computing world in which there is a tremendous amount of identification between many programmers and the tools they use -- so strong that it resembles religious fervor. From my view, ALL of the system have such flaws that we are better off being critical of all of them and try to use the best ideas from everywhere.

    If "Children First!" is really the goal here, then we must spend most of our energies trying to make the childrens' environments more conducive to creative learning of powerful ideas.

    Cheers,

    Alan

    One of Alan Kay's favorite games is Robot Odyssey! I wrote to him:

    One thing I've always wanted to do is a re-make of Robot Odyssey, with the full power of a real programming language underneath it, and lots of cool toys for the robots to play with! That was such a powerful concept for a game!

    Alan Kay replied:

    I actually argued with him [Will Wright] and Maxis for not making SimCity very educational. E.g. the kids can't open the hood to see the assumptions made by SimCity (crime can be countered by more police stations) and try other assumptions (raise standard of living to counter crime) etc. I've never thought of it as a particularly good design for educational purposes.

    However, I have exactly the opposite opinion of Robot Odyssey, which I thought was a brilliant concept when the TLC people brought it to me at Atari in the early 80s. (Rocky's Boots is pretty much my all time favorite for a great game that really teaches and also has a terrific intro to itself done in itself, etc. Warren Robinette is a very special designer.).

    The big problem with Robot Odyssey (as I tried to

  3. Scripting SimCity on One SimCity Per Child · · Score: 1

    Yes it works fine on the black and white (grayscale) screen, without any change. The color coding helps you recognize stuff, but it's not necessary. The color graphics just come out in grayscale, without the software even knowing about it. SimCity does have a black and white tile set, but this version doesn't actually use it. (It could, but the X server would have to go into black and white mode, which is not nearly as nice as grayscale mode). It would be a straightforward modification to support black and white tiles, which are high contrast, but it looks good enough for now. It's better to put effort into moving SimCity forward into Python for scripting and Cairo for rendering, and enabling plug-in tile sets, then it will be simple to plug in the old black and white tiles.

    The open source lincity would also be nice to port to the OLPC. I don't know if it has a built-in scripting language like TCL or Python, though.

    That's what makes this version of SimCity so useful for education: it can be scripted to support educational scenarios, science experiments, courseware, etc. For example, the OLPC's microphone input can be used as an analog input device, so you could plug in a digital thermometer, and script the temperature in the real world room to effect the tax rate of the virtual city, or you could monitor the built-in microphone amplitude, and trigger an earthquake every time you clapped your hands, or anything else you can think of.

    -Don

  4. Porting SimCity to Python + OLPC's "Sugar" gui on One SimCity Per Child · · Score: 1

    The next step is porting SimCity to Python and the OLPC's "Sugar" user interface, and taking advantage of all the cool mesh networking stuff to implementing a fully distributed multi player version of SimCity.

    To tell the truth, the version of SimCity we're releasing actually does support multi player mode via the X11 protocol, if you run it with a special parameter on the command line. But I turned it off and disabled the multi player mode by default, for the purposes of simplifying and releasing OLPC SimCity as soon as possible.

    It's much better goal to port SimCity to Python and rewrite SimCity's user interface to use the OLPC's mesh networking and Python based network communication architecture, instead of using low level X11 protocol. I consider the TCL/Tk version of SimCity to be a dead end not worth investing a lot of time in developing (it's using a vintage 1992 version of TCL/Tk, which is quite obsolete but still works). The future lies in porting SimCity to Python, a much better and more modern language, and using modern software modules, like Cairo for drawing (so you can zoom into the city to any scale, draw transparent map overlays and data visualizations, etc).

    -Don

  5. Re:Great... on One SimCity Per Child · · Score: 1

    The new SimCity easter egg is now "olpc". There are a few more but you have to read the source code to find them.

    -Don

  6. SimCity and Python on One SimCity Per Child · · Score: 3, Interesting

    That version of SimCity is the original SimCity Classic code written in C, packaged as an ActiveX control. It's not written in Java or JavaScript (or PHP for that matter).

    The version of the code we're releasing initially uses the TCL/Tk scripting language and user interface toolkit. But the simulation code itself is written in C. It's plugged into the scripting language, which can call it, but only integrated to a limited extent (just what the user interface required, not exposing all the workings of the simulator).

    Next we will repackage the original simulator as a Python module. The first step is to recast the original C code into a C++ class, so all the global variables and global arrays are local instance variables of a SimCity object, so you can have any number of simulations active at one time and they will not interfere with each other.

    After SimCity is recast as a C++ object, we will plug it into Python and other scripting languages by using SWIG, which is a nice way to integrate C and C++ code into a whole bunch of different scripting languages.

    Then we'll rewrite the user interface in Python, based on the other efficient modules that are integrated into Python but written in C or C++, including the GTK user interface toolkit for X11, the Cairo graphics library (like PostScript graphics but much better and hardware accelerated), the Pango text layout engine (draws with Cairo, supports internationalized text, so SimCity can support Unicode text and be translated into languages with non-English-like layout such as Chinese, Hebrew, Arabic, etc.), a C++ tile engine I wrote for Python that draws with Cairo, pie menus I wrote in Python that draw with Cairo, and many other useful modules.

    The idea is to open up the simulator so it can be easily and deeply scripted in Python. It was designed for the C64, so it can run extremely fast (on the order of a year a second) on the OLPC, and there is plenty of left over CPU power to call back into an interpreted scripting language like Python, and still be quite playable. It will still run very fast, because the core number crunching will still be written in C, but it will be able to call out to Python hooks and plug-ins, and Python will be able to reach in, tweak the simulation, change the parameters, edit the model, etc, so you'll be able to program your own disasters, monsters, tornados, editing tools, zones, artificial intelligence, robots, agents, etc. And also implement network sharing features, muti-player features, journaling and storytelling features, tivo-like fast forward and rewind features, etc. The goal is to inspire kids to learn Python programming and develop their own games, by reimplementing SimCity's user interface in terms of reusable components.

    -Don

  7. Re:More SimCity links on One SimCity Per Child · · Score: 2, Funny

    Once the dust settles, I'd love to port SimCity to the TomTom GPS navigator device. TomToms run Linux, of course, so it won't be very difficult.

    Then you could operate the bulldozer by driving your car around! It would be safest to play it in the desert, so you didn't run into any real buildings.

    Disclaimer: I work for TomTom, and we're looking for some great Linux hackers! It's a great company to work for. Please send me email if you know Linux well, want to live in Amsterdam, and hack Linux on TomTom GPS navigation devices!

    -Don

  8. Re:not much of a donation on One SimCity Per Child · · Score: 4, Insightful

    SimCity isn't abandonware, and even if it were, you couldn't distribute or run it on the OLPC, for technical and legal reasons. The point is to extend and adapt the open source code for the needs of education, not just run the old version under an emulator.

    -Don

  9. More SimCity links on One SimCity Per Child · · Score: 5, Informative

    I ported the Mac version of SimCity to SunOS Unix running the NeWS window system about 15 years ago, writing the user interface in PostScript. And a year or so later I ported it to various versions of Unix running X-Windows, using the TCL/Tk scripting language and gui toolkit. Several years later when Linux became viable, it was fairly straightforward to port that code to Linux, and then to port that to the OLPC.

    SimCity Info
    http://www.art.net/~hopkins/Don/simcity/index.html

    Video Tape Transcript of Toronto Usenix Symposium Keynote Address
    http://www.art.net/~hopkins/Don/simcity/keynote.html

    Video Tape Transcript of HyperLook SimCity Demo
    http://www.art.net/~hopkins/Don/simcity/hyperlook-demo.html
    HyperLook SimCity Demo Video
    http://www.donhopkins.com/home/movies/HyperLookDemo.mov

    Video Tape Transcript of X11 SimCity Demo
    http://www.art.net/~hopkins/Don/simcity/x11-demo.html
    X11 SimCity Demo Video
    http://www.donhopkins.com/home/movies/X11SimCityDemo.mov

    Linux SimCityNet Demo Video
    http://www.donhopkins.com/home/movies/SimCityNetDemo.mov

    Cellular Automata in SimCityNet on Unix Video
    http://www.donhopkins.com/home/movies/CellularSimCity.mov

    Unix World 1993 Review of SimCity
    http://www.art.net/~hopkins/Don/simcity/simcity-review.html

    Multi-Player SimCity for X11 Announcement
    http://www.art.net/~hopkins/Don/simcity/simcity-announcement.html

    SimCityNet: a Cooperative Multi User City Simulation
    http://www.art.net/~hopkins/Don/simcity/simcitynet.html

    SimCity-For-X11.gif : Screen shot of SimCity running on X11.
    http://www.art.net/~hopkins/Don/simcity/SimCity-For-X11.gif
    SimCity-Indigo.gif : Multi player X11 SimCity running on an SGI Indigo.
    http://www.art.net/~hopkins/Don/simcity/SimCity-Indigo.gif
    SimCity-NCD.gif : Multi player X11 SimCity running on an NCD X Terminal.
    http://www.art.net/~hopkins/Don/simcity/SimCity-NCD.gif
    SimCity-Sun.gif : Multi player X11 SimCity running on an Sun.
    http://www.art.net/~hopkins/Don/simcity/SimCity-Sun.gif
    HyperLook-SimCity.gif : SimCity HyperLook Edition. SimCity running on HyperLook, a user interface development environment for the NeWS window system.
    http://www.art.net/~hopkins/Don/hyperlook/HyperLook-SimCity.gif
    http://www.art.net/~hopkins/Don/hyperlook/index.html
    http://www.art.net/~hopkins/Don/lang/NeWS.html

    -Don

  10. "Jousting" wireless P2P traffic information net on New GPS Navigator Relies On 'Wisdom of the Crowds' · · Score: 1

    What you described is called "Jousting": using automotive GPS devices to track traffic speed, and exchanging traffic information via WiFi P2P networking with oncoming traffic, who just drove by where you're heading. A GPS device with a WiFi antenna pointed forward in the direction of travel can exchange real time traffic information with oncoming traffic, that just drove past the traffic ahead of you in the opposite direction. Jousting takes advantage of the natural flow of traffic to distribute real time traffic information to exactly where it's most needed. As you pointed out, that avoids expensive expensive mobile network charges, decentralizes and anonymizes the data collection.

    Of course successful jousting requires a critical mass of participating drivers. So it would be extremely difficult for a small company without a large installed base of devices to pull it off. And of course The Phone Company would prefer that all drivers maintain constant expensive mobile network connections instead of using free WiFi P2P networking to get their traffic information. And Big Brother would prefer that all drivers pay for the privilege of turning themselves in to the Central Scrutinizer the instant they start speeding.

    -Don

  11. TomTom mapshare explanation and cheatcode on New GPS Navigator Relies On 'Wisdom of the Crowds' · · Score: 1

    Here's a video showing how TomTom MapShare works, and demonstrating a secret undocumented cheatcode!

    TomTom mapshare explanation and cheatcode

    TomTom Home is a Mozilla xulrunner based desktop application for managing content on your TomTom, kind of like iTunes for GPS devices, but written with open source software, and programmable in JavaScript, XPCOM and C++. The reason for using an extensible open source platform like xulrunner is so TomTom and third party developers can customize and extend it by writing interfaces and tools that enable users to create, manage and share content on TomTom GPS devices (like voices, points of interest, reviews, routes, pictures, music, etc), and integrate TomTom Home with online services and content providers (like Yelp, Yahoo, Google, Facebook, etc).

    TomTom is hiring XUL/JavaScript/AJAX/DHTML Developers to work on TomTom Home and other interesting projects in Amsterdam! TomTom's a great company to work for, in a wonderful location. If you're qualified and interested, please contact me and I'll give you more details.

    -Don

  12. TomTom's MapShare (and cheat code) on Nokia Buys Navteq for $8.1 Billion · · Score: 1

    TomTom MapShare enables users to make updates to the maps, and download updates from other users. User created content is the key to improving the quality of the map data.

    TomTom mapshare explanation and cheat code: http://www.youtube.com/watch?v=GU2iQX4vJ10

    -Don

  13. Apple's BS reminds me of the riddle: on Upcoming Firmware Will Brick Unlocked iPhones · · Score: 2, Insightful

    Q: How many cops does it take to push a suspect down a stairwell?

    A: None, he just slipped!

    So the Apple version is:

    Q: How many firmware updates does it take to sabotage an unlocked iPhone?

    A: None, it just bricked!

    Which just goes to show:

    Q: What do you get when you cross Apple and AT&T?

    A: AT&T!

    -Don

  14. Re:Thank you, Daniel, for damage control on Daniel Lyons of Forbes Admits Being Snowed by SCO · · Score: 1

    Better to admit you were wrong, than to admit you were paid off to participate in a conspiracy.

    -Don

  15. Re:Here's what is wrong - sucky tookits on Status Report From the Open Source Games Community · · Score: 1

    You can do OO in C++ too, but it takes even more serious discipline than doing OO in C.

    -Don

  16. Porting games to the OLPC on Valve Looking to Port Games to Linux? · · Score: 1, Flamebait

    It's a much better use of Ryan's precious time to work on porting games to the open source OLPC platform which will bring new educational games to millions of kids, instead of working on closed source software like Valve which will only bring old violent games to a few thousand hard core Linux fanatics.

    -Don

  17. Turbogears rocks! on PHP5 Vs. CakePHP Vs. RubyOnRails? · · Score: 2, Interesting

    I've developed a large complex project on an earlier version of TurboGears, with CherryPy/SQLObject/Kid, and I love it.

    TurboGears is quite modular, and the newer modules are even better: SQLAlchemy instead of SQLObject (database interface), and Genshi instead of Kid (templating system).

    -Don

  18. Re:The Worst Job in the World on Sun Says OpenSolaris Will Challenge Linux · · Score: 1

    Google "Michael Tiemann" and "cygnus". Also it helps to have worked at Sun and have been fucked by Ed Zander and Scott McNealy, during the time when they were forcing everybody else to upgrade from good old SunOS to Slowlaris.

    -Don

  19. The Worst Job in the World on Sun Says OpenSolaris Will Challenge Linux · · Score: 1

    Subject: The Worst Job in the World
    From: Michael Tiemann <tiemann@cygnus.com>
    Date: A long time ago in a galaxy far far away...

    I have a friend who has to have the worst job in the world: he is a Unix system administrator. But it's worse than that, as I will soon tell.

    Being a Unix system administrator is like being a tech in a biological warfare laboratory, except that none of the substances are labeled consistently, any of the compounds are just as likely to kill you by themselves as they are when mixed with one another, and it is never clear what distinction is made between a catastrophic failure in the lab and a successful test in the field.

    But I don't want to tell you about biological warfare, I want to tell you about what makes my friend's job so terrible. First, some context.

    The training for Unix system administration is a frightening process. When machines start dying, users start screaming, and everything grinds to a halt, the novice feels the cold fingers of terror clutching about his heart.

    #!/bin/sh
    # this doesn't work, but no time to fix it -- hope nothing crashes
    progname=$0

    But if one stays the course, one might some day achieve the dubious satisfaction of being able to mutter "at least I know why it broke!".

    #!/bin/sh
    # This works...I wonder if it will get me laid
    progname="`echo $0 | sed 's:^\./\./:\./:'`"

    But there are many who must dwell in this miasma both day and night. What makes my friend's job so ugly is that he doesn't only work with just any strain of Unix -- he works with Solaris. And he doesn't just deal with just any braindead users -- his users are the executives at Sun Microsystems.

    Let me tell you about Sun Microsystems. At Sun, there's a long history of executives playing pranks on one another. For April Fools, these rowdies would play tricks like putting a golf course (complete with putting green) in Scott McNealy's office, or floating Bill Joy's Ferrari in one of the landscaped ponds. Things have come a long way since then. Now every day is April Fools, and my friend doesn't like it one bit.

    VP: "Admin!! What the fuck is this thing running on my machine?"

    Admin: "It's Solaris, sir."

    VP: "Get it off of my machine at once!"

    Admin: "But sir, Ed Zander told me that you should be running Solaris now."

    VP: "Zander, huh? I'll fix him. Is he running Solaris?"

    Admin: "No sir."

    VP: "Why not?"

    Admin: "If he ran Solaris, he wouldn't be able to get any work done."

    VP: "Very well, restore my machine to SunOS, and put this Solaris crap on Zander's machine."

    Admin: "But sir..."

    VP: "That's an order! And tell him Scott gave you the directive himself!"

    Admin: "Yes, sir."

    Zander: "Admin!! What the fuck is this thing running on my machine?"

    Admin: "It's Solaris, sir."

    Zander: "Get it off of my machine at once!"

    Admin: "But sir, Scott McNealy told me that you should be running Solaris now."

    Zander: "McNealy, huh? I'll fix him. Is he running Solaris?"

    ...

    The only thing worse that being a Unix system administrator is doing the job for ungrateful users.

  20. Video games DID cause a senseless shooting... on Games Had Nothing To Do With V. Tech Shooting · · Score: 4, Funny

    Video games WERE responsible for Jack Thompson senselessly shooting his mouth off.

    -Don

  21. Re:The original author on Sexuality And The Sims · · Score: 4, Insightful

    Just wanted to address a few points in your post:

    The Sims surpassed Myst at the top selling game of all time, quite a few years ago, and has continued to sell very well. The franchise has sold about 85 million games to date.

    The success of The Sims is largely due to the fact that players can add their own content to the game. Conversely, The Sims Online was a flop because it didn't allow players to add their own content, even though that feature was initially promised, to the delight of the fans, then later forgotten, do the fan's dismay.

    Yes there are official and semi-official mod tools. I wrote the character animation system in The Sims, and several tools for creating custom content. Before we release The Sims in March 2000, instead of releasing a demo, I developed a tool called "SimShow" that displayed the animated characters, and enabled players to create their own Sims. After we release The Sims, Will Wright hired me to use The Sims source code to develop The Sims Transmogrifier, a tool for cloning objects, exporting and importing theie graphics and properties, so players can modify them and create their own objects. I've created other easier to use "drag-and-drop" tools like Show-N-Tell for displaying Sims objects in a web browser, and Rug-O-Matic for creating picture story rugs. (You can enter text that's displayed in the catalog and in an in-game pop-up window, that tells a story about the picture on the rug.)

    One important way that The Sims is family friendly, is that it does not discriminate against families with gay people, nor does it perpetuate the hypocritical anti-gay homophobic agenda of the Republican party (like some other games from Texas and Senators from Idaho whose names I won't mention). Any of The Sims characters can participate in gay or straight relationships with each other, without any negative consequences or stereotypes. Anything less would be hostile to many families and gay people. Anyone who would argue that it's family friendly to discriminate against gays is homophobic, and needs to have their head examined, and work through their self-loathing personal issues with a mental health professional, just like Republican Sen. Larry Craig of Idaho, or Republican Senator James Foley of Florida, or Republican Evangelical Crystal Meth and Gay Sex Addicted Reverend Ted Haggard. (Oops, sorry -- I just couldn't resist naming some names.)

    -Don

  22. Q: What do you get when you cross Apple and AT& on AT&T Crippling BlackBerry for iPhone? · · Score: 3, Funny

    A: AT&T

    Yeah, I know: old joke. Used to be IBM instead of AT&T. But this story just proves it again! It's funny because it's true.

    -Don

  23. Re:Full source published on Crowther's Original Adventure Source Code Found · · Score: 1

    Wasn't that the April 1 1978 issue? Seriously, I don't think the expected ANYONE to type it in for real. That's a great way to genetically evolve a computer program: publish it in a font way too small to read, and let a bunch of kids with free time on their hands interpolate it into other languages. Imagine the diverse programming languages that would be invented if somebody did that with GCC!

    -Don

  24. Re:Full source published on Crowther's Original Adventure Source Code Found · · Score: 1

    I remember when CC published the source to adventure, but it was in four point text!

    -Don

  25. Stop picking on Fortran, and stop using PHP! on Crowther's Original Adventure Source Code Found · · Score: 2, Insightful

    Hey, stop picking on Fortran. Sure it's a lame language, but it has an excuse: it's very old now, and didn't know any better at the time, when computer science was young.

    PHP is MUCH WORSE than Fortran, yet it was written many years later. The foolish PHP implementors had no excuse to make such a horrible language. They could have learned from the mistakes of the past, but instead they repeated them much worse, and added many original mistakes that nobody had even been stupid enough to make before.

    -Don