Domain: donhopkins.com
Stories and comments across the archive that link to donhopkins.com.
Comments · 180
-
Blog postings about OLPC SimCity and Alan Kay
I've just posted a whole bunch of stuff about OLPC SimCity, including some exciting discussion with Alan Kay about eToys, Robot Odyssey, Visual Programming, and teaching kids to program, to my blog:
http://www.donhopkins.com/drupal
Here is the flurry of recent posts:
SimCity Rules: http://www.donhopkins.com/drupal/node/145
Python Plug-In Technologies for Extending OLPC SimCity: http://www.donhopkins.com/drupal/node/144
OLPC Visual Programming Languages for Education: http://www.donhopkins.com/drupal/node/143
Redesigning the SimCity User Interface for the OLPC: http://www.donhopkins.com/drupal/node/142
Ideas about OLPC SimCity GUI, Turtle Graphics, and Cellular Automata: http://www.donhopkins.com/drupal/node/141
Discussion with Alan Kay about Visual Programming: http://www.donhopkins.com/drupal/node/140
Discussion with Alan Kay about Robot Odyssey: http://www.donhopkins.com/drupal/node/139
SimCity, Robot Odyssey, and Visual Programming: http://www.donhopkins.com/drupal/node/138
OLPC Visual Programming Language Discussion with Guido van Rossum and Alan Kay: http://www.donhopkins.com/drupal/node/137
Slashdot OLPC SimCity Discussion: http://www.donhopkins.com/drupal/node/136
Responding to Alan Kay's criticisms of SimCity: http://www.donhopkins.com/drupal/node/135
Alan Kay's ideas about SimCity for OLPC: http://www.donhopkins.com/drupal/node/134
SJ Klein's OLPC Keynote at GDC Serious Games Summit: http://www.donhopkins.com/drupal/node/133
Alan Kay on Programming Languages: http://www.donhopkins.com/drupal/node/132
History and Future of OLPC SimCity / Micropolis: http://www.donhopkins.com/drupal/node/131
GPL Open Source Code of "OLPC SimCity" to be called "Micropolis": http://www.donhopkins.com/drupal/node/130
SimCity for OLPC (One Laptop Per Child): Applying Papert's Ideas About Constructionist Education and Teaching Kids to Program: http://www.donhopkins.com/drupal/node/129
Pie Menus for OLPC Sugar User Interface, in Python with GTK, Cairo and Pango modules: http://www.donhopkins.com/drupal/node/128
-
Blog postings about OLPC SimCity and Alan Kay
I've just posted a whole bunch of stuff about OLPC SimCity, including some exciting discussion with Alan Kay about eToys, Robot Odyssey, Visual Programming, and teaching kids to program, to my blog:
http://www.donhopkins.com/drupal
Here is the flurry of recent posts:
SimCity Rules: http://www.donhopkins.com/drupal/node/145
Python Plug-In Technologies for Extending OLPC SimCity: http://www.donhopkins.com/drupal/node/144
OLPC Visual Programming Languages for Education: http://www.donhopkins.com/drupal/node/143
Redesigning the SimCity User Interface for the OLPC: http://www.donhopkins.com/drupal/node/142
Ideas about OLPC SimCity GUI, Turtle Graphics, and Cellular Automata: http://www.donhopkins.com/drupal/node/141
Discussion with Alan Kay about Visual Programming: http://www.donhopkins.com/drupal/node/140
Discussion with Alan Kay about Robot Odyssey: http://www.donhopkins.com/drupal/node/139
SimCity, Robot Odyssey, and Visual Programming: http://www.donhopkins.com/drupal/node/138
OLPC Visual Programming Language Discussion with Guido van Rossum and Alan Kay: http://www.donhopkins.com/drupal/node/137
Slashdot OLPC SimCity Discussion: http://www.donhopkins.com/drupal/node/136
Responding to Alan Kay's criticisms of SimCity: http://www.donhopkins.com/drupal/node/135
Alan Kay's ideas about SimCity for OLPC: http://www.donhopkins.com/drupal/node/134
SJ Klein's OLPC Keynote at GDC Serious Games Summit: http://www.donhopkins.com/drupal/node/133
Alan Kay on Programming Languages: http://www.donhopkins.com/drupal/node/132
History and Future of OLPC SimCity / Micropolis: http://www.donhopkins.com/drupal/node/131
GPL Open Source Code of "OLPC SimCity" to be called "Micropolis": http://www.donhopkins.com/drupal/node/130
SimCity for OLPC (One Laptop Per Child): Applying Papert's Ideas About Constructionist Education and Teaching Kids to Program: http://www.donhopkins.com/drupal/node/129
Pie Menus for OLPC Sugar User Interface, in Python with GTK, Cairo and Pango modules: http://www.donhopkins.com/drupal/node/128
-
Re:Socialist propaganda
From: Designing User Interfaces to Simulation Games. A summary of Will Wright's talk to Terry Winnograd's User Interface Class at Stanford, in 1996. Written by Don Hopkins.
Everyone notices the obvious built-in political bias, whatever that is. But everyone sees it from a different perspective, so nobody agrees what its real political agenda actually is. I don't think it's all that important, since SimCity's political agenda pales in comparison to the political agenda in the eye of the beholder.
Some muckety-muck architecture magazine was interviewing Will Wright about SimCity, and they asked him a question something like "which ontological urban paridigm most influenced your design of the simulator, the Exo-Hamiltonian Pattern Language Movement, or the Intra-Urban Deconstructionist Sub-Culture Hypothesis?" He replied, "I just kind of optimized for game play."
-Don
-
More SimCity links
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.htmlVideo Tape Transcript of Toronto Usenix Symposium Keynote Address
http://www.art.net/~hopkins/Don/simcity/keynote.htmlVideo 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.movVideo 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.movLinux SimCityNet Demo Video
http://www.donhopkins.com/home/movies/SimCityNetDemo.movCellular Automata in SimCityNet on Unix Video
http://www.donhopkins.com/home/movies/CellularSimCity.movUnix World 1993 Review of SimCity
http://www.art.net/~hopkins/Don/simcity/simcity-review.htmlMulti-Player SimCity for X11 Announcement
http://www.art.net/~hopkins/Don/simcity/simcity-announcement.htmlSimCityNet: a Cooperative Multi User City Simulation
http://www.art.net/~hopkins/Don/simcity/simcitynet.htmlSimCity-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
-
More SimCity links
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.htmlVideo Tape Transcript of Toronto Usenix Symposium Keynote Address
http://www.art.net/~hopkins/Don/simcity/keynote.htmlVideo 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.movVideo 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.movLinux SimCityNet Demo Video
http://www.donhopkins.com/home/movies/SimCityNetDemo.movCellular Automata in SimCityNet on Unix Video
http://www.donhopkins.com/home/movies/CellularSimCity.movUnix World 1993 Review of SimCity
http://www.art.net/~hopkins/Don/simcity/simcity-review.htmlMulti-Player SimCity for X11 Announcement
http://www.art.net/~hopkins/Don/simcity/simcity-announcement.htmlSimCityNet: a Cooperative Multi User City Simulation
http://www.art.net/~hopkins/Don/simcity/simcitynet.htmlSimCity-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
-
More SimCity links
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.htmlVideo Tape Transcript of Toronto Usenix Symposium Keynote Address
http://www.art.net/~hopkins/Don/simcity/keynote.htmlVideo 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.movVideo 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.movLinux SimCityNet Demo Video
http://www.donhopkins.com/home/movies/SimCityNetDemo.movCellular Automata in SimCityNet on Unix Video
http://www.donhopkins.com/home/movies/CellularSimCity.movUnix World 1993 Review of SimCity
http://www.art.net/~hopkins/Don/simcity/simcity-review.htmlMulti-Player SimCity for X11 Announcement
http://www.art.net/~hopkins/Don/simcity/simcity-announcement.htmlSimCityNet: a Cooperative Multi User City Simulation
http://www.art.net/~hopkins/Don/simcity/simcitynet.htmlSimCity-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
-
More SimCity links
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.htmlVideo Tape Transcript of Toronto Usenix Symposium Keynote Address
http://www.art.net/~hopkins/Don/simcity/keynote.htmlVideo 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.movVideo 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.movLinux SimCityNet Demo Video
http://www.donhopkins.com/home/movies/SimCityNetDemo.movCellular Automata in SimCityNet on Unix Video
http://www.donhopkins.com/home/movies/CellularSimCity.movUnix World 1993 Review of SimCity
http://www.art.net/~hopkins/Don/simcity/simcity-review.htmlMulti-Player SimCity for X11 Announcement
http://www.art.net/~hopkins/Don/simcity/simcity-announcement.htmlSimCityNet: a Cooperative Multi User City Simulation
http://www.art.net/~hopkins/Don/simcity/simcitynet.htmlSimCity-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
-
The TSA Took My Lighter Away!
A sad but true story:
http://www.donhopkins.com/drupal/gallery2/v/tsa/Th eTSATookMyLighterAway.jpg.html?g2_imageViewsIndex= 1
The TSA Took My Lighter Away!
(with apologies to The Ramones)
She went away for the holidays
Said she's going to Amsterdam
But she never got there
She never got there
She never got there, they say
[Chorus: x2]
The TSA took my lighter away
They took her away
Away from me
Now I don't know
Where my lighter can be
They took her from me
They took her from me
I don't know
Where my lighter can be
They took her from me
They took her from me
Ring me, ring me, ring me
Up the President
And find out
Where my luggage went
Ring me, ring me, ring me
Up the FBI
And find out if
My lighter's alive
Yeah, yeah, yeah
oh oh oh oh oh oh
oh oh oh oh oh oh -
Re:RMS's anti-natalism
Sure, but have you ever seen RMS holding a gerbil wrapped in duct tape? He's really smiling at it -- I think they made a connection!
-Don
-
Tuned Emergence and Design by Accretion
Spore is for real, not vaporware, but it has to go through a lot of tuning before it's really fun and balanced, just like all of Will Wright's other games. It's a process called "Tuned Emergence" and "Design by Accretion", and it takes a long time, but it's worth the wait.
Sims Designer Chris Trottier on Tuned Emergence and Design by Accretion . (Chris also worked on Spore!)
-Don
The Armchair Empire interviewed Chris Trottier, one of the designers of The Sims and The Sims Online. She touches on some important ideas, including "Tuned Emergence" and "Design by Accretion".
Chris' honest analysis of how and why "the gameplay didn't come together until the months before the ship" is right on the mark, and that's the secret to the success of games like The Sims and SimCity.
The essential element that was missing until the last minute was tuning: The approach to game design that Maxis brought to the table is called "Tuned Emergence" and "Design by Accretion". Before it was tuned, The Sims wasn't missing any structure or content, but it just wasn't balanced yet. But it's OK, because that's how it's supposed to work!
In justifying their approach to The Sims, Maxis had to explain to EA that SimCity 2000 was not fun until 6 weeks before it shipped. But EA was not comfortable with that approach, which went against every rule in their play book. It required Will Wright's tremendous stamina to convince EA not to cancel The Sims, because according to EA's formula, it would never work.
If a game isn't tuned, it's a drag, and you can't stand to play it for an hour. The Sims and SimCity were "designed by accretion": incrementally assembled together out of "a mass of separate components", like a planet forming out of a cloud of dust orbiting around star. They had to reach critical mass first, before they could even start down the road towards "Tuned Emergence", like life finally taking hold on the planet surface. Even then, they weren't fun until they were carefully tuned just before they shipped, like the renaissance of civilization suddenly developing science and technology. Before it was properly tuned, The Sims was called "the toilet game", for the obvious reason that there wasn't much else to do!
Here are some questions and answers from the interview with The Sims designer Chris Trottier:
[...] More at: Sims Designer Chris Trottier on Tuned Emergence and Design by Accretion .
-
Tuned Emergence and Design by Accretion
Spore is for real, not vaporware, but it has to go through a lot of tuning before it's really fun and balanced, just like all of Will Wright's other games. It's a process called "Tuned Emergence" and "Design by Accretion", and it takes a long time, but it's worth the wait.
Sims Designer Chris Trottier on Tuned Emergence and Design by Accretion . (Chris also worked on Spore!)
-Don
The Armchair Empire interviewed Chris Trottier, one of the designers of The Sims and The Sims Online. She touches on some important ideas, including "Tuned Emergence" and "Design by Accretion".
Chris' honest analysis of how and why "the gameplay didn't come together until the months before the ship" is right on the mark, and that's the secret to the success of games like The Sims and SimCity.
The essential element that was missing until the last minute was tuning: The approach to game design that Maxis brought to the table is called "Tuned Emergence" and "Design by Accretion". Before it was tuned, The Sims wasn't missing any structure or content, but it just wasn't balanced yet. But it's OK, because that's how it's supposed to work!
In justifying their approach to The Sims, Maxis had to explain to EA that SimCity 2000 was not fun until 6 weeks before it shipped. But EA was not comfortable with that approach, which went against every rule in their play book. It required Will Wright's tremendous stamina to convince EA not to cancel The Sims, because according to EA's formula, it would never work.
If a game isn't tuned, it's a drag, and you can't stand to play it for an hour. The Sims and SimCity were "designed by accretion": incrementally assembled together out of "a mass of separate components", like a planet forming out of a cloud of dust orbiting around star. They had to reach critical mass first, before they could even start down the road towards "Tuned Emergence", like life finally taking hold on the planet surface. Even then, they weren't fun until they were carefully tuned just before they shipped, like the renaissance of civilization suddenly developing science and technology. Before it was properly tuned, The Sims was called "the toilet game", for the obvious reason that there wasn't much else to do!
Here are some questions and answers from the interview with The Sims designer Chris Trottier:
[...] More at: Sims Designer Chris Trottier on Tuned Emergence and Design by Accretion .
-
Re:Apple on Windows
Speaking of resizing windows easily thanks to applying Fitts' Law, here's an even earlier demo of a pie menu window manager for X10 (the predecessor to X11) based on "uwm", scripted in Forth, which lets you resize and manipulate windows with a flick of the mouse: X10 Pie Menu Window Manager Demo. I recorded this some time around 1987 or so.
I'm really disappointed in the Mac window manager and desktop user interface, which is still much too hard to use, after all these years. Steve Jobs fired all Apple's good user interface designers years ago. Pardon the tired cliches, but Apple is totally stuck in a rut, and they've been resting on their laurels and stewing in their own juices for far too long.
-Don
-
Re:Apple on Windows
Speaking of resizing windows easily thanks to applying Fitts' Law, here's an even earlier demo of a pie menu window manager for X10 (the predecessor to X11) based on "uwm", scripted in Forth, which lets you resize and manipulate windows with a flick of the mouse: X10 Pie Menu Window Manager Demo. I recorded this some time around 1987 or so.
I'm really disappointed in the Mac window manager and desktop user interface, which is still much too hard to use, after all these years. Steve Jobs fired all Apple's good user interface designers years ago. Pardon the tired cliches, but Apple is totally stuck in a rut, and they've been resting on their laurels and stewing in their own juices for far too long.
-Don
-
Re:Apple on Windows
Yay Fitts' Law!
Here is a QuickTime movie of Tabbed Pie Menu Window Manager for The NeWS Toolkit 2.0. I recorded that in 1992 or so, running on a Sun workstation running OpenWindows 3.0. It was all written in object oriented PostScript. We even wrote an X11 window manager in NeWS that put those tabbed pie menu window frames around unsuspecting X-Windows!
-Don
-
Re:Open Source SimCity - the real thing!
I'm working with EA and the OLPC project, to make the original version of SimCity Classic open source. It's currently going through EA's QA process right now, and the legal department is working on their end of the deal. This sort of stuff always takes a long time to complete, but Will Wright wants it to happen, so I'm optimistic it will.
Once all the QA and legal stuff is done, we're going to release an updated version for the OLPC of the original X11/TCL/Tk version I developed for Unix about 15 years ago, which supports cooperative multi player mode (voting, chat, shared whiteboard, etc), and I've heavily optimized it so it runs really fast. After it's released, then we're going to adapt it to the OLPC's "Sugar" user interface, which is based on GTK and Cairo. SimCity will be scriptable in Python, of course! We'll rewrite the multi player mode on top of Sugar's standard networking libraries, instead of directly opening multiple X11 connections, as it currently does.
Some ideas about SimCity on the OLPC:
SimCity for OLPC (One Laptop Per Child): Applying Papert's Ideas About Constructionist Education and Teaching Kids to Program.I'm already developing some of the software components required to port SimCity to the OLPC, including pie menus and a tile engine:
Pie Menus for OLPC Sugar User Interface, in Python with GTK, Cairo and Pango modules.
[OLPC-Games] Efficient general purpose tile engine, and a cellular automata machine.
-Don
-
Re:Open Source SimCity - the real thing!
I'm working with EA and the OLPC project, to make the original version of SimCity Classic open source. It's currently going through EA's QA process right now, and the legal department is working on their end of the deal. This sort of stuff always takes a long time to complete, but Will Wright wants it to happen, so I'm optimistic it will.
Once all the QA and legal stuff is done, we're going to release an updated version for the OLPC of the original X11/TCL/Tk version I developed for Unix about 15 years ago, which supports cooperative multi player mode (voting, chat, shared whiteboard, etc), and I've heavily optimized it so it runs really fast. After it's released, then we're going to adapt it to the OLPC's "Sugar" user interface, which is based on GTK and Cairo. SimCity will be scriptable in Python, of course! We'll rewrite the multi player mode on top of Sugar's standard networking libraries, instead of directly opening multiple X11 connections, as it currently does.
Some ideas about SimCity on the OLPC:
SimCity for OLPC (One Laptop Per Child): Applying Papert's Ideas About Constructionist Education and Teaching Kids to Program.I'm already developing some of the software components required to port SimCity to the OLPC, including pie menus and a tile engine:
Pie Menus for OLPC Sugar User Interface, in Python with GTK, Cairo and Pango modules.
[OLPC-Games] Efficient general purpose tile engine, and a cellular automata machine.
-Don
-
SimCity for OLPC
SJ Klein and I just had a productive meeting with Charles Norman at EA to discuss the details of SimCity for the OLPC, and it's looking very good! It's not officially announced or available yet, but EA is very supportive of the idea, and is just crossing their eyes and dotting their tease (or something to that effect), and Will Wright gave us permission to demonstrate SimCity on the OLPC at the game developer's conference.
If you're at GDC, please come by the OLPC booth at the expo and play with it!
I've done the first basic cut of porting the X11/TCL/Tk based multi player version of SimCity to run on the OLPC, and the next step is to integrate it with Python and Sugar in a deep way, that will make SimCity scriptable in Python, enable all kinds of interesting hooks and plug-ins, and result in a set of reusable general purpose components for building games.
For example, the next step I've taken is to rewrite pie menus in Python with Cairo and Pango, so SimCity and other applications can use them:
http://www.donhopkins.com/drupal/node/128The point is not just to port a game to the OLPC, but rather to use SimCity and other games to drive the development of an open framework to enable and teach kids to program their own games!
The goal is to enable the open source community to renovate SimCity and take it in new educational directions, by applying Seymour Papert's ideas about constructionist education, Alan Kay's ideas about interactive user interfaces and object oriented programming, Ben Shneiderman's ideas about direct manipulation and info visualization, and many exciting ideas about multi player games, blogging, storytelling, game mods, player created content, and lessons learned from World of Warcraft, The Sims, Spore, etc.
Thanks to John Gilmore for getting the ball rolling by suggesting that EA make the original version of SimCity free for the OLPC, and for supporting the development of great free software and tools like GCC, and to Charles Norman for guiding the process through EA, educating people about open source, and making it actually happen, and of course to "Will Wright Code for Food" for creating SimCity it in the first place, and putting his Will Power into making SimCity open source for the OLPC project!
-Don
PS: Here is some stuff about the multi player X11/TCL/Tk version of SimCity:
Multi Player SimCity for X11 is now available from DUX Software!
http://art.net/~hopkins/Don/simcity/simcity-announ cement.htmlScreen snapshots:
http://www.donhopkins.com/home/images/SimCity-For- X11.gif
http://www.donhopkins.com/home/images/SimCity-Indi go.gif
http://www.donhopkins.com/home/images/SimCity-NCD. gif
http://www.donhopkins.com/home/images/SimCity-Sun. gifX11 SimCity Demo Video:
http://www.donhopkins.com/home/movies/X11SimCityDe mo.movVideo Tape Transcript of X11 SimCity Demo:
http://art.net/~hopkins/Don/simcity/x11-demo.htmlVideo Tape Transcript of Toronto Usenix Symposium Keynote Address:
http://art.net/~hopkins/Don/simcity/keynote.htmlBedlam in SimCity:
http://www.art.net/~hopkins/Don/simcity/simcity-re view.htmlPPS: 15 y
-
SimCity for OLPC
SJ Klein and I just had a productive meeting with Charles Norman at EA to discuss the details of SimCity for the OLPC, and it's looking very good! It's not officially announced or available yet, but EA is very supportive of the idea, and is just crossing their eyes and dotting their tease (or something to that effect), and Will Wright gave us permission to demonstrate SimCity on the OLPC at the game developer's conference.
If you're at GDC, please come by the OLPC booth at the expo and play with it!
I've done the first basic cut of porting the X11/TCL/Tk based multi player version of SimCity to run on the OLPC, and the next step is to integrate it with Python and Sugar in a deep way, that will make SimCity scriptable in Python, enable all kinds of interesting hooks and plug-ins, and result in a set of reusable general purpose components for building games.
For example, the next step I've taken is to rewrite pie menus in Python with Cairo and Pango, so SimCity and other applications can use them:
http://www.donhopkins.com/drupal/node/128The point is not just to port a game to the OLPC, but rather to use SimCity and other games to drive the development of an open framework to enable and teach kids to program their own games!
The goal is to enable the open source community to renovate SimCity and take it in new educational directions, by applying Seymour Papert's ideas about constructionist education, Alan Kay's ideas about interactive user interfaces and object oriented programming, Ben Shneiderman's ideas about direct manipulation and info visualization, and many exciting ideas about multi player games, blogging, storytelling, game mods, player created content, and lessons learned from World of Warcraft, The Sims, Spore, etc.
Thanks to John Gilmore for getting the ball rolling by suggesting that EA make the original version of SimCity free for the OLPC, and for supporting the development of great free software and tools like GCC, and to Charles Norman for guiding the process through EA, educating people about open source, and making it actually happen, and of course to "Will Wright Code for Food" for creating SimCity it in the first place, and putting his Will Power into making SimCity open source for the OLPC project!
-Don
PS: Here is some stuff about the multi player X11/TCL/Tk version of SimCity:
Multi Player SimCity for X11 is now available from DUX Software!
http://art.net/~hopkins/Don/simcity/simcity-announ cement.htmlScreen snapshots:
http://www.donhopkins.com/home/images/SimCity-For- X11.gif
http://www.donhopkins.com/home/images/SimCity-Indi go.gif
http://www.donhopkins.com/home/images/SimCity-NCD. gif
http://www.donhopkins.com/home/images/SimCity-Sun. gifX11 SimCity Demo Video:
http://www.donhopkins.com/home/movies/X11SimCityDe mo.movVideo Tape Transcript of X11 SimCity Demo:
http://art.net/~hopkins/Don/simcity/x11-demo.htmlVideo Tape Transcript of Toronto Usenix Symposium Keynote Address:
http://art.net/~hopkins/Don/simcity/keynote.htmlBedlam in SimCity:
http://www.art.net/~hopkins/Don/simcity/simcity-re view.htmlPPS: 15 y
-
SimCity for OLPC
SJ Klein and I just had a productive meeting with Charles Norman at EA to discuss the details of SimCity for the OLPC, and it's looking very good! It's not officially announced or available yet, but EA is very supportive of the idea, and is just crossing their eyes and dotting their tease (or something to that effect), and Will Wright gave us permission to demonstrate SimCity on the OLPC at the game developer's conference.
If you're at GDC, please come by the OLPC booth at the expo and play with it!
I've done the first basic cut of porting the X11/TCL/Tk based multi player version of SimCity to run on the OLPC, and the next step is to integrate it with Python and Sugar in a deep way, that will make SimCity scriptable in Python, enable all kinds of interesting hooks and plug-ins, and result in a set of reusable general purpose components for building games.
For example, the next step I've taken is to rewrite pie menus in Python with Cairo and Pango, so SimCity and other applications can use them:
http://www.donhopkins.com/drupal/node/128The point is not just to port a game to the OLPC, but rather to use SimCity and other games to drive the development of an open framework to enable and teach kids to program their own games!
The goal is to enable the open source community to renovate SimCity and take it in new educational directions, by applying Seymour Papert's ideas about constructionist education, Alan Kay's ideas about interactive user interfaces and object oriented programming, Ben Shneiderman's ideas about direct manipulation and info visualization, and many exciting ideas about multi player games, blogging, storytelling, game mods, player created content, and lessons learned from World of Warcraft, The Sims, Spore, etc.
Thanks to John Gilmore for getting the ball rolling by suggesting that EA make the original version of SimCity free for the OLPC, and for supporting the development of great free software and tools like GCC, and to Charles Norman for guiding the process through EA, educating people about open source, and making it actually happen, and of course to "Will Wright Code for Food" for creating SimCity it in the first place, and putting his Will Power into making SimCity open source for the OLPC project!
-Don
PS: Here is some stuff about the multi player X11/TCL/Tk version of SimCity:
Multi Player SimCity for X11 is now available from DUX Software!
http://art.net/~hopkins/Don/simcity/simcity-announ cement.htmlScreen snapshots:
http://www.donhopkins.com/home/images/SimCity-For- X11.gif
http://www.donhopkins.com/home/images/SimCity-Indi go.gif
http://www.donhopkins.com/home/images/SimCity-NCD. gif
http://www.donhopkins.com/home/images/SimCity-Sun. gifX11 SimCity Demo Video:
http://www.donhopkins.com/home/movies/X11SimCityDe mo.movVideo Tape Transcript of X11 SimCity Demo:
http://art.net/~hopkins/Don/simcity/x11-demo.htmlVideo Tape Transcript of Toronto Usenix Symposium Keynote Address:
http://art.net/~hopkins/Don/simcity/keynote.htmlBedlam in SimCity:
http://www.art.net/~hopkins/Don/simcity/simcity-re view.htmlPPS: 15 y
-
SimCity for OLPC
SJ Klein and I just had a productive meeting with Charles Norman at EA to discuss the details of SimCity for the OLPC, and it's looking very good! It's not officially announced or available yet, but EA is very supportive of the idea, and is just crossing their eyes and dotting their tease (or something to that effect), and Will Wright gave us permission to demonstrate SimCity on the OLPC at the game developer's conference.
If you're at GDC, please come by the OLPC booth at the expo and play with it!
I've done the first basic cut of porting the X11/TCL/Tk based multi player version of SimCity to run on the OLPC, and the next step is to integrate it with Python and Sugar in a deep way, that will make SimCity scriptable in Python, enable all kinds of interesting hooks and plug-ins, and result in a set of reusable general purpose components for building games.
For example, the next step I've taken is to rewrite pie menus in Python with Cairo and Pango, so SimCity and other applications can use them:
http://www.donhopkins.com/drupal/node/128The point is not just to port a game to the OLPC, but rather to use SimCity and other games to drive the development of an open framework to enable and teach kids to program their own games!
The goal is to enable the open source community to renovate SimCity and take it in new educational directions, by applying Seymour Papert's ideas about constructionist education, Alan Kay's ideas about interactive user interfaces and object oriented programming, Ben Shneiderman's ideas about direct manipulation and info visualization, and many exciting ideas about multi player games, blogging, storytelling, game mods, player created content, and lessons learned from World of Warcraft, The Sims, Spore, etc.
Thanks to John Gilmore for getting the ball rolling by suggesting that EA make the original version of SimCity free for the OLPC, and for supporting the development of great free software and tools like GCC, and to Charles Norman for guiding the process through EA, educating people about open source, and making it actually happen, and of course to "Will Wright Code for Food" for creating SimCity it in the first place, and putting his Will Power into making SimCity open source for the OLPC project!
-Don
PS: Here is some stuff about the multi player X11/TCL/Tk version of SimCity:
Multi Player SimCity for X11 is now available from DUX Software!
http://art.net/~hopkins/Don/simcity/simcity-announ cement.htmlScreen snapshots:
http://www.donhopkins.com/home/images/SimCity-For- X11.gif
http://www.donhopkins.com/home/images/SimCity-Indi go.gif
http://www.donhopkins.com/home/images/SimCity-NCD. gif
http://www.donhopkins.com/home/images/SimCity-Sun. gifX11 SimCity Demo Video:
http://www.donhopkins.com/home/movies/X11SimCityDe mo.movVideo Tape Transcript of X11 SimCity Demo:
http://art.net/~hopkins/Don/simcity/x11-demo.htmlVideo Tape Transcript of Toronto Usenix Symposium Keynote Address:
http://art.net/~hopkins/Don/simcity/keynote.htmlBedlam in SimCity:
http://www.art.net/~hopkins/Don/simcity/simcity-re view.htmlPPS: 15 y
-
SimCity for OLPC
SJ Klein and I just had a productive meeting with Charles Norman at EA to discuss the details of SimCity for the OLPC, and it's looking very good! It's not officially announced or available yet, but EA is very supportive of the idea, and is just crossing their eyes and dotting their tease (or something to that effect), and Will Wright gave us permission to demonstrate SimCity on the OLPC at the game developer's conference.
If you're at GDC, please come by the OLPC booth at the expo and play with it!
I've done the first basic cut of porting the X11/TCL/Tk based multi player version of SimCity to run on the OLPC, and the next step is to integrate it with Python and Sugar in a deep way, that will make SimCity scriptable in Python, enable all kinds of interesting hooks and plug-ins, and result in a set of reusable general purpose components for building games.
For example, the next step I've taken is to rewrite pie menus in Python with Cairo and Pango, so SimCity and other applications can use them:
http://www.donhopkins.com/drupal/node/128The point is not just to port a game to the OLPC, but rather to use SimCity and other games to drive the development of an open framework to enable and teach kids to program their own games!
The goal is to enable the open source community to renovate SimCity and take it in new educational directions, by applying Seymour Papert's ideas about constructionist education, Alan Kay's ideas about interactive user interfaces and object oriented programming, Ben Shneiderman's ideas about direct manipulation and info visualization, and many exciting ideas about multi player games, blogging, storytelling, game mods, player created content, and lessons learned from World of Warcraft, The Sims, Spore, etc.
Thanks to John Gilmore for getting the ball rolling by suggesting that EA make the original version of SimCity free for the OLPC, and for supporting the development of great free software and tools like GCC, and to Charles Norman for guiding the process through EA, educating people about open source, and making it actually happen, and of course to "Will Wright Code for Food" for creating SimCity it in the first place, and putting his Will Power into making SimCity open source for the OLPC project!
-Don
PS: Here is some stuff about the multi player X11/TCL/Tk version of SimCity:
Multi Player SimCity for X11 is now available from DUX Software!
http://art.net/~hopkins/Don/simcity/simcity-announ cement.htmlScreen snapshots:
http://www.donhopkins.com/home/images/SimCity-For- X11.gif
http://www.donhopkins.com/home/images/SimCity-Indi go.gif
http://www.donhopkins.com/home/images/SimCity-NCD. gif
http://www.donhopkins.com/home/images/SimCity-Sun. gifX11 SimCity Demo Video:
http://www.donhopkins.com/home/movies/X11SimCityDe mo.movVideo Tape Transcript of X11 SimCity Demo:
http://art.net/~hopkins/Don/simcity/x11-demo.htmlVideo Tape Transcript of Toronto Usenix Symposium Keynote Address:
http://art.net/~hopkins/Don/simcity/keynote.htmlBedlam in SimCity:
http://www.art.net/~hopkins/Don/simcity/simcity-re view.htmlPPS: 15 y
-
SimCity for OLPC
SJ Klein and I just had a productive meeting with Charles Norman at EA to discuss the details of SimCity for the OLPC, and it's looking very good! It's not officially announced or available yet, but EA is very supportive of the idea, and is just crossing their eyes and dotting their tease (or something to that effect), and Will Wright gave us permission to demonstrate SimCity on the OLPC at the game developer's conference.
If you're at GDC, please come by the OLPC booth at the expo and play with it!
I've done the first basic cut of porting the X11/TCL/Tk based multi player version of SimCity to run on the OLPC, and the next step is to integrate it with Python and Sugar in a deep way, that will make SimCity scriptable in Python, enable all kinds of interesting hooks and plug-ins, and result in a set of reusable general purpose components for building games.
For example, the next step I've taken is to rewrite pie menus in Python with Cairo and Pango, so SimCity and other applications can use them:
http://www.donhopkins.com/drupal/node/128The point is not just to port a game to the OLPC, but rather to use SimCity and other games to drive the development of an open framework to enable and teach kids to program their own games!
The goal is to enable the open source community to renovate SimCity and take it in new educational directions, by applying Seymour Papert's ideas about constructionist education, Alan Kay's ideas about interactive user interfaces and object oriented programming, Ben Shneiderman's ideas about direct manipulation and info visualization, and many exciting ideas about multi player games, blogging, storytelling, game mods, player created content, and lessons learned from World of Warcraft, The Sims, Spore, etc.
Thanks to John Gilmore for getting the ball rolling by suggesting that EA make the original version of SimCity free for the OLPC, and for supporting the development of great free software and tools like GCC, and to Charles Norman for guiding the process through EA, educating people about open source, and making it actually happen, and of course to "Will Wright Code for Food" for creating SimCity it in the first place, and putting his Will Power into making SimCity open source for the OLPC project!
-Don
PS: Here is some stuff about the multi player X11/TCL/Tk version of SimCity:
Multi Player SimCity for X11 is now available from DUX Software!
http://art.net/~hopkins/Don/simcity/simcity-announ cement.htmlScreen snapshots:
http://www.donhopkins.com/home/images/SimCity-For- X11.gif
http://www.donhopkins.com/home/images/SimCity-Indi go.gif
http://www.donhopkins.com/home/images/SimCity-NCD. gif
http://www.donhopkins.com/home/images/SimCity-Sun. gifX11 SimCity Demo Video:
http://www.donhopkins.com/home/movies/X11SimCityDe mo.movVideo Tape Transcript of X11 SimCity Demo:
http://art.net/~hopkins/Don/simcity/x11-demo.htmlVideo Tape Transcript of Toronto Usenix Symposium Keynote Address:
http://art.net/~hopkins/Don/simcity/keynote.htmlBedlam in SimCity:
http://www.art.net/~hopkins/Don/simcity/simcity-re view.htmlPPS: 15 y
-
Re:Smarty for dummies
A templating language's support for math functions does not get in the way of designers using it. They don't need to know math in order to use it. Your argument that designers don't deserve to be able to use math even when they need it is ridiculous. Maybe your designers are mathematically illiterate, and your templates are extremely simple, but don't try to force your low standards on the rest of the world. There is nothing about supporting math that makes a templating language hard to use.
In fact Smarty does support some math functions, but not all of the functions supported by PHP. So are you actually arguing that Smart goes to far in its support for math?
Since when were you the final authority of which functions view logic should be allowed to call? I often need to round a number to a particular number of decimal places in the view, so why are you arguing that I shouldn't be able to?
As for your guess that I don't know MVC: I've writing user interface toolkits since 1986, when I developed pie menus for the X10 "uwm" window manager, and I've been regularly using OOP and MVC since at 1987 or so. When and how did you learn about object oriented programming and MVC? Do you know enough about MVC to offer any criticism of it, or do you just blindly accept it as a given without questioning it?
The hypermedia formatting and templating language I developed around 1987 was called the "HyperTIES Markup Language" for Sun workstation version of the HyperTIES hypermedia browser, while I was working for Ben Shneiderman at the University of Maryland Human Computer Interaction Lab. I implemented the first version in Forth, and it had full access for Forth expressions, conditionals, loops, etc. We implemented the second version in C, and it had a full set of mathematical and string processing functions, as well as the ability to define macros, conditionals, loops, etc.
Here is a description (including links to the source code) of the HyperTIES Hypermedia Browser and Emacs Authoring Tool for NeWS, and also a paper we published about HyperTIES in the ACM journal "Hypermedia" Volume 3, Issue 2 (1991): Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser [reference].
You should read the paper we published in 1991, because it gives a good explanation of why templating languages should support macros, math and string processing functions. One reason is conditional text. The conditions must be able to evaluate conditional expressions, which need to be able to call math and logic fuctions, as well as many other utility functions that are useful for authoring conditional text.
Have you published or can you reference any peer reviewed papers that support your point that templating languages should not support math? But it seems like you don't know templating languages, anyway.
From Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser:
Generating customizable documents
To achieve effective formatting we created the Hyperties Markup Language (HML) in 1988. It includes standard markup language features and conditional text to easily customize the document based on user actions. Although traditional Generalized Markup Languages, the Interleaf document preparation system, and scripting languages such as Hypertalk enable authors to specify conditional appearance of text, we feel that this feature should appear as a regular part of hypertext systems. Our empirical studies have shown that by limiting the amount of text on the
-
Re:Smarty for dummies
A templating language's support for math functions does not get in the way of designers using it. They don't need to know math in order to use it. Your argument that designers don't deserve to be able to use math even when they need it is ridiculous. Maybe your designers are mathematically illiterate, and your templates are extremely simple, but don't try to force your low standards on the rest of the world. There is nothing about supporting math that makes a templating language hard to use.
In fact Smarty does support some math functions, but not all of the functions supported by PHP. So are you actually arguing that Smart goes to far in its support for math?
Since when were you the final authority of which functions view logic should be allowed to call? I often need to round a number to a particular number of decimal places in the view, so why are you arguing that I shouldn't be able to?
As for your guess that I don't know MVC: I've writing user interface toolkits since 1986, when I developed pie menus for the X10 "uwm" window manager, and I've been regularly using OOP and MVC since at 1987 or so. When and how did you learn about object oriented programming and MVC? Do you know enough about MVC to offer any criticism of it, or do you just blindly accept it as a given without questioning it?
The hypermedia formatting and templating language I developed around 1987 was called the "HyperTIES Markup Language" for Sun workstation version of the HyperTIES hypermedia browser, while I was working for Ben Shneiderman at the University of Maryland Human Computer Interaction Lab. I implemented the first version in Forth, and it had full access for Forth expressions, conditionals, loops, etc. We implemented the second version in C, and it had a full set of mathematical and string processing functions, as well as the ability to define macros, conditionals, loops, etc.
Here is a description (including links to the source code) of the HyperTIES Hypermedia Browser and Emacs Authoring Tool for NeWS, and also a paper we published about HyperTIES in the ACM journal "Hypermedia" Volume 3, Issue 2 (1991): Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser [reference].
You should read the paper we published in 1991, because it gives a good explanation of why templating languages should support macros, math and string processing functions. One reason is conditional text. The conditions must be able to evaluate conditional expressions, which need to be able to call math and logic fuctions, as well as many other utility functions that are useful for authoring conditional text.
Have you published or can you reference any peer reviewed papers that support your point that templating languages should not support math? But it seems like you don't know templating languages, anyway.
From Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser:
Generating customizable documents
To achieve effective formatting we created the Hyperties Markup Language (HML) in 1988. It includes standard markup language features and conditional text to easily customize the document based on user actions. Although traditional Generalized Markup Languages, the Interleaf document preparation system, and scripting languages such as Hypertalk enable authors to specify conditional appearance of text, we feel that this feature should appear as a regular part of hypertext systems. Our empirical studies have shown that by limiting the amount of text on the
-
Re:Smarty for dummies
A templating language's support for math functions does not get in the way of designers using it. They don't need to know math in order to use it. Your argument that designers don't deserve to be able to use math even when they need it is ridiculous. Maybe your designers are mathematically illiterate, and your templates are extremely simple, but don't try to force your low standards on the rest of the world. There is nothing about supporting math that makes a templating language hard to use.
In fact Smarty does support some math functions, but not all of the functions supported by PHP. So are you actually arguing that Smart goes to far in its support for math?
Since when were you the final authority of which functions view logic should be allowed to call? I often need to round a number to a particular number of decimal places in the view, so why are you arguing that I shouldn't be able to?
As for your guess that I don't know MVC: I've writing user interface toolkits since 1986, when I developed pie menus for the X10 "uwm" window manager, and I've been regularly using OOP and MVC since at 1987 or so. When and how did you learn about object oriented programming and MVC? Do you know enough about MVC to offer any criticism of it, or do you just blindly accept it as a given without questioning it?
The hypermedia formatting and templating language I developed around 1987 was called the "HyperTIES Markup Language" for Sun workstation version of the HyperTIES hypermedia browser, while I was working for Ben Shneiderman at the University of Maryland Human Computer Interaction Lab. I implemented the first version in Forth, and it had full access for Forth expressions, conditionals, loops, etc. We implemented the second version in C, and it had a full set of mathematical and string processing functions, as well as the ability to define macros, conditionals, loops, etc.
Here is a description (including links to the source code) of the HyperTIES Hypermedia Browser and Emacs Authoring Tool for NeWS, and also a paper we published about HyperTIES in the ACM journal "Hypermedia" Volume 3, Issue 2 (1991): Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser [reference].
You should read the paper we published in 1991, because it gives a good explanation of why templating languages should support macros, math and string processing functions. One reason is conditional text. The conditions must be able to evaluate conditional expressions, which need to be able to call math and logic fuctions, as well as many other utility functions that are useful for authoring conditional text.
Have you published or can you reference any peer reviewed papers that support your point that templating languages should not support math? But it seems like you don't know templating languages, anyway.
From Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser:
Generating customizable documents
To achieve effective formatting we created the Hyperties Markup Language (HML) in 1988. It includes standard markup language features and conditional text to easily customize the document based on user actions. Although traditional Generalized Markup Languages, the Interleaf document preparation system, and scripting languages such as Hypertalk enable authors to specify conditional appearance of text, we feel that this feature should appear as a regular part of hypertext systems. Our empirical studies have shown that by limiting the amount of text on the
-
Re:STOP EVANGELIZING PHP! YOU'RE HARMING THE INTER
I'm all for capitalism: vote with your feet! Those hosting providers who only host old poorly configured versions of PHP, and refuse to host decent versions of Ruby and Python, totally deserve to go out of business. So stop sending them your money! It's not like it's hard to find a better one. And I'm sick and tired of all the spam and break-in attempts I get because there are so many security holes in PHP running on those cheap hosting providers' hijacked servers.
Somebody paid me to do some Drupal programming, so I decided to learn it by installing it on my development server, using it for my own blog, reading the source code, and writing my own module (which exports an OPML site map based on the Drupal taxonomy, which dovetailed with my Laszlo OPML Drupal Taxonomy Site Map Browser). As PHP code goes, Drupal is pretty clean and well designed, because it refuses to use PHP's fucked up object system, and rolls its own instead. If course it's clumsy since its own object system is not directly supported by the language (and PHP isn't extensible like Lisp, whose macro system and CLOS lets you elegently roll your own object systems that are seamlessly integrated into the language). But Drupal's html generation facilities and user interface suck.
Sure I would love to try Django, but nobody's offered to pay me to learn it, and I have other stuff to do. I have spend a lot of time doing Zope and Plone development, and was trying to use it as a blog, but I was not satisfied with it (it's very frustrating and much too complex), so I moved over to Drupal because somebody wanted me to do some Drupal work. Ideally I'd write my own blog in TurboGears, which is currently my favorite Python web framework, but I don't have time for that either (and I'm not satisfied with any of the "Write a blog in 2 minutes" screencast example blogs, as cute and furry as they are). I'd rather spend my time developing software instead of writing about how I would be developing software if I weren't writing about it (like I'm doing right now, ironically).
You're certainly right about convenience trumping all other considerations. But building an elementary school out of radioactive wastes, asbestos insulation and lead flashing, exterminating bugs with DDT, hiring drunks to drive the school busses, and contracting McDonalds to run the cafeteria, may be convenient and expedient, but it's unwise and irresponsible.
Until people who understand the dangers start loudly and publicly warning other people about them, there is very little chance of changing those horrible yet convenient practices. That's what Stefan Esser and I and other people are doing, because it's important to discourage people who don't know better from choosing to use PHP when there are much better alternatives, and embarass the PHP developers who should know better into fixing their fucking long standing security problems and bugs (because nothing else has worked).
-Don
-
Re:STOP EVANGELIZING PHP! YOU'RE HARMING THE INTER
I'm all for capitalism: vote with your feet! Those hosting providers who only host old poorly configured versions of PHP, and refuse to host decent versions of Ruby and Python, totally deserve to go out of business. So stop sending them your money! It's not like it's hard to find a better one. And I'm sick and tired of all the spam and break-in attempts I get because there are so many security holes in PHP running on those cheap hosting providers' hijacked servers.
Somebody paid me to do some Drupal programming, so I decided to learn it by installing it on my development server, using it for my own blog, reading the source code, and writing my own module (which exports an OPML site map based on the Drupal taxonomy, which dovetailed with my Laszlo OPML Drupal Taxonomy Site Map Browser). As PHP code goes, Drupal is pretty clean and well designed, because it refuses to use PHP's fucked up object system, and rolls its own instead. If course it's clumsy since its own object system is not directly supported by the language (and PHP isn't extensible like Lisp, whose macro system and CLOS lets you elegently roll your own object systems that are seamlessly integrated into the language). But Drupal's html generation facilities and user interface suck.
Sure I would love to try Django, but nobody's offered to pay me to learn it, and I have other stuff to do. I have spend a lot of time doing Zope and Plone development, and was trying to use it as a blog, but I was not satisfied with it (it's very frustrating and much too complex), so I moved over to Drupal because somebody wanted me to do some Drupal work. Ideally I'd write my own blog in TurboGears, which is currently my favorite Python web framework, but I don't have time for that either (and I'm not satisfied with any of the "Write a blog in 2 minutes" screencast example blogs, as cute and furry as they are). I'd rather spend my time developing software instead of writing about how I would be developing software if I weren't writing about it (like I'm doing right now, ironically).
You're certainly right about convenience trumping all other considerations. But building an elementary school out of radioactive wastes, asbestos insulation and lead flashing, exterminating bugs with DDT, hiring drunks to drive the school busses, and contracting McDonalds to run the cafeteria, may be convenient and expedient, but it's unwise and irresponsible.
Until people who understand the dangers start loudly and publicly warning other people about them, there is very little chance of changing those horrible yet convenient practices. That's what Stefan Esser and I and other people are doing, because it's important to discourage people who don't know better from choosing to use PHP when there are much better alternatives, and embarass the PHP developers who should know better into fixing their fucking long standing security problems and bugs (because nothing else has worked).
-Don
-
Re:OM.... Care Bears vs Klingons fight mechs
You hit the nail on the head there. Will Wright is fascinated with Care Bears. He had several slides on the topic in his GDC 2005 talk:
Pokemon, Neopets, Care Bears. Give kids a sense of ownership and mastery over the facts and details of the characters. Loved dinosaurs as a kid. Knew the rock-scissors-paper of different species of dinosaurs, which was something his mom didn't know. Mastery of facts.
Care bears. Started as greeting cards. Found a web app that categorizes your personality: Which Care Bear are you? Each care bear has special abilities. Care bear have cousins, that aren't even bears. Care bears live in a star-speckled, rainbow-trimmed, cotton candy, cloud world called "Care a Lot". If they fall out of the clouds, they land in the "Forest of Feelings" (Kindom of Caring). Forest of Feelings is over the earth. So the Earth must be the "Kingdom of people who don't give a shit".
-Don
-
Re:unlikely to be a nice game with this hype
Spore's structure is a lot different than SimEarth.
Will Wright gave a talk to Terry Winnograd's user interface design class at Stanford in 1996 (before he made The Sims), which I sat in on and took some notes about Designing User Interfaces to Simulation Games. In that talk he discussed post-morta of some of the games he designed, including SimEarth.
Post Morta:
After designing SimCity Classic, then SimEarth, then SimAnt, then SimCity 2000, here's one way Will compares them: With SimCity Classic as the standard against which to measure, SimEarth was too complex, SimAnt was too simple, and SimCity 2000 was just right.
SimEarth:
SimEarth and SimAnt did not support the same level of creativity and personal imprinting that SimCity does. With SimEarth, anything you do is quickly wiped out by continental drift, erosion, and evolution; you can walk away from it for a while, come back later, and it will have evolved life or shriveled up and died without you, looking pretty much the same as if you had slaved over it for hours. It was too complex a simulation for people to grasp or effect in a satisfying way.
The time scale slows down as the game progresses, from geological time, to when life appears, to when intelligence appears, to when technology is developed. There was some trouble conveying this to the users. One thing that supported the notion of time scale is how the view controls along the bottom of the global map were ordered in a temporal progression, in the order you'd need to use them, from the continental drift display, to the technology display.
Spore is actually designed as a "T" shaped storytelling based game: the levels of scale that you go up through, from plankton to spacefaring civilization (the vertical base of the T), are actually a sandbox tutorial that teach you to play the rest of the game (the horizontal top of the T), which is a collection of science fiction story genras, that take place on top of all of the lower levels.
From the notes I took at Will Wright's Game Developers Conference demo on 3/11/2005, The Future of Content:
Meta Games
Meta games around different genras of science fiction.
Invasion (war of the worlds). Adult supervision (Day the earth stood still. Uplift (2001). First contact (Close Encounters). Abduction cross breeding (X-Files). Diplomacy (Star Trek).
Most of the narritive will come into the game through the space game.
Broad variety of different worlds to visit.
Cross-pollination of content created by different players.
Going to another player's planet.
You can abduct creatures, and go back to populate zoo planet.
T shaped game.
The base of the T is a goal oriented gaming.
The player first goes through a tutorial and sandbox to learn editing tools and game play at each level.
Player can eventually surf down to the lower levels.
Goal oriented game trains you to use all the editors and teaches you the simulation dynamics at every level, from bottom to top.
Once you get to the top you can surf vertically down into the other games, that you've learned to use on the way up.
At the top of the T is a collection of science fiction story genras, that take place on top of all of the lower levels.
Once you make your way all the way up from unicellular life to intergalactic civilization, the storytelling begins.
Pull out to galactics level, 10's of thousands of worlds.
Like the movie Powers to Ten. Always wanted to roll this into a game.
SETI: Drake's equation: N = R fs fp ne fl fi fc L. Each term of the equation correspond to different power of scale.-Don
-
Re:unlikely to be a nice game with this hype
Spore's structure is a lot different than SimEarth.
Will Wright gave a talk to Terry Winnograd's user interface design class at Stanford in 1996 (before he made The Sims), which I sat in on and took some notes about Designing User Interfaces to Simulation Games. In that talk he discussed post-morta of some of the games he designed, including SimEarth.
Post Morta:
After designing SimCity Classic, then SimEarth, then SimAnt, then SimCity 2000, here's one way Will compares them: With SimCity Classic as the standard against which to measure, SimEarth was too complex, SimAnt was too simple, and SimCity 2000 was just right.
SimEarth:
SimEarth and SimAnt did not support the same level of creativity and personal imprinting that SimCity does. With SimEarth, anything you do is quickly wiped out by continental drift, erosion, and evolution; you can walk away from it for a while, come back later, and it will have evolved life or shriveled up and died without you, looking pretty much the same as if you had slaved over it for hours. It was too complex a simulation for people to grasp or effect in a satisfying way.
The time scale slows down as the game progresses, from geological time, to when life appears, to when intelligence appears, to when technology is developed. There was some trouble conveying this to the users. One thing that supported the notion of time scale is how the view controls along the bottom of the global map were ordered in a temporal progression, in the order you'd need to use them, from the continental drift display, to the technology display.
Spore is actually designed as a "T" shaped storytelling based game: the levels of scale that you go up through, from plankton to spacefaring civilization (the vertical base of the T), are actually a sandbox tutorial that teach you to play the rest of the game (the horizontal top of the T), which is a collection of science fiction story genras, that take place on top of all of the lower levels.
From the notes I took at Will Wright's Game Developers Conference demo on 3/11/2005, The Future of Content:
Meta Games
Meta games around different genras of science fiction.
Invasion (war of the worlds). Adult supervision (Day the earth stood still. Uplift (2001). First contact (Close Encounters). Abduction cross breeding (X-Files). Diplomacy (Star Trek).
Most of the narritive will come into the game through the space game.
Broad variety of different worlds to visit.
Cross-pollination of content created by different players.
Going to another player's planet.
You can abduct creatures, and go back to populate zoo planet.
T shaped game.
The base of the T is a goal oriented gaming.
The player first goes through a tutorial and sandbox to learn editing tools and game play at each level.
Player can eventually surf down to the lower levels.
Goal oriented game trains you to use all the editors and teaches you the simulation dynamics at every level, from bottom to top.
Once you get to the top you can surf vertically down into the other games, that you've learned to use on the way up.
At the top of the T is a collection of science fiction story genras, that take place on top of all of the lower levels.
Once you make your way all the way up from unicellular life to intergalactic civilization, the storytelling begins.
Pull out to galactics level, 10's of thousands of worlds.
Like the movie Powers to Ten. Always wanted to roll this into a game.
SETI: Drake's equation: N = R fs fp ne fl fi fc L. Each term of the equation correspond to different power of scale.-Don
-
Sims Designer Chris Trottier on Tuned Emergence
Sims Designer Chris Trottier on Tuned Emergence and Design by Accretion
The Armchair Empire interviewed Chris Trottier, one of the designers of The Sims and The Sims Online. She touches on some important ideas, including "Tuned Emergence" and "Design by Accretion".
Chris' honest analysis of how and why "the gameplay didn't come together until the months before the ship" is right on the mark, and that's the secret to the success of games like The Sims and SimCity.
The essential element that was missing until the last minute was tuning: The approach to game design that Maxis brought to the table is called "Tuned Emergence" and "Design by Accretion". Before it was tuned, The Sims wasn't missing any structure or content, but it just wasn't balanced yet. But it's OK, because that's how it's supposed to work!
In justifying their approach to The Sims, Maxis had to explain to EA that SimCity 2000 was not fun until 6 weeks before it shipped. But EA was not comfortable with that approach, which went against every rule in their play book. It required Will Wright's tremendous stamina to convince EA not to cancel The Sims, because according to EA's formula, it would never work.
If a game isn't tuned, it's a drag, and you can't stand to play it for an hour. The Sims and SimCity were "designed by accretion": incrementally assembled together out of "a mass of separate components", like a planet forming out of a cloud of dust orbiting around star. They had to reach critical mass first, before they could even start down the road towards "Tuned Emergence", like life finally taking hold on the planet surface. Even then, they weren't fun until they were carefully tuned just before they shipped, like the renaissance of civilization suddenly developing science and technology. Before it was properly tuned, The Sims was called "the toilet game", for the obvious reason that there wasn't much else to do!
Here are some questions and answers from the interview with The Sims designer Chris Trottier:
[...]
Q: On paper, a game where you simulate daily life doesn't sound that interesting. Yet The Sims is really fun to play, so much so that it is now the biggest-selling PC game ever. Although any development team working with Will Wright has to feel confident in the product they are creating, has the unbelievable popularity of the franchise shocked even the development team?
A: Absolutely. When I was first assigned to The Sims, it was not-very-affectionately-known within the company as "the toilet game." Will Wright had tremendous stamina for the risk involved with trying something very new, but there were certainly a lot of head-scratchers both on the team and outside of it. In all honesty, the gameplay didn't start to really come together until a couple of months before ship. Being involved in that tuning process, and seeing the game take shape from what had previously been a mass of separate components, was one of the most powerful experiences of my career.
[...]
Q: What makes The Sims massively popular with female gamers, who traditionally don't make up a big number of gameplayers?
A: It's so hard to answer that question without making broad, sweeping statements that anyone of my gender would probably resent. But... I can say that there are several untraditional forms of gameplay in The Sims. For instance, there are many people who spend most of their time decorating and redecorating their homes. Since there's so much user-created content being posted on websites, they spend a lot of time collecting more looks to add to the game. There are also a lot of people who enjoy having a fantasy life where they get to call the shots... for good or for bad. I've heard a lot of stories
-
OpenLaszlo YouTube Player Demo and Source Code
The problem with Real, QuickTime, Windows Media and all the other video players, is that all they are just stupid video players boxed into a rectangular prison, and not customizable or adaptable in any way. You can't add to their user interface, or fix their horrible design problems. No control over how closed captioning is presented. No transparent video overlays. No extra buttons or links to related videos. No webcam support or two-way video conferencing.
From a user interface design perspective, Flash has an enormous advantage over old-school video players, because developers are able to deeply customize and integrate the video player into their own user interfaces, like Google's and YouTube's video players, the OpenLaszlo YouTube player, or the SimFaux Network TV Fox News Simulation.
The other overwhelming advantage to Flash over all the other video players, is that it's installed on way more platforms than any other existing video player. So the fact that it has almost universal coverage, plus the fact that you can customize the user interface (like YouTube, Google Video, and everyone else does), combine to make Flash the hands-down best way to distribute video over the internet.
Here's an example of what I mean by customization: A set of reusable video playback and recording components that I've developed for OpenLaszlo, which are easy to customize and integrate into your own OpenLaszlo applications:
OpenLaszlo YouTube Player Demo and Source Code
I've been working on developing streaming video support for OpenLaszlo: LZX classes to support improved audio and video, including RTMP streaming via Flash Media Server (aka Flash Communication Server) and also the Red5 Open Source Flash Server, as well as streaming video via http. It supports playback of recorded FLVs, recording from camera and microphone, live two-way (or multi-party) audio/video conferencing, and FLV streaming over http.
It's easy to use the OpenLaszlo video components, because they're nicely integrated with the OpenLaszlo programming model. They expose logical attributes and events which make it easy to integrate video into OpenLaszlo applications.
To test it out the code and demonstrate its functionality, I've developed a simple YouTube Player in OpenLaszlo [click here to open it in a window]. It uses the YouTube ReST Web API, and some simple html screen scraping to get the URL parameters to stream the FLV file directly.
Here is the source for the test application wrapper that puts the YouTube video player in a resizable window, and the more interesting source for the youtubeplayer component, that uses the new OpenLaszlo video classes I'm developing (whose source is in this directory).
The new video classes and the YouTube player demo are now checked into the OpenLaszlo svn repository.
-
OpenLaszlo YouTube Player Demo and Source Code
The problem with Real, QuickTime, Windows Media and all the other video players, is that all they are just stupid video players boxed into a rectangular prison, and not customizable or adaptable in any way. You can't add to their user interface, or fix their horrible design problems. No control over how closed captioning is presented. No transparent video overlays. No extra buttons or links to related videos. No webcam support or two-way video conferencing.
From a user interface design perspective, Flash has an enormous advantage over old-school video players, because developers are able to deeply customize and integrate the video player into their own user interfaces, like Google's and YouTube's video players, the OpenLaszlo YouTube player, or the SimFaux Network TV Fox News Simulation.
The other overwhelming advantage to Flash over all the other video players, is that it's installed on way more platforms than any other existing video player. So the fact that it has almost universal coverage, plus the fact that you can customize the user interface (like YouTube, Google Video, and everyone else does), combine to make Flash the hands-down best way to distribute video over the internet.
Here's an example of what I mean by customization: A set of reusable video playback and recording components that I've developed for OpenLaszlo, which are easy to customize and integrate into your own OpenLaszlo applications:
OpenLaszlo YouTube Player Demo and Source Code
I've been working on developing streaming video support for OpenLaszlo: LZX classes to support improved audio and video, including RTMP streaming via Flash Media Server (aka Flash Communication Server) and also the Red5 Open Source Flash Server, as well as streaming video via http. It supports playback of recorded FLVs, recording from camera and microphone, live two-way (or multi-party) audio/video conferencing, and FLV streaming over http.
It's easy to use the OpenLaszlo video components, because they're nicely integrated with the OpenLaszlo programming model. They expose logical attributes and events which make it easy to integrate video into OpenLaszlo applications.
To test it out the code and demonstrate its functionality, I've developed a simple YouTube Player in OpenLaszlo [click here to open it in a window]. It uses the YouTube ReST Web API, and some simple html screen scraping to get the URL parameters to stream the FLV file directly.
Here is the source for the test application wrapper that puts the YouTube video player in a resizable window, and the more interesting source for the youtubeplayer component, that uses the new OpenLaszlo video classes I'm developing (whose source is in this directory).
The new video classes and the YouTube player demo are now checked into the OpenLaszlo svn repository.
-
OpenLaszlo YouTube Player Demo and Source Code
The problem with Real, QuickTime, Windows Media and all the other video players, is that all they are just stupid video players boxed into a rectangular prison, and not customizable or adaptable in any way. You can't add to their user interface, or fix their horrible design problems. No control over how closed captioning is presented. No transparent video overlays. No extra buttons or links to related videos. No webcam support or two-way video conferencing.
From a user interface design perspective, Flash has an enormous advantage over old-school video players, because developers are able to deeply customize and integrate the video player into their own user interfaces, like Google's and YouTube's video players, the OpenLaszlo YouTube player, or the SimFaux Network TV Fox News Simulation.
The other overwhelming advantage to Flash over all the other video players, is that it's installed on way more platforms than any other existing video player. So the fact that it has almost universal coverage, plus the fact that you can customize the user interface (like YouTube, Google Video, and everyone else does), combine to make Flash the hands-down best way to distribute video over the internet.
Here's an example of what I mean by customization: A set of reusable video playback and recording components that I've developed for OpenLaszlo, which are easy to customize and integrate into your own OpenLaszlo applications:
OpenLaszlo YouTube Player Demo and Source Code
I've been working on developing streaming video support for OpenLaszlo: LZX classes to support improved audio and video, including RTMP streaming via Flash Media Server (aka Flash Communication Server) and also the Red5 Open Source Flash Server, as well as streaming video via http. It supports playback of recorded FLVs, recording from camera and microphone, live two-way (or multi-party) audio/video conferencing, and FLV streaming over http.
It's easy to use the OpenLaszlo video components, because they're nicely integrated with the OpenLaszlo programming model. They expose logical attributes and events which make it easy to integrate video into OpenLaszlo applications.
To test it out the code and demonstrate its functionality, I've developed a simple YouTube Player in OpenLaszlo [click here to open it in a window]. It uses the YouTube ReST Web API, and some simple html screen scraping to get the URL parameters to stream the FLV file directly.
Here is the source for the test application wrapper that puts the YouTube video player in a resizable window, and the more interesting source for the youtubeplayer component, that uses the new OpenLaszlo video classes I'm developing (whose source is in this directory).
The new video classes and the YouTube player demo are now checked into the OpenLaszlo svn repository.
-
OpenLaszlo YouTube Player Demo and Source Code
The problem with Real, QuickTime, Windows Media and all the other video players, is that all they are just stupid video players boxed into a rectangular prison, and not customizable or adaptable in any way. You can't add to their user interface, or fix their horrible design problems. No control over how closed captioning is presented. No transparent video overlays. No extra buttons or links to related videos. No webcam support or two-way video conferencing.
From a user interface design perspective, Flash has an enormous advantage over old-school video players, because developers are able to deeply customize and integrate the video player into their own user interfaces, like Google's and YouTube's video players, the OpenLaszlo YouTube player, or the SimFaux Network TV Fox News Simulation.
The other overwhelming advantage to Flash over all the other video players, is that it's installed on way more platforms than any other existing video player. So the fact that it has almost universal coverage, plus the fact that you can customize the user interface (like YouTube, Google Video, and everyone else does), combine to make Flash the hands-down best way to distribute video over the internet.
Here's an example of what I mean by customization: A set of reusable video playback and recording components that I've developed for OpenLaszlo, which are easy to customize and integrate into your own OpenLaszlo applications:
OpenLaszlo YouTube Player Demo and Source Code
I've been working on developing streaming video support for OpenLaszlo: LZX classes to support improved audio and video, including RTMP streaming via Flash Media Server (aka Flash Communication Server) and also the Red5 Open Source Flash Server, as well as streaming video via http. It supports playback of recorded FLVs, recording from camera and microphone, live two-way (or multi-party) audio/video conferencing, and FLV streaming over http.
It's easy to use the OpenLaszlo video components, because they're nicely integrated with the OpenLaszlo programming model. They expose logical attributes and events which make it easy to integrate video into OpenLaszlo applications.
To test it out the code and demonstrate its functionality, I've developed a simple YouTube Player in OpenLaszlo [click here to open it in a window]. It uses the YouTube ReST Web API, and some simple html screen scraping to get the URL parameters to stream the FLV file directly.
Here is the source for the test application wrapper that puts the YouTube video player in a resizable window, and the more interesting source for the youtubeplayer component, that uses the new OpenLaszlo video classes I'm developing (whose source is in this directory).
The new video classes and the YouTube player demo are now checked into the OpenLaszlo svn repository.
-
OpenLaszlo YouTube Player Demo and Source Code
The problem with Real, QuickTime, Windows Media and all the other video players, is that all they are just stupid video players boxed into a rectangular prison, and not customizable or adaptable in any way. You can't add to their user interface, or fix their horrible design problems. No control over how closed captioning is presented. No transparent video overlays. No extra buttons or links to related videos. No webcam support or two-way video conferencing.
From a user interface design perspective, Flash has an enormous advantage over old-school video players, because developers are able to deeply customize and integrate the video player into their own user interfaces, like Google's and YouTube's video players, the OpenLaszlo YouTube player, or the SimFaux Network TV Fox News Simulation.
The other overwhelming advantage to Flash over all the other video players, is that it's installed on way more platforms than any other existing video player. So the fact that it has almost universal coverage, plus the fact that you can customize the user interface (like YouTube, Google Video, and everyone else does), combine to make Flash the hands-down best way to distribute video over the internet.
Here's an example of what I mean by customization: A set of reusable video playback and recording components that I've developed for OpenLaszlo, which are easy to customize and integrate into your own OpenLaszlo applications:
OpenLaszlo YouTube Player Demo and Source Code
I've been working on developing streaming video support for OpenLaszlo: LZX classes to support improved audio and video, including RTMP streaming via Flash Media Server (aka Flash Communication Server) and also the Red5 Open Source Flash Server, as well as streaming video via http. It supports playback of recorded FLVs, recording from camera and microphone, live two-way (or multi-party) audio/video conferencing, and FLV streaming over http.
It's easy to use the OpenLaszlo video components, because they're nicely integrated with the OpenLaszlo programming model. They expose logical attributes and events which make it easy to integrate video into OpenLaszlo applications.
To test it out the code and demonstrate its functionality, I've developed a simple YouTube Player in OpenLaszlo [click here to open it in a window]. It uses the YouTube ReST Web API, and some simple html screen scraping to get the URL parameters to stream the FLV file directly.
Here is the source for the test application wrapper that puts the YouTube video player in a resizable window, and the more interesting source for the youtubeplayer component, that uses the new OpenLaszlo video classes I'm developing (whose source is in this directory).
The new video classes and the YouTube player demo are now checked into the OpenLaszlo svn repository.
-
OpenLaszlo YouTube Player Demo and Source Code
The problem with Real, QuickTime, Windows Media and all the other video players, is that all they are just stupid video players boxed into a rectangular prison, and not customizable or adaptable in any way. You can't add to their user interface, or fix their horrible design problems. No control over how closed captioning is presented. No transparent video overlays. No extra buttons or links to related videos. No webcam support or two-way video conferencing.
From a user interface design perspective, Flash has an enormous advantage over old-school video players, because developers are able to deeply customize and integrate the video player into their own user interfaces, like Google's and YouTube's video players, the OpenLaszlo YouTube player, or the SimFaux Network TV Fox News Simulation.
The other overwhelming advantage to Flash over all the other video players, is that it's installed on way more platforms than any other existing video player. So the fact that it has almost universal coverage, plus the fact that you can customize the user interface (like YouTube, Google Video, and everyone else does), combine to make Flash the hands-down best way to distribute video over the internet.
Here's an example of what I mean by customization: A set of reusable video playback and recording components that I've developed for OpenLaszlo, which are easy to customize and integrate into your own OpenLaszlo applications:
OpenLaszlo YouTube Player Demo and Source Code
I've been working on developing streaming video support for OpenLaszlo: LZX classes to support improved audio and video, including RTMP streaming via Flash Media Server (aka Flash Communication Server) and also the Red5 Open Source Flash Server, as well as streaming video via http. It supports playback of recorded FLVs, recording from camera and microphone, live two-way (or multi-party) audio/video conferencing, and FLV streaming over http.
It's easy to use the OpenLaszlo video components, because they're nicely integrated with the OpenLaszlo programming model. They expose logical attributes and events which make it easy to integrate video into OpenLaszlo applications.
To test it out the code and demonstrate its functionality, I've developed a simple YouTube Player in OpenLaszlo [click here to open it in a window]. It uses the YouTube ReST Web API, and some simple html screen scraping to get the URL parameters to stream the FLV file directly.
Here is the source for the test application wrapper that puts the YouTube video player in a resizable window, and the more interesting source for the youtubeplayer component, that uses the new OpenLaszlo video classes I'm developing (whose source is in this directory).
The new video classes and the YouTube player demo are now checked into the OpenLaszlo svn repository.
-
OpenLaszlo YouTube Player Demo and Source Code
The problem with Real, QuickTime, Windows Media and all the other video players, is that all they are just stupid video players boxed into a rectangular prison, and not customizable or adaptable in any way. You can't add to their user interface, or fix their horrible design problems. No control over how closed captioning is presented. No transparent video overlays. No extra buttons or links to related videos. No webcam support or two-way video conferencing.
From a user interface design perspective, Flash has an enormous advantage over old-school video players, because developers are able to deeply customize and integrate the video player into their own user interfaces, like Google's and YouTube's video players, the OpenLaszlo YouTube player, or the SimFaux Network TV Fox News Simulation.
The other overwhelming advantage to Flash over all the other video players, is that it's installed on way more platforms than any other existing video player. So the fact that it has almost universal coverage, plus the fact that you can customize the user interface (like YouTube, Google Video, and everyone else does), combine to make Flash the hands-down best way to distribute video over the internet.
Here's an example of what I mean by customization: A set of reusable video playback and recording components that I've developed for OpenLaszlo, which are easy to customize and integrate into your own OpenLaszlo applications:
OpenLaszlo YouTube Player Demo and Source Code
I've been working on developing streaming video support for OpenLaszlo: LZX classes to support improved audio and video, including RTMP streaming via Flash Media Server (aka Flash Communication Server) and also the Red5 Open Source Flash Server, as well as streaming video via http. It supports playback of recorded FLVs, recording from camera and microphone, live two-way (or multi-party) audio/video conferencing, and FLV streaming over http.
It's easy to use the OpenLaszlo video components, because they're nicely integrated with the OpenLaszlo programming model. They expose logical attributes and events which make it easy to integrate video into OpenLaszlo applications.
To test it out the code and demonstrate its functionality, I've developed a simple YouTube Player in OpenLaszlo [click here to open it in a window]. It uses the YouTube ReST Web API, and some simple html screen scraping to get the URL parameters to stream the FLV file directly.
Here is the source for the test application wrapper that puts the YouTube video player in a resizable window, and the more interesting source for the youtubeplayer component, that uses the new OpenLaszlo video classes I'm developing (whose source is in this directory).
The new video classes and the YouTube player demo are now checked into the OpenLaszlo svn repository.
-
Pie menus on OLPC
I think pie menus would work well in the OLCP user interface.
Pie menus aren't radical or new, however they're a radial but non-standard menu UI that's been empirically tested and shown to be faster and less error prone than linear menus.
Since the OLPC interface runs on a small screen, and uses the screen edges to frame and control the user interface, one issue that needs to be properly addressed is the screen edge problem:
You can pop up pie menus in the screen corners or along the screen edges, by slicing them into 1/4 or 1/2 sized pies, so all of their items are in selectable directions. Starting the pie menu selection gesture near the edge or corner limits the number of directions you can move, but gives you the entire screen area to use as "leverage" to control the selection.
On the other hand, if you pop up a menu in the center of the screen, you can move in 8 (or so) different directions, but only half as far (so you can't get as much "leverage").
The way pie menus directly exploit Fitts' Law enables users and designers to make some fortunate trade-offs: Pie menu users can increase the distance of motion to gain more "leverage" (precision and accuracy of selection): trading off selection speed to reduce the error rate. Pie menu designers can trade off selection speed and error rate to increase number of items, and the additional leverage of edge and corner menus makes it possible to put more items on them (within reason).
-Don
-
Pie menus on OLPC
I think pie menus would work well in the OLCP user interface.
Pie menus aren't radical or new, however they're a radial but non-standard menu UI that's been empirically tested and shown to be faster and less error prone than linear menus.
Since the OLPC interface runs on a small screen, and uses the screen edges to frame and control the user interface, one issue that needs to be properly addressed is the screen edge problem:
You can pop up pie menus in the screen corners or along the screen edges, by slicing them into 1/4 or 1/2 sized pies, so all of their items are in selectable directions. Starting the pie menu selection gesture near the edge or corner limits the number of directions you can move, but gives you the entire screen area to use as "leverage" to control the selection.
On the other hand, if you pop up a menu in the center of the screen, you can move in 8 (or so) different directions, but only half as far (so you can't get as much "leverage").
The way pie menus directly exploit Fitts' Law enables users and designers to make some fortunate trade-offs: Pie menu users can increase the distance of motion to gain more "leverage" (precision and accuracy of selection): trading off selection speed to reduce the error rate. Pie menu designers can trade off selection speed and error rate to increase number of items, and the additional leverage of edge and corner menus makes it possible to put more items on them (within reason).
-Don
-
Maximizing Composability and Relax NG Trivia
Tim Bray is right, and he couldn't have put it better: W3C XML Schemas (XSD) suck. The reason Relax NG is so much cleaner and more powerful than committee-designed XML Schemas, is that it's based on a sound mathematical foundation (tree regular expressions, or "hedge automata theory"). While XML-Schemas suffer from ad-hoc design, committee-burn, lack of focus, and half-baked attempts to solve too many unrelated problems.
Here's some interesting stuff from my blog about the design and development of Relax NG.
-Don
James Clark wrote about maximizing composability:
First, a little digression. In general, I have made it a design principle in TREX to maximize "composability". It's a little bit hard to describe. The idea is that a language provides a number of different kinds of atomic thing, and a number different ways to compose new things out of other things. Maximizing composability means minimizing restrictions on which ways to compose things can be applied to which kinds of thing. Maximizing composability tends to improve the ratio between functionality on the one hand and simplicity/ease of use/ease of learning on the other.
Clark describes the derivative algorithm's lazy approach to automaton construction:
I don't agree that <interleave> makes automation-based implementations impossible; it just means you have to construct automatons lazily. (In fact, you can view the "derivative"-based approach in JTREX as lazily constructing a kind of automaton where states are represented by a canonical representative of the patterns that match the remaining input.)
The Relax NG derivative algorithm is implemented in a few hundred elegent declarative functional lines of Haskel, and also in tens of thousands of lines and hundreds of classes of highly abstract complex Java code.
Clark's Java implementation of Relax NG is called "jing", which is a Thai word meaning truthful, real, serious, no-nonsense, and ending with "ng".
Comparing the Java and Haskell implementations of Relax NG illustrates what a wicked cool and powerful language Haskell really is. The Java code must explicitly model and simulate many Haskel features like first order functions, memoization, pattern matching, partial evaluation, lazy evaluation, declarative programming, and functional programming. That requires many abstract interfaces,, concrete classes and brittle lines of code.
While the Java code is quite brittle and verbose, the Haskell code is extremely flexible and concise. Haskell is an excellent design language, a vehicle for exploring complex problem spaces, designing and testing ingenious solutions, performing practical experiments, weighin
-
Relax NG's compact non-XML syntax
Relax NG has a compact non-XML syntax. But C++/Java is a horrible syntax to use if you want a language to be readable and easy to understand. Since when was 17 levels of operator precedence easy to understand? Of course any good programmer always uses parenthesis to avoid ambiguity, so why should a language have 17 levels of built-in ambiguity just to make it that much easier to make hard to find mistakes?
-Don
From my blog: Relax NG Compact Syntax: no to operator precedence, yes to annotations!
James Clark is a fucking genius! Hes the guy who wrote the Expat XML parser, works on Relax NG, and does tons of other important stuff. Relax NG is an ingeniously designed, elegant XML schema language based on regular expressions, which also has a compact, convenient non-xml syntax.
I totally respect the way he throws down the gauntlet on operator precedence (take that you Perl and C++ weenies!):
There is no notion of operator precedence. It is an error for patterns to combine the |, &, , and - operators without using parentheses to make the grouping explicit. For example, foo | bar, baz is not allowed; instead, either (foo | bar), baz or foo | (bar, baz) must be used. A similar restriction applies to name classes and the use of the | and - operators. These restrictions are not expressed in the above EBNF but they are made explicit in the BNF in Section 1.
You can translate back and forth between Relax NG's XML and compact syntaxes with full fidelity, without losing any important information. Relax NG supports annotating the grammar with standard and custom namespaces, so you can add standard extensions and extra user defined meta-data to the grammar. That's useful for many applications like user interface generators, programming tools, editors, compilers, data binding, serialization, documentation, etc.
Here's an interesting example of a complex Relax NG application: OpenLaszlo is an XML/JavaScript based programming language, which the Laszlo compiler translates into SWF files for the Flash player. The Laszlo compiler and programming tools use this lzx.rnc Relax NG schema for the OpenLaszlo XML language. This schema contains annotations used by the Laslzo compiler to define the syntax and semantics of the XML based programming language.
The schema starts out by defining a few namespaces:
default namespace = "http://www.laszlosystems.com/2003/05/lzx"
namespace rng = "http://relaxng.org/ns/structure/1.0"
namespace a = "http://relaxng.org/ns/compatibility/annotations/1 .0"
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
namespace lza = "http://www.laszlosystems.com/annotations/1.0"The a: namespace defines some standard annotations like a:defaultValue, and the lza: namespace defines some custom annotations private to the Laszlo compiler like lza:visibility and lza:modifiers. Thanks to the ability to annotate the grammar, much of the syntax and semantics of the Laszlo programming language are defined directly in the Relax NG schema in the compact syntax, so any other tool can read the exact same definition the compiler is using!
To show how truly simple and elegant it is, here is the snake eating its tail: The Relax NG XML syntax, written in the Relax NG compact syntax:
# RELAX NG XML syntax specified in compact syntax.
default namespace rng = "http://relaxng.org/ns/structure/1.0"
namespace loc -
Re:Call me when it's released
Flash's ActionScript is not JavaScript.
You're wrong about that. But then again, you're the one who proudly proclaims to know nothing about Flash, so I wouldn't expect you to know. But please stop spreading misinformation.
Rhino is Netscape's Java implementation of JavaScript. JScript is Microsoft's implementation of JavaScript. In the same way, ActionScript is Macromedia's implementation of JavaScript. It started out something else, but now it's completely JavaScript. JScript has just as many quirks and bugs as ActionScript, and that's certainly considered JavaScript. OpenLaszlo's LZX language is also an implementation of JavaScript, which the OpenLaszlo compiler translates as necessary to the particular dialect of JavaScript supported by the target platform. You are splitting hairs over the spelling of the name, and have totally lost sight of the original argument.
Your definition of "most people" who say Flash isn't AJAX includes a whole bunch of Johny-come-lately newbies who only heard the AJAX hype recently, and people like yourself who refuse to learn anything about Flash or recognize its right to exist. But sticking your head in the sand doesn't make it go away, or give you the right to rewrite history.
Many people beyond your "most people" have been doing Asynchronous JavaScript and XML for years before the term was coined in 2005: Internet Explorer developers, Flash developers, XUL developers, OpenLaszlo developers, online game developers, and others. AJAX applications running on Flash enjoy all the techniques and advantages of DHTML based AJAX, and fewer disadvantages from incompatible DHTML implementations. So what is your point of trying to narrow the definition of AJAX, just to punish Flash developers?
The literal definition of AJAX is "Asynchronous JavaScript and XML". How are Flash and OpenLaszlo not AJAX? They use different JavsScript interpreter implementations, but what they're doing architecturally is exactly the same, and that's what matters. An AJAX program is still fundamentally AJAXian, whether the class it uses to asynchronously load XML is spelled XMLHTTPRequest or LzDataset. If spelling is really more important to you than architecture, then OpenLaszlo provides a compatible API spelled "XMLHTTPRequest".
The fact that you're using DHTML, SVG, J2ME or Flash to draw on the screen is much less important than the fact that you have an JavaScript interpreter in the client ("J"), that asynchronously ("A") downloads XML ("X") from the server.
If you're going to get pedantic about narrowing the definition of AJAX, then consider this: If DHTML was important to the definition of AJAX, it would be "AJAXAD", for "Asynchronous JavaScript and XML and DHTML." But nowhere in the name "AJAX" can you find a letter that stands for "DHTML".
The "AJAX" architecture has been around for a long time before the term was coined, even before JavaScript, XML and DHTML were invented. I worked on James Gosling's NeWS window system in the 1980's. NeWS was most definitely AJAXian, except that it uses PostScript code instead of JavaScript, PostScript data instead of XML, and PostScript graphics instead of DHTML or Flash.
But beyond having those superficial syntactic differences (and being consistently designed on purpose around PostScript, instead of haphazardly and accidentally thrown together like AJAX), the NeWS window system was most certainly AJAXian, in every important sense of the term. I will concede that NeWS was not literally AJAX the way Flash is, because JavaScript and XML and even DHTML had not been invented yet, but it certanly embodied the most important features of the AJAX architecture: extensibility, asynchronicity, local interaction, sending code and structured data, and defining dynamic application specific protocols.
Here's an article I wrote a while ago, about how AJAX is old NeWS, Laszlo is non-toxic AJAX.
-Don
-
Re:Call me when it's released
That's not misleading at all -- you're just misunderstanding. OpenLaszlo applications certainly are "AJAX". AJAX stands for: "Asynchronous JavaScript and XML". That's exactly what OpenLaszlo is, whether it's running on Flash or the web browser. OpenLaszlo was "AJAX" long before the term was coined.
Before AJAX (Asynchronous JavaScript and XML) had a name, there was Laszlo Systems, a software tools developer using AJAX-like methods along with with Macromedia's Flash player to deliver richer Web experiences. David Temkin tells us why he chose the Flash player as a platform. Laszlo went open source and chose IBM's Common Public License as it was flexible enough to fit their needs without curbing commercial use.
Now can you find anything at all misleading about the announcement, once you understand the standard definition of the terms? You told me privately that you were misled into believing that 1) there was a new production ready product available and 2) there were new demos ready now. I can find nothing in the announcement or web pages that states or implies any of that, so you're just making it up, and reacting to your own straw man misunderstandings. Don't blame other people for your own poor reading comprehension.
Who are you to say that I am not entitled to post an announcement about an open source project on Slashdot? Who else shares your unique "school of thought" that nobody should announce anything until beta?
Let's get back to your original argument that open source projects should not post announcements before they're in beta. Why not? Says who? What are the positive advantages of that? How do they outweight the horrible negative consequences of stifling development and supressing community participation?
What do you have against Linux and every other open source project? You don't seem to understand the first and most important thing about open source software development, and that's colaboration and communication. Operating in secret until beta, as you suggest, is totally against those principles.
-Don
To address the question "Is OpenLaszlo AJAX?", here's something I wrote a while ago (before OpenLaszlo's DHTML support was announced): OpenLaszlo Makes Full Blown AJAX Apps on Flash :
The fact that Flash is commonly used for ads, and that those ads annoy everyone and cause many people to hate Flash, doesn't detract from the high quality user interfaces that you can build with it, if you use it for good instead of evil.
Since usability guru Jakob Nielson wrote Flash: 99% Bad in 2000, a lot has changed about Flash. He worked with Macromedia to improve Flash's usability, and he sells a report with 117 design guidelines for Flash usability. So yes, it is possible to develop usable applications in Flash.
OpenLaszlo is an open source language and set of tools for developing full fledged rich web applications, which are compiled into SWF files that run on the Flash player. Laszlo/Flash is presently much more capable of implementing high quality cross platform user interfaces than dynamic AJAX/HTML/SVG currently is.
Laszlo is a high level XML and JavaScript based programming language. It's independent of Flash in the same way that GCC is independent of the Intel instruction set and Windows runtime, because they both compile a higher level language, and can target other runtimes and instruction sets.
Currently Flash is the most practical, so that's what Laszlo supports initially, but it can be retargeted to other runtimes like SVG, XUL, Java or Avalon, once they grow up and mature. But right now Flash is the best way to go, because of i
-
Re:Call me when it's released
Is it just new demos that you want? Well that's easy! Here's an OpenLaszlo YouTube Player, which is a demonstration of the new video api. And of course there's SimFaux and its open source code and content.
-Don
-
Re:Call me when it's released
Is it just new demos that you want? Well that's easy! Here's an OpenLaszlo YouTube Player, which is a demonstration of the new video api. And of course there's SimFaux and its open source code and content.
-Don
-
Declaring layouts in OpenLaszlo
Assuming that you used two different text elements, each with its own fgcolor, then my guess is that you need a layout to position the text objects one after the other -- otherwise they all are positioned at x="0" y="0" by default, so they overlap like this (source).
You can put a layout element into a canvas or view, like <simplelayout axis="x"/>, and it magically positions its siblings (the text elements) like this (source). There are even more powerful layouts like the <wrappinglayout/> that work like this (source). [Try resizing the window -- it's very xmasy!]
Another way to make a text element with two different colors is to change the colors with html, using <font color="#ff0000"> tags in the text, like this (source).
-Don
-
Declaring layouts in OpenLaszlo
Assuming that you used two different text elements, each with its own fgcolor, then my guess is that you need a layout to position the text objects one after the other -- otherwise they all are positioned at x="0" y="0" by default, so they overlap like this (source).
You can put a layout element into a canvas or view, like <simplelayout axis="x"/>, and it magically positions its siblings (the text elements) like this (source). There are even more powerful layouts like the <wrappinglayout/> that work like this (source). [Try resizing the window -- it's very xmasy!]
Another way to make a text element with two different colors is to change the colors with html, using <font color="#ff0000"> tags in the text, like this (source).
-Don
-
Declaring layouts in OpenLaszlo
Assuming that you used two different text elements, each with its own fgcolor, then my guess is that you need a layout to position the text objects one after the other -- otherwise they all are positioned at x="0" y="0" by default, so they overlap like this (source).
You can put a layout element into a canvas or view, like <simplelayout axis="x"/>, and it magically positions its siblings (the text elements) like this (source). There are even more powerful layouts like the <wrappinglayout/> that work like this (source). [Try resizing the window -- it's very xmasy!]
Another way to make a text element with two different colors is to change the colors with html, using <font color="#ff0000"> tags in the text, like this (source).
-Don
-
Declaring layouts in OpenLaszlo
Assuming that you used two different text elements, each with its own fgcolor, then my guess is that you need a layout to position the text objects one after the other -- otherwise they all are positioned at x="0" y="0" by default, so they overlap like this (source).
You can put a layout element into a canvas or view, like <simplelayout axis="x"/>, and it magically positions its siblings (the text elements) like this (source). There are even more powerful layouts like the <wrappinglayout/> that work like this (source). [Try resizing the window -- it's very xmasy!]
Another way to make a text element with two different colors is to change the colors with html, using <font color="#ff0000"> tags in the text, like this (source).
-Don