Free Climbing considered healthy?

I don’t understand why some of my computer buddies go (free) climbing.. risking their necks.. when they could be coding.. :)

But reading about something like e-thrombosis puts it all in a different light.. :)

I’m glad I spent at least half of my time coding while standing.. I found a nice little espresso bar with free WLAN.. If you should ever be in Berlin, believe me that this is the place you want to visit for a nice espresso or latte macchiato.. It’s called Tres Cabezas and is located near the “Ostkreuz”.. Anyway, the ‘tables’ have the perfect height for coding while standing.. Forget Starbucks (at least the one in Berlin).. Seriously..

Anyway, got distracted. Back to work now.. :)

tfdj

Ruby IDEs

I just stumbled upon this: Sapphire In Steel/. A Ruby IDE for Visual Studio 2005. Of course there are other alternatives like for example TextMate, JEdit, SciTe, Arachno, ActiveState, Mondrian, etc.. lots of choices.. different levels of Ruby support/integration.. from editor with highlighting to integrated ruby debugging..

Anyway, Ruby is not Java. Duh. :) What I’m saying is what many before already said: Many of the IDE features that make a Java developer’s live bearable won’t work very well or at all in a Ruby context. However, you also simply don’t need them in Ruby.

What’s nice to have, of course, is syntax highlighting and context-sensitve word-completion. The latter however, may very well be restricted to the context of the opened file. It doesn’t even have to check the ‘require’d files. What use would it be in a language like Ruby? Think BlankSlate for example.. An IDE would have to really execute code to know what’s going on.. Well, nothing new. The old dilemma of highly dynamic languages.

But again: You just don’t need theses features with Ruby.

I would even go as far as saying that you don’t need a debugger. A debugger is an undisciplined developer’s saviour. Nothing more. I developed quite a few systems. The only time I needed the debugger was back in my Amiga days when writing demos. In M68k assembler.. But a Java debugger? Or a Ruby debugger? What does it tell you about your codebase if you need a debugger to figure out what’s going wrong? Even when developing for Symbian applications and games I never really needed a debugger.. And believe me when I tell you that Symbian development is a real bitch..

(Well, of course there are certain situations.. like being dependant on certain assumptions you make about a library for example.. even then a test suite is a viable alternative.. this might change on a more hardware-near level.. but then again you probably need an oscilloscope anyway.. :)

Anyway, even with Ruby highlighting in VS2k5 or IDEA or JEdit, etc.. I still fall back to using a small and fast editor like TextPad. Maybe my next pet project should be a new text editor.. :) With exactly the features I want.. Unfortunatly this would mean going back to C/C++.. I still don’t consider a Java, C# or Ruby/Python/etc editor a really convincing alternative.. Which I should probably explain in another post..

tfdj

Update: Intelli/J IDEA SimpleSyntax Highlighter Plugin

I’ve made available the plugin through the IDEA Plugin Manager. It’s still at an early alpha stage. Basically still a prototype. But I find it quite useful already. Apart from Ruby highlighting I use it to highlight its own configuration file syntax as well as property files and some other work-related file types.

Just before uploading the latest version a few minutes ago I’ve spent some time on improving the performance. Probably the major problem of the plugin right now. If you’ve followed my recent posts on the IDEA plugin topic you may recall that I explicitly decided not to use a system like jflex. Well, by now I realize that this has certain implications. Mainly performance related.. :)

What I’m now thinking about is providing an alternative configuration syntax that can be used with jflex, but doesn’t use the complicated jflex syntax. And I’m thinking about compiling it at runtime using Groovy. Well, it’s still just a thought.

More importantly: I’m still waiting for the project to be approved at Tigris. I tried SourceForge first, but no response after five days.. For now the plugin sources are available at my IntensiCode site.

If you’re interested, check out the included TODO.txt to get an idea of what I have planned and/or what I’m dealing with.

And if you want to see some really awful stuff, have a look at my ConfigurableLanguage hack (in the src/net/intensicode/idea/core folder). Who’s to blame? Me because I’m trying to abuse the API? Or the JetBrain guys because they are trying to protect their application? (I’m guessing here.. I don’t really know why they choose to use global registries all over.. To be honest I probably would never use something like a global registry.. Just because global itself has such a bad smell.. together with registry it stinks..)

tfdj

Learning the ABC of TV

Alright, ABC is offering TV shows for download now. With advertising. A day after they ran on TV. For streaming. For US customers only. (Or those who use an US proxy for surfing the web.) And they had some trouble with the load on their servers.

Here’s what I’m thinking: Embrace the Internet! Use it! Don’t fight it! And don’t abuse it! (With abuse I mean all that regulatory BS going on right now..) Why not – and yes I’m serious here – put your episodes – with or without advertising – I don’t care – online using the frickin’ Pirate Bay tracker. Seriously! Think about it! (And the Pirate Bay is just an example here. Simply choose a popular tracker of your ‘liking’.. :)

And understand: If someone doesn’t like advertising, a release of the show without the advertising will show up a bit later anyway.. Just make sure you (read ABC) provides the source, and not some ‘group’ recording the show on TV.

And to make things worse, here’s more of my BS thinking:

Get rid of all distribution contracts. Seriously! You only need one contract! With your ISP. (And maybe with Pirate Bay, if they start charging for using their tracker.. :)

Here’s more:

You want to make some money with the BS you’re producing? Take the money directly from the fans.. Provide a space (on the Net – of course) where fans can donate for their favourite shows. Put a pilot or a few episodes up on the Pirate Bay tracker and see if donations are coming in. If not, drop the show.. (It’s probably BS, right?) If yes, use the money to produce more episodes.. Think: Ten thousand fans donating $2 each. Enough for an episode. Just go low profile. You got a hundred thousand fans donating a few bucks each? Produce more episodes or add more effects, or whatever.. you decide.. and get the feedback from the fans an hour after you’ve put the new episode(s) online..

More? Here you are:

I love JMS. Babylon 5, Crusade and Jeremiah. How much better can SciFi get? Well, that’s me. Now, the ‘world’ decided it doesn’t want Crusade and Jeremiah. The world in this case was more or less == the TV studio. (Or something like that. If you can believe what’s written in the newsgroups..)

Whatever.. not important. Important is this: If JMS would produce new episodes of Crusade and/or Jeremiah or any other new show, put them out there via a popular tracker and put in a URL to his donation site.. Well.. do the thinking.. Who needs ABC?

And yes, of course.. you need actors, studios, etc.. Are you telling me you need ABC for that? Think! (Uh.. not that I would know about that kind of stuff.. I just love shows like Jeremiah.. or The Inside – for that matter.. shows that got cancelled.. What would I give to exchange Alias for The Inside.. And do I need a nice – and pregnant? WTF? – babe as a super agent? Or do I need a charismatic actor in an episode with a strong storyline?)

Alright.. enough for now.. I had to get this out of my system.. Sorry for the rant.. :/ I’ll try writing something useful next..

In a world gone mad..

tfdj

Intelli/J IDEA SimpleSyntax Highlighter Plugin

Alright, this pet project became quite serious now and is consuming more and more evenings..

I’m now thinking about making it officially available. It’s become quite useful. It probably needs a small UI to make configuration easier. Apart from that it’s really nice to have proper highlighting for Ruby, etc.

Well, for now I simply attached the latest version of the plugin. If you should stumble upon this blog, please give this plugin a try and give me your feedback!

Extract the IDEA SimpleSyntax Plugin zip file into your IDEA config/plugins/ folder. After (re)starting IDEA, you should see two new entries in your Tools menu. Use the “Init SimpleSyntax” to install the default Ruby configuration in your IDEA settings. You can then use ‘Reload SimpleSyntax’ to activate Ruby syntax highlighting.

Update: Gizmo of kodierer.de fame pointed me to the syntax configuration of Adie. The functionality offered by the ‘configuration language’ is actually quite similiar. Very interesting to see their more formal approach using a configuration grammar..

Anyway, the really interesting question is this: Should IDEA provide a simpler way of configuring syntax highlighting? The XML filetypes based approach doesn’t work properly. (Or does it? And I’m just to stupid.. :) Implementing a full IDEA plugin just to get highlighting for a small (and/or own) little language seems to be overkill..

Update: I’ve made the plugin available through the IDEA Plugin Manager. Of course I found quite a few annoying problems after uploading it.. :) I’m working on fixes right now.. The important part is this: You should now be able to download the latest version of the plugin from inside IDEA.

tfdj

Update 4: Ruby Plugin for IDEA

I just added initial support for specifying syntax rules with small Ruby snippets. A lot of cleanup is required now to make the source code presentable again.. :)

Anyway, from now on you can specify something like this next to each other:

ruby  SPECIAL_QUOTED_STRING         => tags/SPECIAL_QUOTED_STRING.rb
regex SINGLE_QUOTED_STRING          => \'(?:[^\']|\\')*\'

The ruby rule takes a filename as ‘value’. In this filename you simply ‘def’ a ‘find_in’ function like this:

def find_in( input, start_offset, end_offset )
    start_index = input.index /%[qQ]./, start_offset
    return nil unless start_index

    delimiter = get_delimiter( input[ start_index + 2, 1 ] )
    return start_index, start_index + 4 if input[ start_index + 3, 1 ] == delimiter

    pattern = Regexp.new "[^\\\\]#{delimiter}"
    end_index = input.index pattern, start_index + 3
    return nil unless end_index

    return start_index, end_index + 2
end

I’m still waiting for SourceForge to approve this project. I’ll put everything online then asap..

tfdj

« Previous Page