Tuesday, July 27, 2004

Toyota Patents Winking, Laughing, Crying Car

From the sublime to the ridiculous...

"The expression "road rage" usually refers to infuriated drivers who lose their temper and lash out at other motorists. But what if a car could also express anger, crouching low on its wheel base and glowering with red headlights like a lion about to pounce?

Four inventors working for Toyota in Japan have won a patent for a car that they say can help drivers communicate better by glaring angrily at another car cutting through traffic as well as appear to cry, laugh, wink or just look around."

more...

Monday, July 26, 2004

Bob the Angry Flower

My woo woo freaky post for today is about my absolute favourite online comic, Bob the Angry Flower (BtAF to his friends).

Ever since I was pointed in Bob's direction a year or so ago, I've been hooked. All I can say about Bob is that he does things of mammoth scale and minute scale with the same intensity, and that he does crazy things because he has to, because they are there.

Here... the latest Bob is a classic:
http://www.angryflower.com/hailin.gif

Eyes!

Sunday, July 25, 2004

Plants as Speakers

Ok, I'm working up to making a commitment to post something crazy every day. Here's today:

Singing Japanese plants

Tue Jul 20, 6:45 AM ET

TOKYO (Reuters) - People who like talking to their plants can now enjoy a musical accompaniment, thanks to a Japanese invention that turns petals and leaves into amplifiers.

Called the "Flower Speaker Amplifiers", the gadget made by Let's Corp is hidden in a vase or a potted plant and sends music at just the right frequency to vibrate up the stems and then be converted into audible sound by the plant as a whole.

A device such as a CD player or radio can be connected to it.

"Anywhere where you would want music naturally integrated with a natural surrounding," said Hirohiko Okugawa, a manager at Let's, referring to locations for the device, which he expects it to be popular for hotels and hospital lobbies.

The inventor of the gadget, Keiji Koga, said: "We are finally able to experience plants and flowers with all five of our natural senses."

The firm expects to begin selling the speakers by mid-August for 5,000 yen (24.8 pounds) to 50,000 yen depending on the plant's size. And according to Koga, music is also good for the plants, which are invigorated by the constant musical vibes.


Friday, July 23, 2004

ADUG: Automated Testing Software

On the ADUG list (Australian Delphi Users Group), Mathias Burbach just hassled me, and rightly so, as follows:

Emlyn wrote:
>Quite a while back I posted a method of testing Modal dialogs on the
>adug list; it doesn't require a new thread, just a mechanism to get
>the winproc processing messages again for the main form, which can be
>done with timers and some tricky footwork. Does anyone have that post
>archived?
>
>
What about publishing it on the past meetings page of Adelaide [as
promised in September 2003: "Presentation Source: Coming Soon" ;-) ]?


How hopeless am I? No, don't answer that. TODO... assemble some of that dunit goodness, especially regarding testing modal forms, and get it onto the ADUG site.

Idea - thRAD!

This idea is a collaboration between a collegue (Jon Roder) and myself. With any luck we can actually realise it!

Jon's an expert on threads in Delphi, and has put together a special thread class which has its own message processing loop. This is a good thing in windows, it gets around the fundamental mismatch between the Windows application model and the multithreaded process model.

I'm a big fan of RAD in the Delphi environment, and have had the idea of creating a component which kicks off a new thread for you, and instantiates a RAD developed object collection (eg: a Datamodule with design time components on it) in the context of that thread. Using Jon's message-queue enabled threads for this job lets these datamodules run in their own threads and receive windows messages, which is extremely powerful. Throw in a few components for really simple inter-thread communication (object queues going from one thread to another, object "sacks" which are mutex protected, etc) and you get an awesome, very close to zero code, multi-threaded application library.

So if, for example, you've got a GUI being managed by the main VCL thread, but you want to do database communication in another thread (because it might be slow), and you need a safe way to communicate with the main thread, this library of components would enable you to do it in minutes in a drag and drop fashion. That, my friends, is the shit!

It's threads, it's RAD, it's thRAD, and it's coming soon...

Idea - Object Bus

I'm going to blog funky ideas that I have as they occur to me, otherwise I forget them. If you like them so much that you want to use them for yourself, go for it, I'd be honored. Just make sure you don't exclude me from using them also through legal mumbo jumbo, because that's not okay, okay?

Okay, the first one I'll blog is my "object bus", for want of a better term.

Motivation:
I'm an application developer by profession, working in the microsoft environment on mostly database apps, mostly using Borland's Delphi.

I'm also very keen on agile processes, and basically building business/enterprise apps quickly, focussing on the business need and not on the plumbing - really, we've been doing this stuff for long enough that the plumbing shouldn't be an issue anymore.

My default architecture these days for distributed apps (not highly distributed, just stuff that wants a few tiers and a few machines) is to make lots of little pieces, each as simple as possible, which communicate via the database. It works, it's not too bad, but it really is using a database for something that it's not really designed for (communication).

There are many options for interprocess communication and data persistence these days, but it's still a heterogeneous mish-mash, so that if you want to write a conceptually simple distibuted, database backed system, you have to reinvent the wheel a lot, and stuff around trying to work out where your data will live, how the bits of your application will talk to each other, yada yada. What a bore!

Anyway, in that light, I want to create some kind of general purpose "thing" which allows systems composed of many small parts to persists information, communicate (in guaranteed ways), and generally "talk", in a homogeneous fashion, really simply. I think it would enable a level of RAD in n-tiered / distributed business systems which would increase their production & reliability by an order of magnitude, just by simplifying development. In my experience, complex systems lead to many more problems than simple ones.

The Idea:
I want pieces of distributed systems to "talk" on a kind of bus, ie: they put info in, and anyone interested can get it out. This gets broken down into volatile communication (I put info in, someone else signs for it and takes it out, it's delivered and thus gone), and persistent communication (I put info in, it goes into a store of some kind, others access it as desired).

I'm thinking the basic units of communication will be objects, probably encoded in XML. So we are sticking objects onto the bus, and pulling objects off the bus. Actually, no code goes with the objects (the receiver must know what to do with the object) so it's technically just structured data, but that's ok. Maybe a future version would include shipping code around, but I'd like to stear clear of that for now.

Some jumbled points about this bus:
- Callers talk to something local to the machine; the distributed nature of the bus is hidden from them.

- The bus is partitioned into "spaces" (ala spaces in Java); you put your objects into a space, access objects in a space, take objects out of a space.

- Security, at least initially, would happen at the level of spaces.

- Inside a space, you have object collections (just a neutral term for it for now). These are like tables in a relational db, with an associated schema, a name, and a collection of objects that fit the schema. When you put an object in a space, you choose the collection for it to go into.

- The whole thing should be easy from the developer's point of view - it should just go. For instance, when putting an object in, there might be a "create" parameter which causes the requested space and collection to be created (based on the object) if it is not already extant. Things should always lean this way - try to do what the developer wants, don't just throw errors, but tempered with still ensuring that a caller who wants the safety of requiring schemas to be present, etc etc, can get that.

- Under the covers, the system is inspired by p2p systems, each machine talking to which ever other ones can be seen. The machines should still be invisible to the application layer. So adding a new machine to the mix should be as simple as installing the software, then pointing the machine at one already in the system and saying "set yourself up like that one".

- There are probably two basic classes of machine in the p2p environment; clients and servers. Clients are transient members, Servers are permanent members. You wouldn't do anything requiring persistence on a client, for instance. Servers might want a bit more hand setup than clients.

- Persistence might be provided under the covers by a relational db or some such. You should be able to have alternate mechanisms for all required bits of the system, and swap them in/out as desired.

- There might be a one machine only version of the system (good starting point) as well as more complex networked machines. The app should not be able to tell the difference!

- For communicating, many protocols should be available, and the two directions between two machines should be able to be assymetrical (and always asynchronous). To the app this is invisible.

- Spaces and object collections in spaces should be mapable by admins in big setups, so that a space named "x" on one box is equivalent to a space named "y" on another. That way, apps can be hooked together like lego without being designed as such.

- There should be a high tolerance for mismatching schemas in object collections, with every effort taken to squeeze a square block into a round hole. It must just work!

Well, there's a start.

Thursday, July 22, 2004

Rhombic Triacontahedron -- from MathWorld

Actually, this is the page that I meant to post. Rhombic Triacontahedron and Rhombic Hexecontahedron - they're what I was thinking of...

Rhombic Triacontahedron -- from MathWorld

Cool maths tool

This site has all kinds of awesome stuff about maths, including something that I saw there the other day on regular shapes made of golden rhombuses. Goes with the previous post...

--

What is QuickMath?

QuickMath is an automated service for answering common math problems
over the internet.
Think of it as an online calculator that solves equations and does all
sorts of algebra and calculus problems - instantly and automatically!

When you submit a question to QuickMath, it is processed by
Mathematica, the largest and most powerful computer algebra package
available today. The answer is then sent back to you and displayed
right there on your browser, usually within a couple of seconds.

Best of all, QuickMath is 100% free!

------------

Free Mathematica for the masses!
I don't want to see anymore misplaced decimal points now. All
speculative calculations
are now expected to be within at least 10^3 of the correct answer. :)

BillK"

eMachineShop - Online Machine Shop - with FREE CAD Software

Another blow-your-mind moment. Get one-off parts or small runs quickly and easily at the site below. Note that when I say "parts" I mean 3D objects, pretty much whatever you can imagine (and design on the free design software). I have an idea for a toy which might just get realised this way...

eMachineShop - Online Machine Shop - with FREE CAD Software: "Welcome to eMachineShop - where you can design, price, and order your custom parts online!
eMachineShop is the remarkable new way to get the custom parts you need. Download our free software, draw your part, and click to order - it's that easy! Your part will be machined and delivered. Even better, your cost is low due to the Internet, software, and automated machines."

Hint for a trivial mod to boost IQ

Today@UCI: Press Releases: "Human intelligence determined by volume and location of gray matter tissue in brain

Single intelligence center in brain unlikely, UCI study also finds

Irvine, Calif. , July 19, 2004
General human intelligence appears to be based on the volume of gray matter tissue in certain regions of the brain, UC Irvine College of Medicine researchers have found in the most comprehensive structural brain-scan study of intelligence to date."

Wednesday, July 21, 2004

Inmate-Connection: Prisoners Seeking Pen Pals.

This site totally blew my mind - the internet is *such* a big place. Cruise through the lists of inmates seeking correspondents; while many are looking for people of the opposite sex to start a relationship with, some seem to really be looking for friends (some of these people are serving very long sentences). Its an incredibly sad experience to read the autobiographical blurbs; their loneliness is so very tangible. Some of these people are also clearly quite thoughtful and intelligent.

Inmate-Connection: Prisoners Seeking Pen Pals.: "Welcome to Inmate-Connection.com, A website dedicated to those serving time in U.S. Prisons and in prisons worldwide. Through this site we hope to bring friendship, love and laughter to lonely prisoners who are locked away from society. It is a known fact that 90% of inmates lose all contact with family, friends and loved ones after 3 years. They also lose all contact with the outside world. They often feel loss of independence, character, dignity, self-worth and self-respect. A letter, a card and a friend can lift their spirits in ways we could never imagine. Ever wonder what it's like living in Jail? A common misconception is that prison is like a resort. Try this out: For a real taste of prison life, try living 23 hours a day in your bathroom. Remove everything but the toilet, use the bathtub as a bed, lock the door, and make yourself comfortable. With all of that in mind, we sincerely hope that you will consider making contact with an inmate listed on our site today. "

Moon landing anniversary

Eliezer wrote on the Extropians list:

"35 years ago today, on July 20th 1969, humans walked on the Moon.

http://spaceflight.nasa.gov/history/apollo/apollo11/index.html

Let's hope it wasn't our all-time high point."

Audio interview with Steve Mann

From Betterhumans.com, a link to a nice radio interview with Steve Mann. A bit slack on the detail, but includes a little meat on "suveillance":


"Part Man, Part Machine: Engineer Could Be First 'Cyborg'
http://www.npr.org/features/feature.php?wfId=1966476
NPR's Andrea Seabrook talks to Steve Mann, the computer science engineer in Toronto who may be the world's first 'cyborg.'"

First Post

This is the first post in my new blog. Unlike previous efforts (eg my Delphi.Net blog), this one is a general purpose blog mostly about my online life and the stuff I come across that I think is interesting. It should be pretty fun; the internet is a damned crazy place nowadays!