26/09/2008

Seaside learning resources

This presentation by Lukas looks very useful. It provides an overview of Seaside, whilst ,at the same time, showing some code examples. I think I will come back to it in a little bit.

21/09/2008

Icons in OmniBrowser

So, it turns out that what I had been referring to as OmniBrowser isn't really OmniBrowser. OB is actually a framework for building browsers of all kinds. Various people have built new browsers and the version that ships in the latest Dev build is called OmniBrowser Enhancements (except when people just call it OmniBrowser!).

Anyway, there is some good documentation - including an explanation of what the icons mean, here

Turns out I was doing my unit testing all wrong!

I thought - based upon a couple of examples that I had read - that SUnit worked like this:

self should: [some condition].
self shouldnt: [some condition].


Turns out that the should and shouldnt messages are for checking whether errors have been raised or not. I need to learn a bit more about them. However, I now know that the right messages to send are assert: and deny:

You can read a bit more about using SUint, in a practical way, here

18/09/2008

Huh, Test Driven Development, not such a crazy idea after all ;-)

Well, my new image is beginning to pay off. I started writing my first semi-serious webapp today. And, given everything I have been reading, plus my experience from my first attempt, I decided to try to apply TDD. So far, so good. The system actually caught some bugs within the first few minutes of using it.

I haven't got to the stage of writing my tests before I write the code, but I think I will do that next, because I can really see the value.

What do all these little symbols mean?

Many of the methods in the SystemBrowser (my current default), have symbols next to them. As far as I can tell, they relate to whether a method is inherited, overridden, or something else! The rules seem to be:


  • Nothing: new method in this chain, i.e. the method could exist in other classes but not in this particular chain of inheritance.

  • Upward orange triangle: method is inherited and overridden in this class

  • Downward orange triangle: method is overridden in a subclass

  • Two orange triangles (up and down): overrides and is overridden in a subclass

  • Green up arrow: calls the same method in its super class

  • Blue triangle: Self should not implement or subClassResponsibility

  • Green plus: don't know, can't work this one out

  • Red flag: has a halt message in the code

  • Spanner: shows that the code needs to be returned to, i.e. under construction



Need to check this stuff on the beginners' list

Hmm, OmniBrowser!

The new Squeak Dev image is great. Much less clutter, nicer fonts, altogether a good experience. However, it has also introduced me to a whole new set of tools. The main one being, OmniBrowser. I am now feeling a bit lost.

OmniBrowser looks like the old system browser, but it behaves in different ways. Not hugely different, but enough to make me feel uncomfortable. So, today I went in search of documentation that would explain how to use the new tool. Not surprisingly, the documentation exists, and also unsurprisingly, it is scattered all over the place. The best I have been able to find so far is here. I am going to read through the PDF and see if it helps.

 Update: 

Looks like this article is a better place to start if you want to understand how to use the browser.

And another update. The article - although very helpful - seems to be slightly out of step with the current Squeak Dev image I downloaded. In particular, there is no ' SmartGroup' Browser in the World menu. However, the SmartGroup feature seems to be built into the main browser, and if you use that - and follow the instructions in the article - it seems to work in the same way.


I am beginning to think I should rewrite this whole post instead of adding updates!

Anyway, I have found some useful help text. It doesn't really explain how to use the browser, but it does tell me a bit about switching between browsers and what the various versions do. I think the SmartGroup browser must have been removed from this dev image. Also, it seems as though the SqueakSource package idea is gradually becoming an organising principle for Squeak - it is now being built into the tools more directly.

17/09/2008

Getting the development image - I should have done this from the start!

I was reading through Ramon Leon's blog and I came across a reference to the Squeak Developer image. I had read about this before, but obviously not followed it up. There again, perhaps I did and it just got lost in the sea of images I have downloaded over time!

Anyway, if you are starting to develop in Squeak, get the developer image - you know it makes sense!