Wednesday, November 29, 2017

November 29, 2017

Coffee-through-nose time:
Funny to see the devolution of communication, 1st there were social media sites like facebook, then twitter came along that limited you to 140 char, then snapchat where conceited twits just swap selfies with maybe a word or two caption. I can't wait to see what the next devolution is, maybe we will start posting grunting sounds?

Monday, November 27, 2017

November 27, 2017

I am seriously contemplating something that would have been unthinkable even a year ago: stopping my subscription to The Hindu. Reading The Hindu with a tumbler of filter coffee has been a tradition for oh-so-long, but I think it's time to be more pragmatic.

I do have a number of complaints about the paper (due to which the paper these days goes to the recycling bin either untouched or after a brief glance at the front page followed by a disgusted shake of the head):

  1. Two sets of full-page ads that you have to navigate through before you can even get to the front page
  2. And once you get to the front page, what do you get but the most boring and irrelevant news items that you can think of. Case in point: today's edition (no full-page ad before the front page, thank the lord for small mercies) has a piece about some perceived-to-be-socially-relevant theatre performance or something similar, taking about 10-15% of the prime real estate. I usually do not have nice things to say about the competition (ToI and Deccan Chronicle), but they at least get it right about what should go on the front page.
  3. Editorial content written by Grandmaester Pycelle. In general, there is a propensity to reserve their hard-hitting journalism for the national, out-of-state players, and go easy on the local elite.  Again, kudos to ToI and Chronicle on this.
But the primary reason is that the online content--both mobile and web versions--seems miles ahead, and, considering that most of my other reading has already transitioned to the smartphone, it seems like the logical next step. Most of the shortcomings with the dead-tree version are either absent or are mitigable in the app.

Another reason has to do with the medium itself; there is something inherently clumsy about struggling with such a large sheaf of papers, the need to balance said filter coffee in one hand and mutter expletives as you get rid of the full page ad for the latest and greatest smartphone in the market or about how you can live like a pampered prince in the seat of luxury for Rs 15 crores, and you reach a point where you just say 'screw it'.

Tuesday, October 17, 2017

October 17, 2017

I chanced upon Suburra via James Delingpole's column, and boy, am I glad I did.

Gripping plot, haunting music and visuals, very relatable characters, you name it, Suburra has it and more.

The format of starting each episode with a preview of the episode climax, with an Il giorno prima ("The day before") is neat. It leaves you wondering how on earth would the situation glimpsed in the preview come about, and doesn't fail to disappoint you even once. Well, almost; I was not so enamoured with the season finale, but the rest of the episodes are top notch.

The depiction of the Anacletis and their gypsy culture with all the ostentatious display of wealth, communal living, and so on was refreshing when compared to the sober and classy milieu of, say, the Vatican. Loved the Spadino character as well, his vulnerability coupled with all his theatrical hand flourishes and twirls.

Make sure to watch the show in the original Italian with English subtitles. I didn't try Suburra-dubbed-in-English, but I can very well imagine how it would have been, based on my brief experience of El Chapo dubbed in English (side note: give El Chapo a try as well; almost as good as Narcos -- on a par with S3 and the Cali cartel, but pales somewhat in comparison to Pablo Escobar in S1 and S2).

A couple of things that didn't sit well:

  1. The Samurai character. Somebody who claims to rule Rome goes around in a scooter like an accountant, with no retinue of bodyguards? Doesn't sound right. I get it that everybody knows how powerful he is, but he'd still be an attractive target for a rival gang.
  2. Maybe I'm ignorant of how things are in Rome, but the ease with which heavily-armed gangs are able to move about the city and engage in drive-by shootings strained one's credulity a bit. Except for the scenes involving Gabriele's father, the police don't put in much of an appearance at all.

I am not a big fan of hip hop, but the end credits song is really great too.

Can't wait for Season 2. 

Friday, September 29, 2017

September 29, 2017

I have put together the next pLisp tutorial. This is more of a language-oriented tutorial, and less about pLisp features.

Wednesday, August 23, 2017

August 23, 2017

(Warning: Game of Thrones spoilers ahead)

Season 7 of Game of Thrones is the worst season so far, even compared to Season 6 (notwithstanding the fact that it was redeemed by Battle of the Bastards and Winds of Winter).

While finally seeing dragons in battle against the Lannisters and the undead was well worth the wait, the number of WTF things was too many (in no particular order):

  1. Cersei suddenly developing some serious strategic chops (Tycho Nestoris' fawning compliments about how she compares to her father rubbing salt in our wounds) 
  2. Euron Greyjoy's magic teleporting armada (I know he's quickly become a fan favourite this season, but the guy's a real joker) 
  3. I really hope Arya is playing the long con, otherwise her character has basically gone to shit this season
  4. Jaime plunging to the bottom of the Blackwater Rush with the armour weighing him down, only to blithely climb out of the river out of sight of any Dothraki that are sure to be looking for Lannisters to finish off
  5. Assembling an improbable all-star crew to go on a wight hunt beyond the wall so that they can convince Cersei about the nature of the threat facing mankind. Yeah, I can almost picture her disdain as she sips her wine when she hears the news. 
  6. Dany's rescue of the Magnificent Seven (r/gameofthrones/ has some really nice time/distance computations involving the speeds of carrier pigeons and dragons that attempt to rationalize the physics of it. Some people have way too much time on their hands) 
  7. "Thought you might still be rowing". Cute, but too cute.
  8. Tyrion has basically become a piece of luggage (for the last two seasons, actually)
  9. Evidence for R+L = L being found serendipitously in The Citadel
  10. Who knew greyscale could be cured so easily by the generous application of Unguents #143 and #765? Let me take a guess, one of them is aloe vera?
I'll still be waiting eagerly for each new episode, of course, but now it's more of a combination of a) an attachment to the characters' (and the story's) earlier, better days and b) a desire to see how this train wreck plays out.

Monday, August 14, 2017

August 15, 2017

Something fishy with the purportedly fake message sent out by Unocoin:

If the email about the ICO was not sent by the Unocoin team, what gives with the security details reported by Gmail?

Friday, August 11, 2017

August 11, 2017

I don't know whether to laugh or cry at this:
"This week the L.A. Times described a 17-year-old from Virginia who'd spent several hours a day perfecting his technique in Microsoft Excel, "one of 150 students from 50 countries competing in the Microsoft Office Specialist World Championship" at the Disneyland Hotel in Anaheim. "At stake: cash, prizes and the clout that comes with being the best in the world at Excel, PowerPoint or Word. 'I'm going to do my best to bring it home for the United States,' John said as he prepared for the competition." Microsoft's VP of Worldwide Education said the event helps students "to become more employable to companies that build their businesses around the Microsoft suite." For example, the article points out, "Past winners have gone on to attend Ivy League colleges and even work at, yes, Microsoft... Delaware resident Anirudh Narayanan, 17, prepared all summer to compete in the Excel 2013 category, 'looking up obscure facts just in case I might need to know it during the test.' He's hoping the skills he honed will help him at Carnegie Mellon University, where he will begin studying economics in the fall. 'I make sure I do a minimum of five hours a week in Excel,' Anirudh said. 'Then for a while I'll be on YouTube watching videos about Excel.'" John eventually won the first-place prize in the Excel category -- which was $7,000 and an Xbox.
In related news that will definitely make you smile rub your hands with anticipation, the next pLisp tutorial is ready -- I walk through the development of a basic unit testing framework using pLisp.

Tuesday, July 11, 2017

July 11, 2017

Nice publicity stunt (how else would the world get to know of the existence of companies like Culture Machine and Gozoop?):
Culture Machine in Mumbai recently launched a video wherein they surprised their female employees with the good news. The video that seemed like an impromptu gift began with them asking what it's like to have periods. 
You can totally see floods of joy gushing on their faces when they are told that they can take a paid day off. The video states a classic example of bliss, and I am sure is driving loads of applauses from women around the country. 
Another company in the same league is Gozoop, a digital marketing organisation. All the female employees working for this organisation will also get a paid leave on the first day of their period. 
Wonder what the reaction would be if it was also announced that this would be accompanied by a commensurate reduction in their pay cheques since, well, equal-pay-for-equal-work and all that nonsense.

In news from the never-underestimate-the-basesness-of-humans section, umbrella-sharing startup loses nearly all of its 300,000 umbrellas in a matter of weeks.

Reason #12376 a majority of Chennai auto drivers are scum:  Globetrotting couple lose dog in Chennai.

To end with some uplifting news in an otherwise depressing news day, here is a tutorial I put together on how to develop a Bitcoin client in pLisp. You're welcome.

Monday, June 12, 2017

June 12, 2017

else if(item == "SanitaryPad")
taxRate = 0.12;
                      - Poor unsung tax software dev

Yeah I know, they will be using item category codes, which will most probably be numeric, but my point still stands: why is the GST code dealing at this level of detail? As new items enter the market, spare a thought for the above developer who needs to maintain this code (his employer will be laughing all the way to the bank, though -- "New version! Incorporates latest tax changes! Upgrade for a one-time discount of...").

Wednesday, May 31, 2017

May 31, 2017

(Disclosure: IITM is my alma mater)

The beef fest at IITM and the ensuing tensions leave one shaking one's head. The IITs have already lost their sheen, what with the indiscriminate opening of campuses in every -- what, district? -- and unjustified affirmative action, do they really need to turn into another JNU? Why not try focussing on world-class research? What about, say, pushing the frontier on quantum computing? Nah, we'll focus on cattle slaughter and transportation, that's more fun.

More crocodile tears for the customers. Quick question: if the burden is on the customers, why don't we see them protesting on the streets, just like they did during the whole jallikattu thing?

Monday, April 17, 2017

April 17, 2017

[Warning: Game of Thrones spoiler ahead]

Remember S4E08 of GoT? The Mountain and the Viper? It would be fair to say no other scene on TV or the big screen had as much of an impact on me as the one where Oberyn lets himself be brought down after doing everything perfectly (well, almost everything, if you ignore the way he loses his first spear). I couldn't bring myself to rewatch the scene for quite some time. Might even have been a bit of PTSD there.

The reason I bring this up is because of this:

That's me playing White against the computer, having just moved my rook suicidally to b2, with the Black knight's upcoming fork to c4 the equivalent of Gregor Clegane tripping Oberyn.

It may look like just another blunder in a chess game, but to me it was the closest I had come to winning (unaided by the use of a chess engine) against the computer in Adept mode (that's the highest level at which I have discovered that I can stay in the ring and give as good as I get). I had managed to build an impressive material advantage, and a careful exchange of pieces would have left me with a hopefully easy-to-win end game.

I guess I could have continued the game with the still-present (albeit diminished) material advantage, but knowing the bastard that is the computer, it would have worn me down into committing another blunder shortly. That's the problem with playing against an emotionless automaton.

Wednesday, March 29, 2017

March 29, 2017

I wrote up pLisp into a paper and submitted it to ELS17, but the paper didn't make it. However, I got a lot of valuable feedback, chief among them being "Why the f&*k are you rolling out your own GC, with no benefits in terms of latency, efficiency, etc.?"

Well, the autodidact that I am, I didn't realize at the time of working on the GC bits that things like the Boehm Garbage Collector exist (I was stupidly happy, waxing eloquent about the wonders of posix_memalign() then -- God, how naive were we), and that migrating to the Boehm GC just entails replacing all malloc() and realloc() calls with GC_MALLOC() and GC_REALLOC(), and removing the free() statements. It was just a matter of a half a day's work, and now the code is free of all the inefficient mucking around with hashtables and Red-Black trees.

Tuesday, February 21, 2017

February 21, 2017

pLisp has been ported to OS X. This was surprisingly straightforward, for a couple of reasons: a) OS X, once the necessary bits are set up (mainly HomeBrew and jhbuild), is sufficiently close to Linux--at least for me--to make the porting a breeze and b) all the earlier hard work of migrating pLisp to autotools finally paid for itself.

The main gotcha for me was adding missing function declarations (this is probably an artifact of using a higher version of gcc in the Mac system, and not because of some inherently OS X thing). After spending a significant part of the porting effort for this, the key takeaway for me is to not ignore compiler warnings. This will save you  a buttload of trouble, trying to wade your way through seemingly unrelated runtime errors (while it's easy to preach, I'm still guilty of this sin, as a compile of the pLisp code base will readily demonstrate).

Tuesday, January 10, 2017

January 10, 2017

While the "Elderly Catholic woman has mistakenly been praying every day to Elrond from 'Lord of the Rings"' story manages to sound more hilarious each time I come across it in my news feed, there is a deeper truth behind this, from a magic/occult perspective.

Though I have been interested in mysticism and all things occult for a long time (it all probably stated with The Tao of Physics), it took my discovering John Michael Greer's writings--in particular, his Well of Galabes blog--to acknowledge to myself that there is something over and beyond what can be explained by science and sensed by us through our, well, senses.

I can't really point to any single extraordinary incident that tipped me over to the other side, so to speak, it's more of a retrospective 'audit' of the things that happened over the last week, month, year, and so on, an audit that reveals interesting patterns, a balancing or settling of accounts if you will. Karma and cause and effect and all that.

Anyway, at the risk of sounding woo and cryptic, let me just say that the phrase 'Change in consciousness according to will' seems to be a good place to start.

Oh, and I have my own banishing ritual now, based on the pantheon of our deities.

To take the original thought that kicked off this post to its conclusion: the elderly catholic woman, in all probability, reaped the same benefits that she would have reaped had she been praying to a statue of the actually-intended saint. And no, I don't mean this in a facetious sense.

P.S. Reddit has an occult sub. Don't forget to check out the Illustrated Beginners Guide to Chaos Magic.

Friday, December 30, 2016

December 30, 2016

In the brave new post-demonetization world of cashless transactions and the RBI's clueless/tone-deaf exhortation to citizens to use digital payments to "enhance the experience of living in the digital world", it was ironic that plastic money worked mid-air during travel to/from Andaman, but not on the ground at any of the islands' hotels and restaurants. Guess they are yet to get the memo. Things were so (for want of a better word) cash-and-carryish at one of the places that there is no record (financial or otherwise) that we had even set foot in the premises; everything is settled on the spot that there is nothing to do at checkout time except to wave goodbye to the folks at the hotel reception.

Staying on the subject of Andaman and Nicobar: an excellent holiday destination, a big contrast from the eyesore that is Chennai (apart from the cleanliness, what strikes you is the near-total absence of any political symbols; no party flags, no posters, no mugshots of the local goons adorning cheap flex banners everywhere you turn).

Wednesday, November 09, 2016

November 9, 2016

I am not one to toot my own horn, but what the hell. I predicted exactly this a year ago:

I'll be over there in my corner, smoking my pipe in my armchair. Those with offerings and other goodies, please queue up and be orderly, everybody will get their turn.

Sunday, October 16, 2016

The BS Economy

Yesterday I got my aging tablet's screen protector changed. What should have been a simple and quick visit to a mobile phone outlet turned out to be not so simple after all; I had to visit four such places before I could get this done. At each of the first three outlets, the response was that such services were not done there.

All of these outlets are located in a mall, one of the so-called trendier and happening ones in the city. You know how things are with malls: a lot of people strolling about, crowds at places like food courts and theatres, and most of the empty shops filled with bored salespeople with nothing to do but entertain themselves with fantasies of how they would like to push the strolling folks over the walkway rails.

The key word here is 'salespeople'; people who are trained to sell the stuff (I'm being quite generous with the word 'training' here), and nothing else.

There is a lot of talk about value-creation, moving up the value chain and so on, but this doesn't seem to translate very well into practice. We still have college graduates being churned out in their thousands every year, with degrees that are worth less than the paper they're printed on, with no real skills (and no, 'I have excellent communication skills and am a team player' is not a skill, even allowing for the invariable resume embellishment). The three or four years--don't get me started on engineering degrees--spent on getting a degree would have been much better spent in acquiring real skills like learning how to fix a car, cook a mean baingan bharta, or build a cabinet for a home entertainment system.

Or change the screen protector for a tablet.

Friday, September 09, 2016

September 9, 2016

Yeah, that about describes him perfectly:
If there was a fortune to be made at the bottom of a sack of shit, Blair would dive in head first (having been given a helpful push by his wife).
I have written about this before, but it's time to remind folks that there is another side to the story, in light of all the clueless people at the letters to the editor section at The Hindu who insist on rhapsodising about her sainthood:
What the hell, might as well throw this and this in as well.
Here's a pro-tip for the web developers working on the payment gateway module of our venerated public sector utilities (BSNL, if I'm not mistaken): when your message to the payment gateway is acknowledged to have been processed successfully, your response should be a matter-of-fact 'Yup, got it'. You should not display a 'Congratulations! Your payment has been processed successfully!' message to the user, conveying the impression that everyone at the backend were keeping their fingers crossed, and let out a collective sigh of relief that things worked out well after all. Doesn't inspire much confidence, folks.

Wednesday, August 31, 2016

August 31, 2016

Quick pLisp update: pLisp is now much more liberal with respect to symbol names: almost any character is acceptable, except for ten or so 'special' ones like backquote, comma, double quotes, and so on. This has resulted in the added benefit of doing away with things like LET1 and CALL-CC and going with the more standard LET* and CALL/CC.  Also, built-in functions like + and CAR can now be used wherever user-defined functions can be used, e. g., as arguments to APPLY and FUNCALL. This was achieved by creating user-defined wrapper functions for the built-ins; profiling indicates that there isn't much of a performance hit because of this additional indirection.

Monday, July 18, 2016

July 18, 2016

Well, the Turkey coup has fizzled out. I was initially rooting for it to succeed, but the ramifications would have been worse if it had, at least globally, and Erdogan's recent peace overtures to Russia would have been undone. But spare a thought for the poor soldiers: you are ordered to take your tanks to the streets, probably being told it's just a drill, you encounter protesters on the streets who, well, protest, and you hold your fire in spite of the provocations; realizing the true situation, you surrender to the civilians, and end up suffering indignities such as getting beaten up, or, even worse, lynched. And, if you haven't been lynched, probably facing a death sentence anyway.

Pop quiz: how do you put together, in a span of 24 hours, a list of 2700 or so judges who were involved in the coup attempt? Answer: You don't, you simply pull out the list of dissidents you had put together in the preceding weeks and months and use the Allah-given opportunity to get rid of them.

The Hindu chimes is as usual with its hemming and hawing. My late father--and others of his generation--had a colourful Tamil phrase, vazha vazha kozha koza (wishy washy), to describe The Hindu. The paper is still living up to this deserved reputation.

Speaking of The Hindu's opinions, I've always been at a loss as to how best to characterize this, notwithstanding the above apt phrase. Then it hit me: Grand Maester Pycelle in The Game of Thrones. Picture Pycelle speaking the words from The Hindu's editorials in his querulous and quavering voice, with liberal usage of "On the one hand..." and "On the other hand...", and you'll see what I mean.

It was bound to happen, and it did. The lemmings are at it again, this time it's Pokemon Go. The craze in the west is understandable, sort of: kids who grew up with Pokemon in the 90s are now young adults with disposable incomes, and Pokemon Go is a way for them to reconnect with the past. What's the lemmings' excuse?

Friday, July 01, 2016

July 1, 2016

Must-watch interview of Mark Blyth. You know we as a species are fscked when a video like this has only 12,534 views while Gangnam Style exposes overflow problems in the hits counter variable. The money shot (even better to hear it from the man himself, with his charming--Scottish?--accent):
...It's not going to sustain itself. So, you know the Germans have this thing that we don't want it to become a transfer union. What do you think you're in? Right? At the end of the day, you're transferring labour, skills, responsibilities, it goes with the gig. And you did an undervalued exchange rate by having your super-efficient economy buried in all these less-efficient economies so that you can sell more BMWs to the Chinese.
And this has relevance to what I mentioned yesterday about allowing malls to be open 24 hours a day (as in, this is the argument you should be using, and not the dishonest and cynical stuff):
Here's the problem: What do you mean by reforms? Some abstract notion that you should get into the pharmacy monopoly. Let's fuck pharmacists. I can now buy my meds over the counter in a supermarket which got deregulated hours so it's cheaper so we can all buy drugs at ten o'clock at night. Please tell me how that invigorates an economy that has lost 30% of its GDP. This is a fantasy.

Thursday, June 30, 2016

June 30, 2016

(Warning: Game of Thrones Season 6 spoilers)

Well, Season 6 of Game of Thrones is over. This is easily the best season so far for me, notwithstanding the WTFs involving Arya's Braavos escapades and Dany's crappy plot line. To be fair, I watched seasons 1 to 4 in more or less binge mode (bless you and RIP, Show Box), so I may be wrong. The post-premiere discussion megathreads at reddit are the place to be after watching the episode, where you get to experience the depth of emotions people exhibit for having R+L = J confirmed for them after waiting for 20 years and also some hilarious comments ("Lancel should have crawled zig zag" and "Tommen took the name 'Kings Landing' too literally").

Episodes like "Battle of the Bastards" and "Winds of Winter" are always better appreciated on the second viewing; half of the first time is spent in nervousness/dread, wondering what unexpectedly crappy thing is going to happen next. The second time you're more relaxed, knowing what's coming next, and are also on the lookout for the minor but important details you missed the first time (pointed out helpfully in the relevant reddit thread).

On a related note, I started watching The Walking Dead, and after two episodes I can't for the life of me figure out why it's held in such high regard; bad acting, bad editing, cliches all over the place, you name it. Maybe GoT has spoiled me, but things better start looking up in the next episode or two.

"Family life" my ass:
CAIT national president B.C.Bhartia and Praveen Khandelwal maintained that allowing shops and establishments freedom to operate on a 24/7 basis would have a detrimental impact on the traders. Their case is that it would have repercussions on law & order, environment, health, social and family issues.
Why not be upfront about the real reason, i.e., "Our business and profits will be at risk if this act is passed"?


pLisp has been ported to 64 bit. I thought I had already taken care of potential 64 bit issues, but boy was I wrong. The things that bite you in the ass are not the obvious gotchas like unsigned ints that were used to hold pointer values, but stupid effing stuff like missing function prototypes which screw you over in oh so unexpected ways. Nah, I'm not bitter at all, why do you ask?

Tuesday, May 10, 2016

May 10, 2016

In case you wanted any more proof of the way the markets are decoupled from fundamentals and are dependent (*ahem* coupled) on happenings elsewhere:
Sentiment was supported by lower-than-expected U.S. April non-farm payroll numbers, as it meant the Fed would take longer time [sic] to raise interest rates.
That's right, there's bad news on the economic front in the US, so their central bank is going to defer the rate hike, so it's good news for the Indian stock market because it's good news for the American stock market because of the continued maintenance of higher liquidity conditions there. Or, is it that the rate hike deferral means that emerging markets continue to be attractive to overseas investors? I don't know man, by now I don't know whether I'm coming or going.

Saturday, April 30, 2016

April 30, 2016

After a lot of false starts, I managed to port pLisp to Windows. Long story short, it took the MinGW GTK+ and GTKSourceview packages and the MinGW compiler--in Cygwin--to get things to work. The Windows version is shipped pre-compiled (for 32 bit right now); you just need to unzip the files to a directory of your choice (in addition to installing the aforementioned MinGW bundles).

Since we have all the bases covered (POSIX and Windows), pLisp has now been formally introduced to the rest of the world. Some very useful feedback and bug reports from the r/lisp community, thanks folks.

Monday, April 04, 2016

April 4, 2016

Excerpt from the Indian angle to the Panama Papers:
MF records list Indira as a shareholder in Stanbridge Company Ltd, which was incorporated in 1999 in the BVI. Records show that shares of the older couple were transferred to their daughters in 2011 and eventually, in October, 2011 Malika Srinivasan relinquished her shares “for personal reasons” to one Ved Prakash Ahuja. They also show that shares of another BVI entity, Auto Engineering Development and Research Limited, were transferred to Stanbridge. MF records show the company was struck off the records in September 2015.
Response: Mallika Srinivasan stated: “I wish to clarify that I did not set up any offshore company and have no connection with Stanbridge Company Limited. It belongs to Mr V P Ahuja, an NRI…”
- See more at:
MF records list Indira as a shareholder in Stanbridge Company Ltd, which was incorporated in 1999 in the BVI. Records show that shares of the older couple were transferred to their daughters in 2011 and eventually, in October, 2011 Malika Srinivasan relinquished her shares “for personal reasons” to one Ved Prakash Ahuja. They also show that shares of another BVI entity, Auto Engineering Development and Research Limited, were transferred to Stanbridge. MF records show the company was struck off the records in September 2015.

Response: Mallika Srinivasan stated: “I wish to clarify that I did not set up any offshore company and have no connection with Stanbridge Company Limited. It belongs to Mr V P Ahuja, an NRI…”
MF records list Indira as a shareholder in Stanbridge Company Ltd, which was incorporated in 1999 in the BVI. Records show that shares of the older couple were transferred to their daughters in 2011 and eventually, in October, 2011 Malika Srinivasan relinquished her shares “for personal reasons” to one Ved Prakash Ahuja. They also show that shares of another BVI entity, Auto Engineering Development and Research Limited, were transferred to Stanbridge. MF records show the company was struck off the records in September 2015.
Response: Mallika Srinivasan stated: “I wish to clarify that I did not set up any offshore company and have no connection with Stanbridge Company Limited. It belongs to Mr V P Ahuja, an NRI…”
- See more at:
You really have to hand it to the 1%, the response is a masterclass in staying on the right side of truth while projecting an air of innocence (assuming they're not brazening it out on the assumption that nothing will come of the whole thing). "...I did not set up any offshore company" (doesn't preclude a registered agent setting it up for her), "...have no connection with Stanbridge Company" (again doesn't preclude having had a connection) and "It belongs to Mr V P Ahuja" (conveniently doesn't say whom it had belonged to).

Related must-read article. Also this, from 2014.

Staying on the subject of leaks, this is sure to bury the Unaoil leak. By the way, did you know that L&T was a beneficiary of a rigged tender process, courtesy of a Unaoil insider?
MF records list Indira as a shareholder in Stanbridge Company Ltd, which was incorporated in 1999 in the BVI. Records show that shares of the older couple were transferred to their daughters in 2011 and eventually, in October, 2011 Malika Srinivasan relinquished her shares “for personal reasons” to one Ved Prakash Ahuja. They also show that shares of another BVI entity, Auto Engineering Development and Research Limited, were transferred to Stanbridge. MF records show the company was struck off the records in September 2015.
Response: Mallika Srinivasan stated: “I wish to clarify that I did not set up any offshore company and have no connection with Stanbridge Company Limited. It belongs to Mr V P Ahuja, an NRI…”
- See more at:
MF records list Indira as a shareholder in Stanbridge Company Ltd, which was incorporated in 1999 in the BVI. Records show that shares of the older couple were transferred to their daughters in 2011 and eventually, in October, 2011 Malika Srinivasan relinquished her shares “for personal reasons” to one Ved Prakash Ahuja. They also show that shares of another BVI entity, Auto Engineering Development and Research Limited, were transferred to Stanbridge. MF records show the company was struck off the records in September 2015.
Response: Mallika Srinivasan stated: “I wish to clarify that I did not set up any offshore company and have no connection with Stanbridge Company Limited. It belongs to Mr V P Ahuja, an NRI…”
- See more at:

Thursday, March 31, 2016

pLisp File Browser

pLisp now has a File Browser too, for those who are not so enamoured with image-based development:

It's pretty much bare-bones functional; you can open, edit and save files (it's multi-tabbed, so simultaneous handling of multiple files is supported). The programming-specific features are the bells and whistles that are carried over from the Workspace: evaluating expressions, syntax highlighting, autocomplete, parens-matching, and context-sensitive help both via the F1 key and displaying function signatures in the status bar.

Friday, February 12, 2016

February 12, 2015

I think the government must be really desperate regarding the prospects of our economy to propose something like this. Use the money set aside for a rainy day (provident /prɒvɪd(ə)nt/ adjective - making or indicative of timely preparation for the future) and use it to, I don't know, buy a smartphone just so that demand picks up and the stock market starts rising again and the the folks with disposable incomes which go into SIPs can continue to breathe easy that their futures are secure (note that such folks will know better than to forgo their provident fund contributions and spend the money on useless junk instead).
 What's happening @Twitter? We wouldn't be talking about this or arguing about Facebook's Free Basics if the same efforts towards coming up with vendor-agnostic standards like HTTP, FTP, etc. could have been devoted to social media and Web 2.0 (rinses mouth out with Listerine). Imagine a world where you can use any protocol-compliant software (or even the browser itself) to do all the sundry things people do (follow/like/poke/stalk) on Facebook and Twitter, without being beholden to evil companies?
Before taking Headley's statements too seriously, people need to remember that he's completely owned by the Americans, and he will say whatever it takes to fulfill their foreign policy objectives (stoke up more conflict between India and Pakistan, bail out the Indian/Gujarat governments in the Ishrat Jahan case, and so on). Not to mention the annoying thing called 'hearsay'.

Thursday, February 04, 2016

February 4, 2016

Weather forecast for Chennai in The Hindu from a couple of days ago (italics mine):
Light winds are expected. A partly cloudy sky over the district. A cheerful morning. A delightful afternoon. An easy night.
In this time of 'Make in India' and the focus on local employment generation, it is highly condemnable that The Hindu have outsourced their weather forecast production to crumpet-eating, tea-drinking, monocled gents enjoying the pleasant English summer at Blandings Castle. Harrumph.

Sunday, January 31, 2016

January 31, 2015

Well, the bulk of the pLisp development work is done, except for maybe pushing GC to its own thread. Guess I'll start writing about the full monty compiler bits. By the way, I had mentioned earlier that pLisp ought to work on Cygwin, but it looks like the Tiny C Compiler is yet to be successfully ported to Cygwin, so running pLisp under Windows is a non-starter for the time being.

Monday, December 21, 2015

pLisp Migrated to Autotools Framework

I take back the bad things I've said about autotools. My second shot at making pLisp portable was successful; if not fully in the portability aspects, at least in making it conform to the whole configure/make/make install paradigm (ironic really, since my main objective was to port pLisp to Windows, which has not been achieved yet. Well, it should work for Cygwin anyway).

There is a lot of material out there on autotools, but most of them are outdated or handle only trivial Hello World programs. As with life in general, you need to do your homework to separate the wheat from the chaff and to dig out information that's really relevant to you. David A Wheeler's Howto was the most useful one for me.

At the risk of this post turning into yet another autotools tutorial that adds to the noise, here are some general guidelines and tricks while using autotools (I'll be using pLisp as a case study):

First off, you need to handcraft two files: and The first file tells autotools various things about your project like the package name, version number, which tools (GCC, flex, bison, etc.) it uses, what package dependencies does it have, and so on. You will not spend much time with this file once you put in all this information (actually, there's one gotcha: when mentioning package dependencies, I had to do them for each package separately [a la PKG_CHECK_MODULES([gtk], [gtk+-3.0 >= 3.4.2])]; for some reason, using DEPS_CFLAGS and DEPS_LIBS didn't work for me, and I had to build AM_CFLAGS and AM_LIBS from the individual variables as below:

AM_CFLAGS = ${gtk_CFLAGS} ${gtksourceview_CFLAGS} ${libffi_CFLAGS}
AM_LIBS = ${gtk_LIBS} ${gtksourceview_LIBS} ${libffi_LIBS} ${LEXLIB}


In contrast to the short amount of time you devoted to, be prepared to really duke it out with The final version of for pLisp is only about 40 lines long, but each of those lines has its own story of blood, sweat and tears.

The rest of this post will be in the form of inline comments interspersed with lines.

This line tells autotools that we want to include the -d flag in the call to bison. Needed because we want bison to generate a header file containing all the useful symbols like yyin, yyparse, and so on.

all:    ${bin_PROGRAMS} ${lib_LTLIBRARIES} help.html
This sets up the targets that need to be built: pLisp needs a binary as well as a library (.so) to be built, and also a language reference HTML, which is generated automatically from a JSON data file.

bin_PROGRAMS = plisp
plisp_SOURCES = ...

Here we list the binaries to be built, and for each binary specify the sources. Note that we simply list all the sources--including header files--and let autotools automatically take care of the dependencies. Extremely nifty feature.

noinst_PROGRAMS = docgen
docgen_SOURCES = tools/docgen.c src/util.c src/util.h src/json.h src/jsonlib.c src/json.l src/json_parser.y
The prefix 'noinst' indicates that these targets need to be built but not deployed. docgen is one such internal program; it generates the above-mentioned language reference HTML file, and it's work is done. Forever. The next line lists the sources needed to build docgen.

Since we're talking about source files, this is as good a place as any to say this: do not name your flex source files with a '.lex' extension; autotools will barf on them, i.e. refuse to invoke flex on them. The extension has to be '.l'.

AM_CFLAGS = -DDATADIR=\"$(pkgdatadir)\" ${gtk_CFLAGS} ${gtksourceview_CFLAGS} ${libffi_CFLAGS}
AM_LIBS = ${gtk_LIBS} ${gtksourceview_LIBS} ${libffi_LIBS} ${LEXLIB}

These two lines set the preprocessor and linker flags at the global level. You can also set them at a per-target level, like plisp_CFLAGS = ...

ACLOCAL_AMFLAGS = -I m4 --install
I really don't know much about this line, except that it is required to make use of the m4 directory (courtesy the Wheeler tutorial referred above).

plisp_LDADD = ${AM_LIBS} -ltcc
This line sets the libraries needed for the plisp binary; in addition to the global libraries, we also specify the Tiny C Compiler library. Required because tcc doesn't follow the pkg-config framework.

libplisp_la_SOURCES = src/plisp_utils_ffi.c
libplisp_la_LDFLAGS = -version-info 0:0:0

These three lines build the '' shared library. That's the extent of my knowledge of the matter, my lord.

pkgdata_DATA = data/plisp.lang data/help.json lib/plisp_full_monty_compiler.lisp
dist_doc_DATA = doc/help.html doc/pLisp_User_Manual.pdf
iconsdir = $(pkgdatadir)/icons
icons_DATA  = icons/abort.png ...

Now this is where the power of autotools really shines through: pLisp, like any application worth its salt, has a bunch of resources that are needed for correct operation. These resources range from the plisp.lang file needed by GtkSourceView to do syntax colouring to the PGN files needed for the icons in the application toolbars. These four lines take care of generating the makefile commands that copy these resources from their respective locations in the source directory hierarchy to the user-specified directory (when she runs './configure') without us or the source code being aware of any of these shenanigans. Truly magical. Hyperbole aside, how this is accomplished is much more mundane: if you look at the AM_CFLAGS definition above, you'll notice the -DDATADIR flag; this flag is set to the package data directory (typically /usr/local/share/plisp), and is used in the source code [e.g. gtk_image_new_from_file(DATADIR "/icons/load_file.png")] to abstract away the location of the resource file.

src/json.c:    src/json.l
    $(LEX) --prefix=json -o src/json.c src/json.l
src/json_parser.c:    src/json_parser.y
    $(YACC) -d -v --name-prefix=json src/json_parser.y -o src/json_parser.c

And that brings us to the primary reason for all the blood, sweat and tears alluded to above: the inability to handle multiple lexers/parsers within the same program. pLisp uses flex/bison for two things: a) to parse the Lisp source code entered by the user (or fed from a file) and b) to parse the JSON strings used for representing both pLisp images and the online help content. When I was using a handcrafted makefile, I could keep the flex/bison symbols (yyin, yylval,  yyparse) separate by using different name prefixes in the individual makefile rules. The only way to get the same behaviour in autotools seems to be to specify the same rules manually. Goes against the philosophy, but there doesn't seem to be any other way to do this.

help.html:    docgen

This use of a manual rule is justified, since this is an application-specific thing to generate the online help file.

And we're done with

Some odds and ends:

1. You will need to create a bunch of dummy files at the project root: AUTHORS, NEWS, COPYING, ChangeLog, etc. Also create a directory called 'm4' with a dummy file in it (e.g. NOTES, as suggested in the Wheeler tutorial).

2. Create a script called with just a single line 'autoreconf --install || exit 1' in the project root as well, and run this script to process any changes you've made to and/or

3. You need to store,, and the files mentioned in #1 and #2 above in your version control system.