Things I miss in Coda.app

Not that I think my web design abilities were particularly useful, but working on web applications comes with the necessity of editing HTML and CCS files and some JavaScript.

My favorite tool for doing so is Coda from Panic Software. I’ve been using Espresso from MacRabbit quite a lot as well and still like many of its features, but somehow Coda works better with my muscular brain.

I sometimes wish the two teams just threw together what they have, because there are a few things that I really miss in Coda:

  • Many times, existing HTML code is badly formatted. And when I say badly, I really do it with my tongue in cheek, because sometimes you spend half a day just reformatting a few files just to see their structure. There is a breadcrumb component in Coda that tries to help here, but what I think would be really helpful is a little visual hint in the editor directly showing an opening tag for the closing tag your cursor is positioned on. Espresso shows these in the line numbers by using shades of grey. It is sometimes a real nightmare to find the closing div tag for a tag within a tree of divs that all end within a few lines. I would love to see the text between an opening tag and its closing tag to be highlighted whenever I move the cursor over the opening or closing tag. If that’s too hard to do, what about a menu option like “search corresponding open/close tag”?
  • CSS3. Coda has a very nice CSS editor and the syntax highlighting is very helpful, but there are many CSS3 options missing. I guess Panic will soon add these once CSS3 is more common-sense. I have a hard time memorizing the parameters for border-shadow or gradients etc. Visual support in editing these would be perfect
  • I hate the little dialog asking me if I really want to upload all files when I just clicked on “Publich All”. I mean, if I say “All”, do you think I mean all, but in a way that really means all but just a few? This think really annoys me, because most of the times I already am in Safari and wonder why my changes aren’t effective yet, just to find out I simply forgot to re-state to Coda that I really want o upload all.
  • Espresso’s options for synching and merging files between the local folders and the web server are really helpful, especially if I need to work on html code from somewhere on the road where I don’t have a copy of the remote files, or just an old version of the site.
  • Somehow it seems I am missing an option to keep the display of validation errors in HTML files active. Maybe I need to find the right preference somewhere, but I always have to turn it on by hand.
  • Espresso has an auto formatter for HTML files, which can help a lot when you have to deal with badly formatted HTML code. Even if my taste is different and I’d like it formatted in a slighty different way, I still am able to see the structure of the file (it’s always about “where’s this div/span/tr or whatever ending?”)
  • Search for links and occurences! This one is a feature I often miss a lot. There are times when you need to know if there are any internal links to a page and it can be a pain to use the normal text searching facilities. I’d wish for a view in which I can see the links between my pages.
  • A perfect extension to this would be the option to kick off a search for links to a page on your favorite search engine. Like “Who’s linking to this page”? Can I just remove it? This would turn Coda into an even more powerful site management tool than it already is.
  • Drag and Drop of relative URLs: Coda has some nice ideas about Drag&Drop, like when you type in a img tag and want to populate the src attribute, you can drag an image file from the sidebar into the code and it will populate the src attribute with the path of the file. Unfortunately, I don’t want to apload a link to an image file at the location “/Volumes/Mac Disk/Users/Joachim/Documents…”, but I need a relative url within the site. What if you’d simply assume that the top level directory of my “local” site is not a prefix for relative urls. And what if I could set a preference that says: prefix relative urls with “http://www.objektfabrik.de”? Wouldn’t this make life even easier?

So I’d say Coda is still one of the best if not the best tool for hand-coders of HTML and CSS code, but the guys at Panic surely are glad to hear that they still can do a little better.

Posted in Mac, UnorderedCollection | Tagged , , , | Leave a comment

Is it time to look for alternatives to Visual Smalltalk Enterprise?

Over on the ESUG mailing list [UPDATE: interestingly, the discussion goes on on the squeak-dev mailing list], somebody complains  about “Cincom killing VSE”, a Smalltalk IDE called Visual Smalltalk Enterprise that has been officially discontinued for a very long time now.

The original poster makes it very clear that he is frustrated about the fact that Cincom is not developing VSE any further and charges “big” for fixes. There are, however, quite a few points to consider about this whole VSE affair:

  • Cincom doesn’t own all the rights on the product, so it is a big risk to invest in any work on it
  • The legal situation is probably complicated enough to make it impossible to open source VSE
  • Cincom now has three Smalltalk products on the market, all of which are somewhat different and need to be maintained. From a business stand point, there might be very strong arguments against maintaining a fourth one

VSE has been in this state for many years now (more than 10, to be exact), and the product is still around. I know a few companies who still use it for production systems that are not particularly small or unimportant. In fact these are systems supporting their core business. There still are teams working on new features for systems that are built in an IDE that has not received any updates for more than a decade. Continue reading

Posted in Smalltalk | Tagged , , | 4 Comments

John O’Keefe to be interviewed on this week’s Industry Misinterpretations

John O’Keefe, Principal Smalltalk Architect at Instantiations will be interviewed on James Robertson’s Industry Misinterpretations podcast this week:

we have John O’Keefe – long time Smalltalker and the principal Smalltalk architect at Instantiations – coming on “Industry Misinterpretations” this Tuesday at 1 PM EDT

If you can’t wait for next sunday (when James will put the podcast online), you can listen to the interview live on justin.tv on tuesday. According to my claculations, the interview will be live at 19:00 German time.

John will be talking about the consequences of Google’s acquisition of Instantiations’ Java/AJAX business for VA Smalltalk and provide details on Instantiations’ roadmap for Smalltalk.

Posted in Smalltalk, instantiations | Tagged , , , | Leave a comment

Frankfurt Smalltalk Meetup right after ESUG

The Frankfurt Smalltalk Meetup is having its next meeting on September 21st. This time once again will be interesting:

Alan Knight, Engineering Manager Cincom Smalltalk and lead developer of GLORP, will talk about the internals and optimization of GLORP. GLORP (Generic Lightweight Object-Relational Persistence) is an open-source cross-dialect OO-R mapping framework available for VisualWorks, ObjectStudio, VASmalltalk, Dolphin Smalltalk, Smalltalk/X, Pharo and Squeak.[...]
We welcome you at 18:30 on Tuesday September 21st in the offices of ITS-People GmbH, Frankfurt/Main, Lyoner Str. 44-48.

I haven’t been to the Frankfurt Meetup for quite a while, but I remember it was always quite well attended and you could meet many interesting and nice colleagues. They always welcome new blood with any level of Smalltalk knowledge.

Posted in Smalltalk | Tagged , | Leave a comment

Seaside: call: vs. show:onAnswer:

It’s been a long time since I’ve written about Seaside here. So it’s time for a new post.

If you are a VA Smalltalk user and would like to get your feet wet with Seaside, you will find out quite soon that the lack of VA Smalltalk’s support for Continuations makes it harder to follow the Seaside tutorials than it would be using Squeak or Pharo.

While some people think that Seaside without Continuations is like Smalltalk without Blocks, I think that is simply not true. Most web sites in the wild (meaning non-Seaside)  have never shown the behavior that Continuations show, and therefor a Continuation-based app will feel strange. And: the more AJAX you use in your application, the less relevant this whole backtracking thing becomes.

So, having said that, we should take a look at what you can and cannot do without Continuations.

Continue reading

Posted in Seaside, Smalltalk, UnorderedCollection | Tagged , , , | Comments Off

Oracle may hurt Java much more than it wanted to…

The Blogosphere is heating up on the Lawsuit of Oracle vs. Google. It seems people start to worry a lot about what level of openness they can expect from Java, and what consquences it may have for their projects. I stumbled upon a very interesting thought by Bruce Eckel:

Now, if you are choosing a programing language, aren’t you more likely to consider something truly unencumbered like Ruby or Python — where something like this just wouldn’t happen — than you are Java? Joel West points out a problem that Sun always had — that of semi-openness — which now comes back to bite those that trusted it.

Interesting thought. The current lawsuit does not effect an end user of Java, but an implementor of an alternate virtual machine, so it’s probably a bit over the top at this point in time.

It is, however, interesting what kind of movement such an action can cause. Maybe people will develop an even stronger tendency to avoid Java than they did before. Not only because it has never really become open source, but also because it is now in the hands of a “dark power”.

This train of thought, combined with growing interest in dynamic languages, could raise the traction towards technologies like Ruby or Python.

Not sure I’d think of these in the first place, but you get the idea. If you think about future platforms for your project, why not consider Smalltalk? Over in Smalltalk-land, you can get a lot of what you really need for your projects:

  • Smalltalk has been very influential to all of today’s object oriented languages like Objective-C, Ruby, Python, and, heck, even Java
  • Multiple Decades of stabilizing and evolution
  • Modern and reliable frameworks for web services, web applications, database access and so on
  • You can choose between open source implementations like
  • And commercial offerings like

[Update] In the meantime, ever more blog posts and news articles show up that show how much Oracle is playing a risky game marketing-wise, like “Oracle’s Java lawsuit undermines its open source credibility” by ars technica:

It raises very serious questions about the company’s stewardship of other open source technology that it obtained during the acquisition of Sun. The resulting uncertainty will likely not be conducive to retaining the customers and mindshare that Sun had built around certain open source products. It will also likely have a serious chilling affect on community involvement and third-party contributions. It’s important to recognize that the impact of this lawsuit will be felt far beyond the scope of Java [...]

Oracle is arguably shooting itself in the foot, because Android has helped to restore Java’s relevance as a client-side programming language as well as attract developers. With the lawsuit, Oracle is seriously undermining Java’s prospects for growth outside of the enterprise server software space.

The full article is well worth reading…

Posted in Java | Tagged , , , | 10 Comments

London Smalltalk Meeting: August 23rd

While we’re at it: London has had a Smalltalk Meeting for along time now. Its next meeting will be next Monday:

Bruce Badger will give us a talk about PostgreSQL and how to use it from any Smalltalk dialect.

I’d like to be there, but can’t. If you can, read the full post for details.

Posted in Smalltalk | Tagged , | Comments Off

Next Cologne Smalltalk Meetup: September 30th

André [whose name is actually Alexander, sorry!] Lazarevic just announced the date of the next Cologne Smalltalk Meetup:

Please join us on the 30th of September for our fourth Cologne Smalltalk
User Meetup.

As always: Anyone interested in Smalltalk is invited, regardless if you only recently discovered the magic of doing things the Smalltalk way, are a
die hard VM-Hacker, want to share your experience on web-development
in Seaside or like to chit-chat while enjoying a Kölsch.

Posted in Smalltalk | Tagged , | 1 Comment

Is Oracle sunsetting Java?

Not likely, at least not by intention.

But the latest lawsuit against Google can mean much more than just one giant pressing lots of money out of another. It’s probably more than  Oracle wanting Google to pay them some hundreds of millions because Google is not licensing their Java ME. Here’s what Mark Driver from Gartner writes about it:

If Oracle wins,  it will send a strong message to the industry that Java isn’t as open as was assumed.  There is already an under-current of bleeding edge developers that consider Java to be ‘legacy’ 20th century technology.  If it looks like Oracle is aggresively ascerting its control over Java then these discussion get really interesting.  You think the JCP is dead today?  You ain’t seen nothing yet.

Mark’s Blog entry is very interesting and links to some very interesting material on the matter. This whole thing sounded very boring to me until I read Mark’s post. So I encourage you to read his full article and follow the links as well.

I wasn’t really aware of the fact that Java is making Oracle real big money in the mobile arena, and this whole “open source but patented” thing sounds weird and complicated – it may even explain why Apple tries to completely do their own thing and build up their own kingdom.

Posted in Java, UnorderedCollection | Tagged , , , | Comments Off

Is there a market for Java tools?

Now that the smoke has settled on the news of Google’s acquisition of the Java GUI building expertise of Instantiations, it is probably time for wild speculation. If Google was only interested in Instantiations’ GWT Designer, they could have bought only that product and the development team behind it. But Instantiations has sold all their Java/Eclipse products and staff to Google. This could also be another proof of the fact that it is extremely hard to make real money in an eco-system that’s associated with FREE.

FREE is a price tag that makes people put aside their intelligence for a while. It works even better than CHEAP. The tools from Instantations were not really expensive, even though they are best of breed in the Java GUI Design arena. Our customers were and still are extremely satisfied with WindowBuilder, SWT Designer or Swing Designer. We’ve had very faithful customers who’ve renewed their support every year.

But we also had many prospects who wanted SWT Designer or RCP Developer but were not able to get a budget of a few hundred bucks per seat, because all their eclipse tools in use were free. So even if they saw the benefits of atool they wouldn’t want to pay for it. They’d rather throw lots of person days at the problem.

But somebody has to pay the people who build and support these great tools. They won’t do it just for the love of it (well, I know some people who might, but they don’t count ;-) ). Eclipse has been largely paid for by IBM and many other companies, and thus by their customers, so neither Java, nor Eclipse, nor any other high quality tool really is for free. You subsidize them by buying DB2 or Oracle or any other products.

So coming back to my speculation: This whole thing might just mean that all the investment in developing and supporting WindowBuilder didn’t really pay back or there were signs for a negative trend. So while many people are excited in hopes for a free WindowBuilder in the near future, there will probably also be some drawbacks. Even Google will need a business model for supporting users of these tools.

An interesting question here is: being a web centered company, where could the benefit of a rich client GUI builder be? What could be an attractive reason for Google to give away SWT Designer or SWING Designer? There even is no real competition to cause any trouble to, because WindowBuilder didn’t have much competition. No question: GWT Builder is a tool that’s attractive for Google. But Rich Client tools that work completely offline? Maybe in the form of a GUI Builder for Android gadgets…

I hope I am wrong and Google’s altruism will make them open source and/or give away WindowBuilder. Maybe there will be some support contract constellations for large customers which will finance the tool. But why, exactly, should that work better at Google than it did at Instantiations?

We’ll hopefully know more soon.

Posted in Java, instantiations | Tagged , , , , , | 2 Comments