Script to convert Twitter RSS feeds into text

[Update Nov 2012: URLs such as http://twitter.com/statuses/user_timeline/759251.rss do not work anymore, but you can get a Twitter timeline RSS feed by using http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=xxxxx, where xxxxx is the screen name such as cnxsoft] We needed to convert Twitter RSS feeds to UTF-16 text for displaying them into a digital signage (That did not support RSS feed directly).  This digital signage supports regular http download, .e.g every 5 minutes. Here’s the script (called with crontab) we used for CNN News Twitter RSS feed. #!/bin/sh # CNN Twitter wget http://twitter.com/statuses/user_timeline/759251.rss sleep 10 cat 759251.rss | grep title | sed s/\<title\>// | sed s/\<\\/title\>// > cnn.txt rm 759251.rss iconv -f utf-8 -t UCS-2LE cnn.txt > cnn-utf16.txt cp cnn-utf16.txt /var/www/html/livepics/cnn.txt The resulting text file looks like: Twitter / CNN CNN: BREAKING NEWS: Military: Last U.S. brigade combat team leaves Iraq; 56,000 troops remain. Fifty-thousand set to stay past August 31. CNN: NY Gov. David Paterson […]

Media Player based on SMP8653 – Magic Box HDP500

Magic Box HDP500 manufactured by gmini (apparently a Russian company)  is a new media player featuring the 500-Mhz SMP8653 chipset from Sigma Designs. It does not use Android OS yet, and as far I know no company has yet released SMP8653 Android based products. Having said that,  it comes with most of the connectivity you would expect from a decent set-top box: USB connector (device: USB storage,host: laptop/PC connection), Audio/Video Composite ouput, Component (YPbPr)  output, HDMI and optical digital audio output and and Ethernet port. On the software side, it is a full featured 1080p media player,  with video, music and picture galleries, Internet Radio, UPnP support… It could also be used as a NAS with the USB host connection to your PC. The missing features are: no support for digital TV (e.g. DVB-T, DMB-TH), no Wifi support, no web applications/web browser, no movie download (BT/Emule),  no Real media video […]

Advertisement

Embedded Software Books

I’m often asked what useful books software engineers should read when they start to work on embedded systems. So here’s a list of books I would recommend as starters. First, nowadays many embedded systems are written in C (although lower end systems using 8-bit MCU are still likely to be written in Assembler), so software engineers had better make themselves very familiar with C/C++ and GNU tools (gcc, libtool. automake…) with a focus on embedded systems (e.g. interrupts handling, real-time capabilities, volatile variables, processes and threads’ stack handling, , cross compilers…).  Programming Embedded Systems: With C and GNU Development Tools, 2nd Edition is just the right book for that purpose. It deals with embedded Linux and eCos and provides useful examples. You may also read part of it online Once you start developing embedded systems you are likely to write device drivers at some points. Linux Device Drivers, 3rd Edition […]

Android STB – WebTube HD

Here’s another Android Set-top-box that may come to the market soon. I do not have much information on this product, except it’s made by mnex – a Korean company. (Update: although the youtube video says otherwise, the design seems to belong to Innodigital (See Webtube HD details). The video below shows it supports Android web browser, Youtube, Google maps and interestingly an application market especially designed for TV (TV Application Market). Apparently, they control the box with a normal remote control, no track ball or touch pad, nor do they seem to have support for wireless mouse and/or keyboard. The demo looks good, although a bit sluggish. See for yourself:

How to Generate CVS Changelog Automatically

There is a perl script called cvs2cl.pl provided by Red-Bean You can get the latest version thru cvs: cvs -d :pserver:anonymous@cvs.red-bean.com:/usr/local/cvs co cvs2cl/cvs2cl.pl Copy the script in a directory that belong to the path e.g.: cp cvs2cl.pl /usr/local/bin Then just checkout your project and run cvs2cl.pl to generate a ChangeLog that will look like: 2010-01-18 developer1 * app/cnxapp/Makefile: Added support for SMP8652 target 2010-01-17 developer2 * app/cnxapp/cnx_download.c: Added HTTP resume support [Bug 1250]: Fixed potential buffer overflow … where developer1 and developer2 are the linux usernames of the developers, app/cnxapp/Makefile, app/cnxapp/cnx_download.c the files that have been modified, and the comments correspond to the messages input during cvs commit. cvs2cl.pl also have other options such as XML output, date selection etc… Just type cvs2cl.pl –help to get the full options.

Block CVS Commits without message

If you are in my case, and you found it difficult to make some people in your team make proper comments/messages or any comments at all (cvs commit -m “Description of the changes”) while committing their changes to CVS, here’s what can be done to block commit without comments and with short comments. Checkout the CVSROOT directory cvs co CVSROOT Edit verifymsg in CVSROOT as follows #Set the verifymsg file to run a script DEFAULT /usr/local/bin/validate-cvs-log.sh Create /usr/local/bin/validate-cvs-log.sh script (make it executable for all cvs users): #!/bin/sh # # validate-cvs-log.sh logfile # test that log message has some characters in it if [ cat $1 | wc -c -lt 12 ] ; then echo “log message too short; please enter a description for the changes” exit 1 else exit 0 fi Commit verifymsg cvs commit -m “Added script to set minimum message size to 12 characters” verifymsg That’s it ! […]

Rockchip RK3568/RK3588 and Intel x86 SBCs

How to do a framebuffer screenshot

I’ll explain how to do framebuffer screenshots on 16-bit and 32-bit framebuffer. For 16-bit this is fully based on http://docs.blackfin.uclinux.org/doku.php?id=framebuffer Capturing screenshots Whatever the bit-depth of your framebuffer, the first step is to capture the frambuffer raw data on the board:

Now the you need to take the raw image, and convert it to a standard image format. This step depends on what type of display is there Converting 16-bit Framebuffer screenshot (RGB565) into png To convert the raw rgb data extracted from /dev/fb0, use iraw2png perl script

To do the conversion, type the following command in the host:

where 640 and 480 are respectively the width and height of your framebuffer. This has been tried on a 16-bit framebuffer on EM8620 series. Converting 32-bit Framebuffer screenshot (ARGB, RGBA, BGRA…) into png The solution proposed here is not as neat as the blackfin’s solution for 16-bit framebuffer, […]

Boardcon Rockchip and Allwinner SoM and SBC products