Archive for the 'Microsoft' category



26
Jan

What being open means to Apple & Microsoft

Apple

Former Apple engineer Jens Alfke believes Apple's external image has been polished until featureless. The restrictive staff blogging policies, the veil of secrecy around future plans and a carefully orchestrated three-person spokes-team of Jobs, Schiller and Ive lead to a very impersonal closed business.

It certainly wasn't always this way. The original Mac team appeared in Rolling Stone magazine with credit in about boxes, a practice that was continued at NeXT but abolished by Mac OS X Beta. Jobs makes regular comparisons between engineers and artists and touted individual thinking in the Think Different campaign and artists like recognition with signatures on art and credits on film.

Conversely Apple's Mac OS X operating system is built on open software and standards. The kernel is derived from open elements bundled up as Darwin which Apple provides back along with compilers, debug tools, programming language, command line tools, Bonjour, device driver kit and a bunch of drivers. All are open.

The web rendering technology in Safari (WebKit based on KHTML) is also open and changes rolled back to the communities often reveal unannounced insights into Apple's plans (e.g. Safari for Windows).

And yet how many engineers write or talk about Apple? Do you know the names of any product managers? Could you find any out with Google? (LinkedIn doesn't count ;-)

These aren't academic questions, what if you have a great idea for a feature you'd like to see added? How can you discuss how a product could evolve to fit your needs? What about a simple bug report or advanced access to technology? (The answers are "send it to feedback@apple.com and don't hold your breath", "you can't" and "join the developer program")

Heaven forbid you do actually find out what their plans might be - you could find yourself talking to their lawyers like the ill-fated ThinkSecret site that featured rumors, speculation and the occasional insider info.

Microsoft

Jens makes a passing mention to Microsoft's relaxed blogging policies.

Microsoft is a company that rarely provides the source, never ships or builds upon existing free software and yet not only discusses plans and roadmaps but actively solicits feedback in the design process through conferences, user groups, forums, mailing lists and even on-site review teams. Employees such as Scott Guthrie and Brad Abrams have become quite well known within .NET communities often being the first to break announcements and provide quick feedback through their blogs.

The centre of this effort is engineering thanks to sites like Channel 9 providing regular interviews, Microsoft Research providing experiments to play with and CodePlex hosting open projects.

But they aren't the only ones reaching out.

Microsoft's HR & recruiting team and individuals are also putting up interesting insights and thoughts on how the company operates and head of the Xbox Live! is so active in this area that the name Major Nelson is known to any serious 360 owner.

Being open

How strange that Apple embraces open technologies yet keeps communication closed and Microsoft's technologies are still quite closed yet communication is very much open.

What does it mean to be open and where will each company's approach lead them?

[)amien

17
Dec

When SQL Server replication eats disk space

Part of my job involves revising our SQL Server architecture. My plan includes the addition of a read-only reporting SQL pair for non-critical enquiries and reports. This allows the heavy and unpredictable load from reporting away from from the primary SQL pair responsible for critical operations (shipping orders).

We utilised SQL Server's publisher-subscriber replication on the required databases which, given their legacy nature, had some cross-database dependencies that were added without due consideration.

The reporting SQL pair needed to be rebuilt so the subscriptions were removed whilst they were being rebuilt. Within three days our primary servers were out of disk space and we had a problem that needed to be solved quickly.

Our first step was to remove the new publications. This released a small amount of space in the distribution database (now 100GB) and allowed the replicated databases logs to be truncated and shrunk. We now had a little breathing room.

One publication would not remove in a reasonable time (10+ hours) and even trying to remove individual articles caused a slow-running operation sat on PAGEIOLATCH_SH (which Microsoft describe as waiting on disk IO). A quick investigation revealed a complex query on internal system tables with no indexes - presumably for fast insert performance.
In the mean-time this slow-running operation would block the replication agents which are also used by IBM's DataMirror product to replicate data back to the iSeries (AS/400) in real time. This blocking would prevent us shipping orders and was therefore unacceptable.

The database in question is a home-grown data warehousing application rebuilt each night and on reflection was a terrible idea to replicate using this method. Each night it generated over twice it's own size in replication activity. Given we have a 72 hour replication retention and the size of the database that alone was enough to wipe out the disk space on our server within 3 days.

Reinitialize All Subscriptions was the magic bullet which ran in just a minute allowing the publication to be subsequently instantly deleted. The replicated databases transaction logs were then truncated and shrunk giving us ample breathing space on the storage front.

The distribution database was still huge but heading into Replication Monitor's Common Jobs and starting the Distribution clean up: distribution job was our final step.

The job might take all day but did not block any other replication activity :)

[)amien

09
Nov

SQL Server replication blocking on cleanup job

For some time my primary workplace has been having a problem with SQL Server replication delaying for several minutes at a time which is surprising given the 12GB of RAM and quad processor hardware behind it.

Activity Monitor showed a number of processes on the distribution database used for SQL Server's replication were blocked by another process which was in turn blocked by a SQL Agent - TSQL Job executing on the distribution database.

This process's job GUID that did not match any of our jobs and appeared to be an internal job that regularly executes:

EXEC dbo.sp_MSdistribution_cleanup @min_distretention = 0, @max_disretention = 32760

This would sit on the PAGEIOLATCH_SH status for over 10 minutes at a time most most likely because it was operating on an MSrepl_commands table with 3.4 million records and a MSrepl_transactions table of 600k records.

The default max_disretention is 72 (hours) and specifies how long to hold the replication history for. This means if a subscriber is down for longer than this period it will loose transactions.

Quite how this system obtained the value 32760 (3.7 years) is a bit of a mystery and I'm assuming that it actually uses a lower value as there have been more than 3.4 million updates in that period.

Setting this value to 84 hours (3.5 days) in Management Studio's Replication > Distributor Properties > Transaction Retention soon dropped those large MS tables down to 406 records and 300 respectively and resulted in sp_MSdistribution_cleanup executing in a couple of seconds.

It's a very specific scenario but perhaps this blog post will be of use to somebody else!

[)amien

08
Nov

Windows Live Writer on Windows x64

This article is now out of date and a x64 compatible installer can be found at the Windows Live! Writer home page.

Windows Live Writer has finally been released but refuses to install on Windows x64 (64-bit) despite the promises made in the release notes of the previous beta. In fact it has an incredibly confusing installer.

This is especially annoying considering it's such a great tool and that the new version finally supports a UK spell checker.

[)amien

27
Oct

Returned from Redmond

It's been an overwhelming few days listening and interacting with bright people from the .NET community and within Microsoft itself (wish I could say more but I can't). Here are just a few of those names, I wish I knew them all but I was so busy listening to what they had to say I often forgot to ask for a card:

And from the Microsoft side of the fence

Congratulations go out to Rob Conery who is now getting paid by Microsoft to work on SubSonic!

How cool is that!

[)amien

12
Oct

Heading to Redmond

I've been invited out to Microsoft HQ for a couple of days (October 22-23) which should be very interesting - more details on the what, why and how at a later date.

I will also be spending an extra day and a half in Seattle, perhaps taking in some of the sights of and maybe meeting up with a couple of on-line contacts for the first time.

Flights & hotel booked, now where I did put my passport...

The event was a Software Design Review for Microsoft's ASP.NET 3.5 Extensions including MVC. Twenty-four of us gave our thoughts, feelings and opinions to the teams on how we believe we would or could utilise various aspects.

[)amien

06
Sep

Confusing co-workers, family and friends for fun

Everybody enjoys a good laugh and there are some fun simple things that can confuse your co-workers, family or friends for a few minutes.

Here's a few tricks that may... or may not cause some amusement. Just make sure you step in before they need to call their IT support guy!

Simulated operating system crash

An operating system crash sends a shiver up the most confident of spines.

Windows Blue Screen of Death

Install the SysInternals teams BlueScreen Screen Saver complete with genuine looking reboot sequence.

Mac OS X Kernel Panic

Try out Doomlaser's Kernel Panic Screensaver although be prepared for genuine confusion at their first exposure to an operating system crash ;-)

Confused keyboard

If they are a hunt-and-peck typist confuse them by swapping a few keys around on their keyboard (make sure it lets you pull the tops off, some of them don't and leaving them with a broken keyboard isn't fun at all).

An alternative if the keyboard doesn't allow you to remove the key tops or if they're a touch-typist is to change the keyboard map to one similar but not the same. Favourites include US for Brits and and British for Americans if you want something very subtle that may take a few hours to be noticed (when they hit some symbols, pound signs etc.) or German for something a bit quicker (W and Z reversed).

Head to the Windows Control Panel or Mac System Preferences to activate.

Permanent hourglass (Windows)

A simple trick that just involves heading into Control Panel > Mouse Properties then choosing the Pointers tab and double clicking on Normal Select. From there choose hourglas.ani

Google goes abroad

Google remembers which language you you last used so simply head to something like http://www.google.com/ru (Russian), http://www.google.com/cy (Welsh) or http://www.google.com/fr (French) then close the Window and walk away.

Any further visits will show in that language, even searches made from the built-in boxes of Internet Explorer and Firefox. To set back head to http://www.google.com/en (English) or whatever language you normally use.

Swap short cuts (Windows)

Choose properties on either the desktop, start-menu or quick launch icon they use to launch their favourite applications and change the target to a different but perhaps similar application. i.e. iTunes and Windows Media, Word and WordPad, Excel and PowerPoint. They'll probably think they hit the wrong icon or that something has messed up the file associations.

Change the display gamma

Head into Control Panel > Display (Windows) or System Preferences > Display (Mac) and adjust the gamma or colour profile for their display. No amount of fiddling with the displays brightness or contrast settings will get it quite back to how it was.

Jeff Atwood has futher suggestions for people who don't lock their machines. Remember kids, Windows Key + L is your friend.

[)amien

02
Aug

Windows Mobile 6 on the HTC TyTN with a Mac

Windows Mobile 6 on the HTC TyTNIt's been a while coming but HTC have announced Windows Mobile 6 for the TyTN (Hermes, Dopod 838Pro, iMate JASJAM , SoftBank X01HT).

Curiously the update isn't available on their site yet despite the announcement however the enterprising folks at XDA Developers Forums have made the official HTC versions available for download.

Upgrade process

The Windows-only (crack out Parallels) upgrade process didn't go too smoothly, perhaps because I'd been running an unofficial pre-release version.

The first two attempts failed despite following the instructions to the letter. On the third attempt I left it on the familiar red-green-blue boot-screen a previous attempt had left it on and just ignored all the on-screen instructions and it flashed just fine.

Sync on the Mac

There is no official Windows Mobile sync software available on the Mac however Missing Sync for Windows Mobile is a capable, if somewhat temperamental, solution.

Version 4 is required for Windows Mobile 6 compatibility and is capable of syncing files, music, notes, bookmarks and photos as well as the expected contacts and calendars.

The initial problem is getting the Bluetooth to start syncing is a bit of a nightmare. The best advice is if it fails to do anything when you try to sync then delete both ends of the Bluetooth pair, reboot the Mac and follow the help instructions again.

Calendar sync problems

Everything was now syncing nicely with the exception of the iCal entries. The log gives the cryptic error:

Mark/Space Calendar Events: NSInvalidArgumentException [ISyncConjunctionFilter shouldApplyRecord:withRecordIdentifier:]: the record com.apple.syncservices:0845AD5F-A4C7-48D3-B1D3-B5809C9D000E should have an entity name, but instead it is {}

Over in iCal I couldn't find anything looking corrupt but a quick Back up Database... followed by a Restore Database Backup... took care of it.

[)amien




Feed subscription

Blog topics