After having build chromeos I shall now give a few thoughts on it, based on what I’ve seen and experienced rather than what a press release says as most of the media will.
If you followed my instructions in the last post about building then you can log in with the local username you provided and a blank password.
Here I shall be providing screenshots from virtualbox but this has also been tested on my eeepc 901. Currently the OS has very little support for wifi and initially at least needs a dchp assigned wired ethernet connection, which shouldn’t be a problem for most people.
After a quick ~10s boot you will be met with a login screen:
Once you have logged in then the experience is very similar to being trapped in google chrome, it appears to be very similar to the browser with slightly more functionalty:
Just a slight colour scheme change but one could be in chrome browser if it wasn’t for the addition of three icons and a clock in the top right hand corner signifying battery life, network and options. As far as options go it’s pretty limited, any advanced options I suspect can be controlled via the terminal (Ctrl + Alt + T) the terminal layout seems very much debian like and does most things a terminal should vi is included but not nano sadly!
Mass storage devices also have support using a pop up persistent window to allow browsing, with files opening in the browser.
As chromeos was only released to the community a few hours ago I haven’t had much more chance to play but it seems like it could grow into a workable system, no doubt the news will be filled with how it will kill Microsoft and change the world, it may, however I feel the approach of everything in the cloud will take a long while for people, including me, to become comfortable with. I would suggest that what we will see is more integration between the web and operating systems and the increase in services which seamlessly sync data between computers like Ubuntu one does. I feel the Moblin approach is more realistic this integrates web services such as twitter into the desktop but still allows easy storage of local data and applications thus requiring much less dependence on the web and cloud storage.
After watching the webcast of the google chromeos announcements today I felt I should probably see what all the fuss was about and get the source code and have a go at building it and as lots of people may be a little daunted by this I thought I’d add a guide, although it is pretty well documented by google.
I’ve finally got together all the pieces together to transform the mess of wires from my breadboard version of my twitterpop project into a nice reusable shield for my arduino. It’s only basic containing two 595 shift registers, and 8×8 common anode LED matrix and a few resistors but it does an admirable job. PCB designs and eagle files can be found on the twitterpop page. Thanks to the people at BatchPCB for doing a nice job on my PCB.
I’ve been waiting for a week or so to assemble this as I decided to order a fancy new Weller WS81 soldering iron to use rather than my aging 12W Weller 2012 which I’ve had for about 10 years, never has soldering been such a pleasure!
And in action (note the fancy base provided by oomlout):
At present serial communication from the Arduino IDE will not work with the default installation as the IDE is supplied with a 32 bit version of the serial communication library rxtx and as yet the version in the repos doesn’t work either.
A full distribution of the arduino-0017 ide can be downloaded here with the correct files included.
If you haven’t used arduino before you’ll need to install its dependencies by running
sudo apt-get install avr-libc gcc-avr avrdude
To fix an existing installation – a working version of rxtx (rxtx-2.2pre2-bins.zip) can be downloaded from http://rxtx.qbang.org/ however at the time of writing the site had been down for a while so I’ve provided a mirror of the file (here).
To install:
Extract /RXTXcomm.jar and /x86_64-unknown-linux-gnu/librxtxSerial.xo into the ardunio/lib directory overwriting the previous versions.
Arduino serial communication should now work as normal.
For people having more general problems with any application using librxtx-java on 64 bit ubuntu I have created an updated .deb file – available here. This can be also used to fix arduino if the librxtxSerial.so file is removed from the arduino/lib directory.
Whilst building this site I wanted to implement wordpress in a way which didn’t make the site stand out as mainly being a blog. This approach led me to set up a number of static pages and I wanted to have an index of these pages for the projects page which would automatically update as I added new projects. Currently wordpress provides a function to list the titles of all static pages, as links, using the wp_list_pages() method, however I wanted each page to be listed with a description, a task for which wordpress doesn’t provide a function so to solve this I wrote my own script which queried the appropriate bits of the database and made the page I wanted:
First I created a new php page template which would act as the index page.
Then I wrote a SQL query which extracts all the pages which are set as children of the index page (this requires that all pages you wish to appear in the index are set as children of the page).
$querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'page' AND $wpdb->posts.post_parent = '68' ORDER BY $wpdb->posts.post_title ASC";
Then executed the query. Now the appropriate data has been retrieved all that remains is to loop through it and process it and add it to the page:
<h3><a title="Permanent Link to <?php the_title(); ?>" href="<?php the_permalink() ?>"></a></h3>
To add the description to each page I used a custom field when adding each page, in this case I called it “des”. Custom fields are stored as a multi dimensional array named $custom_fields in each post from which the appropriate field can be retrieved:
Now the page can be completed by adding any footer or sidebar required and added to the site as normal as a new blank page using the page just created as a template.
The hardware for the system discussed in my previous post consists of an arduino, arduino ethernet shield, 2x 595 shift registers and one 8×8 common anode LED Matrix from china via ebay. Basically the arduino requests the page containing the current popularity metric and then adds it to an array containing the states of the currently lit LEDs which is then pumped out to the shift registers to update the display. The circuit lights the correct LEDs.
The circuit design is based on a design featured on the arduino playground for lighting 8 LEDs but was slight adapted to deal with the matrix. The schematic can be found here.
I have also attempted to form this into a new arduino shield so I can reuse the LED matrix circuit quickly for other projects, a PCB is currently with BatchPCB
Recently I’ve been working on a popularity meter which searches twitter and displays a bar graph of the popularity of the search term on an LED Matrix driven by an Arduino. It currently relies on a PHP script on my webserver to do the actual twitter search and the arduino reads the page via ethernet and then displays the number on it bar graph.
The PHP script searches twitter receiving the results as a JSON feed and counting the results, this is just a basic script I threw together and is still very much work in progress as if there are more than ten results the arduino gets a bit confused. This is an abbreviated version of my code which is still functional.
This searches for replies to my posts and displays in a number in a minimal html page.
The arduino then reads this page every time its main loop is executed and adds a new bar to the LED bar graph using the following code and using the TimerOne library. The full sketch can be downloaded here.
More information about the hardware will be included in a later blog post.
After buying an arduino and some 8×8 LED matrices I really needed a project to make good use of them. At a similar time I also had become a bit addicted to twitter and had been reading up on the API with the intention of doing something cool with it,somehow these ideas all got rolled into one to give a twitter popularity meter. The system uses a PHP script to search twitter for a predefined term, #tag or @reply and then presents the result of this as a webpage with number of results. The page is then read by an arduino with associated Ethernet shield and displayed on a bar graph format on the LED matrix.