Why did I not do this earlier? Flickr.
Posts tagged as “Webworks”
SO I've updated Studio Sandi once again including shots of more paintings, including a new shot of Earth Flower which really shows off her new faux stone frame style:
Go check it out!
Go check it out!
SO as some of you know I just moved to California to start work with some search engine company that starts with a G. They're fun but kind of skulky so I won't tell you what I'm doing other than to admit, well, no, this isn't really My First Search Engine.
My first job working for a search engine company was as a consultant for the ELITE project, an innovative federated search engine design out of Emory University that was far ahead of its time. The ELITE vision - to enable all sites to both contribute to and benefit from search by making them both publishers and clients in a hierarchical chain of search engines - has still not been realized, resulting in massive inefficiencies and redundancies throughout the web as search engines process and regurgitate what web sites ought to be telling us directly.
The next was as one of the founders of Enkia, an applied artificial intelligence research company that turned its eyes to the web with a search product, Enkion, based (in part) on my thesis research and commercialized by the hard work of a team of sharp guys from Georgia Tech and elsewhere. The Enkion found information relevant to your immediate context, using feedback from what you were doing. We did well, even landing one big contracts before the Internet was pulled out from beneath us. Oh well.
SO I spent some time in industry ... first in police software, then in public health. All that was well and good, but I wanted to get back to research. Back to information retrieval. Back to artificial intelligence. Which led inevitably forward, to some search engine company that starts with a G. Will we be able to make a difference this time? Will we be able to make an advance that will stick?
Hey. Third time's the charm.
-the Centaur
My first job working for a search engine company was as a consultant for the ELITE project, an innovative federated search engine design out of Emory University that was far ahead of its time. The ELITE vision - to enable all sites to both contribute to and benefit from search by making them both publishers and clients in a hierarchical chain of search engines - has still not been realized, resulting in massive inefficiencies and redundancies throughout the web as search engines process and regurgitate what web sites ought to be telling us directly.
The next was as one of the founders of Enkia, an applied artificial intelligence research company that turned its eyes to the web with a search product, Enkion, based (in part) on my thesis research and commercialized by the hard work of a team of sharp guys from Georgia Tech and elsewhere. The Enkion found information relevant to your immediate context, using feedback from what you were doing. We did well, even landing one big contracts before the Internet was pulled out from beneath us. Oh well.
SO I spent some time in industry ... first in police software, then in public health. All that was well and good, but I wanted to get back to research. Back to information retrieval. Back to artificial intelligence. Which led inevitably forward, to some search engine company that starts with a G. Will we be able to make a difference this time? Will we be able to make an advance that will stick?
Hey. Third time's the charm.
-the Centaur
Well, not really. But then, he never claimed he did - he claimed that, in Congress, he "took the initiative in creating" it. And what do you know? According to the "father of the Internet" Vint Cerf, he did.
I suppose this is old news to most people. But I still got a chuckle when I ran across this site yesterday ... and learned that the "Al Gore Invented the Internet" story was cooked up by a historian and reporter and blown out of proportion by the media, and in the end is a bigger fabrication than what he actually said on March 9, 1999:
Now is that "a whopper of a tall tale in which he claimed to have invented the Internet," or a simple statement that was grossly distorted? You decide.
-Anthony
"No other elected official, to our knowledge, has made a greater contribution over a longer period of time ... As far back as the 1970s Congressman Gore promoted the idea of high speed telecommunications as an engine for both economic growth and the improvement of our educational system ... Our work on the Internet started in 1973 and was based on even earlier work that took place in the mid-late 1960s. But the Internet, as we know it today, was not deployed until 1983. When the Internet was still in the early stages of its deployment, Congressman Gore provided intellectual leadership by helping create the vision of the potential benefits of high speed computing and communication ... No one in public life has been more intellectually engaged in helping to create the climate for a thriving Internet than the Vice President."
I suppose this is old news to most people. But I still got a chuckle when I ran across this site yesterday ... and learned that the "Al Gore Invented the Internet" story was cooked up by a historian and reporter and blown out of proportion by the media, and in the end is a bigger fabrication than what he actually said on March 9, 1999:
I'll be offering my vision when my campaign begins. And it will be comprehensive and sweeping. And I hope that it will be compelling enough to draw people toward it. I feel that it will be. But it will emerge from my dialogue with the American people. I've traveled to every part of this country during the last six years. During my service in the United States Congress, I took the initiative in creating the Internet. I took the initiative in moving forward a whole range of initiatives that have proven to be important to our country's economic growth and environmental protection, improvements in our educational system.
Now is that "a whopper of a tall tale in which he claimed to have invented the Internet," or a simple statement that was grossly distorted? You decide.
-Anthony
...though Bloglines users are reporting problems with the fanu fiku atom
feed. More in a bit.
-the Centaur
Hoo-rah. Finally got this working right. Check the Feed Validator Results out! The feed itself is at:
http://www.fanufiku.com/atom.xml. Some interesting programming lessons were learned during this. More in a bit.
-the Centaur
http://www.fanufiku.com/atom.xml. Some interesting programming lessons were learned during this. More in a bit.
-the Centaur
Today's Wikipedia featured post is about anarcho-capitalism, the idea that we should do away with a compulsory state in favor of a society of individuals freely entering into contracts, which would subsume the role of the state while respecting each individual's sovereignty.
While I personally am not convinced we should give up on the umbrella of state as long as we live in a rain of competing states, hostile ideologies and national disasters, the anarcho-capitalist Non-Aggression Axiom and its corollary, The Prohibition of Initiation of Force, are two maxims I try to live and judge by.
Interestingly, though, I think the Wikipedia could be seen as a product of an opposite stance, that of the free software movement, whose ultimate goal would be to eliminate software as property through a compulsory government which disallowed certain kinds of contracts.
Certainly that's not very anarcho-capitalist in its reliance on the state. However ... the minds behind the GPL aren't dumb guys (with a few exceptions), and the GNU General Public License is a great example of how anarcho-capitalism and free software can work together.
In an anarcho-capitalist world, everyone that drank the GPL Kool-Aid would get the whole benefit of the free software world; people entering into non-free contracts would lose out because the "hidden costs" of enforcement built into our traditional intellectual property law would be spelled out, in the open, in the contract.
And if people actually saw what intellectual property law really cost them, no-one would swallow it.
-the Centaur
While I personally am not convinced we should give up on the umbrella of state as long as we live in a rain of competing states, hostile ideologies and national disasters, the anarcho-capitalist Non-Aggression Axiom and its corollary, The Prohibition of Initiation of Force, are two maxims I try to live and judge by.
Interestingly, though, I think the Wikipedia could be seen as a product of an opposite stance, that of the free software movement, whose ultimate goal would be to eliminate software as property through a compulsory government which disallowed certain kinds of contracts.
Certainly that's not very anarcho-capitalist in its reliance on the state. However ... the minds behind the GPL aren't dumb guys (with a few exceptions), and the GNU General Public License is a great example of how anarcho-capitalism and free software can work together.
In an anarcho-capitalist world, everyone that drank the GPL Kool-Aid would get the whole benefit of the free software world; people entering into non-free contracts would lose out because the "hidden costs" of enforcement built into our traditional intellectual property law would be spelled out, in the open, in the contract.
And if people actually saw what intellectual property law really cost them, no-one would swallow it.
-the Centaur
Alternate host for the emergency page is the The Loyolian, which hopefully will have more information soon.
-the Centaur
-the Centaur
To help cope with the disaster in New Orleans, I'm hosting the Loyola University New Orleans Emergency Webpage, provided and maintained by old friend Shannon Duffy, now a Loyola prof. Loyola students, check it out.
For everyone else, there's the Red Cross. Do your civic thing.
-the Centaur
For everyone else, there's the Red Cross. Do your civic thing.
-the Centaur
Well, the wiki is down again. Some idiot with a spambot corrupted all the pages - and when I tried to correct them, it appeared like the pages changed back to spam as fast as I corrected them. So it's down. Up again soon, I hope. If only I'd written down all those cool things Bolot showed me ... oh, wait, I did :-)
-Anthony
-Anthony
My honey Sandi Billingsley has a new showing of art at the Lambert Gallery. The Solstice show looks like it's going to be pretty interesting ... Sandi's new faux stone frames go well with her sanded style of art, and much of the other art looked interesting too. Check it out this Friday at Lambert!
-the Centaur
-the Centaur
I found the following draft deep in my Blogger archives - from almost three years ago, in fact! I don't remember precisely what was really irritating me, so I can only attempt to finish the article; regardless, here's my best bet of reconstructing what was bothering me.
I started worrying when restrictions were clamped down on Chinese blogs on top of the already restrictive Great Firewall:
My next, knee-jerk comment was: "I know, you think, that's just China. Nope:"
My next thought was "Of course, many of you may be thinking, this can't happen here." Feh:
Let's see, where was I? OK, next I was planning to talk to the script kiddies, free downloaders and open source zealots: "you think they can't get you." Wrong again:
Best of luck getting that principle to work when someone else with more money or who feels their power is threatened decides YOU're the one doing something they don't like. Wake up, people. All the things you don't want to see, or want to see happen to other people you don't like: guess what, they can happen to YOU.
The only thing historically that has served to stop these atrocities (big and small) from happening is to push extremely broad protections down to the fricking constitutional level and then to stand by them even when they prove inconvenient for your wallet or sense of security.
-the Centaur
I started worrying when restrictions were clamped down on Chinese blogs on top of the already restrictive Great Firewall:
BBC NEWS | Technology | Chinese blogs face restrictionsI was really worried that this would get worse over time. At my 50,000 foot view, I think this fear turned out to be justified.
"The internet has profited many people but it also has brought many problems, such as sex, violence and feudal superstitions and other harmful information that has seriously poisoned people's spirits," said a statement on the MII website, explaining why the new rules were necessary.
It has developed a system which will monitor sites in real time and search each web address for its registration number. Any that are not registered will be reported back to the Ministry, the statement said.
Known as the Great Firewall, the filtering system used by the Chinese government is not entirely unbreachable; for every new restriction and technical door that it slams shut, the Chinese people find a hack, a workaround or an entirely new way of communicating.
But one anonymouse China-based blogger told Reporters Without Borders that when he phoned the MII to register he was told not to bother because "there was no chance of an independent blog getting permission to publish".
My next, knee-jerk comment was: "I know, you think, that's just China. Nope:"
Iran jails blogger for 14 yearsNo fucking spit, that's what they aimed to do. Since I cobbled together my initial notes on this, Iran's and China's ongoing success at keeping a lockdown on their citizenry makes these comments by protesters in the Iran case seem laughable:"By handing down this harsh sentence against a weblogger, their aim is to dissuade journalists and internet-users from expressing themselves online or contacting foreign media."
Yeah, but "the mullahs" want you to know what they're doing so that bloggers in their country will crap your pants and keep their traps shut for fear of losing 20% of their life expectancy to the inside of a totalitarian regime's jail."The eyes of 8 million bloggers are going to be more focused on Iran since Sigarchi's sentence, not less.
"The mullahs won't be able to make a move without it be spread across the blogosphere."
My next thought was "Of course, many of you may be thinking, this can't happen here." Feh:
Apple makes blogs reveal sourcesTalking out of my orifice, it seems to me really odd that in our country the judicary has continued to stretch some concepts to the breaking point --- for example, stretching the definition of "public good" in eminent domain to the point that it covers taking someone's home so a developer can build a new shopping mall --- while others, like the public interest in shield laws, get squeezed out or even thrown out because of little technicalities like the publication being a blog rather than a newspaper. Oh wait, I forgot to follow the money - it no longer seems odd to me now.
In making his ruling, Judge Kleinberg said that laws covering the divulging of trade secrets outweighed considerations of public interest.
California has so-called "shield" laws which protect journalists from prosecution if what they are writing about can be shown to be in the public interest.
The Judge wrote: "...it is not surprising that hundreds of thousands of 'hits' on a website about Apple have and will happen. But an interested public is not the same as the public interest".
Let's see, where was I? OK, next I was planning to talk to the script kiddies, free downloaders and open source zealots: "you think they can't get you." Wrong again:
DVD Decrypter Author Turns Tail, Coughs Up CodeThat left me feeling "Gee, I hope no-one closes off the Internet." But now, a few years later, I find that you can easily look out there and find a lot of people who want it to happen for anyone who's not using the internet just like them:
The DVD Decrypter author has announced that he has been served with an order to cease his development of DVD Decrypter. The developer has been forced to hand over all source code and the domain that he was using. It is thought that it could be Sony who have served this notice, as it is rumoured that he broke their new copyright protection within 72 hours of its release."
Nice. Self-centered idiots irritate the heck out of me. I love reading Mark Cuban and his blog but short of P.Z. Meyers, I can't think of anyone who is more in a need to spend a mile walking in someone else's shoes to understand how insular his point of view is.Why Tiered Broadband is a Wonderful Thing and ASIVS
If the choice is between your being able to download more movies or other video and my getting the best possible speed from my internet connection, I'm thrilled when you get kicked off. It can't happen soon enough. Speed is what I need. Take all your P2P downloads and get the hell off my internet.
I have no sympathy for bandwidth hogs. You all are productivity killers for the rest of us. People who are working, people who are trying to play games, people who are in virtual worlds, people who are networking, people who are just trying to watch a Youtube video or their favorite TV show, you all are the reason why we get incredibly annoyed by slowdowns and buffering.
Leave and take your bit torrent client with you.
Best of luck getting that principle to work when someone else with more money or who feels their power is threatened decides YOU're the one doing something they don't like. Wake up, people. All the things you don't want to see, or want to see happen to other people you don't like: guess what, they can happen to YOU.
The only thing historically that has served to stop these atrocities (big and small) from happening is to push extremely broad protections down to the fricking constitutional level and then to stand by them even when they prove inconvenient for your wallet or sense of security.
-the Centaur
Well, after 8 months, the zeroth chapter of fanu fiku has come to a close.
Breaking my arm was less of a barrier to finishing the story than trying to teach a class at the same time I was prepping for a Mars trip. Life lesson: you can only do so much.
Since the comic is already a month behind my self-imposed schedule, I plan (ha! ha! good one) on rolling into the next issue without delay. fanu fiku issue 1: manifestations will begin next week.
-the Centaur
Breaking my arm was less of a barrier to finishing the story than trying to teach a class at the same time I was prepping for a Mars trip. Life lesson: you can only do so much.
Since the comic is already a month behind my self-imposed schedule, I plan (ha! ha! good one) on rolling into the next issue without delay. fanu fiku issue 1: manifestations will begin next week.
-the Centaur
... the webcomic is grossly delayed. However, while I've been gallivanting around on Mars and teaching my AI course I've also been letting work build up ... and so now I'm prepping some software for the PHIN Conference.
So until that's done, no grading papers, no postproducing webcomics, little to no sketching, and no serious work on Sangreal or OpenAPL. And no karate of any form, though that last bit has more to do with the ongoing pain in my arm than it has to do with any degree of business. Still, grrrr....
Yeah, I hear the 10,000 tiny violins playing. "Things will be better after May 9, I swear it!" At least I'm going to have a house ...
... God willing, of course. Let's hope this one isn't going to fall on my head or anything.
-the Centaur, whiner.
So until that's done, no grading papers, no postproducing webcomics, little to no sketching, and no serious work on Sangreal or OpenAPL. And no karate of any form, though that last bit has more to do with the ongoing pain in my arm than it has to do with any degree of business. Still, grrrr....
Yeah, I hear the 10,000 tiny violins playing. "Things will be better after May 9, I swear it!" At least I'm going to have a house ...
... God willing, of course. Let's hope this one isn't going to fall on my head or anything.
-the Centaur, whiner.
So I'm writing a new sorting function for OIDs. What OIDs are is not important right now ... the important things are that they're strings that hold dot-separated sequences of numbers, like 1.3.6.1 (the Internet OID) and because the sequence of numbers is significant, OIDs cannot be sorted alphabetically (because 1.1 should be followed by 1.2, not by 1.10 as naive alphabetic sorting would imply).
Now, there's a lot to be done to update our software to sort OIDs correctly, but, being trained as an AI programmer, I started by breaking the problem down into its smallest possible parts --- namely, an OID comparison function. And, being a good modern Java programmer, I started with a JUnit unit test which enabled me to check my comparison function.
For those who don't know, JUnit tests are functions in a software module that all start with the word "test", like testLengthOneOIDs or testOIDsVsBlanks. Initially I just had a few handwritten tests - 1 is less than 1.1, which is less than 1.2, which is less than 1.12, which is less than 1.100 but greater than 1.2.1, and so on. These tests are complicated little stanzas of code, and being trained as a good AI programmer, I kept breaking things apart, writing a validateEquality and validateOrdering functions that automatically checked two OIDs for the right ordering. The idea, you see is that once I've written one correct test, I now have a tool to write many more correct tests, and don't have to worry about typos causing failures in later tests.
But still, there were dozens and dozens of cases to test. Then I had a brainflash: rather than writing a whole bunch of tests, one for each pair I wanted to examine, why not write an array with a list of OIDs in the right order (1.1, 1.2, 1.2.1, 1.10, 1.21, 1.30.1, etc) and then write a simple pair of for loops that test each one for the right sequence?
So I did. The outer loop went through every OID in the given list, and the second one went through every OID preceding it in the list to make sure that the comparison worked. That is, for three OIDs, the outer loop would go through items 1, 2 and 3. On the first loop, the inner loop would just go through item 1, but on the second it would go through 1 and 2, and then finally 1, 2, and 3, testing all combinations of OIDs.
SO I wrote that, as well as three or four lists of OIDs. And everything passed with flying colors. So I added that code to my OID utility library, built my sorter exploiting Java's wonderful Collections framework, and sorted the OIDs to call it good. It even ran smoothly at first.
Until I added some new code to do searches. This changed the list of OIDs feeding into my sorting algorithm and --- BOOM! --- Java compains that I'm asking for the fifth item of a four item list. Bad Java juju. What gives?
Well, it's simple. My cute little validateOrdering function should have been called validateLesserThan, because it implicitly assumed that the first OID it was given was lesser and the second OID was greater. However, that test doesn't test all cases of the algorithm --- to do a sort using Java's Collections framework, you need to generate a *numerical* comparision: the compare function is not asking whether a is less than b, true or false, but instead asking for the *sign* of the *difference* --- so that compare of (1,2) is -1, compare of (2,2) is 0, and compare of (2,1) is +1. This is the mathematical signum function.
My test was testing only lesser than and equality --- two branches, not the three branches of the signum. And, sure enough, when I augmented my validateOrdering tester to include a "desired result" parameter so you could specify you wanted lesser-than (-1), equality (0), or greater-than (+1) --- BOOM --- I found an error with my unit tester. When the comparison algorithm checked to see if "1.2.3" was greater than "1", it had an off-by-one error, assuming the second OID had one more element in its list than it actually had. So Java fall down and go boom.
So the POINT? Don't assume. It's a great idea to write unit tests, and an even better idea to make them comprehensive. But when you do so, think carefully about what you're testing --- make sure that you're testing all possible branches of the function at hand, or it may blow up on you later when some new --- possibly entirely unrelated function --- rips the rug of your assumptions out from beneath your feet of clay.
-the Centaur
Now, there's a lot to be done to update our software to sort OIDs correctly, but, being trained as an AI programmer, I started by breaking the problem down into its smallest possible parts --- namely, an OID comparison function. And, being a good modern Java programmer, I started with a JUnit unit test which enabled me to check my comparison function.
For those who don't know, JUnit tests are functions in a software module that all start with the word "test", like testLengthOneOIDs or testOIDsVsBlanks. Initially I just had a few handwritten tests - 1 is less than 1.1, which is less than 1.2, which is less than 1.12, which is less than 1.100 but greater than 1.2.1, and so on. These tests are complicated little stanzas of code, and being trained as a good AI programmer, I kept breaking things apart, writing a validateEquality and validateOrdering functions that automatically checked two OIDs for the right ordering. The idea, you see is that once I've written one correct test, I now have a tool to write many more correct tests, and don't have to worry about typos causing failures in later tests.
But still, there were dozens and dozens of cases to test. Then I had a brainflash: rather than writing a whole bunch of tests, one for each pair I wanted to examine, why not write an array with a list of OIDs in the right order (1.1, 1.2, 1.2.1, 1.10, 1.21, 1.30.1, etc) and then write a simple pair of for loops that test each one for the right sequence?
So I did. The outer loop went through every OID in the given list, and the second one went through every OID preceding it in the list to make sure that the comparison worked. That is, for three OIDs, the outer loop would go through items 1, 2 and 3. On the first loop, the inner loop would just go through item 1, but on the second it would go through 1 and 2, and then finally 1, 2, and 3, testing all combinations of OIDs.
SO I wrote that, as well as three or four lists of OIDs. And everything passed with flying colors. So I added that code to my OID utility library, built my sorter exploiting Java's wonderful Collections framework, and sorted the OIDs to call it good. It even ran smoothly at first.
Until I added some new code to do searches. This changed the list of OIDs feeding into my sorting algorithm and --- BOOM! --- Java compains that I'm asking for the fifth item of a four item list. Bad Java juju. What gives?
Well, it's simple. My cute little validateOrdering function should have been called validateLesserThan, because it implicitly assumed that the first OID it was given was lesser and the second OID was greater. However, that test doesn't test all cases of the algorithm --- to do a sort using Java's Collections framework, you need to generate a *numerical* comparision: the compare function is not asking whether a is less than b, true or false, but instead asking for the *sign* of the *difference* --- so that compare of (1,2) is -1, compare of (2,2) is 0, and compare of (2,1) is +1. This is the mathematical signum function.
My test was testing only lesser than and equality --- two branches, not the three branches of the signum. And, sure enough, when I augmented my validateOrdering tester to include a "desired result" parameter so you could specify you wanted lesser-than (-1), equality (0), or greater-than (+1) --- BOOM --- I found an error with my unit tester. When the comparison algorithm checked to see if "1.2.3" was greater than "1", it had an off-by-one error, assuming the second OID had one more element in its list than it actually had. So Java fall down and go boom.
So the POINT? Don't assume. It's a great idea to write unit tests, and an even better idea to make them comprehensive. But when you do so, think carefully about what you're testing --- make sure that you're testing all possible branches of the function at hand, or it may blow up on you later when some new --- possibly entirely unrelated function --- rips the rug of your assumptions out from beneath your feet of clay.
-the Centaur
I don't go to GDC every year just to futz around hunting old books and new games. Well, maybe I do, but another purpose is science --- extracting information about the state of the science of AI and programming from the giant kettle of effort that is the Game Developer's Conference.
There are a lot of big ideas to come out of the conference --- for example, new games require huge quantities of content and thus new methods and tools are needed to help generate that content. Develop Orthogonal, Interoperable Tools is one pattern to deal with this --- build tools whose parts all work with each other cleanly and flexibly so that a small amount of art and content can be composed together rapidly in many combinations to produce a vast number of different results. The Unreal 3 team demonstrated this idea with their game engine, as to a lesser degree the Halo 2 guys did with their AI.
But this pattern goes hand in hand with Reduce The Cycle Time To Zero. I should have already known this --- my co-workers Henry and Emily and my former boss David Cater have been telling me for years that their biggest win was reducing the compile time loop of their development as close to zero as possible, so that they could make a change, instantaneously see the result, and then make the next necessary change as quickly as possible. Reduce Cycle Time To Zero is critical for rapid development of game content --- to be efficient, artists and level designers need to see the results of their work Right Now so they can make changes As Soon As Possible.
This is now writ large in the Unreal 3 engine, which supports dynamic loading of content and dynamic editing of levels in real time. Artists and level designers no longer need recourse to text files; instead you can wander around in the Unreal 3 world and make all your changes in real time. Move a light --- the shadows move real time. Grab a character by the arm --- see him move around like a rag doll. Tweak the parameters of a particle fountain used to generate a special effect --- watch it change in real time, affecting the lights and the players around it. Heck, it's not even just Unreal 3 --- in a recent Game Developer column the author was hacking together his own game by himself and even HE used dynamic content loading.
So. Reduce cycle time. I can do this. What's one of the biggest bottlenecks in my current development environment? Let's see ... the need to write my Blogger blogs online, or to cut and paste out of another text editor. Hm. How can we make that delay go away, so I can blog thoughts as I have them?
Perhaps with an offline blogging client like w.bloggar (or ecto or the client of your choice).
Let's test that theory. Saving and trying to upload NOW.
OK. So it's not perfect --- I found an error and reposted and ended up with two copies of the same blog. But hey --- it's SOMETHING to be able to use a normal-looking text editor and just hit a button to see it fly up to the server.
-the Centaur
There are a lot of big ideas to come out of the conference --- for example, new games require huge quantities of content and thus new methods and tools are needed to help generate that content. Develop Orthogonal, Interoperable Tools is one pattern to deal with this --- build tools whose parts all work with each other cleanly and flexibly so that a small amount of art and content can be composed together rapidly in many combinations to produce a vast number of different results. The Unreal 3 team demonstrated this idea with their game engine, as to a lesser degree the Halo 2 guys did with their AI.
But this pattern goes hand in hand with Reduce The Cycle Time To Zero. I should have already known this --- my co-workers Henry and Emily and my former boss David Cater have been telling me for years that their biggest win was reducing the compile time loop of their development as close to zero as possible, so that they could make a change, instantaneously see the result, and then make the next necessary change as quickly as possible. Reduce Cycle Time To Zero is critical for rapid development of game content --- to be efficient, artists and level designers need to see the results of their work Right Now so they can make changes As Soon As Possible.
This is now writ large in the Unreal 3 engine, which supports dynamic loading of content and dynamic editing of levels in real time. Artists and level designers no longer need recourse to text files; instead you can wander around in the Unreal 3 world and make all your changes in real time. Move a light --- the shadows move real time. Grab a character by the arm --- see him move around like a rag doll. Tweak the parameters of a particle fountain used to generate a special effect --- watch it change in real time, affecting the lights and the players around it. Heck, it's not even just Unreal 3 --- in a recent Game Developer column the author was hacking together his own game by himself and even HE used dynamic content loading.
So. Reduce cycle time. I can do this. What's one of the biggest bottlenecks in my current development environment? Let's see ... the need to write my Blogger blogs online, or to cut and paste out of another text editor. Hm. How can we make that delay go away, so I can blog thoughts as I have them?
Perhaps with an offline blogging client like w.bloggar (or ecto or the client of your choice).
Let's test that theory. Saving and trying to upload NOW.
OK. So it's not perfect --- I found an error and reposted and ended up with two copies of the same blog. But hey --- it's SOMETHING to be able to use a normal-looking text editor and just hit a button to see it fly up to the server.
-the Centaur
... so sue me. Or just subscribe to the Library of Dresan
RSS Feed.
Actually technically it's an Atom feed, but, hey, they're all the same to SharpReader.
Ok, so now I have to upgrade my Python webcomic script to produce an XML site feed, which I suppose means I have to add XML support to Sangreal for when I switch the script over to Sangreal. Rassen frassen ... yes, I *do* plan to join the 21st century, give me a break...
RSS Feed.
Actually technically it's an Atom feed, but, hey, they're all the same to SharpReader.
Ok, so now I have to upgrade my Python webcomic script to produce an XML site feed, which I suppose means I have to add XML support to Sangreal for when I switch the script over to Sangreal. Rassen frassen ... yes, I *do* plan to join the 21st century, give me a break...
And now a test of the dresan.net Wiki ... enjoy.
OK, now we've lit this candle. This isn't the permanent form of this weblog --- I've allocated the site and software for a full-blown wikiblog upcoming soon --- but at least now the blog and the hand-generated site are integrated, and I can post at the click of a button. Woo hoo!
And to tide you over, here's a pointer to where I get my physics news.
And to tide you over, here's a pointer to where I get my physics news.