« Statistical Analysis of JEE 2009 Results | Main

YLike: A hackday project

You can get the details, including an introductory video and installation instructions, on Ylike page. What I want to talk in this post is the story behind the hack.

Like most early online communities, the graduating class of 1989 from IIT Kanpur has a Yahoo! group: iitk-89. It was created way back in 1999 and was quite active till a few months ago. We discussed stuff that our most other friends would find uninteresting. Some one will send a link to an article that he (there were girls in our batch but they rarely participated) liked or found outrageous and then a heated discussion will ensue. Sometimes we collectively solved mathematical puzzles. It was fun.

But then a dispute arose about an off hand comment made by one the members. Without going into details, I'll only say that this incident polarized the group and the nature of discussion became very different. At this point, one of the members wondered: "it would have been nice if Yahoo! allowed a simple form of expressing likeness/dislikeness of posts". Posting response to a message you disagree with takes too much energy, is seen as an attack and is delivered as email to everyone in the group. A click to express agreement or disagreement which is then aggregated and shown as count to only those who visit the group pages would be milder and much more effective. Think of this as simple yes- or no- nodding of head during normal conversation. These are cues that get picked up and changes the conversation in subtle ways before it gets to heated and loud verbal exchange.

I kept thinking that adding a capability like this would be very beneficial to the Yahoo! group communities. So when the opportunity came this month in form of Yahoo! (internal) hackday, I coded up YLike, a hack that adds like and dislike buttons. With a little bit of extra work, I was able to make it work on my personal server and make it available to others. Visit Ylike page and give it a try. If you are a member of iitk-89 group then you can even see my votes for some of the recent messages.

Comments (2)

Kevin Buchs [TypeKey Profile Page]:

Pankaj,

I was searching the web for a "Which" command for Windows/DOS and found your 2004 posting, http://pankaj-k.net/weblog/2004/11/equivalent_of_which_in_windows.html . I started with that as a basis and extended it to try different extensions in pathext shell variable. I just thought I would share it back with you. I'll try to paste it here. I don't like that FOR loop, but that seems to be the best that can be done.


@echo off
rem --------------------------------------------------------
rem File: which.cmd
rem Description: Windows equivalent of Unix which command
rem Author: Pankaj Kumar
rem Copyright 2004 Pankaj Kumar. All Rights Reserved.
rem License: This software is available under GPL
rem ---------------------------------------------------------

rem If filename given as argument does not match, try with various
rem executable extensions (pathext shell variable). This assumes that this
rem script, which.bat, is found in your path.

setlocal

if "%1" == "" goto noArg


set fullpath=%~$PATH:1
if "%fullpath%" == "" goto notFoundPlain
echo Found in PATH: %fullpath%
goto end


:subr_Test
set fullpath=%~$PATH:1
if "%fullpath%" == "" GOTO :eof
echo Found in PATH: %fullpath%
exit /B -1

:notFoundPlain

for /f "delims=; tokens=1-26" %%a in ( "%pathext%" ) do (
if [%%a] NEQ [] call :subr_Test %1%%a
if [%%b] NEQ [] call :subr_Test %1%%b
if [%%c] NEQ [] call :subr_Test %1%%c
if [%%d] NEQ [] call :subr_Test %1%%d
if [%%e] NEQ [] call :subr_Test %1%%e
if [%%f] NEQ [] call :subr_Test %1%%f
if [%%g] NEQ [] call :subr_Test %1%%g
if [%%h] NEQ [] call :subr_Test %1%%h
if [%%i] NEQ [] call :subr_Test %1%%i
if [%%j] NEQ [] call :subr_Test %1%%j
if [%%k] NEQ [] call :subr_Test %1%%k
if [%%l] NEQ [] call :subr_Test %1%%l
if [%%m] NEQ [] call :subr_Test %1%%m
if [%%n] NEQ [] call :subr_Test %1%%n
if [%%o] NEQ [] call :subr_Test %1%%o
if [%%p] NEQ [] call :subr_Test %1%%p
if [%%q] NEQ [] call :subr_Test %1%%q
if [%%r] NEQ [] call :subr_Test %1%%r
if [%%s] NEQ [] call :subr_Test %1%%s
if [%%t] NEQ [] call :subr_Test %1%%t
if [%%u] NEQ [] call :subr_Test %1%%u
if [%%v] NEQ [] call :subr_Test %1%%v
if [%%w] NEQ [] call :subr_Test %1%%w
if [%%x] NEQ [] call :subr_Test %1%%x
if [%%y] NEQ [] call :subr_Test %1%%y
if [%%z] NEQ [] call :subr_Test %1%%z
)

IF %ERRORLEVEL% EQU 0 goto notFound
goto end

:noArg
echo No Argument specified
goto end


:notFound
echo Argument "%1" not found in PATH


:end
endlocal

Kevin Buchs [TypeKey Profile Page]:

Pankaj,

I was searching the web for a "Which" command for Windows/DOS and found your 2004 posting, http://pankaj-k.net/weblog/2004/11/equivalent_of_which_in_windows.html . I started with that as a basis and extended it to try different extensions in pathext shell variable. I just thought I would share it back with you. I'll try to paste it here. I don't like that FOR loop, but that seems to be the best that can be done.


@echo off
rem --------------------------------------------------------
rem File: which.cmd
rem Description: Windows equivalent of Unix which command
rem Author: Pankaj Kumar
rem Copyright 2004 Pankaj Kumar. All Rights Reserved.
rem License: This software is available under GPL
rem ---------------------------------------------------------

rem If filename given as argument does not match, try with various
rem executable extensions (pathext shell variable). This assumes that this
rem script, which.bat, is found in your path.

setlocal

if "%1" == "" goto noArg


set fullpath=%~$PATH:1
if "%fullpath%" == "" goto notFoundPlain
echo Found in PATH: %fullpath%
goto end


:subr_Test
set fullpath=%~$PATH:1
if "%fullpath%" == "" GOTO :eof
echo Found in PATH: %fullpath%
exit /B -1

:notFoundPlain

for /f "delims=; tokens=1-26" %%a in ( "%pathext%" ) do (
if [%%a] NEQ [] call :subr_Test %1%%a
if [%%b] NEQ [] call :subr_Test %1%%b
if [%%c] NEQ [] call :subr_Test %1%%c
if [%%d] NEQ [] call :subr_Test %1%%d
if [%%e] NEQ [] call :subr_Test %1%%e
if [%%f] NEQ [] call :subr_Test %1%%f
if [%%g] NEQ [] call :subr_Test %1%%g
if [%%h] NEQ [] call :subr_Test %1%%h
if [%%i] NEQ [] call :subr_Test %1%%i
if [%%j] NEQ [] call :subr_Test %1%%j
if [%%k] NEQ [] call :subr_Test %1%%k
if [%%l] NEQ [] call :subr_Test %1%%l
if [%%m] NEQ [] call :subr_Test %1%%m
if [%%n] NEQ [] call :subr_Test %1%%n
if [%%o] NEQ [] call :subr_Test %1%%o
if [%%p] NEQ [] call :subr_Test %1%%p
if [%%q] NEQ [] call :subr_Test %1%%q
if [%%r] NEQ [] call :subr_Test %1%%r
if [%%s] NEQ [] call :subr_Test %1%%s
if [%%t] NEQ [] call :subr_Test %1%%t
if [%%u] NEQ [] call :subr_Test %1%%u
if [%%v] NEQ [] call :subr_Test %1%%v
if [%%w] NEQ [] call :subr_Test %1%%w
if [%%x] NEQ [] call :subr_Test %1%%x
if [%%y] NEQ [] call :subr_Test %1%%y
if [%%z] NEQ [] call :subr_Test %1%%z
)

IF %ERRORLEVEL% EQU 0 goto notFound
goto end

:noArg
echo No Argument specified
goto end


:notFound
echo Argument "%1" not found in PATH


:end
endlocal

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About

This page contains a single entry from the blog posted on March 27, 2011 10:35 PM.

The previous post in this blog was Statistical Analysis of JEE 2009 Results.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.33