On Sun, Oct 1, 2017 at 10:04 PM Steven R. Baker <ste...@stevenrbaker.com> wrote:
> Heya folks, > > [Please jump on any of my statements that sound crazy: use of Spec, > other assumptions, etc.] > > I'm starting an application in Pharo, using Spec. Basically, a GTD > application in the spirit of nirvanahq, omnifocus, things, nozbe. The > code is working just fine, but I'm left with a lot of questions about > how to organize it. > > First, is there some trick to managing images? Are people using > one-per-project, or one-per-computer? All of the above? Anyone using > PharoLauncher these days? Other tools? > Personally I rely on the image as least as possible. Even for live state which is what the image excels you can use several micro formats like fuel , ston or other files of your own definition. Code wise I am relying on git. To build a new image I use a makefile, together with pharo startup script. https://github.com/kilon/makePharo The make file does the downloading of the vm and the image to the lastest version and also the deletion of a previous installation The startup script (regular smalltalk source file) it triggers only when the image is opened the first time and it dowloads my project. The project is available also via Package Browser, it acts as an umbrella that dowload all my projects and their dependencies using metacello and git. I only save images ONLY in case I wanto to store the live state which means almost never. Code is handlied only through git and github. I use an external git client called Gitup (Mac only). I dont use Pharolauncher or Iceberg. I was planning once to replace makefile with my own gui for getting and installing latest vm and image but I never tried it because I was happy with the makefile. > I'm assuming that the current state of the art is Iceberg; where can I > find a "This is how you should organize your project using Iceberg" > document, blog, book, tutorial, video, or otherwise. > > Once the application is done, I assume I'll want to ship it in a minimal > Pharo image. Is there documentation or prior art on this? > There is project bootstrap that has such a goal its still a WIP. > Finally, is there a way to run and capture keybindings globally? I have > one part of my application (a quick-entry window) which I want summoned > from a global (OS-wide) hotkey. Has this been done before? Or is it not > easy to break the fourth wall, so to speak, and register a global > keybinding from inside the VM? > Last time I checked it was not possible to have global shortcuts the easy way. But yes you could do it. I am not aware of a GUI tool that will do this for you , you will have to do this using code. Hacking the VM sounds too extreme for me, you dont need to, you could run a forked process inside Pharo and use UFFI to detect key presses without touching the VM. Of course this si necessary only if Pharo still does not have an API for global shortcuts. UFFI can do some pretty insane stuff, but be warned that most of them are platform specific which is both a blessing and a curse. UFFI basically gives access to C libraries which means the OS libraries as well so you can manipulate anything. You even make it capture shortcuts outside Pharo, for example when your application is meant to be run on the background, with minimised or no pharo window. Thanks! > > -Steven > > > >