Topic code

LibreOffice 4.3 gets good marks for useful improvements

in code on (#3S3)
story imageSteven J. Vaughan-Nichols has just reviewed the recently released LibreOffice 4.3, and gives it a thumbs up. It has made huge strides since the – LibreOffice "divorce" and this version includes improvements in office format interoperability, spreadsheet performance and usability, comment management, and the arrival of 3D models in Impress.
The program's code quality has also been greatly improved in the last two years. Coverity Scan found the defect density per 1,000 lines of code has shrunk from an above the average 1.11 to an industry leading 0.13 since 2012. According to Coverity, "LibreOffice has done an excellent job of addressing key defects in their code in the short time they have been part of the Coverity Scan service."

Like previous versions, LibreOffice is available for Linux, Mac, and Windows systems. You can also run an older version, LibreOffice 4.2, from the cloud using a Software-as-a-Service (SaaS) model.

With the United Kingdom making LibreOffice's native ODF its default format for government documents, LibreOffice is certain to become more popular. Other cash-strapped governments, such as Italy's Umbria province, have found switching to LibreOffice from Microsoft Office has saved them hundreds of thousands of Euros per thousand PCs.
The release notes are available here. Gentlemen, start your downloading engines!

Unikernels: rise of the virtual-library operating system

in code on (#3QG)
Mssrs. Anil Madhavapeddy and David J. Scott over at the Association for Computing Machinery (ACM) ask: What if all layers in a virtual appliance were compiled within the same safe, high-level language framework? Good question, and I suspect we'll find out soon enough, because the trend in virtualization seems to be leading us in this direction.
While operating-system virtualization is undeniably useful, it adds yet another layer to an already highly layered software stack now including: support for old physical protocols (e.g., disk standards developed in the 1980s, such as IDE); irrelevant optimizations (e.g., disk elevator algorithms on SSD drives); backward-compatible interfaces (e.g., POSIX); user-space processes and threads (in addition to VMs on a hypervisor); and managed-code runtimes (e.g., OCaml, .NET, or Java). All of these layers sit beneath the application code. Are we really doomed to adding new layers of indirection and abstraction every few years, leaving future generations of programmers to become virtual archaeologists as they dig through hundreds of layers of software emulation to debug even the simplest applications?
This project intends to reduce the different layers of software and operating system to simple-API systems that can be installed and used like virtual appliances, perhaps [ed. note: this is my analogy, not the author's] the way Busybox reduces the POSIX standard to a simpler and smaller binary executable.

Atom now available on Windows

in code on (#3QB)
If you haven't heard of Atom already, now's a good chance to get acquainted. It's GitHub's open source editor, and it's pretty awesome. The developers behind it write:
At GitHub, we're building the text editor we've always wanted. A tool you can customize to do anything, but also use productively on the first day without ever touching a config file. Atom is modern, approachable, and hackable to the core. We can't wait to see what you build with it.
It's different from traditional text editors in a couple of important ways, including a web-based core and Node.js integration. Atom is "A hackable text editor for the 21st Century." It is built on node and chromium and is very easy to extend and customize. Best of all, it is now available on Windows.

I have been using it on OS X for several months and like it a lot. It is great for ruby, python, html, etc. One of its few shortcomings is that it really isn't great for editing very large text files - megabytes of logs, for example. It's been available for Mac OSX for a while already. And for those linux users who do not want to wait for an official release, there is a build howto here.

Curious, or ready to start coding? Here are five tips for getting started.

The Future of GTK+

in code on (#3Q6)
story imageOnce hailed as the most free and widest used X toolkit, the future of GTK+ now looks dire. The gnome developers have essentially highjacked the latest version, GTK3, and are actively destroying all ability of non-gnome users from using this once popular toolkit. I find this very unsettling, as I have developed a number of my own desktop applications using GTK+ through all three of its major versions. I've always preferred GTK over QT, but with some of the recent changes, I'm starting to change my mind.

Of course, I'm hardly alone in this opinion as many other projects have abandoned GTK in the recent months. Take Audacious, for example. This GTK music player has had increasing troubles with the gnome developers screwing things up. So many troubles that they are now planning on switching toolkits rather than further deal with the upstream management. Although they had a functional GTK3 port, they've officially reverted back to GTK2 until they can properly refactor their entire program into QT.

I've been a happy user of the XFCE desktop environment for the last few years. This light and easy to use UI gets out of the way and just plain works. However, the interface toolkit of XFCE is tied to GTK2 and its authors have no clear upgrade path. A similar project, LXDE, has also seen the writing on the wall and are well into a rewrite project that switches their preferred toolkit from GTK to QT.

Although the “G” in GTK stands for “GIMP” this popular image manipulation program has yet to release a GTK3 version. Even Linus Torvalds' own pet project, Subsurface, has recently abandoned GTK for QT. Is the future of GTK+ programs doomed? Can a revival project, such as Mate, takeover maintenance of the GTK toolkit for the rest of us? (let the gnome people screw up their own fork)

Programming languages: where to begin?

in code on (#3PN)
story imageThere's been tremendous evolution in the programming language space, as new coding philosophies and paradigms change over time to address old problems or new visions. But how to decide where to invest your time and energy?

Apple's new Swift language is the newborn on the block, and iOS developers seem to be impressed. Infoworld recommends nine languages that make writing Javascript a joy, if that's possible (coffeescript, gorillascript, typescript, and others). Venturebeat recommends you start with Javascript before moving onto something like Python or Ruby. The Google engineer who invented Dart, Gilad Bracha, deplores the dearth of viable programming languages that would allow the Web to compete with native code. CIO also recommends Javascript, but also suggests budding web designers also look into Opa, Scala, and Erlang, among others.

Or should you just throw in the towel, and have a little fun with something totally useless like Brainfuck, or the Arnold Schwartzenegger programming language?

Big Data: everybody wants some

in code on (#3PE)
story imageNobody can quite pin down what Big Data is, but apparently everybody wants some. Or is afraid of it. Or both. Nevertheless, gains in processing power and decreases in hardware costs are permitting us to crunch numbers in a bigger way than ever thought possible. And there's a lot to show for it:

Not surprisingly, big data is being used to predict the outcome of the 2014 World Cup [video link]. It's increasingly being used to monitor and quantify social media behavior to inform credit and lending decisions. It's also being used to monitor and supervise conditions along the entire food chain, with obvious safety and health benefits. In fact, the folks at ITWeb would like to debunk the myth that Big Data is only being used to monitor your social media habits and sell you more junk. Although it's being used for that, too.

Download this trial version of our software: bad example

in code on (#3NS)
story imageGiving potential users the chance to test your software to committing to buying it is important and useful. Too bad large corporations so infrequently make it easy to do so. Here's what it took one person in order to test drive a copy of Microsoft SQL Server Express 2014 : 12 steps and a lot of hassle. Good thing he's got a sense of humor.

Sick of Hearing about the Cloud? Here's a Browser Plug-in for You

in code on (#3KX)
story imageCloud, cloud, cloud, cloud, cloud. Tired of hearing it? I am. Especially if you know something about server technologies, it's not hard to recognize the cloud is only marginally better than other server technologies, but is being marketed to death by breathless corporate drones who see it as an opportunity to sell, sell, sell.

If that's your case, then you need this browser plug-in, cloud-to-butt . Written by somebody who's sicker of it than you are, it replaces all occurrences of "the cloud" on a webpage with "my butt." Check out the screenshots for some hilarious examples.

This has been a Pipedot Public Service Announcement [PPSA].

[Ed. Note: plugin is available for Chrome, Firefox, Safari and Opera, so you can be sure your butt's covered]

Fortran Forever

in code on (#3K5)
story imageArsTechnica has an interesting article featured today about scientific computing and the enduring role played by the Fortran programming language . The article explores three potential challengers to the dominance of Fortran in scientific computing including Haskell , Clojure , and Julia . One of the main points made by the article is that support for existing Fortran and C libraries is essential as is support for concurrent (parallel) algorithms. Will Fortran rule scientific computing forever or will a challenger usurp the throne?

[edited 2014-05-09 13:32 for spelling]

OpenSSL bug sparks new development

in code on (#3HX)
The Heartbleed bug has sparked new interest in cleaning up the OpenSSL code base. As evidenced by OpenBSD's CVS repository, the team has started removing old platform specific code, style inconsistencies, non-free hardware crypto engines, and dubious wrappers from the library. Perhaps the best side effect of the Heartbleed bug will be a much cleaner and more secure OpenSSL package.

Ed. note: So, is a catastrophic and highly public failure what it takes to catalyze action in some projects? And if so, which other projects are in need of some energizing disaster?

Update: The mentioned cleanup is taking place in the OpenBSD CVS repository. The official OpenSSL repository information can be found at