Mapless is online again
After quite some time not having updates on Mapless, I’ve started to invest some efforts in getting it working for latests Pharo versions and incorporating and maturing its API and main features.
After quite some time not having updates on Mapless, I’ve started to invest some efforts in getting it working for latests Pharo versions and incorporating and maturing its API and main features.
When I was using Smalltalk in a daily basis I had the chance to understand quite well the things that would make productivity go high. Here are some sketches I’ve done. I didn’t do the debugger and the package manager system, and both of them have great impact on this but hopefully you can imagine how productive this could be.
I was doing a bit of housekeeping in my MacBook Pro so I can use some additional diskspace. The starting point was to do a scan with OmniDiskSweeper. OmniDiskSweeper’s User Interface allows you to easily navigate the directories that are occupying space the most so you can investigate what in those big directories is actually useful and what can be archived.
This is a really common need that AngularJS is not providing out of the box. I needed it myself for some projects and you might too? Ok, even if many will tell you that you should not program in a way that needs to use this feature, I beleive that there is plenty of people that knows exactly what they are doing. There is plenty of cases that have real and justified reasons to use this feature and they can use it properly. In short, when adequate this do not necessarily implies bad design. So here we go.
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: ...
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. ...
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.
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.
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.
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){ ...