30 August 2012

Install Windows Features Without access to Windows Updates

I found myself in need of adding Windows Features but without access to Windows Updates. You can do it from the DVD or ISO by following the instructions in the links below. Basically put the DVD in the drive or mount the ISO and at an admin command prompt enter:

dism.exe /online /enable-feature /all /featurename:NetFX3 /Source:D:\sources\sxs /limitaccess
where D:\ is the DVD drive letter

Source: Anyone traced the .NET 3.5.1 download (x64)?
DISM: http://technet.microsoft.com/en-us/magazine/dd490958.aspx

If you don't use /enable-feature /all you might get:

The operation is complete but NetFx3 feature was not enabled.
A required parent feature may not be enabled. You can use the /enable-feature /a
ll option to automatically enable each parent feature from the following list. I
f the parent feature(s) are already enabled, refer to the log file for further d
iagnostics.
NetFx3ServerFeatures

22 August 2012

An Open Letter to Oh-Hyun Kwon, Vice Chairman & CEO, Samsung Electronics

Dear Oh-Hyun Kwon,

Today I tried to login to Samsung.com to register a product to my account. When I attempted to login it told me my password was incorrect so I requested a reset. After doing that I received confirmation that it was reset and attempted to login again, copy and pasting the username and new password into the fields to ensure they were correct. It still failed to login so I called customer services.

Calling Samsung customer services is like having teeth pulled out. Let me elaborate: after listening to one of the longest introductions I have ever had the misfortune to hear all about Samsung, my data and its protection and such I got through to a grumpy sounding woman. I explained my login problem to her very explicitly, describing the steps I'd attempted to overcome it. She then responded with: "You have to reset your password", the exact phrase which I had just said to her when explaining what I had done! I kept my patience and repeated the fact that I had just done that, twice.

Her next response was a little more telling. She said I would have to request my password to be emailed to me. She clearly doesn't spend much time on the Samsung website as there isn't an option to request your password. I admit my patience was wearing thin by now but I persevered, explaining that I had already attempted what appeared to be the only option available to me on the website and it didn't work. She put me on hold.

After 5 minutes of being on hold she came back and said I could email support and request that my account was removed, so I could re-sign up on the site. I explained that I already have some devices assigned to that account and they have data backed up against that account so I wasn't keen to remove it if that backed up data was going to be lost in the process. She repeated that I could email them to get the account removed... and I began holding my head to stop it exploding.

I had to repeatedly ask her to confirm if the information would be lost or not as she just kept replying I could send an email to remove the account. Eventually she audibly sighed and asked if she could put me on hold again. After 18 minutes of telephone call the line went dead.

So what to conclude, apart from WOW Samsung that is really pretty special? I do like your hardware but pretty much everything else about the company sucks:
  • Communication: Complete lack of communication about upcoming or prospective hardware and software releases.
  • Companion software: Poor does not adequately describe the Kies companion software or on device App offerings. They are not fit for purpose. The website is clearly just as bad.
  • Customer services: Rude staff with a complete lack of training or knowledge does not constitute a customer services department. I would rather you didn't bother at all.
I'm not an Apple fan-boy but I do think from pre-release to after care their model is a hard one to beat. OK they have the money to do it but really it's not that hard to overcome the above issues with some thought and a modest budget.

With frustration and still unable to log in,

Phil

PS. When I contacted your company via 'Contact us' on your website the representative replied saying "I am sorry to inform you that your email has came through to the wrong department. [Please] forward your email to...". I would ask why he or she couldn't do that themselves rather than responding to me? But it is becoming clear that if there is a worse way of doing something, your team will take it.

[UPDATE] I received a call from Samsung customer services a day later. The manager 'K' initiated a solution to my registration issue and increased the warranty on both the phone and the tablet by way of an apology for the service I had previously received. That's great and I'm very thankful for it but what a shame the team couldn't just get it right in the first place.

Firmware archive | Samsung Updates

I'm fed up of waiting for Samsung to release Android 4.04 to my Samsung tab 10.1 which is a UK 3g version i.e. P7500

They have apparently released it for the non 3g UK version already but it doesn't appear on Kies or over the Air updates for me on my 3g version. As of today it seems they have released it in Italy and the Baltic but that's not much use to me. Why the delay Samsung? I'm left wondering what sort of random roll out plan they have. Are they perhaps using a Risk board game to choose where to roll out next? Some form of communication from them directly would be nice...

Firmware archive | Samsung Updates

[UPDATE] I have spoken to Samsung support and the representative confirmed there is no UK 3g update available yet. They apparently need to test it with the UK carriers in order to ensure it works before releasing it.

11 August 2012

Configure IISExpress

I tried to open a sample application that used IISExpress and received this error:

---------------------------
Microsoft Visual Studio
---------------------------
Configuring Web http://localhost:57370/ for ASP.NET 4.0 failed. You must manually configure this site for ASP.NET 4.0 in order for the site to run correctly. Could not find the server 'http://localhost:57370/' on the local machine. Creating a virtual directory is only supported on the local IIS server.


But as I use IIS (proper) on my development machine as well it wouldn't auto configure it. The answer was to configure it manually via:
%userprofile%\documents\IISExpress\config\applicationhost.config

<configuration>
<system.applicationHost>
<sites>
            <site name="[site name]" id="2">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="[path to site]" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:57370:localhost" />
                </bindings>
            </site>
</sites>
</system.applicationHost>
</configuration>

Samsung Kies: Even the Developers Don't want to Take Credit!

I've written before about how terrible Samsung Kies is. It makes a mockery out of the Samsung hardware which I find to be very good.

Recently I noticed a new program called "fuspredownloader.app" appear in my Mac startup items which I didn't recognise. Being constantly on high alert for anything new which I wasn't aware of I investigated it's origin. Right click and 'Show in Finder' reveled it was part of the Kies software.

Looking into what it was actually for revleaed the following in Contents\Resources\en.lproj\Credits.rtf

Engineering:
Some people

Human Interface Design:
Some other people

Testing:
Hopefully not nobody

Documentation:
Whoever

With special thanks to:
Mom

So finally it's revealed why the who package is so terrible! Perhaps the team weren't aware this is added by the XCode Project Template by default...

Stop Mac Startup Chime with StartNinja

StartNinja

10 August 2012

Download Source from GitHub and Apply a TortoiseGit Patch


This article is quite a good introduction to GitHub.

I will use Castle.Facilities.NHibernateIntegration as an example. I want to apply these patches to this GitHub repository.
  1. Signup to GitHub
  2. Download and install Git 
  3. Run Git and configure it. If you use the native app you will be guided through setup.
  4. Visit the project page and click 'Clone in WIndows', ZIP or use the Http to get the source.
  5. Download and install tortoisegit
  6. Dowload the patches
  7. Right click the repository folder, select TortoiseGit and Apply patch, then add the patch(es).
  8. Click Apply
  9. Build your project.  

How to change password expiration warning intervals in OS X | MacFixIt - CNET Reviews

How to change password expiration warning intervals in OS X | MacFixIt - CNET Reviews

09 August 2012

Creating a NuGet Package

I was recently doing some work which involved a third party dependency not available via NuGet which required an older version of another package which was available on NuGet repository. Now I could add this third party dependency and the older version of the other package, but if another developer came along and ran the NuGet package manager it wouldn't know about the dependency on the older package, so would happily update to the newer one and break the build.

A simple solution is to ignore NuGet and manually manage it, but there were a lot of references in this particular project and I like the fact that NuGet resolves package dependency which is a headache at the best of times. The solution I used was to create your own NuGet package and host it. As long as you add your package to the repository and it's path as a local cache to the NuGet source on each developer's machine then the inter-dependency should be managed effectively.

Get and API Key from NuGet
  1. Register with http://www.nuget.org
  2. Go to your account to reveal the API key.
Create your package
Via GUI
  1. Create a new package.
  2. Edit the Metadata to add dependencies. To make one a required version (= not >=) put square brackets around the version.
  3. Publish it (File, Publish).
Or Via Command Line:
  1. Source: Locate your dll to use as a NuGet package and creata a folder for the NuGet package creation.
  2. Download and install NuGet and insure you put add it to the Path environment variable: Control Panel, System, Advanced System Settings, Advanced Tab, Environment Variables Tab. I put mine in C:\Program Files (x86)\NuGet.
  3. Allow NuGet to download missing packages during build:
    • In Visual Studio: Tools, Options, Package Manager, tick: 'Allow Nuget to download...'
    • By Setting Environment variable EnableNuGetPackageRestore to true
  4. Read the the official instructions on how to create packages.
  5. Load Nuget and create a new package.
  6. Add stuff to the 'content' directory and other content (see Scott Hanselman's instructions)
  7. This creates the nuspec file. You will need to manually edit his file eg to add dependencies. Note the Version convention e.g.:
    • [version] Square brackets denote fixed version 
    •  (version] mix denotes Less than or equal to
    • version (no brackets) denotes greater than or equal to
    • (version 1, version 2) between versions 1 and 2
    • [version 1, version 2] greater than or equal to 1 and less than or equal to 2
    • empty = latest version
  8. Run the following to create your package:
    nuget pack [dll name].nuspec
  9. Consider publishing your package on NuGet
Add your local package repository to NuGet
Instructions here.