Poojan (Wagh) Blog

Requests for comment

Open Source Software: time-to-market enhancer

without comments

I asked a coworker of mine what he thought about open source software. He said he “didn’t get it”. I should point out at this point that the said coworker leans to the left. He viewed the open-source movement as communistic, and questioned why software should be free.

I view things a bit differently. Indeed, I agree that the idea that software should be free is communistic. However, I also think that open-source software fills a unique function in a capitalist society.

Read the rest of this entry »

Written by PoojanWagh

February 1st, 2009 at 8:19 pm

TDP: Time-Dollar Product

with one comment

I learned a lesson over the last two months. It starts with off-site backup software for my computer, and ends in me spending money.

I’ve been trying to get the most out of my DreamHost account—or really, I’ve been trying to recoup the $10/month I pay for them by trying to save the $5-$7/month I pay for JungleDisk/S3. When I write it, it seems silly: the $10/month I pay to DreamHost is well worth it. They do web hosting very well.

Similarly, JungleDisk has a very good backup solution on Amazon S3’s service. Namely, the backups are:

  • Off-Site
  • Encrypted
  • Past versions (modified/deleted files stay around for a specified time)
  • Set and forget (their Windows client does the backups every night)

Nonetheless, when DreamHost announced 50GB of personal backup space with each account, I thought, “I’m getting screwed.” I promptly began a search for backup software which supported SFTP (DH’s only access at the time was FTP/SFTP) and had all the features listed above.

The end result is that I found that I discovered a universal constant called Time-Dollar Product (TDP). Every time I try to save or reduce money (dollars), I end up spending a great deal more in time. The two seem inversely proportional. Consequently, it seems like the product of time and money is constant; when one goes down, I spend more of the other.

Most people will want to stop here. The technically inclined will want to continue.

Read the rest of this entry »

Written by PoojanWagh

December 20th, 2008 at 6:03 pm

Posted in Uncategorized

What people Google at work

without comments

I’m using BLVD Status to track incoming (and outgoing traffic) to my circuit design blog. They allow me to track what web searches result in links to my blogs. One curious thing about this service is that these searches do not seem to be just the searches that end up my blog, but all searches that lead to all sites that are running BLVD Status.

So, when I noticed that someone did a google search for “svn cadence”, and then I realized it was me while I was at work, I got a bunch of queries that people had done from work. The term visitor below is really my employer’s web proxy that originated the search. Note that this includes many people and is non comprehensive (it is biased sub-set of searches done at my employer). Here they are:

Keywords used by this visitor Date / Time used
1 619-269-0041 9.8.08 7:27:47 PM
2 breakdance kid 8.26.08 4:38:00 PM
3 crazy japanese news 8.25.08 6:39:54 PM
4 crazy japanese news 8.25.08 6:21:05 PM
5 gazebo arizona 8.22.08 8:55:08 AM
6 tracking downloads with google analytics 8.22.08 11:20:04 AM
7 automatic cat litter box 8.21.08 10:33:36 PM
8 hong kong stuck in park bench 8.20.08 3:06:45 PM
9 can I sue insurance third party insurance company for higher rates 8.20.08 10:15:15 AM
10 iPaq H3650 8.18.08 7:55:39 PM
11 steven covey 8.18.08 4:01:45 PM
12 steven covey 8.18.08 4:01:24 PM
13 antec notebook cooler portable 8.15.08 3:30:14 PM
14 how do gays recruit 11.7.08 4:38:28 PM
15 the story of FBI agent John Connely 11.6.08 4:06:41 PM
16 the story of FBI agent John Connely 11.6.08 4:05:29 PM
17 svn cadence 11.21.08 7:54:16 PM
18 iphone yelp vs yellow pages 11.19.08 3:22:53 PM
19 disneyland california 11.18.08 4:29:21 PM
20 download pics from orkut 10.9.08 7:32:41 PM
21 google browser adobe flash plug in 10.24.08 1:20:14 PM
22 the biggest loser sponsors 10.10.08 11:15:35 AM

No: there’s really not any useful information there, except that someone seems to be homophobic (although the resulting links do not). I guess the moral is to be careful what you do at work.

Written by PoojanWagh

November 27th, 2008 at 9:53 pm

Posted in Uncategorized

I’m Leaving Motorola

with 2 comments

I’ve accepted a position elsewhere. My last day of employment at Motorola will be Nov. 21st. Before I get into where I’m going, I’d like to reflect on / point out a few things with embedded humor:

  • I’m not dissatisfied with my position at Motorola. Indeed, I am in an ideal environment for someone who both likes to invent and innovate, and likes to see things ship. The role in which I found/positioned myself allowed me to investigate some really new technology, without the ridiculous schedules that plague market-reactive engineering environments. At the same time, the stuff we made actually gets shipped, tested, and developed further. It impacts customers.
  • I have learned how to present and explain things to external customers that aren’t up to speed with the daily tasks of the project. I’m still not great at it, but I am comfortable doing it–and I’m better at it due to mentoring by some amazing communicators.
  • I’ve learned a lot about making decisions and plans (strategy). It is always the case (and always going to be) that we can’t do everything. Figuring out what not to work on can be as essential as figuring out what to work on. It’s important to have some criteria guiding these decisions. Goal-setting is important to decision-making. You don’t have to write down the goals, but have them.
  • I’ve learned that it’s always better to be pleasant and kind about technical disagreements. Okay, all disagreements. Even to the people that bug you. They usually think they’re helping. Sometimes, the other guy/gal is right. Okay, more than sometimes. It’s very easy to think that what you’re doing is optimal, because you’ve already laid out the plan and can’t see the other alternatives. An open mind is essential.
  • At the same time, don’t spend time arguing with others if you’ve convinced yourself. There’s always going to be things you could do better. Accept that what you do won’t be perfect–and other people will point it out, but it wasn’t their decision to make, was it? You’re in charge for a reason. Take ownership of what you do, and you will do it better. Get someone else to write the project report, though.
  • The most important thing is the business. We’re not here to have fun. We’re here to make money for the company. Almost all the time, you can have both. Question if what you’re doing is what is best for the customer/department/business. You may have to do some things that aren’t fun, but most of the time, success will follow–and that’s always fun.
  • I have had the honor of being a member of very passionate groups that are doing amazing things with technology. These amazing things don’t get realized all of a sudden on a glorious day. The problems are so complex that one ends up solving very small problems for a long period of time to get incrementally closer to the goal. It’s hard work, and believing in the goal is helpful. Having a management team (and customer) that understands the labor of research is essential. Celebrating small advancements (for example, as feedback to your peers) makes for good teams.

I’m not leaving because things are bad at Motorola. In fact, it is the focus on technological work that makes me want to expand into more areas of technology. If I wasn’t happy at Motorola, I would probably be getting my MBA and be considering business instead. To all executive recruiters: I am not ruling the MBA out.

Where am I going? To a private hedge fund in Chicago. Why? Because:

  • I want a change. I want to learn something new. I want to broaden my knowledge.
  • I like the environment. Working in the financial industry is good. Working with technology is good. However, it’s more important to me that the firm invests in their employees. They’re willing to hire a person–okay, it’s me–because they think he’s smart. I like their attitude toward people.
  • The people I know at the firm are some of the most ethical and just people I know.
  • This opportunity isn’t going to come around again.
  • Free lunch.

Will I be a financial analyst? No.

Will I have stock tips? No.

What will I be doing? I don’t know: stuff. Smart stuff. Mostly software initially.

Is this change necessary? Absolutely not. However, there’s no reason to wait until change is necessary to develop and grow. If you–well, not you specifically–embrace change on your terms, rather than the terms of your environment, you get to pick how you develop, and you get to pick your strengths. There’s a school of thought that states that evolution picks convenient solutions, not optimal solutions.

I sincerely plan to stay in touch with the people I’ve met at Motorola and continue to keep up with my friends from Freescale. This blog is a good way to contact me (see voicemail page to the left). Or, consider subscribing (RSS/Atom or Email).

Written by PoojanWagh

November 7th, 2008 at 4:26 pm

Best Viral Video Ever | Where The Hell Is Matt?

with one comment

My kids can’t get enough of this:
Where The Hell Is Matt?

To be honest, neither can I. IMHO, It’s better to view them chronologically: Dancing 2005 (in the lower right), then Dancing 2006, then Dancing 2008. Props to Stride Gum.

Written by PoojanWagh

November 2nd, 2008 at 8:35 am

Posted in Uncategorized

The non-utility of twitter | Mark Horstman: “Twitter, I Don’t Like It”

with one comment

For me, the problem isn’t so much attention, it’s SNR (signal-to-noise ratio). There’s just too much noise in Twitter to make out any signal. And that’s why it’s not worth following while you work.

Read the rest of this entry »

Written by PoojanWagh

October 30th, 2008 at 4:23 pm

Brief timing statistics of my vote this morning

without comments

I voted early this morning. I thought it might be better to go in today rather than on Tuesday. I wasn’t the only one. There was a long line of people at the early voting place this morning. (This isn’t the same place that they conduct regular elections on voting day.)

Many people saw the line and just decided to come back later (I hope). Anyway, the quantitative analyst geek that I am, I started timing how long it took. I started the timer on my wristwatch and started counting people as they left the polling place.

In 45 minutes, I counted 38 people. That’s 1 minute 11 seconds per person.

The process was as follows:

  1. Wait in line for about 50 minutes
  2. Wait at the door of the voting room until there’s an open spot at the table
  3. Go to the table and sign a little sheet of paper; hand it to the clerk
  4. The clerk at the table compares your signature to your photo ID and looks up your name in the database
  5. You are given a 4-digit access code by another clerk
  6. You wait for an available voting machine
  7. You punch in your access code into the machine
  8. You vote
  9. You confirm your votes, see a print-out scroll through a window confirming your votes
  10. You leave

There were 4 voting machines at the polling place. This number is likely a lower than would be there on election day, so it’s likely that things will get done quicker on election day. For example, if there were 8 machines, I’d imagine that they could process votes at a period of 36 seconds per person.

The clerks who had to sign me in and hand me the access code wasn’t a bottleneck at all. It took people longer to actually vote at the machines (4 at a time) than it took the clerk to process people coming in. But we can safely assume that there will be more people around on election day. Keeping the ratio of clerks to voting machines at 2:4 would be safe. So, to process 36 seconds per person, they would need two clerks and 8 voting machines. Let’s hope they have enough.

In total, it took me about an hour from when I got in line to when I was done voting.

Written by PoojanWagh

October 30th, 2008 at 1:53 pm

Barack Obama is screwed | So is John McCain | But mostly the human mind

with one comment

Disclaimer: I don’t intend to proclaim or disseminate my political views in public. Instead, I vote in private. I believe that both Barack Obama and John McCain are worthy candidates of the Presidency. John McCain is a national hero; the outcome of the election won’t change that.

I am recording my rambling thoughts on the psychological effects on the election. Your constructive feedback, as always, is welcome. No flames, please.

I started reading Kluge: The Haphazard Construction of the Human Mind yesterday. While Gary Marcus was going through the lists of cognitive errors to which the human mind is prone, I couldn’t help thinking of the election. It seemed at first that pretty much every error would go in John McCain’s favor. Namely:

  1. Memory Priming: There have been some pre-election associations with the name “Barack Obama” and the characterizations “Muslim” and “terrorist”.
  2. Attachment to the familiar: “If it’s in place, it must be working.” Evolution seems to have preferred sticking with the status quo rather than accepting change. This is especially true in stressful times (think credit crisis). Curiously, McCain’s attempt to disassociate himself with Bush might not be the best strategy. Obama seems to be trying to leverage this association, but it might not be in his best interest. Indeed, I think most people associate Bush with a present national crisis, but there is a irrational human tendency to stick with precedence (regardless of its flaws).
  3. Minority effect: voters tend to vote for candidates in the “majority” demographic rather than “minorities”. This prejudice includes voters in the minority.

The one thing that might curb all these effects is that I think the Barack Obama campaign understands these phenomena. They’re not relying on a seemingly large lead in the polls to materialize on election day.

Further inspection reveals that McCain is also susceptible to similar errors:

  1. Memory Priming: By associating McCain with Bush (and therefore a sad state of national affairs), the Obama campaign is priming the voters’ memories. One could make the case that this association is valid. However, it is not necessary to correlate McCain’s and Bush’s votes to prove a correlation between the economic or political state of the country and McCain’s past votes.
  2. Minority effect: McCain’s age gets very little discussion as a minority segment. However, there is an association here that McCain will under-perform as a president due to his age. Note that I believe the actuarial risk that Palin might become a president to be a valid risk; whether Palin will be a good president is separate issue than whether McCain will be a good president.

There’s another problem that plagues supporters of either party (Conservative/Republican | Liberal/Democrat)–especially the most passionate: motivated reasoning. It is far easier to prove an idea that you already believe in, rather than to search for all the available material out there to disprove any idea. This consideration brings back memories of the 2000 election, when the votes were in dispute. I remember seeing pictures of Republicans and Democrats screaming at each other. Each side had convinced itself very passionately that it was right–no doubt by invoking some amount of motivated reasoning. It’s clear that each side thought if the other’s candidate won, the nation would immediately plummet into disrepair. Of course, that didn’t happen.

Instead, it took 8 years. Ha!

My point is that we should each beware of the heavy marketing that we are being fed as voters. We should each try to see the other points in any argument. Keep an open mind. Each of us should remember that we are all American…

Except Joe Biden: He’s a puppy-killing Communist, and Joe is not even his real first name.

By the way, the book is not particularly generous to George Bush.

Written by PoojanWagh

October 27th, 2008 at 2:51 pm

Picture-by-Picture: Setting up Mercurial with WikidPad

without comments

I’m personally using Git to version-control my WikidPad files. However, Mercurial (and especially TortoiseHg) is equally well suited for this function. In many respects, Mercurial is simpler to use than Git. The only shortcoming I had with Mercurial is that there’s no managed branches; to branch, you create an independent copy of the whole repository (clone it).

Nonetheless, for most people, Mercurial will not only suffice but give quicker rewards than Git.

I don’t use Subversion for this purpose, because subversion has a centralized approach which requires a repository, separate from a working copy. Importing, merging, branching, etc., with subversion is a bit of a hassle. This “hassle”, of course, is purely personal taste; others will (strongly) disagree. In fact, for many other purposes, I strongly prefer Subversion to Mercurial/Git/etc.

Goal

By the time you’re done with the following steps, you should be able to:

  1. Place a WikidPad Wiki under version control
  2. Commit changes as files change
  3. Revert to prior versions Read the rest of this entry »

Written by PoojanWagh

October 21st, 2008 at 12:34 am

Laconica on DreamHost

with 4 comments

I got a laconica install going on DreamHost. I’ve been able to post from the web, but I’ve found that posting from email won’t work with DreamHost. The jury is still out on posting from Jabber, but I’m optimistic. I’ll update this post when I know more.

I was able to get notifications of new posts via email. I’m not sure if that’s useful. In my opinion, notifying from email is equivalent to a discussion group or mailing list.

Gimmesoda automatic script

I created a new domain and MySQL database/user using dreamhost panel.

Then, ran http://www.gimmesoda.com/2008/07/18/another-laconica-easy-install-script-update/ to install into ~/laconica.domain.tld

This actually worked! Except, its seems to be an older version of laconica. At minimum, it was useful for getting custom pear (right?).

Following Laconica README

Decided to download latest darcs copy. Moved the gimmesoda-install from ~/laconica.domain.tld to a laconica.domain.tld.bak directory and then downloaded the darcs copy using:

darcs get --partial http://laconi.ca/darcs/ laconica.domain.tld

Then, deleted database and re-created database called la_db (& MySQL user la_sqluser) using DreamHost control panel. Now, following README:

mysql -u la_sqluser -p -h mysql.domain.tld la_db < domain.tld/db/laconica.sql

Check to make sure:

[gorgon]$  mysql -u la_sqluser -p -h mysql.domain.tld la_db
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3326653
Server version: 5.0.67-log MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW TABLES;
+----------------------+
| Tables_in_la_db      |
+----------------------+
| avatar               |
| confirm_address      |
| consumer             |
| fave                 |
| foreign_link         |
| foreign_service      |
| foreign_subscription |
| foreign_user         |
| invitation           |
| message              |
| nonce                |
| notice               |
| notice_source        |
| notice_tag           |
| oid_associations     |
| oid_nonces           |
| profile              |
| queue_item           |
| remember_me          |
| remote_profile       |
| reply                |
| sms_carrier          |
| subscription         |
| token                |
| user                 |
| user_openid          |
+----------------------+
26 rows in set (0.00 sec)

Skipped user access, since mysql user should already have access. Found one more thing to do:

cd domain.tld/classes
cp laconica.ini la_db.ini

The .ini file needs to be the same name as the MySQL database name.

The above gave me basic functionality. I then tackled the following:

Pretty URL

Changed the config[‘fancy’] option to true. I then copied htaccess.sample to .htaccess (within ~/laconica.domain.tld). I then edited .htaccess and changed the line:

RewriteBase /mublog/

to be

RewriteBase /

I have to do this because .htaccess sits in the same directory in which I installed laconica.

Email

I set up a new email address at laconica@laconica.domain.tld. I specified the following in the config.php file:

#Email info, used for all outbound email
$config['mail']['notifyfrom'] = 'laconica@laconica.domain.tld';
$config['mail']['domain'] = 'laconica.domain.tld';
# See http://pear.php.net/manual/en/package.mail.mail.factory.php for options
$config['mail']['backend'] = 'smtp';
$config['mail']['params'] = array(
                                                        'host' => 'mail.laconica.domain.tld',
                                                        'port' => 25,
                                                        'auth' => true,
                                                        'username' => 'laconica@laconica.domain.tld',
                                                        'password' => 'xxxxxxxxxxxxxxx'
                                                        );
#For incoming email, if enabled. Defaults to site server name.
#$config['mail']['domain'] = 'incoming.example.net';

Note that that last (commented) line is redundant. Unfortunately, posting by email won’t work. What needs to happen is a php script needs to get executed upon receipt of an email. This can’t happen, because DreamHost doesn’t support email addresses being tied to UNIX accounts. I’d like to disable the laconica “Post by email” feature altogether, but I’m not sure how.

Jabber/XMPP

One nice feature with DreamHost is that you can host your own Jabber accounts. I set up a custom-hosted Jabber account laconica@laconica.domain.tld for a post/notify bot. It hasn’t activated yet, so I have no confirmation on whether it works. Anyway, here are the changes to config.php:

# xmpp
$config[‘xmpp’][‘enabled’] = true;
$config[‘xmpp’][‘server’] = ‘laconica.domain.tld’;
#$config[‘xmpp’][‘host’] = NULL;        # Only set if different from server
$config[‘xmpp’][‘port’] = 5222;
$config[‘xmpp’][‘user’] = ‘laconica’;
$config[‘xmpp’][‘encryption’] = false;
$config[‘xmpp’][‘resource’] = ‘zzzzzzz’;
$config[‘xmpp’][‘password’] = ‘xxxxxxxxxxxxxxxxxxx’;
$config[‘xmpp’][‘public’][] = ‘laconica@laconica.domain.tld’;
#$config[‘xmpp’][‘debug’] = false;

Written by PoojanWagh

October 15th, 2008 at 7:38 am

Posted in Web

Tagged with , , , , ,