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? 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? 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? Thanks! -Steven |
On 01-10-17 21:03, Steven R. Baker wrote:
> 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? PharoLauncher indeed. I name images after project and download date/build. I regularly move projects to a new image version. For issue fixing I nearly always download a new image and recreate the situation in that. > 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? That is right, and you'd be early in doing that :) Basically just look at how the full Pharo image is built from the minimal image. Stephan |
In reply to this post by Steven R. Baker
On Sun, Oct 1, 2017 at 10:04 PM Steven R. Baker <[hidden email]> wrote: Heya folks, 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. 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 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 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! |
In reply to this post by Steven R. Baker
I discussed with esteban sooner this summer and we really want to have a process
where people can deploy applications and not just code. Now we are not yet there. Stef On Sun, Oct 1, 2017 at 9:03 PM, Steven R. Baker <[hidden email]> 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? > > 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? > > 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? > > Thanks! > > -Steven > > > |
> On 2 Oct 2017, at 15:12, Stephane Ducasse <[hidden email]> wrote: > > I discussed with esteban sooner this summer and we really want to have a process > where people can deploy applications and not just code. > Now we are not yet there. > > Stef > > On Sun, Oct 1, 2017 at 9:03 PM, Steven R. Baker <[hidden email]> 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? pharo users tend to prefer one-per-project approach :) most people uses (or should use) pharo launcher. In fact, we want to make it the default download, is just that to get it right is complicated :) but… pharo launcher is to developers. A final app would require other stuff to be accomplished (like closing development tools, etc.). >> 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. beware: Iceberg is a cvs (like Monticello or git or svn…): it is use to store code, not to organise your project. To organise your project you have Metacello. >> >> 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? this is what is hard :) I imagine with the headless VMs we are about to finish it will be easier (to just initiate a window with your app, instead initiate a window with the full world as now). but we still require some work. >> 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? there is a keybindings framework inside pharo, but since you have a lot of development tools, it becomes hard to use (again, something that can be solved in the near future, with same approach as before, but not yet). now, to get the keybindings of the system you will need to install that *in* the system. for mac, for example, you can doit using the ObjC bridge (which does not works in 64bit images... I’m working on a UFFI replacement, but… guess what? not yet :P) and I guess using UFFI you can get that to work on windows and linux? I’m really don’t know. all you ask is *doable*… but not all your requirements are *easily* doable right now, which is want I want to fix :) Esteban >> >> Thanks! >> >> -Steven >> >> >> > |
Administrator
|
In reply to this post by Steven R. Baker
Steven Baker wrote
> using Spec It really depends on your aim. The *idea* of Spec was to write once and deploy "everywhere", but as yet there is only a Morphic backend that I know of, and you would be restricting yourself to standard desktop widgets. So, if that is not a problem, Spec might be an easy route to a working application. If you want to create a more imaginative UI, you'll probably have to hand roll on each target (e.g. Morphic for desktop, PharoJS or Amber for web). Steven Baker wrote > a GTD application in the spirit of nirvanahq, omnifocus, things, nozbe Cool! I'll be your first customer ;) Steven Baker wrote > Are people using one-per-project, or one-per-computer? Yes and yes. I prefer one per project for development projects I'm working on and one per computer for personal images (a la my own personal Dynabook). The former is also fine for personal tools, but the latter can get hairy e.g. if you're digging into the system and accidentally break an image with all your personal data in it (assuming I'm not the only one who is a little sloppy with persistence in personal contexts ha ha)[1]. Steven Baker wrote > Anyone using > PharoLauncher these days? Other tools? Yes! I now use it exclusively and love it. There are minor hiccups here and there as Pharo rapidly evolves in parallel, but Christophe and team are really responsive and helpful. I also made a project called SmallWorld [2] which is like my own personal SqueakMap/Project-catalog that keeps track of projects I care about. What makes it a little different that e.g. Pharo Catalog is that it lets me specify how *I* want to load a project (e.g. which repo/branch), which may not be the canonical way, especially if I am typical in a developer role and not a user. I built a tiny extension which hooks this into Launcher, providing a button to automatically load one of these projects into an image of my choice. Beware I am the only user (that I know of), so the UI is very primitive (a combination of GT and Magritte), but I'm happy to help anyone along if the idea seems helpful. <http://forum.world.st/file/t128965/Screenshot_2017-10-02_11.jpeg> Steven Baker wrote > 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. As Esteban mentioned, Iceberg is a vcs, so if you mean how to organize *code*, Pharo handles this automatically under the hood. The only thing you have to decide is the root folder. Typically people choose a top level folder inside the git repo for this, named 'source' (or 'src', 'repository', or 'mc'), so that you can have other top level categories like wiki, scripts, etc. If you mean project in a wider context, as in including documentation, this seems to be an open field with many different possibilities. I can't help on the other parts of your question, but am eager to hear any answers! [1] Although the beauty of Smalltalk is that there's (almost) always a way forward (see http://forum.world.st/Fwd-Oops-I-put-a-halt-in-a-startup-method-tp3800729.html) [2] https://github.com/seandenigris/Small-World ----- Cheers, Sean -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Cheers,
Sean |
In reply to this post by EstebanLM
On 02/10/17 15:28, Esteban Lorenzano wrote: >> On 2 Oct 2017, at 15:12, Stephane Ducasse <[hidden email]> wrote: >> >> I discussed with esteban sooner this summer and we really want to have a process >> where people can deploy applications and not just code. >> Now we are not yet there. >> >> Stef >> >> On Sun, Oct 1, 2017 at 9:03 PM, Steven R. Baker <[hidden email]> 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? > pharo users tend to prefer one-per-project approach :) > most people uses (or should use) pharo launcher. In fact, we want to make it the default download, is just that to get it right is complicated :) > > but… pharo launcher is to developers. A final app would require other stuff to be accomplished (like closing development tools, etc.). > >>> 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. > beware: Iceberg is a cvs (like Monticello or git or svn…): it is use to store code, not to organise your project. > To organise your project you have Metacello. > >>> 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? > this is what is hard :) > I imagine with the headless VMs we are about to finish it will be easier (to just initiate a window with your app, instead initiate a window with the full world as now). > but we still require some work. > >>> 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? > there is a keybindings framework inside pharo, but since you have a lot of development tools, it becomes hard to use (again, something that can be solved in the near future, with same approach as before, but not yet). > now, to get the keybindings of the system you will need to install that *in* the system. > > for mac, for example, you can doit using the ObjC bridge (which does not works in 64bit images... I’m working on a UFFI replacement, but… guess what? not yet :P) > and I guess using UFFI you can get that to work on windows and linux? I’m really don’t know. > > all you ask is *doable*… but not all your requirements are *easily* doable right now, which is want I want to fix :) real barriers to me. I'm looking for ways to get involved in the community again. :) -Steven > Esteban > >>> Thanks! >>> >>> -Steven >>> >>> >>> > |
Super. Just do it :)
and we will here to help you helping Pharo On Mon, Oct 2, 2017 at 5:40 PM, Steven R. Baker <[hidden email]> wrote: > > > On 02/10/17 15:28, Esteban Lorenzano wrote: >>> On 2 Oct 2017, at 15:12, Stephane Ducasse <[hidden email]> wrote: >>> >>> I discussed with esteban sooner this summer and we really want to have a process >>> where people can deploy applications and not just code. >>> Now we are not yet there. >>> >>> Stef >>> >>> On Sun, Oct 1, 2017 at 9:03 PM, Steven R. Baker <[hidden email]> 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? >> pharo users tend to prefer one-per-project approach :) >> most people uses (or should use) pharo launcher. In fact, we want to make it the default download, is just that to get it right is complicated :) >> >> but… pharo launcher is to developers. A final app would require other stuff to be accomplished (like closing development tools, etc.). >> >>>> 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. >> beware: Iceberg is a cvs (like Monticello or git or svn…): it is use to store code, not to organise your project. >> To organise your project you have Metacello. >> >>>> 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? >> this is what is hard :) >> I imagine with the headless VMs we are about to finish it will be easier (to just initiate a window with your app, instead initiate a window with the full world as now). >> but we still require some work. >> >>>> 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? >> there is a keybindings framework inside pharo, but since you have a lot of development tools, it becomes hard to use (again, something that can be solved in the near future, with same approach as before, but not yet). >> now, to get the keybindings of the system you will need to install that *in* the system. >> >> for mac, for example, you can doit using the ObjC bridge (which does not works in 64bit images... I’m working on a UFFI replacement, but… guess what? not yet :P) >> and I guess using UFFI you can get that to work on windows and linux? I’m really don’t know. >> >> all you ask is *doable*… but not all your requirements are *easily* doable right now, which is want I want to fix :) > I don't mind contributing code and time on these things, as they present > real barriers to me. I'm looking for ways to get involved in the > community again. :) > > -Steven > >> Esteban >> >>>> Thanks! >>>> >>>> -Steven >>>> >>>> >>>> >> > > |
Free forum by Nabble | Edit this page |