Second day at #pharoconf in Lille

A view from the back of the room

Due to a flat tire, I was unable to attend the first talks. Too bad as I was very interested in seeing Ambera bit more. Well, I tried it out in my web browser last week and it looked nice. But I still do prefer a rich client style environment and I kind of find Morphic an interesting beast. We managed to get in before noon and so, the whole morning wasn't lost. During lunch, I had the opportunity to talk with Alain Plantec (Morphic Guru, thanks for the trick about self haltOnce for tracking down the red squares with yellow crosses down, and Platypus main developer. He told me about EXPRESS and ISO 10303 p11 - I really think there is interesting stuff in there, I want to learn more) and Usman Bhatti  a team member of Synectique, a new business dealing with software metrics, automatic measurement of "things" in software. Check this PDF for a clue (in French). Basically, I see that there is a mention of ISO-9126 in there, something I have been involved with heavily in a past project with the European Commission and created tools (the hand crafted style stuff mentioned in the PDF) for SQA (Software Quality Assurance). They do trees, I did tree maps that you can drill down (which I still think is a better representation, so we may talk!). Now, I should make some business case for all that because tech is well and nice but a business needs a clear value proposition. And a clear set of use cases and supporting processes so that prospects, clients, and repeat customers can make sense of what journey they can go through with you. Doru has one thing, this looks like another. So, even if they do share the same Moose tech, I wonder if they are competing, doing different things, just trying to find out what they exactly want to do etc. Well, material for some Skype calls I think.


Talks were interesting, especially Arduino and Raspberry Pi as far as I am concerned. And Fuel is really something I find super nice.

What about a "Pharo University" + "Pharo Conference" format?

The conference formula is okay but there were people who were new to Smalltalk and Pharo in the room and for those, it is clear that they felt quite disconnected. My friend David had only had basic exposure, during lunch of day 1, I met with people who were just beginning. As they do in things like Devoxx, there are different kinds of sessions, especially the "University" day(s). I would thus suggest having a day of "University" with tracks like:
  • Track 1: Getting up and running - Get an image running on your box, understand Browser, Monticello and run basic examples to get started. Work a morphic case. Work a seaside case.
  • Track 2: Latest things to know - Metacello configurations, Fuel serializer, StartupLoader, ...
  • Track 3: VM and internals - Building a VM, basics of VM recap, state of VMs, Plugins, FFI Plugin, Alien. Interact with the external world.
  • Track 4: Bleeding edge stuff: PharoKernel, how to create one image with what we need, ...
So that when the "Conference" style days that follow do happen, attendees are somewhat more aligned. This community needs traction and "University" style days could possibly provide that.

I managed to get the iOS VM working on my iPad2!

Long story short: it runs. Performance looks decent.

Pharo runs on iOS

Just for you to know, you need to do a double touch to get the pop up menu for doIts and so on to show. It is a pain if you ask me. In fact, I am using an external bluetooth keyboard and that is much better for dealing with Pharo on iOS. It is thus possible to program directly on the iPad with that. Just need to define a set of KeyBindings that make sense (Cmd-D should be brought back for example).
Thanks to Esteban Lorenzano for helping me here! I got a copy of his own folders, and ended up with the same symptoms: StackVM starting and then closing without even opening a screen.
Key learning points here if you want to succeed:
  • Don't try to compile from cog-osx C sources right away, regenerate them from VMMaker of there will be a ton of hardcoded path values in the thing. generate the sources from Pharo.
  • Remove the app from you iPad (delete it) before new compiles. It shouldn't be this way but, in reality, it is!
  • Have the right CMake version: 2.8.7
  • Don't fret about having a message in the output of Xcode telling you that there is not enough memory or a missing controller, it just means you need to kill the app in the iPad. Well, the controller thing is normal, so don't link that message with the fact that it cannot start the image.
  • Clean the damn "Derived" date that Xcode creates (when it indexes files) to be sure that you are dealing with things you produced. (Folder lives in: /Users/philippeback/Library/Developer/Xcode/DerivedData/ for me). In fact I have put that folder into the Finder favorites bar to be sure I can get rid of its contents fast.
  • Don't forget to run the 'remove commit info' script or everything will go south. You don't need to do this more than once.
In fact I wrote the whole procedure down and will make a video on youtube showing the details. Stay tuned as I will do it next week.
In the evening I played a bit more with the thing and make the following:
In fact this made me think that we need two modes on such a device:
  1. A development mode, where they keyboard is fully available and the Cursor is shown. Reaching for the screen is a pain, so a lot of things should be doable with keybindings.
  2. A user/touch interaction mode, where there is no Cursor shown. This is great for interacting with Morphs for example.
I've been developing a touch-based app in another language and the app can run as a Flash thing on the desktop or as an app on iOS, Android and so on. But touch is not the same as WIMP. You can't assume you can hover over things, so the interaction is different. A long press is usual on touch, where it is not on the desktop. Same for double touch. So, development more is really another "interaction paradigm" to be supported.
I like the fact that I can use the screen in portrait mode. This makes me think of the original Alto. I love it 🙂
Back to PharoConf...

Business with Pharo presentations

This was also quite a chunk of the day, and it was interesting to see all the stuff people are doing with Pharo. It is really amazing. For me, Pharo looks like the secret weapon that can propel a team ahead of the competition. I have made the strategic choice to go that way with my business when it comes to some styles of mobile apps as well as for SQA activities. So, this is one more tool to the stable.

Ideas for some fun

My friend David Lovera took his laptop with him and demonstrated his 3D Visual Factory software running on Windows with Direct3D and DirectX 9 (I did a podcast episode in the past so that you can listen to some key features of the solution). This has nothing to do with Pharo per se, but we discussed the opportunity to integrate his engine with a Pharo package providing an API to the objects he manages in the engine. This is easy to do and would give a powerful 3D visualization possibility. We'll integrate this with a Zinc gateway so that one can play the master of several machines.Add to this that he manages Video/Music synchronization and MP3 playback and there is a hell of possibilities here, especially when coupling it with an Arduino for I/O exchanges with the real world.

An injection of motivation

I am writing this post on the sunday after the conference so, there have been some messages posted on the mailing list. One of them was an  answer by Igor Stasenko, the Ukrainian killer brain, saying that he go a massive injection of motivation from the conference. Man, are you right!!!! That is the single most important thing to take away from the conference. Let's keep on trucking!