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!

Let's say the rumors are true, and that Microsoft does in fact bring back the Start button and a boot-to-desktop option to address longstanding user complaints. Can that fix what's ailing Windows 8? Perhaps, eventually — but Microsoft is still treating the symptom rather than the disease. The problem is the PC itself, not the operating system that runs it. And that's what Microsoft (and, secondarily, its Wintel partner Intel) really needs to transform.

The PC is not dying. It's just becoming a niche product with niche needs.

I totally disagree that the PC is dying. We're simply no longer using it for things that it's not that great at, such as lounging on the couch and reading the news, watching a video or chatting to friends.

Many things we used to do on PCs we now do on our phone or tablet. This doesn't mean that all those things we still need a PC for are disappearing too. Anything involving lots of typing (writing, programming, editing), anything requiring large screens (developing, writing, graphics), and anything that requires serious power still need a desktop. Granted, more and more can move to a tablet, but there's one fundamental piece missing with tablets: the PC. As a central place to sync and to organise your devices (especially in the Mac world) you still need a PC. As a place to store your music and movies you still need a PC unless you have small collections or unlimited gigabit internet connection.

My view is that Microsoft are trying to make the PC into a tablet experience which is a dumb, dumb, dumb thing to do. Make the OS suit the device, so on tablets and convertibles have the Metro UI. On desktops have the Desktop UI.

Further, stop making Windows complicated, especially if the feeling is the Desktop phase is coming to an end. Embrace what people really want, which is a super simple OS for organising files and running applications. Make the PC for the office super streamlined, easy to deploy, low maintenance and secure. Make the PC for the home a true hub. Make it be the thing you please next to your amplifier and serves your media, or as an all-in-one with a bluetooth keyboard that sits in the kitchen or living room and lets you organise yourself really easily, including allowing you to type and handle stuff like files and devices. This isn't a tablet's role.

Let tablets and phones be tablets and phones. Let the desktop be a desktop and be tuned for those tasks. Most importantly, make the OS (not necessarily the UI) consistent. In Metro you still have to drop back to Desktop sometimes. In desktop, on a touch device, you are still presented with XP-era dialogs.

Further, make the apps you offer decent. The out-of-the-box selection in Win8 are anything but showcase apps. They are a let down to users.

I personally wish they had not introduced Metro on desktops at all. Completely hide it. Then, on tablets ensure that Metro works really well and that all the Desktop stuff doesn't leak (no XP style dialogs). Then, ditch Windows Phone 8 and use the tablet OS on phones. You then have one underlying OS with 3 UIs: desktop, tablet and phone. Elements and branding will be shared, it will be comfortable switching between, and it will all make sense and be simplified.

Smartphones can check e-mail, record videos and even stream NPR. Now NASA has discovered they make pretty decent satellites, too. Three smart phones launched into space this past Sunday are orbiting above us even now, transmitting data and images back to Earth. The PhoneSats, which cost just a few thousand dollars each, could usher in big changes for the satellite industry.

When exactly did the enterprise stop being a place that ran only Windows? It was probably in the second half of 2010 when employees started asking IT to install their work email on their new iPads.... IT departments must also keep managing PC-based Windows 7, Windows XP and, to a smaller extent, Windows Vista and Mac OS. While Windows 8 remains missing in action in the enterprise, Windows 7 adoption has surpassed XP use, which is good timing given that Microsoft will end XP support in April 2014.

At a smaller scale, the code you write every day and its experience matters. Did you write some awesomely complicated code that only Neo would understand? Great! Clean up the API, make it testable, expressive, and ask the intern if he “gets it”. If everyone on the team is scared to code review your code because you make them feel dumb, you’re doing it wrong.

If you’re writing code for others to use, please consider the experience of those using it.

We have certain developers who make themselves feel dumb when you present them with a clean API that is expressive and testable. Unit tests are viewed with suspicion and not regarded as useful in any way, shape or form. Making an actual API to something is regarded as over-engineering by some. Interfaces, interschmaces.

When you're getting complaints about using a FirstOrDefault one-liner on an IEnumerable instead of a seven line foreach loop with an if inside then it's not you that's doing things wrong. If you're using generics and someone would rather you wrote a separate class for each generic type you need to handle, it's not you doing things wrong. If someone's objection to using interfaces is "I can't find the implementation", it's really not your fault.

If everyone on the team is scared to code review your code because you make them feel dumb, you’re doing it wrong.

Sure, if everyone on the team had my skill level, then that would indicate something is very wrong, but then again, if everyone on the team had my skill level, nobody would be afraid of code reviews.

The reality is that teams are made up of people of different skills levels, some with less skills than me, others with more skills than me. And frankly, everyone who has the attitude "I can learn something from somebody else" doesn't walk into a code review scared. I've had junior level programmers ask me to explain a piece of code and only then do I realize that I did something poorly.

Being scared of a code review has nothing to do with complicated code. It has everything to do with the manager sitting in on the meeting, not understanding what is going on, and asking "why aren't we using VB?" or "can't this be done in SharePoint?" I kid you not.

It also has to do with not knowing how to facilitate a code review so that it isn't a waste of time or finger pointing and blaming. A code review should be a learning experience for everyone not a free form forum for criticism.

Those same people that fear code reviews are the same ones that don't like to use source control to check in their work at regular intervals, waiting instead for "when its perfect." (If you're reading this, you know who you are.) And that's based on insecurity stemming from knowing that you aren't as good as your resume says and you know you fooled people in their crappy interview processes, and now you're hiding.

Dumbing down code for the most junior person on the team isn't productive. If someone on your team feels dumb, then your team is fubar'd to begin with. I've worked with many junior level programmers and at worse, they will realize how much they still have to learn, but they are always grateful that someone is helping them learn, and guess what, they become productive members of the team.

One of the common misconceptions I’ve encountered when developers first start using the Task Parallel Library is that they think Tasks are just fancy threads. This is easy to assume because in a common case, calling Task.Run(…), it actually does run the Task activity on a thread from the thread pool. But as Stephen Toub wrote: "The Task-based Async Pattern (TAP) isn’t just about asynchronous operations that you initiate and then asynchronously wait for to complete. More generally, tasks can be used to represent all sorts of happenings, enabling you to await for any matter of condition to occur."

Tasks can await all sorts of things, but they aren't necessarily on a thread.

In recent years, I "learned" new programming languages by reading books on the subject. And I have noticed an interesting phenomenon: when having a choice between using these languages in a day-to-day basis or using another language I am already comfortable with, I go for the language I am comfortable with. This, despite my inner desire to use the hot new thing, or try out new ways of solving problems. I believe the reason this is happening is that most of the texts I have read that introduce these languages are written by hackers and not by teachers. What I mean by this is that these books are great at describing and exposing every feature of the language and have some clever examples shown to you, but none of these actually force you to write code in the language.

When the company was much younger, we used to pre-announce releases with a fair amount of notice. As with any project, best laid plans get changed, and release dates get missed. Recently we’ve been a lot more disciplined in how we plan our releases. It’s a popular myth that apps are “easy” to make and I thought I’d talk about the compromises and decisions we have to make every day when building apps.

The Iron Triangle of shipping: projects enter... and hopefully leave on time.

Salt started life as a remote execution system: a class of software applications written to address concerns of the form, “I have this command I want to run across 1,000 servers. I want the command to run on all of those systems within a five second window. It failed on three of them, and I need to know which three.” Other systems were designed to do this, of course, but they failed in several ways.... Salt's approach was far simpler. Salt leverages the ZeroMQ message bus, a lightweight library that serves as a concurrency framework. It establishes persistent TCP connections between the Salt master and the various clients, over which communication takes place.

A good intro to Salt if you're responsible for setting up servers and VMs.

An Apple 13-inch MacBook Pro is the "best performing" Windows laptop? Yes, says a PC services company that has done "frustration analytics" on some of the best-selling PCs. The MacBook Pro won out over established PC makers like Dell, Acer, and Lenovo, according to Soluto, which was quick to explain its finding: "A main factor in this machine's metrics is the fact that every Windows installation on it is clean. With PC manufacturers loading so much crapware on new laptops, this is a bit of an unfair competition. But, on the other hand, PC makers should look at this data and aspire to ship PCs that perform just as well as a cleanly installed MacBook Pro."

Of course why could not Dell have done that. I can understand the lower end brands. I remember when Apple Hardware was very poorly designed. The Mac II could not be upgraded to higher speeds because, I guess, they had been stupid and not designed the motherboard to handle higher speeds.

I had a 15" Pro through work 2 years ago and sure the ergonomics were great, the lighted keyboard was swanky and the clean install of Windows 7 ultimate was excellent.

So when I went to buy one for my own business I got a Macbook Pro right?

No. because for £700 less than the best Macbook Pro at the time I got the same screen, same RAM size, larger harddrive and faster quad core processor with a BlueRay Disk Drive thrown in and a second 2GB graphics card, B&O sound system etc etc, in a plasticky, poorly layed out Asus.

If I was designing dining rooms I'd have bought a Mac, I needed real computing "performance" in a reasonably portable package that didn't give me RSI and in spec terms Apple were nowhere.

"The secret of happiness is freedom, and the secret of freedom, courage."
Thucydides (B.C. 460-400)

The tech news has been awash with Twitter shut-downs lately. I'm sure that my company makes more revenue than some of those whose API access has been shut off to the outraged fanfare of onlooking technorati. Unlike those other companies, I don't have a leg to stand on. I'm directly cannibalizing Twitter's Ads revenue model and doing so on their very own platform.

The stable release of Ubuntu 13.04 became available for download today, with Canonical promising performance and graphical improvements to help prepare the operating system for convergence across PCs, phones, and tablets. "Performance on lightweight systems was a core focus for this cycle, as a prelude to Ubuntu’s release on a range of mobile form factors," Canonical said in an announcement today. "As a result 13.04 delivers significantly faster response times in casual use, and a reduced memory footprint that benefits all users."