Innovation in Lossless Compression: Apple’s LZFSE, Google’s Brotli and Yann Collet’s Zstandard

With Google’s recent open-sourcing of Brotli following on the heels of Apple’s announcement of LZFSE, it’s an exciting time in the lossless compression world, as new compression schemes tuned for specific use cases now appear to offer substantial enough benefits to challenge the venerable ZIP/Deflate as the Internet’s transport compression algorithm of choice.

Of course, Deflate and its most widespread implementation, zlib, aren’t dead yet, not by a long shot. But what these new LZ77 algorithms offer is significant enough performance gains to justify widespread implementation, and adoption by the W3C. And they have the backing of companies such as Google and Apple, which means they’ll ship on tens of millions of devices and browser installs. more …

One-liner to recursively convert flac to mp3

Here’s what I do, it uses FFmpeg, doesn’t require a for loop and should work on any POSIX-compliant system. Take note that it will delete your original files! The idea is to make a copy of your music folder first, and then run this command on the copy.

find -name "*.flac" -exec sh -c 'ffmpeg -i "$1" -acodec libmp3lame -aq 4 "${1%.flac}.mp3" && rm -f "$1"' _ {} \;

And that’s it! more …

Filed under: Code.  Tagged: , , , .

Outernet’s solar-powered content downloader, Lantern

In the age of the Internet of Things, it is interesting to see a non-Internet device that uses Web technologies in a new way. Outernet is a project started earlier this year by the nonprofit Media Development Investment Fund that buys bandwidth on communications satellites to do one-way broadcast of news, education and other critical content worldwide.

Already available to anyone willing to do a little work with off-the-shelf hardware like Raspbery Pi, Outernet now have an integrated, solar-powered receiver called Lantern that doubles as a charger, theoretically enabling offline, anonymous read-only access to Web content anywhere in the world. more …

Filed under: Technology.  Tagged: , , .

Overclocked Android kernel for Optimus V

Now that LG has corrected its source code, I’ve built my overclocked Android kernel for the Virgin Mobile Optimus V, a phone that’s nearly identical to my Sprint Optimus S and that also runs on Sprint’s 3G CDMA network. If your V needs a speed boost or extra driver support, keep reading! more …

Filed under: Code.  Tagged: , , , .

Update: LG addresses bugs in kernel source for Optimus V

Sweet victory! LG took quick action and wrote me yesterday to tell me they’d released an updated version of the source code for the Optimus V that fixes the bugs I identified over the weekend.

So, all is well in this small corner of the open-source world. I’ve downloaded the new source code (labeled “LGVM670(Thunder) Android Froyo/kernel bugs were fixed” on LG’s download site), and verified that the fixes were made and that the new code builds cleanly.

In case you’re interested in the differences between the Optimus S and Optimus V (LS670 and VM670, respectively), here’s a diff of the kernel sources that I’ve made.

Filed under: Code.  Tagged: , , , , .

Bugs in LG kernel source code for Optimus V

I’ve discovered some bugs in the Linux kernel source code released by LG for the Virgin Mobile Optimus V, or VM670, a close CDMA twin to my Sprint Optimus S. It seems clear from the differences between the S and V source releases that LG has attempted to scrub code comments from the V source, but in the process they’ve created at least two syntax errors that break the code and cause it not to build.

They’ve also left out 15 files that are part of the Linux kernel’s netfilter and needed to build the kernel as configured by LG.

Update: LG has fixed the bugs, so keep reading only if you’re interested in the details.

I’ll detail the problems and explain how to (possibly) fix them below. However, the real issue is that the LG archive is broken as-is, so there’s no way it was used to build the actual Optimus V kernel. While I’m no GPL expert, it seems to me that LG is obligated to provide actual, working source code upon request, not an incomplete, broken fork. Let’s hope this was just an oversight, and one that LG will rectify. more …

Filed under: Code.  Tagged: , , , , .

Firefox 4 for PowerPC Macs: TenFourFox

Mozilla hit me with a double whammy of “your hardware sucks” last week, when they released major new versions of Firefox 4 and mobile Firefox 4 for Android (the first!) … but left me out of both parties.

My Android phone, the LG Optimus S, is only a few months old, but its ARMv6 processor isn’t supported. There’s a faint glimmer of hope there, but with the ARMv6 test builds already pulled, I’m not holding my breath. In the meantime, the stock Android browser and Opera Mobile are both great (Opera’s font rendering needs work in the hinting/character spacing department, but that’s it).

Meanwhile, my Powerbook G4 is still running happily along on OS X 10.4 Tiger, so I was happy to find the answer to my Firefox 4 woes in TenFourFox, a Firefox fork with builds optimized for various G5, G4 and G3 processors. Here’s a mini-review of my impressions after a week, and a look at what’s coming up in browser-land for those of us clinging proudly to the last generation of PowerPC Macintosh computers. more …

Filed under: Reviews.  Tagged: , , .

Simple overclocked Android kernel for Optimus S

If you’re looking to give your Sprint Optimus S a speed boost, I’ve got a kernel for you, compiled from official LG source code, that adds overclocking and removes unneeded debugging features for a leaner, meaner kernel.

The basic idea behind this kernel build is “stable performance” — other devs are doing a great job backporting the latest features from the mainline Android kernel and writing experimental patches. My goal is a lot less ambitious, but also less bleeding-edge: Build a kernel from official source, one that “just works” for me the user, but boost performance to get the most from the hardware.

I’ve also included the Linux TUN/TAP driver as a module, so that (among other things) you can use OpenVPN with your Optimus, if you like. Need some other module? Ask! more …

Filed under: Code.  Tagged: , , , .

A better way to losslessly join MP3 files

I recently revisited a previous how-to I wrote up two years ago, thinking that there must be a better way to losslessly combine multiple MP3 files than to use 3 separate utilities.

The good news is, I think I’ve found the one true method. The bad news is, it still uses 3 programs. But, just like last time, the commands are short and sweet, and it’s easy to throw them into a shell script. more …

Filed under: Systems.  Tagged: , .

Android kernel: Find the base address to use with mkbootimg for your phone

This is old hat for serious Android hackers, but for me it took long enough to find (no help from Google or grep) that I’ll post it here. If you’re building your own Android kernel, the last step in the process is to pack the kernel binary and gzipped ramdisk together into a boot image with mkbootimg. Here’s where to find the base address to use for the “–base” parameter for your device. more …

Filed under: Systems.  Tagged: , , .

Older posts »