<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4048458491241317493</id><updated>2011-07-08T07:40:08.854+01:00</updated><category term='Themes'/><category term='Framebuffer'/><category term='plans'/><category term='Intro'/><category term='Spidermonkey'/><category term='Dillo'/><category term='Other'/><category term='Linux'/><category term='Reference'/><category term='DirectFB'/><category term='Update'/><category term='Thoughts'/><category term='apt'/><category term='altnerative distro&apos;s'/><category term='Terminal'/><category term='3MX'/><category term='Internet access'/><category term='config'/><category term='Nano-X'/><category term='Programming'/><title type='text'>Cnm Minibook Mucking About</title><subtitle type='html'>A Blog detailing my experience of mucking about with the Cnm Minibook which is part of the Wee Linux Laptop family.

The Wee Linux Laptop family includes: rendtac 700 EPC, Elonex One T, Linux Netbook, Maplin Minibook, Silverstar, Yinlips Micro PC, Sub Notebook, 3k Razorbook, Bestlink Alpha 400, HiVision Mininote, JAY-tech Jee-PC 400S, Letux 400 Linux Minibook, CnMBook, Novatech Minibook ... and many more 'sticker' brands!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-7546565403962358397</id><published>2009-06-25T22:05:00.002+01:00</published><updated>2009-06-25T22:15:47.889+01:00</updated><title type='text'>That's all there is pal, end of the line.</title><content type='html'>The above quote was from the film 2 minute warning and is fitting as it is the title of the last post to this blog. &lt;br /&gt;&lt;br /&gt;To use another film quote from Dirty Harry, "A man has to know this limits" and unfortunately I need to know my limits. I had bought the minibook as a toy to muck about with and I have learned quite a lot about Linux but I also saw that it needed a lot of work on the software side, in particular a framebuffer desktop User interface due to its limited processor power. I was thinking of trying my hand at it but due to circumstances in my life, I have to be honest in saying that I would not be able commit myself to the time to do get this off the ground nor the motivation to be the sole owner of the project.&lt;br /&gt;&lt;br /&gt;As to this blog, I am keeping it open just in case somebody finds the information useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-7546565403962358397?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/7546565403962358397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/06/thats-all-there-is-pal-end-of-line.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7546565403962358397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7546565403962358397'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/06/thats-all-there-is-pal-end-of-line.html' title='That&apos;s all there is pal, end of the line.'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-8641058866431695798</id><published>2009-06-16T23:09:00.002+01:00</published><updated>2009-06-16T23:14:05.530+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Excel VBA</title><content type='html'>In my work, we use a lot of spreadsheets. To automate parts of the process, I have created Excel VBA code. One of them is to create a series on codes on a spreadsheet in the following form 999X. For example:&lt;br /&gt;&lt;br /&gt;332A&lt;br /&gt;333A&lt;br /&gt;334A &lt;br /&gt;&lt;br /&gt;The code to do this is as follows:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;Sub temp2()&lt;br /&gt;&lt;br /&gt; Dim cell_value As String&lt;br /&gt;&lt;br /&gt;  Range("a1").Select&lt;br /&gt;  Selection.End(xlDown).Select&lt;br /&gt;  cell_value = Selection.Value&lt;br /&gt;&lt;br /&gt;  For x = 0 To 10&lt;br /&gt;    ActiveCell.Select&lt;br /&gt;    Selection.Offset(1, 0).Select&lt;br /&gt;    cell_value = get_new_value(cell_value)&lt;br /&gt;    Selection.Value = cell_value  &lt;br /&gt;  Next x&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Function get_new_value(cell_value)&lt;br /&gt;&lt;br /&gt;  Dim ipad_number As Integer&lt;br /&gt;  Dim ipad_char As Integer&lt;br /&gt;  Dim new_ipad_number As String&lt;br /&gt;&lt;br /&gt;  ipad_number = Val(Left(cell_value, 3))&lt;br /&gt;  ipad_char = Asc(Right(cell_value, 1))&lt;br /&gt;  ipad_number = ipad_number + 1&lt;br /&gt;&lt;br /&gt;  If (ipad_number &gt; 999) Then&lt;br /&gt;   ipad_number = 0&lt;br /&gt;   ipad_char = ipad_char + 1&lt;br /&gt;  End If&lt;br /&gt;  new_ipad_number = conv_to_str(ipad_number)&lt;br /&gt;  get_new_value = new_ipad_number + Chr(ipad_char)&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function conv_to_str(num_part)&lt;br /&gt;&lt;br /&gt; If (num_part &lt; 10) Then&lt;br /&gt;   new_str = "00" + LTrim(Str(num_part))&lt;br /&gt; ElseIf (num_part &gt; 9) And (num_part &lt; 100) Then&lt;br /&gt;    new_str = "0" + LTrim(Str(num_part))&lt;br /&gt; Else&lt;br /&gt;    new_str = Str(num_part)&lt;br /&gt; End If&lt;br /&gt; conv_to_str = LTrim(new_str)&lt;br /&gt;End Function&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-8641058866431695798?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/8641058866431695798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/06/excel-vba.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/8641058866431695798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/8641058866431695798'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/06/excel-vba.html' title='Excel VBA'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-2284374017924830242</id><published>2009-06-06T14:28:00.003+01:00</published><updated>2009-06-06T14:49:33.913+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reference'/><category scheme='http://www.blogger.com/atom/ns#' term='Framebuffer'/><category scheme='http://www.blogger.com/atom/ns#' term='Nano-X'/><title type='text'>Installing Nano-X</title><content type='html'>The link to download the source code for Nano-X is &lt;a href="ftp://microwindows.censoft.com/pub/microwindows/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once downloaded, extract all files usually to the microwindows-x.xx (where x.xx is version number, the version I used is 0.90).&lt;br /&gt;&lt;br /&gt;Before the source code can be compiled, a few changes to the source code need to be made before it can be compiled.  &lt;br /&gt;&lt;br /&gt;First, at terminally, enter the following command:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;cd micro-windows-0.90/src&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Next the appropriate config file for compiling needs to be copied from the Configs folder. I used the one for Framebuffer. To do this enter:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;cp ./Configs/config.fb config&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To settings in the config file needs to be amended. To do this use your favourite editor to amend config. The following settings need to be set:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;TTYKBD                   = N&lt;br /&gt;SCANKBD                  = Y&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Save file.&lt;br /&gt;&lt;br /&gt;Two of the source files, need to be edited. Firstly, edit ./mwin/winevent.c&lt;br /&gt;&lt;br /&gt;The abs macro, starting at line 16, needs to be commented out to look like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;//#if !(DOS_TURBOC | DOS_QUICKC | _MINIX | VXWORKS)&lt;br /&gt;//static int&lt;br /&gt;//abs(int n)&lt;br /&gt;//{&lt;br /&gt;// return n &gt;= 0? n: -n;&lt;br /&gt;//}&lt;br /&gt;//#endif&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Save file.&lt;br /&gt;&lt;br /&gt;Secondly, the file ./demos/nanowm/nanowm.h, needs to have line 173 commented out to look like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;//extern win *windows;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Save file.&lt;br /&gt;&lt;br /&gt;Once this is done, enter the following commands&lt;br /&gt;&lt;br /&gt;&lt;code&gt;make default&lt;br /&gt;make &lt;br /&gt;sudo make install&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The source code should have successfully compiled. &lt;br /&gt;&lt;br /&gt;The program gpm (cut and paste utility and mouse server for virtual consoles&lt;br /&gt;) needs to be installed, if not already. If it is not, then enter the following command:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo apt-get install gpm&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Switch to another virtual console by pressing ctrl+Alt+F2. Log in as normal. Move to microwindows-x.xx/src folder and enter the following command:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo ./mouse.sh&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This will activate the mouse for use in the Nano-X demos.&lt;br /&gt;&lt;br /&gt;There is a number of shell files in the microwindows/src folder that runs the demo. To run these enter&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo ./&lt;i&gt;shell-file&lt;/i&gt;.sh&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;where &lt;i&gt;shell-file&lt;/i&gt; is name of shell file. For example.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo ./demo.sh&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If everything went well, the demo should work. &lt;br /&gt;&lt;br /&gt;When I had first got Nano-X, I had got the mouse working but now it isn't. I don't think this is to do with Nano-X but with the gpm program. I will need to investigate further&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-2284374017924830242?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/2284374017924830242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/06/installing-nano-x.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/2284374017924830242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/2284374017924830242'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/06/installing-nano-x.html' title='Installing Nano-X'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-2056155179213841208</id><published>2009-06-06T13:47:00.006+01:00</published><updated>2009-06-06T14:00:15.549+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Framebuffer'/><category scheme='http://www.blogger.com/atom/ns#' term='DirectFB'/><title type='text'>DirectFB - no ma cup o' tea</title><content type='html'>I've tried a few of the demo programs of DirectFB and still don't get it. It is slow and I can't figure out what is wrong when using the keyboard buffer. As the only output is sent to the framebuffer, it is hard to debug the program and find out what is going on. &lt;br /&gt;&lt;br /&gt;I looked around for alternative solutions for a Framebuffer Desktop and found two, Nano-X (formally known as Microwindows) and Dinx. The link for Nano-X is &lt;a href="http://microwindows.censoft.com/"&gt;here&lt;/a&gt; and the link for Dinx is &lt;a href="http://dinx.sourceforge.net/"&gt;here&lt;/a&gt;. The Dinx webpage is out of date but I found the webpage to download the source code, link is &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=637"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I haven't had success trying to compile Dinx but I managed to get Nano-X compiled. First impression of Nano-X is favourable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-2056155179213841208?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/2056155179213841208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/06/directfb-not-my-cup-o-tea.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/2056155179213841208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/2056155179213841208'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/06/directfb-not-my-cup-o-tea.html' title='DirectFB - no ma cup o&apos; tea'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-6338084567040148223</id><published>2009-05-30T16:22:00.014+01:00</published><updated>2009-05-30T18:09:37.762+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='DirectFB'/><title type='text'>DirectFb - Colour and Text</title><content type='html'>Display text isn't really all that hard. The only thing you need is a truetype font. These fonts are usually supplied by your distro. In Ubuntu, they are stored in &lt;code&gt;/usr/share/fonts/truetype&lt;/code&gt;. The C code to define the font is as follows: &lt;br /&gt;&lt;br /&gt;&lt;code&gt;dfb-&amp;gt;CreateFont (dfb, "/usr/share/fonts/truetype/freefont/FreeSans.ttf", &amp;font_dsc, &amp;font&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Where:&lt;br /&gt;font_dsc is a DFBFontDescription variable that stores details about the font ie height&lt;br /&gt;font is a IDirectFBFont variable which is used to specify the font in the program.&lt;br /&gt;&lt;br /&gt;Colours are defined are RGBA color space. The wiki link about this is &lt;a href="http://en.wikipedia.org/wiki/RGBA_color_space"&gt;here&lt;/a&gt;. The colours are defined in Red, Green, Blue and Alpha. The values are defined in hexadecimal format, the wiki link for this is &lt;a href="http://en.wikipedia.org/wiki/Hexadecimal"&gt;here&lt;/a&gt;, from 0x00 to 0xFF (0 to 255). &lt;br /&gt;&lt;br /&gt;The following examples give details of the 3 primary colours: &lt;br /&gt;  &lt;br /&gt;red - &lt;code&gt;primary-&amp;gt;SetColor (primary, 0x80, 0x00, 0x0, 0xFF); &lt;/code&gt;&lt;br /&gt;green - &lt;code&gt;primary-&amp;gt;SetColor (primary, 0x0, 0x80, 0x0, 0xFF); &lt;/code&gt;&lt;br /&gt;blue - &lt;code&gt;primary-&amp;gt;SetColor (primary, 0x0, 0x00, 0x80, 0xFF); &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To get other colours, the Red, Green and Blue values will need to be set. I found a webpage that has the hex codes of various colours, the link is &lt;a href="http://cloford.com/resources/colours/500col.htm"&gt;here&lt;/a&gt;. The hex codes need to be broken up into it's Red, Green and Blue parts for use in DirectFB's SetColor. Examples are:&lt;br /&gt;&lt;br /&gt;ghostwhite which has hex code #F8F8FF - &lt;code&gt;primary-&amp;gt;SetColor (primary, 0xF8,0xF8,0xFF, 0xFF); &lt;/code&gt;&lt;br /&gt;navy which has hex code #000080 - &lt;code&gt;primary-&amp;gt;SetColor (primary, 0x00, 0x00, 0x80, 0xFF); &lt;/code&gt;&lt;br /&gt;chocolate which has hex code #D2691E - &lt;code&gt;primary-&amp;gt;SetColor (primary, 0xD2, x069, 0x1E ,0xFF);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The following code gives an example of text and colour in action:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#include &amp;lt;stdio.h&amp;#62;&lt;br /&gt;#include &amp;lt;stdlib.h&amp;#62;&lt;br /&gt;#include &amp;lt;string.h&amp;#62;&lt;br /&gt;#include &amp;lt;unistd.h&amp;#62;&lt;br /&gt;#include &amp;lt;directfb.h&amp;#62;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * (Globals)&lt;br /&gt; */&lt;br /&gt;static IDirectFB *dfb = NULL;&lt;br /&gt;static IDirectFBSurface *primary = NULL;&lt;br /&gt;static int screen_width  = 0;&lt;br /&gt;static int screen_height = 0;&lt;br /&gt;#define DFBCHECK(x...)                                         \&lt;br /&gt;  {                                                            \&lt;br /&gt;    DFBResult err = x;                                         \&lt;br /&gt;                                                               \&lt;br /&gt;    if (err != DFB_OK)                                         \&lt;br /&gt;      {                                                        \&lt;br /&gt;        fprintf( stderr, "%s &lt;%d&gt;:\n\t", __FILE__, __LINE__ ); \&lt;br /&gt;        DirectFBErrorFatal( #x, err );                         \&lt;br /&gt;      }                                                        \&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; // The font we will use to draw the text.&lt;br /&gt;static IDirectFBFont *font = NULL;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int main (int argc, char **argv)&lt;br /&gt;{&lt;br /&gt; &lt;br /&gt;   //A structure describing font properties.&lt;br /&gt;  DFBFontDescription font_dsc;&lt;br /&gt;&lt;br /&gt;  DFBSurfaceDescription dsc;&lt;br /&gt;&lt;br /&gt;  DFBCHECK (DirectFBInit (&amp;argc, &amp;argv));&lt;br /&gt;  DFBCHECK (DirectFBCreate (&amp;dfb));&lt;br /&gt;  DFBCHECK (dfb-&gt;SetCooperativeLevel (dfb, DFSCL_FULLSCREEN));&lt;br /&gt;  dsc.flags = DSDESC_CAPS;&lt;br /&gt;  dsc.caps  = DSCAPS_PRIMARY | DSCAPS_FLIPPING;&lt;br /&gt;  DFBCHECK (dfb-&gt;CreateSurface( dfb, &amp;dsc, &amp;primary ));&lt;br /&gt;  DFBCHECK (primary-&gt;GetSize (primary, &amp;screen_width, &amp;screen_height));&lt;br /&gt;&lt;br /&gt;  /*&lt;br /&gt;   * First we need to create a font interface by passing a filename&lt;br /&gt;   * and a font description to specify the desired font size. DirectFB will &lt;br /&gt;   * find (or not) a suitable font loader.&lt;br /&gt;   */&lt;br /&gt;  font_dsc.flags = DFDESC_HEIGHT;&lt;br /&gt;  font_dsc.height = 48;&lt;br /&gt;  DFBCHECK (dfb-&gt;CreateFont (dfb, "/usr/share/fonts/truetype/freefont/FreeSans.ttf", &amp;font_dsc, &amp;font));&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;  //Set the font to the surface we want to draw to.&lt;br /&gt;&lt;br /&gt;  DFBCHECK (primary-&gt;SetFont (primary, font));&lt;br /&gt;  &lt;br /&gt; &lt;br /&gt;   //Set the color that will be used to draw the text.&lt;br /&gt;   DFBCHECK (primary-&gt;SetColor (primary, 0x80, 0x00, 0x0, 0xFF));&lt;br /&gt;   DFBCHECK (primary-&gt;DrawString (primary, "This is red", -1, screen_width / 2,  screen_height / 3, DSTF_LEFT));&lt;br /&gt;&lt;br /&gt;   DFBCHECK (primary-&gt;SetColor (primary, 0x0, 0x80, 0x0, 0xFF));&lt;br /&gt;   DFBCHECK (primary-&gt;DrawString (primary, "This is green", -1, screen_width / 2,  screen_height / 2, DSTF_LEFT));&lt;br /&gt;&lt;br /&gt;   DFBCHECK (primary-&gt;SetColor (primary, 0x0, 0x00, 0x80, 0xFF));&lt;br /&gt;   DFBCHECK (primary-&gt;DrawString (primary, "This is Blue", -1, screen_width / 2,  screen_height / 4, DSTF_LEFT));&lt;br /&gt;&lt;br /&gt;   DFBCHECK (primary-&gt;Flip (primary, NULL, DSFLIP_WAITFORSYNC));&lt;br /&gt;&lt;br /&gt;  sleep(1);&lt;br /&gt;&lt;br /&gt;  font-&gt;Release (font);&lt;br /&gt;  primary-&gt;Release (primary);&lt;br /&gt;  dfb-&gt;Release (dfb);&lt;br /&gt;  &lt;br /&gt;  return 23;&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-6338084567040148223?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/6338084567040148223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/framebuffer-colour-and-text.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/6338084567040148223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/6338084567040148223'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/framebuffer-colour-and-text.html' title='DirectFb - Colour and Text'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-7696850913745801747</id><published>2009-05-28T22:30:00.016+01:00</published><updated>2009-05-30T18:09:55.417+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='DirectFB'/><title type='text'>Directfb - first impressions</title><content type='html'>DirectFB, located &lt;a href="http://www.directfb.org/"&gt;here&lt;/a&gt; is a library/C language API for the framebuffer.&lt;br /&gt;&lt;br /&gt;I've had a look at the tutorial page (&lt;a href="http://www.directfb.org/docs/DirectFB_Tutorials/"&gt;link here&lt;/a&gt;) and experimented with the first one ( &lt;a href="http://www.directfb.org/docs/DirectFB_Tutorials/simple.html"&gt;link here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;On looking at the code, the following is required as a template to be used to get a functioning DirectFB program:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;#include &amp;lt;directfb.h&amp;gt;&lt;br /&gt;&lt;br /&gt;static IDirectFB *dfb = NULL;&lt;br /&gt;static IDirectFBSurface *primary = NULL;&lt;br /&gt;static int screen_width  = 0;&lt;br /&gt;static int screen_height = 0;&lt;br /&gt;&lt;br /&gt;#define DFBCHECK(x...)                                         &lt;br /&gt;&amp;nbsp; &amp;nbsp; {                                                            &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;    DFBResult err = x;                                         &lt;br /&gt;                                                               &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;    if (err != DFB_OK)                                         &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;      {                                                        &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;        fprintf( stderr, "%s &lt;%d&gt;:\n\t", __FILE__, __LINE__ ); &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;        DirectFBErrorFatal( #x, err );                         &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;      }                                                        &lt;br /&gt;&amp;nbsp; &amp;nbsp;  }&lt;br /&gt;&lt;br /&gt;int main (int argc, char **argv)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;  DFBSurfaceDescription dsc;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;  DFBCHECK (DirectFBInit (&amp;argc, &amp;argv));&lt;br /&gt;&amp;nbsp; &amp;nbsp;  DFBCHECK (DirectFBCreate (&amp;dfb));&lt;br /&gt;&amp;nbsp; &amp;nbsp;  DFBCHECK (dfb-&gt;SetCooperativeLevel (dfb, DFSCL_FULLSCREEN));&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;  dsc.flags = DSDESC_CAPS;&lt;br /&gt;&amp;nbsp; &amp;nbsp;  dsc.caps  = DSCAPS_PRIMARY | DSCAPS_FLIPPING;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;  DFBCHECK (dfb-&gt;CreateSurface( dfb, &amp;dsc, &amp;primary ));&lt;br /&gt;&amp;nbsp; &amp;nbsp;  DFBCHECK (primary-&gt;GetSize (primary, &amp;screen_width, &amp;screen_height));&lt;br /&gt;&amp;nbsp; &amp;nbsp;  DFBCHECK (primary-&gt;SetColor (primary, 0x80, 0x80, 0xff, 0xff));&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;  // Code goes here &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;  DFBCHECK (primary-&gt;Flip (primary, NULL, 0));&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;  sleep (1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;  primary-&gt;Release( primary );&lt;br /&gt;&amp;nbsp; &amp;nbsp;  dfb-&gt;Release( dfb );&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;  return 23;&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In the above template, where the following appears:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;// Code goes here&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Enter the code which is required to do what you want to display on screen. I had experimented with drawing lines and rectangles. The code is obtained from the API reference ( &lt;a href="http://www.directfb.org/docs/DirectFB_Reference_1_0/index.html"&gt;link here&lt;/a&gt;). On my Ubuntu laptop,  version 1.01 is installed, there are API's for new versions.&lt;br /&gt;&lt;br /&gt;It has to be noted that the variables screen_width and screen_height are important to the code you put in as this gives the maximum height and width of the screen you use. This is obvious as you can't draw graphics that are bigger than your screen size. I assume that these sizes correlates to the screen resolution you have ie the higher the resolution the higher the variables. &lt;br /&gt;&lt;br /&gt;It is not really necessary to understand the ins and outs of how the template works apart from it being the building blocks to get a DirectFB program working. This can be figured out when comfortable with the API.&lt;br /&gt;&lt;br /&gt;To compile the program, enter the following command on the terminal (assuming you use Ubuntu which uses pkg-config for ease of compiling):&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;code&gt;gcc `pkg-config --cflags directfb` &lt;b&gt;filename.c&lt;/b&gt; -o &lt;b&gt;outputname&lt;/b&gt; `pkg-config --libs directfb`&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Where &lt;b&gt;filename.c&lt;/b&gt; is name of C file and &lt;b&gt;outputname&lt;/b&gt; is the name of compiled program. For example:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;code&gt;gcc `pkg-config --cflags directfb` test.c -o test `pkg-config --libs directfb`&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;It also to be noted that to run the compiled program you have to run it as root. The reason for this is that directFB needs root access to be able to communicate with the framebuffer, keyboard and mouse devices. According to the Readme file (&lt;a href="http://www.directfb.org/downloads/Core/README"&gt;link here&lt;/a&gt;) the permissions of these device can be amended so that the directFB program does not need to be run as root.&lt;br /&gt;&lt;br /&gt;To run the program, assuming it is called &lt;b&gt;test&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;sudo sudo ./test&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Displaying text is not as straightforward as a font needs to be defined beforehand. I had some difficulty with this and will require some more investigation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-7696850913745801747?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/7696850913745801747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/directfb-first-impressions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7696850913745801747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7696850913745801747'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/directfb-first-impressions.html' title='Directfb - first impressions'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-823000934982411839</id><published>2009-05-15T23:00:00.008+01:00</published><updated>2009-06-06T14:28:04.550+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reference'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Framebuffer'/><title type='text'>Frame-buffer - The first steps.</title><content type='html'>As I mentioned, I had thoughts about how to design a desktop User Interface that could be used on the LLL. The best way to do this on a resource-scarce machine like the LLL is using the framebuffer rather than X. &lt;br /&gt;&lt;br /&gt;I've made the first start on this by setting up the framebuffer on my Ubuntu laptop. There is a few steps involved on this. &lt;br /&gt;&lt;br /&gt;Firstly, the grub bootloader needs to be amended. To do this, amend the file &lt;code&gt;/boot/grub/menu.lst&lt;/code&gt; with any editor. As this is a system file, it will have to be in root mode.&lt;br /&gt;&lt;br /&gt;In menu.lst, scroll down to the bottom where the Grub Bootloader entries are located. These are always of in the format of&lt;br /&gt;&lt;br /&gt;&lt;code&gt;title ..&lt;br /&gt;root ...&lt;br /&gt;kernel ...&lt;br /&gt;initrd&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In the appropriate entry, edit the kernel line by removing the text splash and replace it with &lt;code&gt;vga=792&lt;/code&gt;. An example would look like this&lt;br /&gt;&lt;br /&gt;&lt;code&gt;title  Ubuntu 8.04.2, kernel 2.6.24-24-generic&lt;br /&gt;root  (hd0,4)&lt;br /&gt;kernel  /boot/vmlinuz-2.6.24-24-generic root=UUID=ec2c54a8-1fd7-4186-9d86-33e5e27659a8 ro quiet vga=792&lt;br /&gt;initrd  /boot/initrd.img-2.6.24-24-generic&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To use different framebuffer resolution modes refer to the following webpage -  &lt;a href= "http://tldp.org/HOWTO/Framebuffer-HOWTO-5.html"&gt;link here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Secondly, &lt;code&gt;/etc/X11/x.org&lt;/code&gt; needs to be amended to include the following text:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Section "Screen"&lt;br /&gt;Driver          "FBDev"&lt;br /&gt;&amp;nbsp; &amp;nbsp; Device          "Primary Card"&lt;br /&gt;&amp;nbsp; &amp;nbsp; Monitor         "Primary Monitor"&lt;br /&gt;&amp;nbsp; &amp;nbsp; SubSection      "Display"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Modes           "default"&lt;br /&gt;&amp;nbsp; &amp;nbsp;  EndSubSection&lt;br /&gt;EndSection&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Lastly, the vesafb modules needs to removed from the module blacklist. To do this edit &lt;code&gt;/etc/modprode.d/blacklist-framebuffer&lt;/code&gt; and comment out the vesafb module by entering a # in front of it. The entry should look like:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;#blacklist vesafb&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Reboot the computer and if everything works ok then the Framebuffer and the X11 framebuffer should be set up. To test this enter the following command at the terminal:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;ls /dev/fb*&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The following info should be displayed:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;/dev/fb0&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Also enter the command on the terminal:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;/fbset&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If successful, the framebuffer mode settings should be displayed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-823000934982411839?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/823000934982411839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/frame-buffer-first-steps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/823000934982411839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/823000934982411839'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/frame-buffer-first-steps.html' title='Frame-buffer - The first steps.'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-6212606351513144978</id><published>2009-05-15T22:56:00.002+01:00</published><updated>2009-05-15T23:00:00.262+01:00</updated><title type='text'>Update data on Microsoft Access Form via VBA - Issue 2</title><content type='html'>I had applied the code to the Access database and unfortunately it did not work. An error message was thrown up. I think it may have to do with the fact that the form I applied code gets the data from a SQL select query that uses 2 tables and ME.Dirty does not like it. &lt;br /&gt;&lt;br /&gt;I'll have to investigate this further in work-time as the best way to get the problem fixed is by using the real database rather than mock-ups at home.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-6212606351513144978?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/6212606351513144978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/update-data-on-microsoft-access-form_15.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/6212606351513144978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/6212606351513144978'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/update-data-on-microsoft-access-form_15.html' title='Update data on Microsoft Access Form via VBA - Issue 2'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-2419965029953297028</id><published>2009-05-09T16:51:00.007+01:00</published><updated>2009-05-09T17:09:26.267+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><title type='text'>Alternative Desktop - Update 2.</title><content type='html'>The past week or two I have been down with the flu (not the swine variant but who knows, the way it is mutating I could have caught the alcohol variant?). With the snorters and eyeballs nearly falling out of my head, I couldn't do anything but hold up in bed until it passed. When it did pass a little, I worked on the MS Access problem and had some more time to think about the alternative desktop I had mentioned. &lt;br /&gt;&lt;br /&gt;I was thinking about how to display the application in context of the overall User Interface. As many different types of application with differing ways of displaying output are used, it will be a issue on how to implement it. I think the most crucial ones are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The way the data is displayed ie text areas or cells&lt;/li&gt;&lt;br /&gt;&lt;li&gt;What parts are read only and what is read/write&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The way the data is represented in terms of colour font etc to highlight data&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Borders which may be required to reference data ie cell co-ordinates or ruler&lt;/li&gt;&lt;/ul&gt;Another big issue that needs to be overcome is how to implement specific functionality to each application like for instance, applying formatting to text, add a formula to spreadsheet cell or insert calendar note. The only way I can think of at moment is to a right click menu. As these are scaled down versions of the ones available on the desktop of a lot less features, this may work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-2419965029953297028?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/2419965029953297028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/alternative-desktop-update-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/2419965029953297028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/2419965029953297028'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/alternative-desktop-update-2.html' title='Alternative Desktop - Update 2.'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-686787403154273510</id><published>2009-05-09T16:34:00.010+01:00</published><updated>2009-05-09T16:50:29.232+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Update data on Microsoft Access Form via VBA - Issue</title><content type='html'>I had updated the code onto the MS Access database and test it with full success. &lt;br /&gt;&lt;br /&gt;When I used the database I had no issues but when my colleagues used it, they sometimes got the error:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Update or CancelUpdate without AddNew or Edit&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I had never got the error but with mucking about with the database, I finally managed to replicate it. It occurs when you manually amend the contents of the fields that will be updated by button (in my case the date and time fields), try and amend the other data fields and then click on the update button. &lt;br /&gt;&lt;br /&gt;I also noticed that you manually amend the contents of the fields that will be updated by button and then click on the update button, nothing happens but when you try to exit form or goto to another field, a Record Upate query box appears.&lt;br /&gt;&lt;br /&gt;I googled around and found the problem was caused Me.Dirty being set to True. On mucking about with the code, I finally managed to come up with the solution. It involves adding VB to the After Update event of every input field to see if Me.Dirty is true and if it is then set it to False.&lt;br /&gt;&lt;br /&gt;The code is as follows:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Sub time_update_AfterUpdate()&lt;br /&gt;&amp;nbsp;&amp;nbsp;If Me.Dirty Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.Dirty = False&lt;br /&gt;&amp;nbsp;&amp;nbsp;End if &lt;br /&gt;End Sub&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Repeat for every input field.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-686787403154273510?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/686787403154273510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/update-data-on-microsoft-access-form_09.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/686787403154273510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/686787403154273510'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/update-data-on-microsoft-access-form_09.html' title='Update data on Microsoft Access Form via VBA - Issue'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-7006757162569111153</id><published>2009-05-02T19:44:00.017+01:00</published><updated>2009-05-02T21:51:35.967+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Update data on Microsoft Access Form via VBA</title><content type='html'>For obvious reasons, not going into too much detail, I work with a Microsoft Access database at work. This database has a Visual Basic Form front-end for each of use. When updating the database, I have to manually enter the time and date in the database record fields when changing any data. It is easy to auto populate the time and date fields when creating a new record but not as easy when updating existing data. &lt;br /&gt;&lt;br /&gt;It did some research and came up with the following solution:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Private Sub update_date_time_Click()&lt;br /&gt;&lt;blockquote&gt;Dim rst As Recordset&lt;br /&gt;    Dim strSearchName As String&lt;br /&gt;&lt;br /&gt;    ' Load contents database into rst&lt;br /&gt;    Set rst = Me.RecordsetClone&lt;br /&gt;    strSearchName = Me!record_key&lt;br /&gt;    ' Need to sync it with current record ME&lt;br /&gt;    rst.FindFirst "record_key = " &amp; "'" &amp; strSearchName &amp; "'"&lt;br /&gt;    &lt;br /&gt;    If rst.NoMatch Then&lt;br /&gt;            &lt;blockquote&gt;MsgBox "Record not found"&lt;/blockquote&gt;Else       &lt;blockquote&gt;Me.Bookmark = rst.Bookmark&lt;/blockquote&gt;End If&lt;/blockquote&gt;&lt;br /&gt;    With rst&lt;br /&gt;      &lt;blockquote&gt;' Modify data in local recordset.&lt;br /&gt;      .Edit&lt;br /&gt;      !Date_change = Date()&lt;br /&gt;      !Time_change = Time()&lt;br /&gt;      .Update&lt;/blockquote&gt;End With&lt;br /&gt;    rst.Close&lt;br /&gt;End Sub&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The above Visual Basic Application (VBA) subroutine is attached to a button on the MS Access database form. &lt;br /&gt;&lt;br /&gt;The following is a description of what the subroutine does:&lt;br /&gt;1) Loads the contents of the database into the Database Access Object (DAO) Recordset called rst&lt;br /&gt;2) Get the contents of the key field record_key (unique data used to identify each record) of current record into strSearchName (Me!record_key refers to the currently selected record on the form)&lt;br /&gt;3) 'Sync' the record on Recordset rst with the record on the form (done by rst.FindFirst)&lt;br /&gt;4) Edit the data on record  rst ( Date_change and Time_change with VBA functions date() and time() and then update the record on form.&lt;br /&gt;&lt;br /&gt;If attention could be drawn to the following piece of code from above:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;rst.FindFirst "record_key = " &amp; "'" &amp; strSearchName &amp; "'"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;When VBA interprets this and assuming the currently selected record on form has key rec001, it would look like:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;rst.FindFirst "record_key = 'rec001'"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In order to get the single quotes inside a string that has double quotes, you have to surround then with double quotes like "'". IIRC, this is the same in python but it took me a while and a lot of googling to figure it out!!!!&lt;br /&gt;&lt;br /&gt;For testing and reference purposes, I have included the following code which displays using msgbox, the contents of each field in the current recordset:&lt;br /&gt; &lt;br /&gt;&lt;code&gt;Private Sub display_record_data()&lt;br /&gt;&lt;blockquote&gt;Dim rst As Recordset&lt;br /&gt;    Dim strSearchName As String&lt;br /&gt;&lt;br /&gt;    Set rst = Me.RecordsetClone&lt;br /&gt;    strSearchName = Me!record_key&lt;br /&gt;    ' Need to sync it with current record ME&lt;br /&gt;    rst.FindFirst "record_key = " &amp; "'" &amp; strSearchName &amp; "'"&lt;br /&gt;    &lt;br /&gt;    If rst.NoMatch Then&lt;br /&gt;            &lt;blockquote&gt;MsgBox "Record not found"&lt;/blockquote&gt;Else&lt;br /&gt;            &lt;blockquote&gt;Me.Bookmark = rst.Bookmark&lt;/blockquote&gt;End If&lt;/blockquote&gt;&lt;br /&gt;    For Each fld In rst.Fields&lt;blockquote&gt;'Print field names.&lt;br /&gt;        MsgBox (fld.Value)&lt;/blockquote&gt;Next&lt;br /&gt;End Sub&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-7006757162569111153?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/7006757162569111153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/update-data-on-microsoft-access-form.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7006757162569111153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7006757162569111153'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/update-data-on-microsoft-access-form.html' title='Update data on Microsoft Access Form via VBA'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-389810935910094363</id><published>2009-05-02T19:41:00.003+01:00</published><updated>2009-05-02T19:44:19.020+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Intro - Other</title><content type='html'>From time to time, I intend to write posts that are unrelated to the LLL. The reason why I am doing is for the simple reason of keeping the information for future reference and I don't intend to create another blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-389810935910094363?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/389810935910094363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/intro-other.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/389810935910094363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/389810935910094363'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/05/intro-other.html' title='Intro - Other'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-5592254650092401026</id><published>2009-04-26T23:23:00.008+01:00</published><updated>2009-05-28T23:18:31.163+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Apt - some details</title><content type='html'>As I'm went about trying to get apt working on the minibook, it gave me an insight into how apt works. There is a lot of gaps in my knowledge about it but I think the following gives a basic idea of it's operation. &lt;br /&gt;&lt;br /&gt;Apt is actually a front end for dpkg. The program dpkg installs the .deb files while apt-get (one of the programs that is part of the apt suite) downloads the .deb file and the its dependencies and calls dpkg to install them onto the system. It runs any supplied pre and post installation shell script files if further configuration is needed. The program dpkg uses a database to tell it which programs are installed on the system (/var/lib/dpkg/available &amp; /var/lib/dpkg/status).&lt;br /&gt;&lt;br /&gt;On an ordinary Debian system, you would download the dpkg.deb &amp; apt.deb files, extract them using an archive tool like tar, copy and paste them to the appropriate folder then run them and it should work. Obviously as 3MX is not a true Debian, I've had to 'fudge' the system to get apt working. As I mentioned, I use the word working liberally as it when I tried to install synaptic, it broke X11 so does not working 100% correctly. &lt;br /&gt;&lt;br /&gt;Some commands are as follows:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-cache search &lt;b&gt;search string&lt;/b&gt; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;ie&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-cache search mp3&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This will display all packages that have mp3 in name and/or description.&lt;br /&gt;&lt;br /&gt;Here is a quick tutorial which I googled - &lt;a href="http://newbiedoc.sourceforge.net/tutorials/apt-get-intro/info.html.en"&gt; link here &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To display the public keys that apt uses:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-key list&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To install files:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-get install&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To display files installed on system (dpkg):&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;dpkg -l&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To store details of the apt cache to a file:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-cache dumpavail &amp;gt; avail &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To get a file (called avail) containing the apt cache into dkpg database :&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;dpkg --update-avail avail&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To get details of package selection states:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;dpkg −−get−selections&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To install a debian file and ignore any problems:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;dpkg -i --force-all debfile.deb&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-5592254650092401026?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/5592254650092401026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/apt-some-details.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/5592254650092401026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/5592254650092401026'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/apt-some-details.html' title='Apt - some details'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-7951356516474919004</id><published>2009-04-26T23:14:00.003+01:00</published><updated>2009-05-28T23:20:38.007+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3MX'/><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><title type='text'>Installing apt the easy way</title><content type='html'>I've created a simple Bash script file to install the files and put that and the required files into a tar archive.&lt;br /&gt;&lt;br /&gt;Instructions are as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Download install-apt-files.tar from - &lt;a href="http://www.filefactory.com/f/f4ae37a42ab0401b/"&gt;link here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* Where install-apt-files.tar is located on minibook, enter the following commands in terminal:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;tar -xf install-apt-files.tar&lt;br /&gt;&amp;nbsp; &amp;nbsp; cd temp-files&lt;br /&gt;&amp;nbsp; &amp;nbsp;./install-apt &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The Bash script will install the required files onto the minibook and if everything works okay, will attempt to update apt-get. If this is successful you should be able to install files by&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-get install &lt;b&gt;&lt;i&gt;package-name&lt;/i&gt;&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If for any reason, there is errors, run the following command to download the packages lists:&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-get update&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And to install the debian-archive-keyring package and apt dependencies:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-get install debian-archive-keyring &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WARNING&lt;/b&gt;: Please backup any personal files as installing programs via apt-get may break the os. The only way to fix this is to reinstll 3MX which will result in loss of data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-7951356516474919004?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/7951356516474919004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/installing-apt-easy-way.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7951356516474919004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7951356516474919004'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/installing-apt-easy-way.html' title='Installing apt the easy way'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-2798937282507286954</id><published>2009-04-21T16:07:00.027+01:00</published><updated>2009-05-28T23:58:01.962+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3MX'/><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><title type='text'>Installing apt</title><content type='html'>I've been trying to get the Debian package manager apt installed on the minibook. Rather than writing a number of topics on this, I am going to update this post. The program dpkg comes with 3MX but unfortunately the version supplied does not work and needs to be updated.&lt;br /&gt;&lt;br /&gt;Here is a howto: &lt;br /&gt;&lt;br /&gt;    * Download the following deb files:&lt;br /&gt;      apt - &lt;a href= "http://packages.debian.org/etch/mipsel/apt/download"&gt;link here&lt;/a&gt;&lt;br /&gt;      dpkg - &lt;a href= "http://packages.debian.org/etch/mipsel/dpkg/download"&gt;link here&lt;/a&gt;&lt;br /&gt;      sys-rc - &lt;a href= "http://packages.debian.org/etch/all/sysv-rc/download"&gt;link here&lt;/a&gt;&lt;br /&gt;      debianutils - &lt;a href= "http://packages.debian.org/etch/mipsel/debianutils/download"&gt;link here&lt;/a&gt;&lt;br /&gt;    * Only the apt,dpkg, and debianutils debs need to be converted to patch files. To do this following the steps in the topic at linuxlaptop forum - &lt;a href= "   http://linuxlaptopforum.ark2webdesign.co.uk/index.php/topic,382.0.html"&gt;link here&lt;/a&gt;&lt;br /&gt;    * Only one file is required from sysv.rc. To extract it, do the following -&lt;br /&gt;      Type in terminal:&lt;br /&gt;      &amp;nbsp; &amp;nbsp; &lt;code&gt;ar xv sysv-rc_2.86.ds1-38+etchnhalf.1_all&lt;/code&gt;&lt;br /&gt;      enter &lt;code&gt;mc&lt;/code&gt; (then enter)&lt;br /&gt;      Go into data.tar.gz tar&lt;br /&gt;      go into user folder&lt;br /&gt;      go into sbin folder&lt;br /&gt;      Press F5&lt;br /&gt;      copy update-rc.d file to where patch files are located&lt;br /&gt;    * Copy the three patch files, update.rc.d  &amp; dpkg_1.13.26_mipsel.deb onto memory stick&lt;br /&gt;    * Boot up minibook and insert memory stick into USB port&lt;br /&gt;    * Open terminal&lt;br /&gt;    * copy files from USB folder to root folder&lt;br /&gt;    * Type in Terminal the following commands -&lt;br /&gt;        &amp;nbsp; &amp;nbsp;&lt;code&gt;xap-install dpkg_1.13.26.patch&lt;br /&gt;        &amp;nbsp; &amp;nbsp;xap-install apt_0.6.46.4-0.1.patch&lt;br /&gt;        &amp;nbsp; &amp;nbsp;xap-install debianutils_2.17.patch&lt;br /&gt;        &amp;nbsp; &amp;nbsp;mkdir /etc/rc1.d&lt;br /&gt;        &amp;nbsp; &amp;nbsp;mkdir /etc/rc4.d&lt;br /&gt;        &amp;nbsp; &amp;nbsp;mkdir /etc/rcS.d&lt;br /&gt;        &amp;nbsp; &amp;nbsp;mkdir /etc/rc6.d&lt;br /&gt;        &amp;nbsp; &amp;nbsp;mkdir /var/backups&lt;br /&gt;        &amp;nbsp; &amp;nbsp;mkdir /usr/share/base-files&lt;br /&gt;        &amp;nbsp; &amp;nbsp;mkdir /var/lib/dpkg&lt;br /&gt;        &amp;nbsp; &amp;nbsp;touch /var/lib/dpkg/status&lt;br /&gt;        &amp;nbsp; &amp;nbsp;touch /var/lib/dpkg/available&lt;br /&gt;        &amp;nbsp; &amp;nbsp;touch /usr/share/base-files/info.dir&lt;br /&gt;        &amp;nbsp; &amp;nbsp;touch /var/backups/infodir.bak&lt;br /&gt;        &amp;nbsp; &amp;nbsp;cp update-rc.d /etc/rcS.d&lt;br /&gt;        &amp;nbsp; &amp;nbsp;cp update-rc.d /usr/sbin&lt;br /&gt;        &amp;nbsp; &amp;nbsp;echo deb http://ftp.debian.org/debian/ etch main contrib non-free &gt; /etc/apt/sources.list.d/sources.list&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The dpkg database needs to be setup.  To do this:&lt;br /&gt;&lt;br /&gt;at Terminal, enter :&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;mc&lt;/code&gt; &lt;br /&gt;(midnight commander is loaded)&lt;br /&gt;goto folder /var/lib/dpkg&lt;br /&gt;move cursor to available&lt;br /&gt;Press F4&lt;br /&gt;Enter the following in file and ensure there is two blank lines at end of file:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Package: dpkg&lt;br /&gt;Essential: yes&lt;br /&gt;Priority: required&lt;br /&gt;Section: admin&lt;br /&gt;Installed-Size: 7004&lt;br /&gt;Origin: debian&lt;br /&gt;Maintainer: Ubuntu Core Developers &lt;ubuntu-devel-discuss@lists.ubuntu.com&gt;&lt;br /&gt;Bugs: debbugs://bugs.debian.org&lt;br /&gt;Architecture: i386&lt;br /&gt;Version: 1.14.16.6ubuntu4&lt;br /&gt;Replaces: dpkg-doc-ja, dpkg-static, manpages-de (&lt;= 0.4-3), manpages-pl (&lt;= 20051117-1)&lt;br /&gt;Pre-Depends: coreutils (&gt;= 5.93-1), libc6 (&gt;= 2.4), lzma&lt;br /&gt;Suggests: apt&lt;br /&gt;Breaks: apt (&lt;&lt; 0.7.6ubuntu6), aptitude (&lt;&lt; 0.4.6.1-1ubuntu2), dpkg-dev (= 1.14.13), dpkg-dev (= 1.14.14), dpkg-dev (&lt;&lt; 1.14.6)&lt;br /&gt;Conflicts: dpkg-iasearch (&lt;&lt; 0.11), dpkg-static, sysvinit (&lt;&lt; 2.82-1)&lt;br /&gt;Size: 2295850&lt;br /&gt;Description: dpkg&lt;br /&gt;Homepage: http://wiki.debian.org/Teams/Dpkg&lt;br /&gt;Original-Maintainer: Dpkg Developers &lt;debian-dpkg@lists.debian.org&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Package: apt&lt;br /&gt;Priority: important&lt;br /&gt;Section: admin&lt;br /&gt;Installed-Size: 5200&lt;br /&gt;Maintainer: Ubuntu Core Developers &lt;ubuntu-devel-discuss@lists.ubuntu.com&gt;&lt;br /&gt;Architecture: i386&lt;br /&gt;Version: 0.7.9ubuntu17.2&lt;br /&gt;Replaces: libapt-pkg-dev (&lt;&lt; 0.3.7), libapt-pkg-doc (&lt;&lt; 0.3.7)&lt;br /&gt;Provides: libapt-pkg-libc6.7-6-4.6&lt;br /&gt;Depends: libc6 (&gt;= 2.4), libgcc1 (&gt;= 1:4.1.1-21), libstdc++6 (&gt;= 4.2.1-4)&lt;br /&gt;Recommends: ubuntu-keyring&lt;br /&gt;Suggests: apt-doc, aptitude | synaptic | gnome-apt | wajig, bzip2, dpkg-dev, gnupg, lzma&lt;br /&gt;Size: 1651326&lt;br /&gt;Description: apt&lt;br /&gt;Original-Maintainer: APT Development Team &lt;deity@lists.debian.org&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Press F10 key and select Yes then prompted to Save.&lt;br /&gt;&lt;br /&gt;Move cursor to status&lt;br /&gt;Press F4&lt;br /&gt;&lt;br /&gt;Enter the below info in file and ensure there is two blank lines at end of file:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Package: dpkg&lt;br /&gt;Essential: yes&lt;br /&gt;Status: install ok installed&lt;br /&gt;Priority: required&lt;br /&gt;Section: admin&lt;br /&gt;Installed-Size: 7004&lt;br /&gt;Origin: debian&lt;br /&gt;Maintainer: Ubuntu Core Developers &lt;ubuntu-devel-discuss@lists.ubuntu.com&gt;&lt;br /&gt;Bugs: debbugs://bugs.debian.org&lt;br /&gt;Architecture: i386&lt;br /&gt;Version: 1.14.16.6ubuntu4&lt;br /&gt;Replaces: dpkg-doc-ja, dpkg-static, manpages-de (&lt;= 0.4-3), manpages-pl (&lt;= 20051117-1)&lt;br /&gt;Pre-Depends: coreutils (&gt;= 5.93-1), libc6 (&gt;= 2.4), lzma&lt;br /&gt;Suggests: apt&lt;br /&gt;Breaks: apt (&lt;&lt; 0.7.6ubuntu6), aptitude (&lt;&lt; 0.4.6.1-1ubuntu2), dpkg-dev (= 1.14.13), dpkg-dev (= 1.14.14), dpkg-dev (&lt;&lt; 1.14.6)&lt;br /&gt;Conflicts: dpkg-iasearch (&lt;&lt; 0.11), dpkg-static, sysvinit (&lt;&lt; 2.82-1)&lt;br /&gt;Description: dpkg&lt;br /&gt;Homepage: http://wiki.debian.org/Teams/Dpkg&lt;br /&gt;Original-Maintainer: Dpkg Developers &lt;debian-dpkg@lists.debian.org&gt;&lt;br /&gt;&lt;br /&gt;Package: apt&lt;br /&gt;Status: install ok installed&lt;br /&gt;Priority: important&lt;br /&gt;Section: admin&lt;br /&gt;Installed-Size: 5200&lt;br /&gt;Maintainer: Ubuntu Core Developers &lt;ubuntu-devel-discuss@lists.ubuntu.com&gt;&lt;br /&gt;Architecture: i386&lt;br /&gt;Version: 0.7.9ubuntu17.2&lt;br /&gt;Replaces: libapt-pkg-dev (&lt;&lt; 0.3.7), libapt-pkg-doc (&lt;&lt; 0.3.7)&lt;br /&gt;Provides: libapt-pkg-libc6.7-6-4.6&lt;br /&gt;Depends: libc6 (&gt;= 2.4), libgcc1 (&gt;= 1:4.1.1-21), libstdc++6 (&gt;= 4.2.1-4)&lt;br /&gt;Recommends: ubuntu-keyring&lt;br /&gt;Suggests: apt-doc, aptitude | synaptic | gnome-apt | wajig, bzip2, dpkg-dev, gnupg, lzma&lt;br /&gt;Description: apt&lt;br /&gt;Original-Maintainer: APT Development Team &lt;deity@lists.debian.org&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Press F10 and select Yes then prompted to Save.&lt;br /&gt;&lt;br /&gt;type:&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;apt-get update&lt;br /&gt;&amp;nbsp; &amp;nbsp;apt-get install debian-archive-keyring&lt;/code&gt;&lt;br /&gt;      &lt;br /&gt;You may have to type the below commands a few times to get all dependencies installed.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-get update&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-get -f install&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Once this is done, the public keys for repository will be installed. This can be viewed with the command:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;apt-key list&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If everything works out, you should be able to install programs using apt.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WARNING&lt;/b&gt;: Please backup any personal files as installing programs via apt-get may break the os. The only way to fix this is to reinstll 3MX which will result in loss of data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-2798937282507286954?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/2798937282507286954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/installing-apt.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/2798937282507286954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/2798937282507286954'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/installing-apt.html' title='Installing apt'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-6648142386141259196</id><published>2009-04-18T13:46:00.005+01:00</published><updated>2009-05-09T16:51:52.277+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><title type='text'>Alternative Desktop - Update 1.</title><content type='html'>An anonymous commenter posted a comment on here about a number of grips about 3MX. One of them was the resource hunger of X11. X11 is commonly known as the X Windows System which is a software system that runs on Linux to allow it to implement  Graphical User Interfaces similar to Windows. &lt;br /&gt;&lt;br /&gt;On that point, I agree with the commenter. While 3MX does work, there is a lag on even basic applications like calculator and calender that does not make it a slick experience to that of a full spec machine. &lt;br /&gt;&lt;br /&gt;At the end of the post, the commenter then proposed working on a using a command line interface approach.&lt;br /&gt;&lt;br /&gt;This got my looking at my thoughts of an avatar based Desktop. Leaving out the Sci-fi stuff, it could be implemented on the mini-book with the use of the Linux framebuffer. The below link is the wiki page on it:&lt;br /&gt;&lt;br /&gt;http://en.wikipedia.org/wiki/Linux_framebuffer&lt;br /&gt;&lt;br /&gt;There are programs already like mplayer that uses the framebuffer and a library called directfb which is used to create implementations of Graphical User interfaces on embedded systems.It could be possible to implement something practical which I proposed that hopefully won't be too resource hungry.&lt;br /&gt;&lt;br /&gt;Firstly, the framebuffer is already enabled on 3MX.  I had run Midnight Commander and I'm sure that it ran in framebuffer mode with mouse enabled. I will have to double check that to make sure.&lt;br /&gt;&lt;br /&gt;Secondly, a user interface could be written with DirectFB to implement an area where the logical code of speech could be entered. As mentioned in previous post, rather than having the concept of computer programs like email, internet, calender etc, it is changed to entering commands in a normal type of speech without the user needing to know the name of any particular program.&lt;br /&gt;&lt;br /&gt;An area of the screen would be setup in order for the user to interact with the program. I can't see why this would not be too hard to do as it could be a window to a linux program without the windows decoration like as mentioned by the anon poster eLinks, w3m-img, Mutt mail etc. &lt;br /&gt;&lt;br /&gt;I think the biggest hurdle in this respect is to make it homogeneous to give the user the impression it one big seamless interface rather than a group of separate programs and windows.&lt;br /&gt;&lt;br /&gt;Another big problem is how the user would access saved files like emails and saved documents without resorting to the concept of a hierarchical computer filesystem. There are technologies like Gnome's beagle that do something similar. &lt;br /&gt;&lt;br /&gt;This could work in tandem with a distro like 3MX. I'm not sure how this would be done. Could there be a Bash script to prompt user either to go into this desktop or if they wanted to do something more, call startx to run the X11 distro? If so, it would be better than trying to design a boot loader.&lt;br /&gt;&lt;br /&gt;I'll have a look at DirectFB to see if this is possible from a 'graphical' point of view.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-6648142386141259196?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/6648142386141259196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/alternative-desktop-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/6648142386141259196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/6648142386141259196'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/alternative-desktop-update.html' title='Alternative Desktop - Update 1.'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-5245648557949927957</id><published>2009-04-18T13:25:00.002+01:00</published><updated>2009-04-18T13:43:54.733+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dillo'/><category scheme='http://www.blogger.com/atom/ns#' term='Spidermonkey'/><title type='text'>Give that a scratch</title><content type='html'>I had planned to doing some work on Dillo in order to get up to speed on C. This 'work' was to add Javascript functionality. &lt;br /&gt;&lt;br /&gt;On looking into this, it would involve too much theory and work to give any practical benefit. Firstly, I would have to find out a bit more about Javascript, HTML and HTML DOM before I can even think about thinking doing something practical with the Spidermonkey code I got off the web. &lt;br /&gt;&lt;br /&gt;Secondly, after that I would have to figure out how to get it working with Dillo. From what I can gather, the dynamic HTML part of Javascript involves a number of instances of the HTML page. For instance, a piece of javascript code in a HTML page may make an instance of the page, the new instance may involve user input which creates an instance and so one. The Dillo engine would have to altered to take account of this. This would be impractical for the Dillo plugin interface in it's current form and would have to involved altering the Dillo main code which would be impractical as far as I can tell, Dillo is still in beta stage and needs a lot of work. Trying to add Dynamic HTML support would slow it right down. &lt;br /&gt;&lt;br /&gt;As I mentioned, I had looked into this as a short-term measure. It may not be as hard as I'm making it out to be but the question is do I really want to devote a large portion of my time to this? While it would be great to be part of project and contribute to taking it forward, it does not motivate me to do something which is duplication of something that has already been done by other projects. &lt;br /&gt;&lt;br /&gt;There is also another reason why I don't want to persue this further which I'll mention in next post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-5245648557949927957?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/5245648557949927957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/give-that-scratch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/5245648557949927957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/5245648557949927957'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/give-that-scratch.html' title='Give that a scratch'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-1439834883708812866</id><published>2009-04-15T20:03:00.010+01:00</published><updated>2009-04-17T18:22:19.264+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><title type='text'>Alternative desktop.</title><content type='html'>When I got the minibook I was really impressed with the Desktop Manager, Matchbox, which was used with the default OS. It consisted entirely of icons. It was the first time I had a desktop in such a way as I always used ones that stuck to the Windows interface of taskbar and start menu.&lt;br /&gt;&lt;br /&gt;In my early days of having the minibook, I had installed a lot of software on my Ubuntu laptop like C compilers and C libraries . This brought on concerns that my laptop was open to vulnerabilities. Concerned with the possibility that my laptop could be open to attack, I installed Ubuntu on a different partition which minimal software for the sole purpose of web browsing including shopping. This may be a bit overkill and waste of hard disk space but it gives me a piece of mind. &lt;br /&gt;&lt;br /&gt;With the developments of using a different type of Desktop Manager and using an OS for a single purpose, it gave me idea of how to interact with a PC. &lt;br /&gt;&lt;br /&gt;To give a bit of background, I had an idea a few years back, which I think I posted on one of the Mandriva forums, about a Window Manager that was aimed at a certain demographic. I can't remember exactly the full details but it involved configuring the desktop to be like a billboard which would have the users interests and all they had to do was click on it. Examples of this could be like the latest fashion items, news or maybe messages from friends.&lt;br /&gt;&lt;br /&gt;With this idea in mind and with my recent experiences with the minibook which included using multiple versions of an OS for different purposes, my experience with  the minibook which due to it limited resources was used in a different way and recently reading a Scifi/Cyberpunk book (Stealing Light by Gary Gibson, a local boy up Glasgow way) it got me thinking about how we interact with computers.&lt;br /&gt;&lt;br /&gt;While the classic Windows Taskbar/icon/start menu setup may be great for business and productivity use, it does not mean it is suited for everyday purposes. Thinking about the Sci-fi/Cyberpunk book and its mention of Avatars as a means of interaction of humans and machines (a theme I have encountered in quite a few scifi books), it got me thinking if it was possible and its implications. I thought why not have an Avatar as a way of using a computer?&lt;br /&gt;&lt;br /&gt;Firstly, the computer interface. Why not a avatar or a Human face to greet you to give that human friendliness? &lt;br /&gt;&lt;br /&gt;Next, the interaction. While voice interaction is not possible on a resource scarce machine like the minibook, keyboard is suffice. At the present AI or even understanding human language, especially something as complex as English, is impossible. I can't see it too hard for anybody, especially an older member of our community who has never used a computer before, to learn a basic logical code of speech to use with the computer?&lt;br /&gt;&lt;br /&gt;This 'code of speech' could include a term what the computer (which is the operating system but for ease of use I will use computer throughout) would understand as a command and the other as the data to use. An example would be "search film booking 24/07'. The command search would be understand by the computer to search the contents of the hard drive  or internet for any  calendar booking to see film at 24/07. I believe Mozilla is planning to something similar with Firefox.&lt;br /&gt;&lt;br /&gt;Lastly, the implementation. As all software are developed with the classic windows border/minimise/maximise icon design, it is going to look out of place in this type of interface. I did a search and there is a commercial product that offers an Avatar type interface for Windows XP but from the screen shots, it looks like it's bolted on. &lt;br /&gt;&lt;br /&gt;What would be required is something more homogeneous. What If in the environment of the avatar, there is an area with output and an area with input no matter that every application used?  This would give the impression of the same interface rather than several programs. There would be no such thing and an internet browser, email program or calendar, just an input or output area.  &lt;br /&gt;&lt;br /&gt;The problem is with all of the applications that are available now won't fit into the above model. Obviously some software would have to be rewritten to use this User Interface but the answer is that it does not matter? If they needed more software, they would learn how to get alternative OS/desktop managers on their systems and then install it themselves?&lt;br /&gt;&lt;br /&gt;I'm not sure if I've explained what I have in mind properly and will it work in practice would it would be a good idea to make the computing experience a lot less intimidating and frustrating for the less technical literate and occasional user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-1439834883708812866?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/1439834883708812866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/alternative-desktop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1439834883708812866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1439834883708812866'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/alternative-desktop.html' title='Alternative desktop.'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-9004552192022808278</id><published>2009-04-15T20:00:00.002+01:00</published><updated>2009-04-15T20:02:44.180+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='Intro'/><title type='text'>Thoughts, Intro</title><content type='html'>From time to time, I am going to write posts about thoughts and ideas about anything related to my mucking about with the minibook or anything related to computing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-9004552192022808278?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/9004552192022808278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/thoughts-intro.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/9004552192022808278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/9004552192022808278'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/thoughts-intro.html' title='Thoughts, Intro'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-8800939630761687445</id><published>2009-04-15T19:46:00.004+01:00</published><updated>2009-04-15T20:00:18.008+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Spidermonkey'/><title type='text'>Spidermonkey, first thoughts</title><content type='html'>I've had a look at the Spidermonkey tutorial. My first impression is that it is not too hard to embed it into program. It looks like you when you run the program that has SM embedded into it, the SpiderMonkey JavaScript Interpreter runs the script passed to it in what is termed the Runtime.&lt;br /&gt;&lt;br /&gt;The hard part is how the Java Interpreter interacts with the program. From what I can gather, in the case of trying to get it to work with a Web browser like Dillo, you have to create a class object containing all the function using in the DOM (Document Object Model) that would do the corresponding functions in Dillo. When the script is run by the program, it should then do the functions in Dillo. An example of this is if the script had a document.write command, which writes text to the web page, an class object function in the program called document.write would be written so that text is written to a page for Dillo to display.&lt;br /&gt;&lt;br /&gt;I'll have to look into how this would be coded especially as C does not support object orientated programming. Another question I will have to look into is how much memory should be allocated to Runtime when it interprets that JS Script.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-8800939630761687445?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/8800939630761687445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/spidermonkey-first-thoughts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/8800939630761687445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/8800939630761687445'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/spidermonkey-first-thoughts.html' title='Spidermonkey, first thoughts'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-6665649870604811366</id><published>2009-04-13T18:42:00.001+01:00</published><updated>2009-05-28T23:24:52.087+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Dillo'/><category scheme='http://www.blogger.com/atom/ns#' term='Spidermonkey'/><title type='text'>Spidermonkey Javascript Engine</title><content type='html'>As I mentioned in previous post, I was looking into seeing how it would be done to get a lightweight browser working on the minibook.&lt;br /&gt;&lt;br /&gt;I have checked out the documentation on the Dillo web-browser project and it is good. There is functionality on Dillo to extend it's capabilities via plugins. I thought this would be an easy way to be able to implement JavaScript rather than having to insert it into the main Dillo sourcecode.&lt;br /&gt;&lt;br /&gt;I had also expressed the approach of trying to implement partial JavaScript functionality for the sole purpose of allowing users to log into and post of blogging and forum based sites. On doing more research, I found this is impractical as most sites use the Javascript DOM (Document Object Model)/Dynamic HTML as part of the log in process. &lt;br /&gt;&lt;br /&gt;Next onto the JavaScript Engine. Spidermonkey is the engine that Firefox uses but from the Dillo archives,it was mentioned there was also one called SEE which is located at this address:&lt;br /&gt;&lt;br /&gt;http://www.adaptive-enterprises.com.au/~d/software/see/&lt;br /&gt;&lt;br /&gt;As I'm not sure how exactly Embedding a JavaScript engine into a program, I have went for Spidermonkey to see how it works. It has excellent documentation with the generous help at the #jsapi IRC channel, I managed to get an example embedded Spidermonkey C program working. The compile command is as follows:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt; cc temp.c `pkg-config --cflags --libs  xulrunner-js`&lt;/code&gt; &lt;br /&gt;&lt;br /&gt;Next step is to understand how it actually works!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-6665649870604811366?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/6665649870604811366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/spidermonkey-javascript-engine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/6665649870604811366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/6665649870604811366'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/spidermonkey-javascript-engine.html' title='Spidermonkey Javascript Engine'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-7661168985865399488</id><published>2009-04-11T13:59:00.005+01:00</published><updated>2009-05-28T23:37:55.779+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3MX'/><category scheme='http://www.blogger.com/atom/ns#' term='Reference'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet access'/><title type='text'>Getting one's hands dirty digging at 'ra coal face.</title><content type='html'>Not being pampered with the user friendliness of Ubuntu, I have had to go onto the CLI to get  internet access working on 3MX and helping out other users of the minibook. This has been good as I've learned a wee bit about Linux and have used a few more Linux commands that I did not know of. &lt;br /&gt;&lt;br /&gt;The following is a list of some of the commands and a basic description:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;modinfo&lt;/code&gt; - program to show information about a Linux Kernel module&lt;br /&gt;&lt;code&gt;mknod&lt;/code&gt; - program to create a device file (a special file that allows Linux to communicate with a device like a USB stick)&lt;br /&gt;&lt;code&gt;zdump&lt;/code&gt; - displays info about timezone&lt;br /&gt;&lt;code&gt;hwclock&lt;/code&gt; - program for accessing the hardware clock&lt;br /&gt;&lt;code&gt;ifconfig&lt;/code&gt; - program for configuring network connection&lt;br /&gt;&lt;code&gt;iwconfig&lt;/code&gt; - program for configuring wireless connections&lt;br /&gt;&lt;code&gt;netsat&lt;/code&gt; - program for checking network configuration and connectivity&lt;br /&gt;&lt;code&gt;traceroute&lt;/code&gt; - program to test connectivity between hosts and to verify routing paths&lt;br /&gt;&lt;code&gt;pppd&lt;/code&gt; - a deamon to establish a ppp (point to point protocol) internet connection&lt;br /&gt;&lt;code&gt;chat&lt;/code&gt; - used with pppd to initiate a chat script to bring the ppp connection up.&lt;br /&gt;&lt;code&gt;lsmod&lt;/code&gt; - displays info about all modules that are loaded into kernel&lt;br /&gt;&lt;code&gt;insmod&lt;/code&gt; - load module into kernel&lt;br /&gt;&lt;code&gt;dmseg&lt;/code&gt; - program to displays the message buffer of kernel, usually for diagnostic purposes.&lt;br /&gt;&lt;br /&gt;I also got some information about the following files and folders:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;/etc/resolv.conf&lt;/code&gt; - contains the DNS addresss used with internet connection&lt;br /&gt;&lt;code&gt;/proc/devices&lt;/code&gt; - text file that contains the Major number of all devices that are setup.&lt;br /&gt;&lt;code&gt;/etc/modules&lt;/code&gt; - text file that contains all modules that are loaded into kernel at boot time&lt;br /&gt;&lt;code&gt;/lib/modules&lt;/code&gt; - folder contains all modules used by Linux, info abut them are displayed using modinfo.&lt;br /&gt;&lt;code&gt;/var/log&lt;/code&gt; - folder containing logs generated by programs and services, useful for diagnostic purposes.  The main one is messages which I think is generated by the kernel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-7661168985865399488?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/7661168985865399488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/getting-ones-hands-dirty-digging-at-ra.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7661168985865399488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7661168985865399488'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/getting-ones-hands-dirty-digging-at-ra.html' title='Getting one&apos;s hands dirty digging at &apos;ra coal face.'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-1214848265468677576</id><published>2009-04-07T19:16:00.002+01:00</published><updated>2009-04-07T19:28:58.759+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3MX'/><category scheme='http://www.blogger.com/atom/ns#' term='plans'/><title type='text'>Programming - Update 2</title><content type='html'>I mentioned in the previous update about the possibiity of working on the Hv3 web browser for 3MX. I posted on the minibook forum and was told that Hv3 is pretty slow. This sounds reasonable as Hv3 is written in Tcl/TK which is an interpreted rather than compiled language.  On a low power machine like the minibook, it would not be feasible to have to interpret a fairly large program like a web browser .&lt;br /&gt;&lt;br /&gt;The alternative is Dillo. The only feature lacking on Dillo that is essential is JavaScript. It would be a hefty task to get all the features of Javascript working but I can't see it being too hard to get partial functionality on it. As far as I can see, being able to log in and post to forums or blogs is the bare minimum that is required when browsing on today's websites. If that can be achieved then Dillo can be used for most things except internet banking and social network sites.   &lt;br /&gt;&lt;br /&gt;I've posted a message on the Dillo development list for any thoughts on it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-1214848265468677576?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/1214848265468677576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/programming-update-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1214848265468677576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1214848265468677576'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/programming-update-2.html' title='Programming - Update 2'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-7438663795793058947</id><published>2009-04-07T00:16:00.000+01:00</published><updated>2009-04-07T00:22:44.765+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3MX'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet access'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><title type='text'>Internet problems with 3MX - Update 2 - Sorted</title><content type='html'>Got it working.&lt;br /&gt;&lt;br /&gt;The fix involves changing the settings in /etc/peers/blackjack, /etc/peers/blackjack-chat and /etc/resolv.conf&lt;br /&gt;&lt;br /&gt;The changes in /etc/peers/blackjack are:&lt;br /&gt;&lt;br /&gt;amend line 1 to /dev/ttyUSB0&lt;br /&gt;at line 8 that starts with user, enter t-mobile&lt;br /&gt;at line 9 that starts with password, enter the password you use&lt;br /&gt;&lt;br /&gt;The changes to /etc/peers/blackjack-chat is to amend line 9, ensure the line says (all you are doing is replacing the second string in quotes to general.t-mobile.uk):&lt;br /&gt;OK 'AT+CGDCONT=1,"IP", "general.t-mobile.uk"'&lt;br /&gt;&lt;br /&gt;Amend /etc/resolv.conf to include the addresses of the primary and secondary DNS Servers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-7438663795793058947?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/7438663795793058947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/internet-problems-with-3mx-update-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7438663795793058947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7438663795793058947'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/internet-problems-with-3mx-update-2.html' title='Internet problems with 3MX - Update 2 - Sorted'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-4587323074963730247</id><published>2009-04-03T22:01:00.003+01:00</published><updated>2009-05-28T23:26:35.657+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Reference'/><title type='text'>Programming notes</title><content type='html'>Programming notes I had written down:&lt;br /&gt;&lt;br /&gt;Compiling Source code&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt; /configure make make install&lt;/code&gt; &lt;br /&gt;&lt;br /&gt;Some options required:&lt;br /&gt;&lt;br /&gt;                + enable-final --disable-debug --x-includes=/usr/X11R6 --x-libraries=/usr/X11R6/lib64 --with-qt-dir=/usr/lib/qt3 --with-qt-includes=/usr/lib/qt3/include --with-qt-libraries=/usr/lib/qt3/lib64&lt;br /&gt;&lt;br /&gt;Compiling source code through SDL = gcc template.c `sdl-config --cflags` `sdl-config --libs`&lt;br /&gt;&lt;br /&gt;Compiling C source code use pkg-config = gcc gst_element.c `pkg-config --cflags --libs gstreamer-0.10`&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;gcc add.c `pkg-config --cflags --libs glib-2.0`&lt;/code&gt; &lt;br /&gt;&lt;br /&gt;Compiling C source code using taglibc&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;code&gt;gcc &lt;source file&gt;.c -ltag_c -I/usr/include/taglib -o &lt;output file name&gt;&lt;/code&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C Pointers&lt;br /&gt;Commands  Explanation&lt;br /&gt;float *var;  Declaratin of var&lt;br /&gt;&amp;var          address of var&lt;br /&gt;*var          access contents of var&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-4587323074963730247?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/4587323074963730247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/programming-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/4587323074963730247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/4587323074963730247'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/programming-notes.html' title='Programming notes'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-368204374138313439</id><published>2009-04-03T21:56:00.007+01:00</published><updated>2009-05-28T23:49:47.838+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reference'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux Notes</title><content type='html'>This is notes I had written down. These are quite old and from my experience of using Mandriva (formerly known as Mandrake) and Ubuntu. Some of it may be out of date but may come in useful. &lt;br /&gt;&lt;br /&gt;Various Folder paths:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;/etc&lt;/code&gt; - Config files folder&lt;br /&gt;&lt;code&gt;/usr/lib&lt;/code&gt; - Library files for software&lt;br /&gt;&lt;code&gt;/usr/X11R6&lt;/code&gt; - X Windows folder&lt;br /&gt;&lt;code&gt;/usr/share/doc&lt;/code&gt; - Document folder for software&lt;br /&gt;&lt;code&gt;/etc/X11&lt;/code&gt; - Config files folder for X11 &lt;br /&gt;&lt;br /&gt;Files:&lt;br /&gt;&lt;code&gt;/etc/ld.so.conf&lt;/code&gt;  - Folders used for linking&lt;br /&gt;&lt;code&gt;/etc/lilo.conf&lt;/code&gt;   -         Config file for Lilo boot loader&lt;br /&gt;&lt;code&gt;/etc/X11/Xsession&lt;/code&gt;  -  X Session config file&lt;br /&gt;&lt;code&gt;/boot/grub/menu.lst&lt;/code&gt; -   menu file for grub&lt;br /&gt;&lt;code&gt;.bash_aliases &lt;/code&gt;     -      file in home directory that contains all bash aliases&lt;br /&gt;&lt;code&gt;/etc/apt/sources.list&lt;/code&gt; -   Source repository file list for apt/synaptic&lt;br /&gt;&lt;code&gt;/etc/apache2/conf.d/alias&lt;/code&gt; - Alias file to allow folders to be used for apache&lt;br /&gt;&lt;code&gt;/etc/mime.types&lt;/code&gt; -   Contains all mime types for applications &lt;br /&gt;&lt;br /&gt;&lt;code&gt;fdisk /dev/...&lt;/code&gt;     -       partition table format tool&lt;br /&gt;&lt;code&gt;mke2fs /dev/...&lt;/code&gt;  -  Create filesystem in partition (format)&lt;br /&gt;&lt;code&gt;e2fsck /dev/..&lt;/code&gt;    -        check filesystem on partition (chkfdsk)&lt;br /&gt;&lt;code&gt;dosfsck /dev/...&lt;/code&gt;  -  check dos fileystem on partition&lt;br /&gt;&lt;code&gt;startx &lt;/code&gt;          -         Start X session&lt;br /&gt;&lt;code&gt;chown -R user files &lt;/code&gt;  - Set ownership of files to &lt;user&gt; (-R used to change contents of folders)&lt;br /&gt;&lt;code&gt;chgrp -R user files &lt;/code&gt; - Set group ownership of files to &lt;user&gt; (-R used to change contents of folders)&lt;br /&gt;&lt;code&gt;chmod +-modes files &lt;/code&gt; -  Change &lt;modes&gt; of files. Modes can be r (read) w(write) x(execute). To add or remove mode add + or - before&lt;br /&gt;&lt;code&gt;kpersonalizer&lt;/code&gt;     -         Personaltion wizard for KDE&lt;br /&gt;&lt;code&gt;dcop/kdcop  &lt;/code&gt;     -       Allows KDE software to be controlled from console.&lt;br /&gt;&lt;code&gt;cc source file -o filename &lt;/code&gt; - Compile C source file&lt;br /&gt;&lt;code&gt;make (source file w/o extension) &lt;/code&gt; - Compile C source file (use makefile or source filename w/o extension)&lt;br /&gt;&lt;code&gt;g++ &lt;/code&gt; - Compile C++ source file&lt;br /&gt;&lt;code&gt;gcc  &lt;/code&gt; - Compile c source file&lt;br /&gt;&lt;code&gt;tclsh  &lt;/code&gt; - Run tcl source file&lt;br /&gt;&lt;code&gt;wish  &lt;/code&gt; - Run tcl/tk source file&lt;br /&gt;&lt;code&gt;javac &lt;/code&gt; - Compile java source file&lt;br /&gt;&lt;code&gt;cdparanoia -B   &lt;/code&gt;   -     Copy CD to Hard Disk (wave format)&lt;br /&gt;&lt;code&gt;sudo alien -k &lt;rpm file&gt; &lt;/code&gt; - convert RPM file to DEB format&lt;br /&gt;&lt;code&gt;sudo dpkg -i &lt;deb file&gt; &lt;/code&gt; - install DEB file&lt;br /&gt;&lt;code&gt;sdf -2html &lt;file&gt;.sdf  &lt;/code&gt; - Compile SDF document into HTML format&lt;br /&gt;&lt;code&gt;d2html &lt;file&gt;.sdf &lt;/code&gt; - Bash alias for convertin SDF file to HTML&lt;br /&gt;&lt;code&gt;chmog ...     &lt;/code&gt;   -   Bash alias to change ownership of file (function that does chown and chgrp at same time)&lt;br /&gt;&lt;code&gt;mysql -u root -p &lt;/code&gt; - Run mysql&lt;br /&gt;&lt;code&gt;sudo apt-get update &lt;/code&gt; - Update apt/synaptic after amending repository source file&lt;br /&gt;&lt;code&gt;sudo gparted &lt;/code&gt;      -    Disk partionioning tool&lt;br /&gt;&lt;code&gt;svn   &lt;/code&gt;            -    Subversion CVS tool&lt;br /&gt;&lt;code&gt;declare -x VAR ='...' &lt;/code&gt; - Declare a variable to Bash, accessed as $VAR ie used for directories&lt;br /&gt;&lt;code&gt;export &lt;/code&gt; - Display all Bash variables&lt;br /&gt;&lt;code&gt;sudo /etc/init.d/apache2 restart &lt;/code&gt; - Restart apache server (if changes were made to setup)&lt;br /&gt;&lt;code&gt;escputil -i -r /dev/lp0  &lt;/code&gt; - Check ink levels on printer&lt;br /&gt;&lt;code&gt;httrack &lt;webpage location&gt; &lt;/code&gt; - Download contents of website to folder&lt;br /&gt;&lt;code&gt;grep -n -i -r &lt;text&gt; &lt;folder&gt;  &lt;/code&gt; - Search for text in folder (remove -r switch is searching file) &lt;br /&gt;&lt;br /&gt;Misc:&lt;br /&gt;&lt;br /&gt;Browse contents of Audio CD's by entering &lt;code&gt;audiocd:/&lt;/code&gt; in Konqueror&lt;br /&gt;&lt;br /&gt;To Burn CD's in K3b, keep Writing mode to Auto and options to Burnfree&lt;br /&gt;&lt;br /&gt;To configure Firefox Internet broswer type in &lt;code&gt;about:config&lt;/code&gt; in web-address box. To get plugins enter &lt;code&gt;about:plugins&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To configure screen resolution: &lt;br /&gt;&lt;code&gt; &amp;nbsp; &amp;nbsp; sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak &lt;br /&gt;&amp;nbsp; &amp;nbsp; sudo gedit /etc/X11/xorg.conf&lt;/code&gt; &lt;br /&gt;&lt;br /&gt;Add 1280x800 to Section "Screen" parts&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-368204374138313439?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/368204374138313439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/linux-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/368204374138313439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/368204374138313439'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/linux-notes.html' title='Linux Notes'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-3433093012017907455</id><published>2009-04-03T21:53:00.003+01:00</published><updated>2009-04-06T22:54:41.533+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Intro'/><title type='text'>Linux - Intro</title><content type='html'>I'm going to use this blog to store details of the knowledge I have of Linux which will come in handy when using the minibook. &lt;br /&gt;&lt;br /&gt;I have written them down as reference notes and will publish them. When I have the time, I will edit them so they make more sense. In the future if I find it any more handy tips for linux I intend to publish them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-3433093012017907455?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/3433093012017907455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/linux-intro.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/3433093012017907455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/3433093012017907455'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/linux-intro.html' title='Linux - Intro'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-3920264778829277042</id><published>2009-04-03T18:33:00.003+01:00</published><updated>2009-04-03T18:59:44.603+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plans'/><title type='text'>Programming - Update 1</title><content type='html'>It's been a wee while since I published a post about what I planned to do with the minibook.&lt;br /&gt;&lt;br /&gt;Since then, I've installed 3MX and been bogged down trying to get internet access working. I had planned to spend a bit of time on this but trying to balance this with other interests in my life and with the uncertainty and frankly having to deal with the bullshit from the job that pays my bills is making it hard for me to get motivated. It is also hard to get motivated because of the really steep learning curve of getting back into C programming plus the added dimension of cross compiling and setting up test environments for a different processor.&lt;br /&gt;&lt;br /&gt;I have decided that I need to set my sights lower. I think the best way forward for the minibook is the 3MX distribution. The main problem with it, which is the primary use of the machine, is that it doesn't have a decent web-browser. Ice-Weasel is still too slow and Dillo, although a lot faster, lacks the features for today's web-browsing like Javascript. &lt;br /&gt;&lt;br /&gt;I feel that once the internet access is sorted on 3MX, I will concentrate on helping to get a decent web-browser for 3MX. It will give me the experience in C and ease of testing as the coding will be done for the 386 processor. &lt;br /&gt;&lt;br /&gt;I was thinking of helping to add Javascript support to Dillo but noticed another lightweight browser called Hv3 which does have Javascript support but is still in Alpha phase and therefore not ready for use.  I will have a look at the project to see what help I can give. &lt;br /&gt;&lt;br /&gt;The home page for Hv3 and the library which it uses called tkhtml&lt;br /&gt;&lt;br /&gt;http://tkhtml.tcl.tk/index.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-3920264778829277042?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/3920264778829277042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/programming-update-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/3920264778829277042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/3920264778829277042'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/programming-update-1.html' title='Programming - Update 1'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-1960389070855290868</id><published>2009-04-02T18:20:00.000+01:00</published><updated>2009-04-02T18:22:54.171+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3MX'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet access'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><title type='text'>Internet problems with 3MX - Update 1</title><content type='html'>Just an update.&lt;br /&gt;&lt;br /&gt;I can only get my USB dongle to be recognised on 3MX by installing the patches from cnm although I get a timeout error. As it installs the same files on both OS's and I can get an internet connection on the default OS, it sounds to me there may be something missing on 3MX. I'll check  to see if there any processes running on the default OS by using the ps command that is related to PPP.&lt;br /&gt;&lt;br /&gt;I'm not sure if 3MX or the default OS uses PPP or PPPoE (Point to Point over Ethernet) for connection. Again, I'm not sure if there is much difference between the two apart from hardware requirements. Again, another jigsaw in the puzzle.&lt;br /&gt;&lt;br /&gt;I made a start on the PPP tutorial last night and one of the suggestions was to edit the /etc/resolv.conf to enter the IP addresses of the DNS servers (which is how I finally managed to get the internet connection on the default OS working) but that didn't work. I'll continue to work through it for more suggestions. &lt;br /&gt;&lt;br /&gt;I've also noticed that some of the files that are installed through the cnm patches like gprs-dialler are shell scripts. I will print them out as well to see if they shed any light.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-1960389070855290868?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/1960389070855290868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/internet-problems-with-3mx-update-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1960389070855290868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1960389070855290868'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/04/internet-problems-with-3mx-update-1.html' title='Internet problems with 3MX - Update 1'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-5558386917045228020</id><published>2009-03-30T20:55:00.003+01:00</published><updated>2009-03-30T21:02:07.981+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3MX'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet access'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><title type='text'>Internet problems with 3MX</title><content type='html'>I've installed 3MX rc3 but unfortunately internet access is no longer working.&lt;br /&gt;&lt;br /&gt;I've tried using the patches and settings that got internet access for the original OS working but still no success.&lt;br /&gt;&lt;br /&gt;The E220 uses PPP (Point to point protocol) in order to connect to the internet. I've found a few tutorials about PPP and I'm going to have a look at them to see if I can figure out the problem. If I can't figure it out, hopefully I'll be able to rule out some causes. As a last resort, I'll revert to original OS and see what the differences are.&lt;br /&gt;&lt;br /&gt;There is an utility called wvdial which makes PPP easy. I've used it on my Ubuntu laptop and it works. It looks like it has quite a few dependencies. If I can't get nowhere with the PPP tutorials, I'll try to installed it although I don't fancy getting bogged down in dependency hell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-5558386917045228020?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/5558386917045228020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/internet-problems-with-3mx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/5558386917045228020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/5558386917045228020'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/internet-problems-with-3mx.html' title='Internet problems with 3MX'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-3408783962768012229</id><published>2009-03-21T19:21:00.000Z</published><updated>2009-03-21T19:30:51.429Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='3MX'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><title type='text'>3MX</title><content type='html'>I went onto to LLL IRC forum at the address in the following link:&lt;br /&gt;&lt;br /&gt;http://linuxlaptopforum.ark2webdesign.co.uk/index.php?PHPSESSID=f3764c66dbdb961c4a19befb6bd34213&amp;topic=300.0 &lt;br /&gt;&lt;br /&gt;I spoke to a few guys and it has made me realise that the best way to push the LLL forward is with the 3MX distro.&lt;br /&gt;&lt;br /&gt;Not sure how much help I can be but rather than mucking about, I can do something useful while learning the ropes, so to speak. &lt;br /&gt;&lt;br /&gt;As an offshoot from the IRC discussion, a useful purpose for the LLL is online banking. As most major banks only support Firefox, efforts need to be put onto that to get it working on the LLL rather than an alternative browser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-3408783962768012229?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/3408783962768012229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/3mx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/3408783962768012229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/3408783962768012229'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/3mx.html' title='3MX'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-1822450047146987845</id><published>2009-03-18T23:04:00.000Z</published><updated>2009-03-18T23:08:20.764Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reference'/><title type='text'>3G USB  Dongle details</title><content type='html'>During my investigations of setting up Internet access, I downloaded the usbutils package from the 3MX repository in order to check out the 3G dongle I had connected using lsub &lt;br /&gt;&lt;br /&gt;http://www.freeshells.ch/~wicked74/alpha400/packages/other/&lt;br /&gt;&lt;br /&gt;The details of the 3G dongle on the minibook:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;Bus 001 Device 005: ID 12d1:1003  &lt;br /&gt;Device Descriptor:&lt;br /&gt;  bLength                18&lt;br /&gt;  bDescriptorType         1&lt;br /&gt;  bcdUSB               2.00&lt;br /&gt;  bDeviceClass            0 (Defined at Interface level)&lt;br /&gt;  bDeviceSubClass         0 &lt;br /&gt;  bDeviceProtocol         0 &lt;br /&gt;  bMaxPacketSize0        64&lt;br /&gt;  idVendor           0x12d1 &lt;br /&gt;  idProduct          0x1003 &lt;br /&gt;  bcdDevice            0.00&lt;br /&gt;  iManufacturer           2 HUAWEI Technology&lt;br /&gt;  iProduct                1 HUAWEI Mobile&lt;br /&gt;  iSerial                 0 &lt;br /&gt;  bNumConfigurations      1&lt;br /&gt;  Configuration Descriptor:&lt;br /&gt;    bLength                 9&lt;br /&gt;    bDescriptorType         2&lt;br /&gt;    wTotalLength          108&lt;br /&gt;    bNumInterfaces          4&lt;br /&gt;    bConfigurationValue     1&lt;br /&gt;    iConfiguration          0 &lt;br /&gt;    bmAttributes         0xe0&lt;br /&gt;      Self Powered&lt;br /&gt;      Remote Wakeup&lt;br /&gt;    MaxPower              500mA&lt;br /&gt;    Interface Descriptor:&lt;br /&gt;      bLength                 9&lt;br /&gt;      bDescriptorType         4&lt;br /&gt;      bInterfaceNumber        0&lt;br /&gt;      bAlternateSetting       0&lt;br /&gt;      bNumEndpoints           3&lt;br /&gt;      bInterfaceClass       255 Vendor Specific Class&lt;br /&gt;      bInterfaceSubClass    255 Vendor Specific Subclass&lt;br /&gt;      bInterfaceProtocol    255 Vendor Specific Protocol&lt;br /&gt;      iInterface              0 &lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;        bmAttributes            3&lt;br /&gt;          Transfer Type            Interrupt&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;        bInterval               5&lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;        bInterval              32&lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x01  EP 1 OUT&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;        bInterval              32&lt;br /&gt;    Interface Descriptor:&lt;br /&gt;      bLength                 9&lt;br /&gt;      bDescriptorType         4&lt;br /&gt;      bInterfaceNumber        1&lt;br /&gt;      bAlternateSetting       0&lt;br /&gt;      bNumEndpoints           2&lt;br /&gt;      bInterfaceClass       255 Vendor Specific Class&lt;br /&gt;      bInterfaceSubClass    255 Vendor Specific Subclass&lt;br /&gt;      bInterfaceProtocol    255 Vendor Specific Protocol&lt;br /&gt;      iInterface              0 &lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;        bInterval              32&lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;        bInterval              32&lt;br /&gt;    Interface Descriptor:&lt;br /&gt;      bLength                 9&lt;br /&gt;      bDescriptorType         4&lt;br /&gt;      bInterfaceNumber        2&lt;br /&gt;      bAlternateSetting       0&lt;br /&gt;      bNumEndpoints           2&lt;br /&gt;      bInterfaceClass         8 Mass Storage&lt;br /&gt;      bInterfaceSubClass      6 SCSI&lt;br /&gt;      bInterfaceProtocol     80 Bulk (Zip)&lt;br /&gt;      iInterface              0 &lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x84  EP 4 IN&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;        bInterval               0&lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x03  EP 3 OUT&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;        bInterval               0&lt;br /&gt;    Interface Descriptor:&lt;br /&gt;      bLength                 9&lt;br /&gt;      bDescriptorType         4&lt;br /&gt;      bInterfaceNumber        3&lt;br /&gt;      bAlternateSetting       0&lt;br /&gt;      bNumEndpoints           2&lt;br /&gt;      bInterfaceClass         8 Mass Storage&lt;br /&gt;      bInterfaceSubClass      6 SCSI&lt;br /&gt;      bInterfaceProtocol     80 Bulk (Zip)&lt;br /&gt;      iInterface              0 &lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x04  EP 4 OUT&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;        bInterval               0&lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x85  EP 5 IN&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;        bInterval               0&lt;br /&gt;Device Qualifier (for other device speed):&lt;br /&gt;  bLength                10&lt;br /&gt;  bDescriptorType         6&lt;br /&gt;  bcdUSB               2.00&lt;br /&gt;  bDeviceClass            0 (Defined at Interface level)&lt;br /&gt;  bDeviceSubClass         0 &lt;br /&gt;  bDeviceProtocol         0 &lt;br /&gt;  bMaxPacketSize0        64&lt;br /&gt;  bNumConfigurations      1&lt;br /&gt;Device Status:     0x0001&lt;br /&gt;  Self Powered&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Details of the 3G dongle on my Ubuntu laptop:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;Bus 003 Device 002: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem&lt;br /&gt;Device Descriptor:&lt;br /&gt;  bLength                18&lt;br /&gt;  bDescriptorType         1&lt;br /&gt;  bcdUSB               2.00&lt;br /&gt;  bDeviceClass            0 (Defined at Interface level)&lt;br /&gt;  bDeviceSubClass         0 &lt;br /&gt;  bDeviceProtocol         0 &lt;br /&gt;  bMaxPacketSize0        64&lt;br /&gt;  idVendor           0x12d1 Huawei Technologies Co., Ltd.&lt;br /&gt;  idProduct          0x1003 E220 HSDPA Modem&lt;br /&gt;  bcdDevice            0.00&lt;br /&gt;  iManufacturer           2 HUAWEI Technology&lt;br /&gt;  iProduct                1 HUAWEI Mobile&lt;br /&gt;  iSerial                 0 &lt;br /&gt;  bNumConfigurations      1&lt;br /&gt;  Configuration Descriptor:&lt;br /&gt;    bLength                 9&lt;br /&gt;    bDescriptorType         2&lt;br /&gt;    wTotalLength          108&lt;br /&gt;    bNumInterfaces          4&lt;br /&gt;    bConfigurationValue     1&lt;br /&gt;    iConfiguration          0 &lt;br /&gt;    bmAttributes         0xe0&lt;br /&gt;      Self Powered&lt;br /&gt;      Remote Wakeup&lt;br /&gt;    MaxPower              500mA&lt;br /&gt;    Interface Descriptor:&lt;br /&gt;      bLength                 9&lt;br /&gt;      bDescriptorType         4&lt;br /&gt;      bInterfaceNumber        0&lt;br /&gt;      bAlternateSetting       0&lt;br /&gt;      bNumEndpoints           3&lt;br /&gt;      bInterfaceClass       255 Vendor Specific Class&lt;br /&gt;      bInterfaceSubClass    255 Vendor Specific Subclass&lt;br /&gt;      bInterfaceProtocol    255 Vendor Specific Protocol&lt;br /&gt;      iInterface              0 &lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;        bmAttributes            3&lt;br /&gt;          Transfer Type            Interrupt&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;        bInterval               5&lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0200  1x 512 bytes&lt;br /&gt;        bInterval              32&lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x01  EP 1 OUT&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0200  1x 512 bytes&lt;br /&gt;        bInterval              32&lt;br /&gt;    Interface Descriptor:&lt;br /&gt;      bLength                 9&lt;br /&gt;      bDescriptorType         4&lt;br /&gt;      bInterfaceNumber        1&lt;br /&gt;      bAlternateSetting       0&lt;br /&gt;      bNumEndpoints           2&lt;br /&gt;      bInterfaceClass       255 Vendor Specific Class&lt;br /&gt;      bInterfaceSubClass    255 Vendor Specific Subclass&lt;br /&gt;      bInterfaceProtocol    255 Vendor Specific Protocol&lt;br /&gt;      iInterface              0 &lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0200  1x 512 bytes&lt;br /&gt;        bInterval              32&lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0200  1x 512 bytes&lt;br /&gt;        bInterval              32&lt;br /&gt;    Interface Descriptor:&lt;br /&gt;      bLength                 9&lt;br /&gt;      bDescriptorType         4&lt;br /&gt;      bInterfaceNumber        2&lt;br /&gt;      bAlternateSetting       0&lt;br /&gt;      bNumEndpoints           2&lt;br /&gt;      bInterfaceClass         8 Mass Storage&lt;br /&gt;      bInterfaceSubClass      6 SCSI&lt;br /&gt;      bInterfaceProtocol     80 Bulk (Zip)&lt;br /&gt;      iInterface              0 &lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x84  EP 4 IN&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0200  1x 512 bytes&lt;br /&gt;        bInterval               0&lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x03  EP 3 OUT&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0200  1x 512 bytes&lt;br /&gt;        bInterval               0&lt;br /&gt;    Interface Descriptor:&lt;br /&gt;      bLength                 9&lt;br /&gt;      bDescriptorType         4&lt;br /&gt;      bInterfaceNumber        3&lt;br /&gt;      bAlternateSetting       0&lt;br /&gt;      bNumEndpoints           2&lt;br /&gt;      bInterfaceClass         8 Mass Storage&lt;br /&gt;      bInterfaceSubClass      6 SCSI&lt;br /&gt;      bInterfaceProtocol     80 Bulk (Zip)&lt;br /&gt;      iInterface              0 &lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x04  EP 4 OUT&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0200  1x 512 bytes&lt;br /&gt;        bInterval               0&lt;br /&gt;      Endpoint Descriptor:&lt;br /&gt;        bLength                 7&lt;br /&gt;        bDescriptorType         5&lt;br /&gt;        bEndpointAddress     0x85  EP 5 IN&lt;br /&gt;        bmAttributes            2&lt;br /&gt;          Transfer Type            Bulk&lt;br /&gt;          Synch Type               None&lt;br /&gt;          Usage Type               Data&lt;br /&gt;        wMaxPacketSize     0x0200  1x 512 bytes&lt;br /&gt;        bInterval               0&lt;br /&gt;Device Qualifier (for other device speed):&lt;br /&gt;  bLength                10&lt;br /&gt;  bDescriptorType         6&lt;br /&gt;  bcdUSB               2.00&lt;br /&gt;  bDeviceClass            0 (Defined at Interface level)&lt;br /&gt;  bDeviceSubClass         0 &lt;br /&gt;  bDeviceProtocol         0 &lt;br /&gt;  bMaxPacketSize0        64&lt;br /&gt;  bNumConfigurations      1&lt;br /&gt;Device Status:     0x0003&lt;br /&gt;  Self Powered&lt;br /&gt;  Remote Wakeup Enabled&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-1822450047146987845?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/1822450047146987845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/3g-usb-dongle-details.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1822450047146987845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1822450047146987845'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/3g-usb-dongle-details.html' title='3G USB  Dongle details'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-8860231961811217182</id><published>2009-03-18T22:56:00.000Z</published><updated>2009-03-18T23:04:05.768Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet access'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><title type='text'>Managed to get Internet access working.</title><content type='html'>After much mucking about, I managed to get internet access on the minibook!!&lt;br /&gt;&lt;br /&gt;After unsuccessfully trying the instructions on the Cnm site about mobile broadband setup, I thought of going onto the net using my Ubunntu laptop to see if there was a OpenDNS server closer to me. Luckily for me, network manager on my Ubuntu laptop was playing up and I had to use wvdial which displayed the DNS server addresses that I use on my Ubuntu Laptop. I tried it on my minibook and it worked!!!&lt;br /&gt;&lt;br /&gt;For reference, the addresses for T-mobile are:&lt;br /&gt;&lt;br /&gt;Primary: 149.254.192.126&lt;br /&gt;Secondary: 149.254.201.126&lt;br /&gt;&lt;br /&gt;I found this website which gives DNS addresses for other networks:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://www.filesaveas.com/gprs.html&lt;br /&gt;&lt;br /&gt;I posted the details on the Small Linux Laptop Forum. Hopefully I will get feedback from other members of the site to see if it works or not.&lt;br /&gt;&lt;br /&gt;http://linuxlaptopforum.ark2webdesign.co.uk/index.php/topic,425.0.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-8860231961811217182?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/8860231961811217182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/managed-to-get-internet-access-working.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/8860231961811217182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/8860231961811217182'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/managed-to-get-internet-access-working.html' title='Managed to get Internet access working.'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-7684180878071263313</id><published>2009-03-18T21:17:00.003Z</published><updated>2009-03-18T21:21:04.843Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Themes'/><title type='text'>Themes</title><content type='html'>I had originally posted this on ark2webdesign linuxlaptopforum.&lt;br /&gt;&lt;br /&gt;The Minibook supports themes for the desktop and window decorations like any other Linux distro. Poking about in the filesystem produced the following findings: &lt;br /&gt;&lt;br /&gt;For some info, there are two sorts of themes, one for the desktop and one for window decorations. The desktop is self explanatory and is the theme for the desktop and all the program icons in the various tabs as well as on the toolbar like battery and the desktop background. The window decorations are the look and style of the windows when they are opened eg close and minimise button icons, colours, thickness of window borders etc.&lt;br /&gt;&lt;br /&gt;The desktop themes are stored in folder /share/xip_style. Each theme is stored in as a sub-folder inside this, the default two are called sky-uk1 &amp; sky-uk2.  Going each theme folder contains a few files and a sub-folder called pixmaps. The style.info file is where the name of the style is stored. style-ping is a preview image of the theme. The file style.data contains details of all the desktop icons. The sub-folder pixmaps contains all the images used in the desktop theme.&lt;br /&gt;&lt;br /&gt;I copied the contents of the folder sky-uk1 to a new one in /share/xip_style called sky-uk3. As a test, I took an image off the internet and converted it to PNG format. I them copied it to /share/xip_style/sky-uk3 and background.png. I then went into Desktop Template application. The New theme appeared and I selected it. It worked although the background image is fuzzy. I don't know much about images. I think it may need downsized to be view properly.&lt;br /&gt;&lt;br /&gt;There is a problem though when trying to change themes back. When you go back into Desktop Template application, it goes back to the X11 screen which suggest the window manager has crashed. I rebooted the machine and was able to go into Desktop Template application and change theme back.&lt;br /&gt;&lt;br /&gt;To the Window decorations theme. This is a bit more complex and I haven't looked into much. These are stored in /share/themes. The name of the window manager that that minibook uses is called Matchbox. There is a tutorial on how to create themes in the following link:&lt;br /&gt;&lt;br /&gt;http://matchbox-project.org/documentation/themes/&lt;br /&gt;&lt;br /&gt;I also found a number of themes in the following link:&lt;br /&gt;&lt;br /&gt;http://matchbox-project.org/sources/matchbox-themes-extra/0.3/&lt;br /&gt;&lt;br /&gt;You can download these, unzip the file and copy the folders to /share/themes.&lt;br /&gt;&lt;br /&gt;You can change the theme by entering the following command on XTerm.&lt;br /&gt;&lt;br /&gt;matchbox-remote -t (name of theme)&lt;br /&gt;&lt;br /&gt;The names of the themes seem to correspond to the name of the folder ie blondie which is one of the default themes.&lt;br /&gt;&lt;br /&gt;matchbox-remote -t blondie&lt;br /&gt;&lt;br /&gt;I have noticed however with a few of the themes I downloaded that the minimize icon disappears.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-7684180878071263313?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/7684180878071263313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/themes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7684180878071263313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7684180878071263313'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/themes.html' title='Themes'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-7292653268193651759</id><published>2009-03-14T19:29:00.004Z</published><updated>2009-05-28T23:31:31.680+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Terminal'/><title type='text'>Configuring Xterm Shell</title><content type='html'>To get the CLI on the minibook, the Xterm patch needs to be loaded - &lt;a href="http://www.littlelinuxlaptop.com/software/Xterm.htm"&gt;link here &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I thought I would try to add an initialisation file so I can have an more informative prompt and include aliases. &lt;br /&gt;&lt;br /&gt;Mucking about with xterm, I found out it uses the Bourne shell rather than Bash shell. I did a google and found this link on how to create initialization files for the Bourne shell - &lt;a href="http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_01.html"&gt;link here&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;The link mentioned creating the intialisation file .profile in the home directory. I found the home directory by typing this command:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;code&gt;echo $HOME&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The result is /root&lt;br /&gt;&lt;br /&gt;I created .profile in /root with vi and included the command to change the prompt:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;PS1='\u\w&gt; '&lt;/blockquote&gt;&lt;br /&gt;I typed it in first at the shell prompt to test that it works which it did. I exited out of Xterm and opened it again but the prompt did not change which it should do as the Bourne shell reads the .profile on startup.&lt;br /&gt;&lt;br /&gt;The link suggested to create a file called /etc/profile with same command. I did so. I turned off minibook, turned it on, opened Xterm but did not work.&lt;br /&gt;&lt;br /&gt;I looked about the /etc folder to see if there was any similar files and found /etc/init.d/start. It is a shell script and contained several environment variables. I inserted the PS1='\u\w&gt; ' command in it to see if that worked but it bricked the machine. I done a recovery and it worked fine.&lt;br /&gt;&lt;br /&gt;I then did the following commands to search the contents of the minibooks drive to try and find any files containing the above text to set the prompt:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;cd /&lt;br /&gt;&amp;nbsp; &amp;nbsp; find . | xargs grep "PS1="&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;On searching through the disk, there can up results that the text appeared in all of the executables in /usr/bin&lt;br /&gt;&lt;br /&gt;I ran the same command on my laptop but it did not come up.&lt;br /&gt;&lt;br /&gt;Very strange.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-7292653268193651759?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/7292653268193651759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/configuring-xterm-shell.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7292653268193651759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7292653268193651759'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/configuring-xterm-shell.html' title='Configuring Xterm Shell'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-1916252725373329547</id><published>2009-03-14T18:02:00.015Z</published><updated>2009-05-28T23:35:02.000+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><title type='text'>It can't be that easy?</title><content type='html'>Found this site which gives a little tutorial on programming on the minibook - &lt;a href="http://members.home.nl/janrinze/trendtac.html"&gt; link here &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On my laptop, I downloaded the cross-compiler and extracted the zip file. On searching through it, I found the C compiler (mipsel-linux-gcc) in /mipseltools-gcc412-glibc261/bin.&lt;br /&gt;&lt;br /&gt;I then moved the extracted files to /usr/local. I put the following statement into .bashrc (this will be in home directory and obviously if you use Bash as the default shell for the terminal. If you use a different shell, put an equivalent statement in your shells configuration file) &lt;br /&gt;&lt;br /&gt;&lt;code&gt;PATH=$PATH:/usr/local/mipseltools-gcc412-glibc261/bin&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The above statement tells the Bash shell to add the path to its list where it looks for files to execute. &lt;br /&gt;&lt;br /&gt;To verify that the path has been added, enter the following command into the terminal:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;code&gt; echo $PATH &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I then followed the instructions on the tutorial, compiled the helloworld program and copied the executable onto a memory stick. I then booted up the minibook, inserted the memory stick in, run the helloworld executable and it worked!!&lt;br /&gt;&lt;br /&gt;I did a further test with a small GTK+ program &lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include &lt;gtk/gtk.h&gt;&lt;br /&gt;&lt;br /&gt;static void hello( GtkWidget *widget,&lt;br /&gt;                   gpointer   data )&lt;br /&gt;{ &lt;blockquote&gt; g_print ("Hello World\n"); &lt;/blockquote&gt; }&lt;br /&gt;&lt;br /&gt;static gboolean delete_event( GtkWidget *widget,&lt;br /&gt;                              GdkEvent  *event,&lt;br /&gt;                              gpointer   data )&lt;br /&gt;{ &lt;blockquote&gt; g_print ("delete event occurred\n");&lt;br /&gt;    return TRUE; &lt;/blockquote&gt; }&lt;br /&gt;&lt;br /&gt;static void destroy( GtkWidget *widget,&lt;br /&gt;                     gpointer   data )&lt;br /&gt;{ &lt;blockquote&gt; gtk_main_quit (); &lt;/blockquote&gt; }&lt;br /&gt;&lt;br /&gt;int main( int   argc,&lt;br /&gt;          char *argv[] )&lt;br /&gt;{ &lt;blockquote&gt; GtkWidget *window;&lt;br /&gt;    GtkWidget *button;&lt;br /&gt;    &lt;br /&gt;    gtk_init (&amp;argc, &amp;argv);&lt;br /&gt;    &lt;br /&gt;    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);&lt;br /&gt;    &lt;br /&gt;    g_signal_connect (G_OBJECT (window), "delete_event",&lt;br /&gt;        G_CALLBACK (delete_event), NULL);&lt;br /&gt;    &lt;br /&gt;    g_signal_connect (G_OBJECT (window), "destroy",&lt;br /&gt;        G_CALLBACK (destroy), NULL);&lt;br /&gt;    &lt;br /&gt;    gtk_container_set_border_width (GTK_CONTAINER (window), 10);&lt;br /&gt;    &lt;br /&gt;     button = gtk_button_new_with_label ("Hello World");&lt;br /&gt;    &lt;br /&gt;    g_signal_connect (G_OBJECT (button), "clicked",&lt;br /&gt;        G_CALLBACK (hello), NULL);&lt;br /&gt;    &lt;br /&gt;    g_signal_connect_swapped (G_OBJECT (button), "clicked",&lt;br /&gt;         G_CALLBACK (gtk_widget_destroy),&lt;br /&gt;                              G_OBJECT (window));&lt;br /&gt;    &lt;br /&gt;     gtk_container_add (GTK_CONTAINER (window), button);    &lt;br /&gt;     gtk_widget_show (button);&lt;br /&gt;    gtk_widget_show (window);  &lt;br /&gt;    gtk_main ();&lt;br /&gt;    &lt;br /&gt;    return 0; &lt;/blockquote&gt; }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I compiled it using the following command:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;code&gt;./mipsel-linux-gcc  helloworld.c -o helloworld `pkg-config --cflags --libs gtk+-2.0` &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The GTK+ program worked on the minibook as well!!!&lt;br /&gt;&lt;br /&gt;The one thing I did notice as well, is that windows are always full size even when it is specified in programs to size window.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-1916252725373329547?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/1916252725373329547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/it-cant-be-that-easy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1916252725373329547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1916252725373329547'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/it-cant-be-that-easy.html' title='It can&apos;t be that easy?'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-1939219087886955220</id><published>2009-03-13T22:09:00.004Z</published><updated>2009-03-14T18:20:22.667Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='plans'/><title type='text'>Programming</title><content type='html'>I've been doing some coding on small projects to automate steps on my MP3 collection and MP3 player (selecting albums to copy over, tag processing etc) using Python/Gtk and wanted to move onto something a bit bigger.&lt;br /&gt;&lt;br /&gt;It interests me in having the take into consideration of the limitations due to processor speed,  battery consumption, small memory size  and small disk storage when coding. This was the  main reason why I bought the minibook as it was be a great platform to do these things in.&lt;br /&gt;&lt;br /&gt;I intend to do the coding on my laptop, test it, transfer it over to the minibook via usb stick and then do full testing on there.&lt;br /&gt;&lt;br /&gt;First things first is to download the gcc- mips compiler and write some basic programs to get my C skills up to speed (It's been years since I've written anything substanial in it).&lt;br /&gt;&lt;br /&gt;After that, I need to see if it is possible to create a test environment on my laptop. I assume I'll need vmware and the debian-mips port installed on it. As I've never used virtualisation before, it's another thing to learn.&lt;br /&gt;&lt;br /&gt;EDIT:&lt;br /&gt;&lt;br /&gt;Found out there is a processor emulator called QEMU, so vmware is not required. Found a tutorial here:&lt;br /&gt;&lt;br /&gt;http://blog.mottershead.me.uk/blog/_archives/2008/9/29/3906944.html&lt;br /&gt;&lt;br /&gt;Will try it later&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-1939219087886955220?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/1939219087886955220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1939219087886955220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/1939219087886955220'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/programming.html' title='Programming'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-2284257687720548180</id><published>2009-03-13T21:54:00.001Z</published><updated>2009-03-14T18:00:46.259Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet access'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><title type='text'>Internet access</title><content type='html'>I have a t-mobile 3G dongle which I use for internet access on my laptop. Unfortunately I have not had any success in getting internet access on my Minibook with it.&lt;br /&gt;&lt;br /&gt;I have been mucking about installing patches from various sites, downgrading the kernel and reinstalling the V70 update and followed instructions on various sites but to no avail.&lt;br /&gt;&lt;br /&gt;I'm going to leave it for now and when I come back to it, I will try a process of elimination to rule out possible causes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-2284257687720548180?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/2284257687720548180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/internet-access.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/2284257687720548180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/2284257687720548180'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/internet-access.html' title='Internet access'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-5253191670664798259</id><published>2009-03-13T20:30:00.002Z</published><updated>2009-03-14T18:01:26.225Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='3MX'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><category scheme='http://www.blogger.com/atom/ns#' term='altnerative distro&apos;s'/><title type='text'>Instatlled 3MX</title><content type='html'>As far as I have read that although the Minibooks, or Little Linux laptops, are the same machine although packaged under different name's. However, I read that there are two types of machines, the major difference being that they use different recovery image format's, IMG and REC.&lt;br /&gt;&lt;br /&gt;The machine I own uses the .REC recovery format and I read somewhere that only machines with .IMG can have alternative distro's installed. The reason for this is that the distro's use the .IMG format as installation medium.&lt;br /&gt;&lt;br /&gt;I decided to download and install the 3MX distro. I have installed it on my machine. I tried a few applications and it worked fine, although a bit sluggish. I installed the original O/S from CnM and it is working fine.&lt;br /&gt;&lt;br /&gt;Just to confirm, minibooks that use the .REC recovery format can have alternative distro's working on them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-5253191670664798259?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/5253191670664798259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/instatlled-3mx.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/5253191670664798259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/5253191670664798259'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/instatlled-3mx.html' title='Instatlled 3MX'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4048458491241317493.post-7512330022005579992</id><published>2009-03-13T13:28:00.001Z</published><updated>2009-03-14T18:00:06.053Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Intro'/><title type='text'>Got Cnm MInibook</title><content type='html'>Just got the Cnm Minibook.&lt;br /&gt;&lt;br /&gt;First impressions, nifty looking piece of hardware, sturdy design. Loaded up to main menu in about 35 seconds. The User Interface is interesting. The programs are grouped into a number of tabs. Haven't tried any of the programs and not planning to as the Minibook is frankly too slow for the likes of Abiword and Calc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4048458491241317493-7512330022005579992?l=cnm-minibook-mucking-about.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cnm-minibook-mucking-about.blogspot.com/feeds/7512330022005579992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/got-cnm-minibook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7512330022005579992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4048458491241317493/posts/default/7512330022005579992'/><link rel='alternate' type='text/html' href='http://cnm-minibook-mucking-about.blogspot.com/2009/03/got-cnm-minibook.html' title='Got Cnm MInibook'/><author><name>alsaf</name><uri>http://www.blogger.com/profile/00453006761600729657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
