Google open sources new compression algorithm called Zopfli
Share on Twitter.
Get the most reliable SMTP service for your business. You wished you got it sooner!
March 1, 2013
Google says that it will now offer a new open sourced compression algorithm called Zopfli. The company says that it's a
slower-but-stronger data compression engine than the likes of zlib.
The solution is from Googler Lode Vandevenne, and he used Google's 20% time formula, the number of days in a month Google
allows its staff to work on side projects.
Zopfli is said to reduce files to sizes 3.7 to 8.3 percent smaller than its rivals. The downfall is that it takes one hundred
times longer to do the job.
Google already agreed to that delay, noting that Zopfli requires two to three times the CPU power of its rivals and is
therefore “best suited for applications where data is compressed once and sent over a network many times, for example, static
content for the web.”
Over the years, many people have claimed to have created compression systems that can pack data into wonderfully tiny bundles.
So while Google has made only modest compression gains and has done so without time savings, 8 percent is still nothing to be
sneezed at in applications like content delivery to mobile devices, where any reduction in the amount of time ratios work means
better battery life and lower bills for data consumption.
And while Zopfli takes a lot more time to compress data, it uses existing tools to unpack it at the same speed as rival
algorithms, meaning no processing penalty on the software.
Open sourcing the algorithm therefore makes a lot of sense, given Google is keen on getting more content into more mobile
devices more often and in more places. Almost everyone who owns a mobile device wishes it would do things faster.
Let's not forget the looming wireless spectrum crunch predicted to send mobile data costs rising to unpleasant levels, a
phenomenon a little more compression could ease.
In other IT and open source news
The Ruby community has just announced the first stable release of Ruby 2.0, exactly twenty years to the day since Ruby
creator Yukihiro Matsumoto first created the language on February 26, 1993.
Ruby 2.0.0-p0, as the release is formally known, represents the first major revision of the language since Ruby 1.9 was
released in December 2007.
The most recent entry in the 1.9 line, Ruby 1.9.3, was released on October 31, 2011. Although the full list of changes since
Ruby 1.9.3 is fairly long, Ruby 2.0 is essentially an incremental release, one that maintains nearly full backward compatibility
with the previous version.
According to the language's maintainers, most developers today will find it much easier to migrate from Ruby 1.9 to Ruby 2.0
than previous versions.
Among the language changes in the new release are the ability to pass arguments to methods as named keywords; new syntax
that makes it easier to create arrays of symbols; and Module#prepend, a way to allow methods loaded from a module to override
those in a specific class.
The default character encoding for Ruby scripts has been changed from US-ASCII to UTF-8, which can cause issues with some
older scripts but it still eliminates the need to use magic comments to declare UTF-8 encoding in modern programs.
Refinements, another new feature that improves how modules can be used to extend core classes among the Ruby community – is present in Ruby 2.0,
but it's still considered experimental. Its specification may yet change in future releases, so it's not recommended for everyday
Changes to the Ruby core libraries in v. 2.0 include a new, more powerful regular expression engine; a new API for asynchronous
exception handling; and "lazy" methods for the Enumerator and Range classes and the Enumerable module that delay evaluation of
expressions until their values are needed.
A number of optimizations have been made to the Ruby runtime that improve performance. In particular, Ruby on Rails startup
times have been much improved. Shortly after today's announcement, the Rails team confirmed that Rails 3.2.x is already compatible
with Ruby 2.0. In addition, Ruby 2.0.0 now supports run-time debugging of production code using DTrace.
Unlike Ruby 1.9, Ruby 2.0 is considered a stable release and current Ruby 1.9.3 programmers are encouraged to start using
it for their production code.
As the release notes state, "Ruby 2.0 is ready for practical use, and will absolutely improve your Ruby life." The new
version is available for download from the official Ruby website and the source code is also available via Github.
In other IT and open source news
In the last few days, Microsoft's Azure cloud service was knocked offline by a simple SSL certificate that someone at
the software behemoth simply forgot to renew on time. Needless to say, the oversight affected thousands of companies that
rely on Microsoft's cloud system to keep their apps running, and now the company is being asked several questions on how
this could have happened in the first place.
One of the features buried inside the release notes for Server 2012 is Centralized SSL Certificate (CSC) management. You
can run a farm of up to 10,000 IIS web server nodes off a single CSC server. Each of them can be directed to automatically
contact the server to receive certs from a single server that gives you a reasonably simple interface to direct a symphony
So this actually adds fuel to the injury. Considering everything in Microsoft's new cloudy world is PowerShell scriptable,
you can even stagger renewals so that no one certificate expiration can crash everything at once. Now here's the real kicker--
Microsoft doesn't have to worry about licensing the servers it directly owns and manage, so how exactly did this happen and how
could it happen?
Even if it was the cryptographic certificate upstream from the end nodes that expired, why wasn't the CSC server auto-renewing
from elsewhere? Since Microsoft can sign its own certificates, then between CSC and Server 2012's more traditional certificate
manager you could actually have thousands of certs all renewing at the same time.
Get the most dependable SMTP server for your company. You will congratulate yourself!
Share on Twitter.
Need to know more about the cloud? Sign up for your free Cloud Hosting White Paper.