View source for Aphasia Development Tutorial
From Openmoko
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Return to Aphasia Development Tutorial.
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Return to Aphasia Development Tutorial.
Take a look at this example of what you can do with ex11 [1] Download from http://projects.openmoko.org/frs/?group_id=59 It is sufficient if you take the file at http://projects.openmoko.org/frs/download.php/753/ex11_lib.tgz and unzip it in your source directory.
In file /root/.profile
export DISPLAY=:0
In file /etc/hosts remove . (dot) at the end of line localhost.
127.0.0.1 localhost
In file /root/.erlang
io:format("Running Erlang from root~n"). code:add_patha("/root/trunk").
I keep my erlang source in /root/trunk
Copy Xauthority from host
scp .Xauthority phone:/root
Add localhost to it with xauth
xauth add OpenWrt/unix:0 MIT-MAGIC-COOKIE-1 cfcc5ef98f9718f90154f355c0ae9f62 exit cp .Xauthority /
I am developing a vertical market product based on Openmoko, so I want my erlang platform alone to run (no window manager nor Zhone) when the phone is switched on.
Remove packages Enlightenment and Illume.
opkg -recursive remove e-wm
This is my /etc/X11/Xsession.d/90xXWindowManager. I keep my erlang beam files at /home/root/trunk.
#!/bin/sh -e /home/root/cean/start.sh -setcookie SFEWRG34AFDSGAFG35235 -name neo@192.168.0.202 -noshell -pa /home/root/trunk -s main start > debug.txt
For Debian users it's /usr/bin/zhone-session. I keep my erlang beam files at /root/erlang/trunk
#zhone & #matchbox-keyboard-toggle & erl -setcookie SFEWRG34AFDSGAFG35235 -name neo@192.168.0.202 -noshell -pa /root/erlang/trunk -s main start > debug.txt #exec matchbox-window-manager -use_titlebar no
Replace "-s main start" with "-s your_module_name your_function_name"
All I have to do now is to re-start X whenever I want to run an uploaded app. This is what the last two menu buttons do in SciTe - stop X on the phone, and start X on the phone. As an alternative for stopping and starting X you can use Erlang's built-in hot code loading.
The svn xxx menu items is for version control if you are Using Subversion.
Type
ssh phone
to get a terminal window and type
tail -f /debug.txt
to read shell printout from the erlang process.
The better installation would be to install a minimal system and then add Erlang.
This is my runtime environment file system when erlang is installed "Quick-and-dirty" in FSO:
root@om-gta02:~# df -h Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 252544 93980 158564 37% / /dev/root 252544 93980 158564 37% /dev/.static/dev udev 2048 44 2004 2% /dev /dev/mmcblk0p1 497920 0 497920 0% /media/card tmpfs 60400 52 60348 0% /var/volatile tmpfs 60400 0 60400 0% /dev/shm
Compare to this filesystem on OpenWRT minimal with Erlang installed:
root@OpenWrt:/# df -h Filesystem Size Used Available Use% Mounted on /dev/root 246.6M 39.6M 207.0M 16% / tmpfs 61.8M 44.0K 61.7M 0% /tmp tmpfs 512.0K 0 512.0K 0% /dev
I'm using vector graphics to produce new widgets. Vector graphics is lightweight and programmable, easy to scale and rotate, and the Byte-Size is small. Use any vector-capable drawing application. I happen to use AutoCAD LT on Wine, but please suggest an open source alternative and I will be happy to create another small conversion program to translate the new drawing file to erlang source. If you have access to AutoCAD, take dxf2erl.erl from here
Screencast here
Screencast here