Keep OSNews alive by becoming a Patreon, by donating through Ko-Fi, or by buying merch!

General Development Archive

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).

Opa 0.9.0 ‘S4’ released

Opa, the new open source programming language for web applications, just released its 0.9.0 'S4' version. Opa is a single programming language for specifying client code, server code and database code. The new release introduces two major features: A new default syntax that resembles JavaScript and was asked for by the community, and an abstraction layer for the NoSQL database MongoDB. Features that were previously supported by the internal Opa database are now available with the fast-growing, scalable NoSQL database. Together, Opa and MongoDB, provide a way to develop complex web applications and have them scale out easily. Many other smaller features have been added, as the number of contributors to the code on github grows.

C++ AMP Open Specification Published

"As an industry trend, advancement in heterogeneous hardware has progressed at a rapid pace. This in turn has fueled developer desire to target such hardware for accelerated computation, necessitating a significant step forward in programming models to enable such practices. C++ Accelerated Massive Parallelism (C++ AMP) is a new technology implemented in Visual Studio 11 that helps C++ developers use accelerators such as the GPU for parallel programming."

Programming Opa: Web Development, Reimagined

InfoWorld's Rick Grehan takes an in-depth look at Opa, MLstate's attempt to provide a single language for Web app development, and one of 10 cutting-edge programming languages that could shake up the future of IT. "With Opa, you write your Web application as though it were a single-tier program, and the compiler handles the knotty details of partitioning your program and deploying the resulting components to their proper domains. The compiler also builds the communication infrastructure among application components, and that infrastructure is invisibly managed by the runtime. The security weaknesses inherent in today's Web applications are virtually eliminated."

The Rust Compiler 0.1 Released

"Today Mozilla and the Rust community are releasing version 0.1 of the Rust compiler and associated tools. Rust is a strongly-typed systems programming language with a focus on memory safety and concurrency. This is the initial release of the compiler after a multi-year development cycle focusing on self-hosting, implementation of major features, and solidifying the syntax. Version 0.1 should be considered an alpha release, suitable for early adopters and language enthusiasts. It's nifty, but it will still eat your laundry."

Shed Skin 6 Years Later

It has been 6 years since we last mentioned Shed Skin, a restricted-Python to C++ compiler (Python 2.4-2.6). In the meantime, development has continued at a rapid pace. Shed Skin has taken part in the GSOC and GHOP projects. It is now able to generate extension modules, which can be used in larger Python programs. Its type inference engine has become orders of magnitude faster. One of the Shed Skin example programs, a work-in-progress C64 emulator is now compiled in under a minute on a fast PC. In total there are 64 non-trivial example programs. As may be expected from a static compiler, performance is better than when using PyPy in many cases. Though of course we have to mention that PyPy is much less restricted, and also improving at a rapid pace.

Developers Must Unite For Mobile App Portability

Fatal Exception's Neil McAllister sees a glaring omission among the proposed plans for the new Application Developers Alliance for mobile app developers: any clear focus on easing cross-platform mobile development. 'Currently, the leading mobile operating systems are all vertically integrated "walled gardens," and developing versions of the same app for multiple platforms is both challenging and costly,' McAllister writes. 'That's where an organization like the Application Developers Alliance could help. By organizing app developers from all across the mobile OS market, it could act as a unified voice to put pressure on Apple, Google, and others to lower barriers to entry for their platforms. ... But as long as it's being underwritten by leading proponents of the status quo, it seems unlikely that the Application Developers Alliance would rock the boat by taking a stand against walled-garden-style mobile platforms.'