23 October, 2014

MozFest 2014: (almost) Live Blog



Oct 25, 1730: Finished co-facilitating session on Contribution Pathways. We had the entire audience broken down in 5 groups, rotating per 8 mins to each focus station (pathways, mentorship, governance, system & data, recognition). Sorry - no device policy - hence, no photos!

Oct 25, 1500: Lunch & catching up with communications. Codepo8 dropped by. Ohai! :D


Oct 25, 1045: Session on Community Diversity & Inclusion. It was great to facilitate with you, Beatrice, Rebecca, Alifiyah, Leo, Ibrahima et al.


Oct 25, 0900: At the venue, Gunner on the stage. Audience in that awesome MozFest formation.

Oct 24, 2300: Beer with the folks, and then a long walk beside Thames. We should go and sleep. BTW, great stories, Manel!

Oct 24, 2100: Reps' community dinner. I'M A CARNIVORE... AWE YEAH!!!

Oct 24, 1800: Science Fair is ON. It's my third time &I'm equally boggled just I was on my first time at MozFest. Some really cool folks with really cool ideas. Anyone who's not here, are missing it - know it or not.


Oct 24, 1600: Slides are done, check them out! WARNING: 80+MiB download - for huge images in them. I like how nice it came out to be!


Oct 24, 1300: Collaborating with Manel on creating the Mozilla Reps' presentation slides for the science fair booth. She's awesome, and she really hates copying code blocks (she types in everything all the way)... Kudos!

Briefing... shhh!

Oct 24, 1100: Bring it on Gunner (et al.)


Oct 24, 1000: At the venue, preparing for the briefing & kick-off.


Breakfast. Add poached eggs & bacons to it & you see the complete picture.

Oct 24, 0800: Waking up wasn't so difficult; 12:30 IST is a good time for me. Anyway!

Oct 23, 1830: Waiting for dinner. Trying to compensate hunger with energy drinks & beers; in alternating order. But at the edge of it. Let's hack on the schedule with Ioana till the food is ready.


Oct 23, 1700: Facilitators brifing. Gunner, rocking as always! \m/

Reps' weekly meeting... not even a fraction. :-|

Oct 23, 1600: Rep's weekly call, from MozSpace. An awesome gathering, with a lot going on.


Oct 23, 1500: Took a break, and went to walk around with Raj, Umesh & Priyanka. Ingressing, took selfies, shown Raj & Umesh around London Eye, Westminister Bridge, Big Ben, Trafalgar Square etc.

Oct 23, 1225: Time for Lunch. Was catching up with communications/emails.

Open Workspace of Mozilla UK Office... BTW, FOOOD! :D

Oct 23, 1030: Yay... Larissa, Emma et al. are already here! Let me grab a spot & open my laptop. I think I can update the blog posts, by the time Ioana gets a room for the Reps. Damn... forgot to bring the Power Adapter!

Oct 23, 1000: Heading out for Mozilla office, with Ioana, Christos, Guillermo, William R. It's a shorter walk than I had expected. Talked a lot about Mozillians and how it's shaping up now. Okay, we're here! Let me connect to Mozilla Guest.


Oct 23, 0900: Checked in at the Hotel. Managed to get the SIM working as well (there was a small gotcha with Dual SIM settings on my device). Ingress ahoy! As well as Telegram, Hangouts & Emails; they came in like wrecking balls... :-|

Oct 23, 0730: Folks had to get their Oyster cards, I had it from last time. Trains waiting at Tetrminal 4 station. Off we start for the city.

Oct 23, 0715: Met Alifiyah just after the immigration; so the team size is 5 now. Got Three SIM for data (it's one sim, from three.co.uk - so don't go bonkers!). What's awesome is I got it from a vending machine, with cash, no documents required. Put it in the mobile & you're good to go with all plans preset. In India, best networks take 4hours & quite some pieces of paperwork. Anyway, I'm wasting time with the SIM; something's not right. Let's head out to the Tube station downstairs.

Oct 23, 0700: Landed at Heathrow. Passed through the immigration. Immigration officer couldn't decide whether he likes or hates me showing the invitation letter from Mobile. Heathrow WiFi got awesome - no authentication, full open! Hi5 to whoever made the final call to go that way.

Well, excuse the blurriness; But at least we're all together!

Oct 23, 0130: Boarded the flight for Mumbai to Heathrow leg. Jai & Umesh beside me; Priyanka somewhere around the tail side of the flight. Will post the Airport selfies soon. We're about to take off! :D

Mozilla Festival 2013: The greatest maker-party of the world


This blog was drafted on the aircraft back home from MozFest, on 28th October, 2013. It's a shame that it's been lying in the drafts for a year now. Publishing almost as is, many intended details missing. I'm sorry! :(

To avoid it this year, I'm live blogging MozFest 2014. Cheers!

Flickr Slideshow: https://www.flickr.com/photos/debloper/sets/72157637170816103/show
 

0th Day

Had a tour around Westminister & Buckingham with Faye, Sayak, San James et al. Took heck load of pics, chased pigeons, saw royal processing, wandered around the green park. A morning well spent.

Next up was visiting the mozilla office; had mentors' call, debriefing about the festival. This is where the excitement begins.

1st Day

So, the maker party begins with the kick off of the science fair - some interesting pieces of work, some great inspiration. Met an 11yo guy, who's interested about stop motion animation, has his own YouTube channel & been up to it for 3 years... and that's just one example!

I shared my times in Firefox OS & Reps booth - explaining the folks about the Platform & the Program. Also, I took part in the maker party where I also attended the webmaker-booth, where I demo'ed X-Ray Goggles to @RaveGMM



2nd Day

Well, it wasn't all show & tell all the times... I did get some time to write C (variant) after a couple of years, to program a gaming-arduino. Check this out:
A video posted by Galaxy Kadiyala (@igalaxyk) on

<captain mode="obvious">This Shows M-O-Z-I-L-L-A in sequence...</captain>

Thanks Galaxy to record this bit... later, I also upgraded it to take user-inputs to move forward/backward flashing the characters. I need to buy this shit! Really cool :D

Spent some time making badges... later those badges were digitized & sent to me (yay!)

Off we go, and until next year!

14 October, 2014

Reorganizing, reprioritizing, reciprocating responsibilities


Note to self: Cut it to the chase.

I've been a quite unorganized (which is gradually increasing) for last one year - followed by me stepping down from Mozilla Reps' Council & by now, I've completely overwhelmed myself.

Being unorganized was experimentally self induced; in order to suppress my OCPD. It helped keep my traits of the disorder in check (quite successfully by now). However, it came at a cost, I need to repay.

I am swamped with things I need to do. I have 50+ actionable tabs open in 5 tab groups. I have 70+ bugs pending actions. I have 100+ direct mails to get back to (a couple of thousands on lists). I have 5+ budget requests yet to be made (10+ unresolved backlog). I have 3 blogs drafted & 10+ blogs semi drafted awaiting to be published. Skipping the enormous number of yak-shaving aside or in parallel.

...and all these backlogs are only for Mozilla. Which would be (realistically) 33.333% of _all_ the things I need to get done.

Today, I'm projecting & estimating a time line to get all the stickies to DONE list ASAP. It will be done in two phases.
  1. First phase (urgent & dire): by end of October.
  2. Second phase (urgent & vital): by end of November.
I've strategized how do I go on about it most effectively. I've identified the tasks & assigned them times (skipping them here). It took me 2hrs to get everything in order (with little more than moderate effort and ambition), so I'm quite hopeful for the execution phases.

The reorganizing, reprioritizing, reciprocating of responsibilities part grossly doesn't need external input for execution, so skipping the lower level plans. My sticky-wall is more than enough for that. There are only two things, on which I need help from you (yes, YOU).

Communication

Help me have the most effective communication with you all. Here's how:
  • I'll be available everyday from 21:00IST (15:30UTC) to 24:00IST (18:30UTC) to talk about all things Mozilla. If you need information, mentoring, my attention, input etc.
  • If you ping me up on various channels throughout the day - that's okay - keep it brief & to the point. I'll get back to you in the evening at aforementioned time.
  • Anything urgent and needs immediate response: call me up (latency 1min).
  • Anything important but not very urgent: ping me on Hangouts or Telegram (latency 20-30mins).
  • Anything informative but not time-critical: ping me on Facebook messenger (latency 3-4hrs).
  • Anything that requires a discussion & can be public: Use my scrollback room (checked once daily after 24:00IST (at zero hour, that is)).
  • If at any point I'd rather prefer an email, I'll initiate or, ask you to send one.
  • If you've sent email and adding more information on the same topic - please continue in the same thread. Do not spawn new threads for no reasons.

Collaboration

If I'm working with you & you're awaiting my response and/or input on something, please consider reminding me once. I'm generally going through my queue from bottom up.

Also, here's to briefly touch on the topic of priorities. I'm getting my hands off of some interest groups & refocusing some other ones. Generally speaking, I'll be delegating most of my responsibilities, split up in bundles, to the capable next in the line awesome Mozillians.

I'll not be very involved with Firefox for Desktop or Mobile. I'll be available (only on demand basis) for Firefox OS related projects, programs & evangelism planning & strategies in India. I'll be mostly involved with community building around Mozilla's experimental technologies (Rust, Servo, asm.js) & some of the upcoming cloud services.

Another blog post will follow detailing this part.

If you're seeking my help/input for something - please reconsider the previous paragraphs and figure whether it aligns with my focus; if not, I'll probably find you (or, redirect to) someone who can help you.


So, wrapping up. Tomorrow (in 6hrs, that is) there's a team outing at Red Hat - they'll know I woke up too late to catch the bus. I'll have to close all the the bugmails & at least give Nukebot a good fight the entire day tomorrow.

Qapla'

02 October, 2014

Bustling about and thinking aloud


Two of the Socratic paradoxes say:
  • No one does something wrong willingly or knowingly.
  • No one desires (to be) evil.
More one thinks about it, more obvious it becomes how true these statements are.

Everyone - invariably what (s)he does - has justification behind their those actions, and trusts that to be the best course of action in good faith (in fact, one gets into trauma, if the brain fails to justify their actions).

But we do make mistakes.

Lack of data/information/knowledge, lack of expertise, lack of maturity, lack of empathy, lack of responsibility, lack of thought process the action demands, lack of a constructive mood, lack of security, lack of foresight... and for the lack of more affecting parameters on hand, I'll just let the list end here.

Having a setup of zero tolerance to mistakes circumvents achievement & innovation. Having a setup of very high tolerance of mistakes ends up becoming counter-productive. Balance is to identify mistakes & revive ASAP.

Overture

So that this post doesn't turn out to be too abstract & decipherable - I'm talking about some of the recent adversities (from mild faux pas to catastrophic calamity) which took place in Mozilla's regional & global community as direct or indirect side effects of some of my recent actions.

Vividly, I've hurt too many people in order to send my message across; and I'm sorry for that.

Also, it's always a must to put the responsibility where it belongs. I am responsible for all the things that I do, and nobody else is. It'd be quite wrong to misplace the responsibility, even if for escalating severity. Hence, I'm sorry to all the folks who were, quite inappropriately, held accountable and answerable for my mistakes.

I am quite confident to communicate my thoughts effectively; less often so, nicely. This is a skill, I think, I should no more ignore.

I could've been quick to resolve the agitation when it started brewing; just say, "I was wrong" and be done with it. But you'd know, and I'd know, that I'd have been deceptive there.

I was an opinionated, arrogant, jackass without a doubt (and I should've avoided being one), but whether I was wrong, is still worth a debate.

Funny thing is, when you're arrogant, you don't even need to be wrong. Also, one more thing that I've realized, you don't always have to be right. Sometimes it's okay not to be right or wrong. Sometimes, it's actually better not to have an opinion at all.

Offtopic

There's a restaurant next to my place. Sometimes last week, when I was having a coffee there - we were terribly annoyed by the meowing of a kitten that had fallen into the drain in front of the shop. It's half submerged into the filthy black water, so that it can't jump out of it, and is crying & walking this end to that end.

Finally when a kid (presumably a child labor of some nearby shop) rescued it - we sighed that (our & that kitten's) misery was over... but he received a lot of being-shouted-at as recognition & left the place with an awkward smile before the rewards gets physical.

Because, the place in front of the restaurant got dirty with kitten footprints & sludge.

I wasn't the guy to get the kitten off of the drain, I wasn't the one to show the kid a thumbs up to appreciate what he did, I wasn't even the one to ask the shop-owner-dude to shut up.

In fact, nobody did.

And I justified my action this way: one, the coffee was good; two, I wasn't willing to take a shower that time; and three, the shop owner wouldn't have appreciated me as much as a customer, if I had done either of those aforementioned things.

So that's that - and, no traumas for me!

01 September, 2014

Unifying Bengali Locales for Mozilla Project


UPDATE: as intended, this has started some good amount of stir - which was half the point of this post. Many questions are being asked in several channels which has the risk of derailing the actual discussion (unifying bn) if answered. So, if there's anything particularly about this blog that bothers you, it'll be best to express it as a comment to the blog-post itself.

I'm updating the post with some side-notes (floating right textboxes, in light-yellowish background) & tooltip titles (things deserving less explanations; underlined texts with yellowish background). Apart from internal markup changes, the existing content of the post will not be changed (unless otherwise mentioned); feel free to use DIFF.

Post was removed by the author himself (under good faith, to help the situation).
Can't be cited anymore.
This post is in response to the recent adversities within Mozilla Kolkata Community, regarding the Bengali Localization for Mozilla Projects in general (and Firefox for Android in particular), quality of bn-IN localization & prospects of unified bn locale.

As this thread [snapshot] goes, most of the participating members have paramount knowledge of, experience with, contacts in, contexts with & empathy for L10N efforts, yet don't identify themselves with the bn-IN community (I fail to find many of them on mozillians.org as well). In general they do think there's a lack of mentorship; and I think they are totally in a position to fill the gap, if they wanted.

It's inappropriate to consider me even remotely capable & responsible for L10N bn-IN activities. It's sad that even when provoked blatantly (say, through this post), nobody has stepped in to tell me, "Enough of your jackassery. You're not the senior-most/capable/apt person to address this issue. Let me show you how it's done!"

It was posted publicly on FB, so posted the screenshot without taking explicit permission from Indranil da.
Why do I have to respond? Because unfortunately, I'm probably the senior-most active member, of the Bengali speaking Indian Mozillians, who proudly associates himself with the community. I'll glad to be wrong here on the senior-most part.

Let me start off by offending some people.

I'm not an active member of localization efforts (of any FOSS project). There are three primary reasons for that:
  1. Apart from the professional localizers, the major contributor base of l10n are the volunteers who are not there because they're great at that; they're there because, they're not great with anything else, or, even localization. So to say.
  2. The l10n community is very slow moving on the technology front. So the tools with valid, versatile & kick ass USPs also take hell lot of time to be accepted/used by the communities. So, tooling-contributions is also not a very interesting ground.
  3. Most importantly, I don't support localization; because, Genesis 11. I don't approve of the need of multiple languages, at a high level. But, that's an argument of another day.
CONTEXT [cite deleted]: The Mozilla Kolkata community members were asked (on an FB post) about justifying the bn-IN Fennec launch event, where the L10N contents were allegedly copied from bn-BD, and were suggested to look into the prospect of merging these two locale. The thread went haywire.
Hence, even though my language curiosity ranges from Minion-tongue to Blackspeech - I'll keep my post restricted to the disaster-recovery of the situation in hand - and not get into the technical tidbits of the l10n system itself.

Now that I'm done offending & driving off the unreasonable l10n idealists, and down with a leaner audience, let me split the discussion in four sections:

Communication Gap

In FOSS we have some well accustomed tools for different purposes. Full-duplex discussion goes in IRC, half-duplex discussions, arguments & announcements go into mailing-lists, PR & Promotional contents go to social channels, poop of mind & passive-aggressive attacks go to the personal blog, and semi-spam, semi-infotainment kittens & fail videos go to FB groups. Although, this is "not a directive, more of a guide;" but hey!

Choosing the wrong medium/channel of communication is dragging us down & we need to be careful right now (like, yesterday would've been better kind of right now). Starting the same discussion as a mailing list thread would've had much stronger base, better output & much less juvenile name-calling, feather-tearing pile of mess by the prepubescent imbeciles on a dope.

That's not the only form of miss-communication though; the age (generation gap) is adding more to it. If anything that can help this factor, is by careful moderation & mentoring by the senior members.

Also, please care for the sanctity of information (and hereby, that phrase is a real-thing). Like each and every other action, once a post/comment/status goes live online, it creates a butterfly effect - sometimes not in a very desirable way. But, deleting that doesn't solve the problem; if anything, it adds to the confusion, broken citation & possible misinterpretations.

Meritocracy & Credibility

Even in the previous FB thread, there are several topics discussed & I find a huge part of it highly agreeable (though on an unusual medium for that discussion). The community consisting of kids & needing to grow up, the need of proper mentorship, not disdaining contributors easily to let community grow, futility of schadenfreude, generations repeating mistakes & reinventing same solutions etc.

No one can be blamed for not taking up the responsibilities of mentoring the new generation; as this is completely a volunteer effort & time is precious. They can only be persuaded. :)
"I'm not on that boat, and deny all responsibilities, but am up for a tea-time debate" isn't something that can help here. If you care for your language, have good enough exposure on FOSS/l10n, have good insights about the system in place & know well about community building - DO. STEP. IN.

We can't keep ourselves out of touch, not do our part of mentoring, let the kids run around to get shit done, and then complain how it wasn't done properly. Humans are diverse, unorganized species, prone to make mistakes at best - turning mailing lists into event-feed reader & facebook into battleground, among other things. On top of that, Bengalis are one helluva notorious & difficult race, with handle-with-care & this-side-up labels on every butt-cheeks - but deal with it. Tell us the story of how you tried & failed, instead of saying how everything is a goner & can't be helped.

Apart from that, let's all agree here that Mozilla is a Meritocratic organization, and we practice the same (as much as possible) in Mozilla India as well. Hence, not everyone's every comment carries the same value/worth, neither is reputation/credibility an one way street. It's analogous to share-market index at best.

Hence, not every piece of information to be treated with similar importance/passion. Feel free to ignore when an argument or a person doesn't make much sense anymore. Disengage. And if it's not an easy topic to just be dropped, then find a better medium, channel or concerned people to re-initiate the discussion.

bn-BD vs. bn-IN

Le wild shrewd observation: bn-IN is good-to-have, but bn-BD is a necessity.

Not only that Bangladesh officially runs on that language, an incredibly huge part of the country don't know any other language but Bengali. If there has to be any software, services, products, communications, promotions - everything _has to_ be available in Bengali, and qualitatively, it _has to_ be good.

Trying to indicate/prove "we" care/know/use Bengali better than "them" is not only ridiculous, or juvenile, it's blasphemous, baseless & insulting to some fair extent. "They" are the folks who gave their lives for the love of Language/Mother-tongue in past, and "they" are the folks who are giving their time, commitment & academic GPA to integrate Indic language support in Firefox OS in present.

Anybody who'd like to object on this note, back yourself up with data, not prejudice or herd-conformity.

Prospect of Unification

In a FOSS community, if a project looks up on another similar one & takes a learning or two, that should be appreciated, and not frowned upon. I am unaware if any or how much of bn-BD localization effort got copied over to bn-IN - automated scripts give numbers of matching strings in both locales, but one can never be sure how much was parallel effort, and how much was directly copied.

But, in either of the cases, when we're talking about Software interface translation - usually each string being an one/two word phrase - how much difference does bn-IN make compared to bn-BD and vice versa? Cause, either of the redundant parallel effort or (alleged) plagiarism is a huge waste of time, process, commitment & can't/shouldn't be the way to go.

Guys who are working on bn-IN aren't the one who are much aware of the backlog, or have been the key people to split Bengali in the first place. They're just doing it because this is how it has always been done, based on the history as much as they can remember & some misplaced prejudice of language (locale) supremacy. But, does it have to be?

That was (somewhat) the question raised, in a Facebook thread (turned into a puddle) where bn-IN was celebrating the Firefox Mobile in bn-IN release.

A very important & critical question indeed: do we have to go on posing some unnecessary LOC over the language just for the heck of it, or, we can do better and unify our efforts?

As much as I understand, translation/localization of Wikipedia's articles/contents in generic Bengali is wildly more difficult than a quick phrase on a browser-interface button. From that perspective, the challenge with the unification of bn-IN & bn-BD into bn is only as much as the combined unwillingness of bn-IN & bn-BD localizers to work together.

Find a better medium/channel of communication. Take initiatives, and participate (thanks, if you already have). Be proactive to identify & fix issues.

Mozilla BD Mailing List: https://lists.mozilla.org/listinfo/community-bangladesh
Mozilla India Mailing List: https://lists.mozilla.org/listinfo/community-india
Localization Mailing List: https://lists.mozilla.org/listinfo/dev-l10n

P.S: Here's to the 100mins of my life, that I never aspired to spend writing this blog. Cheers!

02 April, 2014

Laying Stones for Mozilla India Developer Engagement v2.0


In this post, I'm gonna briefly raise some key issues & suggest half-baked solutions about events in India. It's heavily focused on developer-events, but some bits are pretty generic. These are from the discussions, experiences and findings under the lights of the following events:
Before I dive in - like a side-note, I'd like to mention - since 2012, we've tried to increase developer contributions in India heavily. Some low hanging fruits, to start with; and they have generated results. Now it's time to take some further steps, and evolve further.

But there are some blockers.

Very real ones.
Most challengingly(!), non-technical ones.


Thoughts on developer-hosted events

  • They are Procedural
    • They can plan properly and execute efficiently. Something that's not vastly common in South Asian region.
  • They are Innovative
    • Given an opportunity, they make a mark with something unique. Aniruddha's Contributor Training Days, Sankha's MozBoot, Avik-Gaurab-Subhashis' ProgramIIEST are the examples. These events set higher bars, and formats/templates for others to follow.
  • They offer quality over quantity
    • Most successful developer events we have now a days, have much less number of participants, yet very high impact in terms of outcomes from them.
  • Deprived of appreciation & support
    • Even though most of them don't enjoy handling the logistics, they do it just as good when they have to.
    • But, instead receiving supports while they're at it, they get last minute budget approvals, budget cut-downs, enforced change of plans, and all sorts of things which make them re-think whether it was a bad idea to conduct an event at the first place.
    • This discussion can go a long way, cutting it short for now.

Organizing Developer Events has to be re-shaped

  • Per City events, instead of per Institute
  • Better screening of the participants
    • When we're talking about city/region wide events, it's obvious that there will be a heck load of participation - along with noises.
    • Thinking about a process to screen the participants which ensures quality, and yet is very efficient at it without requiring tiring efforts
      1. The Events Task Force does the needful to promote the event in a region.
      2. The open-invitation contains a link to a test-paper (in form of a Google Form) with related technical questions (objective/MCQ) & contact info.
      3. The Form-Response will be conditionally formatted to automatically screen as a first pass.
      4. Based on the event's intake-capacity, we send out followup to 1.5x numbers of candidates from the merit list. This followup will contain the ask-for-confirmation of the participant's availability; and some objective (yet not-auto-screenable) questions - such as GitHub profiles, related experience, expectations & focus at the event etc.
      5. Based on the response, final invitation is sent to the 1.2x (top 120, if the venue capacity is 100) candidates. There will always be last minute turn-downs from some candidates. We'll have to tweak the quotient (1.2x) after few trial and errors.
    • The process of tests, registration, followup also ensures the candidates are mentally seasoned & committed to participate, and has the sense of making their way through all the initial applications.
  • Continuous follow-up with attendees
    • Usually, we get 1/2 participants in each event who are pretty quick to learn the mode-of-communications in FOSS-world. Readily swims through IRC, Mailing Lists, figures out how they work & says "hi" to the known nicks.
    • In cases where they don't, we need to actively think through what all options can we explore to have a connection with them, after we leave.
    • There are several suggestions on this; all very obvious, most quite spammy and none very effective.
  • Venue rating system for future events
    • Even if we have major per-city events, there going to be per-institute events as well, we can't totally block that.
    • But we can have a rating-chart for venues where we already have hosted events, how was the experience & what's the prospect of hosting another event in there.
    • We can have pretty objective details, such as:
      • Interests of the faculties
      • Interests of the Students
      • Effectiveness & turnouts
      • Quality of Infrastructure (Lab, Systems, Internet)
      • Quality of Logistics (Travel, Costs, Environment)
      • ...and more

Lesser side-loaded overheads, more deep-dive

  • Stop losing the first half of the event setting up the development environments. That's a big bummer. Everytime.
    • It wastes time
    • It expects developers to be SysOps too
    • Requires good Internet (which, bytheway, is a myth)
    • Requires dealing with unnecessary complexities, which can be abstracted away
    • Once set up on Lab-PC, the student has to go through again on his own system, at home - hitting gotchas, and getting frustrated.
  • Distribute ready-made DevEnvs
    • We've tried giving out setup VMs
      • Works as expected, but
      • Requires setting up VM itself
      • A 20GB image is not quite portable
      • Can't use the full system/processing power.
      • Looooooooooooooooooooooooooong build-times.
  • Distribute Live USB drives
    • How about branded, special-edition pen-drives with ready-to-boot Linux image, and persistent developer-environment (dependencies, cloned sources etc.) in it?
    • A USB 3.0 16GB can have a proper Linux installation in it - and can be readily replicated to as many as required
    • A monthly ISO image of the same, hosted from a trusted source - just like mercurial bundles
    • The participant can use the same thing on the Lab-PC & his laptop back home without losing a thing!
    • The pen-drive itself can be a very useful giveaway.
  • Ready to use OpenStack instances
    • OpenStack can give us an infrastructure to create a couple of identical running systems in seconds
    • In longer run, we can have a beefy OpenStack deployment where we can quickly create pre-setup small VMs for the participants
    • We can also have a couple of build-machine VMs as local-tryservers.
    • A lot of discussion may need to go into it - but this has a prospect of being a cross-project, cross-community, permanent solution for the problem in hand.

Thanks to Avik, Gaurab, Manish, Saurabh, Subhashis, Umesh - everything discussed here are collective decisions (albeit among a small group), in multiple passes.

If you have thoughts regarding/around these - I'd be eager to know.

27 February, 2014

Actualizing Probability, Seizing Night, Feeling Alive


12:30AM last night, gotten done with the meetings & calls - almost worn off - I was about to get my dinner & call it a day (for such long of a day it was).

But what do you know!

Got summoned by my Ingress faction for a call of duty - awkwardly eccentric, insanely probabilistic, extremely difficult, and yet immensely confidential task that needs to get done exactly at 4:30 in the morning, at a place 3hrs by road.

Hence, I grabbed my gears & rushed for the pick up (with a couple of bread-slices in my pocket; because, Dinner) - and there's no looking back.


In simple words - it was a covert operation of ~16 Ingress Agents, to transport an artifact (#2) from the origin portal in Bangalore to the destination portal at Mahabaleshwar (then undisclosable) - lots on XMs were spilled in the process & to defy the Resistance's effort to... well, resist - the process... & keeping it under Enlightened-control, strategically (12hrs) & effectively (4hrs).

AND. WE. ROCKED. B-)

Not going into the internal communications, but even on the public channels - the buzz was huge. Check out the official announcement by +Ingress to recognize the successful operation & screenshots of some of the COMM messages! ;)





The grab-n-go, the rushed long-drive to not miss the small time-window, the phonecall-hangout-maps combo to figure the lost roads we've never been before, the trembling portals hacks with shivering fingers in the cold, the first chai upon opening of the chai-shop at 4, the excited nail-bitting announcements-cum-note-to-self - 9 mins to go, 8mins to go... 1mins to go... 30 secs to go, GO GO GO!!! The fanatical deployment of the resonators by all agents within less than 5 seconds of the GO, the crazy-first-sight of the transported artifact gliding on top of the extended astral-projection of the destination, screaming the fuck out of the brain to see the job done against all odds, the after-planning & strategy updates from the control-HQ, boxing & setting up cross-links to secure the mission, watching a rising sun (on the car-mirror), keep talking to the almost dodged-off driver to keep him up... it was nothing but surfing a Tsunami, man!

My life is pretty darn awesome in general, but times like these just sets the bar higher!

10 February, 2014

About: "Co-founder of Mozilla India"


I woke up quite late today, and as usual found myself in the flood of device-notifications.

Swimming through, I couldn't help but notice that there's one recurrent theme against many of those conversations - actively, or passively; which is, me being termed as the "Co-founder of Mozilla India" in my FOSDEM talk's introduction.

Some congratulations, some giving justifications, some asking for justifications, some efforts to clarify the situations, some smug comments & inquiries etc. And I realized, the issue is not as innocent as it first appeared, and something is needed to be done to fix it.

For what it's worth, I am not the one who scripted the introduction. I've had very little to do with it. Clarista is such a nice person, it seemed rude to stop her on stage. I made a little hand gesture, "Please, let it go... I'm not that guy." but anyway, that message didn't pass through.

I've been anonymously volunteering for Mozilla since Q2, 2005. With the handle Debloper since Q2, 2009. Gave that identity a face in Q3, 2010, and by Q3, 2011, I've had to make myself public in the process of joining the Reps' program. In most of the given timeline, I've been more of a lone-wolf, than a community person, may be until this day.

There are many people from India who have been contributing to Mozilla since before me, and there probably will be people still contributing if I ever discontinue. Mozilla India isn't a formal or legal entity, and to find a distinct point of time when it actually formed - more than difficult - it's impossible.

Titles, badges, awards are not something I'm actively rooting for.

I've been in Mozilla Reps' Council, possibly one of the highest volunteer position one can earn in Mozilla, and personally never used that title except for the communications where I needed to send out messages as a Council Member.

My name is not even on the about:credits of Mozilla. One can actually ask questions against even me being just a Mozilla contributor itself, for that - let go off being anything else - and that's okay. It requires me to send an email, requesting recognition, which I can never bring myself to do. I've never even thought of drafting such email.

Sorry Clarista, but I am not the person to whom the title "Co-founder of Mozilla India" is useful. There are people who can make use of that title much better.

I am not that guy.

FOSDEM Fourteen FTW!


Foreword

For last 2 years, I've been trying to attend FOSDEM, and yet each time found myself to be too late in the process to do anything about it. Missed the last year's Firefox OS awesomeness badly, and thus had my reminder set to wake me up when September October ends.

Facts & Figures

The Campus Map of ULB, along with the Dev-Rooms
FOSDEM (Free and Open source Software Developers' European Meeting) is a developer-centric event, hosted at ULB (loosely translated, Open/Free University of Brussels) that brings together 5000+ geeks from all over the world.

There were quite a few keynotes, main-tracks, and along with that 33 Dev-Rooms - that is project specific focus groups, each diving deep into their topics in separate auditoriums. The entry is walk-in, until/unless the room is full. The event in itself is free of any registration, or other charges.

Mozilla had the Dev-Room UD2.218A on Saturday, and there were 16 awesome talks in total.
You can get more details about FOSDEM from the official source.

FOSS Factions

Rats, I've never missed my red-fedora so damn much... should definitely have brought it. The place is literally swarming with Red Hatters - with the literal meaning of the word literally.

Along side of that, from Mozilla, Wikimedia, Python, Perl, KDE, Gnome, ElasticSearch... to even the Tor project - who wasn't there?!? For the open source enthusiasts, it's THE place to be.

Clarista introducing me making me hide under the podium.
One of these days, I'll start trying to live upto that introduction.

Fuming Fiery Feat

I had a talk on "JavaScript for the Skeptics" in the Mozilla Dev-Room. It's not a Knowledge Transfer, magic show, or a crash course on anything. In front of the FOSDEM audience, I wouldn't dare to pitch myself to be capable of doing that... no.

So my idea was, to give a retrospective & a fresh new perspective on applied JS; also to ring the doorbell of "Worse is Better vs The Right Thing" and run away.

In this year's FOSDEM, JavaScript talks were overly crowded in general, and so was my talk. There had to be a "Room is Full" board put in front of the room even before I got on the stage. I didn't quite notice that I've been speaking in front of 500 who's-who, until the Q&A started - when I suddenly got a quite noticeable cold-feet.

As a speaker, I've tried best to work on the problems I had. Many fixed, some still there. If you're a budding speaker as well - here's the recording, watch this - it may help you:



Fun Factors

  • I dashed around & collected goodies like there's no tomorrow.
  • I often got into conversations, and talked to so many folks from different projects
  • Often those chats took way more than 2 minutes, without me having urge to run away.
  • I said to myself "WHOA!" quite a couple of times, for various reasons.
  • I traveled in bus of Brussels, but the FOSDEM-route felt no different than that in Kolkata.
  • I, along with Sayak, often gotten into Ingress dog-fights with local Resistance agents.
  • I've had beers at the signature spots in Brussels - including, but not limited to - The Delirium Cafe, À la Mort Subite, Le Grand Café et al.

And of course I've taken a hell lot of pictures... check them out from my FOSDEM'14 Flickr set, or maybe just play this slideshow:



Fin

Thanks a lot to Brian, Clarista, Benoit and all who actively helped make Mozillians' participation in FOSDEM such a memorable event - I give up on listing all the reasons why. Special thanks to Ziggy & Francisco, for the great job behind the camera, all day long! Thanks to all the Mozillians managing the Mozilla booth, and thanks FOSDEM.

18 December, 2013

Optimizing Fedora Startup Performance


Disclaimer: This isn't a full course meal on the topic - just the main course. I'm concentrating on the low-hanging fruits here & ignoring stuffs which require excessive amount of warnings without significant impact.

In case you're interested about the ignored bits - you may wanna check this blog that covers some of those parts: http://www.harald-hoyer.de/2013/11/13/fedora-boot-optimization/

Update 2: Reviewing the Fedora 20 change-sets, I have a feeling that although following is a generic way of optimizing Fedora startup - there are so many radically awesome changes inbound with Heisenbug, that you should definitely consider a fresh install to get rid of many ghosts of the past (if you can afford to).

To start with

I recently (yesterday) performed a fresh install of Fedora 20 on my test-rig & then onward, rebooting my other system appeared to be considerably slower (compared to it).

This is a system on which Fedora 17 was initially installed & then innumerable amount of packages were installed over the time along with next 3 release upgrades (with FedUp). So you can imagine, a cleanup was long overdue.


How bad?

Well, "yewww!" would be the best adjective, so to say:
[root@debs ~]# systemd-analyze
Startup finished in 2.526s (kernel) + 10.188s (initrd) + 2min 43.299s (userspace) = 2min 56.015s
Damn... Which spawn of devil is screwing up my userspace-startup!
[root@debs ~]# systemd-analyze blame
     1min 1.856s sm-client.service
     1min 1.271s sendmail.service
         15.865s firewalld.service
         13.805s plymouth-quit-wait.service
         11.665s rsyslog.service
          9.543s accounts-daemon.service
          9.293s dnf-makecache.service
          7.995s systemd-cryptsetup@luks<trimmed-volume-guid>.service
          7.024s NetworkManager.service
          6.392s httpd.service
          4.696s rtkit-daemon.service
          4.671s avahi-daemon.service
          4.670s systemd-logind.service
          4.417s gdm.service
          2.839s NetworkManager-wait-online.service
          2.617s polkit.service
          2.573s systemd-cryptsetup@luks<trimmed-volume-guid>.service
          2.361s chronyd.service
          2.003s wpa_supplicant.service
          1.885s systemd-udev-settle.service
          1.353s plymouth-start.service
          1.064s systemd-readahead-replay.service
          1.021s jexec.service
          0.XXXs [trimmed]
John "F" Kennedy!

For me the immediate reaction is: "Why do I even have sendmail... must be the BugZilla test-setup" — but the particulars may vary person-to-person system-to-system.

Update 1: As Sankarshan points out, sendmail has _been_ the default MTA for quite a while — not an after-setup.

What now?

Go through the list before & figure out which nutjobs you wanna kill with fire, which ones simply don't make sense to have around anymore — and remove them.
[root@debs ~]# yum remove xxx yyy zzz
Won't chew the food for you here... if you can't figure out the package-names to remove, you should try different ways to optimize the system (how about a fresh-install, eh! :P).

There are some stuff which you may need, but don't need during startup (NetworkManager, iSCSI, RAID). So removing them isn't a good idea - but you can safely disable them:
[root@debs ~]# systemctl disable xxx yyy zzz
I'm going with systemctl disable instead of systemctl mask because, it's more revertible, in case things go wrong. For brave souls, go ahead with whichever you see fit.

Each time you optimize some certain parts - reboot & repeat.

Not only it gives you the idea how the optimization is going, in case things go wrong, you have less troubleshooting to perform to pinpoint which caused it exactly.


Close Enough!

Once you feel comfortable with the startup speed &  systemd-analyze blame output, then it's time to wrap up.
[root@debs ~]# yum autoremove
This will uninstall the packages which were installed as dependency of other packages, but that main package has been removed (generally, rendering these useless)... completely safe to remove.

Also, the startup depends on the HDD performance. It's better not to use LVM partitioning (at least on the startup disk). Also, make sure to check for file-system errors, bad-sectors & volume usage-percentage. Reclaim some HDD space if required (start with cleaning /var/log/*). Anyway, out of the scope of this post.

I've got my system down to 40sec for a complete startup (of which 50% is decrypting LUKS filesystem — can't do shit about it) — that works for me!

Extra mile...

If you're still not happy, you can go on ahead further optimizing these parts:
  • Remove the leftover scripts from Live Media
  • Disable/remove Plymouth (i.e. GUI Bootscreen)
  • Disable avahi, bluetooth et al. services at startup
  • Disable Firewall, SELinux etc. (bet you know what you're doing)
  • Find the failing processes/services with systemctl --failed and fix 'em
  • ...and the list goes on! (What all did I miss?)

Statutory warning

Always have a fail-proof/alternate kernel to boot to (especially if you're going to mingle with dracut/initramfs-rebuilds). Have a Live USB ready, in case you need to fix /boot (btw, keep a backup of /boot), or need to chroot the installation in case it doesn't boot up.

If your installation doesn't have too much customization, then considering a fresh install is a really good idea (n00b tip: having /home on a different mount point makes it much easy to format the system, even with different distro but still have the user configurations retained).