Spiral Dive
|
|
Tuesday, December 31, 2002 |
Video is necessary.Lawrence Lessig wrote what follows this. He's absolutely right. Is more safety always better? Who the hell is going to argue for less safety? Petty fascism is the perfect term for what's happening out there. It happens when security guards abuse their positions. It happens at borders when somebody makes an innocent crack and "offends" a border guard. The consequences for the individual can be immediate and extreme. The instigator or abuser can almost always claim that he was simply doing his job, and in the very worst of cases, "might" have overreacted a little bit. A friend recently told me that his friend had made a little joke crossing the border to Canada. The Canadian customs officials disassembled the inside of their car, removing panelling and so forth, seats, and many other things, in order to find "contraband". No contraband was truly suspected, of course -- it was just revenge for offense taken at something said. At the end of the demolition, they were sent on their way, car still disassembled, with a warning never to "mouth off" again. That kind of petty power trip is something that I have had recent experience with. We were a group of professionals out enjoying ourselves...suffice it to say that in this case, the police officer in question picked on the wrong group of people. We complained vigorously after the fact to the police chief, event organizers, and succeeded in having sanctions taken against the officer. In all my life I'd never seen a police officer truly abuse his power until that day, and my perception and trust in police officers has been harmed as a result. I think it is absolutely imperative that we install video cameras at all these security checkpoints. The only way we can guarantee courteous and respectful treatment from TSA personnel is if we videotape their every move. INS and customs officials do this now, and I think it works very well. It keeps government people in check when they are given power. It provides precise information for determining who is at fault in any given deteriorated situation. Both sides will be on their best behavior. If we're going to be searched, let's be taped. back in the .... Where is the candidate who asks: Must we sell our soul to win this "war"? Where is the political party that demands respect for principles that I thought were fundamental. If we must detain Arabs, must we do so inhumanely? If we must frisk every air traveler, can't we at least build in checks to the system to assure that it is not abused? If we must fight to defend America, can it at least be America that we defend?
I'm all with Dave that this space will be the space for political action in the future. If only the future comes soon enough. [Lessig Blog] |
Refactoring vs. Visual Studio.It's been a longstanding peeve of mine that the Microsoft toolset has been generally better than the Java toolset. The MS stuff just seemed to perform better, have a more fluid UI, have great capability, and so forth. Recent tools have come a long way and I don't feel like a second-class citizen when I'm working in the Java world any more. The first of the "good" IDEs was JBuilder 4, and things have gotten a lot better since. The thing is, I have been playing a bit with Visual Studio for .NET. I think that the Java land has finally pulled ahead, with support for refactorings. I've been making a lot more use of them over the past couple of months. There's just nothing there in Visual Studio at this point in time. There may be some plugins for VS that do the refactorings; I don't know. So I'd say that at this time, the Java environments are some of the nicest and most advanced IDEs out there. Enjoy it while it lasts. Competition is a good thing. |
|
|
Monday, December 30, 2002 |
Mozart.There's more than one virtual machine in the universe. The JVM is a pretty good one, for some (maybe a lot) of things. The CLR is good too. Here's another one: Mozart. I don't know much about the quality of its implementation, but I sure like the science behind it. What these guys are saying is that programming can be broken down into a basic set of concepts like state, objects, functions, constraints, and so forth. There are some pretty advanced concepts in the system -- first order functions, the constraint systems, and some very cool distributed stuff. They built a VM that could do all that. Microsoft's CLR was designed to run many languages, but is apparently particularly good (or only good, depending on your perspective) at running languages that look like C#. The Mozart VM seems like an attempt to substantially expand the capabilities of the VM, to push more into that base layer.
This strikes me as the right approach. It turned out the RISC wasn't such a hot idea after all. I think we have the same situation in language design. The problem is that the VMs haven't been designed with any notion of theoretical completeness coupled with efficiency for a greater number of programming languages; languages that do more complicated things easily. |
|
|
Sunday, December 29, 2002 |
101.
Friggin fever. It's just not letting me alone. Dammit. Makes it very hard to concentrate or do anything. |
Alive.But just barely -- am pretty sick. Crap. 1:30:49 PM |
|
|
Friday, December 27, 2002 |
|
|
Wednesday, December 25, 2002 |
@%@%#$!^#*$@
I just launched two copies of TJ by accident and it trashed one of my files. Crap! Dammit. I was just about to back that stuff up and was just calling it up to look at in one more time. Son of a bitch. I haven't lost source in, hell, I don't know how long. I think I might have a backup on my web site somewhere but I better look. Crap. Dammit. Now I gotta reconstruct that whole file. |
|
|
Sunday, December 22, 2002 |
|
|
Friday, December 20, 2002 |
|
|
Tuesday, December 17, 2002 |
A data-oriented language? We have one already. It's called LISP. Pick up Paul Graham's books and check it out again, if you haven't in some time. LISP is just super cool and I can't for the life of me remember why I haven't done anything with it in so long. I just wish LISP provided a little more structuring capability, and that it was easier to read... 11:37:38 PM |
|
|
Sunday, December 15, 2002 |
Andy Richter Again.Ok, like, that last one wasn't so good, but dammit this one was funny. Brain must stop hurting! 9:58:18 PM |
|
|
Wednesday, December 11, 2002 |
|
|
Tuesday, December 10, 2002 |
|
|
Sunday, December 08, 2002 |
|
|
Saturday, December 07, 2002 |
Synchronicity.Most of the time when the past reaches out for you, darkness follows. Tonight I had something good come from somewhere I've been. It's a good night, on many levels. 1:29:03 AM |
|
|
Thursday, December 05, 2002 |
The VM or the Language?
I gotta disagree with James here...I'd much rather see the VM modified to do some of the cross-language things that we need. Of course, maybe that is a Java VM 2.0 thing. But that could take a very long time. Looks like the current proposals are compiler-side. I wrote a bit about functions in Java and how I think they would be useful. I still think they'd be a powerful addition. The for loop thing is extremely sugary. Let's get functional types!!! 11:09:45 AM |
|
|
Wednesday, December 04, 2002 |
|
|
Tuesday, December 03, 2002 |
|
|
Monday, December 02, 2002 |
I gotta run.Crap. I gotta run, and it's late, and it's cold, and that's enough excuses for one night. I shouldn't have gotten interested in BCEL and JAMon. Oops. 9:48:36 PM |
Web of Trust 2.Here's a quick modification to OPML that will allow a web of trust in blogs. Dave Winer told me about OPML. Why reinvent? It's already almost right for what we want to do. By providing the rss, opml, trust factor and degree, all else is simple math. With this I can prioritize amongst new blogs according to the weight I give you, the weight you have given other blogs, etc...
9:19:47 PM |
Web of Trust.Dave Bryson thinks we can use RDF to create a web of trust between bloggers. I think it's a great idea. Here are my thoughts on the subject:
7:12:50 PM |
Test Driven Programming Before.Bob McWhirter thinks I should read it, and I'm about to start. I just read the preface, and my first impression runs something like this. I really wish I worked on a system that was amenable to this kind of automated testing. Most of the complexities I work with involve large numbers of connected users and integrations with highly varied target systems. The only thing I can think of right now is that with a better division of the system, we might be able to find a way to test parts of it automatically. The system as a whole is still highly difficult to test on an automated basis.
I am hopeful that there are going to be techniques for dividing and conquering. We'll see. |
|
|
Sunday, December 01, 2002 |
Sunday Beer.Off to the bar; everybody needs their Sunday night beer. So do you. Get busy. Too much football and not enough work today...worked out only a few minor issues. Ten days and counting. |
Language Plugins.Separation of language and runtime is a good thing, without a doubt. .NET gets this right -- compile with whatever language you want, run on the same platform. So far, so good. But we're coders. And what's more, we're coders who have gotten used to some pretty cool toys. I don't know about you, but I like having syntax highlighting, refactoring, and so forth available to me. It saves me a lot of time. I'd like to see the Java platform (and .NET for that matter) support multiple languages more effectively. To do this and fully participate in a modern coder's style, a language plugin needs to do a lot more than just supply compilation from source text to some runtime format. It seems to me that if a platform can support multiple languages it should fully define various levels of support from a language runtime. Categories of support include compilation, inclusion of debugging information, evaluation of expressions at runtime given a context, and universal data structures that correspond to syntactic elements, refactoring support, and intelligent code completion. Your FORTRAN language pack for the Java VM should be able to indicate to the runtime (and any IDE) which of the general extension categories it supports. Most of the IDE vendors out there have created something like this for Java (and some, like TogetherSoft, have done it for other languages too). Many language people have done something similar for .NET, but the support doesn't seem to extend past compilation. I think the spec should be built into the platform. Languages will then be able to exhibit very advanced capabilities into a multitude of IDEs, and we'll all be better off. I'll be able to do my functional programming under some neutral VM, and I won't lose my super-cool code completion and other features like it. |
Functional Java.I think we're really getting at a similar thing : blocks and function pointers (and inner classes to a certain arguable extent) are closureish.Joe knocked one line out of my example that I think is somewhat important...you need to be able to declare higher-order functional types. That's just a function that takes a function that takes a function etc...these are pretty handy for solving certain types of problems. The point is, a function is defined in terms of its inputs and its output. Compatibility is pretty important -- the compiler can verify that two functional types are compatible quite easily. |