Warning: include_once(/home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/wp-super-cache/wp-cache-phase1.php): Failed to open stream: No such file or directory in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/advanced-cache.php on line 10

Warning: include_once(): Failed opening '/home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/wp-super-cache/wp-cache-phase1.php' for inclusion (include_path='.:') in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/advanced-cache.php on line 10

Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-theme.php on line 544

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/rest-api/class-wp-rest-request.php on line 952

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/rest-api/class-wp-rest-request.php on line 972

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/rest-api/class-wp-rest-request.php on line 984

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/rest-api/class-wp-rest-request.php on line 995

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 199

Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91

Deprecated: register_widget_control is deprecated since version 2.8.0! Use wp_register_widget_control() instead. in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/functions.php on line 4861

Deprecated: register_sidebar_widget is deprecated since version 2.8.0! Use wp_register_sidebar_widget() instead. in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/functions.php on line 4861

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/wp-db.php on line 3031
Random thoughts and serendipity | A collection of jottings on various issues that excite no one else | Page 3

A new lekhonee-gnome release

Sometime after the release announcement, Kushal asked me to use it to post a blog and see how things are. It took me a while to get to the blog (primarily because prolonged typing causes my finger joints immense pain and, it is easier to walk over to where Kushal is and do the “you seriously consider this a feature” thing ;))

The new release is a re-write in Vala which came as a surprise to me since Kushal was toying with Vala only a couple of nights before the release. However, that did mean that a couple of us were the lab-rats in the “release early, release often and release private” game that he plays before pushing it to the build system. That is especially fun because at some point during the game all the lab-rats end up having different private builds which expose unique sets of bugs.
I wonder when this becomes a default option on Fedora.
Things I like about the release include
  • the unordered list creation button
  • newer icon set
  • the ability of not barfing on a wrong auth entry for blog
  • right click for spell checking
  • save as drafts

The bits I look forward to are

  • ability to handle multiple blogs or, account management
  • better WSIWYG rendering (the fonts look a bit weird for me)
  • auto-save of blogs

If you like to see it translated in a language of your choice, sign-up here.

GNUnify’10 etc

I wasn’t able to spend too much time at GNUnify10 – a weekday came in and, then there wasn’t enough time to do anything. A couple of things did strike me though.

  • The profile of the attendees was different from last time. If the organizers talk about the demographics, this observation might be validated but I got the feeling that the crowd was more of professionals than students
  • The event has introduced diversity and, that is a good thing to have
  • There have been new speakers as opposed to the “same old faces” talking
  • There were elements of avid interest in things Fedora where the speakers were enthusiastic and participated in rapid Q/A

I liked what I saw. Including Shreyank’s enthusiasm to not get off-stage till the “download link came up” 🙂

One of the things that I’d hoped would happen at the event is that the group of Fedora folks who met would sit down and discuss their goals for this year. By goals I meant the stuff they would be focussing on and, more importantly, how they would be measuring their achievements. I don’t know how much was discussed along these lines but it is a good time to start doing it. Keeping the focus on a few important things and then creating easy-to-visualize ways of looking at the achievements allow the contributors to assess themselves. Self-assessment goes a long way in removing any perceptions of anonymity that might be lingering on. And, it also creates a sense of involvement – of belonging.

The other important bit this would achieve is that it would make the developers more visible and approach-able. For too long I have seen developers have an aloof or, stand-offish approach to their projects. And, it isn’t because they are arrogant but perhaps it is their trait. Unfortunately, “they will contribute if they figure out that the project is good” isn’t a nice approach. Going upfront and talking about goals, plans and in general doing advocacy allows potential contributors the confidence to tinker with the code and, start contributing. Building up the confidence to tinker not because it is “good for the nation” but because it is “good for oneself” and, is profitable is a concept that needs to be repeated over and over again. The students aren’t rolling up their sleeves enough and, it is an urgent need to exhort them to do it. The world is moving forward at a fairly fast clip and they cannot take comfort in the “learn-by-rote-to-join-TWITCH” way of life in the various colleges across the country. In money terms as well as in time and effort an enormous quantity is invested in students, that shouldn’t go to waste.

The others have already blogged about the event, I’m waiting for Hiemanshu’s writeup.

Posted from GScribble.

Rabindra Rachanabali and Bangla fonts

The fonts that can be obtained from the site here display the following information. Now, how is one supposed to package (there isn’t a defined upstream as much as I could fathom) and redistribute (especially Bangla Akademi.ttf) them ? The fonts by themselves are fairly nice and, that’s a sad aspect as well.

And, an evaluation version of the BitRock Installbuilder seems to be used for creating the font installer.


$ otfinfo -i Vidya.ttf

Family: Vidya
Subfamily: Normal
Full name: Vidya
PostScript name: Vidya
Version: Version 0.6
Unique ID: PfaEdit : BanglaTemplate : 30-3-2003
Designer: NLTR
Manufacturer: NLTR
Copyright: Copyright NLTR License: GPL
version 2 (or later, at your option).

and,

$ otfinfo -i Bangla\ Akademi.ttf
Family: Bangla Akademi
Subfamily: Regular
Full name: Bangla Akademi
PostScript name: BanglaAkademi
Version: 1.0 2008 initial release
Unique ID:
SocietyforNaturalLanguageTechnologyResearch(SNLTR),Kolkata,India.DesignedaccordingtoPaschimBangaBanglaAkademiStandardbyBiswarupBhowmik:
Aangla Akademi: 2008
Description: Society for Natural Language Technology Research
(SNLTR),Kolkata,India. Designed according to Paschim Banga Bangla
Akademi Standard by Biswarup Bhowmik, 24B Lake Road, Kolkata 700029
Designer: Biswarup Bhowmik, 24B Lake Road, Kolkata 700029
Manufacturer: Society for Natural Language Technology Research
(SNLTR),Kolkata,India. Designed according to Paschim Banga Bangla
Akademi Standard by Biswarup Bhowmik
Trademark: Bangla Akademi is a trademark of Society for
Natural Language Technology Research (SNLTR),Kolkata,India.
Designed according to Paschim Banga Bangla Akademi Standard by Biswarup Bhowmik.
Copyright: Copyright (c) 2008 by Society for Natural Language
Technology Research (SNLTR),Kolkata,India. Designed according to
Paschim Banga Bangla Akademi Standard by Biswarup Bhowmik. All rights
reserved.

A web-calendar for events – does that sound nice ?

For as long as I can remember I have found the LWN.net Community Calendar very useful. It would perhaps be nice to have a similar web-based calendar for Fedora events across the world. Currently, the events are tracked by this page. That is nice but doesn’t give the visual representation of a month full of events world-wide.

It would be nice to have a calendar that integrates with FAS and, allows someone to post the details of the event. Another group of folks, can take a look-see at the posting and approve it to be listed. The original poster could choose to be the event owner or, add someone who is the actual owner. Since Events etc fall under the ambit of FAmSCo, perhaps they might consider this stuff.

“I want a Fedora DVD, don’t know what to do !”

Following up from what I had written sometime back on this, I would say that the time is good enough to do a rethink.

When it comes to India, traditionally, we have been producing media specifically aimed at distributing at events. We do get large amounts of face-time with our participants at any event and, invariably it leads to sharing of media or, requests for media. This is besides the production that is carried out by magazines across the country. During the F12 cycle we conducted a small experiment.

We did not produce any media.

Not even for events.

Since this was a shocking thing to do, we spent the entire cycle with bated breath trying to assess the impact. As on date, it seems to be minimal. In fact, it has allowed us to do interesting things. Things like ensuring that at events we have an updated tree around for anyone who wants to update their system or, even update their trees. We have had a moderate measure of success with spinning LiveUSBs. But more importantly, we have had “Local Points of Contacts” and, some enterprising folks come up to fill up the void. Or, in other words, the deliberate creation of vacuum allowed some “retailers” to come in to the picture and, become the source points to obtain the media.

Producing media, even when done in the bulk that we do, is an expensive affair and, add the shipping costs towards sending them across to events and, you can figure out that it was becoming more of a “mass media production house” kind of business without actually having a full-fledged team doing it.

The next logical step would be to figure out how to provide the information about alternative sources of media (even if they are not zero-cost) to those who cannot obtain it via the Freemedia system. Providing them with an option to choose a retailer from which to purchase the media from is a better option than letting their Freemedia requests go unattended. A system that allows such vendors to be listed and, based on regions, information provided to the requesting parties would go a long way in addressing this. Clearly mentioning that this is a pure information provider service with no assurances of guarantees would perhaps be the caveat that would allow us to begin ensuring that anyone who requests a media has the information about where to obtain one from.

The post is brought to you by lekhonee v0.8

Student,Contributor,Ambassador

I often hear good things about the strength of the Fedora Ambassadors in India. With a 110+ group of people, it does allow one to look at upsides and, areas of improvement. But more importantly, what it stands as testimony to is the tough work that is put in behind the scenes by various individuals and, groups within Fedora to make that happen. (Hint : some of the said individuals are also mentors for the Ambassadors in India, so, if you chance onto them on IRC, be sure that you thank them for doing a job well and, doing it with a passion that is unique to folks within Fedora.)

This year we have been able to reach out to a number of events and groups which helped us take the message of the Four Foundations to them. That has been good. We have also noticed that a larger number of those signing up to become Ambassadors are students or, are dipping their feet into the FOSS way of doing things. So, here’s the area in which we need to work our hardest.

Earlier I wrote:

Additionally, if during the initial days, the new Ambassadors are encouraged to actively participate in any other part of the project, it should lead to greater involvement and appreciation of the Foundations. This of course has the advantage of helping them build the social connects and network across projects/amongst individuals which is an invaluable part of being an Ambassador. It also builds up the required confidence in the Ambassador to go out and evangelize about contributing back to various projects and upstream. Because, if one has already drunk the Kool-Aid, talking about it is dead simple.

And, it is true. An Ambassador is the face of the project to the external world. It requires people skills but more importantly, it requires an intrinsic knowledge about the project that takes time and effort to build up. Unless an Ambassador takes a keen interest in the various projects within Fedora and, contributes to at least one of them, it is an uphill climb for most. More so for a student who is just learning the ways of FOSS and, gathering experiences via Fedora.

In the coming months, the plan is to put in place a stronger coaching plan for these student contributors so as to tap into their huge talent and, the capacity to produce stunning results. We have always been surprised by the sheer amount ideas that come up when students are gradually pointed to a direction.

Stay tuned. Exciting stuff is going to happen.

Do we need to look for new software ?

In an unguarded moment of misguided enthusiasm (and, there is no other way to put it) I volunteered to translate a couple of my favorite TED talks. The idea was simple – challenging myself enough to learn the literary side of translating whole pieces of text would allow me to get to the innards of the language that is my mother tongue and, I use for conversation. Turns out that there was an area that I never factored in.

Talks have transcripts and, they are whole blocks of dialogue which have a different feel when undergoing translations than the User Interface artifacts that make of the components of the software I translate. In some kind of confusion I turned to the person who does this so often that she’s real good at poking holes in any theory I propound. In reality, it was my turn to be shocked. When she does translations of documents, Runa faces problems far deeper than what I faced during the translation of transcripts. And, her current toolset is woefully inadequate because they are tuned to the software translation way of doing things rather than document/transcript/pieces of text translation.

In a nutshell, the problem relates to the breaking of text into chunks that are malleable for translation. More often than not, if the complete text is a paragraph or, at least a couple of sentences – the underlying grammar and the construction are built to project a particular line of thought – a single idea. Chunking causes that seamless thread to be broken. Additionally, when using our standard tools viz. Lokalize/KBabel, Virtaal, Lotte, Pootle, such chunks of text make coherent translation more difficult because of the need to fit things within tags.

Here’s an example from the TED talk by Alan Kay. It is not representative, but would suffice to provide an idea. If you consider it as a complete paragraph expressing a single idea, you could look at something like:

So let's take a look now at how we might use the computer for some of this. And, so the first idea here is just to how you the kind of things that children can do. I am using the software that we're putting on the 100 dollar laptop. So, I'd like to draw a little car here. I'll just do this very quickly. And put a big tire on him. And I get a little object here, and I can look inside this object. I'll call it a car. And here's a little behavior car forward. Each time I click it, car turn. If I want to make a little script to do this over and over again, I just drag these guys out and set them going.

Do you see what is happening ? If you read the entire text as a block, and, if you are grasping the idea, the context based translation that can present the same thing lucidly in your target language starts taking shape.

Now, check what happens if we chunk it in the way TED does it for translation.

So let's take a look now at how we might use the computer for some of this.

And, so the first idea here is

just to how you the kind of things that children can do.

I am using the software that we're putting on the 100 dollar laptop.

So, I'd like to draw a little car here.

I'll just do this very quickly. And put a big tire on him.

And I get a little object here, and I can look inside this object.

I'll call it a car. And here's a little behavior car forward.

Each time I click it, car turn.

If I want to make a little script to do this over and over again,

I just drag these guys out and set them going.

Get them out of context and, it does make threading the idea together somewhat difficult. At least, it seems difficult for me. So, what’s the deal here ? How do other languages deal with similar issues ? I am assuming you just will not be considering the entire paragraph, translating accordingly and then slicing and dicing according to the chunks. That is difficult isn’t it ?

On a side note, the TED folks could start looking at an easier interface to allow translation. I could not figure out how one could translate and save as draft, and, return again to pick up from where one left off. It looks like it mandates a single session sitdown-deliver mode of work. That isn’t how I am used to doing translations in the FOSS world that it makes it awkward. Integrating translation memories which would be helpful for languages with substantial work and, auto translation tools would be sweet too. Plus, they need to create a forum to ask questions – the email address seems to be unresponsive at best.

In the company of a ninja

It looks like watching the Ninja Assassin hasn’t done Shreyank any good. Else, he would have figured out that it is easy-peasy for a Founder and Chief Ninja like Dimitris Glezos (who is also known as DeltaGamma) to be at Bangalore and, elsewhere. Dimitris paid a surprise visit to Pune yesterday and it was fun. It isn’t always that you get a CEO of a startup provide you with an in-person repeat of his keynote with added wisecracks and side-talks that are too scandalous for a “keynote” 🙂 And, that too, at a fairly crowded Barista. It was awesome.

In fact I wanted to talk with him about how massive the momentum built up by Transifex has been. Just two years ago, in 2007, Tx was a GSoC project within The Fedora Project aimed at looking at managing translations from a developer’s perspective. Today, it is a start-up which is hiring employees, relocating to newer offices, has a foot-print across a significant portion of upstream community projects and, most importantly, has clients willing to pay for customization services and, developer services. Tx isn’t only helping translation communities by allowing them to craft their work in peace – it is keeping developer sanity with the fire-n-forget model of the architecture. I hear that PulseAudio, PackageKit developers are strong supporters of Tx. That is tremendous news. The provocative nature of Tx is also based on the charm that it has been bootstrapped. That should provide hope to developers thinking along the “product” route.

I would say that these two years have done Dimitris good. His focus on the road Tx should take has become more vivid and, he has a deeper insight into the changes he wants to bring about via Indifex. There’s nothing more exciting than keeping a close watch on his team and his company for news that would come up soon. Tx is coming up with a killer set of features in the upcoming releases. That should get the attention of a couple of clients too.

Throughout the afternoon we ended up talking about getting youngsters up to speed to think beyond patches as contributions and, starting tuning their thoughts to products. Dimitris opines that patches are excellent jump-off points but in order to become a valuable contributor, one must start thinking about “architecture”, “design”, “roadmap”, “milestones” and all such issues that form part of the theory classes but never see implementation in real-life scenarios. In addition, there is also the need to inculcate the “CC thinking” in everyday work of creativity – be it code or, content or even be it hardware and standards (the “CC thinking” is a fancy short-hand towards thinking about Open Standards, Open Protocols and so forth. In a somewhat twitter-ish way, we compressed it to a meta-statement we both could relate to and agree with).

Dinner and post-dinner with a couple of us was another story. Having a bunch of hard-core “Fedora” folks in the room creates a passion. Sitting back to savor the flames of discussions and, interjecting with a leading viewpoint to keep the debate flowing is the best way to get action items resolved. Nothing wasn’t touched upon – from the way to get best out of *SCos to mundane stuff like getting feature requests into Tx, OLPC and Sugar, or, talking about the general issues within the IT development community in Greece. And of course, the frequent checks on Wikipedia to validate various points in the argument. We could have done with an offline Wiki Reader yesterday 🙂

I think I finally went to sleep at something around 0200 today – which is impossibly past my standard time. There are photos aplenty, though I don’t know who will be uploading them. There was food, there was coffee, cakes, and, there were friends – in short, a nice day.

Pleasant experiences and project loyalty

As a general case, my experience with most of the FOSS projects whose products I consume or, contribute to, have been very pleasant. Feedback has generally been well received, requests listened to. So, what I am going to write is not very special. But, they are striking by themselves.

Sometime ago, I was shopping for an off-line translation tool. I was fed up with Lokalize’s issues and, the fact that it wasn’t letting me do what I wanted to do at that point in time – translate. Additionally, I wasn’t in the mood to actually install a translation content management system to do stuff. Face it, I am an individual translator and, calling in the heavy shots to get the job done was a bit silly. So, I turned to virtaal. Actually, I think I was goaded into giving it a try by Runa.

Virtaal was, at that point in time, not really a good tool 😉 And, you can figure from the blog link above that I wasn’t interested in it too much. However, since I ended up giving it a chance (you cannot simply ignore a recommendation from her) I ended up running into two issues. One was predominantly more annoying than the other and, in effect was what was putting me off the tool. However, the developers took interest to get it fixed and, in the latest release have resolved it.

The other bug was resolved in an even more interesting way – over IRC with hand-holding to obtain the appropriate debug information and, then on to editing the file to put in the fix. At the end, the fix might be trivial. But the level of interest and care taken by the team to listen to their users is what makes me happy. In this aspect, the other development crew I can mention is Transifex. I haven’t met most of them and yet they keep taking suggestions, reports via every communication channel they are on – blogs, micro-blogs, IMs, IRC and trac. That makes them visible, gets them into the shoes of the users and, I am sure it earns them invaluable karma points.

Yesterday, while helping (I just did the file editing while Walter did all the brain muscling) to close the other bug, I felt incredibly happy to be part of a system where it isn’t important who you are or, where you are from. What is important that you have a real desire to develop better software and, make useful artifacts for all.

As it goes – “Your mother was right, it is better to sharelink to video.

The post is brought to you by lekhonee v0.8

GSoC and beyond…

Karsten has a nice blog post and, an even nicer report on GSoC 2009 from the perspective of The Fedora Project-JBoss umbrella organization. If you haven’t already gone through it, it would be good to read it up and, provide feedback.

An immediate benefit of any project participating in the Summer of Code is the ability to get exciting extensions or, innovations via a group of highly talented individuals – both mentors and, contributors. Having had the opportunity to look at the projects from fairly close quarters over a period of years, there are a couple of things that stood out. Some of them are listed on my wiki page. I’d say that the most important thing is to “have a plan“. A stage of proper planning which sets the expectations and deliverables for a GSoC proposal goes a long way in becoming a successful proposal. That, coupled with a scheduled update-review cycle makes it a proposal that has a constant communication channel. I was reminded of the this fantastic mentoring how-to today while reading the latest issue of The GNOME Journal (as an aside, you should read this issue).

If you look at the wiki page I pointed out earlier, you’ll note that I mention an “annual round-up”. This by itself is very trivial to do and yet very important.. It provides an yardstick by which to measure the success or, failure of a GSoC experience of being able to generate sustained and relevant participation. For example, if projects did more of this kind of “where are they now ?” series, it provides upcoming and potential contributors with role-models they can look up to or, be like.

That single act of being able to have role models makes for a tremendous motivation to become a sustained contributor to Free and Open Source Software.

A collection of jottings on various issues that excite no one else