Problem connecting my Google Nexus 4 to Windows 8.1

My Google Nexus 4 has been playing up lately: taking ages to connect to WiFi and burning up battery extra quickly. Time for another factory reset, I thought, so plugged it into my PC to backup my ebooks, music files and photographs only to discover that it no longer showed up in Windows Explorer.

It turns out that a recent Windows 8.1 update has prevented many Android users from connecting their devices.

I found the solution on this post on Stack Overflow: Windows 8.1 Device Manager now showing ACER Device rather than Android Device for Google Nexus 7.

As far as I recall, this is roughly what I did:

  1. In Windows Device Manager click on View > Show hidden devices.
  2. Locate the ACER Composite ADB Interface uninstall all instances of it.
  3. Reboot PC.
  4. Plug in Android phone.
  5. Return to Device Manager and open ‘ACER Composite ADB Interface and select ‘Update Driver…‘.
  6. Select ‘Browse my computer for driver software‘.
  7. Select ‘Let me pick from a list of device drivers on my computer‘.
  8. From the list select ‘MTP USB Device‘.
  9. Click Next.
  10. Unplug Android phone.
  11. Reboot PC.
  12. Plug in Android phone.
  13. Windows 8.1 showed the phone in Windows Explorer.
Nexus 4 listed as a device in Windows Explorer.

Nexus 4 listed as a device in Windows Explorer.

For some reason I had to do this twice. It may have been because I had ‘USB Debugging’ activated in Settings > Developer Options, and I unticked it the second time.

Anyway, I can now connect my Nexus 4 to my PC. Panic over.

 

Windows 8.1… at last!

Start screen under Windows 8.1 (now with more tile sizes)

Start screen under Windows 8.1 (now with more tile sizes)

This afternoon—after having made sure that last night’s backup happened successfully—I upgraded my PC to Windows 8.1 Pro (64-bit). It had been running Windows 8 Pro (64-bit), so just a 0.1 upgrade! Unlike last year’s botched attempt, this time it was successful and took less than an hour.

Issues

Only three applications complained:

  • 8GadgetPack didn’t run until I’d installed the latest version.
  • Microsoft Windows Mobile Device Center 6.1 reported that it was incompatible. No problem: I’m not using a Windows Mobile phone now. I’ve uninstalled it.
  • SteelSeries Engine reported that it couldn’t initialize. I had suspected my SteelSeries Sensei mouse to be the main culprit in last year’s failed upgrade, so I wasn’t surprised. Downloading the latest version seems to have sorted this.

Tweaks

I’m still using two applications to tweak the Windows 8.1 experience:

  • Start8—Adds the classic start menu back to Windows 8/8.1.
  • Decor8—Personalizes the Windows 8/8.1 start and login screens.

Relief

What a relief to finally get it installed, and without any problems whatsoever. Dear Microsoft, I wish it had been this straight-forward seven months ago. But thank you.

I tweeted my progress through the upgrade:

Playing LEGO games across two monitors with SoftTH

LEGO Marvel Superheroes on 2 x 1920x1080 monitors

LEGO Marvel Superheroes across two 1920 x 1080 monitors

This afternoon we had a visit from Isaac’s godfather, the fabulous Mike McQuaid. As we stood in my study watching the boys playing LEGO® Marvel™ SuperHeroes on my PC I remarked to Mike that I wished that there was an option to use both my monitors, rather than squeezing the two-player co-op onto one 1920 x 1080 screen.

Mike was pretty certain that should be possible and after a quick ‘google’ he unearthed information about NVIDIA® Surround, which “joins multiple displays into a single immersive viewing surface”, typically used for full-screen gaming or watching full-screen video. However, we soon discovered that it requires three displays and I have only one.

This evening, not taking no for an answer I did some internet searching of my own and discovered SoftTH which claims to do the same thing as NVIDIA® Surround but on any number of monitors regardless of whether their resolutions match or not, and so long as they are plugged into a PCI Express graphics card.

How to…

I read somewhere that configuration could be a bit cumbersome but it actually turned out to be fairly straightforward. The trickiest bit, to be honest, was locating the game files (see below).

  1. Download SoftTH.
  2. Unzip the two files: d3d9.dll and readme_SoftTH2.txt somewhere handy.
  3. Locate the directory where the game EXE file is located.
  4. Copy the d3d9.dll file into that directory.
  5. Run the game.
  6. SoftTH runs and checks for the location of a config.SoftTHconfig file. If it doesn’t find one it creates a default configuration file.
  7. Once the game loads (on one monitor) adjust the screen resolution two the new default setting (in my case 3840 x 1080), and the aspect ratio to “From Screen-Res”.
  8. The screen resolution will change, stretching across both monitors and now two player co-op uses one screen for each player.

Locations of EXE files

We have quite a few LEGO games installed so I had to hunt around for their various locations within C:\Program Files (x86):

  • \LucasArts\LEGO Clone Wars
  • \LucasArts\LEGO Star Wars – The Complete Saga
  • \Steam\SteamApps\common\Lego Indiana Jones 2
  • \Steam\SteamApps\common\LEGO Marvel Super Heroes
  • \Steam\SteamApps\common\The LEGO®  Movie – Videogame
  • \Warner Bros. Interactive Entertainment\LEGO® Batman™ 2
  • \Warner Bros. Interactive Entertainment\LEGO® The Lord of the Rings™

Caveats

I have a fairly decent graphics card (NVIDIA® GeForce GTX 660) so this worked for each LEGO game I tried. I didn’t play each game for long so I couldn’t attest for how reliable this is played over hours, but I couldn’t see anything that might suggest that it wouldn’t. A few notes from my 30 minutes experience of this…

Taskbar on monitor two

I discovered when returning to the games that if I had any other applications open on monitor two (I’m running Windows 8 here) then once SoftTH was running it still showed the taskbar.

My workaround was to right-click the taskbar before the game started and select “Auto-hide the taskbar” which slid it safely out of the way.

Character tables

The first real niggle I had was when selecting a new character why does the game present the character table in such a squashed-up way?!

With so much screen real estate why are the characters squashed up so much?!

With so much screen real estate why are the characters squashed up so much?!

The same is true when both players change characters at the same time.

What is going on?! You have a width of 3840 pixels... USE IT!

What is going on?! You have a width of 3840 pixels… USE IT!

Not suitable for one player

My second caveat is that as beautiful as the periphery scenery looks while playing, game play isn’t very sustainable if you are playing a single player game because your character stands right in the middle of the screen, and so is divided between the two monitors.

Cut screens?

My last word of warning is more of a hunch than from experience: I imagine that certain pre-rendered cut screens throughout the game may display in a strange way as they are not optimized for such a wide screen.

UPDATE: Actually, the cut screens on the whole were okay. You do lose some detail as you’re essentially viewing them through a huge letterbox, but it’s mostly viewable.

Targeting is disrupted a little

UPDATE: One thing I’ve noticed is that targeting with certain objects is now a bit off with the double-screen set up. For example, on the opening level with Hulk and Iron Man you need to target a water cannon at Sandman: where you direct the cannon and where it actually sprays are two different locations. On the next level you need to target one of Captain America’s locks, but it’s near impossible to line it up properly without quickly nipping back to a 1920 x 1080, single-screen resolution.

Conclusion

On the whole, I was really impressed. It was simple to set up, with absolutely no configuration from me.

I’ll show this to the boys tomorrow and see what their verdict is: usable or not? Then I’ll report back.

Comic Neue

The quick brown fox jumps over the lazy dog in Comic Neue

Say hello to an unlikely hero

As we all know some people have very strong feelings about Comic Sans.

Might Comic Neue be the answer?

Comic Neue aspires to be the casual script choice for everyone including the typographically savvy.

Are you typographically savvy? Would you use Comic Neue?

I have to say that I like it, especially the Comic Neue Angular variant… not sure, though, if I’d ever use it. Unless, of course, I plan on designing a comic.

BT Broadband finally fixed… maybe BT does care after all

BT speed test results: 16.8 Mb connection to exchange

It has taken me a couple of weeks to write this post. I didn’t want to be overly hasty; I didn’t want to make claims that I couldn’t substantiate. But our broadband connection, which has been a bit flaky since early December, and downright annoying since late January has finally been fixed, after five visits from BT Openreach engineers (one in December, two in February, two in March).

The story so far…

During that time we had the following work done:

  • BT Home Hub 3 replaced for a newer Home Hub 4.
  • Line faults (over 3,000 of them, apparently) cleared from the networking equipment in our street.
  • Master socket changed.
  • Master socket moved from hallway to living room.
  • Changed which pair of wires connects our master socket to the exchange.
  • Powerline adapter changed.

None of this fixed the issue of our broadband connection dropping randomly throughout the day; at most over 100 times a day.

Engineer #5

When the fifth BT Openreach engineer rolled up my spirits lifted a little. This chap—Andy Smith, I think his name is—had visited us about a year ago to resolve a similar issue and he had gone beyond the call of duty to fix our connection by disconnecting all the unused extensions around the house which resulted in a 2Mb increase in download speed.

Like any good physician, he listened to my tale of woe before getting to work checking connections, running line speeds, investigating the BT box in the street. But he returned looking quite glum, reporting that all the tests returned fine: there is definitely not a line fault BUT he could see from his results that there was a problem, he just couldn’t put his finger on it. There was nothing else he could do.

PPP LCP Send Termination Request [User request]

I ran upstairs to fetch a piece of paper that I wanted him to see. It was a print out of the error log the last time it went down. I had noticed that preceding each drop out the error log reported “PPP LCP Send Termination Request [User request]“.

He read the error log and stroked his chin (metaphorically if not literally). “Hmmm…. PPP? Point-to-point protocol. That’s to do with connection not sync speed.”

Then he looked up at me. “That’s all a bit beyond me, to be honest. I don’t understand what it all means…”

My heart sank.

“… but I do know someone who does!” He got out his mobile phone, called a colleague, and then spoke gobbledegook for ten minutes before calling me down the stairs again.

The plan was to “move [me] to new broadband equipment at the exchange”. The engineer at the other end of the phone had already done it from his end, but Andy needed to drive to the exchange and physically swap our network cable from one piece of kit to another. It would take about 10 minutes.

Fixed

And that was it. Fixed! We had a steady, solid, fast connection for over 7 days before it performed another reboot, but it looks like this was just to re-sync the speed; it did it again this afternoon.

And as for @BTCare…

A few weeks ago, in the midst of our most frustrating experience of BT broadband I wrote a very disappointed blog post. I’m sorry I felt that I had to write that post, because as I had said before and as I have waxed lyrical to many people over the years on the whole I’ve found @BTCare to be a world-class customer service experience.

It did the job, however. Twenty minutes after posting that mild diatribe, I took a call from Niall at BTCare. “How are you today?” he asked.

“I’m really disappointed,” I said, quite honestly.

Niall was very apologetic about not getting in touch when he said he would. He never missed another call again. He called each time he said he would, and he faithfully kept up to date with the progress of my support incident.

In short, Niall actually did restore my confidence in BTCare—it just goes to show the difference that one person can make on behalf of the company they represent in changing attitudes. By the end of it I certainly felt that Niall from BT cared, and Andy Smith from BT Openreach cared, even if BT itself was still maybe a little ambivalent about me, so long as I kept paying my monthly bills.

Which reminds me, they offered me a refund on my broadband connection back to the date in January that this portion of the incident was first reported.

A very enthusiastic and heartfelt thank you to Niall at BTCare, and Andy Smith (?) at BT Openreach.

Broadband woes /continued

BT Openreach van parked outside our house on Tuesday 18 February

BT Openreach van parked outside our house on Tuesday 18 February

Having had a minor battle to get @BTCare phone us back last week they finally, and I must say apologetically and humbly, arranged for a BT Openreach engineer to visit the house.

He turned up on Wednesday morning (18 February). A lovely chap, cheerful and engaging. What I really respected about him was that he listened to my tales of woe regarding broadband and crackly-line telephone calls before plugging in his equipment and running various tests.

The tests completed successfully: no faults. Hmm… Then he plugged in his phone to our extension and something grabbed his attention.

“Well… something just changed when I plugged in the phone,” he said. He showed me his meter, the display had suddenly leapt from 0 faults to over 1,500.

He moved operations from our living room (where the home hub is plugged into our solitary extension socket) to the master socket near the front door. His meter climbed to over 3,500 faults.

At this point Isaac returned home from playgroup with a friend and I attended to their lunch in the kitchen while the Openreach engineer donned a hi-vis jacket and poked around beneath a manhole in the street to clear the faults.

He suggested that this may solve the issue, if not then we may be looking at an issue with repetitive electrical impulse noise (Rein) when interference from an external power source interferes with the broadband signal.

Since his visit three days ago our connection has dropped out 29 times so far. There seems to be no obvious pattern to it. These are the values recorded in the router logs after the engineer left:

Tuesday 18 February

  • 16:30:59, 18 Feb. (DSL is down after 229 minutes)

Wednesday 19 February

  1. 15:39:18, 19 Feb. (DSL is down after 1387 minutes)
  2. 16:20:14, 19 Feb. (DSL is down after 40 minutes)
  3. 16:21:37, 19 Feb. (DSL is down after 0 minutes)
  4. 17:16:47, 19 Feb. (DSL is down after 54 minutes)
  5. 17:37:38, 19 Feb. (DSL is down after 10 minutes)
  6. 21:00:08, 19 Feb. (DSL is down after 201 minutes)

Thursday 20 February

  1. 02:12:53, 20 Feb. (DSL is down after 311 minutes)
  2. 02:13:48, 20 Feb. (DSL is down after 0 minutes)
  3. 05:56:33, 20 Feb. (DSL is down after 222 minutes)
  4. 10:11:48, 20 Feb. (DSL is down after 254 minutes)
  5. 13:38:08, 20 Feb. (DSL is down after 205 minutes)
  6. 14:22:27, 20 Feb. (DSL is down after 43 minutes)
  7. 16:56:52, 20 Feb (DSL is down after 153 minutes)
  8. 17:05:25, 20 Feb (DSL is down after 7 minutes)
  9. 18:00:14, 20 Feb. (DSL is down after 53 minutes)
  10. 18:53:33, 20 Feb. (DSL is down after 52 minutes)
  11. 18:54:26, 20 Feb. (DSL is down after 0 minutes)
  12. 21:48:25, 20 Feb. (DSL is down after 173 minutes)
  13. 22:32:53, 20 Feb. (DSL is down after 43 minutes)

Friday 21 February

  1. 10:01:15, 21 Feb. (DSL is down after 687 minutes)
  2. 11:03:35, 21 Feb. (DSL is down after 61 minutes)
  3. 11:07:53, 21 Feb. (DSL is down after 3 minutes)
  4. 21:13:15, 21 Feb. (DSL is down after 604 minutes)
  5. 21:14:14, 21 Feb. (DSL is down after 0 minutes)
  6. 21:19:43, 21 Feb (DSL is down after 4 minutes)
  7. 21:20:37, 21 Feb. (DSL is down after 0 minutes)
  8. 21:36:52, 21 Feb. (DSL is down after 15 minutes)
  9. 21:37:47, 21 Feb. (DSL is down after 0 minutes)

I’ve started recording the line rate speeds (mostly around 888 Kbps upstream, 9720 Kbps downstream, which is significantly less than we’re used to) and noise margins too (12.00 dB upstream/10.60 dB downstream on Thursday dropping to 7.60 dB upstream/8.90 dB downstream today) in case these are important factors.

We also have an electrician visiting the house tomorrow morning to inspect the wiring to try to rule out that as possible cause of Rein.

Hello Ruby — teaching children to write code

Ruby, with a wise penguins, a green robot, and lonely snow leopard. Drawing by Linda Liukas.

Ruby, with a wise penguin, a green robot, and lonely snow leopard. Drawing by Linda Liukas.

A few years ago I remember reading a book advocating that all school children should be taught to program computers. It’s a great discipline for anyone, the author argued, especially children. It teaches patience, persistence, problem-solving, the importance of planning; it can help children improve their maths and logical thinking, and it’s hugely rewarding to see something that you’ve been working on suddenly come to life and work as expected. I wish I still had that book.

A couple of stories about teaching children to write code have caught my eye over the last few weeks.

Year of code

On Newsnight, broadcast on BBC 2 on Wednesday 5 February 2014, Jeremy Paxman presented an article about the Year of Code campaign, an independent, non-profit campaign to encourage people across the country to get coding for the first time.

One of my first experiences of using a computer was in primary 7 when the headteacher brought in a Commodore VIC-20. I took computer studies in high school through to higher level, and half of my university application form was to study computer science (the other half to study divinity, which is what I ended up doing).

I loved coding as a kid. My friends and I would gather around each others home computers, whether a Commodore 64, ZX Spectrum, or BBC B, and we’d design or amend games and programs together.

People are often amazed when I say that I taught myself the web skills that I use now in my day-to-day job in the web team at the University of St Andrews. Except, that’s not entirely true: I do have the experience of those seven or eight years of coding on 8-bit computers as a child and as a teenager. That was a brilliant headstart.

It seems that today ‘computer studies’ in school is more about learning how to be a consumer and user of existing software (how to use Microsoft Word, Microsoft Excel, Microsoft PowerPoint) rather than creating your own software.

I was appalled to learn how some youngsters are being ‘taught’ to code in schools today. A couple of months ago a friend of mine phoned me asking for my help. Her daughter is studying computer studies and she is being ‘taught’ to code using… Adobe Flash!? And I say ‘taught’ because it sounds like she and her classmates were essentially shown the application, given a book and told to get on with it. It sounded like the teacher didn’t know to code either.

Compare that with my own experience in the mid-80s. I had three years of hands-on coding BASIC and machine code by someone who understood how computers worked and what the programs were being asked to do, who could tell a CPU from an ALU from a RAM. And then in my sixth year a group of six of us took ourselves off and taught ourselves Pascal in what would otherwise have been free periods for us in our timetable.

We need to be teaching our children to code so that they can contribute to the next generation of computer applications. Technology has never been more exciting than it is now. I remember my dad (who worked in the electronics and communications industry, who delivered the Faraday lecture on fibre optic communications) telling me in the early 80s that one day televisions would be so thin we could hang them on our walls. It seemed like a space-age dream, it is now reality.

My main concern about that Newsnight piece, however, is the interview with Lottie Dexter, the executive director of Year of Code (at 5′ 32″ on the video).

It’s not her admission that she herself cannot code—good on her for admitting that straight away, and even better that she is committing herself to learning this year, alongside those she is encouraging to take it up. No, it’s comments like,

“You can do very little in a short space of time. For example, you can actually build a website in an hour [...] completely from scratch.”

Well, you know. That’s true. But it’s not going to be a particularly good one, if this is your first. Erm… practice?

Paxman then asks her, “How long does it take to teach to code?”

“Well, I think, you can pick it up in a day.”

My heart sank. I was speechless. In trying to make coding sound more accessible she immediately undervalued programmers everywhere. It really isn’t quite that simple. I’m going to be bold here and state: you simply cannot learn enough about programming in one day to be competent enough to teach it. Is it not comments like that that result in school pupils being ‘taught’ how to program using Adobe Flash?

Hello Ruby

Hello Ruby, a Kickstarter project by Linda Liukas

Hello Ruby, a Kickstarter project by Linda Liukas

Which is why projects such as Linda Liukas’s Hello Ruby are so exciting.

Linda, a founder of Rails Girls, wants to create a children’s book that teaches programming fundamentals through stories and child-friendly activities.

She asked for US $10,000, as I write her total is at US $336,203. (There are currently three days left to get involved.)

I think it’s a hugely exciting project. This is what Linda has to say about it:

Ruby is a small girl with a huge imagination. She stomps and stumbles around her own little world while her dad is traveling. On her adventures, Ruby makes friends with the lonely Snow Leopard, visits castles made of windows, and solves problems with the wise penguins. She bakes gingerbreads with the green robots and throws a garden party with… well, if you like to hear the rest of the story, I need your help.

Ruby’s world is an extension of the way I’ve learned to see technology. It goes far beyond the bits and bytes inside the computer. This is the story of what happens between the ones and zeros, before the arrays and the if/else statements. The book and workbook are aimed for four to seven year olds.

I believe stories are the most formative force of our childhood. Everyone has a book that made the world seem beautiful and full of possibility. My book is about little Ruby.

It’s due out in August. I’ll report back when I receive my copy, and we’ll see how Reuben, Joshua and Isaac engage with it.