Pharo image shutdown after an OS signal

Sometimes you need to control how a worker image starts and stops right from the operative system. You may do it from the terminal but the really important use for this comes with automation and orchestration. In airflowing, the Pharo worker images start and stop automatically and on command from the OS and in other to shutdown, the images use the technique I’m describing here. To do this you need 3 things: ...

Improving the Amber Experience

There are many things we can do to have an Amber Smalltalk IDE that makes the difference in terms of developing experience and productivity. The best ones take a lot of effort that is currently unfunded. Maybe we should start a Kickstart campaign and change that. But in the meantime why not do smaller steps in the right direction? We could do small incremental improvements with what we already have. ...

Debugging Announcement issues in Amber Smalltalk

Using an Announcer can give you a lot of flexibility for making your Amber components interact loosely coupled. And while developing, it is normal to rename a class. Today I was working with a product and I had this announcement class with a typo OrdedProductEditRejected which I’ve renamed to OrderedProductEditRejected. None of the current Amber IDE’s have a refactoring tool to help you to rename globally and changing the methods that are using the class, so you have to go old school and rename in every place yourself.

Accepting vs. Selective

Keeping the engines running, understandably, demands attention and energy into maintaining the statu quo. A defence of the current state. Things that go under the hood, the engines that keeps things moving reliably and performing well, they usually demand tighter error margins in all its parts. The people that takes care of the engine need to be selective and rigorous to keep the system producing value.

Flow demoed at Smalltalks2014

In November 5, 6 and 7th I was at Smalltalks2014 where I presented a talk about Startups and Smalltalk that mentions flow. I want to say a thanks to the organizers for having me there to bring this topic that gave me the opportunity to share this information among many Smalltalk enthusiasts, but also because I met new friends and found some old ones. One common theme I’ve found: I had many great and deep conversations with lots of them. There is something fundamental that is interesting about this technology that seems to make people to be really conscious and thoughtful.

Controller based title change with Angular

Here is a tip on how to keep nice titles in your AngularJS-based SPA - Single Page Application. The strategy is this: Remember current title (whatever it might be) Set the title to whatever new value you want Observe when the controller gets destroyed and React restoring that previous value in the title controllers.controller('AmazingDetailController', [ '$scope', '$window', function ($scope, $window){ ...

Controller-Based Title Change in Angular

Here is a tip on how to keep nice titles in your AngularJS-based SPA - Single Page Application. The strategy is this: Remember current title (whatever it might be) Set the title to whatever new value you want Observe when the controller gets destroyed and React restoring that previous value in the title controllers.controller('AmazingDetailController', [ '$scope', '$window', function ($scope, $window){ // Sets this controller with the expected initial state // and perform any other initial activity needed $scope.initialize = function () { // Remember the previous title (whatever it might be) $scope.previousTitle = $window.document.title; $window.document.title = 'Amazing Detail!'; // Observes $destroy to restore the title of the page to its original // value once user navigates out of this controller $scope.$on('$destroy', function() { $window.document.title = $scope.previousTitle; }); }; // Does specific behavior 1 // Does specific behavior 2 // ... // Does specific behavior N $scope.initialize(); }]); A realistic use will probably be use a model that is coming from a service from the backend (or cache) or collaborating with other objects somehow. But this strategy is still valid, clean and works like a charm. ...

App, main and other controller accessors

When I’ve started flow, one of the features I wanted for it was scaffolding from the front-end and be able to do things like: Flow scaffold model: #User or: Flow scaffold crudFor: #Task and have created the Model and Controller classes and accessors in environment so you can continue developing the app pulling things from there.

flow

I’m starting this blog here to make a coder-friendly open conversation with contributors and enthusiasts about flow’s design. This blog will be doing two things in one move: A source of fresh input, so feedback, so inspiration. An output about progress on this line of work, so relevance of the mission. But lets back up a bit, what is flow after all? I like to say that flow is a mission with a framework. Here is flow’s mission from the project’s readme:

The way you understood it wrong

When I was doing engineering, I had a very good algebra teacher.* Those were the days full of vectors and subspaces and subspaces of polynomials and matrices and subspaces of matrices of polynomials. All from 7 a.m to 12 p.m. In the middle of that math trench he said once something that my head really saved. The teacher was explaining yet another concept while the sky was still dark in the morning and there was this guy that asked him to clarify a detail. ...