On Wed, Aug 2, 2017 at 12:04 PM, Tim Mackinnon <tim@testit.works> wrote:
Iâd be curious about your script if it is easily handy
As said, nothing fancy at all [1]. And it keeps evolving all the time as Pharo evolves too.
(I did notice a blog article you wrote on StartupLoader a while back).
Yeah, but that post is not a bit outdated as StartupLoader changed quite a bit since I wrote the article. But the idea is still the same.
By the way - I really appreciated your article "Moving contexts and debuggers between images with Fuelâ -
Thanks. Yes, that fact made us won the first price [2]. I still remember I was sit on my living room, preparing the demo for ESUG I was thinking how could I show Fuel in a cool manner. I knew at that point we were able to serialize closures, methods, classes, etc... but I just thought "what If I serialize the debugger?". I took me 5 minutes to try it out and realized it worked from the first run hahaa. That was one of my top 5 best programming days of my life hahaha. This feature was then used for the "Fuel out stack" and to revive CI failure tests locally.
it inspired me to figure it out for debugging on AWS lambda (which is very cool BTW - and Iâll write it up soon when I have it bedded in)
Cool. I have been following your emails about having a small image and a small vm and I am very interesting on that. Well, I should be considering which was my PhD [3] hahaha [1] http://ws.stfx.eu/OCV4GOA5D6DR [2] http://www.esug.org/wiki/pier/Conferences/2011/InnovationTechnologyAwards [3] https://marianopeck.wordpress.com/2012/11/07/dr-mariano-martinez-peck/ Cheers,
Tim
On 2 Aug 2017, at 15:10, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
On Wed, Aug 2, 2017 at 10:50 AM, Tim Mackinnon <tim@testit.works> wrote:
Mariano - out of curiosity, how do you build your image - do you use zero conf and then apply a known .st script? (I used to use pharo launcher back in the day - but now I find that zeroconf is actually handier anyway).
My work flow explained below is only for when I am using stable Pharo for a paid client. In this case, I am not grabbing Pharo latest code all the time. Only every in a while. So, my workflow is as follow:
1) with zero conf I simply grab image and vm (I try to keep my app working with latest stable)
2) Apply a known load script that we keep maintained (this is somehwere in a wiki). This script contains: 2.1) settings of Author, Monticello username and pass etc. 2.2) Several custom settings/preferences that I like to change to the default image (this could be replaced by startup preferences thingy). 2.3) Workaround for bugs I hit and that are not backported to stable version. 2.4) Install 3er party libs I want for my development image (Calypso browser, code critics (now integrated), etc etc). 2.5) Finally, I load my app code.
3) Once I am done loading all of it, I save that image as "PharoMyAppTemplate.image". And I never do real work with that image.
4) Each time I need a new image (to make a new feature, a bug fix, whatever) I take "PharoMyAppTemplate.image" and I do a "save as" with either number like "PharoMyApp1.image" or "PharoMyAppBug3232.image" or ""PharoMyAppNewFeature.image" etc. I create these images many times and I don't have a strong policy on when to create new ones. Whenever I create one of these images, I upload my app code to latest code.
5) Every in a while, I update my template image. Mostly when I change my dependencies.
I can share the script if you want.
Cheers,
Tim
On 2 Aug 2017, at 13:24, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
On Wed, Aug 2, 2017 at 9:16 AM, Tim Mackinnon <tim@testit.works> wrote:
Hi - Iâve noticed that when I download a new image+vm with zeroconf (in a fresh directory) - that when I launch it, the setting Tools | Software Config Mgnmnt | Monticello | Local Cache Directory has a value that points to a directory from one of my earlier images.
Is this normal (does it store this information somewhere on my computer so that different setups can access it)?
At first I thought this was annoying - but Iâm now wondering if this is useful as Iâm guessing that there isnât any reason to have separate caches for version controlled libraries and so maybe I should actually set it to some common directory?
What is the recommended strategy?
My strategy is to use a shared repository for all my images. As part of my build image scripts I do something like this:
" =============== Personal Settings ================ " MCCacheRepository cacheDirectory: '/Users/mariano/Pharo/localRepo/' asFileReference.MCGitHubRepository cacheDirectory: '/Users/mariano/Pharo/localRepo/' asFileReference.GTPlayBook cacheDirectory: '/Users/mariano/Pharo/play-cache/' asFileReference.
GTPlayBook stashDirectory: '/Users/mariano/Pharo/play-stash/' asFileReference.
I guess you save stuff:
find /Users/mariano/Pharo/localRepo/ -type f | wc -l
*32301*
du -sh /Users/mariano/Pharo/localRepo *6.1G* /Users/mariano/Pharo/localRepo
Not only you save disk space, but also: 1) Each image build is likely to take less time as many files will be already in the cache (no need to redownload it). 2) it works as a yet another backup of your code and other packages.
-- Mariano http://marianopeck.wordpress.com
-- Mariano http://marianopeck.wordpress.com
-- Mariano http://marianopeck.wordpress.com