Tuesday, September 18, 2012

Digia finally acquires the Qt

Digia today announced that it has completed the acquisition of the Qt software technologies and Qt business it announced in August 2012. As Digia now becomes responsible for Qt activities including product development and commercial and open source licensing, the acquisition paves the way for Qt to become the world’s leading cross-platform application development framework across desktop, embedded and mobile platforms.

Used by over 450,000 developers worldwide, Qt is a full framework that enables the development of powerful, interactive and platform-independent applications. Qt is a proven and solid technology used across many different industries to provide extensive applications beyond what is possible with many other cross-platform technologies. Qt applications run native on the host system, delivering performance that is far superior to any other cross-platform application development framework. With Qt, developers can not only take full advantage of the multicore processors in desktops and high-end smartphones, but also deliver impressive graphical performance on low-end and low cost embedded hardware. Qt’s support for multiple platforms and operating systems allows developers to save significant time related to porting to other devices. Once developed on a Windows desktop PC, for example, an application’s code can be re-used on a smartphone, tablet computer or embedded device.

Qt comes with a built-in tool-chain, IDE and an extensive set of C++ frameworks. The Qt Quick technology allows for rapid and easy creation of dynamic and interactive user interfaces. Using Qt Quick’s declarative programming method, which couples QML and JavaScript with a powerful C++ engine, leads to optimally performing and visually stunning user interfaces. Qt's built-in features such as full support for HTML5 through the Qt WebKit module provide an easier and all-in-one solution for hybrid application development where pure web technologies fall short.

Qt already runs on leading desktop, embedded and real-time operating systems, as well as on a number of mobile platforms. Digia has initiated projects to deliver full support for Android and iOS mobile and tablet operating systems within Qt and will present the product roadmap and strategy later in the fall. Adding this support will extend one of the most popular and powerful development frameworks to cover the fastest growing and most popular smartphone and tablet operating systems.

Digia will continue the work with ecosystem members and the Qt community to secure a successful release of Qt5 and is committed to continuing the Qt Project in order to maintain Qt’s availability under both open source and commercial licences. Digia now has over 200 dedicated people working on Qt. The 89 Qt team members who have now joined Digia include many key players of the Qt community, of whom Lars Knoll, Chief Maintainer of the Qt Project, is one of the most experienced members of the Qt ecosystem.

Lars Knoll, Chief Maintainer of Qt Project, Digia commented: "I look forward to the exciting next chapter for Qt together with Digia. Qt 5 Beta was released during the acquisition process and we are working hard to reach a final release within the next months. Qt 5 is a huge step forward for Qt and, with technologies such as Qt Quick or the improved WebKit module, Qt is making many things trivial that are very hard to achieve with other technologies. Qt being developed as an open source project, with a vibrant and strong community behind it, greatly increases the strength of the technology. I am now very much looking forward to bringing the product to new platforms such as Android and iOS."

Tommi Laitinen, SVP, International Products, Digia, commented: "Qt has already proved to be exceptionally popular with developers because of its easy-to-use libraries and ability to generate efficient, high performance applications in minimal time. Our intention is to continue to work towards the goal set out by Trolltech, Qt’s originators, to develop a framework that enables users to ‘write code once and deploy everywhere’. Adding support for Android and iOS, together with the most widely used embedded operating systems, will give us the potential to target hundreds of millions of products and to help make Qt the dominant force in the software development world."

9 key career issues for the software developer

The path from birth to death is filled with choices about where to work and what kind of work to do. Sometimes the world is nice enough to allow us some input. These days, developers have a lot more say in their employment, thanks to rising demand for their services.

Whether you’re an independent contractor or a cubicle loyalist with a wandering eye, programming want ads abound, each stirring its own set of questions about how best to steer your career. For some, this is entirely new territory, having fallen into employment with computers simply as a means to scratch an itch.
The following nine concerns are central to charting your career path. Some target the résumé. Others offer opportunities for career growth in themselves. Then there are questions of how to navigate unfortunate employment issues particular to IT. Thinking about your answers to these questions is more than a way of preparing for when someone comes to ask them. It is the first step in making the most of your interests and skills.

Will certification give you an edge? A common dilemma facing career-minded developers is how much attention to pay to certification. After all, employers always want to determine if you really know what you claim to know, and tech companies are always stepping forward with certificate programmes to help them.
The programmes are aimed at teaching a given technology, then testing your competence with what was taught. They focus on practical solutions, not theoretical conundrums like most university courses. Thus, they appeal to companies looking to vet candidates in their ability to deliver real-world solutions.
The key question for developers, though, is whether there’s any real demand for a particular certificate. Most cutting-edge technologies are too new to be testable, so employers look for other evidence of ability. The real market for certification will always be in bedrock tools like running an Oracle database or maintaining a fleet of Microsoft boxes. Companies that depend on Oracle or Microsoft will usually pay extra for people who’ve already demonstrated a skill. When your certification and the employer’s needs align, everyone is happy.

But developers need to choose carefully. Preparing for exams takes a fair amount of time, and the questions often test trivial knowledge — the kind usually provided by automatic tools built into today’s powerful editors.

Certificates often have a limited window of usefulness as well. Being an expert on Windows XP was great 10 years ago, but it won’t help much today — unless the company is sticking with XP until the bitter end. You can often find yourself getting certified in versions 1.0, 1.1, 1.2 of a product.

What is the true value of a computer science degree? If it’s hard to discern whether a professional certificate for a particular technology is worth earning, it’s almost impossible to decide whether to invest in traditional collegiate degrees. All it takes is one look at leaders like Steve Jobs, Michael Dell, Bill Gates, or Mark Zuckerberg to know that a bachelor’s degree is not a prerequisite for changing the world.

But traditions die hard. Some companies simply insist on a bachelor’s or even a master’s degree because it’s an easy way to cut their pile of résumés, or offers a measure of some intangible quality like a deep interest and versatility in working with computers. Whatever the reason, a significant number of people continue to believe that a sheepskin is essential, so developers with an eye on the want ads encounter the dilemma to stock up on diplomas time and again.

The practical value of a collegiate degree is controversial. Some find the typical university curriculum too focused on theoretical questions about algorithms to be a meaningful benchmark in the workplace. The professors are more interested in wondering whether the running time can be predicted with a polynomial or an exponential function.

Others believe that this abstract understanding of algorithms and data structures is essential for doing a good job with new challenges. Languages come and go, but a deep understanding lasts until we retire.

Should you specialise or go broad when it comes to programming languages? A good developer can program in any language because the languages are all just if-then-else statements wrapped together with clever features for reusability. But every developer ends up having a favourite language with a set of idioms and common constructs that are burned into the brain.

The challenge is to choose the best one for the marketplace. The most demand will be for languages that form the foundation of the big stacks. Java, C++, PHP, and JavaScript are always good choices.

But the newer languages are often seductive. Not only do they solve the problems that have been driving us nuts about older languages, but no one has managed to articulate the new aggravations they offer.

Employers are often as torn as developers when it comes to committing to a new language. On one hand, they love the promise that a new programming language will sweep away old problems, but they’re also prudent to be sceptical of fads. A technology commitment could span decades, and they must choose wisely to avoid being shackled with a onetime flashy language that no one knows any more.

For developers, the best position is often to obtain expertise in a language with exploding demand. Before the iPhone came out, Objective-C was a fading language used to write native applications for the Mac. Then things changed and demand for Objective-C soared. The gamble for every developer is whether the new FooBar language is going to fade away or explode.

Should you contribute to open source projects? The classic stereotype of open source projects is that they’re put together by unkempt purists who turn up their nose at anything to do with money. This stereotype is quickly fading as people are learning that experience with major open source projects can be a valuable calling card and even a career unto itself.

The most obvious advantage to working on an open source project is that you can share your code with a potential employer. If you’ve achieved committer status, it shows you work well enough with others and know how to contribute to an ongoing project. Those are valuable skills that many programmers never develop.

Some of the most popular open source projects are now part of enterprise stacks, so companies are increasingly looking for developers who are part of the community built around the open source projects on which their stack depends. One manager at a major server company told me he couldn’t afford to hire Linus Torvalds, but he needed Linux expertise. He watched the Linux project and hired people who knew Linus Torvalds. If the email lists showed an interaction between Torvalds and the developer, the manager picked up the phone.

Many open source projects require support, and providing this can be a side job that leads to a full-time career. Companies often find it much cheaper to adopt an open source technology and hire a few support consultants to make it all work, rather than go proprietary.

Savvy programmers are also investing early in open source projects by contributing code. They can work on cutting-edge open source projects on the side just because they’re cool. If the project turns into the next Hadoop, Lucene, or Linux, they’ll be able to turn that experimentation into a job and, quite possibly, a long-lasting career.

How do you work around ageism?                                                                                                                                                                                        
What does every tech recruiter want? An unmarried 21-year-old new graduate of a top computer science institution ready to work long hours and create great things. What about a 22-year-old with a year of experience? Uh. Maybe. Perhaps. Are there any 21-year-olds available?

One of the great, often unspoken, rules of the programming world is that managers have very narrow ideas of the right age for a job. It’s not that managers want to discriminate, and it’s not that humans want to change as they get older — but they do. So everyone clings to stereotypes even if they’re against the law.

This is often most obvious in the hypercompetitive world of tech startups, where the attitude is like the NBA. If you got stuck finishing your degree, you’re obviously not special enough. This world prizes people who spend long hours doing obsessive things. They like youth, and it’s not uncommon to hear venture capitalists toss aside anyone who’s not a younger 20-something.

The good news for programmers is that some employers favour older, more mature people who’ve learned a thing or two about working well with others. These aren’t the slick jobs in the startup world that get all the press, but they are often well-paying and satisfying.

The savviest programmers learn to size themselves up against the competition. Some jobs are targeted at insanely dedicated people who will stay up all night coding, and older programmers with new families shouldn’t bother to compete for them. Others require experienced creatures, and young “rock star” developers shouldn’t try to talk their way into jobs with bosses who want stable, not blazing and amazing.
How much does location matter? If you’re young and willing to pack everything you own into the back of your car and move on, the only thing that’s important about the location of a job is whether you like the burrito place next door. Good food and pleasant surroundings is all that matters.

But where to seek your next job becomes a trickier question when you can’t pack up your car in 10 minutes. If you have a family or another reason that makes a nomadic coding life difficult to impossible, you have to think about the long-term stability of a region before committing to a new employer.

Many programmers in Silicon Valley move successfully from startup to startup. If one doesn’t work out, there’s another being formed this minute. There’s plenty of work in different firms, and that makes it easy to find new challenges, as we’re taught to say.

This may be the major reason that some firms have trouble attracting talent to regions where there’s only one dominant player. If you move to Oregon or Washington and the job doesn’t work out, you could be moving again.

Can you choose a niche to avoid the offshoring ax? Lately many programmers have begun to specialise in particular layers. Some are user interface geniuses who specialise in making the user experience simultaneously simple and powerful. Others understand sharding and big data.

The growth potential of a career in a certain layer of the stack should always be considered, in particular in relation to its vulnerability to offshoring. Some suggest that user interfaces are culture-dependent, thereby insulating user interface jockeys from offshoring pressure. Others think it’s better to pick the next big wave like big data warehouses because a rising tide lifts all boats.

While change is a constant in IT, it may not be practical to jump on every wave. If you have terrible aesthetic judgment, you shouldn’t try to be a user interface rock star. Nor does it make much sense to try to sell yourself as a big data genius if you find a statistics textbook to be confusing. There are limits to how much you can steer your career, but there are ways to play a new wave to your strengths — and to make yourself immune to offshoring.

Should you strike out on your own? An increasingly common career dilemma is whether to stay full-time or switch to being a contractor. Many companies, especially the bigger ones, are happy to work with independent contractors because it simplifies their long-term planning, allowing them to take on projects without raising the ire of executives who sit around talking about head count.

The biggest practical difference is figuring out health insurance and pension benefits. An independent contractor usually handles them on their own. Some find it to be a pain, but others like the continuity they get by keeping the same independent health insurance or pension plan when they switch contracts.

Another big difference is in what you like to do. Regular employees are often curators and caretakers who are responsible for keeping everything running. Contractors are usually builders and problem solvers who are brought in as needed. Those aren’t absolute rules, but for the most part, those who stick around get saddled with maintenance.

Because of this, contractors are often free to specialize in particular technologies, while employees end up specialising in keeping the company running. Both may sell themselves as experts in Oracle or Microsoft or Lucene, but employees are the ones tasked to get a project up and running because the boss needs it by next Friday.

Depending on the culture of the employer, this could mean broad experimentation for full-time employees or an increased likelihood of tending outdated enterprise software far longer than anyone might want.
Is there work beyond tech? Most programmers often forget there are many jobs for programmers in companies that have little to do with technology. It’s easy to assume that programmers will always work in tech.

The smart programmer should realise that choosing a nontech employer provides unique career opportunities. These days almost every company requires computer-savvy employees and a strategy for making the most of computer systems. Sales forces need software for tracking leads. Warehouses need software for tracking goods. More often than not, someone has to customise these solutions to suit the needs of the business.

Understanding a company’s business and technology is one of the best defences against outsourcing. Knowledge about many of the popular tools often becomes commoditised, and that often means competing with programmers overseas with much lower costs. But knowledge of two (or more) different realms is not a commodity, and it’s hard to replace.

Smart companies will often create managerial tracks for technology specialists if it’s clear that technology will be a key part of its future. A company with a heavily computerised warehouse would be a great management opportunity for technologists because the software development the company does in the future will be a big part of their future strategy. Tech specialists can often play key roles in nontech companies.

The key question is how willing you are to learn the business, whatever it may be. If you just want to talk about pointers and data structures, stick with the tech company. But if you are naturally curious about warehouse design and have always had a thing for other aspects of business beyond IT, recognise that computer-savvy people are much in demand in other sectors as well.

Friday, September 14, 2012

Open source education software unveiled by Google

Online education startups such as the Khan Academy, along with new efforts by MIT, Stanford, and Harvard have helped spur interest in and add legitimacy to the notion of remote learning. Now Google is lending its brainpower to the rapidly growing area by releasing a tool called Course Builder, open source software designed to let anyone create online education courses.

The Course Builder project came by way of another program Google ran earlier this year called Power Searching With Google. The Massive Open Online Course (MOOC), which attracted approximately 155,000 students from 196 countries, allowed Google to marry some of the practices now common to online instruction with the company's robust array of collaboration and communication tools. A new Power Searching session begins in two weeks.

According to the introductory video (above), presented by Peter Norvig, director of Google Research, usage of the software won't require high-level programming skill, and should be accessible to anyone with the ability to build and maintain their own website.

"The Course Builder open source project is an experimental early step for us in the world of online education," Norvig said. "It is a snapshot of an approach we found useful and an indication of our future direction. We hope to continue development along these lines, but we wanted to make this limited code base available now, to see what early adopters will do with it, and to explore the future of learning technology."
In addition to offering a new platform for empowering educators, the effort is also a unique opportunity to connect with Google's research team. Over the course of the next two weeks, Google plans to directly interact with Course Builder users via Google Hangouts. The Course Builder support site is already live and the free software download has already received its first update. For those unsure about their level of skill in relation to use of the software, Google's Course Builder Checklist offers a reassuring primer on how to get started and exactly what to expect.

Monday, September 10, 2012

Where NASA and Instagram get open source databases

The PostgreSQL Global Development Group has announced the PostgreSQL 9.2 open source database with native JSON support, covering indexes, replication and performance improvements.

NOTE: JSON (JavaScript Object Notation) is a text-based data-interchange format programming language that is widely agreed to be "easy for humans to read and write" and is equally easy for machines to "parse and generate" in use. It is based on a subset of the JavaScript programming language and is said to use conventions that are familiar to programmers of the C-family of languages.

But what does "performance improvement" really mean with this kind of technology?

Vendors of all kinds love to use the term "performance" time and time again, so what makes an open source next-generation database operate and, well, perform, so well in this case?

How it works...

The answer appears to lie in PostgreSQL 9.2's ability to execute "linear scalability" across 64 processor cores to share out the burden of processing. This separation of workloads... plus its 'index-only' scans and reductions in CPU power consumption are what actually speed up this product.

NASA, Instagram and HP can't be wrong? Can they?

Organisations including the U.S. Federal Aviation Administration, Instagram and NASA run applications on PostgreSQL and HP has adopted it too to power its HP-UX/Itanium solutions.

Improvements in vertical scalability are also said to increase PostgreSQL's ability to efficiently utilise hardware resources on larger servers.

So just how fast is fast here?

Numerically, this means:

* Up to 350,000 read queries per second
* Index-only scans for data warehousing queries
* Up to 14,000 data writes per second

NOTE: PostgreSQL is an open source object-relational database system. It has more than 15 years of active development and runs on all major operating systems, including Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) and Windows.

Saturday, September 8, 2012

Teach Your Kids Basic Programming With Super Scratch Programming Adventure

If you think you might have a future programmer on your hands, it’s time to introduce your kid to Scratch. It’s a programming language that teaches the concepts of programming to young kids while making it easy for them to create animations, games, and more, then share them all with friends online. A new book from No Starch Press, Super Scratch Programming Adventure!: Learn to Program By Making Cool Games makes it even easier to get started.

Scratch was created at MIT Media Lab’s Lifelong Kindergarten Group. It’s targeted at ages eight and up, although my six-year-old finds it to be a lot of fun. If your child can read, understand numbers, and control a mouse, he can probably get started with Scratch, particularly if he’s used creative software like drawing programs. Younger children just may need a little more help than the older ones. To create programs in Scratch, you simply drag and drop colored puzzle-piece blocks of code written in simple language, snap them together, then change the variables:

Super Scratch Programming Adventure! helps your budding developer learn to use Scratch with a comic book story. Each section begins with a continuing piece of a story that ends by giving the reader a problem to solve with Scratch. Along the way, kids learn about software-building terms like “sprite,” “loop,” and “variable.” At the end of the book, they are rewarded with the fruits of their own creation, a game they can play knowing they made it themselves.

The best part about using Scratch is the wide range of skills that are involved, from the left-brain creativity to the right-brain reasoning. It also encourages sharing, collaborating, and learning from others–all additional non-programming skills useful in the programmer’s world.

Super Scratch Programming Adventure! was written by the LEAD Project (Learning through Engineering, Art and Design), which began in 2005 as a collaboration among The Hong Kong Federation of Youth Groups, the MIT Media Lab, and The Chinese University of Hong Kong.

Open-Source Platform for API Management launched by Alcatel-Lucent

In a bid to make it easier for operators to open up their networks to developers, Alcatel-Lucent has introduced an open source and cloud-based API (application programming interface) management platform called apiGrove.

Operators have largely missed the boat on the smartphone application revolution. But by publishing APIs and opening up their networks -- including features such as billing, location and presence information -- to developers, operators can get a second chance to play a more important role.

However, for the promise of APIs to be fully realized, there needs to be standardization of the underlying technology, according to Laura Merling, senior vice president of Application Enablement at Alcatel-Lucent.

"I believe that API management is going to be a part of everybody's business and therefore it needs standardization, and also needs community input on what it should look like," said Merling.

ApiGrove will make it easier for operators to try the concept without having to make much initial investment, according to Merling.

An API mangement platform is used to publish the interfaces, as well as configure rules for how they can be used, including who can access them and the number of transactions that are allowed.

The apiGrove installation package, source code, and documentation are available for download from GitHub. The ultimate goal with apiGrove is to turn in into an Apache project.

"It has been submitted to go through the necessary incubation process, but that takes time ... A lot of it is about community adoption, so we are doing a lot of outreach to drive adoption," said Merling.

Alcatel-Lucent also believes that API management makes sense running in a cloud, as opposed to on-premise in the operator's data center. In addition, ApiGrove could also manage the cloud platforms' own APIs, exposing their capabilities to developers.

The company is talking to a number of cloud providers, and is making interfaces for its own platform CloudBand manageable via apiGrove as well.

Alcatel-Lucent will also offer Premium API Management Platform before the end of the year. Operators will have to pay for this version, which will have more advanced cluster and security features including XML validation than apiGrove, according to Merling.

For example, the Speaker Manager feature lets an operator keep track of rate limiting across a cluster of API management instances.

The Premium API Management Platform will also include a service composition framework, which allows several API calls to be integrated and presented to developers and in the process make their work easier.

The service composition framework currently is being evaluated for being made open source, as well.

The end-game for Alcatel-Lucent is to help turn networks into a software platform, where all equipment comes with an interface for developers, Merling said.

Monday, September 3, 2012

How Twitter tweets your tweets with open source

when Twitter recently joined The Linux Foundation. You couldn't tweet about your dinner, your latest game, or the newest political rumor without open-source software.

Chris Aniszczyk, open-source manager at Twitter, explained just how much Twitter relied on open source and Linux at LinuxCon, the Linux Foundation's annual North American technology conference. “Twitter's philosophy is to open-source almost all things. We take our software inspiration from Red Hat's development philosophy: 'default to open.''”

Specifically, according to the company, “The majority of open-source software exclusively developed by Twitter is licensed under the liberal terms of the Apache License, Version 2.0. The documentation is generally available under the Creative Commons Attribution 3.0 Unported License. In the end, you are free to use, modify and distribute any documentation, source code or examples within our open source projects as long as you adhere to the licensing conditions present within the projects." Twitter's open-source software ware is kept on GitHub.

You're welcome to use this code. Indeed, Aniszczyk strongly encourages others to use and build on it.

Twitter itself is famous, or infamous in some circles, for having been built on Ruby on Rails. Today though Aniszczyk said, Twitter has moved to Java and a list of open-source programs longer than your arm.

If Unix and Linux are operating systems that are made of many utilities loosely coupled than Twitter is a social network made up of many open-source programs loosely couped together. Some parts will be familiar to anyone in Linux or Web development circles.

Twitter's core operating system is Linux 2.6.39 and for its core database it uses MySQL. To manage the source code for the rest Twitter uses Git. Linus “Linux” Torvalds' other software baby.

But, let's cut to the chase, what actually happens when you tweet?

First unless you've never used “The Twitter,” you know that a tweet is a short of 140 characters or about 200 bytes. When you send this tweet it will soon be “fanned out” to the people who read your tweets. Sound easy right? “Wrong!” Proclaimed Aniszczyk.

The problem is the Twitter's scale. Twitter handles 2.8-billion tweets during a typical year. That counts to 5,000 tweets a second on average. But, Aniszczyk said, things aren't always average. When someone noticed the singer Beyonce showing a baby bump, traffic went up to 8,800 Tweets per second (TPS). The last SuperBowl? 12,000-plus TPS, and when someone got the idea that everyone should go see an anime movie and then tweet about it, Twitter faced one of its greatest challenges: 25,088 TPS.

What happens with each of these tweets is they put are registered as a status update. Then each one is given a unique ID using a program called snowflake. Next, it's geolocation data is noted by Rockdove, a program that hasn't been made open-source yet.

Each tweet is then checked by a combination URL shortener and spam detector called t.co. Once past this stage, each tweet is stored in MYSQL by Gizzard, a flexible sharding framework for creating eventually-consistent distributed datastores. Now, and only now is an HTTP 200 signal, meaning all has gone well, to your Web browser.

Of course at this point your tweet hasn't gone out to the world. First, your tweets get started on their way to Bing and other search programs using the Firehose application programming interface (API). Finally, your tweets are ready for fanout, that is heading to your friends, family, and fans.

The actual process is handled by FlockDB. This is an open-source graph database that sits on Gizzard and pulls data from MySQL. FlockDB contains all of Twitter's users and their relationships to one another. Now, armed with the your followers addresses your tweets are finally on their way.

The average time all this takes? About 350-milliseconds. Not bad for a system handling 5,000 TPS every day, 24-hours a day.

Twitter may be causing some of its would-be partners grief with tighter API rules, but the company itself does an exceptional job of delivering thousands of messages every moment of the day with open-source software.