Nov 25, 2007

Well, someone says not to donate to wikipedia.

I have always seen wikipedia as a powerful and free tool to spread the knowledge across the globe. Personally, i admire the guy Jimmy Wales, who is behind this initiative. I wanted to put a "Donate to Wiki" banner on my blog and went googling around to find this anti-wiki donation article.

Few lines from the blog.

Wikipedia promotes Amazon.com and IMDB (owned by Amazon.com) through search engine optimized links and in return, Amazon.com gives Wikia huge amounts of venture capital, which violates Wikipedia’s non-profit status, given Wikipedia’s close ties to Wikia.

Wikipedia is not going to help children in third world countries because the bulk of its content is in the languages of first world countries and pretty much nothing is in the rest.

Read the full article here.

I am yet to do a serious digging into this. In first glance, it makes sense though.

Type rest of the post here

Nov 18, 2007

OpenSocial and Facebook platforms

Check out this official video on OpenSocial by Google.
The presentation looks awesome with technical, business and end user perspectives well represented.

Will OpenSocial put brakes on the strong-march by Facebook? Only time will tell. But, certainly its a high stakes battle.

To write about:
Where OpenSocial and Facebook are heading to? Is Facebook creating the next Windows of internet? Achievements and ambitions of Facebook? Did Google miss the bus and trying to regain control using OpenSocial? How is OpenSocial faring so far? Where Facebook could go wrong?





Lot to talk about **Platform**

The word *Platform* seems to make sense across multiple paradigms. It all started during a short conversation about Facebook with a friend of mine. Facebook has been around for a couple of years now. Why sudden craze about Facebook everywhere? If you ask me, my cents on the really neat UI and ability to publish your own app on the Facebook platform. Ooops, i stepped on the word Platform. Never mind. Ya. Facebook is a platform. Not just a portal. Not another social networking website. I know, it sounds really abstract to most people talking about internet terminologies. Agreed! Let's peep into history to search for trace of something called Platform.

Can we call Microsoft Windows as a platform? How about Walmart as a platform? Mmmm.. iPhone as a platform? The big daddy Google as a platform? Stock market as a platform... i can think of an indefinite list. Let's start with something universal, well known(for good or bad) - Walmart.

Walmart is an apt example of a Platform. Walmart is a really big trading company. So, they source goods from vendors/manufacturers/OEM and sell it to customers. The concept typically applies to even the petty shops across the street. BUT, size is the x-factor, that gives more power over negotiation table with manufacturers and thereby huge profits. Customers accustomed to a platform normally find it difficult to accept a new one so easily.

Back to the context of Computers, Microsoft and Facebook are two companies of interest to me. Microsoft created the Windows platform more than a decade ago for PCs. Since then, Microsoft has successfully replicated the platform from Servers to Compact devices. Logically, an application that runs on either of them would run on others as well. And, most importantly, consistent user experience across devices allowed users to seamlessly use these devices without having to go through repeated learning cycles. What did Microsoft get as a result? The power to replicate the platform across any imaginable hardware.

There are couple of prominent companies defining or re-defining the 'platform' on web. I will be writing topics focussed on those, instead of rat-holing :)

Nov 7, 2007

how to run ur web project on IIS instead of internal web server in VS.NET IDE

To specify the Web server for an already-created Web site,
open your local website with VS.NET and, in the Solution Explorer,
right-click the name of the Web site for which you want
to specify a Web server, and then click Property Pages.

In the Property Pages dialog box, click the Start Options tab.
Under Server, click Use custom server.

In the Base URL box, type the URL that Visual Web Developer
should start when running the current Web site. You can use localhost,
your machine name, or an assigned domain name for your IP.

From that point on, the VS.NET IDE will not use the internal web server,
but will use IIS to open your pages, i.e., if you are working on default.aspx,
it will be opened as : http://localhost/default.aspx

Oct 22, 2007

Compelling features in SVN. But, rarely used.

I have been using SVN for source control more than two years now. But, i haven't bothered to try out some of the features. Typically, we want to use those primitive features that are easy to understand or rather familiar to us. Checkout, Commit, Update, Show log, Diff are primitive and commonly used commands, as we mostly do Update and Commit on a daily basis. Diff is used while merging code. These commands are sufficient for simpler quotidien tasks.

But, definitely not sufficient if you are to merge a history of changes from one branch to another. I stumbled across 100s of checkins on one branch to be merged into another. Another twist was the number people who did these checkins and there were checkins by multiple persons on the same file. As a relief, i was asked to merge only my checkins from one branch to another. Exactly not a relief, but a pain, as many people had done changes to the files i modified over a period of time. I am using Tortoise SVN as client. So, my experience revolves around the tool. Still, i believe the terms and functionality are similar with respect to SVN and CVS immaterial of the client used to access the code repository.

So, the problem definition in one line:
"Pull out all your changes from one branch over a period of time and put it into another branch"

Setup: I have branch Origin and branch Target to merge my files.
Better way to tackle this:
Step 1: Select the source branch folder and go to Show Log to view the history of changes on the branch.
Step 2: Select the range of changes to view based on either Date or Revision no.
Step 3: Sort the list based on Author.
Step 4: Select the entire list of checkins done in your Author name. This action will show a list of files in the lower window. These are the entire list of files that were modified in the selected list of checkins. So, you have all the files that you modified during those checkins. Copy the list to somewhere. And, these are the files u need to merge into the Target branch. Hooray!
Step 5: Having got the list of file you need to be concerned about, next challenge would be seperate out the changes done to the same file by yourself and others. Afterall, you need to be concerned about only your changes done to the file. Previously, i would have went through Diffing two revisions. But, there is these Blame functionality. You can click on a file to be merged and do a Blame with start and end revision number. After a little time munching the bits and bytes, SVN will pull out the line by line changes made every single person on the file over the period. Awesome it is!

Another interesting functionality is the concept of Patching. Creating and Applying patch are two phases of patching. When a dev has made a bunch of code changes and needs to send it to a reviewer or configuration manager, he need not send the files seperately to the recepient. Instead, he can create a Patch which is nothing but a unified diff of working and base copy. After reviewing the unified diff(Patch), the reviewer can simply Apply the patch on the repository.

Oct 19, 2007

Synergy - cool software based KVM

The other day, my colleague was breezing his mouse and keyboard between his PC and notebook. displays. I have seen people having the bulky KVM switch box that powers users to switch between multiple PC displays. Kind of a mission control center on ur desk.. hehehe. Suprisingly, this person didn't have any such hardware stuff beneath his desk. A peek into his cubicle and this amazingly simple software called Synergy takes my breath away! Alright. No more spinning the wheel. Synergy is a virtual KVM switch implemented in software. For those dudes hearing that word for the first time, wiki here. Synergy is a client-server solution(obviously) and its Open-Source dude.

First thing home, downloaded this software from their official site. Got it installed on my two notebooks running XP and Vista. Got one of the installation as server and other as client. And, here i go. Now, i could use the mouse and keyboard of the notebook running my Synergy server to access the desktop of the notebook. So, i was moving the mouse connected to my first notebook and just crossed over to the desktop of the adjacent notebook. And, i was typing in the keyboard of first notebook to see the letters appear on the MS Word running on the other notebook.

This link has an awesome description of installing and configuring Synergy. Happy crossovers across your displays.


Sep 1, 2007

Get rid of blank lines appearing before the table in blogger

I spent quite sometime evaluating my simple table HTML code which was creating lot of blank lines before the table itself. Below is a sample table.












JapanGermanyUSAKorea
ToyotaBMWFordHyundai


I used the following code for table construction.

<table ><tbody><tr>
<tr>
<td >Japan</td>
<td>Germany</td>
<td>USA</td>
<td>Korea</td>
</tr><tr>
<td >Toyota</td>
<td>BMW</td>
<td>Ford</td>
<td>Hyundai</td>
</tr>
</table>

The Html code looks fine. But, from where are these blank lines appearing infront of my table? Reason? Simple. The Formatting section of Settings tab has the below option.

A Yes for this option would mean that, every Enter will be replaced by a line break tag in the HTML and therefore the blank lines before the table.

A quick and easy(or not so) solution would be to construct the table without typing Enter key during the process. My reformatted table here with typing Enter within the table HTML code:
JapanGermanyUSAKorea
ToyotaBMWFordHyundai

There is another CSS solution to fix this.But, the css needs to be applied to every table we add.
Apply the below CSS code to your table and no dirty blank lines anymore.

<style type="text/css">.nobr br { display: none }</style>
<div class="nobr">
Your table HTML code goes here
</div >

CSS solution courtesy blog.

Any other hack? feel free to post a comment!