Hot sauce: Blair’s 16 Million
Blair’s 16 Million Product Review | Hot Sauce Blog: "I decided to mix one crystal into tomato soup. I took a can of standard condensed tomato soup, mixed with one can of water and brought it to a boil. The capsaicin crystal will not mix like any of the other Blair’s A.M. line, which makes perfect sense, since it’s a dry crystal and not an oil based extract. So the only way to liquify this stuff is to heat it up. So using tweezers and gloves, I picked up the tiny crystal, and into the pot of soup it goes. First bite was not that hot, so I had the wife take a bite. She threatened divorce once she could speak again."
Image: Evstafiev-Soviet-soldier-Afghanistan
I just really liked this photo of a Soviet soldier in Afghanistan.
JOGL vs Java3D
A small skirmish flaired up on the OCJUG mailing list revolving around Java OpenGL libraries. In paticular, which to use: JOGL or Java3D?
JOGL is a thin wrapper around the OpenGL C libraries - much like how GWT and SWT is a thin wrapper around platform native widgets (or DOM), relying on another layer of code to provide platform-independence. JOGL is being actively developed by Sun's "Game Technology Group" (I couldn't find a link to that organization within Sun, though.) It was used to code Aerith, a scorchingly hot Java demo that uses some great UI design, and some remarkable Java2D and JOGL compositing.
Java3D is a thick system, similar to AWT. It supports both DirectX and OpenGL rendering, and supports a much higher level of functionality than JOGL. But it has mostly been abandoned by Sun. It's story is a sad story.
What is the conflict? It revolves around whether Java3D was ever justified in the first place. So essentially it is a battle over historical interpretation. One side claims that Java3D had some real utility when OpenGL was not ubiquitous and DirectX needed support, and when limitations of JVM performance made "retained mode scene graph" APIs desirable because they push processing out of the VM [I'm not really sure how that works, though].
One things for certain: JOGL is not for the feint of heart. It is low-level and definitely not object-oriented. According to this article "the GL class' Javadocs list 2,433 fields and 1,856 methods!" That's a lot of members! This leads me to believe that JOGL is a necessary but not sufficient condition for writing 3D applications in Java. More abstraction is necessary, and that abstraction may well turn out to look like Java3D.
Those looking to write 3D games in Java would do well to check out Bytonic Software's port of Quake 2 to Java. The Quake 2 game engine was open-sourced (GPL) by id software in 2001. Now it has been ported by a group of industrious German students to Java - and they even have a working webstart deployment. Of course, they used JOGL. I haven't looked at the code, but even if it's a mess, it seems like a better place to start than from scratch.
JOGL is a thin wrapper around the OpenGL C libraries - much like how GWT and SWT is a thin wrapper around platform native widgets (or DOM), relying on another layer of code to provide platform-independence. JOGL is being actively developed by Sun's "Game Technology Group" (I couldn't find a link to that organization within Sun, though.) It was used to code Aerith, a scorchingly hot Java demo that uses some great UI design, and some remarkable Java2D and JOGL compositing.
Java3D is a thick system, similar to AWT. It supports both DirectX and OpenGL rendering, and supports a much higher level of functionality than JOGL. But it has mostly been abandoned by Sun. It's story is a sad story.
What is the conflict? It revolves around whether Java3D was ever justified in the first place. So essentially it is a battle over historical interpretation. One side claims that Java3D had some real utility when OpenGL was not ubiquitous and DirectX needed support, and when limitations of JVM performance made "retained mode scene graph" APIs desirable because they push processing out of the VM [I'm not really sure how that works, though].
One things for certain: JOGL is not for the feint of heart. It is low-level and definitely not object-oriented. According to this article "the GL class' Javadocs list 2,433 fields and 1,856 methods!" That's a lot of members! This leads me to believe that JOGL is a necessary but not sufficient condition for writing 3D applications in Java. More abstraction is necessary, and that abstraction may well turn out to look like Java3D.
Those looking to write 3D games in Java would do well to check out Bytonic Software's port of Quake 2 to Java. The Quake 2 game engine was open-sourced (GPL) by id software in 2001. Now it has been ported by a group of industrious German students to Java - and they even have a working webstart deployment. Of course, they used JOGL. I haven't looked at the code, but even if it's a mess, it seems like a better place to start than from scratch.
Scott Ferguson on epolling: just use threads
From the Resin interest mailing list:
On Dec 26, 2006, at 9:59 AM, Serge Knystautas wrote:
> Steve Z wrote:
>> Hi
>> Sun JRE nio has supported epoll from JDK5.0_up9,JDK6.0 at
>> bottom, I wanna know whether it meaned resin support epoll now?
>> thanks.
>
> Resin does not use nio, so how the Sun JVM implements NIO is not
> significant.
>
> This is an interesting read on the matter from when epoll was a new
> feature: http://www.theserverside.com/discussions/thread.tss?
> thread_id=26700
Yep. Threads aren't all that bad, especially on recent operating
systems. Remember, that any epoll/nio solution has extra overhead
associated with detaching/attaching the thread.
A poll/epoll is essentially the same as an operating system block,
but handled at the user level (and so requires several extra system
calls). OS blocks essentially do the exact same thing, but are
handled by the kernel, which is far more efficient.
The problem at the moment is really 32-bit memory limitations. Since
threads take up virtual memory, lots of threads take up lots of
memory. In a 64-bit system, that's not an issue. But we're running
up to the limits of 32-bit virtual memory with lots of threads.
That issue will go away in the next 3-5 years as we transition to 64-
bits. At that point, it would make sense to just stick with lots of
threads and avoid the epoll issue entirely.
On Dec 26, 2006, at 9:59 AM, Serge Knystautas wrote:
> Steve Z wrote:
>> Hi
>> Sun JRE nio has supported epoll from JDK5.0_up9,JDK6.0 at
>> bottom, I wanna know whether it meaned resin support epoll now?
>> thanks.
>
> Resin does not use nio, so how the Sun JVM implements NIO is not
> significant.
>
> This is an interesting read on the matter from when epoll was a new
> feature: http://www.theserverside.com/discussions/thread.tss?
> thread_id=26700
Yep. Threads aren't all that bad, especially on recent operating
systems. Remember, that any epoll/nio solution has extra overhead
associated with detaching/attaching the thread.
A poll/epoll is essentially the same as an operating system block,
but handled at the user level (and so requires several extra system
calls). OS blocks essentially do the exact same thing, but are
handled by the kernel, which is far more efficient.
The problem at the moment is really 32-bit memory limitations. Since
threads take up virtual memory, lots of threads take up lots of
memory. In a 64-bit system, that's not an issue. But we're running
up to the limits of 32-bit virtual memory with lots of threads.
That issue will go away in the next 3-5 years as we transition to 64-
bits. At that point, it would make sense to just stick with lots of
threads and avoid the epoll issue entirely.
The War on Photographers
It's a scary time. Since my interest in photography has increased, I've been hassled several times for photographing architecture. For example, I was hassled for taking this shot:
A kind soul commented on this photo and pointed me to the flickr photomob group where some kind soul posted a link to PopPhoto's article The War on Photographers.
We should be very concerned when the police start enforcing non-existent laws. When there are too many laws to keep track of, things like this are bound to happen.
A kind soul commented on this photo and pointed me to the flickr photomob group where some kind soul posted a link to PopPhoto's article The War on Photographers.
We should be very concerned when the police start enforcing non-existent laws. When there are too many laws to keep track of, things like this are bound to happen.
Vista bad; OS design good; Linux Desktop almost ready
Reading about Windows Vista I decided that I would not upgrade. There is nothing in that operating system for me, as I expected.
It got me reading about Mac OS/X. I was particularly interested to discover that OS/X uses a Mach 3 kernel under the hood. This was interesting because it reminded me that back in high-school when I was working as IT support for a large company, that they were doing POS terminal development using Mach.
But what's even more fascinating is reading about the differences between Mach and Monokernels, and realizing how similar the operating system problem is to the enterprise application problem. There are similar forces at work: defining responsibilities, dealing with coupling, messaging, etc. Heck, the microkernel is even referred to as a "server" and the IPC mechanism uses "pipes". I might be able to find inspiration (and cautionary tales) in OS research and design.
(Of course, I couldn't help but read about Ubuntu and specifically gNewSense (the completely 'Free Software' alternative). Ubuntu is a lovely Linux distribution; I've used it before and liked it. Alas, it is still not as lovely as Windows running all of my favorite utilities and applications. But I have half a mind to start using it, and maybe even trying to contribute.)
It got me reading about Mac OS/X. I was particularly interested to discover that OS/X uses a Mach 3 kernel under the hood. This was interesting because it reminded me that back in high-school when I was working as IT support for a large company, that they were doing POS terminal development using Mach.
But what's even more fascinating is reading about the differences between Mach and Monokernels, and realizing how similar the operating system problem is to the enterprise application problem. There are similar forces at work: defining responsibilities, dealing with coupling, messaging, etc. Heck, the microkernel is even referred to as a "server" and the IPC mechanism uses "pipes". I might be able to find inspiration (and cautionary tales) in OS research and design.
(Of course, I couldn't help but read about Ubuntu and specifically gNewSense (the completely 'Free Software' alternative). Ubuntu is a lovely Linux distribution; I've used it before and liked it. Alas, it is still not as lovely as Windows running all of my favorite utilities and applications. But I have half a mind to start using it, and maybe even trying to contribute.)
Using foreign translations of a novel to solve plot puzzles
The seventh Harry Potter: A fan's questions: "How R A B, the initials of the mysterious character who is also hunting the Dark Lord's soul secrets, changed in the Dutch translation of the novel, where Regulus Black is called Regulus Zwarts and the initials read R A Z. In the Norwegian edition, apparently, Regulus has the surname Svaart, and the initials R A S. In the Finnish translation, I can tell you with knowledge gleaned from wikipedia, Regulus Black is called Regulus Musta, and the initials are R A M."
Stuff: Picco Z RTF Electric RC Mini Helicopter 2007 Version 3
This little helicopter is quite cool! 6" long and about 5g in wieght, 100' range on the radio. Pretty sweet.
Heartwrenching stories from Iraq
BBC News has put together exerpts from a variety of Iraqi blogs. It's heartwrenching:
BBC NEWS | Have Your Say | Iraqi bloggers react to the violence
BBC NEWS | Have Your Say | Iraqi bloggers react to the violence
Saparmurat Niyazov - who will mourn?
Reading about Saparmurat Niyazov's exploits begs the question: was he close buddies with Kim-Jung Il? Did they compare notes and share ideas on how to express their authoritarian vision more clearly, more forcefully, more completely?
But consider: was Mr. Niyazov actually evil? Sure he is repressive and brain-washed and isolated his country, but maybe by doing so he averted greater tragedy, such as civil war or sectarian strife. Sometimes in order to save a nation you have to destroy it, right?
But consider: was Mr. Niyazov actually evil? Sure he is repressive and brain-washed and isolated his country, but maybe by doing so he averted greater tragedy, such as civil war or sectarian strife. Sometimes in order to save a nation you have to destroy it, right?
Privacy In the Workplace
The discussion must assume benign intent on the part of the employer. Otherwise, defensiveness will result.
Surveillance is installed to protect people and property. People can be protected from each other in various ways: to deter physical assault, other kinds of abuse, and to deter fraud (particularly one person using another person's computer). Another minor usage is to find people.
Property is protected in various ways. Presumably there is a deterrant effect on theft, and if theft does occur, the video record can assist with recovery.
Given all of that, why is video surveillance of the office workplace wrong? The reductionist argument is that the information could be abused to cause personal harm. The coherentist argument is simpler: it's just wrong. (Check out this article which explains the difference.
Employers have every right (even duty) to continuously and electronically inspect anything and everything having to do with the work. But what about inspecting *me*?
"On Bloustein's view it is possible to give a general theory of individual privacy that reconciles its divergent strands, and 'inviolate personality' is the social value protected by privacy. It defines one's essence as a human being and it includes individual dignity and integrity, personal autonomy and independence. Respect for these values is what grounds and unifies the concept of privacy."
Surveillance is installed to protect people and property. People can be protected from each other in various ways: to deter physical assault, other kinds of abuse, and to deter fraud (particularly one person using another person's computer). Another minor usage is to find people.
Property is protected in various ways. Presumably there is a deterrant effect on theft, and if theft does occur, the video record can assist with recovery.
Given all of that, why is video surveillance of the office workplace wrong? The reductionist argument is that the information could be abused to cause personal harm. The coherentist argument is simpler: it's just wrong. (Check out this article which explains the difference.
Employers have every right (even duty) to continuously and electronically inspect anything and everything having to do with the work. But what about inspecting *me*?
"On Bloustein's view it is possible to give a general theory of individual privacy that reconciles its divergent strands, and 'inviolate personality' is the social value protected by privacy. It defines one's essence as a human being and it includes individual dignity and integrity, personal autonomy and independence. Respect for these values is what grounds and unifies the concept of privacy."
The joy of saying "no"
In a great conversation I had years ago with Richard Kim, we discussed the question "what is art?" After some initial stabs at the question, I came up with a definition which, to this day, I haven't found an exception to:
Art is constraint.
My initial inspiration for the definition was the fact that, if you put *anything* in a picture frame, you can legitamately call it art.
But why isn't a pile of sand, in and of itself, art? (Some people claim that it is, but I don't for the practical reason that allowing anything to be art renders the term useless)
It turns out that, from whereever you look at it, creativity is constraint. By constraining wood and steal and plaster to occupy certain positions in space, we create houses. "Constraint" is an important word here, because of it's strong association with "restraint", or to inhibit or keep within bounds. Constraint is a denial of many possibilities, and committing to one.
In life we are presented with infinite options. This is especially true the wealthier we are, and the more prosperous the society is in which we live. As our lives become less about the fight for survival, where instinct and reaction are important, and more about the fight for something more (self-realization, enlightenment, etc) we have to say "no" more. We might say "no" to dessert. We say "no" to drugs. Some of us say "no" to watching TV, or to premarital sex, or to fast food, or to pornography, or....
We are awash in oppurtunity to do wrong. And right. I daresay that the former outwieghs the later considerably. This array of choice *is* freedom. Because freedom is so frought with risk, some people don't like it. It's because they don't understand the joy of contraining their own behavior, the joy saying "no".
When you constrain yourself, when you say no, you are creating something. You're choosing. You're creating yourself. That is freedom.
Art is constraint.
My initial inspiration for the definition was the fact that, if you put *anything* in a picture frame, you can legitamately call it art.
But why isn't a pile of sand, in and of itself, art? (Some people claim that it is, but I don't for the practical reason that allowing anything to be art renders the term useless)
It turns out that, from whereever you look at it, creativity is constraint. By constraining wood and steal and plaster to occupy certain positions in space, we create houses. "Constraint" is an important word here, because of it's strong association with "restraint", or to inhibit or keep within bounds. Constraint is a denial of many possibilities, and committing to one.
In life we are presented with infinite options. This is especially true the wealthier we are, and the more prosperous the society is in which we live. As our lives become less about the fight for survival, where instinct and reaction are important, and more about the fight for something more (self-realization, enlightenment, etc) we have to say "no" more. We might say "no" to dessert. We say "no" to drugs. Some of us say "no" to watching TV, or to premarital sex, or to fast food, or to pornography, or....
We are awash in oppurtunity to do wrong. And right. I daresay that the former outwieghs the later considerably. This array of choice *is* freedom. Because freedom is so frought with risk, some people don't like it. It's because they don't understand the joy of contraining their own behavior, the joy saying "no".
When you constrain yourself, when you say no, you are creating something. You're choosing. You're creating yourself. That is freedom.
Subscribe to:
Posts (Atom)