Runar Ovesen Hjerpbakk

Programmer. Software Architect. Technical Manager.

Windows Phone

Build 2015 Day One Keynote

Day One started with a long winding trek to the light that is the Build 2015 keynote.

Light at the end of the tunnel. Light at the end of the tunnel.

Satya's first demo contained the Surface, a pen, a musical C# and F# joke and off course, an index out of bounds error.

You mean there's more to F# than being a hipster programming language? You mean there's more to F# than being a hipster programming language?

The Gu presented Azure as the only hyper cloud solution with more data center locations than Google and Amazon combined. Also you can leverage your existing skills, even Linux and JavaScript.

THIS IS THE BEST CLOUD! THIS IS THE BEST CLOUD!

Next was the CEO of Docker, Ben Golub, Docker for Windows is on. Like Donkey Kong. "Choose the best damn tools for the best damn application. And run it on any server". Love it!

Minecraft Docker container. Check! Thank you Mark.

Docker for Windows

Publish Docker container right from Visual Studio 2015. Check!

Attach the debugger from Visual Studio 2015 to a running Container and hitting breakpoints. Container running nix and .Net Core CLR.

Also, run the .Net Core CLR on OS X.

Mark is pushing his second favourite company. Mark is pushing his second favourite company.

Hanselman is here! Showing Android app written with Apache Cordova running on the built in Android emulator from Visual Studio. Nice.

Android simulators are more plentiful than JavaScript-frameworks. Android simulators are more plentiful than JavaScript-frameworks.

Visual Studio Code on OS X!!! Mind suffiently blown! Thanx Scott!

Written using Electron.js

OS X in a Microsoft keynote. The tables have truly turned. OS X in a Microsoft keynote. The tables have truly turned.

And on Ubuntu!

Tux watches as hell freezes over. Tux watches as hell freezes over.

SaaS - SQL as a service. SQL is not dead, it's in the cloud.

Azure Insights is looking awesome. "Cortana, should i do a 10% promotion"?

Azure enables JustGiving to create iRobot charity giving intelligence.

OS X Leopard wants its wallpaper back. OS X Leopard wants its wallpaper back.

Now comes the more boring stuff. Office with a SAP-plugin. On iPad! I take back the boring part.

The iPad even makes SAP better. The iPad even makes SAP better.

Every major modern application needs a solid extension model.

Uber extension in the iOS edition of Outlook. Uber extension in the iOS edition of Outlook.

And REST-endpoints.

If you're seeing JSON, you're doing something right. If you're seeing JSON, you're doing something right.

Memo to self: disable drug dealer notifications while presenting on stage.

Even Satya wants the iPad Air 2. Should've been gold though. Even Satya wants the iPad Air 2. Should've been gold though.

Windows 10 is a new generation of Windows. Mobility across devices. Benefit the user.

WaS: Windows as a Service. To 1 000 000 000 users.

1 Billlllllllllion! 1 Billlllllllllion!

Windows Store, please make it work this time.

These are the hopeful eyes of a dreamer. These are the hopeful eyes of a dreamer.

Universal Apps is the next big Bing, I mean thing. Great support for Web applications.

Universal platform capabilities are now available for .Net and Win32 applications. DIPS is ready for the Windows Store. Running isolated from the rest of apps.

Photoshop running as a Universal App, with some camera magic added in too. Photoshop running as a Universal App, with some camera magic added in too.

Windows Phone now comes with Android! Run your Java or C++ Android apps on Windows Phone. Is Nice!

Or your ObjectiveC iOS app! Compile and link using Visual Studio on Windows 10 :)

Please make apps for our platform. Pliz! Please make apps for our platform. Pliz!

Great syntax highlighting for ObjectiveC, highlighting all of ObjectiveC's poor syntax. Lol.

ObjectivC is not prettier in Visual Studio ObjectivC is not prettier in Visual Studio

One more thing. The Prize of the show is an HP Spectre x360.

It has 5 screens! It has 5 screens!

Joel showing of Aero Windows 10. Brings back memories.

The start menu is like a Windows Phone The start menu is like a Windows Phone

And now the Windows 10 login screen, direct with app commercials from the Windows Store.

Project Spartan is now Microsft Edge. Memo to self: never use your internal code names in public.

Looking over the edge of the world. Looking over the edge of the world.

RES (Reddit Enhancement Suite) is available for Edge already.

Windows 10 phones are omnidevices, becomming a PC when a keyboard and mouse are connected.

It's a phone. I mean it's a PC! It's a phone. I mean it's a PC!

Continuum is Handoff on acid.

People, not devices, are mobile. Bring on the Holograms!

The future is very intense. And somewhat angry. The future is very intense. And somewhat angry.

Microsoft Bob 2.0! Windows Holographic platform.

Look at the puppy! Look at the puppy!

Hololens is really cool in a professional setting.

View real physical objects in a greater than real detail.

No Phone or PC required.

Microsoft is running a Jony Ive design video, without Sir Jony. And not just on a white background.

Not pure enough! Where is the white room? Not pure enough! Where is the white room?

All Universal Windows Apps can be holograms.

You can now sumperimpose a virtual robot on a real one.

Read More

New features in FermiContainer 1.1

FermiContainer gains features, but while doing so becomes even more simple. How is this possible? Let me tell you:

Automatic resolving of constructor arguments

Through constructor injection, the dependencies known to the container are automatically resolved. No attributes or XML configuration are needed.

[Test]
public void Register_EvenMoreComplexClass_CanBeResolved() {
  m_fermiContainer.Register<IEvenMoreComplex, EvenMoreComplex>();
  m_fermiContainer.Register<ICalculator, Calculator>();
  m_fermiContainer.Register<IComplex, ComplexClass>();
  m_fermiContainer.Register<ClassWithoutInterface>();

  var complexInstance = m_fermiContainer.Resolve<IEvenMoreComplex>();

  IsInstanceOf<IEvenMoreComplex>(complexInstance);
}

public interface ICalculator {}

public class Calculator : ICalculator {}

public interface IComplex {}

public class ComplexClass : IComplex {
  public ComplexClass(ICalculator calculator) {}
}

public interface IEvenMoreComplex {}

public class EvenMoreComplex : IEvenMoreComplex {
  public EvenMoreComplex(
    IComplex complex, I
    Calculator calculator, 
    ClassWithoutInterface classWithoutInterface) {}
}

public class ClassWithoutInterface {}>

Default container instance

var instance = FermiContainer.DefaultInstance;

IsInstanceOf<IFermiContainer>(instance);
Assert.AreSame(instance, FermiContainer.DefaultInstance);

Easier to extend

The Services dictionary is now protected so FermiContainer is easily extendable.

Better performance

C# expressions makes FermiContainer very performant.

Available as source through NuGet

PM> Install-Package FermiContainer.Sources

Read More

Wake up Rested

large mobile app tile Wake up Rested calculates either when you should wake up if you go to bed at a specific time, or when you should go to bed in order to wake up rested the next day. Waking up in the middle of a sleep cycle leaves you feeling tired and groggy, but waking up in between cycles lets you wake up rested.

Usages:

  • Wake up rested everyday by following your own body’s rhythm
  • Maintain your sleep cycle even when traveling abroad with different time zones
  • Take naps that makes you wake up refreshed using the app’s suggestions

SS1 - wake up by screen SS2 - go to bed at SS3 - settings

Wake up Rested’s default settings follows from the averages found in the scientific literature, but you can change these to fit your body. Individual sleep cycle variations of up to 20 minutes are common. The time needed to fall asleep, the length of your average sleep cycle and the number of needed cycles are all customizable.

Wake up Rested is available on the Windows Phone 7 Marketplace for just 0.99$.

For always up-to-date information, see the newly created app page.

Read More

Windows Phone 7–Change Live Id

The main Windows Live account cannot be change or removed like other accounts on the phone. In the Settings – email & accounts, Google and other accounts can be deleted from the context menu. The main Windows Live account is the first account listed with a Windows icon and only sync is available from the context menu.

microsoft-windows-7-phone

In order to change the main Windows Live Id, the one used to access Marketplace and Xbox Live, you need to reset the phone to the factory defaults. This, off course, has its disadvantages as all content on the phone will be deleted.

To reset your phone, tap Settings – about. Tap reset your phone and follow the instructions. After reboot, another Windows Live Id can be used in the setup.

Read More

Windows Phone 7: The Tip, The Bug, The Suggestion

 

The Tip

Windows Phone 7 does not have functionality for viewing a device’s MAC address from within the OS. For us using MAC filtering in our wireless home networks, this is annoying. However, the solution is rather simple: temporarily disable filtering on the router, connect the device to the network and not the MAC address in the router’s connected devices or DHCP. Now the device can be added to the allowed devices list and MAC filtering can be re-enabled.

The Bug

BugPhone numbers are recognize differently by my HTC 7 Trophy depending if they are from a phone call or a text message. Numbers from calls are shown without country codes, e.g. 12345678, and numbers from text messages always have the country code added (for Norway this is +47), +4712345678.

Adding the country code (+47) to a contact's number makes the messaging app recognize the contact, while an incoming phone call only displays the number without the country code. Leave out the country code, and only the phone calls are recognized as from the contact.

This bug is highly irritating and I have as of yet not found a solution.

The Suggestion

SuggestionVarious settings, as toggling WIFI or Bluetooth on or off, are only available from the settings page. It would be a time saver if such toggle settings were possible to pin as tiles on the start screen. The alarm tile already shows whether the alarm is toggled on or off when it's pinned to start screen, and the same method could be used for other toggle settings. Touching the tile could trigger the radios, for other settings (e.g. selecting a wireless network for the first time) a trip to settings page seems ok.

Read More

Windows Phone 7: 3 small issues

Having just received my HTC 7 Trophy I was eager to see my own programs in action on actual hardware. It was almost plug and play, however a few issues deserves special mention.

Win Phone Dashboard

The Dashboard Error

I have previously created a developer account and installed the tools from Microsoft. Separately, I have created an Xbox Live account. Before debugging my program on the phone, I tried to access the dashboard at the APP HUB. Every time the result was this:

we’re sorry. an error has occurred. We encountered an issue connecting your App Hub account with your Xbox Live Profile. Please visit Xbox.com and update your contact information. After you have updated your contact information, please return to the App Hub ( https://users.create.msdn.com/Register ) to continue.

The Xbox link was dead, and manually adding contact information to my Xbox Live account did not solve anything. After a couple of creative searches the Internet suggested that contact information at https://billing.microsoft.com/ needed to be updated. I have not previously heard of this site, but I logged in anyway.

The billing site revealed two Xbox Live accounts: one personal and one for business. The personal account did not have a registered contact address while the business account did. Filling out the missing information solved the problem and I could access the dashboard as normal.

The Missing Phone Registration

Debug

Now I tried to debug my program on the phone. I plugged the phone into the computer, fired up Zune and Visual Studio and started debugging. No such luck. Visual Studio complained about missing phone registration. I checked with the almighty Internet, which told me that the phone needed to be registered from within Visual Studio.

Reg In vain I searched the menus and buttons looking for this phone registration. As a last resort I took a look at the start menu and found this: Windows Phone Developer Registration. Inputting my Live Id enabled debugging on the device. A much nicer experience than the emulator. Multi touch is just not the same using a mouse.

The Unrelated Zune Issue

I have used my previous phone to listen to podcasts on my way to work. Since you cannot drag and drop files directly to a Windows Phone 7 device, you need to get Zune to recognize the files as podcasts. I have downloaded a few podcasts which would only be imported by Zune if they were put in the music library. Unsatisfactory, as mixing music and podcasts are a not a good solution.

The Internet, again, came up with a solution: tag the mp3s with the genre Podcast. I closed Zune, downloaded MP3TAG, tagged the files and started Zune again. The mp3s in question were immediately recognized as podcasts and my trip to work could finally be combined with the wisdom of The Skeptics' Guide To The Universe

Read More