Can I use interactive command line for Squeak/Pharo development? - user-interface

I tried to install Squeak/Pharo into Ubuntu server machine.
./squeak -vm-display-null ./Pharo-1.2.2-12353/Pharo-1.2.image
It executed, but there was no command-line. No way to use without GUI?

Have a look at Coral, it provides a scripting interface to Pharo. Not sure where to find up-to-date documentation, but there is a build on the Pharo Build Server.

You can send scripts by parameter to the VM.
./squeak -vm-display-null ./Pharo-1.2.2-12353/Pharo-1.2.image myScript.st
But that's all you can do apart from Coral. Otherwise you should use GNUSmalltalk

I believe in the current VM you have to use a full "file:///" URL, a choice made a while back and only recently having been discussed as wanting to be reversed.

I am not sure if I understand your needs correctly, but I guess you could write a few liner read-eval loop, and pass it as script argument at start up.
Other than that most headless usages of smalltalk are for web servers (seaside, aida), in which case there is usually an admin url which lets you to poke around image by sending messages to objects and similar. If you have seaside one click image you could try out:
http://localhost:8080/tools/classbrowser
http://localhost:8080/tools/screenshot
http://localhost:8080/tools/versionuploader
to give you a taste of what can be done.

There is Coral, but you might also look into a lighter version of Pharo called "Pharo Kernel":
Pharo Kernel is a small Smalltalk kernel that is stripped down from Pharo Core image. Meanwhile there is also a 3MB Pharo-Kernel-Gofer image available that has networking support and Gofer (a pharo installer to load packages) installed.
Check it out at https://ci.inria.fr/pharo-contribution/view/Pharo-Kernel-2.0/job/PharoKernel2.0/

Related

What is the right way to share / reuse Ruby code on different machines?

I have a VPS and usually I write Ruby scripts for daily tasks. Sometimes I want to use the same scripts / methods on my home machine too. How should I share and reuse the already written codes between the too machine? Should I write a gem and install on both machine? Or is there a way to use the "load" method to load Ruby modules from a HTTP or maybe NFS share? HTTP would be preferable like in JavaScript / HTML, I think, however the "load" method seems to be not working with a HTTP url.
I think using github or some other source control software would be the most appropriate idea.
Sharing code via HTTP or NFS seems very weird to me. I can think of problems with loading from external sources according to reliability and security.
I would prefer a Gem or at least a git repo that I can check out when I need the code on a different machine.
Version control system like Github or BitBucket is perfect for this. You'll basically have a central repository (on their server) where you'll store your code. Suppose computer A makes a change and "pushes" it to the server, now you can easily let know computer B, C etc. that there was a change made and they can update the code that's there.
Ruby comes with a powerful package management system called RubyGems that was created for exactly this purpose.
My tool of choice for sharing scripts between various machines is Dropbox - cheap and quick solution. For me works perfectly.

Dan Kegel's crosstool is out of date -- does anyone know of a fix?

My company does Linux embedded systems using Freescale PowerPC processors.
Some years back I wrote an internal HowTo on how to use Dan Kegel's crosstool to set up a cross compiler environment for our product. I hadn't touched it since then but I recently tried it and found it doesn't work. The scripts look for files on redhat.com's ftp server that are currently not there.
The latest cross tool script is the one I am using, version 0.43.
So before I roll up my sleeves and see if I can fix it myself, I am wondering if someone has already done this. Does anyone here know Kegel well enough to contact him and ask if he is planning to do an update? (My guess is not. He works at Google now.)
Alternatively, is there a better GNU cross tool builder than Kegel's cross tool? It might be easier to switch over than to update the old one.
As it turns out Mr. Kegel was kind enough to respond to my e-mail. It turns out his original scripts have been picked up by an open-source group that calls it crosstool-ng. They did an amazing amount of work on this and the tool now uses a curses-based menu system to select the options for the cross development to generate.
You can search for file names directly in Google (try '<filename> site:ftp.redhat.com' or something similar), and often results will yield revised links to the files. If that is the problem, it should just be a case of cut and paste. Alternately, I would recommend downloading the files locally, modifying the script to see them there and then bundling them with the script.
Kegel left Google for a startup. His resume is at http://www.kegel.com/resume.html . Have you tried emailing him? He might just respond.

Zero deployment CouchDB embedded in a Windows app?

I'm probably dreaming here, but am wondering if there's any possibility of completely embedding a minimal CouchDB engine within a Windows application, such that the app can be run without requiring installation (of CouchDB/Erlang) on the user's computer.
I already provide this slimmed down / bundled ability - check here https://github.com/dch/couchdb/downloads and specifically the lean bundle at 16MiB erlang + all couch love here https://github.com/downloads/dch/couchdb/couchdb-1.1.0+COUCHDB-1152_otp_R14B03_lean.7z
Some brief notes on bundling and embedding couchdb on windows at wiki.apache.org/couchdb/Quirks_on_Windows including how to hide the erlang window (erl.exe -detached) at startup.
Ask on CouchDB #user mailing list if you want more info or help while you have a crack at this.
While not a code solution, you could use one of the bundling applications that can embed files and other files into one executable. One example would be BoxedApp.
Why bother. It is so easy to install Erlang on Windows. Just bundle up the whole thing including the erl.exe binary and have your installer unzip it into a folder. The only thing that you would need to change would be the batch files, or better yet, discard them and write your own batch file to start up CouchDb. Also, it is a good idea to use a different port that either the normal Erlang port (or the usual CouchDB port) and maybe even get Erlang to use localhost as its "shortname".
The CouchDB wiki does provide at least a few tips for Integrating CouchDB into your Windows Applications. YMMV, from what I can tell it's more or less just tips on creating a relocatable build. You'll want to likely generate a solid random admin user/password into the local.ini file during the install process and set up proper permissions on all created databases (to protect against any potential cross-site scripting vulnerabilities) in addition to ensuring the socket binding only happens on the default localhost interface.

What kind of Tools Exist for Setup Automation in Windows?

I'm looking for some type of solution for getting a window dev environment up and running quickly.
Currently we have a large setup document (50+ pages) for doing an install, and I'd like to automate this process as much as possible. The doc includes things like updating environment variables, installing programs, downloading source code, etc.
I know that the majority of these tasks can be done with a batch script, but that's kind of ugly and a lot of work. And while virtualization would be nice, it is not an option for us.
I'm wondering if anything exists for Windows that would make this less tedious. Something like Ruby's Chef would be great. Does anything like this exist for windows?
Well there is Pkgmgr.exe for unattended installation of windows components if you mix it with a powershell script you should be able to get what you want but it wont be as easy as using Chef. Check here for an example of what you can do with Pkgmgr.exe http://learn.iis.net/page.aspx/133/using-unattended-setup-to-install-iis-70/
System Center is the Microsoft way of pushing out standard desktops. It's quite heavyweight mind you.
You could use VMWare for this. Just create a base machine image, with the necessary stuff installed, and point people at the VM.

Is there a free/open source wget-like Windows program with graphical progress?

I am writing a WiX-based installer for our software. I need to download some non-trivial dependencies (like Sql Server Express 2008), then install them.
I could just use wget, but having the console open to show progress could be very confusing for non-technical people. Instead, I have been looking for a program that works just like wget, but shows its progress in a very simple window with the name of the file and the progress.
If I could show a small message that would be fantastic, but just having the GUI progress is the main thing.
I would even be interested in an existing program that almost does this, which I could recompile to add whatever I need. Since this is in an installer, it can't depend on .Net or anything else that needs installing to work.
Is anyone aware of such a program?
Why not to get wget sources and remove console output from there?
Since I did not find such a program, I wrote one. I used the latest libcurl available for Windows.
The code is not beautiful, and the program is not feature-complete, but it does what I need it to do: download from http:// while displaying a simple, attractive Window.
The titlebar is customizeable on the command-line, and I intend to allow window positioning too.
The project is hosted on google code: http://code.google.com/p/installerget/

Resources