Search My Blog

Thursday, September 30, 2010

Motorcycle rear-view with in-helmet display - Hack a Day

Motorcycle rear-view with in-helmet display

posted Sep 20th 2010 1:33pm by Mike Szczys
filed under: wearable hacks

Want to see what’s behind you when riding your sport bike without taking your eyes off the road? They make rear view cameras for that but [Nescioqd] wanted a rear display right in his helmet (PDF). He started by mounting a rear-pointing camera on the back of the bike, powered from the 12V feed for the taillight. On the display side of things he picked up a Myvu Crystal wearable display. This is like a pair of glasses that have small LCD screens were the lenses should be. [Nescioqd] removed one lens and mounted it inside the helmet.

Since the display resides inside the helmet there is some concern about being able to see at night with a bright screen below your eyeball. [Nescioqd] actually ran into the opposite problem at first, bright sunlight makes it difficult to see the image on the LCD screen. He fixed this by picking up a dark tinted helmet visor (the easiest solution) but we’d love to see a photoresistor used to regulate the backlight level.

It would be interesting to see both screens used, with rear-view on one side and an instrument display on the other.

tagged: , , , , ,

Go there...

Myvu Crystal wearable display
Motorcycle rear-view with in-helmet display - Hack a Day
myvu crystal wearable display - Google Search
Myvu Crystal - WearComp Wiki
Make: Online: Page Not Found
YouTube - Myvu personal media viewer review by Crazyfunbabe
myvu crystal - Google Search
Myvu Crystal - Google Product Search
Review: Myvu Crystal Video Eyewear for iPod - PCWorld Myvu Crystal Personal Media Viewer, Standard Edition (Black): Electronics

Multi-purpose welding cart - Hack a Day

Multi-purpose welding cart

posted Aug 1st 2010 9:54am by Mike Szczys
filed under: tool hacks

[Todd Harrison] put together a welding cart that has all kinds of tricks built-in. The carcass is a cheap rolling cart that has been reinforced with steel plate and beefier wheels. The top tray can be loaded up with fire brick for oxygen-acetylene welding or with a grate for cutting. That grate lets the slag fall through and into the red-rimmed fire-box below. Finally, there’s a steel plate to the right of the cart that rotates and slides over the top of the unit to prepare it for MIG welding. Todd walks us through his versatile invention in the video after the break. This will nicely augment your other welding hacks.

tagged: , , , ,

Go there See Video...


Beefing up a cheap drill motor - Hack a Day

Beefing up a cheap drill motor

posted Sep 20th 2010 9:56am by Mike Szczys
filed under: tool hacks

[Rob] just finished reinforcing a cheap drill motor. He picked up the tool at Harbor Freight and ditched the case. The plastic retaining ring was replaced with a thick metal washer which he machine The washer uses three bolts to attach to the mounting plate that he welded together. We’re not exactly sure what he’s got in mind as he only mentioned that this will be used with a robot. We wouldn’t mind having one of these as a bench motor but there must be hundreds of uses now that it can be attached to just about anything. It seems Harbor Freight has become popular as hacking’s raw material source. The last example we saw of this was a welding table made from a utility cart.

Go there...

Robot Bracketry

Postby R.Riel » Mon Sep 20, 2010 1:53 am

So some of us are aware of our failure to mount those crappy HF drill motors. So i went down to the lab with an idea, and mocked up an idea.

You'll have to excuse the pics i took them with my camera phone

Heres the planetary gear set, i later discovered that the bearings inside arent round anymore, so im not sure how long the motor will last, i suggest a full disassembly and pack it up with some grease just to prolong the life.

Heres the plate with a few initial mounting holes drilled:
Go there and See More...


Grisbi - Personal Finance Manager for all

Grisbi is a personnal accounting application running under GNU/Linux and Windows, released under the GPL licence.

Our aim is to provide you with the most simple and intuitive software for basic use, and still very powerful if you spend a little time on the setup.

Grisbi can manage multiple accounts, currencies and users. It manages third party, expenditure and receipt categories, as well as budgetary lines, financial years, and other informations that makes it quite adapted for associations (except those that require double entry accounting). The exhaustive list of Grisbi's functionalities can be found in the User's guide, paragraph 1.2.

The complete manual under FDL license is avaliable on line (Documentation in the main menu). The version coming with the software is not illustrated, but can be replaced by the illustrated version any time, being availiable for download on this site. The manual will be soon completed with a Guide concerning accounting for associations.

If you want to keep updated with Grisbi releases, you may subscribe to the information mailing list (see Contacts) and if you like to live dangerously you even can download the unstable sources from CVS and compile them. Information about this is in the Manual paragraph 2.1.11.

Last but not least, Grisbi will be soon internationalised. All contributors are welcome.

Thanks for your visit.

Go there...

Personal Finance Software Links...
Best Free Personal Finance Software
Best Free Personal Finance Software
Free Accounting Software | GnuCash
Browse Gnucash Files on
grisbi - Google Search
Grisbi - Personal Finance Manager for all


Free Accounting Software | GnuCash

Download GnuCash 2.2.9

GnuCash is personal and small-business financial-accounting software, freely licensed under the GNU GPL and available for GNU/Linux, BSD, Solaris, Mac OS X and Microsoft Windows.

Designed to be easy to use, yet powerful and flexible, GnuCash allows you to track bank accounts, stocks, income and expenses. As quick and intuitive to use as a checkbook register, it is based on professional accounting principles to ensure balanced books and accurate reports.

Feature Highlights

  • QIF/OFX/HBCI Import, Transaction Matching
  • Reports, Graphs
  • Scheduled Transactions
  • Financial Calculations
  • Double-Entry Accounting
  • Stock/Bond/Mutual Fund Accounts
  • Small-Business Accounting
  • Customers, Vendors, Jobs,
    Invoices, A/P, A/R
Go there...

Personal Finance Software Links...
Best Free Personal Finance Software
Best Free Personal Finance Software
Free Accounting Software | GnuCash
Browse Gnucash Files on
grisbi - Google Search
Grisbi - Personal Finance Manager for all


Best Free Personal Finance Software

Best Free Personal Finance Software

Weekly Budget Tip (At a Glance) -  Some Helpful Savings Advice (courtesy of

1.   Pay your credit card bills in full on time, every time - this will save you unnecessary interest and late fees.

2.   Learn to cook all your meals - this will impress your family & friends and you will save eating-out money.

3.   Don't shop simply because there is a sale - do you really need the item?  Decide "need first", then shop.

Weekly Budget Humor - Any topic can be fun - including money and budget planning - so, enjoy!

Why did the lady go outdoors with her purse open?  Because she expected change in the weather.  :)



GnuCashIf you're looking for a quick education in double entry accounting, look no further than GnuCash. It will ease you into the "Assets = Liabilities + Equity" accounting equation and help you keep tabs of your budget without using the categories commonly used in commercial personal finance applications. Users are allowed to easily create as many accounts as they need under each category. The program is integrated with a reporting and graphing module to generate a full suite of standard and customizable reports including balance sheet, profit & loss, portfolio valuation, etc.

On the downside, it does not track stock price movements automatically and some brokers only support online downloads of files compatible with Microsoft Money or Quicken so the users have to update them manually. The program does not provide encryption of files but the users can rely on third party encryption software to keep files confidential and secured if necessary. It will also take a while to either start up or close down the program.

Home BankHomeBank is a feature-rich program that allows users to keep detailed track of expenses, income, assets, and other budget-related categories.  Numerous report-generation options are also available, as well as the ability for a user to import Amiga-related information.

However, due to lack of a local help file, the program is somewhat difficult to learn, especially for a novice user - and even the online help file is complicated in that a user must sign up for an account on the developer's site in order to be able to view the software guidance.

AceMoney LiteAceMoney Lite is a full-featured budget program, geared primarily for personal, home use, as it handles only two accounts, compared with its upgraded, shareware version AceMoney, which handles unlimited accounts.  It allows users to keep detailed track of their expenses, and provides a wealth of options for report generation by various categories, sub-categories, and functions.  The program also provides password protection, which is a plus for security purposes.   In addition, the program supports 40 different international languages, and contains a feature-rich currency converter.  Lastly, because the program contains a complete, detailed Local Help File, it is fairly easy to use (i.e., with a low learning curve).  The program is therefore useful for both novices and experts.

GFPGFP is a rich and full-featured program. It has numerous transaction and report categories, and also supports numerous edit and option settings for each transaction and report.

It is easy to use and understand, and it offers a detailed Help Section that provides clear guidance.  It has a low learning curve, and is suitable for novices and professionals, alike. It is based on the GNU open-source license model.

Money Manager EXMoney Manager EX is an excellent full-featured budget program that enables users to create multiple accounts, transactions, categories, and reports. The program is fairly easy to use, with a medium-level learning curve, and has an extensive help file to assist users on how to navigate the various features and options. It also supports most (if not all) computer operating systems. In general, it is a good program for novices and experts, but is sorely lacking in real-time, automatic fiscal tracking and download capabilities, and does not support password encryption, which is a must in today's computing environment.


Grisbi is another GNU GPL open-source budget program that is full-featured, and allows users to created multiple, unlimited accounts, categories and reports.  The program's GUI is simple, attractive and easy to understand - but because of the lack of a local help file within the program, there is a medium-level learning curve involved with fully knowing the ins and outs all of the program's features and operations.  The program is versatile for the most part in terms of its capabilities and format accommodations, and supports encryption of files - though a user must be careful not to forget his or her password, as to do so would mean losing all of the created financial data -  as data recovery would be impossible.  Overall, it's an excellent program, which I recommend to Gizmo's users. 


 Metalogic Finance Explorer is a full-featured, straightforward budget program, that has two primary advantages over many other programs, in that it (1) allows for automatic uploading of financial data from banks, and (2) it accepts importing of financial data from all sources and formats, via the Open Financial Exchange (OFE) protocol.  In addition, the program allows users to import stockmarket data, and to print out their displayed financial data. However, there is a very skimpy local help file within the program, with a relatively more extensive online help file - thus, the user must play around with the features to learn how to fully use them. 

Microsoft Money PlusMicrosoft Money Plus (Home & Business) is another excellent full-featured budget program that offers users a  wide range of services, including budget planning, report generation, stock-investment service lookup capabilities and tracking, and automatic importing/updating of online bank account services.  It also offers security options, data archival, backup, and restore backup functions.  In addition, there is an extensive local Help File within the program to assist users in learning how to use all of its capabilities and features. It's an excellent program - however, since this is legacy/sunrise software, which is longer being developed, Microsoft no longer supports the program - and, effective January 31, 2011, all online services will cease to exist.

 Looking for online money management?



Wednesday, September 29, 2010

Oracle rips Red Hat and 'sort of' launches a new Linux - Computerworld Blogs

Oracle rips Red Hat and 'sort of' launches a new Linux

Oracle made a weird announcement at its Oracle OpenWorld love-fest and trade-show. The company announced that it was releasing its own Linux: the Oracle's Unbreakable Enterprise Kernel for Oracle Linux.

Funny, and I thought Larry Ellison already had his own Linux, Unbreakable Linux, which Oracle introduced not quite four-years ago. Of course, Oracle Unbreakable Linux wasn't really Oracle's Linux. It was Red Hat's Red Hat Enterprise Linux (RHEL) with an Oracle Linux logo pasted on the front.

But, this time, Oracle swears its new Oracle Linux is different. The company claims that it's been optimized for Oracle software and hardware and that Unbreakable Enterprise Kernel is faster than RHEL To be precise, Oracle claims its more than 75 percent faster, as shown by Online Transaction Processing (OLTP) performance tests; 200 percent faster at InfiniBand messaging; and is 137 percent faster at solid state disk access than a "Red Hat Compatible Kernel."

Speaking as the guy who designed and ran the very first Linux server benchmarks back in 1999, I'm not impressed by Oracle's claims. An expert can make any operating system look like the greatest thing since sliced bread and its rival look like a two-day old dead dog.

I'm sure on Sun/Oracle hardware, tuned Unbreakable Enterprise Kernel can beat un-tuned RHEL. So what? It will take more than Oracle's employees claiming Oracle's new Linux is great before I buy it.

Oracle's Unbreakable Enterprise Kernel for Oracle Linux--what a name!--is based on the stable 2.6.32 mainline Linux kernel. For some reason, a few idiots seem to think this represents a Linux fork. Nope. It doesn't. When you get past all the hype, Oracle's new Linux just a Linux distribution that's been optimized for Sun/Oracle hardware. Specifically, Oracle sees this as their Linux for the company's Oracle Exalogic Elastic Cloud and high-end, Non-Uniform Memory Access (NUMA) servers.



Saturday, September 25, 2010

Debian - APTonCD

Debian APTonCD

CD-based repository creator for packages downloaded via APT  
Tool for the creation of a CD-based repository containing all packages
downloaded via apt-get. Helpful for a post-installation on several
machines or a simple backup method to re-install the system.
After you've created the CD, you will be able to add it as a repository,
as if it were an CD with addictional applications.
The graphical interface will be enought, starting it via
System -> Administration -> APTonCD menu entry. Or if you want, see the
available command-line call methods by typing 'aptoncd --help' in the

Get APT anywhere

Have you ever felt that there is no life without APT? Well, if you'd suddenly lost conection to the internet, how would you install new packages? What about dependencies? You've just finished installing Ubuntu and configured it to a rad look, with all your favorite applications? For some reason you now have to re-install it? Feel like you have to download all of your favorite programs again? What? You've already forgotten which packages you had dowloaded before?

What is APTonCD?

APTonCD is a tool with a graphical interface which allows you to create one or more CDs or DVDs (you choose the type of media) with all of the packages you've downloaded via APT-GET or APTITUDE, creating a removable repository that you can use on other computers.
APTonCD will also allow you to automatically create media with all of your .deb packages located in one especific repository, so that you can install them into your computers without the need for an internet conection.

With APTonCD you be able to...

Backup all downloaded packages (via apt-get, aptitude and synaptic) to restore later.
Take with you all your favorite packages, in a removable repository where you can install then all on anytime, anytime.
Get an entire repository, or a specifc section. Simply point-and-click, and in few time you'll have an CD(s) or DVD(s) with entire main, restricted, universe, multiverse, contrib, etc.
Share your packages with your friends without Internet conection. Also, send a meta-package for him to install the same set of packages that you have.
Go there...


Fix a keyboard key

Keyboard key

Author:fungus amungusmy site

I found a great keyboard in our junk pile, a Microsoft Natural Ergonomic
Keyboard. It has a comfy layout, but there was just one problem. The N
key wasn't too responsive. You had to really bang on it to get it to

Naturally, this wasn't going to work for regular typing, but the fix for
it was easy. Here's how to do it.

Fix a keyboard key

Go there and see Video...


LucidScience - SHOWALL Electronics Projects, Plans, Schematics and Source Code.

Laser Spy Device
Laser Spy Device
Added : September 20, 2010

Eavesdrop on distant conversations using an invisible laser beam and light receiver.
Lazarus-64 Prototype
Lazarus-64 Prototype
Added : March 13, 2009

The concept and design of the original solderless breadboard Lazarus-64 Game System.
Night Vision Viewer
Night Vision Viewer
Added : December 01, 2008

A stealthy infrared night vision system that can see in complete darkness.

Greets to all AVR Freaks!

Nikon Clap Snap
Nikon Clap Snap
Added : September 12, 2010

Control your Nikon camera using sound or with a continuous 10 second timer.



LucidScience - Build the NIKON CLAP SNAP - Page 1 of 11

Build the Nikon Clap Snap Remote Control
Have you ever wanted to remotely activate your Nikon camera? Maybe you already own the optional keychain remote but find it to be lacking in features? How about complete hands free remote triggering? Yes, our "Clap Snap" project will not only allow hands free operation, but it has a continuous 10 second time lapse feature built in as well so you will never have to mess around with the camera menus or be caught pointing that keychain at the lens in your photos! This project feeds the output from an audio amplifier into the analog to digital converter on an inexpensive microcontroller that decodes three sharp sounds and then issues the infrared signal to the camera to take a photo. This project works on all of the Nikon SLR cameras I have tested, and may work on others as well. Modifications to the design to support different features and makes of cameras would certainly be easy as well.

The Clap Snap program is designed for an AVR ATMega-88 microprocessor, but is simple enough to fit into just about any low end 8 bit microprocessor with a little code reworking. The source code is presented in assembly and the HEX file is included in case you simply want to program the microcontroller and not make any changes to the pin configurations or program operation.

Figure 1 - The original prototype was built on a solderless breadboard
Figure 1 - The original prototype was built on a solderless breadboard

It took some time to decode the pulse train that came from the original Nikon keychain remote control, but in the end it was found to be very similar to most of the VCR or TV remote controls; using a series of on and off intervals of a 40 KHz carrier signal. This old and time tested protocol is actually called "RC5" and although it varies from one manufacturer to another, it is basically a modulated 38 KHz to 40K Hz carrier wave. The Nikon was found to use a 40 KHz carrier wave as per the pulse train measured on the output of the optional Nikon keychain remote control system.

I use my Nikon cameras a LOT, and often I find myself pecking at the menus to get that self timer activated. The issue I have with the self timer is that not all of my Nikon cameras allow more than a single shot to be taken and by the time I get back into place, the timer seems to already be taking the photo! I also have the keychain remote, but again, it forces me to point at the camera and then attempt to set up the shot with the remote in my hand. I wanted hands free operation as well as a continuous 10 second time lapse system that would offer a hint of warning before each shot so the "Clap Snap" project was born. My goals were to have three claps, snaps or sharp sounds trigger a shutter release while ignoring most background sounds. I also wanted to have a nonstop 10 second timer mode. A low cost ATMega-88 was chosen as it had more than enough power for the job and would run from its internal oscillator.

Once I had the timing parameters for the pulse train that the Nikon cameras needed, I created a very simple amplifier system that would send a voltage spike to the analog to digital input on the microcontroller. The amplifier responds very well to a short and sharp sound, but does a fair job of ignoring any ambient background noise. Further processing done in the microcontroller will allow some "intelligent" listening to happen, making the camera only respond to three sharp claps or snaps in a row rather than false triggering every time the background noise level is high. To allow some feedback on operation, three visible LEDs are added to the circuit. A red LED shows the sound spikes on the input of the ADC, a blue LED indicates that claps have been heard and that the "window of opportunity" is active, and a green LED flashes when the system has heard three claps and is about to take a photo. Control of the Nikon camera is through an invisible infrared LED, just like the optional factory made remote control.

Read more and see Video...


LucidScience - Build the LASER SPY DEVICE - Page 1 of 18

Build the long range Laser Spy system
The Laser Spy System is considered by many to be the Holy Grail of high tech spy devices because it can give the user the ability to listen in on conversations that take place in a distant building without having to install a bug or transmitter at the location. The Laser Spy System was said to be invented in the Soviet Union by Leon Theremin in the late 1940s. Using a non-laser based infrared light source, Theremin's system could detect sound from a nearby window by picking up the faint vibrations on the glass surface. The KGB later used this device to spy on the British, French and US embassies in Moscow. It is also interesting to note that Leon Theremin invented the world's first electronic instrument, a wand operated synthesizer named "The Theremin" after him.

The Laser Spy System goes by several names such as the Laser Microphone, Laser Listener, Laser Bug, Window Bounce Listener and a few similar names. The Laser Spy certainly works well under ideal conditions, but it has many strengths and weaknesses that will be discussed in this plan. Building your own Laser Spy is by far the best way to experiment with this technology as you can adjust the design to suit your needs, rather than forking over hundreds or thousands of dollars for an assembled kit that will likely be far inferior to one that you can build yourself. Many of the kits I have seen for sale over the Internet not only use dated technology, but they incorrectly state that the system uses a modulated laser beam to convert window vibrations into sound, which is simply not the case. Let's put the mysteries to rest once and for all and build a working Laser Spy System from the ground up and explore the functionality of each subsystem that makes a working unit.

We will be starting with an ultra basic proof of concept test system that will show you how the Laser Spy converts vibration into sound and how careful alignment of both the laser and receiver are required for optimal performance. Ironically, the most basic configuration may prove to be the most useful, and the $20 you spend in parts could create a system that works as well (or better) than some of the ones that are for sale on the internet for thousands of dollars. As you will find out, the key to spying with a laser beam is in the alignment and reception of the beam, not some magical black box full of fancy filters and optical components

The first time I experimented with a laser spying device was in the 1980s when I found a DIY article in an electronics magazine. Lasers were huge, expensive beasts back then, but I was nerdy enough to have one to mess around with and followed the instructions in the article. In the end, the system was found to be 100% useless, and rumor at the time suggested it was all just a hoax. What happened was that the article failed to mention that as cool as this device was, it was extremely difficult to set up in the real world, especially when trying to bounce from a distant window. Believe me when I say that this device does indeed work, but using it to spy across the street will require a serious amount of setup, fine tuning and patience. To be perfectly honest, your chances of simply beaming toward your neighbor's window and hearing anything are about 1,000 to 1 against you. So many factors have to be in your favor, such as the type of window, the alignment of the structure, the time of day, the level of sound, and mostly, your patience level. I have done a successful window bounce from across a city street, but it was NOT an easy task, so keep that in mind. Any site selling this device in kit or plans form claiming that it is "point and shoot" should be deleted from your favorites in a hurry!



Laser mic makes eavesdropping remarkably simple - Hack a Day

Laser mic makes eavesdropping remarkably simple

posted Sep 25th 2010 12:00pm by Mike Szczys
filed under: laser hacks

Here’s a surprisly simple way to build yourself a laser-based listening device. It consists of two modules, a transmitter and a receiver. The transmitter is a set of lasers, one is visible red for aiming, and the other is infrared for measuring the vibration of a surface. Point the transmitter at the window of the room you want to listen in on and the laser can be reflected back to the receiver. The receiver module has a phototransistor to pick up the infrared laser light, and an LM386 audio amplifier to generate the audio signal sent to a pair of headphone. The need to be well-aligned which is easy enough using a pair of tripods. Check out the demo after the break.

Looking for something to do with the leftover laser diodes from this project? Try making yourself a laser microscope.

tagged: , , , , , , ,

Go there...

RFID readers, writers, and spoofers - Hack a Day

RFID readers, writers, and spoofers

posted Sep 25th 2010 12:00pm by Mike Szczys
filed under: security hacks

[Carl] has done a lot of work developing a collection of RFID hardware. The two cards you see above are spoofers that can be programmed in the field using the keypad on the left, or the rather intimidating banks of DIP switches on the right. We also enjoyed his look at the Atmel T5557 and ATA5567 on-card chips used for the tags themselves. He shared the schematics for his designs but unfortunately he’s not distributing the firmware. None-the-less, if you’re interested in learning more about RFID this is a wonderful resource as it covers readers, writers, spoofer, and tags.

tagged: , , , , , ,

Go there...


The real problem with Java in Linux distros « Seeing the fnords

Seeing the fnords

Truth lies between the code lines
Home > Ubuntu, Ubuntu Server > The real problem with Java in Linux distros

The real problem with Java in Linux distros

September 24, 2010 Leave a comment Go to comments

Java is not a first-class citizen in Linux distributions. We generally have decent coverage for Java libraries, but lots of Java software is not packaged at all, or packaged in alternate repositories. Some consider that it’s because Linux distribution developers dislike Java and prefer other languages, like C or Python. The reality is slightly different.

Java is fine

There is nothing sufficiently wrong with Java that would cause it to uniformly be a second-class citizen on every distro. It is a widely-used language, especially in the corporate world. It has a vibrant open source community. On servers, it generated very interesting stable (Tomcat) and cutting-edge (Hadoop, Cassandra…) projects. So what grudge do the distributions hold against Java ?

Distributing distributions

The problem is that Java open source upstream projects do not really release code. Their main artifact is a complete binary distribution, a bundle including their compiled code and a set of third-party libraries they rely on. If you take the Java project point of view, it makes sense: you pick versions of libraries that work for you, test that precise combination, and release the same bundle for all platforms. It makes it easy to use everywhere, especially on operating systems that don’t enjoy the greatness of an unified package management system.

That doesn’t play well with how Linux distributions package software. We want to avoid code duplication (so that a security update in a library package benefits all software that uses it), so we package libraries separately. We keep those up to date, to benefit from bugfixes and new features. We consider libraries to be part of the platform provided by the Linux distribution.

The Java upstream project consider libraries to be part of the software bundle they release. So they keep the libraries at a precise version they tested, and only update them when they really need to. Essentially, they maintain their own platform of libraries. They do, at their scale, the same work the Linux distributions do. And that’s where the real problem lies.

Solutions ?

Force software to use your libraries

For simple Java software, stripping the upstream distribution and forcing it to use your platform libraries can work. But that creates friction with upstream projects (since you introduce an untested difference). And that doesn’t work with more complex software: swapping libraries below it will just make it fail.

Package all versions of libraries

The next obvious solution is to make separate packages for every version of library that the software uses. The problem is that there is no real convergence on “commonly-used” versions of libraries. There is no ABI protection, nor general guidelines on versioning. You end up having to package each and every minor version of a library that the software happens to want. That doesn’t scale well: it creates an explosion in the number of packages, code duplication, security update nightmares, etc. Furthermore, sometimes the Java project patches the libraries they ship with to include a specific feature they need, so it doesn’t even match with a real library version anymore.

Note: The distribution that is the closest to implementing this approach is Gentoo, through the SLOT system that lets you have several versions of the same package installed at the same time.

Bundle software with their libraries

At that point, you accept code duplication, so just shipping the precise libraries together with the software doesn’t sound that bad of an idea. Unfortunately it’s not that simple. Linux distributions must build everything from source code. In most cases, the upstream Java project doesn’t ship the source code used in the libraries it bundles. And what about the source code of the build dependencies of your libraries ? In some corner cases, the library project is even abandoned, and its source code lost…

What can we do to fix it ?

So you could say that the biggest issue the Linux distributions have with Java is not really about the language itself. It’s about an ecosystem that glorifies binary bundles and not source code. And there is no easy solution around it, that’s why you can often hear Java packagers in Linux distributions explain how much they hate Java. That’s why there is only a minimal number of Java projects packaged in distributions. Shall we abandon all hope ?

The utopia solution is to aim for a reference platform, reasonably up-to-date libraries that are known to work well together, and encourage all Java upstream developers to use that. That was one of JPackage’s goals, but it requires a lot more momentum to succeed. It’s very difficult, especially since Java developers often use Windows or OSX.

Another plan is to build a parallel distribution mechanism for Java libraries inside your distro. A Java library wouldn’t be shipped as a package anymore. But I think unified package systems are the glory of Linux distributions, so I don’t really like that option.

Other issues, for reference

There are a few other issues I didn’t mention in this article, to concentrate on the “distributing distributions” aspect. The tarball distributions don’t play nice with the FHS, forcing you to play with symlinks to try to keep both worlds happy (and generally making both unhappy). Maven encourages projects to pick precise versions of libraries and stick to them, often resulting in multiple different versions of the same library being used in a given project. Java code tends to build-depend on hundreds of obscure libraries, transforming seemingly-simple packaging work into a man-year exponential effort. Finally, the same dependency inflation issue makes it a non-trivial engagement to contractually support all the dependencies (and build dependencies) of a given software (like Canonical does for software in the Ubuntu main repository).

Go there...


FCC Approves Unlicensed White Space Use

FCC Approves Unlicensed White Space Use


2010-02-01-fcclogoBy Clive Young.

New York (September 24, 2010)—With a unanimous vote, the FCC has released a Memorandum Opinion and Order that approves the unlicensed use of ‘white space’ spectrum, laying down long-awaited rules in an effort to balance the needs of broadband proponents and wireless microphone users alike.

White spaces—spectrum that was left unused during the days of analog TV transmission in order to act as buffers between terrestrial TV channels--have been the subject of ongoing debate in recent years, as the FCC has wrestled with how best to reallocate them. Unlicensed use of white spaces has been championed by the likes of Google, Dell, HP and Microsoft, which are intent on creating new wireless applications and devices that will use reallocated spectrum for augmented connectivity and communications—a concept that has been coined “Super WiFi” in recent times.

A primary concern for the pro audio community, however, has been that such devices would create interference with critical equipment, such as wireless microphones. After considerable lobbying from the pro audio community, NAB, end users, broadcasters and others, the FCC would appear to have taken those concerns to heart with the new rules.

As part of the Order, two channels will be set aside nationwide for wireless mic use—a move that the FCC expects will allow between 12 to 16 mics in a given area to operate simultaneously without interference from devices that will use the newly released spectrum. If a production requires more spectrum for an event such as a sports game or concert, it can petition for a temporary expansion of allocated frequencies during performance times by electronically filing a request with the FCC at least 30 days in advance.

The decision wasn’t a complete win for pro audio proponents, however. Over the last few years, broadcasters and pro audio concerns lobbied for the FCC to require all UHF Band Devices to both use geo-location spectrum sensing technology and check a geo-location database that would monitor existing spectrum uses in a given area.

The FCC’s new rules, however, will only require database checks, making the spectrum sensing technology optional. This is a significant victory for the Wireless Innovation Alliance (Google, Dell and others), which had feared implementing both technologies would make devices significantly more expensive to produce.

In the wake of the new rules, however, both sides declared victory. Though the National Association of Broadcasters declined to initially comment beyond stating “We look forward to reviewing the details of today's ruling,” others were exultant.

In a statement, Sandy LaMantia, President and CEO of Shure Incorporated, remarked, “It’s clear that the FCC carefully considered the needs of wireless microphone users while crafting this Order. The reserved channels will provide a safe harbor in which musicians, small theaters, houses of worship, and businesses can operate their wireless microphone systems without interference from new TV Band Devices.”

Meanwhile, Richard Whitt, Google’s Washington Telecom and Media Counsel, stated on the company’s Public Policy blog, “We’re glad to see that the FCC appears to have rejected calls to enact burdensome and unnecessary constraints that would have made it more difficult to deploy useful technologies on these airwaves. Instead, the Commission has put forward common-sense rules that will help encourage innovation, while fully safeguarding incumbent signals from interference.”

Some parties took issue with some of the more pointed comments that came from the FCC. Sennheiser USA's Joe Ciaudelli noted, "In their commentary, the FCC stated that wireless mic technology is spectrally inefficient.... We will continue to innovate.  Nevertheless, we believe the FCC may not yet fully appreciate the technical hurdles to increasing efficiency without sacrificing performance.  Wireless mics must be compact, operate without drop-outs, exhibit negligible latency, and have full audio frequency response.  No other technology comes close to meeting these performance requirements.  We will continue to communicate these points with the FCC."

The next step forward will be for the FCC's Office of Engineering and Technology to decide who will run the geo-location database. Various companies, including Google, have submitted proposals to manage it.

Go there...


Weekend Project: Set Up a TFTP Server on Linux |

Weekend Project: Set Up a TFTP Server on Linux

Print PDF

Most users are familiar with FTP, but if you want to kickstart Red Hat installs, PXE boot systems, auto-provision VoIP phones or unbrick a Linux-based router, you want a Trivial File Transfer Protocol (TFTP) server. Setting one up on Linux is easy, and a perfect project to take on over the weekend.

TFTP (RFC 1350) is very low-overhead variant of the more familiar FTP that you are probably already used to interacting with. It is optimized for transferring files over a local network to small devices that may not even have permanent storage. In the old days, that originally meant thin clients booting over the network. Today there are still network services that depend on TFTP (most notably the Linux Terminal Server Project and Red Hat's Kickstart remote-installation system) but it has taken on a second important role in VoIP, as the preferred way to "auto-provision" many IP telephones and analog telephone adapters (ATAs), distributing configuration files at boot time in a manner similar to DHCP. In addition to that, if you accidentally brick your Linux-based router while installing DD-WRT, TFTP may be your only path to restoring it. Fortunately, even though the protocol might not get the same public respect as FTP, Linux supports it just fine.

TFTP uses UDP as its transport protocol, on the reserved port 69. Like FTP, it can be used in either ASCII or binary mode, but unlike FTP it has no directory-listing or navigation features, because it was not primarily designed for interactive client use. Instead, TFTP clients typically boot up and request a specific file. If a listening server has the file, it acknowledges the request and begins transferring it.

This is a very simple process, which is what makes TFTP popular for thin client setups like Preboot eXecution Environment (PXE) and for embedded devices without built-in or USB-attachable storage. But it also includes no authentication step or access control methods, which makes man-in-the-middle attacks a very real security issue when dealing with VoIP deployments that require a support server to be running constantly.

An attacker that compromises the TFTP server can send rogue configuration files that do anything from register phones with different Session Initiation Protocol (SIP) gateways to perform denial-of-service by setting bad configuration parameters. Attacking a PXE system is a little more difficult, since the setup also includes DHCP, but it is certainly possible to upload a bad bootimage to thin clients.

On the other hand, if you just need to unbrick your router or flash a device with new firmware over TFTP, you do not need to run a TFTP server constantly. If you are really paranoid, you can just disconnect the WAN connection during the process. Since the two use cases are so different, the best choice for a static TFTP server probably is not the choice you would want just for an isolated job. We will consider each in turn.

Setting up static TFTP

For administrating a netboot or VoIP deployment, there are two main Linux TFTP server projects to choose from: tftpd-hpa and atftpd. The former is a port of OpenBSD's TFTP daemon, though the Linux version has diverged over the course of several releases. Atftpd (which stands for Advanced TFTPd) is native to Linux. Both include support for several newer TFTP revision options, such as negotiable transfer block sizes and negotiable time-outs.

Your distribution may package one or the other, or both. If you are faced with a choice, the main differences between the two are in their security features and support for multicast TFTP.

Atftpd provides only host-level security using the libwrap TCP wrapper library. You can add TFTP clients by host name or address to /etc/hosts.allow or use exclusion rules in /etc/hosts.deny. Tftpd-hpa, on the other hand, respects rules in both hosts.allow and hosts.deny, but also implements several other security features. By default, it can only serve files that are publicly readable (i.e., o+r), and will only allow files to be uploaded by clients if the filename in question already exists and is publicly writable. Finally, starting the daemon with the -s option performs a chroot to the TFTP file directory to prevent an attacker from accessing anything else on the server.

Only atftpd, however, supports multicast TFTP, both the version specified in RFC 2090 and the slightly-different version that is part of the PXE specification. Thus, if you need to support PXE thin clients, atftpd is the better choice, but for all others, including VoIP provisioning, the added security features of tftpd-hpa are worth having.

Both servers can be started either by inetd or as standalone daemons, and store a configuration file in /etc/default/.

The tftpd-hpa server's file is /etc/default/tftpd-hpa. By default it includes the line RUN_DAEMON="no", which allows it to be started and managed by inetd. Change this value to "yes" to start the server as a daemon instead. The OPTIONS= line lists a quoted series of run-time configuration flags, the most important of which is -s /path/to/tftp/directory.

Atftpd's configuration is found in /etc/default/atftpd. By default, it includes USE_INETD=true to indicate inetd management; change this to false to run atftpd as a daemon. Aftpd requires that you specify the TFTP directory as the final argument, after all of the command-line switches, so you would simply append /var/tftpd to the end of its OPTIONS line.

Next, make sure that you create the TFTP directory you intend to use (say, /var/tftp/), and give it the proper ownership and permissions. Both daemons run as user nobody by default, so run chown -R nobody /var/tftp to set the ownership correctly, and chmod -R 777 /var/tftp to assign the correct permissions. Then, start the daemon: either execute /etc/init.d/atftpd restart or /etc/init.d/tftpd-hpa restart. Both services uses the standard Linux syslog utility, with run-time verbosity control so you can monitor their behavior.

For advanced usage, each of the servers also provides a way to serve alternate contents when it receives a specific file request, based on regular-expression matching and replacement. This can be useful when a device is hard-coded to request a specific firmware image, but you need to flash it with a newer replacement. But the two servers differ in their implementations. Atftpd uses Perl-Compatible Regular Expressions (PCREs), and allows for simple pattern/replacement pairs based on filename. Tftpd-hpa uses POSIX regular expression syntax, which is not as flexible, but it allows file remapping rules to be based on client IP address in addition to matching filenames alone.

The Simpler Case: TFTPing a Single File

If all you need to do is make one file available over TFTP for a short period of time, including restoring the factory firmware to a bricked router or uploading an update to your Cisco IP phone, you do not need to install and configure a full service like either of those discussed above. While it would be nice if Linksys and Cisco provided a simple command-line or GUI TFTP application for these occasions, neither do.

There is at least one robust, painless-to-use standalone TFTP app for Linux, though: tftpgui. Written in Python, tftpgui is meant to run as a user-initiated interactive application. The author documents its use with a variety of Cisco equipment, and it has also been tested with Vonage, Sipura, Linksys, and Grandstream hardware.

Currently, no distributions package tftpgui, so you will need to grab the latest tarball from the project's downloads page. You can unpack its contents anywhere; it does not need to be compiled and installed to be used. In order to run on the default port of 69, you must launch the GUI as root, so execute sudo python ./ & to get started.

There are four buttons at the top: Start and Stop enable and disable the server, Exit closes the GUI, and Setup allows you to specify configuration rules. You must select a TFTP directory holding the files you need to move, and you can specify a log directory and change the UDP port on which the server listens.

The one security feature tftpgui includes is the ability to restrict incoming TFTP requests to a specific subnet, so if you must run the application in a hostile environment, you can at least try to isolate yourself to a vacant subnet before starting. You can also enter the remote clients IP address and specify a subnet mask of 32, even though purists may call that cheating.

After you apply any configuration settings and press Start in the main window, the main canvas will report any TFTP requests and return codes. You can then restart the remote device and watch its TFTP request hit the server, or if you are attempting to de-brick a router, follow whatever steps the instructions tell you to do.

Tftpgui does not support any of the extended protocol options like filename replacement or multicasting, but if you were stuck without a simple way to serve up a replacement firmware image or provisioning file, it may fit the bill.

In some ways, TFTP is a relic from the 1980s. As embedded devices get smarter and memory gets cheaper, more and more OEM products that used to use TFTP alone as their update mechanism are starting to include embedded HTTP stacks. That certainly makes it easier to troubleshoot, since most Linux boxes have Apache or another web server already installed. Still, when you find yourself trapped with a device that speaks only an unfamiliar protocol, it is reassuring to see that on Linux machines, old RFCs never die.

Go there...


Gutting an air freshener for the parts - Hack a Day

Gutting an air freshener for the parts

posted Sep 24th 2010 11:00am by Mike Szczys
filed under: home hacks

[Doug Paradis] took a good look inside the Air Wick Freshmatic Compact i-Motion and then stole all the parts for other projects. We’ve looked at adding a manual spray button or making air fresheners Internet enabled before. Those models didn’t have parts that were all that interesting, but this one has a passive infrared motion sensor. You’ll also gain three switches, a PNP transistor, and an LED.

Price seems to be all over the map for this model, but [Doug] says you can find it for $8 or less. After showing how to make a tool to bypass the triangular security screws, he explains how to access the PIR sensor. But if you want to be all you can be with the hardware, he details the modifications needed to patch into the analog and digital circuitry on the rest of the board too.

tagged: , , , , , , , ,

Go there...

Wednesday, September 22, 2010

Darbuka band - Hack a Day

Darbuka band

posted Sep 22nd 2010 10:00am by Mike Szczys
filed under: musical hacks

This robotic band has just the right amount of drums. [Liat] and his colleagues fit a group of Darbuka drums with a pair of servo-driven mallets. We’re quite surprised that the servo motors achieve such a successful strike and rebound without dampening the vibrations of the drum head. This is more often accomplished with solenoids because of their quick response and relative strength.

You can listen to a performance of the ensemble in the video after the break or make plans to see it live. The installment was built for the Bat-Yam international biennale of landscape urbanism. It will be attached to, and powered by alternative energy producers like solar cells and wind turbines.

tagged: , , ,

Go there and see Video...


Input device using LED and four photoresistors - Hack a Day

Input device using LED and four photoresistors

posted Sep 22nd 2010 11:29am by Mike Szczys
filed under: peripherals hacks

[Julien] built an input device that uses reflected light detected by some photoresistors. Placing your hand above the device will reflect light from the LED back down onto the cadmium-sulfide sensors. The resistance of those sensors is read by four ADC pins on a Teensy microcontroller and translated to mouse movements. In the video after the break you can see that this works rather well in controlling the cursor. The source code is available on pastebin but we’re also going to host the code for prosperity.

[Thanks Patrick]

tagged: , , , , ,

Go there See Video...


New Intel Devices that can tell you, where you are, whats around you to do and how much it will cost...

New Intel Devices that can tell you, where you are, whats around you to
do and how much it will cost. See what you think about the possibilities...

See Video... 10z0916_IDF_Justin_Rattner_sd_DL.m4v (video/x-m4v Object)


STREAMNIK Development : The Ogg Video Tools

The Ogg Video Tools

The "Ogg Video Tools" is a toolbox for manipulating Ogg video files, which usually consist of a video stream (Theora) and an audio stream (Vorbis). It includes a number of handy command line tools for creating an manipulating these video files, such as for splitting the different streams.

Actually there are the following tools available:

oggResize, oggThumb, oggSlideshow, oggCut, oggCat, oggSplit, oggJoin, oggDump and oggLength

For a more detailed description, please take a look at the menu at the left, visit Floss Manuals or watch the screencast which gives an introduction to basic aspects of the Ogg Video Tools.

How to encode a video to ogg/theora

For this you can use ffmpeg2theora, ffmepg itself or the firefox extension firefogg.

How to get it to the web

To produce an ogg video file is one thing. To get it on your webpage is an other.

Firefox 3.5 and the next Opera and Crome releases support the html 5 video tag with ogg/theora/vorbis. This means that you can embedd a video into your webpage very easily and without bothering your views with installing plugins.

But how to do that?

The easiest way (in html) is the following:

<video width="320" height="240" controls="controls">
<source src="" type="video/ogg" />


And there is one other thing: you need to prepare your webserver to understand the mime type correctly, as firefox uses the minetype and not the file extension any more.

(Apache configuration)

# Ogg
AddType audio/ogg .oga .ogg
AddType video/ogg .ogv
AddType application/ogg .ogx

AddDescription “Ogg compressed music” .oga .ogg
AddDescription “Ogg compressed video” .ogv
AddDescription “Ogg multimedia” .ogx

File extensions

The file extensions for ogg files, regardless of it's content, are often set to *.ogg in the web. So don't be afraid if you see them.

I would like to encourage you to use the new specification for mimetype/file extensions defined by the xiph foundation to let the files work properly with your web-server and web-browser:

  • video/ogg - for video (with audio) encapsulated in Ogg
    .ogv file extension
    recommends a Skeleton logical bitstream
  • audio/ogg - for audio encapsulated in Ogg
    .oga file extension, .ogg for Vorbis I, .spx for Speex
    recommends a Skeleton logical bitstream
  • application/ogg - for complex, multitrack, multiplexed files
    .ogx file extension
    requires a Skeleton logical bitstream

This definition can also be found here.

If you have never heard of a Skeleton, don't be upset - it is not mandatory for video and audio files. It is also not supported by the Ogg Video Tools. If you like to learn more about the Skeleton, please read this.

Go there...

Manipulate Ogg Theora Files

If you are a Linux user you can use the Ogg Video Tools ( to manipluate ogg/theora video files.

Ogg Video Tools is a toolbox for manipulating Ogg video files, which usually consist of a video stream (Theora) and an audio stream (Vorbis). Included in Ogg Video Tools are a number of handy command line tools for manipulating these video files. 

The following tools are available:

  •  oggResize
oggResize reconstructs an Ogg/Theora video by defining a new video frame size, a new datarate and/or a new framerate. 
  • oggThumb
oggThumb creates a series of thumbnails from one Ogg/Theora video file.

  • oggSlideshow
oggSlideshow creates a video slideshow in Ogg/Theora format by a number of pictures
  • oggSplit
oggSplit seperates the media stream from one Ogg file. This function is often called demultiplexing
  • oggJoin
oggJoin rejoins seperated Ogg media streams. This function is often called multiplexing
  • oggDump
oggDump is created mainly for developers to receive packaging information
  • oggCut
oggCut cuts parts from an ogg file defined by a start and an end time position
  • oggCat
oggCat concatenates ogg video files to form one new ogg file that can be interpreted by all players, that can play ogg/theora/vorbis files (vlc, mplayer, cortado etc.)
  • oggLength
oggLength returns the length of an ogg file
  • oggScroll
oggScroll shows up every video frame in a seperate X-Window

What is Ogg, Theora and Vorbis?

Ogg is a container format, like e.g. avi, that defines the outline of a multimedia file.

Theora is a patent free video compression format.

Vorbis is a patent free audio compression format.

Every Ogg video file must consist of at least of one video stream and one audio stream. Sometimes there are more than one audio stream e.g. for different languages or special streams or for subtitles.

Using Ogg Video Tools

The following shows some basic examples of how to use the tools.


Creates a new Ogg/Theora video from an existing one. oggResize can change the video frame size by the -s option:

oggResize -s 320x240 myOrigFile.ogg myNewFile.ogg   

The aspect ratio of the original video frame is always kept untouched, so that black borders appear, if the new frame size does not match the aspect ratio of the original one.

To change the datarate of the stream, use the -d option with the datarate in bit per second:

oggResize -d 512000 myOrigFile.ogg myNewFile.ogg   

If you like to change the framerate, please use the -f option. The parameter is the framerate in pictures per second:

oggResize -f 16 myOrigFile myNewFile.ogg   

If there is an additional Vorbis stream within the Ogg file, it will not be harmed in any way.


Creates thumbnails in JPEG- or PNG-Format from a Ogg/Theora video stream.

To specify the size of the output pictures, you can use the -s option:

oggThumb -s 320x240 myfile.ogg   

If you want to have a picture with a specific height and you want the program to calculate the overall size (e.g. for your webpage) you can specify the other axis to 0. This creates a picture with the right aspect ratio:

oggThumb -s 0x240 myfile.ogg   

For creating a series of files, you can specify every frame by it's time occurency. The following call

oggThumb -t 2,3,10 myfile.ogg   

would create a thumbnail at 2, 3 and 10 seconds. It is also legal to use floating point values, and the values don't have to be ordered:

oggThumb -t 12.5,13,4.5 myfile.ogg

The pictures are placed into the actual directory with the ogg filename and an ordered numbering due to their occurency:

$ ls *.jpg myfile_1.jpg myfile_2.jpg

Another way to create a series of thumbnails is by frame position:

oggThumb -f 100,250,450 myfile.ogg   
This call creates a thumbnail of video frame number 100, 250 and 450.

oggThumb creates JPEG files by default. For creating PNG files, you can call oggThumb with the -o option:

oggThumb -o png myfile.ogg   

If you want to create thumbs from a number of Ogg/Theora files, you can simply add them to the command line:

oggThumb -s 320x240 -t 1,5 myfile.ogg myfile2.ogg myfile3.ogg   


Creates a theora video from a number of pictures in JPEG- or PNG-Format with different effects.

To create an Ogg/Theora slideshow with the size of 320x240 pixel, a datarate of 256 kBit per second and a 16 frames per second call:

oggSlideshow -s 320x240 -d 256000 -f16 -o mySlideshow.ogg picture1.jpg\  picture2.jpg picture3.jpg   

Or, if you have your pics in a specific directory:

oggSlideshow -s 320x240 -d 256000 -f 16 -o mySlideshow.ogg mydir/*.jpg

This will create the file mySlideshow.ogg in the actual directory. The presentation type is set to Ken-Burns-Effect by default (sliding and zooming over the window). However, there are actually three presentation types:

  • Ken-Burns-Effect (option: -t kb)
The Ken-Burns-Effect slides through the picture and zooms in or out.
  • Crossfade-Effect (option: -t cf)
To have a smooth changeover between two pictures, these pictures are crossfaded.
  • Plain Slideshow (option: -t p)
All pictures are concatenated without any changeover. This function is very datarate efficient.

To specify the presentation duration in seconds for every picture, use the -l option:

oggSlideshow -s 320x240 -l 12 -o mySlideshow.ogg mydir/*.jpg

Here the duration of one picture is 12 seconds.

Sometimes, you may have pictures that do not match the aspect ratio of the output video frame. oggSlideshow can handle that, but in combination with the Ken-Burns-Effect it may result in a fast sliding. In this case, it would be good to add some black borders to the actual aspect ratio of the output format. This could be done by reframing the imported picture with the -e option:

oggSlideshow -s 320x240 -d 256000 -e -o mySlideshow.ogg mydir/*.jpg


Demultiplexing an Ogg video file is quite easy, you would use something like this:

oggSplit myfile.ogg   

For example, if the your file was called 'myfile.ogg' and you ran this command then after the oggSplit command has executed the files in your directory look somewhat similar to this:




The number after theora_ and vorbis_ is the stream ID. This number is internally used by the Ogg container. The stream ID is necessary in ogg and is set at stream creation time and should be expected to be a "random" number. However sometimes (e.g. when ffmpeg creates ogg files), the streams are numbered as an ascending series.   

The new files are fully functional ogg files and can be played with vlc, mplayer etc. The 'theora_*' file contains only the video part of the file and the 'vorbis_*' file contains the audio part. 

In some cases, there are streams inserted into the ogg file that can not be interpreted. These files are also extracted and marked as unkown_<ID>.ogg.  


Multiplexing an Ogg file is as easy as demultiplexing. Refering to the example above you can write

oggJoin myNEWfile.ogg theora_6f1634f6.ogg vorbis_41bf6b07.ogg 

This command will create the file "myNEWfile.ogg" which consists of the theora_* stream and the vorbis_* stream.

As oggJoin uses it's own timestamp creation method, both streams start exactly at start time '0'. This is always the case even if the original files started at a different time (due to internal timing information). So the video and audio streams are always synchronized.

In case of other stream types  (other than theora or vorbis), there is actually (as of version 0.4) no timing interpreter available. So you can not use these streams for multiplexing. 


This tool is mainly meant for developers who wish to analyse ogg video files. Therefore you need to know a bit more about the Ogg container format and Ogg streams within the container.

In short: Ogg files physically consist of ogg pages, which should have a defined length (e.g. 4096 bytes). This pages consist of a header with framing information and a body with the data and belongs to one stream. Every Ogg page carries a timestamp, which should be increasing within a file from page to page.

From the stream point of view, every video or audio stream consists of successive packets (e.g. a frame or a block of audio samples). These packets are placed into the physical pages.

To print out the pages from an Ogg file you can use the "-g" command line option

 oggDump -g myFile.ogg   

To print out the packets from an Ogg file, use the "-p" command line option 

oggDump -p myFile.ogg   

If you don't want to dump all information about a file, as you are only interested into the ogg page headers, you can use a different page dump level by using the "-l" command line option

oggDump -g -l1 myFile.ogg   

In this case, only the header information are printed out. To increase the information level, just increate the number after the -l option. "-l 5" is a full dump with all available information. 


oggCut extracts parts of an ogg file. The usage is quite easy:

oggCut -i inputFile.ogg -o outputFile.ogg -s 2000 -e 60000 

This command creates a new ogg file named 'outputFile.ogg'. This file consists of a subpart of the original "inputFile.ogg". The new starts at milisecond 2000 (2 seconds) of the original file and ends at the millisecond 6000 (6 seconds).

As a video stream consists of I-frames (which are full pictures) and P-frames (which are delta pictures to the leading I-frame), the oggCut algorithm searches for the first I-frame. If a video file starts with a p-frame, the player would not be able to interpret this picture, as the leading I-frame (on where it is based) is not available.

oggCut starts the I-frame search at the given start time given by the '-s' option. So expect a shorter time than the calculated seconds for the new file.

If you really want to cut a film at a particular frame position, all the pictures at least up to the first I-frame must be recalculated. In that case using a movie cutter like kino would be a better choice.


Sometimes it would be nice to concatenate (join) two or more video files. For that you can use oggCat, which creates a continuous Ogg video file from the given files.

oggCat newFile.ogg firstFile.ogg secondFile.ogg ... 

However, the video files must correspond in framerate, keyframe gap, framesize etc.

The first file is always taken as the "corresponding" file. The parameters given by this file are checked against the proceeding files. If a file does not match, this file is not used for the concatenation and the next file is tested against the parameter set.

For example, if the framesize does not match, the following information is printed :

theora parameter compare: height or width are not matching:360:288 != 640:480   I could not find enough matching streams for file <secondFile.ogg>   

The frame position for both, video and audio is completely recalculated for the new file, so that there are no timestamp problems (e.g. with players like cortado).


Even if the Xiph Foundation (the developers of OGG) has recently created an additional header for ogg media files including new information (e.g. for the file time length), this additional data is not widely used. Therefore oggLength does not rely on this information and calculates the time length of an ogg media file by stream analysis and prints the calculated value

oggLength analysisFile.ogg   


oggScroll displays every video frame of a video stream within an ogg media file and prints out the frame position of the frame that is shown.

oggScroll showFile.ogg 

To show the next frame, just hit any key (e.g. space). For jumping to the next keyframe, hit the "+" key and to exit oggScroll, hit "q".

If the focus is accidentally placed on the video frame, change to the focus to the console oggScroll is running in (otherwise the keypress is lost).

Getting more information

If you are interested in news of the Ogg Video Tools or if you would like to help developing new tools or advance the existing ones, join the streamnik mailinglist ( or visit the streamnik webpage (

TheoraCookbook (en)

Ogg Video Tools Research Links
STREAMNIK Development : The Ogg Video Tools
Firefogg - Make web video
STREAMNIK Development : Screencast