Wednesday, June 29, 2005
by Nik Kalyani
Wednesday, June 29, 2005 10:39:45 AM (Pacific Standard Time, UTC-08:00)

So I fired up Google Earth Plus today to see if any new cities have been imaged. I was greeted by this dialog:

Geerror

I am not sure where to begin. There is so much wrong with this dialog from a usability standpoint that I am amazed it made it into the build:

1) Language: "The version of Google Earth Plus you are running needs to be upgraded now." Yeah, who says? What klutz penned this little gem. Since when do developers get to demand upgrades. Sad.

2) Download: "Please download the new installer from http://www.keyholde.com/downloads/GoogleEarthPlus.exe." OK, 10 pts. to whoever can spot the usability snafu here. Give up? Hello...this is the web...don't give me a URL...give me a link or a button.

3) Feedback: "If you have any trouble with the upgrade or have beta feedback, please send it to kh_beta@google.com" Indeed I will send a link to this blog entry. Same deal...world wide web and all...where's the link or button

4) Sign up!: Ouch! This is the saddest thing I see over and over again. I get emails/snail mail from companies wanting me to buy their product or sign up for their service. Get with the program, ye people of the idiot brigade. I am already a customer. If you can index the web and all the library content of the world, how difficult is it for you to figure out that I am a paying subscriber. Sad. Sad. Sad.

5) Overall: Someone at Google has not been alert. For at least the past 4-5 years, even the humblest of shareware apps have the ability to automatically fetch updates on-demand and usually unattended. Get with the program guys.

So, in typical fashion, what was to have been a 10-min interlude, turned out into a negative customer experience.

OK, now five minutes later, the download and update are done, and guess what...you got it...the stupid program wants me to restart my computer.

Earth to Google -- Any intelligent life there that understands how to write good software? I was quite excited about Google Earth initially, but this kind of crap is a serious turn-off.

#    Comments [0] - Trackback    

 Sunday, June 26, 2005
by Nik Kalyani
Sunday, June 26, 2005 9:22:44 AM (Pacific Standard Time, UTC-08:00)

Word on the street is that Google is going to have an online payment service. Since the company incorporated Google Payment Corp. in Delaware, there is a good chance this is not a wild rumor. I, for one, welcome a competitor to PayPal. Although I have been a customer since inception, I am getting a little tired of their strong-arm tactics. Many PayPal users (myself included) have had to battle with the company for everything from arbitrary limitations on accounts to dealing with clueless customer service people.

Although PayPal does a good job of customer acquisition and developer support, it has grown too fast and in the process has forgotten that it exists because of its customers. Every occasion that I have been on the phone with PayPal customer service, I have felt less valued as a customer.

Bring it on Google -- I'm ready to switch.

 

#    Comments [0] - Trackback    

 Saturday, June 25, 2005
by Nik Kalyani
Saturday, June 25, 2005 7:47:56 AM (Pacific Standard Time, UTC-08:00)

Just days after I blogged about RSS being better for newsletters, I am pleased to note that Microsoft has announced broad support and integration of RSS in Longhorn. Feels good to know I am on the right track.

#    Comments [0] - Trackback    

 Friday, June 24, 2005
by Nik Kalyani
Friday, June 24, 2005 11:29:12 AM (Pacific Standard Time, UTC-08:00)

Hmmm...maybe one size smaller...

by Nik Kalyani
Friday, June 24, 2005 10:46:50 AM (Pacific Standard Time, UTC-08:00)

Everytime I happen to drive (rarely these days since I use ZipCar), I inevitably have to park in a garage somewhere. And each time I wonder why no one has implemented what to me is a trivially simple solution to finding a parking spot in parking garages, especially those at airports. Here's my idea. If you decide to implement it, send me a million dollars. If you have already implemented it, then

Each parking spot in a garage has an RFID transmitter and receiver oriented in such a way that when a vehicle is parked in the spot, the receiver cannot get the signal. (I guess it doesn't have to be RFID...even a line-of-sight laser would work.) A receiver that is getting a signal is considered ON...all others are OFF.

Each receiver is networked to the parking garage's computer. The computer runs a program that sorts parking spots by proximity to elevators/exits. Only receivers that are ON are included by the program.

When a car pulls into the parking lot, the program prints out a ticket containing the location number (eg. B-4) of the first spot in the list (i.e. the first available spot that is nearest to the elevator/exit). The driver places the ticket on the dashboard so it is visible from the outside, drives to the spot and parks (the spot will be vacant). If he/she parks in a spot that's different from what's on the ticket, a hefty fine is levied (easy to track because the location of the ticket can be used to make this determination).

This is a simple solution, requires no driving around endlessly looking for a spot and optimizes traffic patterns in the garage i.e. fewer fender benders.

 

#    Comments [3] - Trackback    

by Nik Kalyani
Friday, June 24, 2005 9:20:48 AM (Pacific Standard Time, UTC-08:00)

I will take a break from DotNetNuke and technology to ramble a bit and share some personal thoughts. It's no secret to those who know me well -- I am a big fan of Steve Jobs. I have been a fan of his since 1987 when I first used a Mac (which I also love). I have read every book (almost) written about him and follow his life closely. Although most people see him as a loony, egotistical, rich guy who happens to be a visionary, I see a man who has found success by steadfastly pursuing that which is simple and which he loves. It is reflected in everything he does and this is the allure of the man.

Simple is difficult. I know because I try and keep things simple in my software and it is very, very difficult. Keeping things simple in life is even more challenging. Waking up every morning and doing something you truly love, is something only a fortunate few of us can do. I am incredibly lucky to be one of those fortunate ones. I was reminded of this when I read the transcript of Jobs' recent Commencement address at Stanford.

I have been an entrepreneur since 1994. Speerio is my third company which I started in 2001 (coming on the heels of a successful consulting company and a venture-funded dot-bomb in which I lost everything I had worked for to that point). There is nothing like hitting rock bottom hard to make you question whether the entrepreneurial path is right for you. Having no idea where your next paycheck is going to come from is quite a stress inducer. But I stuck it out, because I truly believe that if you follow your passion, success is not just a possibility, it is inevitable.

I dabbled with mobile market research before I turned Speerio's focus in 2003 to doing what it does today -- making products for DotNetNuke. As you can imagine, survival in a market that is only in its infancy where most customers are looking for products that are free or $10 (regardless of what they do), is somewhat challenging. I decided to jump in anyway, and have stuck it out. It has been, and continues to be, a challenging ride, especially now that I am a dad for the first time in my life. But the plus side is that I never do any work. I am always playing and making a living doing it.

Although my goal for the company remains the same as with my previous ventures -- make millions doing what I am passionate about and make things better for others -- I have taken a different approach with Speerio. Instead of going the standard startup route -- biz plan, seed funding, angel investors, VC's and the whole tech. startup deal -- I decided to take it slow and build the business organically until it really needed capital for growth. Well, the time has come and I have started discussions with a few investors who have expressed interest. I have rejected a few offers and am working on one deal with some seriousness at the moment. I haven't signed any deals yet, so if you are in the investment capital business looking to fund a company with proven success in a fast growing market, drop me a line.

Which brings me back to Jobs' speech. He talks about how he has always followed his heart and his dreams. Reading his words, re-invigorated me because it reminded me of why I am doing what I am doing. It's all about passion and following ones heart and yes -- The Journey is the Reward -- everything else is inconsequential. It has been slow going thus far, but I have a feeling the brakes are going to be released very, very soon and it is going to be one thrilling ride. I am glad to be on it.

 

  

 

#    Comments [1] - Trackback    

 Wednesday, June 22, 2005
by Nik Kalyani
Wednesday, June 22, 2005 4:19:15 PM (Pacific Standard Time, UTC-08:00)

The Skinergy controls suite has been released and is available to registered users of Speerio.net from the Downloads page. It's a good idea to review the Skinergy website at http://skinergy.speerio.net as it contains detailed information on usage.

I am off to pursue some skinergy of my own considering it's my wedding anniversary today.

Enjoy!

by Nik Kalyani
Wednesday, June 22, 2005 7:09:01 AM (Pacific Standard Time, UTC-08:00)

The Skinergy suite is almost ready for release. I had some trouble with the Control Panel, but it turned out to be a scripting issue with IIS. Delayed things a bit, but the demo/documentation site is almost ready. Check it out at http://skinergy.speerio.net.

I will release the package this evening after returning from my daytime cruise so my wife and I can celebrate our second wedding anniversary.

 Monday, June 20, 2005
by Nik Kalyani
Monday, June 20, 2005 6:53:54 AM (Pacific Standard Time, UTC-08:00)

I have a profound dislike for Newsletters, mostly because I receive too many unwanted ones. Unsubscribing is risky enough, so my current solution is to have a Thunderbird filter that tags the message as spam. Works quite well.

As a business owner, I do have to think about marketing though. I have resisted sending out email Newsletters to-date because that would be quite hypocritical of me. I have been toying with the idea of a rich RSS Newsletter of-late and I think this is the approach I am going to take. RSS Newsletters have significant benefits over traditional email campaigns:

1) 100% permission-based...you don't get to see it unless you consume the feed. None of the quadruple opt-in with triple permission acknowledgement and the kitchen sink required for email.

2) ZERO cost and reliable ... no error-prone sending process using email software that somehow always finds a way to fail.

3) Minimal effort ... create the Newsletter, post it and you are done.

4) General trackability ... no covert email beacons and the like. If someone views it, you know it.

Interestingly enough, I had an email correspondence with Christoph Richner, the creator of the free Raccoom XML framework which I use in all my modules. I respect Chris' development skills as the Raccoom framework is way better than any RSS code I have seen anywhere, including DotNetNuke. I think Chris and I may collaborate on making the Speerio NewsWire module into something quite interesting. One feature that will be in for sure is RSS Newsletters. I will post again once I have more detail.

 

 Sunday, June 19, 2005
by Nik Kalyani
Sunday, June 19, 2005 7:02:47 AM (Pacific Standard Time, UTC-08:00)

I am quite excited! I am putting the final touches on my Speerio "Skinergy" suite of tools for DotNetNuke.

After the DotNetNuke site was launched with the new skin and the usability controls for adjusting text size and layout width, I got a flood of emails asking for the controls. Since the Core Team wants to protect the DotNetNuke brand identity, releasing the DotNetNuke site skin to the community is out of the question. So I started work on creating a community version of an alternate skin.

Some significant scope creep later, we now have Speeio "Skinergy" -- a suite of three usability enhancements plus one control panel enhancement all packaged in the new Speerio "Z" skin.

The enhancements are:

Text Size Control: Allows the user to choose their preferred text size for a site (remembered in cookie)

Layout Width Control: Allows the user to choose their preferred layout width for a site (remembered in a cookie)

Color Palette Control: Allows the user to choose their preferred color palette for a site (remembered in a cookie)

Dnntoolbar


Admin Control Panel
: Revised DotNetNuke control panel in a popup dialog 

Dnncontrolpanel

Got some more spit and shine to do on this package, but I fully expect to release Skinergy to the community tomorrow.

[Edit: I have posted a preview at http://skinergy.speerio.net. There is a problem with the Control Panel w.r.t. postbacks and I am currently working to resolve this issue. I will release the package once I have a fix.]

 

 Friday, June 17, 2005
by Nik Kalyani
Friday, June 17, 2005 1:54:57 PM (Pacific Standard Time, UTC-08:00)
 Wednesday, June 15, 2005
by Nik Kalyani
Wednesday, June 15, 2005 4:43:24 AM (Pacific Standard Time, UTC-08:00)

So I decided to give MSN Desktop Search/Toolbar a whirl yesterday.

After my rather disappointing experience with Google Desktop Search (which I uninstalled within hours of installation), I had fairly low expectations. But so far I completely amazed. Google had better get some of those skunkworks projects into prime-time, because the signs are clear -- Microsoft is going at this search thing with such gusto that it will not take very long for it to catch-up and even pass Googliath. 

The attention to detail in the MSN Desktop Search is unlike any I have seen in Microsoft apps before. From a usability standpoint the U.I. is nearly invisible -- the hallmark of an intuitive and well-designed U.I. I especially like the preview feature on search results where you can see the search word in application context (example: within an Excel spreadsheet).

I'll try the desktop search for a few more days and see how it goes. For web searching, I am still sticking with Google, but I'll keep an eye on MSN. But one thing I am keeping for sure is the IE tabbed browsing.

FireFox has always provided a superior browsing experience in many ways and tabbed browsing was one huge advantage it had over IE. Gone! One thing I never quite figured out in FireFox is how to save the state of the browser when multiple tabs are open so I can restore it the same way. (Of course, if the feature exists and I can't find it, it's not much of a feature anyway). The MSN toolbar does have this feature and it lets me save one set of tabs as "My Tabs" which I can restore at the click of a button. Neat. I also like having the option to open each link I click in a new tab. This is great for search engine results. I had fully expected this to be an all or nothing feature, but was pleasantly surprised to find that it is tab-specific. So on tabs where I have search results displayed, I can have this feature on, and turn it off elsewhere.

Now for a little rant.

With all the hype and money and technology being invested in search by Google, Yahoo and Microsoft, why is it so difficult to find things in context and why are search interfaces still so lame. I don't claim to have a magic solution, but I am certain the keyword approach with control suffix/prefix characters is a crappy interface for search. And don't get me started on boolean logic. As a developer, I see its value, but for the ordinary individual, it is completely unnatural. Much has been said about Google's precision. I conduct maybe 50-70 searches in any given day. It is quite rare that the relevant item I am searching for is on the first page of results (and I have the page size set at 30). So either I am an idiot and can't figure out what keywords to use, or the search technology is still a pile. I suspect that it's the latter, but of course, I can't be objective.

There is a simple solution. Google is currently beta testing its Sitemaps concept. (A good idea which will soon result in bad data. More on this some other time.) A better idea would be for Google to publish the specs for a site search webservice. Say what? Read on...

When you're looking at search results, Google makes relevancy decisions based on its super cool algorithms. One thing I notice quite often is the search results contain page after page of results from the same site. Now, how often is it that you click on one of those results and get exactly the content you are looking for? The answer is "it depends." If it's a content-centric site, then chances are good. But if the result is from a forum post or some dynamically generated page, you have to click around a bit to find the information you need. Often, you end up using the site search (if it has that capability) and then the results are more specific and also have abstracts that are in context. It would be so much simpler if Google took a smarter approach.

Let's say that site www.somesite.com had more than say 20% of the first 50 results. If Google had a published a site search webservice specification, the owners of somesite.com could implement this on their site. When Google detects that one site is responsible for a high number of relevant search results (determined by its own algorithm), it could make a quick call to the site's webservice with the same keyword, and return the result set (maybe top 10-20 results) in a collapsible pane integrated into the general Google result set. There are search engine aggregators that do this for a finite number of engines. Why not do it for the entire Internet, live and on-demand?????

Now, this approach does not address the keyword search approach, which I opined as being flawed. But it will help in making results more precise. Because no matter how well tuned the Google algorithm is, the site's own search is usually going to provide better results than Google's inferred results.

 

#    Comments [1] - Trackback    

 Sunday, June 12, 2005
by Nik Kalyani
Sunday, June 12, 2005 8:54:59 PM (Pacific Standard Time, UTC-08:00)

If you have multiple controls in your ASP.Net, especially third-party ones, which in turn have a dependency on another third-party component, you are in for a world of pain if different controls use different versions of the same third-party component. Since your app has only one "bin" folder where all the assemblies reside, putting one version of the third-party component will break controls that rely on the other version. Luckily, the .Net developers devised some good solutions. Although I would not call this an elegant solution to DLL hell, at least its possible to have a solution that works.

Here are some sample web application scenarios and solutions involving assembly version conflicts, different assembly versions and location of assemblies. This is a small portion of a much larger .Net design involving the GAC etc., but I am not going to delve into that.

1) Placing assemblies outside the bin folder.

Sometimes you have an app with many assemblies and you want to keep them more organized. .Net allows this by providing a way to specify the folders where it should search. Modify your web.config as below:

<configuration>
  <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="bin;somefolder\bin" />
     </assemblyBinding>
  </runtime>
</configuration

You can specify as many folders as necessary in a semi-colon separated list which fusion will use to locate an assembly.

2) Having multiple versions of the same assembly in the same app space.

In this example, two versions of the ThirdParty assembly are placed in numbered sub-folders of bin. Both can co-exist and will work correctly.

<configuration>
        <runtime>
             <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
                 <dependentAssembly>
                     <assemblyIdentity name="ThirdParty" publicKeyToken="16dcc87a28w7w7b1" />
                     <codeBase version="1.4.0.0" href="bin\14\ThirdParty.dll" />
                     <codeBase version="1.2.0.0" href="bin\12\ThirdParty.dll" />
                </dependentAssembly>
             </assemblyBinding>  
       </runtime>
</configuration>

3) Redirecting an assembly from an older to a newer version.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="myAssembly" publicKeyToken="32ab4ba45e0a69a1" culture="neutral" />
            <bindingRedirect oldVersion="1.0.0.0"  newVersion="2.0.0.0"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

You can only use #2 or #3 with strong named assemblies.

 

 Wednesday, June 08, 2005
by Nik Kalyani
Wednesday, June 08, 2005 7:31:19 AM (Pacific Standard Time, UTC-08:00)

It's unlikely anyone noticed, but things have been quiet on the Speerio front the past 7-10 days. Well, it's mostly because I was busy working on the DotNetNuke branding in time for Tech Ed. With milestone one achieved, I can now go back to working on Speerio products and provide more timely support to customers.

#    Comments [1] - Trackback    

RSS feed
Search and Links
Bling

View Nik Kalyani's profile on LinkedIn

TechBubble
www.flickr.com
This is a Flickr badge showing public photos from techbubble. Make your own badge here.
Statistics
Total Posts: 216
This Year: 19
This Month: 0
This Week: 0
Comments: 226
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2008
Nik Kalyani
Sign In
All Content © 2008, Nik Kalyani