The Insider News

The Insider News is for breaking IT and Software development news. Post your news, your alerts and
your inside scoops. This is an IT news-only forum - all off-topic, non-news posts will be
removed. If you wish to ask a programming question please post it
here.

Get The Daily Insider direct to your mailbox every day. Subscribe
now!

At the very minimum, it seems that if you are targeting both Windows 8 and Windows Phone, then you have a point of parity that should be designed for: the snapped view. Shouldn’t the snapped view of your Windows 8 app behave pretty much the same as the full blown app on the phone form factor? There may be some nuances that you have to address (for example, the panorama control that works well on the phone isn’t necessarily available for the snapped view on Windows 8) but for the most part you are functioning in a similar form factor (while the strip goes “long” on large displays, this is easily a vertical scroll on the phone).

In the 1990s, Apple struggled to bring the original Mac OS—originally written in 1984 for the resource-constrained Macintosh 128K machine—up to modern operating system standards. The story of how OS X came to be is thrilling in its own right, but suffice it to say that Apple ended up buying Steve Jobs' second computer company, NeXT, and using its NeXTSTEP operating system as the basis of a new generation of Macs.... Sixteen years later, several technologies developed or championed by NeXT still survive in OS X and in its mobile cousin, iOS.

It’s that time of year again, and there’s a good chance you might be looking for gift ideas for your programmer friends. Or, maybe, you need a list to pass on to your friends and family, so they have some ideas for you! Either way, this list of geeky gifts should cover most developers.

The big problem with any new hardware is getting the software you need but as a Linux ARM system presumable this isn't such a big problem for the Pi. However there seem to be enough unique features to make it worth launching an official app store or Pi Store.

Since the very earliest days of computer viruses, malware authors have been inspired by the Christmas holidays when developing attacks. Here's a quick, and probably incomplete, history of some of the Christmas-related malware that we have seen over the years.

When developing software, it makes sense to 'fail early, fail often'; to become aware of mistakes quickly and to learn from them. This means being able to deliver software as early in development as possible. This makes it easier to gather opinions and promote discussions with the people who would want to use the application; and then respond to the feedback. Over the past decade, Red Gate has learned a lot, often the hard way, about the value of delivering software early and often or, perhaps more accurately, the cost of not doing so. Here, we explain what exactly we've learned and how we've adapted our software delivery processes, as a result.

If we want to use ECMAScript 6 as app developers, but still want to run our software on old browsers, we only have one option: compile ECMAScript 6 to ECMAScript 3 (possibly ECMAScript 5 in 1–2 years). The precedent is obvious: CoffeeScript has been doing this since December 2010. With source maps [3], you can even debug its code in the browser – the JavaScript it has been compiled to is hidden from you. Several ECMAScript 6 features have been influenced by CoffeeScript.

What I find is, the language is not at all well thought out. They tried to jam Ruby concepts into JavaScript, and it often shows.

TypeScript, on the other hand, I'm really liking. And even though it was designed by Anders Hejlsberg (C#), they stayed true to JavaScript, rather than force C# concepts into JavaScript. It's really a well-done language.

This repository contains the core of NuclearWinter, featuring game state management, screen resolution handling, an input manager and an user interface library.... NuclearWinter development is led by Elisée Maurer. NuclearWinter powers both CraftStudio, a 3d real-time cooperative game-making platform and the 2D multiplayer arcade game QuadSmash.

Feel free to use it in your own projects! Contributions are welcome too.

A growing trend in web and UI design lately has been the use of “flat design” and it’s clearly a hot topic at the moment – full of lively discussion and plenty to learn about. I’ve always been drawn to minimalism, so flat design is an aesthetic that has inspired me, especially while working on the recent redesign of QuoteRobot, the proposal writing app I co-founded back in 2010. In this article I’m going to talk about what flat design is, review what other designers are saying about it, and offer some tips on how to achieve it in your own designs.

Blaze is the next generation of NumPy, Python’s extremely popular array library. At Continuum Analytics we aim to tackle some of the hardest problems in large data analytics with our Python stack of Numba and Blaze, which together will form the basis of distributed computation and storage system which is simultaneously able to generate optimized machine code specialized to the data being operated on. Blaze aims to extend the structural properties of NumPy arrays to a wider variety of table and array-like structures that support commonly requested features such missing values, type heterogeneity, and labeled arrays.

Now you may be thinking: "baah, I know how to do gravity.." but there's a big flaw in the commonly used Euler's method to handle the gravity (or other forces). Even all the Quake games have this problem. Then what is it? If you have more frames per second in Quake, your player will run faster and jump higher. There are some places in Quake where you can't jump high enough if you don't have enough frames per second. Sounds odd, right?

You should do all the accelerating forces like this, not just gravity.

Microsoft isn’t going to let Google’s move keep its clients from accessing Google services. All Microsoft clients already support IMAP, so mail isn’t really the problem. Microsoft has never supported CalDAV for calendaring or CardDAV for contacts, but these are open standards that Microsoft can easily support tactically. In other words, if Microsoft cares about Google’s move it would be easy for them to add support for this technology to those products where it feels they make sense. Windows Phone would be a likely case.

The beginnings are rather simple, and maybe a little mundane; Larry Wall (Tim Toady) released version 1.0 to the newsgroup comp.sources.misc on the 18th December 1987 while working as a programmer at Unisys. Perl was intended, we believe, to be a Unix scripting language to make report processing easier borrowing from sh, Awk and Sed.... Perl 6 started its life cycle in 2000 with a different principle to other versions of Perl. It was a complete re-write of the language and would start as a language specification before a release leading to the now apocryphal 'released in time for Christmas' line.

Markdown is a simple text-based markup language that can be used to produce clean HTML.... You can build your very own an efficient parser that can be extended with custom features and that allows you to process the document after parsing. In this article, based on chapter 11 of F# Deep Dives, author Tomas Petricek describes the key elements of such a project, in particular, the representation of a Markdown document.

This is the first of a two-part series that will tell the long story of the C# memory model. The first part explains the guarantees the C# memory model makes and shows the code patterns that motivate the guarantees.... One source of complexity in multithreaded programming is that the compiler and the hardware can subtly transform a program’s memory operations in ways that don’t affect the single-threaded behavior, but might affect the multithreaded behavior...

This describes the ECMA C# specification... but how does it *really* work?

When one wants to understand the memory layout of structures and classes, the C/C++ operators sizeof and offsetof are very useful. However, when large C++ class hierarchies are involved, using these operators becomes tedious. Luckily, Clang has a very handly command-line flag to dump object layouts in a useful manner.

I’ve noticed that the most mature and accomplished developers I’ve worked with are also those who most frequently say “I don’t understand” when they’re listening to a technical explanation.... In one way, it’s counterintuitive. Shouldn’t the senior devs already know everything? But it makes a lot of sense. Those who are most secure in their own abilities are the most comfortable to admit when they haven’t fully wrapped their minds around something.

When it comes to backing up and restoring your PC, Windows 8 took a few steps forward and a few steps back. Your settings and apps in the new tablet-y interface (yeah, we're still calling it Metro) are automatically backed up if you use a Microsoft account.... There's also a new backup tool on the desktop side of things, but this has its limits too.... One problem is neither File History nor the Metro restore feature are complete backup tools. The ability to clone and restore your whole PC, files, settings, and applications — by creating a System Image — is gone, or seemingly gone.

Excellent backup tools are built in... you just need to know where to find them.

Microsoft's Xbox adventure in Japan began years before Bill Gates' 2001 keynote speech. When the Xbox was being created in Redmond, Bachus and Seamus Blackley, the two Xbox co-creators who spent the most time in Japan, always knew the market would be a challenge. At the turn of the century Japan dominated the console games industry with a whopping thirty per cent of the market. Here's what went wrong.

Rules that apply to you as an outsider don't necessarily apply to insider products.

This project aims to allow any type of device to be controlled by a common web interface (IR, X10, etc.). Originally written by Daniel Myers, Alex Wilson, and Alex Zylman, this rewrite serves to improve extensibility by using a plugin architecture with a minimal core and plugins for features or protocols.

Roll your own remote control for TVs, audio systems, lights... pretty much anything.

Computer processors are, for programmers, almost magical devices that do their commanded bidding. However, delving a bit deeper and figuring out what is really going on inside the processor can be an incredibly rewarding experience, and can help programmers write well-performing code as well as understand how the code they write actually gets executed. In this code, I'll go over how a program goes from human-readable form (i.e. assembly language) into a processor and how the processor executes a program.

From Computing with Transistors, a series of blog posts describing how computers work from the ground up.

Today, the Worldwide Web Consortium (W3C) is announcing that it’s completed its three-year quest to finalize the HTML5 specification.... But despite the fact that the specification is now feature complete, meaning nothing more will be added to it, there is still a lot of work that needs to be done before HTML5 reaches the finish line in 2014, and there are unanswered questions about how the group plans to deal with video, an essential part of the web that has yet to see any clear resolution.

I'm building a startup on HTML5 (in particular, HTML5 audio), and the state of things is ugly for 1 reason:

Politics.

Here's a sample, just from the HTML5 <audio> element:

IE refuses to implement open-standard codecs (e.g. OGG) because they are best served by making proprietary codecs popular in order to starve their non-commercial competition, Firefox. It becomes a check in the feature list, one that's missing from Firefox.

Firefox refuses to implement MP3 audio and other commercial formats because they refuse to implement commercial codecs.

Safari on iOS cripples HTML5 audio[^] because they would rather developers build native apps where Apple gets 30% purchase price.

About the only one who is playing nice is Google. Their only fault is they lie: on Droid 2.2 devices, they lie reporting they support HTML5 audio when queried programmatically, but in reality they supported 0 audio formats. Reporting HTML5 audio support, but 0 audio formats, is useless and deceptive.

This is just a sample of the headaches I've had to deal with; the real state of HTML5 is much messier. Still better than the alternative, though.

The integrity of Windows Store applications is an important issue. It forms part of the value proposition to developers, of the store itself; not only does the store provide easy, reliable billing, distribution, and updating, it also provides at least some degree of protection against piracy and other kinds of exploitation. If Windows 8 can't provide this then competing platforms (such as iOS) and competing delivery mechanisms (such as the Web) become more appealing.

Windows 8 apps can be hacked for piracy or ad removal. Should Microsoft do more?

If computer programming languages are languages, then people who spoke one language and could programme to a high standard should be bilingual. Research has suggested that bilingual people perform faster than monolingual people at tasks requiring executive control – that is, tasks involving the ability to pay attention to important information and ignore irrelevant information. So, I set out to find out whether computer programmers were better at these tasks too.

Brython is designed to replace Javascript as the scripting language for the Web. As such, it is a Python implementation (you can take it for a test drive through a web console), adapted to the HTML5 environment, that is to say with an interface to the DOM objects and events. The gallery highlights a few of the possibilities, from creating simple document elements to drag and drop and 3D navigation.

So you can stop complaining about brackets and start complaining about whitespace instead.

When someone submits an issue or a pull request that is “obviously wrong” in your eyes, don’t make fun of them and kick them out of the cool club. Help them learn from the situation. Ask more questions, find out why they are suggesting this change. Dig in to the reasons behind the request and see if there is any merit to it. Take the time to understand their perspective and thought process before you react and judge others.

I can’t think of a better way to get people to stop contributing to open source projects.

In just a few short years Prototype went from best practice to anti-pattern—and depending on who you listened to, you might even be convinced that it was one of the worst things to happen to the web. The reality is that Prototype helped lots of people despite its flawed foundation. But its time had come and gone, and I eventually realized it was time to move on. It was hard not to take Prototype’s failure personally.

We are building an open laptop, with some wacky features in it for hackers like me.... Of course, a feature of a build-it-yourself laptop is that all the design documentation is open, so others of sufficient skill and resources can also build it. The hardware and its sub-components are picked so as to make this the most practically open hardware laptop I could create using state of the art technology.

Slightly unconventional because, when you DIY, you can do it exactly as you like.

This is not intended to be a list of 10 developers who happened to make good games in 2012 (though releasing a good game certainly didn't hurt anyone's chances of being included). When selecting the developers on this list (presented alphabetically), Gamasutra and Game Developer magazine editors determined which ones defined the year in a positive way. These are the developers and studios that left their mark on 2012 -- the ones that the industry will be watching in the years ahead.

A lot of great indie games here that have been flying below the mainstream radar. Check them out.

The transistor, the ubiquitous building block of all electronic circuits, will be 65 years old on Sunday. The device is jointly credited to William Shockley (1910-1989), John Bardeen (1908-1991) and Walter Brattain (1902-1987), and it was Bardeen and Brattain who operated the first working point-contact transistor during an experiment conducted on 16 December 1947. Yet this now ubiquitous device - these days more as an element in silicon chip design than as a discrete component - has a history that goes back to the mid-1920s.

The core problem here is that many test organizations design their test regimes to test Security Suites... and then apply those tests just to MSE rather than to the entire “Microsoft security suite” of which it is part. Why? One key reason is that Microsoft doesn’t explicitly offer a security suite, instead it spreads security capabilities across its products and components. Rather than MSE being the cornerstone of its security efforts, as an anti-malware engine is for a traditional security vendor, for Microsoft MSE is a component that fills in a missing piece in the Windows security effort.

The tech industry and its press have treated the rise of billion-scale social networks and ubiquitous smartphone apps as an unadulterated win for regular people, a triumph of usability and empowerment. They seldom talk about what we've lost along the way in this transition, and I find that younger folks may not even know how the web used to be.

C++ 11 is “far better than previous versions”, says the inventor of the language Bjarne Stroustrup.... C++ is an ISO standard, first ratified in 1998 with C++ 11 completed in 2011, but Stroustrup revealed he was initially resistant to standardisation efforts. “It took some arm-twisting to get me to realise that it was time to start a standards effort," he said. "People pointed out that you couldn’t have a language used by millions controlled by a single guy in a single company. Even if you could trust the guy, you can’t trust the corporation. I was a bit sad, because the things I wanted to do would take years instead of months, because you have to build up consensus, and then you have to wait for five compilers to catch up."

If you want something that is really widely used, you need some kind of standard.

I like PHP, Python, and JavaScript, and I like making things in PHP, Python, and JavaScript. I’m not a Symfony developer, or a Django developer, or a jQuery developer. I think this is an important distinction. It’s entirely possible to be a jQuery developer, but not a JavaScript developer. It’s possible to be a Django developer, but not a Python developer. Those are all certainly valuable and useful tools, but if I only know how to use one framework, my options for using the right tool for the job get pretty limited, and in my experience, large, full-stack frameworks are often not the right tool, particularly if flexibilty and performance are major concerns.

What follows is a primer on the key security-oriented characteristics of the HTTP protocol. It's a collection of a number of different sub-topics, explained in my own way, for the purpose of having a single reference point when needed.

We are excited to announce an update to the Visual Studio Achievements extension: the availability of nineteen new achievements all oriented toward Windows 8 app development. These new achievements can be earned in JavaScript, C#, VB and C++. Some examples include: I Like To Move It Move It which is earned by using the accelerometer and The Play Is The Thing which is earned by using the AutoPlay contract.

Now that the final versions of Windows 8 and Visual Studio 2012 have shipped, most Silverlight developers are looking at ways to translate their existing skill set to Windows Runtime (WinRT) apps built with XAML. Because you're already familiar with XAML, you need to understand what the Windows Runtime consists of, and how it's different than what you're used to. In this article, I document 10 things I've found while building my first WinRT app using XAML/C#; I hope they'll save you time and energy getting used to this new platform.

Wait, is this different than Windows RT? Is Silverlight staying or going? I'm so confused...

You aren't the only one confused by this. MS (particularly the Win8 team) has done an incredibly hideous job of messaging, and an equally hideous job of defining Windows 8 (which is actually two operating systems). I'll try my best to explain.

Windows 8 is actually two operating systems duct-taped together. One is the "Desktop" OS, which for all intents and purposes is Windows 7. It runs just like Windows 7 (minus the Start Bar), and is fully backwards compatible with all the code and plug-ins (including Silverlight) that you used before Windows 8.

The other side of the OS is what people sort of called "Metro". But we can no longer call it that because MS found out that "Metro" was already trademarked. There is effectively no good name for it now (apps for this part of the OS are now loosely called Windows Store Apps rather than Metro apps, for example). This part of the OS is exposed as WinRT or Windows RT. It is brand new code that has little to do with old Windows, and includes all the consumer-ish UI bits, like live tiles, charms, touch gestures etc.

When you buy Windows 8 on a PC (or for a PC), you get both sides of the OS installed. If you run the newer Windows Store Apps, they are launched from the tiles screen and run in WinRT. If you try to run old Windows apps, they run in "Desktop" mode, even though you will probably be launching them from the tiles screen too.

If you get Windows 8 on a mobile device powered by an ARM chip, you only get the new WinRT side of the OS (no Desktop mode).

So, if you attempt to create a new Windows Store App (WinRT application) in .NET, part of it will feel familiar because WinRT apps also use XAML to define the user interface (just like WPF and Silverlight did). However, there are some WinRT quirks in the runtime, like most operations being asynchronous, that force developers of WinRT apps to learn some things that are not so similar to older Silverlight or WPF apps.

As for the second question, about whether or not Silverlight is alive or dead... it sort of depends who you ask, and what platform you are targetting. Steve Jobs effectively killed plug-ins on mobile devices. After he decided that iOS would not allow plug-ins for mobile app devices, most other mobile producers followed suit (including MS). Silverlight requires a plug-in to run, so it's effectively been killed from most new mobile platforms.

Windows Phone 7 was trying to force all apps to be Silverlight, but Win 8 Phone is now all WinRT, and will *not* be supporting Silverlight.

Silverlight will still run in Windows Desktop mode, but if you have the full desktop capabilities available, then Silverlight is probably not the best technology to use, especially because it will no longer run on other platforms. If you writing apps for Windows itself, then you're probably better off with WPF (in desktop mode) or WinRT Apps. If you want a more universal run-everywhere technology, people are migrating to HTML5 because that's the only thing that will run across most mobile devices as well as desktops and laptops.

So basically, the areas where Silverlight will still operate have narrowed, and the areas where Silverlight provides a clear advantage have all but disappeared. When you add the rumors and rumblings about what's going on with Silverlight development within MS, it's clear that most reasonable people feel that if it's not exactly dead, it's on life support.