[squeak-dev] International text input on X11

tim Rowledge tim at rowledge.org
Thu May 5 22:33:22 UTC 2016


> On 05-05-2016, at 2:34 PM, Yoshiki Ohshima <Yoshiki.Ohshima at acm.org> wrote:
> 
> Sorry for posing a vague question...  I do have a couple of Pis (Pi
> and Pi2, but not Pi3), and have done some graphics stuff in C over
> SSH.  So I invoke my program from a shell running emacs on an SSH
> session and things appear on a display connected to a Pi.  But I have
> not tried VNC there.  I haven't done any real Squeak stuff on Pi and
> for Pi; if running Squeak on Pi and interacting with it over VNC is
> reasonably fast, I'd go with that path.  But this one involves some C
> programs and if people does some cross compiling more on a host
> computer, that is also an interesting option.

Ah, I see.

When the first Pi came out and I started on improving Scratch, things were sufficiently slow in Scratch that I did much of my work on my iMac and just test-ran the system on the Pi. Compiling the VM etc has always been on the Pi, since
a) it’s fast enough to be no problem even on a Pi B
b) I’m not about to start messing around setting up a cross-compiling system. Gcc is enough of a nuisance as it is without that extra layer of madness.

The first improvements to Scratch were to make its image run on a more recent VM, which didn’t take a lot and on the circa 2012 interpreter it was ok to do some Squeak work on the Pi. Morphic was still a bit painful in a development image. That combination sufficed to get Scratch running around 4-8X faster as measured by an assortment of example projects; it wasn’t difficult to find and fix a rather large collection of poor code.

After that I moved all the source to a modern image (4.4? 4.5?) and rewrote almost everything to use layout properly, events, etc etc. That meant we could jump to a stack vm as well - and then the Pi 2 arrived. A Pi 2 running Squeak 4.5 on a stack vm is a decent development machine and by that stage I was doing all my work on the Pi. Then Eliot & I got the Cog vm working as well, and Squeak 5/Cog/spur on a Pi 2 is pretty damn fast.

I got my first Pi 3 last august, just as we got Cog going, which is why the PICs had to be rewritten - it turned out the the first version had a curious bug that didn’t cause a fatal error on a ‘real’ ARM v7 but does on an ARM v8 running v7 emulation. A production Pi 3 with cog/spur/5 benchmarks at around 100 dorado, 10% or so of my i7 3GHz iMac  (using the shootout bmarks) and 280m bc/sec & 12m sends/s. Running my  latest Scratch version you can run power hungry projects like PacMan around twice as fast as the original Scratch on my 2011 era macbook, which I suspect is around twice as fast as one fro m’07 when Scratch was initially released.

So, don’t waste time on cross-compiling or treating a Pi as some sort of arduino/toy; it’s a real computer.  I see that kind of assumption everywhere; people asking what IDE to use to make programs for a Pi and how to download it and make it run. Argh! It’s a quad-core 1.2GHz unix supercomputer!

I recommend installing
sudo apt-get install netatalk libnss-mdns xrdp i2c-tools
then for dev work
sudo apt-get install  libX11-dev uuid-dev libcairo2-dev libpango1.0-dev autoconf libasound2-dev libssl-dev
then save some space
sudo apt-get remove wolfram-engine

set up nfs
On Pi-
`sudo aptitude install nfs-common portmap` (in jessie, no need to install)
On the current version of Raspbian, rpcbind (part of the portmap package) does not start by default. . To enable it manually, so we can mount our directory immediately:
sudo service rpcbind start
sudo update-rc.d rpcbind enable
mkdir /home/pi/DizietFS <- obviously change to suit
sudo mount -t nfs 192.168.1.65:/Users/tim /home/pi/DizietFS <- obviously, your ip & path


Now, to make it permanent, you need to edit /etc/fstab to make the directory mount at boot. I added a line to the end of /etc/fstab:

`192.168.1.65:/Users/tim /home/pi/DizietFS nfs rsize=8192,wsize=8192,timeo=14,intr,noauto,x-systemd.automount 0 0`

On iMac-
in a terminal
`sudo nano /etc/exports` (which won’t normally exist until you save it)
and add the line 
`/Users/tim -mapall=tim -alldirs -network 192.168.1.0 -mask 255.255.255.0`
`sudo nfsd restart`
should restart the daemon. 

After all that, reboot the Pi and DizietFS ought to be visible and accessible.

On windows -
no idea. Don’t do windows.

Make the LXDE GUI less irritating

edit .xsessionrc (creating if required)
add 
xsetroot  -cursor_name left_ptr&

chmod a+x .xsessionrc
reboot to get proper cursor in X instead of a big ugly X

Use an rdp client on your mac/windows machine - I use the msoft one on my iMac and it’s fine. If you expect to use xrdp most of the time, use raspi-config to set the Pi to boot to command line rather than desktop.

Pi 3 has wifi & bt built in. Sound output is via a typically lousy ( and lossy) headphone socket or the hdmi, or add a nice HAT. Sound input is only via usb sound dongle or HAT.


tim
--
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Never do card tricks for the group you play poker with.




More information about the Squeak-dev mailing list