Thursday, April 29, 2010

Solar Panel Installation – We’re cooking with Solar!

IMG_1639

We’ve taken the plunge and have gone solar, having in the that past week or so solar panels installed. What with the rebate from Southern California Edison, the Federal Tax Credit and increase to the house’s value, it’s a med-long term investment that just made sense. For the price of a hybrid (which I’ve had since 2004 ;) we’re now going to be generating 80-90% of our own electricity!

Hat’s off to SunPacific Solar Electric (http://sunpacificsolar.net/). From the no hard/pressure sales (Thank you Dan!) to the direct partner involvement (Thank you Jay and Tom) to the outstanding installers (Thank you Nic and Connor) all I have are good things to say about them… They are a small firm, and we were their first Simi Valley installation, but neither showed nor mattered. It was as if they were a “big boy” in their offerings, professionalism and approach, yet they still had the personal feel smaller firms seem to have.

Here’s a quick YouTube video of the before, during and after (my first YouTube video by the way… ;). Of course, with the required video of the electric meter spinning backward…

(Direct link if the above embedded isn’t working)

BTW, since we’ve been online today (in test mode, finally inspection should be tomorrow) we’ve already generated 10kw of electricity. How awesome is that! :)

Reach out and touch your PowerPoint - pptPlex updated, says hello to PowerPoint 2010 and Windows 7 Multitouch

Microsoft Office Labs - pptPlex now supports PowerPoint 2010!

“Today we posted an update to pptPlex that has two changes:  it now works with PowerPoint 2010 and supports multi-touch in Windows 7!

Even though we officially stopped working on pptPlex quite a while ago, you've probably noticed that we still play with it in our free time (for example, controlling presentations with a Wii controller and a 3D camera).  We noticed that pptPlex wasn't working with PowerPoint 2010, so we took some time to get it working with the latest version of PowerPoint.

Today’s update fixes a few compatibility bugs with PowerPoint 2010, but it also includes an important user experience change with regard to sections.

Multi-touch in Windows 7

The second major change in today's update is support for multi-touch in Windows 7.  If you are running Windows 7 on a computer that supports multi-touch, pptPlex will support several gestures when presenting, including:

                Pinch to zoom

                Swipe to go to next/previous slide

                Tap to zoom

                Two-fingered tap to zoom out

image

…”

Cool…

 

Related Past Post XRef:
A new PowerPoint, same as the old PowerPoint… But cooler with pptPlex (Think “Zooming through your Presentation” or “Goodbye to Slide Shows, Hello Zoom Shows”)

LINQ to GPU (with Brahma)

Brahma

What is Brahma?

Brahma is an open-source library written for the .NET 3.5 framework (in C# 3.0), to provide high-level access to parallel streaming computations on a variety of processors.

Please note at while at this time Brahma has a GPU provider (and its focus is GPGPU), it can be adapted to run on any kind of processor.

What can I do with Brahma?

Brahma 2.0 uses C# 3.0's new LINQ syntax to specify streaming transformation of data. Using Brahma, you can mix statements that run on the GPU and statements that run on the CPU inside a single method! With absolutely no glue code required, a complex multipass GPU computation with intervening CPU operations can be performed with just a few lines of code. All the glue and shader code required is automatically generated by Brahma. All you need to do is write high-level .NET code

image

…”

Come on, you know writing LINQ statements that use the power of your GPU appeals to your inner dev-geek

(via Tales from a Trading Desk - LINQ-to-GPU)

 

Related Past Post XRef:
LINQ To BitTorrent Provider [Must resist inserting humorous statement here]
Learning to LINQ, provider that is – Writing a LINQ To Wikipedia provider walkthrough
LINQ to * – Cool lists of LINQ links

Wednesday, April 28, 2010

Windows Live Writer Facebook “Like” Plug-in

Guy Burstein's Blog - Facebook Like Button Windows Live Writer Plugin

“With all the Buzz around Facebook Like Button, I wanted to include it in my blog posts using a Windows Live Writer Plugin. Since I didn’t find any, I decided to create my own Facebook Like Button Windows Live Writer Plugin.

image

…”

Interesting… I’m not sure I’m going to jump in on this plugin for my posts, but that doesn’t mean I don’t think it isn’t cool… :)

(Why am I not? I’ve run into page load performance issues with with some plugins like this. Were due to the number of posts on my home page, with each one calling home for each post on the page… well it wasn’t pretty.)

(via .NYC - LiveWriter Likes Facebook Like – See the pretty faces of who likes you!)

Internet Archive – an eBook Treasure House

I was led to the Internet Archive (archive.org) , which you may know as the “Way Back Machine”, by this blog post UsableMarkets - Graphic Presentation, the book (the blog post and referenced book are interesting… Funny how we can learn better PowerPoint/graphing from a time before computers…) today.

I didn’t realize that so many free eBooks could be found here.

Let’s start with looking at a book’s landing page. Check out the Graphic Presentation book, Internet Archive - Graphic presentation (1939)

image

On the left, do you see all the different formats you can get this book in? Online, PDF, Text, Kindle, EPub and more.

Okay, that’s pretty cool. Now we follow the breadcrumbs back to the American Libraries

image

Let me call out a number for you…

image

That’s eBooks available there…

You can browse by Library/Collection, Title or Author

image

In my brief very unscientific spot checking, this million plus entries all seem to actually be eBooks in one form or an other. And that’s just in the American category…

Following the breadcrumb trail back another step…

image

Yep, that’s 2.2 million eBooks! Wow…

That should be enough to keep you busy for a while. :)

Tuesday, April 27, 2010

Start your NGen… A four part NGen walk through

JIT, NGen, and other Managed Code Generation Stuff - NGen: Walk-through Series

“Now that Microsoft Visual Studio 2010 has shipped, we thought it would be a good time to publish a series of articles focused on how to use the NGen technology and how to measure performance benefits from it. This series features hands-on style content, so get your copy of Visual Studio 2010 installed and you’ll be ready to follow along.

The following topics will be covered in the 4 blog posts that make up this series.

       1. NGen: Getting Started with NGen in Visual Studio
       2. NGen: Measuring Warm Startup Performance with Xperf
       3. NGen: Measuring Working Set with VMMap
       4. NGen: Creating Setup Projects

…”

JIT, NGen, and other Managed Code Generation Stuff - NGen: Getting Started with NGen in Visual Studio

“Hey there managed code developer. So you’d like to test drive the NGen technology in the .Net Framework? This article will walk you through how to use NGen for your existing solution in Visual Studio 2010.

To familiarize yourself with the concepts around NGen (how it works and for what style of application/library it makes sense to use), I strongly encourage you to first read through this excellent MSDN CLR Inside Out article around the Performance Benefits of NGen: http://msdn.microsoft.com/en-us/magazine/cc163610.aspx. Now assuming you have some background on when to use NGen, let’s get started. I’m assuming you have identified that NGen will likely benefit your application (perhaps your application has been identified as having poor warm startup due to JIT-ing of method calls OR you are working with a library that gets loaded into several processes on a machine and you would like to reduce the library’s impact on the total working set of the machine.)

For the purposes of this walk-through, I assume you already have a Visual Studio solution for your application. This series of steps will provides guidance on how to invoke NGen for your application from within the Visual Studio solution. Using NGen via the set of steps outlined below will result in native images created only on the specific machine where the steps are run. Note also that this article does not provide instructions on how to invoke NGen in an installer package; a future article will talk about that scenario.

image …”

JIT, NGen, and other Managed Code Generation Stuff - NGen: Measuring Warm Startup Performance with Xperf

“…

This article is part of a series of blog posts intended to help managed code developers analyze if Native Image Generation (NGen) technology provides benefit to their application/library. NGen refers to the process of pre-compiling Microsoft® Intermediate Language (MSIL) executables into machine code prior to execution time.

Startup time is defined as the time it takes for an application from launch to startup such that it is now responsive to user input. It is typically thought of as having two variants, cold startup and warm startup. The time it takes for an application to start up on a machine that has just been booted is typically referred to as cold startup time. The time it takes for the application to start up on its second launch is referred to as warm startup time. The difference between the two is that cold startup time is bound by the need to fetch pages used by the application from disk. In contrast, warm startup is typically only bound by the work the application (and underlying runtime layer) needs to do to start up, since the pages needed by the application under normal circumstances don’t need to be fetched from disk.

Using native images does not necessarily shorten cold startup time since the native image files are significantly larger than their corresponding IL files and may take longer to pull from the disk. We will not talk about cold startup time in this article although that may be a topic we address in a future post. Loading native images however, can help shorten application warm startup time since the CLR does not need to run the JIT compiler on the managed assemblies at application launch time. This article is a walk through to help developers use publicly available tools to evaluate how much warm startup benefit the application will see if NGen were to be used.

We will look at two contrasting scenarios to measure warm startup time, the first will involve an application where most of the managed assemblies being loaded have native images and the second one will involve the same application where most of the managed assemblies will NOT have native images.

image …”

JIT, NGen, and other Managed Code Generation Stuff - NGen: Creating Setup Projects

“…

The NGen technology is designed to be used during the installation phase of a managed application or library. This article will talk about the various installer technologies available, which one to choose, and how to invoke NGen given that installer technology.

Installer Toolsets

The fundamental thing to know before we take a look at installers is that NGen is a tool that can be run only with administrator privileges. A non-admin user cannot invoke NGen.exe. This means that any installer technology that cannot run with administrator privileges cannot be used to invoke NGen easily. Non-admin installer technologies like ClickOnce sometimes use an MSI wrapper to invoke administrator-only actions like NGen.

There are several tools available to create a Windows Installer file (MSI file) – Visual Studio Setup and Deployment Projects, Install Shield 2010 Limited Edition, Windows Installer XML Toolset (WiX), etc. This MSDN article gives a breakdown of how these tools compare: http://msdn.microsoft.com/en-us/library/ee721500(v=VS.100).aspx. For a simple project which just installs a few binaries, the Visual Studio Deployment Project is easy to ramp up on and can quickly produce a workable package. However, for production quality applications, WiX tends to be the installer toolset of choice. Among other benefits, WiX has MSBuild support (which implies you don’t need to install Visual Studio in order to create a setup package) and stores all data in XML files (which makes it easily editable).

The rest of this article will focus on using NGen via the WiX toolset.

image

…”

NGen is an unsung hero of the .Net Framework and one that I’d like to get to know better…

 

Related Past Post XRef:
NGEN is Love, if you’re running your .Net applications via Citrix or Terminal Services
Making VS2010 and/or your WPF applications happy in Remote Desktop/RDP Land
CLR 4 Team videos and a little Inproc SxS thrown in for taste
101 Samples for Visual Studio 2005 (And actually all 101 now...)

Jinx! (Beta) Visual Studio Plug-to to help debug your multithreaded nightmare (err… um… multithreaded code…)

Visual Studio Debugger Team Blog - Jinx: Visual Studio plug-in for debugging multi-threaded code

“Today I’m going to introduce a plug-in for Visual Studio (still in beta) that helps to speed up finding concurrency bugs in multi-threaded applications.

Example of a concurrency bug

Consider an application that has two threads (“Thread A” and “Thread B”) that share a common stack. Each thread reads (pops) one value off the stack and then writes (pushes) one value back onto the stack; and between pushes and pops these threads do other work. During testing the application almost always works correctly; however occasionally the application crashes. The test team records data inputs, machine configurations, and use of the application, unfortunately after hours of this they are still unable to reliably reproduce the crash. It turns out that this a concurrency bug (a bug that occurs only if the order of events that produce the crash occur with the exact “right” timing) in the following stack_push() function , which makes reproducing the bug very unreliable.

Introduction to Jinx

Jinx works by making a copy of the application’s state while it is being executed, and then runs multiple "simulations" of the application in the background trying to force concurrency bugs to appear. Since concurrency bugs normally occur in or around code that accesses shared data, Jinx adds artificial wait states to the simulations so that shared memory accesses occur as close together as possible. In this way, it can potentially reproduce concurrency issues such as the one demonstrated above in far fewer runs than waiting for the correct order of events to naturally occur on the system.

Unfortunately once the bug is reproduced, locating the problem code can be much harder. One issue that can interfere in correctly locating the problem is called overshoot. Overshoot occurs when one thread causes another thread to crash, the problem thread then continues to execute for a short period of time before the processor halts all of the threads. The problem thread is now at location that is nowhere near where the bug occurred, making discovery of the faulty code difficult. To address overshoot, Jinx introduces a feature called SmartStop, which holds the problem thread on the last line of code to communicate with the shared data, making discovery of the offending code much easier. In the example above, SmartStop would stop thread A in the stack_push() function - since this was the last point of communication before the crash.

image

…”

Interesting… Even with all the multithreaded goodness in VS2010, there’s still room to grow. Plus I just liked the name of this project… :p

Open Data opens the .Net 3.5 & SilverLight 3 client libraries. The client libraries source, under Apache 2.0 license, is available now

WCF Data Services Team BlogThe Open Data Protocol .NET Framework Client Library – Source Code Available for Download

“We are happy to announce that we have made the source code for the .NET Framework 3.5 SP1 and Silverlight 3.0 Open Data Protocol (OData) client libraries available for download on the Codeplex website. This release represents the OData team’s continued commitment to the OData protocol and the ecosystem that has been built around it. We have had requests for assistance in building new client libraries for the OData protocol and we are releasing the source for the .NET Framework and Silverlight client libraries to assist in that process. We encourage anyone who is interested in the OData ecosystem and building OData client libraries to download the code.

The source code has been made available under the Apache 2.0 license and is available for download by anyone with a Codeplex account. …”

CodePlex - Open Data Protocol - Client Libraries

“The Open Data Protocol (OData) is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. OData does this by applying and building upon Web technologies such as HTTP, Atom Publishing Protocol (AtomPub) and JSON to provide access to information from a variety of applications, services, and stores. The protocol emerged from experiences implementing AtomPub clients and servers in a variety of products over the past several years. OData is being used to expose and access information from a variety of sources including, but not limited to, relational databases, file systems, content management systems and traditional Web sites.

…”

Open Data Protocol - Client Libraries - OData .NET Client Source Code

“Released: Apr 23 2010

Updated: Apr 23 2010…

Dev status: Stable

Recommended Download

ODataNetFxClient.zip
source code, 323K, uploaded Fri - 38 downloads

Release Notes

This is a zip containing a fully building Visual Studio 2008 solution for the OData .NET Client. To use, unzip the file locally and open the solution in Visual Studio 2008.

…”

Nice. Good to see Open Data = Open…

Monday, April 26, 2010

Using Windows Explorer & SkyDrive without ANY 3rd party software (not even Office 2010!)

Standard Disclaimer: First of all this works for me (i.e. works on my system, etc). This is not official, supported, documented, etc. If it doesn’t work for you, then there’s not much I can do. You assume all risk when you attempt this. YMMV. Do not remove tag… yada… yada… yada…

I’ve only gotten this to work on Windows 7. Also you must have Live ID, a SkyDrive folder, etc, etc…

[Update 5/18/2010 @ 7:45 PDT: I’ve just posted another way to do this, an easier way to get the URL that might work for more people, Mapping a SkyDrive Folder in Windows Explorer II (an even easier way than before) ]

Today a thread has been going around about how to map a drive letter to a SkyDrive folder without any 3rd party software, EXCEPT Microsoft Office 2010. (SuperSite Blog - Use Office 2010 to Map a Drive Letter to SkyDrive –> DownloadSquad - Use Office 2010 to map a local drive letter to your free 25GB Live SkyDrive)

Well I believe I’ve found a way where you don’t even need Office. [Note statements above…]

What does Office do in this story? It just seems to expose a SkyDrive folder URL in an easy to copy manner. With a bit of work, you can get that same URL without Office.

 

1. Go to your SkyDrive folder. www.skydrive.com. This will redirect you to your real/full SkyDrive URL

image

2. Grab the URL. What you’re looking for is the value after the CID. This is your “ID”

image

3. Now we take your ID, the docs.live.net path and we mix them together into a share path you can paste into Windows Explorer

\\[YourLiveID].docs.live.net@ssl\[ID]\[FolderInYourSkyDrive]

For example;
\\gduncan411.docs.live.net@ssl\c9d0f6e405e9851e\public

image

  • [YourLiveID] = Your Live ID is your Live ID
  • .docs.live.net  = The rest of the url is .docs.live.net  NOTE the .net  docs.live.com will not work.
  • @ssl = Is special sauce that Windows 7 uses to trigger SSL via Windows Explorer (Based on observations only… You may not need this. I’ve gotten my paths to work with and without this… )
  • [ID] = Your ID, taken from your final SkyDrive folder (and other Live resources). Note we stripped of the “cid-"
  • [FolderInYourSkyDrive] = A folder in your SkyDrive. For example, “Documents” etc

4. Now take your now completed path and paste it into Windows Explorer (Not IE, but Windows Explorer).

You’ll likely be asked to log in. Use your Live ID.

5. If all goes well, you should see your folder in Windows Explorer! You can now map a drive letter to this folder, drag and drop files, etc.

 

Hope this helps…

Additional Notes:

  • If you have a SkyDrive folder with spaces in the name, then use SPACES with you craft it for Windows Explorer. Replace the %20’s with spaces.
  • Also make sure all your slashes are right. Replace all forward slashes “/”  with back slashes “\”

So for example;
http://cid-c9d0f6e405e9851e.skydrive.live.com/self.aspx/Fun%20With%20Bindling%20List%20Source

Becomes;
\\gduncan411.docs.live.net@ssl\c9d0f6e405e9851e\Fun With Bindling List Source\

[I just noticed I miss spelled that folder name when I created it forever ago… sigh… BindLing ? LOL]

Installed VS2010? Have Office 2003? Is your TFS <–> Office 2003 integration now borked? “Don’t Panic!”

bharry's WebLog - Office 2003 -> TFS integration breaks when you install VS 2010

“When we were planning the requirements for TFS 2010, we decided to take a dependency on Office 2007 and later.  This enabled us to make some significant improvements to the TFS integration due to extensibility improvements in Office 2007.  However, I've seen a few customers who are stuck on Office 2003 and have been disappointed to see that Excel and Project integration with TFS stops working when they install VS/Team Explorer 2010.

…”

Team Foundation Server Team Blog - VS 2010 and TFS with Office 2003

“You have installed Visual Studio 2010 and found out that the TFS Office Add-In is no longer working because you only a have Office 2003 and TFS requires Office 2007 or newer. Your company is not rolling to Office 2010 for another six months, what do you do?

Don’t Panic, there is a Work Around!

You can install VS 2008 Team Explorer side by side with VS 2010 and then follow the steps below to enable the 2008 TFS Office Add-Ins for Excel and Project.

image

…”

Yep, some of us are stuff in the Office 2003 world, so this information will come in handy…