I wrote a fractal planet surface generator in java. It spat out a gif image 2000 pixels by 1000 pixels, doing about 8 floating point operations on each pixel... so ~ 16,000,000 operations, not counting the gif encoding.
The whole thing ran, from scratch, on my ancient 450Mhz PIII in *under* a second.
But loading the resulting gif into a paint program to look at it was a pain... so I added a swing display class...
Suddenly it took ~ 5 seconds to run!
So I trimmed code, until I was back to a 'hello world' program in swing. ~ 3 seconds.
This is generally my experience; java is reasonably quick for data processing (not ultra-quick, but not too bad), but Swing and the GUI stuff let it down big time. I've heard IBM's swt stuff is good, but haven't tried it.
Oh yeah, and most of the article seems like bullshit. I've seen bulk benchmarks showing the opposite of what this guy says, and I'm too old to believe proofs by assertion any more.
Sounds like our American friends pinching the
credit for being first in something again:-)... AFAIK the first working, widely used industrial standard (discounting myths about Roman roads etc.) was the Whitworth thread, or "British
Standard Whitworth" (still in use today) from Sir Joseph Whitworth in 1841. Standards in screw threads made possible
huge simplifications in industrial processes.
Before this time standards and interchangeable
parts were almost impossible, because craftsman
made parts 'to fit'. (The parrallels with
computer programming today are striking:-) ).
A nice article about how the Americans then decided
to reinvent their own standard at wired:
Turn of the Century
The story is that the whole thing was kicked
off to a large extent by the mass manufacturing
needed to create the Babbage engine, and
Whitworth's experiences working on it...
Babbage and Whitworth and machining and stuff
O.k., coming in a little late to this discussion after making sure it was o.k. with my corporate masters:-).
The Java ldap browser I wrote is available for free download from Computer Associates. It comes with a Windows Install Version and a
Solaris Tar file. (Being java you can probably persuade it to run under linux, but I've had trouble with Swing and linux, so no promises. If you can get it going, it runs about 4 times as fast as under windows though...:-)
Quick Feature List
Supports SSL and SASL
saves/imports ldif files
Pluggable architecture
User customisable display via html forms
i18n support
yada yada yada... it does heaps.
... and kudos to my company CA for making it
available for free download (normally it's
packaged with our 'eTrust Directory' X500/ldap
directory, which is pretty darn neat, but is
*not* a free download:-)!
Unfortunately this is not (yet) an open source
product, but if anyone uses it, finds it helpful, and writes to me, I'll have a better chance of
persuading people here to make it so...
A bit surprised to hear that 'Hierarchical databases
were blown away by relational versions' - since I'm
pretty sure they've been paying my pay check for the
last three years...:-)
There are a large number of heirarchical
databases out there. The big fellas are the
X500 directories (X509 certs came out of this
work). More common are X500's demented kid
sisters, the LDAP directories
(
rfc2251). The DNS system also fits the
description 'heirarchical database'.
As far as XML goes, there are people
storing XML in directories - although they're
still fussing about exactly how to do it.
There are a bunch of people trying to come up
with standards - check the directory services
markup language people
www.dsml.org.
There are people trying to sell XML enable
directories - Novell sells an XML directory,
but most directories can be used to store
XML (including our 'eTrust Directory').
As a final quicky - when do you use a directory
over an RDBMS? Directories are good for
naturally heirarchical data with few cross
connections. They are usually optimised for
slow writes/fast reads. They are *very* good
for distributed data (e.g. DNS, international
organisations etc.). The X500 spec defines a
very fine grained security model, which can
also be useful. However, if your data is
closely cross-linked with lots of relationships...
well, use an RDBMS!
Self assembly is how the body builds a lot
of its internal structures. I did a bunch of
work on this in my doctorate - basically you
can get some reasonably complex structures
(e.g. a virus shell) from a small set of
repeating sub-units.
One of the common structures found in all
cells are 'micro-tubules' - long cylinders made
of repeating tiles of a protein called,
imaginatively, 'tubulin'. They look a bit like
a coil of rope; technically it's most common
form is a '4-start, 13 unit helix'.
Now the place these protein structures are
found *most* commonly is in neurons, which are
crammed to the gills with these things. And
there is a (way-out, whacky, widely discredited,
completely batshit, but still very cool) theory
that the way our brains actually work is not just
at the synapse level, but at the sub-cell level
using these microtubules. (This would add maybe
another 5 orders of magnitude to the available
computing power of the brain if it were true;
these suckers are small and there's *heaps* of
'em!).
The idea (and it keeps cropping up in papers
'cause it's just so appealing:-) ) is that
computations can be done using a 'game of life'
like system of electical charges on the outside
of the microtubule, where each unit adops an
electric polarity, and then 'flips' it's
neighbours depending on a simple set of rules.
It's a very cute idea, completely lacking in
anything so crass as experimental evidence.
These days of course no one believes a word
of it.
<false modesty>For some dodgy work on
nanoscale self-assembly, and for some half
decent pictures of microtubules, check out my
thesis at
nanoscale simulation
</false modesty>
...in fact the 3D version is simpler to
implement than the 2D version - you just plot
your triangles on a 2D grid, with the value
at each grid position being the terrain height.
Because the X,Y positions of your points are
intrinsic in the 2D grid, you don't have to faff
around trying to keep linked-list objects or
anything.
I agree with the intent, but the publishing
biz isn't quite such a gravy train. While some
bits are outrageous (i.e. charging researchers
$1500 to print a colour photo in a bio journal),
I've got a friend in the biz and they *do* have
considerable overheads.
Paying Editors/Proofreaders/Typesetters
Organizing/Chasing reviewers (who are always
late)
Arbitrating the inevitable reviewer/writer
disputes
...
Actually, I think this is why the web will
end up dominent - while the big journals certainly
make huge sums, there are a large number of
smaller journals that are always on the brink
of collapse, and who rely very heavily on
volunteer labour - and there are even more
journals that are actually run by academics
themselves, and which go under when the
academics lose interest, or when the money dries
up.
Anyway, I put my thesis
on the web rather than publish it. It was
already 'peer reviewed' by my examiners, and
would get read far more than if it was in a
library, or sitting in a back issue of the
'East Woolamulla Journal of Nanotechnology and
Sheep Farming'.
Re:there's an argument to be made....
on
More On Tragedy
·
· Score: 1
During hostilities involving one of your allies, you have an intelligence-gathering ship off-shore, feeding information to another one of your allies. That second ally, in turn, feeds that information to the enemy of your first ally. The first ally then proceeds to attack and disable your ship, killing scores of her crew. Do you cry out for retribution while it is shown how you're not as good an ally as you should have been (helping their enemies shoot their planes from the sky), or do you sweep it under the rug as a misunderstanding, outraging survivors of the attack?
... and the usual explanation is not that the NSA
were leaking info, but that the Israelis wanted
to cover up the extent of their military
success, and how deeply they were penetrating
into the countries which had attacked them.
Check 'The Puzzle Palace' by James Bamford,
although it sounds like even more evidence has
come to light since then. The bit where the
Israelis machine gunned the life boats (as
described by the US sailors on board; we're
not talking arab extremists here) makes
exceptionally fine reading.
Yup - this is a false alarm I'm afraid. I was at
the S11 protests last year; it was a series of
fairly peaceful demonstrations here in Melbourne,
Australia, protesting against globalisation.
There was a big world trade organization summit
on at the local casino. Think
a much quieter version of Seattle:-).
As far as the site goes, it was set up
a few months before Sept 11, 2000 to co-ordinate the various protest groups, street theatre,
marches 'n stuff. It went pretty quiet after the
demos, but may have got a little busier a few
weeks ago as a small "remember S11" aniversary
protest was planned (outside the Melbourne Nike
store, I think).
Anyway, s11.org is a pretty harmless group,
mainly uni students and young social activists.
So please not to be nuking Melbourne on the
off chance we're harbouring terrorists:-)....
Actually, Scientific American (amongst others)
regularly run 'Secret of Damascus Steel
Discovered' stories. I think I've seen three in
Sci. Am. over the last twenty years - the
immediately previous ones were a bunch of
Russians in the '80s who were going to use it to
make tractor blades:-).
It seems to be one of those 'discoveries'
that crops up every five or ten years.
However maybe this time they've got it right!
This is pretty much right. I do a lot of work
on X500 / ldap / security, and ASN1 is used
throughout all this. It does a pretty good job,
but as the poster points out, the ITU is a completely brain damaged relic of the sort of big
company old boys club that used to make standards.
It's very difficult to get info out of them.
(Once you get it though, it's usually pretty
thorough!)
As for the 'compression', well, yes, it sorta
would be shorter under many circumstances.
ASN1 uses
pre-defined 'global' schema that everyone is
presumed to have. Once (!) you've got that
schema,
subsequent messages can be very terse. (Without
the schema you can still figure out the structure
of the data, but you don't know what its for). For example, I've seen people try to encode X509
certificates (which are ASN.1) in XML, and they
blow out to many times the size. Since each
'tag equivalent' in ASN.1 is a numeric OID
(object identifier), the tags are usually far
shorter than their XML equivalents. And ASN.1
is binary, whereas XML has to escape binary
sequences (base64?).
But yeah, ASN.1 is a pain to
read. XML is nice for humans, ASN1 is nice
for computers. Both require a XML parser/
ASN.1 compiler though. ASN.1 can be very
neat from an OO point of view, 'cause your
ASN.1 compiler can create objects from the
raw ASN.1 (a bit like a java serialised
object). But I can't see ASN.1 being much
chop to compress text documents, there are
much better ways of doing that around
already (and I thought a lot of that stuff
was automatically handled by the transport
layer these days?)
And just for the record... the XML people
grabbed a bunch of good ideas from ASN.1, which
is good, and
LDAPs problems are more that they screwed up
trying to do a cut down version of X500, than
that they use ASN.1:-)!
Oops. Actually the link is
pegacat.com/cbetts/phd. *blush*.
- Chris
"How come we never think of things like that?"
"I guess it's because our minds are too highly trained"
It's a bit of a long shot, but I'm graduating with my PhD "Nanosimulation of the Cytoskeleton" - basically a big sim program of how nanometer scale thingumies can self-assemble - next week...
Still I guess I'm graduating in 'computer science' rather than 'Nanotechnology'...
- Chris Betts
P.S. Shameless plug: 'most' of it's on the web pegacat.com/phd
I wrote a fractal planet surface generator in java. It spat out a gif image 2000 pixels by 1000 pixels, doing about 8 floating point operations on each pixel... so ~ 16,000,000 operations, not counting the gif encoding.
The whole thing ran, from scratch, on my ancient 450Mhz PIII in *under* a second.
But loading the resulting gif into a paint program to look at it was a pain... so I added a swing display class...
Suddenly it took ~ 5 seconds to run!
So I trimmed code, until I was back to a 'hello world' program in swing. ~ 3 seconds.
This is generally my experience; java is reasonably quick for data processing (not ultra-quick, but not too bad), but Swing and the GUI stuff let it down big time. I've heard IBM's swt stuff is good, but haven't tried it.
Oh yeah, and most of the article seems like bullshit. I've seen bulk benchmarks showing the opposite of what this guy says, and I'm too old to believe proofs by assertion any more.
Sounds like our American friends pinching the credit for being first in something again :-)... AFAIK the first working, widely used industrial standard (discounting myths about Roman roads etc.) was the Whitworth thread, or "British
Standard Whitworth" (still in use today) from Sir Joseph Whitworth in 1841. Standards in screw threads made possible
huge simplifications in industrial processes.
Before this time standards and interchangeable parts were almost impossible, because craftsman made parts 'to fit'. (The parrallels with computer programming today are striking :-) ).
A nice article about how the Americans then decided to reinvent their own standard at wired: Turn of the Century
The story is that the whole thing was kicked off to a large extent by the mass manufacturing needed to create the Babbage engine, and Whitworth's experiences working on it... Babbage and Whitworth and machining and stuff
In case these haven't already been posted: the story in detail (as part of an interview with the pilor) is available at aero-news.net
The reason everyone likes Tesla is that he made big sparky things. BIIIIG sparky things. That went *ZOT* *CRACKLE* *FOOM*.
And lets face it, every good geek has a secret desire to build a giganti-bloody-normous tesla coil in their back yard.
O.k., coming in a little late to this discussion after making sure it was o.k. with my corporate masters :-).
The Java ldap browser I wrote is available for free download from Computer Associates. It comes with a Windows Install Version and a Solaris Tar file. (Being java you can probably persuade it to run under linux, but I've had trouble with Swing and linux, so no promises. If you can get it going, it runs about 4 times as fast as under windows though ... :-)
Quick Feature List... and kudos to my company CA for making it available for free download (normally it's packaged with our 'eTrust Directory' X500/ldap directory, which is pretty darn neat, but is *not* a free download :-)!
Unfortunately this is not (yet) an open source product, but if anyone uses it, finds it helpful, and writes to me, I'll have a better chance of persuading people here to make it so...
A bit surprised to hear that 'Hierarchical databases were blown away by relational versions' - since I'm pretty sure they've been paying my pay check for the last three years... :-)
There are a large number of heirarchical databases out there. The big fellas are the X500 directories (X509 certs came out of this work). More common are X500's demented kid sisters, the LDAP directories ( rfc2251). The DNS system also fits the description 'heirarchical database'.
As far as XML goes, there are people storing XML in directories - although they're still fussing about exactly how to do it. There are a bunch of people trying to come up with standards - check the directory services markup language people www.dsml.org.
There are people trying to sell XML enable directories - Novell sells an XML directory, but most directories can be used to store XML (including our 'eTrust Directory').
As a final quicky - when do you use a directory over an RDBMS? Directories are good for naturally heirarchical data with few cross connections. They are usually optimised for slow writes/fast reads. They are *very* good for distributed data (e.g. DNS, international organisations etc.). The X500 spec defines a very fine grained security model, which can also be useful. However, if your data is closely cross-linked with lots of relationships... well, use an RDBMS!
Self assembly is how the body builds a lot of its internal structures. I did a bunch of work on this in my doctorate - basically you can get some reasonably complex structures (e.g. a virus shell) from a small set of repeating sub-units.
One of the common structures found in all cells are 'micro-tubules' - long cylinders made of repeating tiles of a protein called, imaginatively, 'tubulin'. They look a bit like a coil of rope; technically it's most common form is a '4-start, 13 unit helix'.
Now the place these protein structures are found *most* commonly is in neurons, which are crammed to the gills with these things. And there is a (way-out, whacky, widely discredited, completely batshit, but still very cool) theory that the way our brains actually work is not just at the synapse level, but at the sub-cell level using these microtubules. (This would add maybe another 5 orders of magnitude to the available computing power of the brain if it were true; these suckers are small and there's *heaps* of 'em!).
The idea (and it keeps cropping up in papers 'cause it's just so appealing :-) ) is that
computations can be done using a 'game of life'
like system of electical charges on the outside
of the microtubule, where each unit adops an
electric polarity, and then 'flips' it's
neighbours depending on a simple set of rules.
It's a very cute idea, completely lacking in
anything so crass as experimental evidence.
These days of course no one believes a word of it.
<false modesty>For some dodgy work on nanoscale self-assembly, and for some half decent pictures of microtubules, check out my thesis at nanoscale simulation </false modesty>
...in fact the 3D version is simpler to implement than the 2D version - you just plot your triangles on a 2D grid, with the value at each grid position being the terrain height. Because the X,Y positions of your points are intrinsic in the 2D grid, you don't have to faff around trying to keep linked-list objects or anything.
e.g.5 0 0 0 3
0 0 0 0
0 0 0
0 0
1
=>
5 0 7 0 3
0 0 0 0
2 0 2
0 0
1
=>
5 5 7 4 3
3 2 6 3
2 1 2
1 3
1
(of course, for efficiency, you actually do it in squares, two triangles at a time.
I agree with the intent, but the publishing biz isn't quite such a gravy train. While some bits are outrageous (i.e. charging researchers $1500 to print a colour photo in a bio journal), I've got a friend in the biz and they *do* have considerable overheads.
Actually, I think this is why the web will end up dominent - while the big journals certainly make huge sums, there are a large number of smaller journals that are always on the brink of collapse, and who rely very heavily on volunteer labour - and there are even more journals that are actually run by academics themselves, and which go under when the academics lose interest, or when the money dries up.
Anyway, I put my thesis on the web rather than publish it. It was already 'peer reviewed' by my examiners, and would get read far more than if it was in a library, or sitting in a back issue of the 'East Woolamulla Journal of Nanotechnology and Sheep Farming'.
During hostilities involving one of your allies, you have an intelligence-gathering ship off-shore, feeding information to another one of your allies. That second ally, in turn, feeds that information to the enemy of your first ally. The first ally then proceeds to attack and disable your ship, killing scores of her crew. Do you cry out for retribution while it is shown how you're not as good an ally as you should have been (helping their enemies shoot their planes from the sky), or do you sweep it under the rug as a misunderstanding, outraging survivors of the attack?
there's a short write up of the Israeli attack on the NSA's U.S.S. Liberty at salon: http://www.salon.com/books/feature/2001/04/25/libe rty/
... and the usual explanation is not that the NSA were leaking info, but that the Israelis wanted to cover up the extent of their military success, and how deeply they were penetrating into the countries which had attacked them. Check 'The Puzzle Palace' by James Bamford, although it sounds like even more evidence has come to light since then. The bit where the Israelis machine gunned the life boats (as described by the US sailors on board; we're not talking arab extremists here) makes exceptionally fine reading.
Yup - this is a false alarm I'm afraid. I was at the S11 protests last year; it was a series of fairly peaceful demonstrations here in Melbourne, Australia, protesting against globalisation. There was a big world trade organization summit on at the local casino. Think a much quieter version of Seattle :-).
As far as the site goes, it was set up a few months before Sept 11, 2000 to co-ordinate the various protest groups, street theatre, marches 'n stuff. It went pretty quiet after the demos, but may have got a little busier a few weeks ago as a small "remember S11" aniversary protest was planned (outside the Melbourne Nike store, I think).
Anyway, s11.org is a pretty harmless group, mainly uni students and young social activists. So please not to be nuking Melbourne on the off chance we're harbouring terrorists :-)....
Actually, Scientific American (amongst others) regularly run 'Secret of Damascus Steel Discovered' stories. I think I've seen three in Sci. Am. over the last twenty years - the immediately previous ones were a bunch of Russians in the '80s who were going to use it to make tractor blades :-).
It seems to be one of those 'discoveries' that crops up every five or ten years. However maybe this time they've got it right!
This is pretty much right. I do a lot of work on X500 / ldap / security, and ASN1 is used throughout all this. It does a pretty good job, but as the poster points out, the ITU is a completely brain damaged relic of the sort of big company old boys club that used to make standards. It's very difficult to get info out of them. (Once you get it though, it's usually pretty thorough!)
As for the 'compression', well, yes, it sorta would be shorter under many circumstances. ASN1 uses pre-defined 'global' schema that everyone is presumed to have. Once (!) you've got that schema, subsequent messages can be very terse. (Without the schema you can still figure out the structure of the data, but you don't know what its for). For example, I've seen people try to encode X509 certificates (which are ASN.1) in XML, and they blow out to many times the size. Since each 'tag equivalent' in ASN.1 is a numeric OID (object identifier), the tags are usually far shorter than their XML equivalents. And ASN.1 is binary, whereas XML has to escape binary sequences (base64?).
But yeah, ASN.1 is a pain to read. XML is nice for humans, ASN1 is nice for computers. Both require a XML parser/ ASN.1 compiler though. ASN.1 can be very neat from an OO point of view, 'cause your ASN.1 compiler can create objects from the raw ASN.1 (a bit like a java serialised object). But I can't see ASN.1 being much chop to compress text documents, there are much better ways of doing that around already (and I thought a lot of that stuff was automatically handled by the transport layer these days?)
And just for the record... the XML people grabbed a bunch of good ideas from ASN.1, which is good, and LDAPs problems are more that they screwed up trying to do a cut down version of X500, than that they use ASN.1 :-)!
Alas, they only claim 11.5k/s for their champaigne cork - the 40k/s figure is for the wild corks presumed to exist in the jovian system.
Oops. Actually the link is pegacat.com/cbetts/phd. *blush*. - Chris "How come we never think of things like that?" "I guess it's because our minds are too highly trained"
It's a bit of a long shot, but I'm graduating with my PhD "Nanosimulation of the Cytoskeleton" - basically a big sim program of how nanometer scale thingumies can self-assemble - next week... Still I guess I'm graduating in 'computer science' rather than 'Nanotechnology' ...
- Chris Betts
P.S. Shameless plug: 'most' of it's on the web pegacat.com/phd