5/24/2008

The Social API we really need.

The medium is the message. This is merely to say that the personal and social consequences of any medium -- that is, of any extension of ourselves -- result from the new scale that is introduced into our affairs by each extension of ourselves, or by any new technology. 
--Marshall McLuhan

Now here's the thing: I'm on Twitter; I like it because I can follow anybody I want, and although there is an awful lot of moronic "noise" (e.g., "I have a hangover and my cat just threw up"), there is also some interesting stuff that lets you find out where others in your particular "groove" are going, what they are working on, what they're thinking about. You can even post a request for help and occasionally somebody that's following you will give you a helpful idea.

The problem is, this is just a "teaser" of what it really could be, and it's totally disconnected from all the other "social" apps. It doesn't connect you to opening an IM chat (which is realtime, and often a lot more useful), there's no easy way to make it really integrate into a forum / messageboard (which is more permanent, and searchable), or del.ico.us (which helps with organizing and tagging resources that are shared with others), or a hybrid short url / spidering / social tagging site like my ittyurl.net, or a blog post with comments, or email notification of something I am following and on which I need up - to - date information when new "stuff" appears on the subject.

I view this entire "space" as a social community that needs to be fully integrated in a single API: twittering, chat / IM, forums, short urls, resource tagging - spidering, and more.  It needs to be an API because  as a developer, that's what I want. I don't particularly care that twitter.com is a "website" or that del.icio.us is a website -- with an integrated API available, I can build my own UI's and social applications to interface with the parts that I need / want. And so can others. Sure, you could still have a website that represents some sort of gateway into all this, but it still needs to be an API. A single, INTEGRATED API.

The advantages of having a single, integrated, standards-based social application API that incorporates all these features should be obvious, I'm not even going to start on the subject.

Then you have the Live Mesh (MOE - Mesh Operating Environment) concept where you are actually synchronizing and sharing resources (files, documents). As long as it's not proprietary (e.g. you "have to" use LiveID authentication), this needs to be in there, too. It would need to have some filters or some sort of admin moderation capability to prevent spammers from ruining it.

Am i being "visionary" for thinking like this? I doubt it - all this is just common sense to me.

I'm willing to put in some time to work on this. I know people who are smarter than I who probably have good ideas and skills to contribute.  If people are interested we could start a codeplex.com project for it. I'd like to see OpenID authentication, a Twitter-like service (µblogging), a del.icio.us - like facility (but more robust like what I've done - spider the resource and do automatic semantic tagging and indexing), forums, IM/ chat, email notification, live-mesh sharing and sync of "stuff", and more. It should be free; it could possibly be supported by advertising. The possibilities really start to sing once you "get" the gestalt concept of integration of all the features in a single API.

Are you up for this, man? Let me know. You can comment here or send me an email to pbromberg at yahoo dot com.

5/18/2008

FIX: Vista Recycle Bin Causes "Windows Explorer has stopped working" DEP error.

It has been said that man is a rational animal. All my life I have been searching
for evidence which could support this.
--  - Bertrand Russell

Vista's DEP (Data Execution Prevention) is designed to prevent unauthorized or dangerous code from executing on your system. However, sometimes legitimate programs such as Windows Media Player or even Windows Explorer may trigger DEP actions, whether legitimate or not. One example is when you have files in the Recycle Bin and you attempt to open Recycle Bin and choose "Empty the Recycle Bin". Data Execution Prevention jumps up with that ugly "Windows Explorer has stopped working" dialog. 

dep

 

 

Here's a fix that works for me:

Open Control Panel, and go to  "SYSTEM". On the left side click "Advanced system settings".  Click the "Advanced" tab and under Performance, click Settings. 

Now click on the "Data Execution Prevention" tab. Check the "Turn on DEP for all programs and services exept those I select", then click the Add button.

Go to  your Windows directory and enter the File name Explorer.exe, and  hit OK.

This will bring up a window asking if you are sure you want to do this, just  OK the process.

Now reboot and see if it works.

I think Vista's DEP can cause problems on legitimate proggies  even though it's trying to prevent viruses.

 

If the above does not work:

Some file types, particularly media files such as .AVI, being present in the Recycle Bin, seem to actually be the cause of this issue. As an alternative, you can run an administrative command prompt, then navigate to the Recycle bin folder with:

CD $Recycle.bin

Then issue this command: (from within the $Recycle.bin directory):

DEL *.* /X /Y /Z /S

This will delete all the weirdo folders under Recycle.bin and their contents, zap all subfolders, and say "Y" to all prompts. With all the contents now gone from the Recycle.Bin, you should be able to open it and not get the DEP error. I've found that making this into a batch file doesn't work; you have to execute the commands manually from within a Command prompt.  I think its unfortunate that we have a 1 1/2 year old operating system that already has a service pack, and this problem hasn't been adequately addressed, but hey - you gotta do what you gotta do.

"BTW" Department

If you have any doubts that .NET and Silverlight aren't making their way onto platforms other than Windows, I suggest you take a quick trip over to Miguel de ICaza's blog and find out where all the excitement is coming from. I see some reallyreallydumb blog posts from so-called "experts" (who usually have some sort of axe to grind) talking about how Silverlight stinks compared to products like Adobe Flex in market adoption. Folks, Silverlight isn't even out of beta yet...

5/12/2008

Visual Studio 2008 SP1 Beta: Experience Speaks.

A little inaccuracy sometimes saves tons of explanation. -- Saki

Dear Microsoft:

Well, you know the drill. Somasegar has this great post promoting VS 2008 SP1 beta, and it almost sounds like it's too good to be true, yes? I figured I'd give it a shot -- all the supposed new features sound so promising... The "Readme" is very detailed, and it outlines a whole bunch of failure scenarios, workarounds, and caveats. Just take a look at this stuff:

Important This beta release is for early testing and feedback. As a beta release, we recommend you only install the service pack on test computers. Prior to installation, you should carefully review the included readme file to be aware of any known issues with this release. For example, this service pack has some known compatibility issues with previous releases, including:

  • Expression Blend (all versions)
  • Silverlight 2 Beta 1 SDK
  • Silverlight Tools Beta 1 for Visual Studio 2008

Test computers? Somasegar has this blog post with a big feature-laden sales pitch, then this? Guys, this is too complicated. I'm already developing Silverlight, and using Expression Blend a little bit. Bottom line? Keep your powder dry d00d! Its like, KTHXBYE on this one. This puppy ain't ready for delivery yet. I don't mind being a guinea pig once in a while, but this thing just came up with "FAILED" at the very, very end (that's after I read the notes and unistalled Silverlight tools BETA and the KB hotfix as directed). The problem is, the log file they give you is so damned hierarchically cryptic, I just haven't got the time to go through this bullshit!

One thing was nice: Visual Studio 2008 still works OK after this punishment, and as long as I can get the hotfix and the Silverlight crap reinstalled, I should be able to get back to first base and keep developing.

N.B.: I tried, but it looks like for the non-production machine I tried this on, I am gonna have to take everything out one Saturday morning, reinstall Visual Studio 2008, the Hotfix, and the SilverlightChainer 2 Beta 1 stuff just to get back to first base. I could kick myself for suckering for this stuff, man! I should know better by now.

N.B.(2): Well, actually it wasn't that bad. The trick was to load Silverlight_Chainer.exe into WinRar and extract everything to a folder. Then I was able to uninstall the KB now that I had the .msp on the hard drive, and re-run Silverlight_Chainer and get everything back to normal.

It just goes to show ya - BETA - is BETA, man. So -- you guys go ahead and figure this stuff out, and let me know when I can install it and it won't blow up.

(Reader, comment me and let me know if you had a better - or worse - result).

Thanks,

Peter

5/06/2008

FIX: Windows Vista Folder View Issue

Against stupidity the gods themselves contend in vain.   -- Friedrich von Schiller

I don't know about you, but in our "Things I hate most about Windows Vista" poll, one of the most frequently ticked topics was "Folders that refuse to remember the view settings you've set".  If you set a Details View with "All Items" on a folder and then drop a couple of jpegs in there, Vista tries to "help you" by changing the view. Well, I don't WANT Vista to help me! I don't want Documents, I don't want Pictures and Videos, and I don't like Green Eggs and Ham! (In the forums they are calling it "VisDUH").

Here's a fix from the TechNet forums, converted into a batch file:

 setlocal

set BASE_KEY=HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell

:: Delete cached folder views
reg delete "%BASE_KEY%\Bags" /f
reg delete "%BASE_KEY%\BagMRU" /f

:: Set default folder template
reg add "%BASE_KEY%\Bags\AllFolders\Shell" /v FolderType /d NotSpecified

:: Restart Explorer
taskkill /f /im explorer.exe
start explorer.exe

Just save the above text in a "FIX.BAT" file and execute it. It also restarts Explorer.

5/05/2008

Energy Policy: Why our politicians just don't "get it"

The United States is in a recession --partly because of global oil prices -- and yet the only thing you hear from the candidates is hot air about things like MPG standards, a gas tax "holiday" and some vague plans about "conservation". Exactly what is it about energy independence from foreign oil that these idiots don't understand?  Energy indepence means one thing only: WE HAVE TO GET OFF OUR ADDICTION TO FOREIGN OIL.

Here's the picture, over the last six years:  

oilgas

  Look, if you want your country to be independent of foreign oil, then you either have to produce your own, or use alternative fuels. Why is this simple concept so difficult for the McCains, Clintons and Obamas to understand? President Bush understood it, but he's a lame duck who's going out of office soon, so we can't expect much there.

16 years ago, Brazil embarked on a policy of becoming 100% independent from foreign oil, and they've achieved it.

Brazil is the world's second largest producer of ethanol and the world's largest exporter, and it is considered to have the world's first sustainable biofuels economy and is the biofuel industry leader. Virtually every car, truck and bus in Brazil can run on ethanol. If oil goes to $500 a barrel, the effect on Brazil's economy would be minimal.

Brazil's sugarcane produces 662 gallons of ethanol per acre. Switchgrass is a tall prairie grass native to the US that yields over 1,000 gallons per acre, more than 3 times the yield of corn. Recent research conducted at the University of Illinois has shown that miscanthus, a tall reed-like grass, can produce as much as 1,500 gallons of ethanol per acre.

Ethanol as a fuel is nothing new. Early Model T Fords used ethanol, and it's an ingredient in beer and wine.

The problem is, most ethanol produced in America is made from corn -- a less efficient material than switchgrass. Corn producers are supported by a large lobby and huge government subsidies. There is no similar lobby or investment for grass or wood.  The main drawback of corn, a prime American foodstuff, for alcohol production -- is that this has elevated the cost of foodstuffs made from corn worldwide and has overlooked better choices -- sugar cane, and switchgrass.

When you make ethanol from corn, for every gallon of fuel you get, you put in about seven-tenths of a gallon of fossil energy, oil or natural gas. That's only a small improvement in terms of greenhouse gases.

On the other hand, ethanol from cellulose -- like switchgrass -- is a great energy strategy because for every gallon of ethanol, a tiny amount of fossil material is used. There's a dramatic reduction in greenhouse gases, so from an energy perspective it's far superior.

For consumers, switching to ethanol would cost only about $100 per car. All it takes are some new hoses and a new gas cap.

Unfortunately, it still looks like we just "don't get it". We can put men on the moon, we can do amazing things with biotechnology. But we can't seem to take care of our energy needs like Brazil has, even though we're much more advanced technologically than they are. And you know the reason why: it's because we've got a crap political system with a bunch of spineless candidates who don't have the guts to really "do" change, instead of just talking about change.

So when you go to the polls this November, think about why there wasn't a single candidate who "got it".

5/04/2008

Replace Notepad.exe with EditPlus.exe on Windows Vista

I started searching for how to do this and found fellow MVP Rick Strahl's post asking if anybody knew how to override Windows File Protection to "permanently" replace Windows Notepad with EditPlus.

Like Rick, I've been using EditPlus since 2001. It has so many features (including the ability to view your work in the browser without leaving the product) that I won't even begin to describe them. Some developers like similar products; this post is about how to replace notepad with ANY Notepad replacement on the Windows Vista OS.

In order to accomplish this little feat, we need to not only take ownership of the resource, we also need to grant ourselves ACL permissions on the file:

1. Open up an Administrator command prompt

2. Take ownership of the old notepad.exe with: 

takeown /f c:\windows\system32\notepad.exe

3. Grant yourself full control with  (replace "<username>" below with your username):

cacls c:\windows\system32\notepad.exe /G <username>:F

4. Open explorer and replace the notepad.exe file with a renamed version of editplus.exe (or whatever your favorite Notepad replacement is).

 

I haven't fully tested this yet to see if Windows File Protection will try to overwrite it at some point, but for now, I did reboot, and it looks like it works!

5/01/2008

Add Dynamic link rel=alternate RSS directive to ASP.NET Page

"There are times when the best deals are those that aren't done"
-- David Garrity  (re:MSFT-->YHOO)

I have some pages on my "fun" site, ittyurl.net, that generate and display blog search results and offer a custom RSS feed of same. The url to the page that generates the RSS feed must be dynamic, with a search term on the querystring.  But how can you "turn on" the Feed icon in Internet Explorer so it will show that there is a feed available for the custom results page, and which will correctly point to the generated RSS page?

It's pretty simple:

First, let's put the <link .. tag into the HEAD of the ASP.NET ASPX page, and mark it runat="server":

<head runat="server">
    <title>Untitled Page</title>
    <link id="rssLink" rel="Alternate" type="application/rss+xml" title="RSS" href="" runat="server" />
</head>

Next, after we are done with our custom assembly of the feed (I do it from a DataSet that comes from a SQL query here), this is all we need to do:

protected void Page_Load(object sender, EventArgs e)
{
    //Do some custom assembly of your feed based on "t" querystring
    // search term here
    string rssSearch = Request["t"];
    this.rssLink.Attributes["href"] = "rss2.aspx?t=" + rssSearch; 
  
// now the RSS icon in IE is lit up!

}

 

What if my <link.. tag is in my MasterPage?

 

Not a problem. Here is sample code, similar to the above:

 

HtmlLink rssLink = (HtmlLink)Page.Master.FindControl("rssLink");
rssLink.Attributes["href"] = "RSS2.aspx?t=" + txtSearch.Text;

That's all there is to it!