General Development Archive

Developers, engineers, scientists

"I've been programming professionally for about 3 years at this point, and I've noticed some interesting patterns in other programmers I've worked with. One of the key differentiators among programmers is motivation. I'm not referring to an individual's passion to simply be successful in their career, but rather the type of work they want to pursue. The thing they want to do with computers every day, the types of problems they are interested in solving."

Learn programming by visualizing code execution

"Online Python Tutor is a free educational tool that helps students overcome a fundamental barrier to learning programming: understanding what happens as the computer executes each line of a program's source code. Using this tool, a teacher or student can write a Python program directly in the web browser and visualize what the computer is doing step-by-step as it executes the program."

J2ObjC: a Java to iOS Objective-C translator from Google

"We are proud to announce the open source release of J2ObjC, a Google-authored translator that converts Java source code into Objective-C source for iPhone/iPad applications. J2ObjC enables Java code to be part of an iOS application's build, as no editing of the generated files is necessary. The goal is to write an application's non-UI code (such as data access, or application logic) in Java, which can then be shared by Android apps, web apps (using GWT), and iOS." Huh.

Hackday with Jolla and friends

Several presentations about mobile Linux technologies, such as Mer, Nemo, and Jolla. Mer is openly developed and meritocratically governed mobile Linux core distribution, which was forked from the various components of the Meego project when it was abandoned by Nokia and Intel. Nemo is a community project which continues the effort of the Meego handset branch. And Jolla is a new startup company created by former Nokia Linux engineers, who participated in Maemo and Harmattan projects, and decided to continue on their own, when Nokia lost their interest in Meego. Their goal is to release end user products (initially handsets) using an operating system based on the Mer core and some components of Nemo, which will be providing their own user interface.

Thinking functionally with Haskell

"Imagine an approach to programming where you write down some description of what your code should do, then before running your code you run some automatic tool to see if the code matches the description. That's Test-driven development, you say! Actually, this is what you are doing when you use static types in most languages too. Types are a description of the code's inputs and outputs, and the check ensures that inputs and outputs match up and are used consistently. Modern type systems - such as in Haskell or above - are very flexible, and allow these descriptions to be quite detailed; plus they are not too obtrusive in use and often very helpful."

Lazarus 1.0 Free Pascal IDE released

After more than a decade, Lazarus has reached version 1.0. For those that don't know Lazarus - it's a Delphi-like IDE for the Free Pascal Compiler and has widget sets for win32/64 GTK2, Qt, and others. It's very very much like Delphi and instead of the VCL it has the LCL which is cross platform. Syntax is almost exactly the same as Delphi. You can create stand-alone win32/64 executables that require no .NET runtime or even an installer.

Learning C with GDB

"Coming from a background in higher-level languages like Ruby, Scheme, or Haskell, learning C can be challenging. In addition to having to wrestle with C's lower-level features like manual memory management and pointers, you have to make do without a REPL. Once you get used to exploratory programming in a REPL, having to deal with the write-compile-run loop is a bit of a bummer. It occurred to me recently that I could use gdb as a pseudo-REPL for C. I've been experimenting with using gdb as a tool for learning C, rather than merely debugging C, and it's a lot of fun. My goal in this post is to show you that gdb is a great tool for learning C. I'll introduce you to a few of my favorite gdb commands, and then I'll demonstrate how you can use gdb to understand a notoriously tricky part of C: the difference between arrays and pointers."

Easy x86-64: x86-64 assembly

I asked for more of this, and I got it. "There has been much interest in assembly lately (whether the real 6502, or the fictional DCPU-16; I even created my own virtual 8-bit CPU called i808 in 2007), but none of this attention focuses on the architecture that is most popular in today's computers. If you are reading this on a desktop, laptop, or server then your computer is most likely using x86-64 (or x86). x86-64 is the 64-bit superset of the 32-bit x86 architecture and any modern CPU from AMD or Intel supports it. This document will focus on the most used parts of x86-64."

Easy 6502: learn 6502 assembly

"In this tiny ebook I'm going to show you how to get started writing 6502 assembly language. I think it's valuable to have an understanding of assembly language. Assembly language is the lowest level of abstraction in computers - the point at which the code is still readable. Assembly language translates directly to the bytes that are executed by your computer's processor. If you understand how it works, you've basically become a computer magician." More of this, please.

Beyond the smartphone: 5 emerging platforms for developers

From the car to the living room, technologies and markets are fast evolving to offer possibilities for programming pioneers. "The smartphone has proven that a marketplace for delivering code can appear seemingly out of nowhere, and developers would have another choice for showcasing their wares. To help you get a jump on these promising platforms, we did a little digging in what might seem to be unlikely places. In many cases, raw APIs are already well-established, ready for apps to exploit them. Scratch the surface, and you'll get an idea of the potential of porting your wares beyond the smartphone/PC paradigm. You can bet the manufacturers of these products are interested in establishing their own app ecology."

What programming languages did the USSR’s space program use?

"I got interested in the Soviet space program and was interested to discover that the software on the Buran spacecraft circa 1988 was written in Prolog. Does anyone know what languages might have been used in earlier missions, especially the Mars PrOP-M rover missions of the early 1970s which were somewhat autonomous and could navigate obstacles?" Absolutely fascinating.

Register for the HP Discover Conference

OSNews sponsor Hewlett-Packard is extending an offer to OSNews readers who register for the upcoming HP Discover conference: "This is HP's largest global conference for customers and partners attracting 10,000 IT executives, managers, architects, engineers, and solution experts from around the world. Join them to network and explore pivotal technology developments, best practices, and strategies." Readers can get a $300 discount on registration by using this link and using the discount code: "BLOG."

A woman’s story

A beautiful story about Gwen Barzay, a black woman who broke both racial and gender barriers to become an early computer programmer. "Today she is retired, and like most retirees, she asks her son to help her with computers. She likes her Mac and runs a small business buying and selling books on line. What does she have to say about the difficulties she faced breaking into a male-dominated industry? 'I had it easy. The computer didn't care that I was a woman or that I was black. Most women had it much harder.'" The computer didn't care. Beautifully put.

Go version 1 released

"Today marks a major milestone in the development of the Go programming language. We're announcing Go version 1, or Go 1 for short, which defines a language and a set of core libraries to provide a stable foundation for creating reliable products, projects, and publications. Go 1 is the first release of Go that is available in supported binary distributions. They are available for Linux, FreeBSD, Mac OS X and, we are thrilled to announce, Windows."

Why vim uses the hjkl keys as arrow keys

"I was reading about vim the other day and found out why it used hjkl keys as arrow keys. When Bill Joy created the vi text editor he used the ADM-3A terminal, which had the arrows on hjkl keys, so naturally he reused the same keys." As interesting as that is, John Graham-Cumming goes even further back in history. "The reason that keyboard had those arrows keys on it was because those keys correspond to CTRL-H, J, K, L and the CTRL key back then worked by killing bit 6 (and bit 5) of the characters being typed." Truly fascinating stuff, even though it's from way before my time (I'm from 1984).