Ever since the iPhone 5S was announced a couple of weeks ago, the world of tech journalism has been filled with massive quantities of misinformation. Unfortunately, good information takes time, and the world of tech journalism is more about speed than accuracy. Today, as suggested by a variety of readers, I'm going to give the rundown of just what 64-bit ARM in the iPhone 5S means for you, in terms of performance, capabilities, and development. Read more...
Monday, September 30, 2013
Thursday, September 26, 2013
Pardon me while I indulge my inner geek. I'm going to talk about how clocks work in Linux. Why am I doing this? Because you need to know. It's confusing, complicated, and not terribly well documented (yet). But mostly because I want to indulge my inner geek.
Clocks and timers can be a bit confusing. There are a lot of them, and they all seem to work slightly differently. This post describes the clocks available in Linux, from the most common (time() and gettimeofday()) to the more esoteric (clock_gettime() and the latest clock IDs. Read more...
Tuesday, September 24, 2013
But let’s start from the beginning for folks who are hearing about us for the first time. Ambitious, passionate, but perhaps a little understaffed and inexperienced we were. Tens of thousands of mystical man hours later, at the five year anniversary of our organization, we are proud to present the Better CMS v1.3.0. Originally a paid product, today the open source Better CMS fills an industry gap on the .NET platform. Read more...
I was asked a few weeks ago, "What was the biggest surprise you encountered rolling out Go?" I knew the answer instantly: Although we expected C++ programmers to see Go as an alternative, instead most Go programmers come from languages like Python and Ruby. Very few come from C++. We—Ken, Robert and myself—were C++ programmers when we designed a new language to solve the problems that we thought needed to be solved for the kind of software we wrote. It seems almost paradoxical that other C++ programmers don't seem to care. I'd like to talk today about what prompted us to create Go, and why the result should not have surprised us like this. I promise this will be more about Go than about C++, and that if you don't know C++ you'll be able to follow along. The answer can be summarized like this: Do you think less is more, or less is less? Read more...
Monday, September 23, 2013
nginx (pronounced "engine x") is a free open source web server written by Igor Sysoev, a Russian software engineer. Since its public launch in 2004, nginx has focused on high performance, high concurrency and low memory usage. Additional features on top of the web server functionality, like load balancing, caching, access and bandwidth control, and the ability to integrate efficiently with a variety of applications, have helped to make nginx a good choice for modern website architectures. Currently nginx is the second most popular open source web server on the Internet. Read more...
Sunday, September 22, 2013
FreeBSD 10 has been in the works for a while. FreeBSD 9 became available on 12 January 2012 and now 20 months later, FreeBSD 10 is shaping up nicely, with two alpha releases available for testing.
According to the Release Schedule FreeBSD 10 will receive the RELEASE status in November, but since the developers aim for quality of product over speed of release, this may slip into Dec 2013 / Jan 2014.
There has been a lot of maturing technologies in FreeBSD 10, with many new features which make this release, I think, the most exciting one in years. A lot of development has gone into virtualisation support. Virtualisation with FreeBSD Jails has been available for a long time, but not so much “full virtualisation”.
Let’s have a look at the some of the most talked about, most requested and most interesting features that have found their way into or are planned for “10.0″, but may not make the deadline. Read more
Friday, September 20, 2013
Once upon a very long time ago we did a project to compare the efficiency of Erlang to PLEX. We implemented "the same things" (TM) in Erlang and PLEX and counted total man hours. We did this for several different things. Erlang was "better" by a factor of 3 or 25 (in total man hours) - the weighted average was a factor 8. They asked "what is the smart programmer effect". We said "we don't know". We revised the figure 8 down to 3 to allow for "the smart programmer effect" - this was too high to be credible, so we revised it down to 1.6. (the factors 3 and 1.6 where just plucked out of the air with no justification). Experiments that show that Erlang is N times better than "something else" won't be believed if N is too high. Read more...
I’ve been looking for a good analogy of what programming in C++ feels like and I remembered this 1990 Tim Burton movie, Edward Scissorhands.
I often have these kinds of thoughts after attending C++ conferences: this time it was Going Native 2013. The previous year, the excitement was all about the shiny new C++11 Standard. This year it was more of a reality check. Don’t get me wrong — there were many stunning dog hairdos on display (I mean C++ code that was elegant and simple) but the bulk of the conference was about how to avoid mutilation and how to deliver first aid in case of accidental amputation.
There was so much talk about how not to use C++ that it occurred to me that maybe this wasn’t the problem of incompetent programmers, but that straightforward C++ is plain wrong. So if you just learn the primitives of the language and try to use them, you’re doomed.
Thursday, September 19, 2013
C++11 is being deployed and the shape of C++14 is becoming clear. This talk examines the foundations of C++. What is essential? What sets C++ apart from other languages? How do new and old features support (or distract from) design and programming relying on this essence?
I focus on the abstraction mechanisms (as opposed to the mapping to the machine): Classes and templates. Fundamentally, if you understand vector, you understand C++.
Type safety and resource safety are key design aims for a program. These aims must be met without limiting the range of applications and without imposing significant run-time or space overheads. I address issues of resource management (garbage collection is not an ideal answer and pointers should not be used as resource handles), generic programming (we must make it simpler and safer), compile-time computation (how and when?), and type safety (casts belongs in the lowest-level hardware interface). I will touch upon move semantics, exceptions, concepts, type aliases, and more. My aim is not so much to present novel features and technique, but to explore how C++’s feature set supports a new and more effective design and programming style.
Wednesday, September 18, 2013
The big news is that, for the first time since these reports started coming out in 1990, the new one dials back the alarm. It states that the temperature rise we can expect as a result of man-made emissions of carbon dioxide is lower than the IPCC thought in 2007.
Admittedly, the change is small, and because of changing definitions, it is not easy to compare the two reports, but retreat it is. It is significant because it points to the very real possibility that, over the next several generations, the overall effect of climate change will be positive for humankind and the planet.
In other words, if you decide to do web development in C, you’ll probably have to go it alone in building large parts of your application stack—maybe even all of it. But there are signs that that could be changing, and I think that this could be an encouraging development.
While some Lone Wolf McQuade-style developers prefer to work without frameworks (or to create their own from scratch), let’s face it: frameworks can offer enormous productivity gains. And if you use solid frameworks in a careful fashion, those productivity gains can be reaped at little detriment to things like performance and customizability. There aren’t a whole lot of frameworks for C, but there are a few that I’ve come across that are worth mentioning... Read more...
Monday, September 16, 2013
Scott gets schooled by Damian and Levi on the differences between parallelism, background processing, and asynchronous programming. How does await and async change the game and what do you need to know to get started today.
Thursday, September 12, 2013
A lot has happened with Web technologies in general since we introduced the first version of Qt WebKit in 2007. From having a couple of percent market share, the WebKit open source project nowadays has became the most widely used browser engine in the world. While the Qt port of WebKit was pretty much the first non-Apple port of WebKit, many other projects and companies joined the project over the years to follow.
The Chromium project took an especially big role in the project and became over time the biggest contributor to WebKit (followed by Apple and with Qt on the third place). The cooperation between different companies on one open source project was, however, never without difficulties, and this spring Google decided to leave the WebKit project in favor of their own fork of WebKit, Blink.
Since then, Blink, which really is a very integrated part of Chromium, and WebKit have been going separate ways, and the two code bases have been rapidly diverging. Because of this, the Digia Qt R&D WebKit team decided to have a closer look at both Chromium and WebKit to decide how we could offer the best possible Web engine for Qt in the future.
Wednesday, September 11, 2013
As of last week, the GNU Compiler Collection (GCC) is no longer being compiled by default as part of the FreeBSD base system.
Going back for many months we have known that FreeBSD developers (and BSD users in general) have been pushing for a LLVM/Clang world and to limit the usage of GCC. Clang has grown in functionality for being on-par with GCC as a C/C++ compiler and it's more liberally licensed than the GPLv3 GCC and the LLVM-based feature-set continues to expand like faster and lighter compilations. This has been part of the plan for FreeBSD 10.
The importance of Web performance has been slightly overlooked since the birth of responsive design. Designers and developers have been focusing on how to solve the responsive puzzle and, along their way, a new multi-bandwidth, multi-device, multi-location web is starting to come into focus. To be prepared for tomorrow’s problems, we have to include performance as an essential consideration, as the desktop-centered web is disappearing before our eyes. The mobile user is hastier and readier and won’t jump through hoops to get the content, and since more and more sites spring up every day, being fast will mean being ahead. Read more...
There are hundreds of devices with different screen sizes and resolutions. (Image credit: Android Design. Used under Creative Commons license.)
Tuesday, September 10, 2013
66 years ago today, on the 9th September, 1947, operators of the Mark II Aiken Relay Computer being tested at Harvard University, found something curious trapped between points at Relay #70, Panel F. A moth. Read more...
Monday, September 9, 2013
This release expands PostgreSQL's reliability, availability, and ability to integrate with other databases (postgresql.org)
The PostgreSQL Global Development Group announces the release of PostgreSQL 9.3, the latest version of the world's leading open source relational database system. This release expands PostgreSQL's reliability, availability, and ability to integrate with other databases. Users are already finding that they can build applications using version 9.3 which would not have been possible before.Read more...