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
>
>
>
>

Reply via email to