Windows Phone 7 – No “editable” TextBlock

October 16, 2010 5:11 pm

As I’m diving into Windows Phone 7 development and making notes for myself on how WP7 compares to WebOS, I’ve come across one little wrinkle that works really nicely in WebOS (out-of-the-box) and doesn’t work so well in WP7 (out-of-the-box).

I’m talking about a control (actually, a Widget in WebOS) that initially looks like a regular text label, but when you tap on it, it turns into a text box that lets you edit the contained text. WP7 does not have anything like this out-of-the-box. So I decided to create my own.

I made a UserControl that consists of a TextBlock and a TextBox. The TextBox is normally Collapsed (Hidden doesn’t exist on WP7, you’d have to use Opacity=”0″ instead). When the user taps on the TextBlock, it is collapsed and the TextBox is made visible. Once the TextBox loses focus, the reverse happens, and the text from the TextBox is transferred to the TextBlock. Since it can be useful to be able to style the TextBlock and to provide InputScope, I’ve also added a few DependencyProperties to enable that. The code is a little “smelly”, perhaps, because it could be refactored into a proper CustomControl, but what I have so far works well enough for me.

If you want to use it or just have a look, feel free to download the source code for TextBlockEditable.

Windows Phone 7 – Bing Map Phone/Desktop diffs: MapLayer.SetPosition() missing on Phone

October 2, 2010 10:54 pm

If you’re working on a Windows Phone 7 app that uses the Bing Map control, you might be interested in these little differences between the Desktop version and the Phone version of the map control.

1. The Location type on the Phone has no constructor that takes 2 parameters (the Desktop version does). You’ll have to construct a Location object with the default constructor and then set the Latitude and Longitude fields separately.

2. LocationRect also has no constructor that takes 2 parameters. Here you’ll need to do a little more work and assign the North, West, South and East fields appropriately after constructing a LocationRect object with the default constructor.

3. MapLayer has no static function called SetPosition that lets you map Location objects to something appropriate for a MapLayer. Use the regular instance member MapLayer.AddChild() instead.

With these changes, you can make the Desktop sample on the Bing developer site work on a Windows Phone 7 device.

A roundup of news about the new HP TouchSmart 310 and the HP TouchSmart 4.0 software

September 20, 2010 10:16 pm

[Update 2010-09-22: A few more unique mentions have come in; see links and quotes below marked [Update] ]

Only a little vanity post; a collection of links to stories and other potentially interesting tidbits.HP's new TouchSmart 310 all-in-one features a new design and updated TouchSmart software.

These were some of the first mentions of the HP TouchSmart 310 with HP TouchSmart 4.0 software, unveiled on September 20, 2010.

Most of these have no real reviews yet, they just “wordsmith” the press release or other people’s “wordsmithing”. But that won’t stop me from highlighting “good stuff”.

CNet: http://news.cnet.com/8301-17938_105-20016921-1.html

The new case is graceful enough, and the $699 starting price for its low-end AMD CPU and 20-inch display is fair, but the biggest news for this new all-in-one may lie in its software. [My emphasis]

First, HP has tweaked the main TouchSmart software interface to streamline the way you access and organize media and applications using touch. In addition to organizing applications in a carousel layout, now you can also "pin" apps and individual media files to a more dynamic background featuring various parallax-animated environments. HP says this design lets you organize your touch software in a more natural manner, akin to how you might organize a desk.

In addition to the new background, HP has also updated the specific touch applications to the TouchSmart suite, most impressively with a new Marvel Comics streaming service, from which you can buy touch versions of more than 8,000 titles from the Marvel library. That number dwarfs the 500 Marvel titles available from Apple’s iPad application. The Marvel app and the entire TouchSmart suite, dubbed TouchSmart 4.0, will also be available for download by owners of current TouchSmart all-in-ones.

Hot Hardware: http://hothardware.com/News/HP-Debuts-Omni-100-And-TouchSmart-310-AIO-PCs-Along-With-New-tm2-Notebook/

hp-310[1]

ZDNet “The Toy Box”: http://www.zdnet.com/blog/gadgetreviews/hp-rolls-out-omni-100-touchsmart-310-all-in-one-desktops-20-hd-widescreens/18143

VentureBeat: http://venturebeat.com/2010/09/20/hp-launches-fancy-touch-based-desktops-and-an-app-store-for-touch-apps/

The latest software transforms a user’s boring Windows desktop into a “magic canvas,” which appears to be an overlay on top of the computer screen. You swipe your hand across the display to move the transparent overlay. You can drag applications, music, photos, videos and other web content directly onto the overlay. HP refers to these objects as “magnets” since they are just like the magnets you put on your refrigerator with notes attached to them. You can pick multilayered wallpapers to bring the illusion of 3D depth perception to a screen. You can also browse through material via the carousel at the bottom of the screen — all with the touch of a finger.

You can use existing TouchSmart apps such as Twitter, Hulu, Netflix, Recipe Box and the HP Music Store powered by Rhapsody. All of those apps can be started and used via finger taps on the touchscreen. You can use the webcam to film a personalized video message and post it directly to your friend’s Facebook wall.

The HP TouchSmart Apps Center has a small collection of apps available now. You can access them via a TouchSmart Carousel. Some of the apps contain a lot of content, such as the Marvel Comics app and the Cartoon Network app. The Marvel app gives you access to more than 8,000 comics. You can tap on them and read them page by page on a a beautiful high-definition display. The Cartoon Network app offers news updates on shows and characters.

PC Magazine: http://www.pcmag.com/article2/0,2817,2369352,00.asp

The TouchSmart interface is much more advanced than the competition, including Sony, MSI, and Gateway.

TG Daily: http://www.tgdaily.com/hardware-brief/51618-hp-launches-new-much-cheaper-touchsmart

HP has rebuilt its TouchSmart software for the 310 model, making it easier to organize and play back media from the touchscreen, as well as adding enhanced everyday computer applications as well. When the first TouchSmart computer debuted, its touchscreen technology was more of a novelty than anything else. Since then, gadgets like the iPad have made touch more relevant and important than ever, and have shown everyone that it can be a powerful computing tool.

Also added with the new TouchSmart announcement is a deal between HP and Disney to offer digital Marvel comics. TouchSmart users will now be able to stream special versions of classic comics, and then literally thumb through them with on-screen controls. More than 8,000 Marvel titles are available, which HP says is the most extensive digital collection ever offered from any content partner.

HP is also launching a new "app store" interface for touchscreen programs and games, making it easier for developers and consumers to take advantage of the PC’s touch capabilities.

Existing TouchSmart users will also have access to this and the other enhancements being made for the 310, with the release of a sweeping software upgrade. TouchSmart 4.0 will be downloadable for anyone who owns a legacy TouchSmart computer from HP.

Softpedia: http://news.softpedia.com/news/HP-Releases-Three-New-TouchSmart-and-Omnio-PCs-157124.shtml

TechConnect: http://www.tcmagazine.com/tcm/news/hardware/30503/hp-intros-touchsmart-310-and-omni-100-all-one-pcs

Geeky Gadgets: http://www.geeky-gadgets.com/new-hp-touchsmart-310-only-699-20-09-2010/

Waleg: http://www.waleg.com/techgadgets/archives/020976.html

Electronista: http://www.electronista.com/articles/10/09/20/hp.intros.omni.100.touchsmart.310.all.in.one.pcs/

Digital Trends: http://www.digitaltrends.com/computing/hp-touchsmart-310-pc-offers-improved-touch-based-software/

IC Tech News: http://ic-technews.com/laptop/1493-hp-touchsmart-310-priced-at-price-just-699-a-complete-software-redesign

Chip Chick: http://www.chipchick.com/2010/09/hp-touchsmart-apps-center.html

Product Reviews: http://www.product-reviews.net/2010/09/20/new-hp-touchsmart-310-review-specs-and-release-date/

Financial Times: http://blogs.ft.com/techblog/2010/09/touchsmart/

Engadget: http://www.engadget.com/2010/09/20/hp-announces-touchsmart-310-and-omni100-all-in-one-pcs/ [Love all the trolling and spewing of prejudices on this one…]

SlashGear: http://www.slashgear.com/hp-touchsmart-310-omni100-and-touchsmart-tm2-get-official-20103191/

[Update]

GottaBeMobile: http://www.gottabemobile.com/2010/09/22/hp-touchsmart-software-gets-more-touchable/

The Touchsmart’s UI is much more fluid and touch applications are no longer required to run in full screen, offering a little breathing room.The Touchsmart’s UI is much more fluid and touch applications are no longer required to run in full screen, offering a little breathing room.

[…]

The new revision of the software looks like a big improvement compared to what’s on my TouchSmart 600xt, which my wife and I use as our bedroom PC.

eWeek (with Slideshow): http://www.eweek.com/c/a/Desktops-and-Notebooks/HP-Omni-TouchSmart-310-TouchSmart-tm2-Unveiled-175093/

Tom’s Hardware: http://www.tomshardware.com/news/TouchSmart-Omni-HP-All-in-Ones-AIO-touchscreen,11332.html

DesktopReview: http://www.desktopreview.com/default.asp?newsID=1222&Review=HP+TouchSmart+310+Multitouch+all-in-one+First+Look

HP has what appears to be an ingenious solution. After a program is launched, a couple of fingers swivelling across the screen automatically shrink the application into a cube and paste it onto the TouchSmart’s background. The background itself can then be scrolled through, just by touching it anywhere on the screen.

One really cool aspect of engineering the software like this is the parallax effect that HP added to the wallpaper. As you scroll through the desktop, items in the foreground move at a different rate relative to items in the background.

While we didn’t see it demonstrated, an HP rep also mentioned that the TouchSmart will ship with software to generate these movable backgrounds with pictures that customers take. The effect won’t be as strong as the ones included by HP, but being able to customize it even that much is a nice bonus.

Windows Experience Blog: http://windowsteamblog.com/windows/b/windowsexperience/archive/2010/09/21/hp-updates-their-touchsmart-software-amp-all-in-one-pc-lineup.aspx

To couple the new hardware, HP is revving their TouchSmart software to offer a number of new capabilities.  They’re saying that with it, the desktop transforms into a “Magic Canvas” where users can easily drag apps, and content – even web content – directly onto the desktop.  There’s also a new multi-layer wallpaper that gives the machine a lot of depth.  I haven’t had a chance to work with these new features directly, but I have seen a demo and it looks really nice.

[/Update]

A little promo video of the new TouchSmart 4.0 software:

 

Product Marketing Manager Ken Bosley presenting the TouchSmart 4.0 software on YouTube:

 

The HP Video channel with tutorials:

http://h30429.www3.hp.com/?fr_chl=ce319b479b9d330ec6ef5a60bd25d2567c423f97&rf=bm

 

For developers:

TouchSmart 4.0 SDK: http://www.touchsmartdevzone.com/download/3369/HP-TouchSmart-SDK-4.0-English/

And I may have some details to add myself if and when I find the time…

Windows Phone 7 – XAML designer fails to resolve font resources

August 24, 2010 9:55 pm

This evening I was attempting to go through the first lab of the Windows Phone 7 Developer Training Kit and discovered that I couldn’t even finish the first exercise because Visual Studio wouldn’t resolve the resources for the fonts used in the project. Nothing showed up in the XAML designer view, so I couldn’t follow the lab directions. I guess I could have just worked my way around this, but not having the XAML designer work while creating a phone app seems to be a bit of a problem. So I mentioned the situation to a room full of fellow “Learn Windows Phone 7” travelers, and someone (sorry, I don’t remember your name) said “Try a repair on the tools”. An hour later (slow dev box, plus had to download a bunch of stuff to be able to do the repair) and the XAML designer works again!

Along the way, I discovered that the lab exercises solution files show a different icon in Windows Explorer than the ones I create using VS 2010. The reason is that the lab exercise .sln files contain the following line:

# Visual Studio 2010 Express for Windows Phone

which results in this icon image (see the tiny phone next to the “10”?),

whereas the ones I create contain this line instead:

# Visual Studio 2010

which results in this icon image (no tiny phone)

When I open a .sln file with the former line in it, the Express version of VS2010 runs. When I open a .sln file with the latter line in it, the regular version of VS2010 runs. Strange. It seems that the line is just an innocent comment, but apparently not quite. Either way, after repairing the toolset both solution files allow me to work in the XAML designer.

Windows Phone 7 Series – home-roll an offline installer

April 7, 2010 10:51 am

[Update 2010-08-01: The beta version of the phone tools comes with an offline installer ISO image (WPDTBeta_en.iso), so you no longer need these steps.]

[Update 2010-05-05: I originally wrote this for the CTP that worked with VS2010 RC. Now that an updated set of tools has been released to work with VS2010 RTM, the folder name has changed. It is now called 30319.31 as far as I can tell. That is likely to change again for future releases, so just be aware of that. The steps should still work.]

If you have several machines that you want to install the Windows Phone 7 Series developer tools on and don’t want to have to wait for the download on each machine, here’s a little tip for how you can make yourself an “offline” installer:

1. Start with a clean Win 7 machine.

2. Download the web installer (vm_web.exe) from Microsoft and save it to a folder of your choice (let’s say C:\WinPhone7). Start the install.

3. Let the download happen, but when the install itself starts, temporarily cancel it (you can let it finish after step 5).

4. Go to %Temp% using Windows Explorer.

5. Copy the folder 30128.39 to your folder of choice from step 2.

6. Create a Install_WP7_Tools.cmd file containing the following:

xcopy 30128.39 %temp%\30128.39 /I /E
vm_web.exe
pause

7. Copy the folder of choice to a USB storage device.

8. Use the Install_WP7_Tools.cmd file on your other systems. The tools should install and skip most of the downloads quickly.

If you don’t start with a clean Windows 7 machine, the files that the vm_web.exe tool collects in the 30128.39 folder may not contain all the files needed for the install, so you may see a few things extra get downloaded while using the .cmd file on other machines.

On my clean 64-bit Windows 7 machine, I got the following files as part of the toolset:

C:\WinPhone7\30128.39\1033\VM_EXP\Ixpvm.exe
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\dotnetframework\dotNetFx40_Full_x86_x64.exe
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\help\HelpSetup_x64.exe
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\mtpack\NetFx_DTP.cab
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\mtpack\NetFx_DTP.msi
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\rdbg\vs_expbsln_x64_enu.cab
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\rdbg\vs_expbsln_x64_enu.msi
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\silverlight4\Silverlight.4.0_Developer.exe
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\silverlight4\Silverlight4_Tools.exe
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\silverlight4\silverlight_sdk.exe
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\vcruntimes\x64\vc_runtime_x64.cab
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\vcruntimes\x64\vc_runtime_x64.msi
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\watson\dw20shared.msi
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\windowsphone\sde_xde64-enu.cab
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\windowsphone\sde_xde64-enu.msi
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\windowsphone\vs_sdeprolightup-enu.cab
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\windowsphone\vs_sdeprolightup-enu.msi
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\windowsphone\WindowsPhoneDeveloperResources.msi
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\windowsphone\WindowsPhoneExtensions.msi
C:\WinPhone7\30128.39\1033\VM_EXP\wcu\windowsphone\XNAGS40_setup.exe

A total of about 320 MB.

Create a multi-lingual / multi-language MSI using WiX and custom build scripts

March 13, 2010 6:53 pm

Some people might find this useful, so I thought I’d write it up. If you want to create a multi-language MSI (Windows Installer package) that works without a bootstrapper executable, this is one possible way to do it. It relies on an undocumented feature of Windows Installer, so proceed with caution/at your own risk. Testing your final output is a must.

Anyway, according to this article at installsite.org, you can embed transforms into an MSI in a way so that Windows Installer will automatically apply them according to the system language when your MSI is loaded. This is the undocumented feature. If your MSI is simple enough that you don’t need dialog boxes/UI, but you just blaze through a default install, yet you want the few messages that show up by default to be localized, what I’m about to describe might be enough for you.

Here’s what you need: WiX (Windows Installer XML toolset), MsiTran.exe and some sample MSI scripts from the Windows SDK, and finally some custom-written scripts to glue the whole thing together.

I’ll assume you already have WiX installed (possibly in conjunction with Visual Studio), and that you have a simple, single-language WiX project handy.

You can get the Windows SDK from Microsoft as an ISO image (this one is for Windows 7). You can then mount this image using Magic Disc, Daemon Tools Lite or some other ISO-peeking utility. If you don’t want to install the entire SDK just to get the MsiTran.exe and MSI script samples, open the ISO up using your tool of choice and find the folder Setup.

To install just the tools package that will give you the MsiTran.exe, run WinSDKTools\WinSDKTools_x86.msi. MsiTran.exe will be found in %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Bin after this. I suggest copying this file to your WiX installer project folder.

To get the script samples, run the MSI WinSDKSamples\WinSDKSamples_x86.msi. Once you’ve done this, you’ll find the sample scripts in %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\SysMgmt\Msi\scripts. Out of all these scripts you only need WiSubStg.vbs and WiLangId.vbs. I suggest copying them to your WiX installer project folder.

You should know ahead of building the original WiX project which languages and how many languages you’ll end up needing. Your original installer needs to list all of these in a comma separated list in the Summary Stream (and the list can’t contain 0). In WiX that looks like this:

<Package
  Compressed="yes"
  Description="My Installer"
  InstallerVersion="200"
  Comments="My Software Installer"
  Languages="1033,1031,1028,2052,1030,1043,1035,1036,1040,1041,1042,1044,1046,1034,1053,1049,1055,1045,2070"
/>

Once you’ve built the single language MSI using WiX, you run a script for each language you need your MSI localized in that does the following:

  • Copy the original MSI to a new file
  • Modify the newly copied MSI so it contains a different ProductLanguage using WiLangId.vbs
  • Create a transform that captures the difference between the two MSIs using MSITran.exe
  • Embed the transform in the final master installer using WiSubStg.vbs

Here’s the script that does it (I call this CreateEmbedLangTransform.cmd):

set MsiName=%1
set lang=%2
set langcode=%3
copy %MsiName%.msi %MsiName%_%lang%.msi
cscript WiLangId.vbs %MsiName%_%lang%.msi Product %langcode% > CreateLangTransform_%lang%.txt
MsiTran.exe -g %MsiName%.msi %MsiName%_%lang%.msi %lang%.mst >> CreateLangTransform_%lang%.txt
cscript wisubstg.vbs FinalMasterInstaller\%MsiName%.msi %lang%.mst %langcode% >> CreateLangTransform_%lang%.txt
cscript wisubstg.vbs FinalMasterInstaller\%MsiName%.msi >> CreateLangTransform_%lang%.txt

All you have to do as a post-build step (either in Visual Studio or as part of your build engine of choice) is call this script once for each language you’re interested in (I call this CreateLocalizedInstallerAllLanguages.cmd):

if not exist FinalMasterInstaller md FinalMasterInstaller
copy MyInstaller.msi FinalMasterInstaller
call CreateEmbedLangTransform.cmd MyInstaller da 1030
call CreateEmbedLangTransform.cmd MyInstaller de 1031
call CreateEmbedLangTransform.cmd MyInstaller es 1034
call CreateEmbedLangTransform.cmd MyInstaller fi 1035
call CreateEmbedLangTransform.cmd MyInstaller fr 1036
call CreateEmbedLangTransform.cmd MyInstaller it 1040
call CreateEmbedLangTransform.cmd MyInstaller jp 1041
call CreateEmbedLangTransform.cmd MyInstaller ko 1042
call CreateEmbedLangTransform.cmd MyInstaller nl 1043
call CreateEmbedLangTransform.cmd MyInstaller no 1044
call CreateEmbedLangTransform.cmd MyInstaller pt_br 1046
call CreateEmbedLangTransform.cmd MyInstaller sv 1053
call CreateEmbedLangTransform.cmd MyInstaller zh_cn 2052
call CreateEmbedLangTransform.cmd MyInstaller zh_tw 1028
call CreateEmbedLangTransform.cmd MyInstaller ru 1049
call CreateEmbedLangTransform.cmd MyInstaller tr 1055
call CreateEmbedLangTransform.cmd MyInstaller pl 1045
call CreateEmbedLangTransform.cmd MyInstaller pt_pt 2070

You’ll need to look up additional language codes in Microsoft’s documentation if you need more than the ones listed above.

Note that I’ve modified the scripts above from the ones I’m actually using to make them a little more generic, and I haven’t tested every aspect of them, but they give you the gist of it.

Here are the script files zipped up.

Thoughts about Linchpin

January 15, 2010 8:59 am

I’ve just finished my second reading of Seth Godin’s forthcoming book, Linchpin. Seth gave a group of people the opportunity to make a donation to the Acumen fund and in return we received a copy of the book before its public ”ship date” on the 26th of this month.

Photo of Linchpin book saddle

Linchpin is at its core a self-help book. It’s meant to help you realize that if you want a shot at being indispensable, in whatever human realm (but mostly at work), you have to make some hard choices in your life. The reasoning for this takes you on a brief tour of economic systems, psychology, neuroscience and societal systems, including the education system.

You’ll read about Karl Marx, Friedrich Engels and Adam Smith and how a system is emerging that leaves an opening for a new role in economic systems: so-called “linchpins,” people who don’t need access to capital in the traditional sense, whose contributions are difficult to make interchangeable/replaceable and who make these contributions for the sake of contributing, not for the sake of making money. Making money, argues Godin, comes as a byproduct of the contribution that a linchpin makes. In a way, part of this book is about how the emerging global economic situation is made up of Communism and Capitalism remixed. And the best (perhaps the only) way to get by in this emerging system is to become a linchpin - an artist who gives of his or her creativity, ingenuity and humanness freely without desire for reciprocation. Linchpins are intrinsically motivated.

The self-help aspect of the book is that Seth is trying to convince you that this is the kind of role YOU want to play, because doing otherwise is a dead-end in the system that’s now emerging worldwide. Seth’s reasons for wanting you to become a linchpin are well-meaning and honest. He’s attempting to give you the best advice he can, based on the way he sees things unfolding right now. It’s hard to accurately summarize what the book says constitutes the behaviors and attitudes of a linchpin, and it would probably diminish the experience of reading the book. There are plenty of examples and inspiring stories in the book, and they make for really interesting reading.

At times it feels like the book is a collection of somewhat distantly related blog post blurbs, woven together loosely by a few underlying threads. It’s a little hard to follow at times, keeping up with the jumps and turns, and maybe this is just a logical consequence of Seth frequently sharing a lot of his thoughts in blog post format. It’s become his style. That doesn’t make the underlying threads any less important, though.

In a way, the case for the linchpin idea is made with a hermetically sealed argument. If you want to argue that the idea won’t work for you, the book has the counter-argument ready that this is your “lizard brain” speaking. It is the most ancient part of the brain (speaking in terms of evolutionary age), the part that is most concerned with survival and basic biological functions. Given the chance, your lizard brain will win over the more developed, more “recent” parts of your consciousness. It takes hard work and tricks to overcome the resistance that the lizard brain represents. The book takes a long, hard look at all that. In fact the book says that your lizard brain hates it when you read books like Linchpin.

I have no doubt that the book is spot on in saying that we don’t need more things cheaper, faster and more average. We’ve lived in a system focused on that for only a short time (a couple of generations), but it seems like forever (we have bad memory). We’re ready for getting back to outstanding things. Art that moves us, makes us feel connected, builds us up, helps us form new tribes. We’re hungry for real, human interactions, ready for forming new bonds with people in whatever way that might happen. We’re tired of the simple exchange, the transaction that leaves us distanced from each other. We look for ways to get more involved, to matter to each other. Linchpin shows us how, by encouraging us to bring all of ourselves into each part of our lives, at work and at home (but it’s mostly about work).

That being said, I don’t think everyone can be a linchpin. All large systems (ecosystems, societies, companies) have hierarchies and layers. Ecosystems, for example, have tons of species that are needed “below” to feed the outstanding species at the top. I think it’s similar in the workplace. And in a way, the book has an answer for that. Nobody is a linchpin all the time. Even the most successful people spend most of their time doing ordinary things. It’s the moments of extraordinary acts that make them linchpins.

I also think that the road to becoming a linchpin is long and hard. The “resistance” can’t be overcome “suddenly.” It’s a slow learning process. In fact, the book argues that the best way to beat the resistance is to slowly try to build a platform that looks “harmless” to the resistance, so that when you’re finally ready to take the leap, you have a network of “friendlies” that are ready to see what you have to give. A lot of the arguments the book makes depend on an assumed network that supports linchpins. For example, you shouldn’t be afraid of getting fired for breaking rules, because it will be obvious to others that you have linchpin characteristics, and they will hire you in a heartbeat. This requires that you’re well-kown. The hard part is getting noticed. The Internet accelerates the “race to the bottom” (outsourcing, standardization, commoditization) and at the same time makes it harder to be remarkable because you have to stand out among a vastly bigger crowd. Seth says you don’t have to be an outlier (probably in the Malcolm Gladwell sense) to become a linchpin, but it seems to me that somehow you do, at least a little bit. Maybe not an outlier in a “global” sense, like a world-famous movie star or musician, but certainly in your local environment.

Linchpin encourages everyone to contribute “art,” saying that it’s the only thing that is hard to commoditize. I wonder if a flooding of the marketplace with “art” won’t commoditize it somehow anyway. Another question in my mind is how today’s megacorporations can become more human, more remarkable? It certainly isn’t going to happen overnight. There’s a lot of inertia in big systems. I suppose the only thing to do is to focus on “art” that’s within your grasp, and slowly build from there.

My own attempt at this (giving things away through this blog) have so far been – how do I put it - interesting. Interesting in the sense that I have given things to people without expecting anything in return, and in specific instances where personal contact was involved, haven’t even gotten back a “thank you.” Maybe what I’m capable of giving away online is not “art” enough. Maybe I have made it too hard to receive.

To me, Linchpin is a perfect specimen of a self-help book, because you really have to do it all yourself. Nobody can help you. Want to make artful gifts, as the book argues linchpins do? You have to figure out what your art is. Want some help figuring it out? Sorry, there is no map (not entirely true; there are seven characteristics a linchpin exhibits, but you still have to figure out how to apply them to yourself or how to develop them). Hesitant to start? That’s your lizard brain holding you back.

100000 Views – Thank You!

December 25, 2009 12:01 am

A while ago (around December 3, 2009) this blog passed the 100,000 views mark. A milestone for any blog, so I thought I’d show you some of the stats from around that time:

100000_views_100024_crop 
Proof that it happened. 100024 views.

100000_views_days_crop
Daily stats leading up to 100000 views.

100000_views_weeks_crop  
Weekly stats leading up to 100000 views.

100000_views_months_crop
Blog stats all the way from the beginning to 100000 views.

People usually reflect on what got them to 100000 views. I guess for me it’s been my involvement with the community site that is connected with the TouchSmart PC. I’ve posted some things here specifically in response to stuff that happened on the community site. As you can see from the dip above, my blog is not particularly popular just for its own sake. It’s usually when something big happens around a release of TouchSmart that people start looking.

Here’s a list of the top posts in case you are into that kind of stats:

Top_posts_crop 

For some reason people like to read about my experience with Crossloop. Whoda thunk?

Anyway, no matter what prompted you to pay a visit – thank you!

And Merry Christmas!

HP TouchSmart SDK 3.0 – Giveaways at PDC 09

November 17, 2009 9:00 am

To mark the release of the TouchSmart 3.0 SDK, HP has a goodie to give away at the Microsoft PDC 09: A super-slim 2 GB USB memory stick (embedded in a hard-plastic business card with a nice imprint). It contains the new SDK and a few documents about a software development partner program HP is starting.

If you see me at PDC, say hi, and I may be able to hand you one of these puppies. I only have a limited supply, though. 15 to be precise.

Check out the pictures:

IMG_3135

Front of the card

 

IMG_3136

Back of the card

 

IMG_3137

Back of the card with USB memory stick flipped open/out

 

IMG_3138 

Front of the card with USB memory stick flipped open/out

New SDK for HP TouchSmart software development – out now!

November 16, 2009 8:30 am

TS3SDK01

Today HP is announcing a new Software Development Kit for helping you write apps that play well in the HP TouchSmart “shell” environment. The new SDK still contains the general guidelines that outline both what makes a good app that’s optimized for touch interaction and the general rules you have to play by in order to “fit” into the HP TouchSmart shell.

But this time around there’s more: For the first time there is also documentation for a WPF library that you can use to more quickly write an app that heeds all of the rules that need to be followed. This library has actually existed for a few releases already, but it was not documented until now (for HP TouchSmart 3.0).

There are also two sample applications. One that demonstrates the basics of the WPF library (and that shows you what the shell does to the apps on a pretty detailed level – it’s great for seeing what registered messages are sent to the app, how the app gets sized, etc.) and one that’s a little game. To round out things, there’s some skeleton sample app code as well, so you can get started quickly with your app idea.

Here are a few screenshots of the two sample apps:

TS3SDK03

“Hello world” Wide-interactive tile

 

TS3SDK08

“Hello world” Large tile

 

TS3SDK10

Notification with CircleX icon

 

TS3SDK11

Notification with CircleCheck icon

 

TS3SDK02 

“Hello Mole” Wide-interactive tile

 

The documentation is provided in two forms: PDF for easy printing and reading offline as well as in Windows Help format for easy searching and looking at class library details.

You’ll notice that most of this only applies to WPF development. If you’re not using WPF yet (why aren’t you? – it’s a great platform), the general guidelines still apply and work. The shell is actually technology agnostic, since all it cares about, really, is the window (handle) your app produces. As long as your technology stack produces a Win32 window, you can “play”. The essence of that is something I’ve talked about before.

So where can you get this newfangled contraption? Head right over to http://www.touchsmartdevzone.com/download/file/2074-27 to start downloading. There’s still a license agreement in the installer (to make the lawyers happy), but I believe you can now download the thing without having to consent to the agreement first.

Stop SOPA