Streaming Video Between QuickTime Broadcaster and VLC

In my attempt to stream live video to my iPhone I ran into an issue with the USB QuickCam I have. Instead of fighting the problem I decided to turn to the iSight camera on a macbook but I quickly found that there isn't a great way to get the video stream to another machine. The best way that I have found to stream from the iSight to a second machine is to use a combination of QuickTime Broadcaster and VLC. In this post I detail how I got it set up and working.

Read More »

Posted in software | Tagged , , | Leave a comment

iPhone HTTP Streaming with FFMpeg and an Open Source Segmenter

With the release of the iPhone OS 3 update came the ability to do live streaming. There are a few types of streaming and each requires a certain encoding and segmentation. I've put together a cheat sheet on how I went about building a static stream using FFMpeg and an example segmenter that someone has posted. I'm not covering windowed streams in this post but if you are thinking about implementing a windowed stream the following will help you make a step in that direction.

Before getting started it is best to read over the Apple documentation on HTTP live streaming. Start out with the iPhone streaming media overview. This document covers the basics of how the streaming works and has some nice diagrams.

If you want even more information after reading the overview you can take a look at the HTTP Live streaming draft proposal that was submitted to the IETF by Apple. It covers the streaming protocol in complete detail and has examples of the stream file format for reference.

Once you are ready to start grab a decent quality video clip to use. If you don't have one handy I found a nice list of downloadable HD clips in various formats for testing.

Read More »

Posted in programming | Tagged , , , | 8 Comments

Upgrading to Fedora 11 from Fedora 10

It is time again to upgrade if you are using Fedora. Fedora 11 was released a few days ago and contains some nice enhancements.

For people who can a complete re-install is probably best. One reason for that is the inclusion of ext4 in Fedora11. You won't get the benefit of ext4 unless you do a fresh install or upgrade from ext3 to ext4. If you read the upgrade guide that Fedora produces it recommends not doing an upgrade.

Read More »

Posted in system administration | Tagged , | 2 Comments

10 Tips for BlackBerry Development

Over time I've gathered up some nice tips I think would help get someone started developing applications for the BlackBerry so I decided to pull some of the more interesting ones together into the following list.

  1. The Eclipse plugin makes life much easier so use it. If you are used to Intellij IDEA then try out the Intellij IDEA keymap for Eclipse
  2. Some information about signing keys:
    • You don't have to get signing keys to make a deployable application
    • They are inexpensive
    • If you do get the signing keys you will have access to libraries that you otherwise can't use
    • You will need the JDE installed even if you have the Eclipse plugin installed as explained here
  3. When sending apps to the background:
  4. Install the MDS emulator. You need the MDS emulator if you plan to do anything that requires a network connection.
  5. If you need SOAP support use kSOAP. There is a good DDJ article with examples on how to use kSOAP in a mobile setting.
  6. Use Display.getWidth() to make your custom items look correct on any device. Keep the following in mind:
    • Make any static graphics you use that need to span an entire screen as large as the largest device size
    • I have created a list of BlackBerry device screen sizes
  7. The BlackBerry has an embeddable browser. There is a good example post on how to use it.
  8. Spend time to make a splash screen. The knowledge base has a good article on making a splash screen.
  9. Make good looking icons and make sure to also define the rollover icon.
  10. If you need charts in your application take advantage of the device always being connected to the internet and give Google Charts a try.
Posted in programming | Tagged , | Leave a comment

How to create iPhone wireframes with Inkscape

While developing ideas for iPhone applications I've played around with just using Interface Builder to stub things out. This works reasonably well but I know how to use Interface Builder so that makes a difference. If you are designing an application and want to stick with graphical tools only you are in luck because Yahoo has produced a set of wireframing SVG stencils for the iPhone that are very nice.

Read More »

Posted in meta | Tagged , , | Leave a comment

BlackBerry screen and icon sizes

For some reason the old link I had that contained display dimensions for BlackBerry devices is resulting in a 404 now. When you are doing BlackBerry development it is nice to be able to go to one page that just shows you the screen sizes instead of having to look at each device page so I don't know why they removed this page. After looking around a little I couldn't find a consolidated list that has just screen sizes so I figured I would put one together that replicates the old link:

BlackBerry device model Display screen size Icon image size
BlackBerry Pearl 8100 240 x 260 pixels 60 x 55 pixels Icon theme
48 x 36 pixels Zen theme
BlackBerry 7100 Series 240 x 260 pixels 60 x 55 pixels Icon theme
48 x 36 pixels Zen theme
BlackBerry Pearl 8220 240 x 320 pixels 46 x 46 pixels
BlackBerry Curve 8300 320 x 240 pixels 53 x 48 pixels Icon theme
48 x 36 pixels Zen theme
BlackBerry Curve 8900 480 x 360 pixels Unknown
BlackBerry 8800 Series 320 x 240 pixels 53 x 48 pixels Icon theme
48 x 36 pixels Zen theme
BlackBerry 8700 Series 320 x 240 pixels 53 x 48 pixels Icon theme
48 x 36 pixels Zen theme
BlackBerry Bold 9000 480 x 320 pixels 80 x 80 pixels
BlackBerry Storm 9500 360 x 480 pixels 76 x 76 pixels Home screen
24 x 24 pixels Shortcut bar

This data comes from the BlackBerry devices page.

Posted in meta | Tagged | 4 Comments

Running Lotus Notes 8 on Linux with newer xulrunner

I recently got tired of running Lotus Notes under wine because I kept getting meeting invites that I couldn't accept. So I ventured out because I had heard that Notes now had a Linux client and sure enough it does. The install is huge but it went very smooth up until the point that I first launched to read my mail. At the point where it should have shown me the start screen I got an error dialog with the error "JVM terminated. Exit code=160" and a big stack trace.

Lotus Notes error message
(Click the image to see a larger version)

After digging around a little I found that the Eclipse framework/SWT expected an older version of xulrunner to be installed. The simple fix to get Notes running was to move the xulrunner libraries out of the way:

mv /usr/lib/xulrunner-1.9/ /tmp/
mv /tmp/xulrunner-1.9/ /usr/lib/

Now when I started Notes I was able to get all the way in and see the following error on the start page:

Lotus Notes start page error
(Click the image to see a larger version)

Now the key to getting Notes into a usable state is to close the "Getting Started" tab. If you don't do this you can never move xulrunner back into place. Once you have closed the tab exit out of Notes and then put the xulrunner libraries back where they belong.

Now you can start Notes without an issue, just make sure not to open anything that requires a web browser.

Lotus Notes home page
(Click the image to see a larger version)

After going through this someone pointed me towards the latest 8.5 beta 2 release of Lotus Notes for Linux and after installing that I can report that it actually has fixed the issue. So whenever 8.5 comes out this should be fixed until another incompatible version of xulrunner comes out.

Posted in linux, software | Tagged , | 2 Comments

Running Asterisk in the cloud with Amazon EC2

I have been sitting on a half post for a while now on setting up Asterisk on EC2 and then this past week someone else came out with a post on how to install Asterisk from scratch on EC2. I figured I would wrap up what I have since I take the path of installing Asterisk on VirtualBox first then converting that disk image to an AMI as I outlined a few weeks ago when I got serious about testing out the Asterisk on EC2 concept.

Reading over the comments on the Voxilla post you will see some concern about how cost effective putting Asterisk on EC2 would be. Even if the cost is an issue for normal use I think Asterisk on EC2 could work for bursts of outgoing calls or even temporary conferencing systems. Part of what I wanted to do was find the least resistant path to getting started so I went with Trixbox since it has a lot of tools pre-installed and support for Gizmo5 that was very easy to set up. The key with Gizmo5 is that it is cheap, works with Asterisk via SIP and you can have incoming calls for free from a land line so it is easy to test cheaply.

Read More »

Posted in system administration | Tagged , , | 1 Comment

VNC on OS X + Devil's Pie = seamless desktop

I've been doing iPhone development lately using a mac mini. When we first started looking at developing for the iPhone it seemed like overkill to go out and buy multiple macbooks or one macbook to share between developers so instead we got a mac mini to share using Vine VNC.

For reference we are able to share the mac mini by taking advantage of fast user switching for more information see this guide on using Multiple Desktop Sessions on Mac OS X.

The VNC part is pretty easy once you have the multiple desktop sessions working. I've been doing development on a linux box that has two monitors connected so I will open the desktop in one window and all the non-mac stuff in the other. After using the VNC desktop like that for a while I started to get annoyed by the window decorations so I looked to see what I could do to remove them and that is when I ran into Devil's Pie.

Devil's Pie runs as an application in the background and watches for window events that you set up in a configuration file. When it sees the events it can do all kinds of fancy things to the window like remove decorations and set position. It turns out there isn't a lot of documentation on the configuration language but I did find a configuration language reference, a gnome configuration file editor that kind of works depending on what you need it to do, a decent reference, some configuration examples, and best of all an example of how to remove window effects. With all that I was able to cobble together the following configuration file:

(if (contains (window_name) "VNC:") (begin (undecorate) (maximize) (geometry "+1280+0")))

This says to undecorate, maximize, and set the geometry of any window that contains the value "VNC:". The undecorate will strip the title bar and any border from the window, the maximize does what it says to the window, and the geometry in my case puts the window on the right hand screen. I tweaked the background for my account in OS X and the resulting combination of it all looks like this:


(Click the image to see a larger version)

So now I have what feels like an OS X box integrated right into my normal desktop.

Posted in linux, utilities | Tagged , , | Leave a comment

Using Ruby and HTTParty to consume web services the easy way

Web services seem to be multiplying like rabbits these days. For a good sampling of just how many there are check out the Programmable Web API list. In general it is pretty easy to consume basic REST web services but after you have done it enough it starts getting old. Thankfully for those of us who like to tinker with a lot of the new APIs there is HTTParty to make it quick and easy.

Read More »

Posted in programming | Tagged , , | Leave a comment