• About

    Swaroop C H is 29 years of age. He is a coder and startupper. He has previously worked at Yahoo!, Adobe, his own startup and Infibeam.


    Read more about him


    Email: swaroop (at) swaroopch.com

  • Subscription

    If you want to know when new stories and articles appear on this website, you can receive them via:

  • I'm a Wannabe Hacker

    The Glider: A Universal Hacker Emblem

Archive for the ‘Community’ Category

Programming Language Adoption

Tuesday, February 1st, 2011

55 people have asked me to write about:

Indian companies just don’t take Python seriously, not as much as Perl. Why is that?

28 people have asked me to write about:

Most companies opting for Ruby as their programming language of choice instead of Python

51 people have asked me to write about:

The future of the Perl programming language?

Phew, that is quite a lot of people asking about programming language adoption!

The TLDR version of my thoughts on this topic is: Companies are choosing the right tool and the right community for the right job. Which programming language is used in your company depends on the kind of work they are doing.

Ruby and Rails ecosystems are built by and built for web programmers. That is why you will see web programmers switching from PHP and Python to Rails. For web programming, I do believe that Rails has an edge, not just because of the framework itself, but because of the community rallying around it. The amount of amazingly useful stuff that they churn out outpaces any other community w.r.t. web-dev, and they even have quick effective screencasts to make it digestable, hence their edge!

Data analysis is the hot thing these days and as per O’Reilly, Python is the choice of language for data analysis even though Ruby gets more buzz in the tech news. It is the same reason why scientists are switching away from Ruby to Python.

Similarly, I believe that Perl is still used a lot as a “glue language” and “text munging language” which has always been its forte and continues to be its forte, although Python and Ruby have been slowly entering that territory. Even though there are marketing reasons why Perl is no longer as popular, if you do use Modern Perl, you can be as effective as with the other two languages [1]. For example, if you notice the recent announcement of Amazon “Simple Email Service”, you will notice that their scripts SDK is written in Perl! Also, if you read the latest Perl news it is not lagging behind the other languages, it just doesn’t get the “buzz” factor these days. Programming languages are like fashion, they keep coming back in cycles. Remember the days when JavaScript was considered a pain and today, it’s the new hotness? (same goes for Haskell) We owe a lot to Perl and perhaps Perl 6 will teach us the future of things yet again, who knows!

So I have a question back for the 134 people who asked the above 3 questions – Is the programming language chosen by your company match the kind of community we have described here?

What would you say to these 134 people?


[1] Perl was the original magical language which I still have a soft corner for, since I have written a lot of Perl code at Yahoo! and thoroughly enjoyed it.

PESIT Offer to Startups: Mentor Students, Get Office Space

Monday, May 24th, 2010

My alma mater, PESIT (in Bangalore), has an interesting proposition for startups – mentor students and get office space in return.

The background is that they are working to improve the quality of education in the IS / CS departments. One of the ideas they identified was to work with in-industry programmers who can answer questions from students on the innumerable topics out there, from a practical point of view. Of course, GIYF would be your first response, but students who are just starting out need face time and guidance to make them comfortable, even if the answer is going to be “Check this URL.” Some of the kinds of questions you can expect are:

  • How can I use the vi editor to edit my file?
  • What is CouchDB?
  • How can I compile my program better than typing javac myProgram.java?
  • How can I use the Facebook OpenGraph API?

The only way for PESIT to make this happen is to get motivated in-industry programmers to spare some of their time to mentor students. And what better way is there than offer office space to startups who can work out of the PESIT campus and mentor students face-to-face right there!

Startups can also get access to clusters of hundreds of machines in the computer labs and even get interested students to work as interns with you!

If this sounds like an opportunity for your startup and an opportunity for you to improve the quality of CS education, then go ahead and write to Mr. Harihara Vinayakaram (visiting lecturer at PESIT) at nextgenerationbangalore [at] gmail.com with “Startup Student Mentor” in the subject line.

The 5-year limit to being a coder in India?

Wednesday, December 9th, 2009

Let me start with a story I had heard about long ago when I was at Adobe.

There was this guy who had come in for interviews for a technical role. He passed all the tech interviews with flying colors, the team liked his personality and felt he would fit in well, and the manager was all smiles. In the last HR-style round with the group head, he was informed that the team works on products that are completely owned by the Bangalore-based group and that there won’t be any travel to USA. The guy was taken aback. He told the group head “Sir, please let me go to USA for just one day. If I have a USA stamp in my passport, I will get one crore dowry.”

Needless to say, the guy was not offered a job.

I’m sure you can draw your own lessons and observations from this incident, because it will come into context below, about a discussion we’ve been having on Twitter. It all started with @debabrata who read my previous blog post on the magic of foss.in and asked:

why this ’5 years limit’ applies to Indian software pro ? In other countries people are happy being programmer after 20 years .

I asked the tweeps for their opinions, and it got very interesting.

@cruisemaniac said: society defined age to get married and settle down = ~27 = 22+5 failing which u’re an outcast! and: also, post that age, ur risk apetite goes down due to family and other commitments…

to which:

@HJ91 said: True. Very true. Outcast is the right word, and its sad. Outcast. Insulting, hurting and pathetic.

Wow, this feeling runs deep.

so I asked:

You mean risk appetite or time commitment? … how does risk appetite relate to interest in coding?

And the replies came pouring in:

@mixdev: One of the reasons why brilliant people end up being (just) tell-me-whatto-do-n-leave-me-alone software engineers

@cruisemaniac: I’d say both… U cant risk a new tech and venture 4 fear of financial security… U want tat cozy safe zone and pay packet.

@cruisemaniac: time is a big costly commodity 4 us… we indians cant afford to spend it at our will with spouses and children at home…

@mallipeddi: It’s very hard to keep getting bigger paychecks yr after yr if you’re a 30 yr old coder. You’re expected to become a mgr/MBA

@abhinav: I believe the reason is our society. We tie success to degrees, and later, more ppl you manage more successful you are.

@abhinav: Where in western societies your idea fails, here it is you who have failed! Our society doesnt appreciate risk takers

@abhinav: Yes, more money, higher status, easy life. And most importantly, more dowry!

@mixdev: Because our goals are set by the society & achieving them also in their control. You get bored faster.

@debabrata: I guess to the great extent our society dictates us what we want to be unlike the west

I found it surprising that the situation why people cannot remain coders in India is almost the same as why people want to become entrepreneurs! It’s like this: The passion for coding will remain only when you’re doing cool and interesting stuff. But big companies (at least in India) want only stability which implies boring tedious jobs with standard languages and libraries. There is no room for experimentation. So the coder will have to move to a smaller company or a startup if he/she wants to continue to like coding (I’m ignoring the case of research laboratories for obvious reasons of numbers).

But moving to a smaller company or startup is, by definition, not encouraged. As @abhinav mentioned, there is societal pressure for more money, higher status, fancier cars and bigger houses. There is nothing wrong with wanting this, but don’t force it on other people! Alas, it is hard to reason regarding this. I remember having a long argument with an uncle of mine, he was, hmm, “strongly” suggesting that I buy a car and I reasoned out why it makes no sense (after all, most peers of mine use the car only for weekend drives, not for everyday commute) but it fell on deaf ears.

So I’m conflicted here: Are there not enough people who are actually interested in coding, or is it that the interested people are being peer-pressurized into “moving up” into managerial roles and hence lose touch with coding? Or are we completely off the mark here?


Update 1: As suggested by Peter, read this entry tited “Stuck in Code” by Ravi Mohan for his tale on this topic.

Update 2: A related article in NYTimes recently titled “In India, Anxiety Over the Slow Pace of Innovation”


The magic of foss.in

Wednesday, December 9th, 2009

Why do I keep going back to foss.in? Because I’m the kind of person who needs extrinsic motivation. That’s why having a good circle of friends with a positive attitude is so important to me. And that’s why the foss.in community is so important to me. Because one must always strive to be in an environment where you are “the dumbest guy in the room”, i.e., be surrounded by really really smart people, so that you are forced to work on raising your own level. That’s how I feel when I’m in the midst of fantastic people such as bluesmoon, t3rmin4t0r, Srinivas Raghavan, and so many others. They are perfectionists who deep-dive into anything they are passionate about, and are invariably good at whatever they focus on.

The Good

Attending foss.in/2009 felt great for me because I took comfort in the fact that there are still people out there who are passionate about code and passionate about software. That is becoming rarer and rarer off late. I think it’s the “5 year limit” that I have observed in batchmates, most of them don’t want to code any more, and have moved on to so many other fields. While that is okay, the problem is that it has become a fashion to dis IT and software field.

Another factor was that everything is in the cloud and everything is a website these days, so does open source as a process matter anymore? First of all, the applications are not open source and even if we have the code (rare situation), you and I can’t fix the application/website unless you host it yourself.

But the foss.in community made me remember the joy of coding and joy of hacking.

Kudos to Team Foss.in for making the only community event and only IT event that is worth attending. It was fantastic to see how the concept of workouts had just taken off. And everyone’s been saying that all the keynotes have been fantastic.

In case you are wondering, I’m not the only one who was so enthralled by the event, for example:

fossdotin_janakiramm

fossdotin_ramblinggeek

See Lakshman’s writeup on the same. And so on.

Bottom line? Shut up and hack!

The Bad

Will miss the direction of Atul Chitnis.

What was missing

What I felt was missing is a discussion on the state of the art of software in each field, not just specific PoTDs. And I think this is more of a community perspective rather than the organizers’ perspective — organizers just provide the platform, community provides the content, as Atul keeps reminding us.

For example, consider my pet topic, the state of NoSQL databases – what’s good, what’s not, is it strange or expected that so many of them have come up in the last 1-2 years and all of them are open source (or at least the ones that we hear of). Taking it a step further, how it affects other fields of software. I’ve attempted to ask this before in a session at barcamp on whether webapp frameworks will adapt to NoSQL.

Similarly, what is the future of compilers, will LLVM + clang replace GCC (as @artagnon was speculating)? Will WebKit and V8 take over the world and leave Mozilla + Tracemonkey behind? Why are there so few projects using AGPL? What does it take to get full database dumps out of Wikipedia ? Will open source phones never take off? How does Eucalyptus help have an alternative with EC2? How does appscale help have an alternative to GAE? And so on.

In toto, I think there are three parts to this and I believe only the third part of which is done well already by the community and organizers: (1) what are the different fields and layers of software, (2) what is the state of the art of open source software in those fields, (3) getting people started and involved. I feel that only when we think on these lines, we will achieve Atul’s stated vision of “open source being the mainstream, proprietary software being the special case”*.

Thoughts?



* No flamewars please. I believe that the world will be better off by having all the infrastructure as open source software and having only the business logic / trade secrets as the proprietary part. At each stage of evolution of software, the stack grows higher, and the infrastructure/open source stack can grow higher along with it. For example, Robot Open Source and the Hadoop umbrella.

Coding Problems for Homework

Tuesday, November 24th, 2009

“Coding Homework” is a small website that I have built to list small problems that one can work on, to learn how to use a new programming language. For example, small problems requiring to read from a file, or to use regular expressions, how to find duplicate files in a folder, and so on.

Note that the problems listed on the site is not for testing your algorithm skills, there are many sites for that already.

This list was inspired by repeated requests and suggestions from readers of A Byte of Python for homework problems at the end of each chapter to exercise the skills they have just learned. So I thought why not make it applicable to any language and multiple programming skill levels. And it’s a good topic that can be collaboratively worked on with the programming community, à la Stack Overflow.

All the content will be licensed under Creative Commons Attribution-Share Alike 2.5 India License so that anybody can reuse this content, especially in classroom situations.

Screenshot of "Coding Problems for Homework" website

I also had my own specific goals when implementing this side project:

  1. Solve the lack of “homework problems” for people to exercise their programming skills, especially in the context of learning a new programming language.
    • I am not trying to replace existing lists but rather focus on making the reader active (providing exercise problems) than letting him/her be passive (reading code listings).
  2. Learn how to do website layouts, specifically how to use YUI Grids CSS.
  3. Learn how to pick colors for website design; ColorCombos turned out to be useful.
  4. Learn to use Google App Engine.

It has been a fun side-project, spending a few hours here and there. It is very far from polished, but the basic functionality works. There is still more to do — adding a search functionality, conforming to standard UI design patterns, caching for the rendered HTML (from Markdown), optimizing the housekeeping code, and so on.

This site itself is a good example on the kind of problems that beginners can work on, but they would not know what kind of problems they can solve and what level of expertise (beginner / intermediate / advanced) would be needed. That is where this list of problems can help.

I request you to spend 5 minutes of your creativity to add a few problems so that beginners and intermediate level folks will have interesting problems to test their learning of a new programming language. Thanks!

It might be helpful to you as well when you’re going to play around with functional languages (Haskell, Erlang, etc.), funky new languages (Ioke), or new languages by big companies (Go).

Link: http://codinghomework.appspot.com

Wish for browsers : Adopt MHTML format

Tuesday, September 15th, 2009

This is a request to the communities behind all the open source browsers: Please adopt the MHTML format (or even better, the Mozilla Archive Format) and make it a native part of the browsers.

Use cases

  1. Every time a user wants to send across content that doesn’t fit into an email, the user has to then decide between using .doc, .docx and .pdf formats. This implies additional software that needs to be installed on the recipient’s computer. This is unnecessary because browsers already do a fantastic job of rendering content, why should that be outsourced to other software simply for the reason that they don’t have a common document format?
    • Think product help documentation, resumes, small galleries of photos, and so on.
    • PDF is pixel-level which means it is good for printing, and HTML/MHT is presentation-level which means it is good for viewing while still maintaining full fidelity.
  2. Because there is simply no good “File Save As” solution. This is especially useful to store pages offline so that the user always has access to them, e.g., the Markdown text formatting syntax, and so on.
  3. Print to PDF is abysmal because most websites don’t have appropriate print stylesheets. Currently I’m using the Aviary “To Image” bookmarklet to save pages and preserving decent presentation at the same time. However, saving the document as an image means that I cannot search for text. If only the browser had a proper “Save As” solution, then we would have the best of both worlds.
  4. The future is full of small screen devices Netbooks, Chrome OS, CrunchPad, iPhone, Android, etc. Do you see PDF readers or office suites on all of these devices? Unlikely. But what they do already have are web browsers. So why not have a browser-native document format that works across all these platforms.

Format Possibilities

The MHTML format is already adopted by IE and Opera. Firefox has the UnMHT addon and also has alternatives such as the Mozilla Archive Format. Safari does not support MHTML but instead has its own .webarchive format.

Each browser supports its own file format, clearly demonstrating that there is a use case for storing documents in single files. The gap is whether browser vendors can agree to adopt a common format. That would mean that the file format would actually be useful since it does not need assumptions on the platform/installed software of the recipient.

What I’m hoping for is the browser vendors to bring the vision of the MAFF file format and KDE WAR file format to life.

Extensibility

  • PDF is read-only by design. The new file format could support highlighting and annotating features such as those present in Scrapbook addon.
    • Use case: The highlighting feature means that I can save an online article, mark the parts that I think that are relevant and important and send the annotated file to a friend via email.
  • If the new file format has a container structure (zip, tarball, etc.), then we can include images, videos and other multimedia, just like the office suites’ formats. Continuing that line of thought, can all the browsers adopt one of the office suite file format standards? What if every browser had “Save as DOCX” and “Open DOCX” options? DOCX is appropriate because it is a ISO standard and it will be interoperable with the most popular office suite out there.

Summary

The wish is that the “Save as MHTML” feature will bundle the webpage into a single file, which can be stored, transmitted, and viewed later using any web browser. This will also be useful for small-screen devices of the future which have browsers but not necessarily have dedicated format readers and office suites. If a container structure format is used instead of MHTML, then features such as highlighting, commenting, multimedia, etc. can be added.

I hope this sparks a discussion about whether this idea has potential and could be something useful, or is completely unnecessary.

Update 1: Thanks to “Rik|work” on irc.freenode.net#webkit, got to know about two open bugs in the Webkit bugbase which exactly talks about this — Bug 7168 – Support reading of MHTML (multipart/related) web archives and Bug 7211 – Support save as “Web page, complete” in Firefox format, and as pointed in the comments to the latter bug, Chromium/Google Chrome already supports this! So it is not an outlandish idea as it seems :)

Update 2: Thanks to “Mardeg” on irc.mozilla.org#firefox, got to know about the this proposal from Alexander Limi called Making browsers faster: Resource Packages.

Update 3: Thanks again to “Mardeg” for pointing out these filed proposals in Firefox – Bug 18764 – Full rfc2557 MHTML multipart/related support in browser (filed in 1999!) and Bug 40873 – Save as rfc 2557 MHTML; complete webpage in one file (filed in 2000!).

Update 4: Continuing the discussion with “Mardeg”, it seems there is already a format that can solve this purpose – SVG. It is supported in all modern browsers and Google is working on svgweb which is a JavaScript library that any website can use that enables IE to render SVG using Flash Player behind the scenes. Very interesting! If only IE natively supported SVG along with browsers and word processors having a “Save as SVG” option, this pain point would just go away.

Update 5 (Oct 19, 2009): Looks like MHT is indeed not an obscure file format, Zoho Notebook has “Export to MHT” and “Export to HTML” as the two export options for notebooks and pages.

Twitter vs. Why we can’t concentrate?

Saturday, August 15th, 2009

Attention Span

I started using Twitter as an experiment, and it was the first and only social network I really participated in. It was great because I actually made new friends that I went on trips with, got the opportunity to follow the thoughts of interesting people, and whenever I was in a quandary, I just had to holler a question and would get plenty of answers and advice in return.

But I was uneasy because I was feeling jaded. I thought it was because of the typical “overdoing it” reason, but there was more to it. It was affecting my ability to think critically/deeply about a subject.

Why am I thinking so much about a social network? As David Allen once said, “Pay attention to what has your attention.” And clearly, Twitter had more of my attention than it should have.

Since my attention span was reducing from books to blogs and then blogs to tweets, I was being converted from “from a thinker to a clicker”.

So I’ve gone back and started reading books and paying more attention to offline friends. And I’m not alone on this, many people have expressed similar opinions.

Getting your Fix

I think of this situation as getting your fix. Think smoking vs. coffee. Both are stimulants. Both are legal. But since smoking actually affects others, people have to go outside to indulge in it. Hence, it is less convenient. Probably that’s why there are more people addicted to coffee. Because it is more convenient. There is a sufficient barrier to smoking. Even though this analogy may not be true, consider reading blog posts vs. reading books. There is a sufficient barrier of attention to the latter, that is why more people prefer reading blog posts. It is more convenient. The same for reading blogs vs. tweets. The latter is more convenient. Then, going down this path, your ability to think becomes restricted to 140 characters. Twitter gives you that instant high that you published or read something, which means you lose persistence which is required for longer reading, hence tend to think a lot less and quick wins prevent you from going after bigger wins.

The problem with the shorter fix is that you will indulge in it more often and it will have lesser stimulation in the long run. Consider the difference between, say, having a 5-day 9-hour work week with 2-day weekends vs. having 6-hour work everyday with no weekend and no holidays. Which one would you prefer? This is how I argue that a book once in a while will give you more stimulation than a hundred tweets. For example, consider the signal-to-noise ratio – only tools like filtrr.com can filter out #ipl talk, etc. whereas a book would give a broad understanding about a particular subject. In the long run, it is more enriching to go deeper into subjects, not to be “restricted” to a buffet of subjects.

As a sort-of substitute for Twitter, I’ve shifted to a del.icio.us network. After all, most of Twitter is sharing links and delicious doesn’t have the downside of frivolous tweets. Also, delicious shows how many people have bookmarked a link giving another indicator whether something is worth reading or not, and even better, they are tagged appropriately so I immediately know the topic to expect for an article, instead of “This is cool <insert link>.”

The Attention Psychology

Let’s think about attention in terms of psychology, which I am trying to understand a little about from The Mouse Trap blog:

Maximizing utility

U = E x V (where U is utility of act; E is expectancy as to whether one would be able to carry the act and if so whether the act would result in desired outcome; and V is the Value (both subjective and objective) that one has assigned to the outcome.

Maximizing Predictability

While selecting an action we maximize reward and minimize punishment, basically we choose the maximal utility function; while choosing which stimuli to attend to we maximize our foreknowledge of the world and minimize surprises, basically we choose the maximal predictability function; we can even write an equivalent mathematical formula: Predictability P = E x R where P is the increase in predictability due to attending to stimulus 1 ; E is probability that stimulus 1 correctly leads to prediction of stimulus 2; and R is the Relevance of stimulus 2(information) to us. Thus the stimulus one would attend, is the one that leads to maximum gain in predictability. Also, similar to the general energy level of organism that would bias as to whether, and how much, the organism acts or not; there is a general arousal level of the organism that biases whether and how much it would attend to stimuli.

As per my understanding, the first part means that because we expect much utility about something, it’s perceived utility is higher, making it’s value higher. And because Twitter gives that dash of randomness that we desire, it’s utility is much higher than it really is.

The second part means that we want to know more about the world in order to have lesser surprises, and hence we tend to read more and more, especially if it is information that we perceive as relevant to us.

Bottom line: I question whether more and more information and more and more immediacy is really necessary/required for us?

Think of all the great things that have been achieved whether it is a motor engine or a music stereo, would it have been created if the to-be-creator was constantly distracted and with low attention span? Where is the time to get inspired if we’re always mentally tired?

Why Can’t We Concentrate?

I will finish up with excerpts from this excellent article on Salon called “Why Can’t We Concentrate?”:

(more…)

How to build an online community?

Monday, May 25th, 2009

Every now and then, I try to build a group of people to talk about specific topics but it quickly dies because of inactivity. Although I really saw the value in having such a community, I just didn’t know how to build one. Even if one person keeps pumping in content, how do you actually get the community to interact with each other?

It is the same kind of problem being faced by, say StartupBuzz.org which, I am guessing, wants to be the Hacker News of India. There are indeed topics that apply only to startups in India, from “Startup Morning”, to India’s first in-taxi magazine. Such interesting events and ideas are worthy of discussion.

There is value in such a community, but again, how to build it? StartupDunia has already put its thoughts on the subject but the question still remains.

Here are some of my thoughts.

Does it require credibility?

  • Hacker News has Paul Graham and YCombinator behind it.
  • ProBlogger Forums have ProBlogger’s Darren Rowse behind it.
  • And the most recent example of StackOverflow.com that has Joel Spolsky and Jeff Atwood behind it.

So the question is whether there each community should be backed by up by a credible person who has a reasonable authority on the subject?

(more…)

Why Stack Overflow is useful

Thursday, February 5th, 2009

In one of my previous thoughts, I had mentioned about a website called “Stack Overflow” in passing.

I’m surprised that many people do not know or use this resource and community. Just a brief search over there would answer so many questions that programmers have.

For example, there is a suggestion on my skribit page:

“how to give back to the open source community”?

And this question has 20 votes!

I wonder why this question to me, then I remembered this suggestion popped up soon after I wrote “Why use Creative Commons license?” where I had written “The book was intended to be a contribution back to the open source community. We constantly keep taking and taking – whether it is using Linux, Vim, Firefox, or countless other software, so it felt great to be useful to the community in return.”

I guess I had it coming.

First of all, I would say that the best place to actually learn such a topic would be another book (I bet you saw that one coming!) called Producing Open Source Software by Karl Fogel (which is itself an open source book) to understand how an open source project works right from the technical infrastructure to the social and political infrastructure, how to communicate, and so on. And finally, the chapter on Volunteers explains the different kinds of volunteers that are helpful to an open source project which indirectly means that those who are interested can participate in the projects in one of those roles => You’re giving back to the open source community!

But perhaps there are better suggestions in this discussion on Stack Overflow when somebody asked, duh, How to get involved in an open source project?

Someone also posted another skribit suggestion asking:

hi, can u give me a link on examples with python or projects in python book i am a beginner

Guess what? I already answered that in a discussion at Stack Overflow.

The answer is that there are two projects – the “Programming Language Examples Alike Cookbook” project and the Rosetta Code project which lists vast numbers of example programs in multiple programming languages.

Again, the person could have found this answer already by a simple search on the Stack Overflow website.

For some of the programming queries I had, I didn’t know whom to ask. There used to be an internal algorithms-discuss mailing list when I was at Yahoo!, but whom do I turn to now? The answer again was “Stack Overflow” (which at that time was yet to be launched, so I was waiting in anticipation):

How to convert floats to human-readable fractions?

Let’s say we have 0.33, we need to output “1/3″. If we have “0.4″, we need to output “2/5″.

The idea is to make it human-readable to make the user understand “x parts out of y” as a better way of understanding data.

I know that percentages is a good substitute but I was wondering if there was a simple way to do this?

And someone nicknamed “Epsilon” pointed to me to a brilliantly simple algorithm by David Eppstein which exactly answers this question.

# Usage: ./frap <fraction> <maximum denominator>

$ ./frap 0.33 10
1/3, error = -3.333333e-03
3/10, error = 3.000000e-02

$ ./frap 0.2342 100
11/47, error = 1.574468e-04
15/64, error = -1.750000e-04

Isn’t that amazing? Both the algorithm and the community at Stack Overflow.

If you want to know why Stack Overflow works so well, there is a discussion on that, at Stack Overflow you might want to read :-)

Announcing my free book on Vim

Tuesday, November 25th, 2008

Today is the first day of foss.in/2008, and on this occasion, I’m happy to announce the first public release of my Creative-Commons licensed book on the Vim 7 editor.

This book is meant for both beginners and advanced users.

For beginners, it walks you through the first steps to learning about modes, discusses about typing skills to be effective and moves on to the editing basics.

This book will definitely appeal more to people who are Vim users already because it helps add a huge number of tricks to their arsenal, whether it is more efficient editing, personal information management, coding your own plugins or making Vim a programmers’ editor.

I hope that fellow Vimmers will find these notes useful. Even though it is in a book format, the writing style is more like a tutorial and is informal, which should be familiar to readers of my Python book.

Both books are under the Creative Commons Attribution-ShareAlike 3.0 license, so you’re free to download it, email it, share it and improve it. In fact, the book is on a wiki, so you can just click on ‘Edit’ in the left sidebar of any chapter to improve the book in a matter of seconds. When in doubt, please use the ‘Discussion’ link to add your suggestions and comments.

For those who prefer reading books they can hold in their hand, please consider purchasing a printed copy of the book. This will also help support the continued development of the book.

For those PHP gurus familiar with GeSHi syntax highlighting, I would greatly appreciate any help in improving my vim syntax highlighting source, especially in handling Vim-style comments, etc. Please mail me if you can help.

This book has been in the works for several years, so I’m glad to see it finally in good enough shape for releasing it. Although I haven’t done as many rewrites as I would have been satisfied with, I decided it was better to <insert cliché of “Release Early, Release Often.”>

I dedicate this release to foss.in and GTD principles.