Hi fellas,

I’m currently getting my agenda ready for //build and I can hardly wait the keynotes. After going through the agenda, I found some very interesting sessions:

  • Diagnosing Issues with Windows Phone JavaScript Apps Using Visual Studio
  • Multitasking and Triggered Background Tasks for Windows Phone Apps (in regard to Windows Phone 8.1)
  • Building a Converged Phone and PC App using HTML and JavaScript

I guess we’ll be hearing about a share WinRT or something, between both desktop and mobile devices. From a developer’s perspective, that would rock!

A

itcamp-logo-white[1]I suppose you’ve already heard of ITCamp, the Premium conference focusing on Microsoft technologies, not hosted by Microsoft (should you have not, check out http://itcamp.ro/past.cshtml). Based on my personal experience, ITCamp is probably the best IT conference in .Ro. Did you know that the guys behind ITCamp are already putting together the details for ITCamp 2014?

I totally recommand registering for IT Camp. And hey, if you keep checking out their website (http://itcamp.ro), you might even get just in time for an early bird discount!

You should also keep checking out the #ITCamp14 hashtag.

A

bootcamp-300x202[1]In April of 2013 we held the first Global Windows Azure Bootcamp at more than 90 locations around the globe! This year we want to again offer up a one day deep dive class to help thousands of people get up to speed on developing Cloud Computing Applications for Windows Azure. In addition to this great learning opportunity the hands on labs will feature pooling a huge global compute farm to perform diabetes research!

Today I am proud to announce that I am going to both host and speak at the GWAB 2014 event in Oradea, RO. Here’s the conference link: http://gwabor.azurewebsites.net

See you there!

Did you know that you can get almost all the literature of MIT’s courseware directly from their courseware website? Just click this link anduse all this well-written courseware or your own good.

Honestly now, great job MIT for having these posted on-line.

Alex

Hi guys!

First of all, have a Happy New Year!

Several people asked me ‘Why did Microsoft remove the System Experience Index from Windows 8.1′? Well, you might indeed be wondering why, but the fact is that it didn’t really go anywhere since it’s still there, but not graphycally.

So, if you want to score your PC in Windows 8.1, you have to run the Windows System Assessment Tool from command line (is there any other way?), by using the winsat command in an elevated Command Prompt. You have the option of assessing your Desktop Windows Manager (system graphics capabilities), CPU, Internal Memory, Direct 3D, Disk drives and some other features. Of course, you can also run all of these under a single test (formal test).

However, given the complexety of the output shown by Windows System Assessment Tool, I suppose that Microsoft either prepares something for Windows 8.next when it comes to the Experience Index or their planning to completely remove WEI from the next version of Windows. You still have to keep in mind though, that according to this Windows page (What is Windows Experience Index), WEI typically scores from 1.0 to 7.9 and that in a PC powered by a  64bit processor with 4GB (or less), your memory score will drop to 5.9 and therefore your overall score will also drop to 5.9. Even though, I’ve assembled a PC several months ago where I achieved scores of 8.1 in a row. Therefore, I might say that either the page is outdated or the rating system is about to get some updates, don’t you think?

Alex

I recently came across a situation where I had to change a modal’s window border style (the style applied on the New Appointment modal in the RadScheduleView control) and ddn’t find the correct solution right away.

If you google this, the most suggestions you come across both on Telerik’s formus and on other forums as well (MSDN Forums included) is to create your own window and handle the AppointmentCreating event handler without it actually creating the appointment in the end. How do you do this? Well, remember those handful of event that, once overridden, offer you the property of .Handled on the event argument? Well, that’s how. The only problem with this is that, at least in the Q3 version, the .Handled flag doesn’t stop the old (Telerik’s) modal to be shown nd therefore you and up showing two modal – this isn’t just confusing, but awful for your user experience.

Of course, there is also the (suggested) option of marking the .Cancel flag on the event argument as true which, funny enough, works :-/. Anyway, canceling the event will end up in, you’re correct, not refreshing your UI even though you’ve probably programatically added a new appointment.Of course, there is a solution to this too: you manually refresh the control. However, this is just wrong!

called ScheduleViewDialogHostFactory which is nothing else than a container inside which you can modify the host Window as required. Here’s more on ScheduleViewDialogHostFactory: http://www.telerik.com/help/wpf/radscheduleview-features-customizing-dialog-windows.html

Hope this helps.

Alex

Hi,

So I came across these two perculiar situation whilst running Windows 8.1 Enterprise N, both regarding Flash- or should I say that 3rd party Shockwave player embedded into Internet Explorer 11?

Basically, the situation is like this: right after installing a clean copy of Windows 8.1 Enterprise N, if I opened up Youtube without having the headphones plugged in (and thus, a ‘No microphone or speaker plugged in’ message appeared), Youtube returned the ‘An error occurred’ message with the static background and an useless ‘Learn more’ link which only redirected me to adobe.com. Now, I do admit that Flash is not the only culprit here, since Vimeo and other Flash related content on other sites seemed to work fine (not all, though! Zonga.ro – which is a Spotify-like app – works just fine).

One other thing worth mentioning is that Youtube runs smoothly under HTML5. How did I use Youtube on HTML5? Well, first you go to http://www.youtube.com/html5, select that we want to join the HTML5 trial and than you deactivate your Shockwave plugin from the Manage Add-on settings page. Another thing worth mentioning is also the fact that on the HTML5 activation page on Youtube, both H.264 and MSE & H.264 (along with HTMLVideoElement and Media Source Extensions) are found as supported.

However, after installing the usual some R&D related software, I came across another strange issue. Right before updating the OS again (more software means more updates, more updates means theoretically less headache, practically more issues i.m.h.o.), Youtube worked fine – as long as my headphones were plugged in. After updating the OS though, every single time I am trying to run a video on Youtube, IE crashes completely with the ‘Close program’ message box – I don’t even have the option of reporting the issue!

Here’s some extra info from Event Viewer:

  • Faulting application name: IEXPLORE.EXE, version: 11.0.9600.16384
  • Faulting module name: Flash.ocx, version: 11.9.900.117
  • Exception code: 0xc0000005
  • Fault offset: 0x00573ef5
  • Faulting module path: C:WindowsSYSTEM32MacromedFlashFlash.ocx
  • Report Id: 17dce16c-32a1-11e3-9c0d-d43d7ed8c58e

The reason for why I was mentioning the HTML5 facts earlier is that as soon as these issues appeared, I tried to switch the video playback back to HTML5 from Flash and found out that:

  1. after disabling the Shockwave plugin, Youtube reported that my browser didn’t support HTML5 (a small error message inside the container for the video player)
  2. on the youtube/html5, neither H.264 nor MSE & H.264 were marked as supported

One more strange thing is that when I tried to verify if there’s an update for Flash player on Adobe’s page here, Adobe no longer reported that I was visiting the site from IE11 or Windows 8.1. I therefore suppose that after updating it, the browser no longer sends out its capabilities and thus, Flash (and possibly other apps too) run into some sort on unhandled exception.

Looking into Event Viewer, I found out that the issue was related to Flash.ocx and that the error code was 0xc0000005, which was rather random. After several failed attemps of solving the issue by reinstalling audio, video, chipset and other device drivers, I decided to install the Media Pack for Windows Enterprise N and KN, which basically installs Windows Media Player and other media related software on an OS which was designed to work without this extras. Guess what!

Installing the Media Pack for Windows Enterprise N and KN (link here) solved the problem. Now, if you ask me, there is a bug somewhere, because there is no way for a piece of software to work only if your headphones are plugged in (only under given circumstances – specific websites, so specific apps) and, after updating the OS with IE related updates, to crash every single time the Shockwave plugin is used, only to recover if you install the extras which you didn’t want in the first place and which should theoretically have nothing to do with the issue itself whatsoever.

I know this is sort of a dum-dum solution, but it might get you going until there is an update available.

Alex

I’ve been scrathing my nerves trying to get around an Azure Cache relates situation that I came across in one of my recent projects.

There are multiple caching scenarios and options available for Azure, but I’m going to talk about this in a different post. For now, just keep in mind that I decided to go with a dedicated co-located role for caching, which basically means a different VM that serves all the caching request. I’ve also configured the caching clients (all the pieces of code that request cache) to use the caching cluster configured on that Azure Caching Role.

In order to configure that particulat scenario, you have several options available for importing the references (.dlls) and configuring your configuration files (mostly web.config sections), but the most common and simple usage scenario is to go with the NuGet Package Manager and install the Windows Azure Caching package.

As of 31st of July, the latest version of WAC package is 2.1.0.0. Moreover, if you search around your favourite search engine a little, you’ll come across an article mentioning the WAC package and that you should configure the NuGet package Manager to show pre-release versions of the package as well. This article was posted somewhere in late-June. IMHO, once I saw 2.1.0.0 was already a stable release, I was amazed and pleased by the hard work of the Azure team at Microsoft.

After installing the package, I got this strange exception in my code:

There is a temporary failure.     Please retry later.  (One or more specified cache servers are unavailable, which could be caused by busy network or servers.  For on-premises cache clusters, also verify the following conditions. Ensure that security permission has  been granted for this client account, and check that the AppFabric Caching Service is allowed through the  firewall on all cache hosts. Also the MaxBufferSize on the server must be greater than or equal to the  serialized object size sent from the client.). Additional Information : The client was trying to communicate  with the server: net.tcp://MvcWebRole1:24233.

The inner exception stated:

No such host is known

Unfortunatelly, both exceptions are extremely generic, considering the cache cluster name is configured corrently and running smoothly (you can always use the Azure emulator to confirm). However, the code just decided not to run.

After a little more research, I found out that MS also announced the new SDK, namely Windows Azure SDK 2.1. However, this time they didn’t do all the usual marketing campains for some reason that I’m not really aware of. I also found out that the latest release of the WAC package only works with that specific SDK (apparently reading the NuGet package description is required :-) ), so here I am, running this line of script in the Package Manager console and making everything work:

Install-Package Microsoft.WindowsAzure.Caching -Version 2.0.0.0

I hope this post finds you in good peace and helps you solve similar problems in a shorter period of time!

A.

P.S.: sometimes (random cases), the script for installing the WAC package (v. 2.0.0.0), after uninstalling WAC 2.1.0.0 fails. Don’t worry though, since the web.config file is correctly modified by the WAC installer and all the references exist and are correctly included in the project.

One other situation I recently came across was regarding WIF and the pipeline security applied to it. Basically, due to up-scaling a project from one server (I know…) to multiple-instances, the app kept going into infinite redirect loops (HTTP 302), thus not allowing users to wander around the app. The case like this:

1. The user first visits the page

2. The user clicks anything in the page

3. The app goes into infinite 302.

The situation was cause by the security mechanisms the make the ASP.NET session authentication secure. Basically, by default, the DPAPI security providers are used. This basically states that for every single new session, a random key is generated that the user can wander around. That key is normally kept in the session providers, but is related to the keys used by the machine. Obviously, in a webfarm scenario (such as a multi-instance cloud service), DPAPI is useless and causes a CryptographicException to be thrown, since the FedAuth cookie gets encrypted by one machine and when you redo a request to your app, the cookie can no longer we decrypted.

If, for any case, you have a custom error page and if you, like in my case, must have the security mechanisms inside a Master page and mostly if the Error page inherits the Master page, you will, like me, get an infinite redirect loop (302).

The solution to this is to configure (using the web.config file) your IIS machines to use another security pipeline mechanism, such as MachineKey encryption. Moreover, it is obviously required to configure a static machine key and validation key, yet most Google-related results for this situation fail to remember that such a setting is required. Otherwise, the different machines in the web farm still get different keys and the FedAuth cookie won’t decrypted, failing in the CryptographicException all over again.

The required configuration for web.config for replacing your DPAPI security mechanisms with MachineKey cryptography is:

<securityTokenHandlers>

<add type=”System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ />

<remove type=”System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ />

</securityTokenHandlers>

As for the machine key, you have to choose an appropiate key size (only HEXA-DEC chars), as mentioned on this MSDN article on machinekey configuration in ASP.NET 2.0 (I know it’s old, but it’s still valid for ASP.NET 4.0).

Choose an appropriate key size. The recommended key lengths are as follows:

  • For SHA1, set the validationKey to 64 bytes (128 hexadecimal characters).
  • For AES, set the decryptionKey to 32 bytes (64 hexadecimal characters).
  • For 3DES, set the decryptionKey to 24 bytes (48 hexadecimal characters).

A.

  1. Get a job.
  2. Understand I don’t like you.
  3. I’m everywhere.
  4. You hurt her, I hurt you.
  5. Be home 30 minutes early.
  6. Get a lawyer.
  7. If you lie to me, I will find out.
  8. She’s my princess, not your conquest.
  9. I don’t mind going back to jail.
  10. Whatever you do to her, I will do to you.