I went to fire up Remote Desktop on my home PC on Wednesday and was greeted with this unusual error:
"The procedure entry point could not be located in the dynamic link library C:\windows\System32\WINMM.dll"
(Yes, there's an extra space between 'point' and 'could' – I think that's where the name of the entry point would normally be displayed). Taking a screenshot was quite tricky as even Paint refused to start, but I managed to get the Snipping Tool to save a .png (despite a few error along the way)
Very odd, as I had used RDP a few days earlier, and most other things still worked fine (launching IE etc).
Using the Windows 8 keyboard shortcut of Win-X and choosing the 'Command Prompt (Admin)' resulted in "File system error (-1073741511)"
This is not looking good. I could use the Refresh option but the downside of that is that you need to reinstall all your non Store apps. So I thought I'd try some of the other options before resorting to this.
First up, I brought up the Advanced Startup Options menu by Choosing 'Restart' and hold down 'Shift' key.
After reading Fixing component store corruption in Windows 8 and Windows Server 2012, I tried running
DISM /Online /Cleanup-Image /RestoreHealth
But that failed with:
Error 0x800f0906 The source files could not be downloaded
This might be because this PC uses a Wireless USB NIC which doesn't get enabled when running in safe mode?
I then mounted the Windows 8 .iso and re-ran DISM with /source:i:\sources\SxS option, but surprisingly that failed too.
Next, I found a network cable, and rebooted to Safe Mode with Networking, and ran DISM again.. but no luck
Then I tried sfc /scannow
This reported corruption that was it unable to repair.
I had a bit more success using the PowerShell cmdlet Repair-WindowsImage -RestoreHealth and using the -Sources argument to point it to the Windows folder on my laptop (I'd shared this folder). That seemed to update some of the SxS files, but didn't fix the actual problem.
Back to the Advanced Startup Options to Choosing System Restore. I selected the restore item, but that failed because there was a problem with it!
Finally, I went back to the Advanced Startup Options and chose the Command Prompt option. This is the one that brings up the command prompt and sets the current directory to X:\Windows\System32. I decided to give SFC one more try, but this time using the offline options. I first ran diskpart and then "list volume", which told me that the boot drive (the one with the name 'System Reserved' was C: and my Windows drive was E:.
I then ran:
SFC /SCANNOW /OFFBOOTDIR=C: /OFFWINDIR=E:\Windows
This ran for about 10 minutes and then reported it had successfully fixed some corrupted files.
For good measure, I then ran a CHKDSK and then re-ran the SFC command. This time it reported not finding any errors.
Rebooting and FINALLY(!) it looks like everything is working ok again.
Now to make a good restore point and ensure I have better backups in place in case this happens again. Not sure what the cause was – I'll have to keep an eye on the hardware incase it's an SSD on the way out.
A nice feature of the Gigaset C610 IP phone that we use at home is that you can choose various information services to display on the handset, including during 'screen saver' mode. The default services include the normal news, sport and weather, but as I've noted before, the weather data these services use is invariably quite different to that published by the Australian Bureau of Meteorology (and invariably quite different to what I see out the window).
As it turns out these services are customisable. You can add your own RSS feeds in via a web interface. The BoM doesn't provide such RSS feeds, and the only existing ones I could find were too detailed to be useful on a very small screen.
So I decided to find out what it would take to grab the forecast data from the BoM and massage it into an RSS feed suitable for displaying on a very compact display. I also thought it was a good chance to try out some shiny new things along the way. In particular ASP.NET Web API to produce the RSS feed and Windows Azure Websites to host the service.
The results of my efforts can be viewed at - http://gardiner-weather.azurewebsites.net. It's a very basic landing page for the service which lists what areas of Australia are currently supported (eg. only those states for which the Bureau provides XML data). Did I mention it's very basic?
The feed I'm using for my phone is this one - http://gardiner-weather.azurewebsites.net/api/forecast/SA/Adelaide
Now all we need to do is to glance at the handset and we'll immediately know the latest weather forecast for today and tomorrow!
Configuring your Gigaset C610
- Log in to your Gigaset's web page:
- Go to the Settings | Info Services section
- Click on the www.gigaset.net/myaccount link and go to the Screensaver tab
- Select the 'News' row and click on the 'Edit' link. Select 'Favourites' from the dropdown and give your weather feed a name and paste in the URL to the RSS feed.
- Click on 'Save' and your settings should soon take effect on your handset.
Here's a summary of the talk I did at the Adelaide SQL Server User Group last week. Most of the talk was a demo (only a couple of PowerPoint slides) so hopefully this is a useful reference for those who attended.
Intro to SSDT
- Evolution of DataDude
- The new way of shipping BIDS
- Ships with SQL Server 2012 and Visual Studio 2012
- Replaces 'Database Projects' from previous versions
- Updates every 4-6 months (in time for SQL Azure updates)
- Ships with VS 2012 and with SQL 2012
- Free tool - use VS shell or integrate with existing
- Will update frequently to keep up with SQL Azure features
- SQL Server Object Explorer
- Connect to local or Azure
- Execution Plans
- Client stats
- Database projects
- Edition-aware targeting (project properties)
- Can switch to azure to check if database is compatible with azure
- Table designer/code view
- Demo deleting a column
- Can see errors (even before building) of related objects (eg. Views) that reference column
- Build creates a 'dacpac' (Data-tier Application Package)
- 'Upgrade data-tier application' from SMSS
- Declarative model
- 'Create New Project' via SQL Server Object Explorer
- F5 builds and deploys database to localdb
- Import .sql files
- Code analysis
- Connected, Project, dacpac or snapshot
- Update changes (defaults to not losing data)
- Expand wildcards to column names - SELECT *
- Semantic refactoring through model - not just find/replace
- Go to Reference, Find all references
- Via SQL script
- C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe
"c:\Program Files (x86)\Microsoft SQL Server\110\dac\bin\SqlPackage.exe" /action:driftreport /tsn:.\sql2012
- Right-click on stored proc to create unit tests
3rd Party Integration and extensions
- Red Gate SQL Compare (beta)
- Version control
- Laan SQL Formatter (soon)
I am blessed with a wonderful family and friends. It was my birthday this week, and Narelle cooked a very yummy birthday tea. Pasty slice (see below) followed by baked cheesecake if you were wondering.
My sister surprised me with a present that included jars of Spring Gully pickled onions and sweet spiced gherkin rounds. This is special because not only do I like gherkins (like pickles for American readers) and pickled onions, but the Spring Gully company has been in the news this week as they were placed under administration. I hope they can turn the business around and these jars don't become collectors items.
My friend Andrew also has a creative streak. The Star Wars storm trooper mug was part of his present. To top the night off we had two unexpected guests drop in just in time for the birthday cake, one of whom is on a flying visit from overseas.
On a sad note, I came home the next day from work to discover that one packet of Iced Vo Vo biscuits (also a present) had already been eaten by some little "mice". That's the trouble with having your birthday in the middle of school holidays I guess.
Nanna Jean's Pasty Slice
- 1lb mince
- 1lb potatoes
- 1 big carrot
- 2 onions
- Grate the vegies
Nanna Jean passed away in 2009, but a few years earlier I'd asked her for the recipe for her pasty slice that I enjoyed so much. The above notes are all that I wrote down. Not very complicated. The pastry ends up like a pie crust, with the filling in the middle. Yum.
Today just happens to be T-SQL Tuesday, and this month's question is "how did you come to love presenting?"
The first time I presented in front of a group? hmm that's a tough question. Actually now that I think about it, it might have been the first time I did the kids' story as a young teenager teaching Sunday School. Keeping the attention of 5 year olds is a tough gig, but I must have done ok as that's something I still enjoy doing to this day. Sunday school, youth groups, camps, church conferences – they all gave me opportunities to try out "being up the front".
Moving more to the IT-side of things, getting opportunities to present at local user groups and events has definitely been a highlight. The last couple of years I've also been able to work in and present at the hands-on-labs at Microsoft's TechEd conferences, which is great fun.
One great thing about presenting is that it can be a two-way street. Sometimes you end up learning just as much from those you're presenting to as you hope they did from you.
Speaking of presenting, it's nice to be able to get back to the Adelaide SQL User Group next week and present on SQL Server Data Tools. It's something I've been using a bit lately and thought it would be of interest to others too. I've been involved with this group since it first started years ago, but for the last 12 months or so I've been unable to make the Wednesday timeslot in person due to some family commitments, so I'll be looking forward to catching up with some old friends.
If you're free next Wednesday lunchtime, feel free to register and come along. It would be great to see you!