Monday, March 22, 2010

Freenode Fails.

So, if you don't know what freenode is, you can stop reading right now; you won't find it interesting at all.

Out of the rest of you, those who use freenode regularly must've been around when for 2-3 days, we all faced massive netsplits due to javascript spam. Funnily enough, the solution for that problem was bloody easy:

iptables -m u32 --u32 0x0>>0x16&0x3c@0xc>>0x1a&0x3c@0x0=0x504f5354 -m recent --set --name lastmeasure --rsource -j DROP

Yes. That's it, and freenode couldn't do it for unspecified reasons. They kept telling us "Oh, we'll be moving to ircd-seven soon, and it'll be fixed then". I bought it. Everyone did. And true, no more spam and netsplits! For now.

But of course, the total failure level didn't improve at all. Now, people who don't auto-identify have a life of pain up their hands. Here's what happens when you identify after you've joined a channel:

* NICK (~HOSTNAME@IP ADDRESS) has quit: Changing host
* NICK (~HOSTNAME@CLOAK) has joined #CHANNEL

Yeah... your ip address gets displayed to everyone in the channel.

No, I lied, it doesn't get displayed to everyone. Everyone except you can see it. So you don't even know your ip address is getting displayed to everyone and quite possibly being logged in the channel. NOW WHOSE HARE-BRAINED IDEA WAS THAT?

Their "solution" for this? "Please use auto-identify, and no, we don't care about the reasons behind you not auto-identifying in the first place."

Oh, but there's more. If you have nick protection turned on, if you don't identify within 30 secs, your nick gets changed to GuestXXXX right? And the nick you were using gets "protected" right? With the move to ircd-seven, someone had to bright idea to make it "protected" against use by ANYONE including YOU. So you're left nickless unless you do a Quick Draw McGraw after logging in.

Dudes. WTF?

And don't give me the bullshit about "It's a free service, you get what you paid for". Other free networks get this right without getting funding from Canonical and hardware from Osuosl.

Wednesday, March 10, 2010

Random observations about Communication

So, this post is not really technical, but I'm posting it to the Gentoo planet anyway because it applies to the social part of Gentoo. I see a lot of people making the same mistakes that I once did, or saw people make while interacting socially within Gentoo. This post is not in response to someone in particular; more like in response to the "feeling" I get.

Communication Problems (technical): when communicating over inefficient media such as email or IRC, keep in mind that the other person has no way of knowing what you meant, or felt, when you said something. Due to this, it is easy to cause insult, and even easier to be misunderstood or misquoted. No one knows your mood when you type on the net.
Solution: Make ample usage of smileys; make it clear what you mean, in as few words as reasonable. When on the receiving end, give the other person the benefit of doubt. It's quite easy to misunderstand what someone said. When in doubt, re-read and re-interpret.

Communication Problems (social): I've personally found that the root cause of 110% of arguments that escalate is a severe and dire lack of proper and clear communication. People are just unable to express what they mean, what they want, and what they are thinking in clear, easy-to-understand terms. Part of the problem is that "clear, easy-to-understand terms" vary among people. The other part is that different people think in different ways, and English is usually not their native language.
Solution: To be able to communicate effectively with someone, you need to understand how they think first. This is obviously too much work to do with everyone you meet, but if you're going to be working with or around someone; take the time out to empathize with their world-view. If you want to convince someone of your opinion, put yourself in their shoes and see it through their eyes.

Communication Problems (length): This is one problem that seems to plague people a lot, and often they don't even know it. Writing 4 paragraphs when 1 would've sufficed is a bigger problem than just writing one cryptic word. A lot of analogies are coming to my mind right now to explain this, but I'm going to go with this: 'tl;dr'.
Solution: When you write something, keep in mind that time is a precious commodity, and by writing a long mail/response, you will waste their time if they choose to read it. And hence, most people will not read it. If you want them to read it; spend some of your time and make it easier to read. Make it short.

Communication Problems (rage): E-mails written and IRC conversations conducted in anger. You read an email, see someone make a commit, or just something they said on IRC; and you go into RAGE mode. It makes you furious. You don't understand how the guy can be so bloody stupid. Maybe it's the last frickin' straw. You flip off and start shouting. The other side may be oblivious to your distress; or worse, they flip off as well. When the dust settles, pandas and kittens make sad faces at your blood pressure and the decisions you made.
Solution I've been on both the rage-side and the rage-causing side, and I can tell you this: It doesn't help anyone. If you get angry at someone on the internet, stop. Stop and get off the computer. Come back later. If you cause someone to get angry, pause. Pause and figure out why. Think to yourself; maybe you're wrong, maybe they misunderstood you, maybe they had a bad day. But first off, calm the other guy down. Stop arguing, and take a walk. Come back later and try to reconcile your differences. Fact: 149% of arguments lead to burnout and heart disease.

Now, I don't expect people to keep all this in mind all the time. Hell, I'm writing this now, but I know I'll never be able to stick to this 100%. The point I'm trying to make is that You're Fallible. Everyone is. Just keep that in mind all the time, and just remember the above things vaguely (you can bookmark it for reference!). I'm sure we can all do better than we're doing right now.

Monday, February 22, 2010

Gentoo Mozilla Team meeting decisions

On Feb 21st, Sunday, the Gentoo Mozilla Team had an informal meeting to discuss some of the recent changes which have a large-ish impact on users. Below is a list of them and the decisions that were taken. After the list is a description of each decision.

SQLite with Firefox: Firefox will use the bundled sqlite by default. Users can select the system-wide sqlite by setting USE=system-sqlite.

Ebuilds for Extensions in-tree: The Gentoo Mozilla team will not ship ebuilds for extensions such as noscript and weave anymore. We will only have ebuilds for extensions which are linux-specific and compiled; such as enigmail.

Firefox and Thunderbird Alphas and Betas: In addition to the overlay, we are going to start placing alphas and betas of Firefox and Thunderbird in the tree with a package.mask and a big fat ewarn during installation. Adventurous users are encouraged try them out but report bugs only in the Gentoo bugzilla. Do not go to upstream unless we ask you.

NOTE: These ebuilds will not have language packs since upstream does not release packs for these.

NSS/NSPR Changes: This involves various cleanups to the ebuild, and moving of the libraries from ${libdir}/{nss/nspr} to ${libdir} and removal of the /etc/env.d/08{nss,nspr} LDPATH entries alongwith corresponding changes in firefox-bin and thunderbird-bin launchers. These changes should be completely transparent to the user.

Revival of #gentoo-moz @ FreeNode: The mozilla team has expanded in recent times, and with that we have decided to revive the ages-old #gentoo-moz irc channel. Users are welcome to idle, discuss, and ask for help on that channel. Come on over!


Why we made these decisions:

SQLite with Firefox: We've done flip-flops on using the system-installed sqlite for for XULRunner and Firefox. Initially, we used the internal one, but folks reported bugs about that (we prefer not to use bundled libraries), so we switched to the system sqlite.

Then with the next version of Firefox, people started reporting major bugs with using the system sqlite and we temporarily disabled it. Once the problems were resolved, we added USE=+sqlite to use the system-installed sqlite by default.

Recently, another issue cropped up: upstream mozilla was getting bug reports that the sqlite db was insecure, and trivial tools like grep could be used to get (private) deleted information from it. They traced that to distros using the system sqlite which didn't have support for SQLITE_SECURE_DELETE. They then made that a mandatory configure check with 3.6 (and we added a dep on the system sqlite for it). Soon, we started getting bug reports from people who did not want that enabled system-wide (since it zeroes out the data when deleting it, which has a performance penalty). Upstream made it clear that they would not make the check optional.

In the end, we decided to make firefox use the internal sqlite by default, and allow the user to select the system installed sqlite via USE=sytem-sqlite if they are ok with secure-delete being on system-wide.

Ebuilds for Extensions in-tree: We found that a number of extensions were being released at a very swift rate which meant two things:

  1. Bumping ebuilds was very tedious, which led to them becoming stale very quickly
  2. Judging whether an ebuild can go stable was not possible, and most often the extension developers just want the users to use the latest release.
This offset the benefit of users being able to install extensions system-wide and have it managed by portage. Users can still manually install and manage system-wide extensions if they so wish. They are also free to copy the old ebuilds to their local overlays and use them if they wish.

Firefox and Thunderbird Alphas and Betas: Mozilla Upstream has been complaining that their betas and release candidates don't get much testing on Linux since all the distros ship only the final releases. This means that bugs are caught very late, and aren't fixed till the next major version. To help with this, we've decided to revise our release strategy and give a bit more visibility to our alphas and betas (which are generally kept in the overlay) by pushing them to the tree under package.mask, and with large ewarns all over the place. Users are strongly advised NOT to report bugs with these directly to upstream. Please use the Gentoo Bugzilla.

NSS/NSPR Changes: the libraries for nss and nspr were installed in a prefix due to collisions with other packages (libssl.a for instance). Recently, Google decided to use portage for cross-compiling and managing ChromeOS. This combined with some bugs reported with NSS/NSPR led to some investigation, and a voluntary review of the ebuilds.

This led to a number of changes which included disabling static libraries for NSS and NSPR, and moving the rest to ${libdir}. Further details on the changes and their "why" are listed on the review bugs linked above.

Sunday, February 21, 2010

The Gift of Attention

I cannot stress this enough. When someone asks you to listen, listen to them. When they ask you to listen to their favourite song, or to a song they think is beautiful, listen to them and listen to it. When they show you something that moves them, look at it and try to see how it moved them. They find it special, and are sharing it with you because they find something in you that is special. Don't squander that special gift away. Spend a little time. You'll understand them better.

Friday, February 19, 2010

Haruki Murakami

When I was a kid, in 2nd grade, my dad was posted in the Himalayas. Families weren't allowed there, so I used to live with my mother at her mother's house. Right above the bed where I used to sleep with my grandmother, was this strange painting of a house. The canvas was a dark cloth, and the painting was made of light-grey outlines of a hill with a house on it. It had a slanting roof and a chimney with a hand coming out of it. I used to stare at this terrifying picture every night while going to sleep. It was much later that I realised it was actually smoke that was coming out of the chimney. Smoke that looked very convincingly like a hand.

Whenever I think of this picture, feelings of horror are mixed with the beautiful memories of living with my grandmother. Listening to the watchman making his rounds around the houses, listening to tales spun by my grandma, peeking outside the vertical-tilting window to see the moonlit houses. That green Russian folktales book I had, and Baba-Yaga. Chasing dust-mites in beams of light, playing with a 1991 calendar; with faint memories of something big going on. The house in the painting itself must have featured in many of my dreams and my nightmares. All these memories mix and mingle to evoke feelings from every corner of my brain. I am left with tears in my eyes, heaviness in my heart, and regret in my mind that all of it is now gone.

And somehow, everytime I finish a short story by Haruki Murakami; all these feelings rush up to me. Whether the story had a happy ending, or challenged my stomach; the nostalgia, the beauty, the love, all rushes up to me. Each story reminds me of my love for thunderstorms. For stormy nights, that are spent alone. Loneliness that I cannot bear, but the feeling of which I love.

I remember so much that I just want to lose myself in my memories.

That is Haruki Murakami for me.