Planet HCoop

November 30, 2022

Clinton Ebadi (clinton)

The Democrats, Everyone

Wherein the “party of labor” votes almost unanimously to break a strike.

by clinton at November 30, 2022 06:13 PM

Sajith Sasidharan (sajith)

GitHub Education for the Uneducated

GitHub Education caters to students and teachers. Once GitHub agrees that you belong to either of these groups, they shower you with a bunch of free and discounted stuff.

It turns out that research staff at a university (of which I am one) are also qualified for GitHub Education plans that are meant for teachers, although we really are not teachers.

GitHub Education seemed useful. With the discount, you get to use GitHub Teams for free. If you have a GitHub organization on a free tier, and if that organization could use some of the Team features, you can have them, without having to use a credit card.

Those features include:

  • Branch protection rules on private repositories.
  • More CI minutes (3000 instead of 2000).
  • More storage for storing stuff (2GB instead of 500MB).
  • Etc.

For my own future reference, the process I went through is documented below. I am certain this is documented somewhere in GitHub’s sprawling documentation (turned out that it actually is documented), and I am almost certain that the process will change by the time when I will need to look this up again, still.

  • Went to to begin the sign up process.

  • GitHub asked me to select my academic status, and gave the option of choosing between “teacher” or “student”. Per GitHub, researchers also qualify for teacher benefits. I selected “teacher” status, and felt good about telling a permitted lie to the giant corporation.

  • Choose an email to use for school. My university email was already verified. Nothing to do there.

  • Using a webcam, take a picture of an ID or some kind of document under an official letterhead. Being a remote employee and having never been to campus, I never went through the motions required to obtain an ID, so I chose to upload a picture of a document I signed at the time of orientation, namely: Notice of Employee Working Out of State.

  • The upload indicator spun and spun for minutes. (Per GitHub this was supposed to take a few seconds.) During that glorious but brief period time, it seemed that I also had access to the same free stuff students get. Since my focus was getting a Team account for my team, I did not allow these distractions to distract me.

  • Canceled the upload, and took a picture again. The picture taking and uploading worked the second time, and my application was approved within some minutes. I don’t know if it was AI or human that approved me. I guess I will never know.

  • Went to the GitHub organization’s settings page, chose “billing and plans”, and tried to find the free “GitHub Team” option there. GitHub still wanted to charge a few hundreds of dollars per year, and asked for a credit card. Quickly backed off, and went looking around.

  • The looking around led me to GitHub Global Campus page, and there I was presented with an option to choose the organizations that are to be upgraded to a GitHub Team plan. Couple of clicks later, my organization was elevated to Team status.

That wasn’t so bad. It only took an afternoon.

November 30, 2022 12:00 AM

December 28, 2021

Sajith Sasidharan (sajith)


In September, we went on a rather long road trip along a small part of the vastness of Canada: we drove about 10600 kilometers in total, from Toronto to the Canadian Rockies and back, with a rather unhappy Ammu cat as the backseat passenger.

By the time we returned, fall was beginning to set in. While walking down Parliament Street on such a mildly cold early fall evening, I spotted an unusual looking bird by a marijuana store’s sign that wasn’t a usual urban sparrow or pigeon or goose. It looked like some kind of water or shore bird, with wader legs and long beaks that are peculiar to such birds.

The bird looked lost. I was lost too: why is it there? What was it doing there? Is it somebody’s pet? Did a bird owner leave the bird outside, like dog owners do, while they were inside shopping for their daily dose of high?

I probably should have left the bird alone, but curiosity got the better of me. I took a picture, then I approached it, intending to take another picture. That spooked the bird: it ran into the store first, and then out onto the street. I worried about passing cars, so I followed it to the street. Both passing cars and the chasing human must have panicked the bird even more. It found no immediate place to hide. It ran to a side street. I followed the bird at what I judged to be a safe distance, just to make sure that it will be okay. This went on for a few minutes, with some passerby looking on and some joining the project, but most passing by. Eventually the bird took flight, and disappeared into the nearby tree-tops, thus ending the excitement.

That night I posted the picture above in iNaturalist, where someone helpfully identified the bird as a Virginia Rail, and offered an explanation as to why it was found it at such an odd place, away from its natural habitat: fall is migration time, where birds fly south to warmer climates, but sadly, city lights and buildings confuse and disorient them. Wikipedia says that “these birds remain fairly common despite continuing loss of habitat, but are secretive by nature and more often heard than seen.”

I felt sad for the confused Rail. I hope it has made its way to its wintering grounds safely. The powerful navigation equipment that birds acquired over a large span of time in evolution is no match for the obstacles set up by relatively recent human activity. Sometimes they collide with buildings and die: estimate is that hundreds of millions of birds die every year in the United States in this manner, as I recall from stuff I had seen in the Internet.

Houston Audubon Society has this to say:

Most North American migratory birds fly at night, and lights on buildings can disorient birds on their paths, resulting in fatal collisions. The Upper Texas Coast plays a key role on the Central Flyway, an important migratory path for birds. Birds that move along and across the Gulf of Mexico depend on safe passage through the Houston-Galveston area. Throughout migration, and particularly during storm fronts, turning Lights Out for Birds can make a big difference.

We encourage businesses, buildings, and individuals across the state to turn off all nonessential lights from 11 p.m. to 6 a.m. throughout spring and fall migration.

Research (PDF link) from Cornell Lab of Ornithology estimates that Chicago, Houston, and Dallas are the most dangerous cities for birds during spring and fall migration. Identifying these problems are a first step to finding solutions: Lights Out Texas project aims to reduce bird fatalities by reducing light pollution, and similar projects are underway elsewhere too. It is great to know that people care about things that really matter.

• • •

Speaking of migration, it is also time for us to move. It turns out that I too am prone to disorientation and confusion, just like the birds. I am currently experiencing it, as we are in the process of moving from Toronto to Houston. I do not quite know how I feel about the move. I am collecting my thoughts, and writing down some of it.

Toronto has been pretty nice, in spite of a very long time of Fourteen Days To Flatten The Curve: the core of the city is eminently walkable, it has many green spaces, it is lively and multicultural, and public transit is better than most North American cities. We disliked the vast suburban sprawl that surrounds Toronto (which is the subject of a book by John Sewell, former city councilor and mayor). We disliked driving in the city and in the suburbs. We like going on road trips, away from the city, but getting out of the Greater Toronto Area is not an easy process. So we kept our car parked for several moths, saving on insurance money. (We walked or took the public transit instead, and that indeed is a fantastic trade-off.) Because of the pandemic panic, we did not manage to make many new friends. We also missed out on the museums, festivals, much of the famed food scene, and whatever else it is that the city normally would have offered. Thus my perception of Toronto is colored by the pandemic.

In many ways, Houston is the opposite of Toronto: Houston is a city made for cars. Unlike Toronto, you can hardly spot pedestrians on the sidewalks of Houston, when there are sidewalks. You can’t plan on being able to walk to the grocery store or any other store. Many questionable choices have been made while “designing” Houston (if you can call haphazard sprawl a design) which made the city actively hostile to pedestrians and bicyclists and any street life other than cars and drivers. The person who runs “Not Just Bikes” YouTube channel (who himself moved from Canada to the Netherlands in order to be able to raise his children better) has explained the problem with Houston well, in a video titled Why City Design is Important (and Why I Hate Houston).

I suppose we could have chosen to stay in Toronto, learning to stop worrying and loving it, but the absurd growth of real estate prices have truly spooked us and impelled our move. Unless we’re willing to take on considerable long-term debt, we would not have been able to afford a house in Toronto or much of habitable Canada. Wages are relatively lower in Canada, and expenses are higher. While a case may be made in favor of immigration (because of the non-replacement levels of population growth in Canada, especially in places such as the Atlantic provinces), I do not believe that bringing in over a million of new people like us over the next three years, as announced by the federal government, is going to help with the demand-supply problem as far as wages and expenses are concerned. We would all mostly end up in Canada’s three major metro areas, increasing the downward pressure on wages and upward pressure on expenses.

Indeed, a good number of well-educated Canadians end up moving to the US, in pursuit of better economic and career opportunities. When an opportunity presented itself, we chose to do the same thing as they do. We have grown quite fond of the Canada that we have managed to see, so this has not been an easy choice.

So far this move has involved getting rid of an old place, getting rid of some old stuff, getting a new place, taking some flights between Canada and the US, a lot of driving between various cities in the two countries (moving previously-unmoved stuff from ye olde pre-pandemic times, stored away in various friends’ houses), and getting a lot of help from many friends, often staying in their homes for several days, hopefully not overstaying the welcome. It will also involve getting some new stuff, and fixing up an old house in order to make it actually habitable. And then we will be able to welcome friends to our home.

Does it sound like I am complaining about all this hardship? I am, in fact, fascinated by the choices that have been available to us, and the choices we have been making, and the trade-offs involved. I believe the study of choices and trade-offs is broadly called Economics.

It sounds fancy stated that way, but Economics might turn out to be a useful tool for me to make sense of this big confusing world. We will see.

December 28, 2021 12:00 AM

February 17, 2021

Clinton Ebadi (clinton)

Richard Wolff Gets Zucked

A warning for the segment of the left demanding these unaccountable Silicon Valley oligarchs have the final say over speech… You are spreading reactionary views, ones held by only the most extreme members of the right wing: even most libertarian-capitalists don’t think monopolists should have complete latitude like this. Not to speak of the way that Facebook and Twitter effectively operate as part of the public square now

Wolff’s post highlighted an Indypendent story on the recent strike by workers at the Hunts Point Produce Market and in his caption he approvingly noted, “US political winds are shifting left. Key example is Hunts Point food market for New York City. First labor union strike since 1986: strong, solid, supported by socialists and much public opinion. Victorious and widely celebrated.” … When Wolff’s Facebook followers went to click on the article, they were redirected. When they went to share it, they received this notice:

facebook notice "You cannot share right now. To prevent any misuse, we have temporarily restricted your account."

Facebook Blocks Sharing of the Indypendent’s Coverage of Hunts Point Produce Market Strike

by clinton at February 17, 2021 02:35 AM

February 16, 2021

Clinton Ebadi (clinton)

No One Could Have Predicted This

Shortly after sunrise on Jan. 15, FBI agents descended with guns drawn on a squat, red-brick apartment complex here, broke open the door of one of the units and threw in a stun grenade, prompting the frightened property manager to call 911.

Inside the apartment, furnished with little besides books and a sign declaring “THE REVOLUTION IS NOT A PARTY,” the agents found their target: a 33-year-old U.S. Army veteran and self-described “hardcore leftist” who had posted a flier on social media threatening to attack “armed racist mobs WITH EVERY CALIBER AVAILABLE.”

The man, Daniel Baker, hardly fit the profile of those who had been expected to cause trouble in the run-up to President Biden’s inauguration. After a mob of Donald Trump supporters invaded the U.S. Capitol on Jan. 6 in hopes of preventing Biden from taking office, the FBI had warned that far-right extremists were plotting armed marches in Tallahassee and other state capitals, as well as in D.C.

But Baker represents the flip side of that threat: As a far-right extremist movement wages an assault on American government and institutions, experts say an unpredictable battle is brewing, fueling potentially legitimate threats of violence from the opposite fringe of the political spectrum.

Baker’s friends said he had a bombastic social media presence that he stepped up to match inflammatory right-wing rhetoric. … The FBI agents who had been monitoring Baker’s social media posts since October described him as being on a “path toward radicalization.” … On Jan. 25, U.S. Magistrate Judge Michael J. Frank agreed that Baker posed a potential threat and ordered him held without bond, writing that the former soldier had “repeatedly endorsed violent means to advance the political beliefs that he espouses.”

The corporate establishment media is doing their job and continuing to manufacture consent for a new PATRIOT act, this time aimed (more so) at crushing internal dissent. One thing to note in the language the Democrats have used around this—they never say right wing “extremism,” it’s always just “domestic extremism.” Considering that fascism and capitalism are totally compatible, and some might argue neoliberalism is quite similar to fascism, it should be no surprise that the “right wing extremism” is being used (again, if anyone recalls the 90s) as a pretense for passing laws that are squarely aimed at the dissident and socialist left.

Unfortunately the mainstream “left” have been subject to an unhinged propaganda campaign over the last five years, and consists in reality of mainly conservatives if not outright reactionaries at this point, many of whom are cheering on these developments instead of recoiling in horror as they ought to.

January 6th is the new 9/11, only with far less justification. The state and its media organs have convinced the mainstream left to demand draconian prison sentences for people essentially charged with trespassing (using laws the left once correctly decried as criminalizing protest!), to call for strengthening the police state, to demand expansion of unconstitutional domestic surveillance programs, to demand that private actors censor on behalf of the state (as if a public-private partnership to sidestep the Constitution is justifiable, and worse using extreme right wing capitalist-libertarian views on free speech rights that in earlier times were only held by reactionary nutjobs like Pat Buchanan and Moral Majority types), to live in fear that their neighbors are extremists who would eat their children and murder them in their sleep for being good liberals were it not for the fear of an all powerful state apparatus of violence keeping them civilized…

by clinton at February 16, 2021 12:17 AM

February 14, 2021

Clinton Ebadi (clinton)

Ten Minute Black Beans

Probably doesn’t count as a recipe (not enough for me to bother putting it on my website properly), but eh.

  • 2x 16oz cans of black beans (no salt added)
  • 1 lime, juiced
  • 3 tbsp olive oil
  • 1 tsp garlic powder
  • 1/4 tsp smoked paprika
  • 1 tsp hot sauce (I use El Yucateco Black Label Reserve Habañero to add a bit of a kick and some smokiness)
  • 1/8 tsp msg

Drain the beans, throw them in a pot, mix the rest of the ingredients together in a measuring cup and allow to stand for five minutes (maybe it’s placebo, but maybe it develops the garlic flavor a bit), pour over the beans, simmer on medium-low for ten minutes, and you’re done. Works great to just eat or as a taco filling.

by clinton at February 14, 2021 10:25 PM

February 13, 2021

Clinton Ebadi (clinton)

Tea Is Nice

I used to be a tea drinker, from age nineteen until sometime in my mids 20s, when I was seduced by the ease of just tossing some grounds and water into a machine and clicking brew to make some coffee, and just stopped drinking tea entirely for far too many years. I made the occasional attempt to grab a couple of tins and get back into it, but just always fell back to the ease of the coffee machine.

Eventually I got one of those fancy normal person 45-hour-a-week desk jobs, and had to wake up at normal person hours… and the extra ten minutes needed to steep tea instead of making enough coffee to give myself caffeine poisoning on a daily basis was just too much. So I just gave up entirely on trying to get back into tea for far too long. The thought of having to spend ten entire minutes heating up some water and steeping a pot of tea was just too much because mornings were absolute misery.

During the summer of 2018, I finally realized what I was doing to myself, and how many of my problems with irritability in the morning, constant exhaustion, being unable to get moving before the entire day was gone on the weekends, and taking hours to get ready when on the road and needing to go places to actually enjoy my brief mini-vacations had a common cause: drinking too much damn caffeine! I ordered a few packets of loose leaf tea, put the evil machine away, and forced myself to start drinking tea again.

The first months were rough: the amount of caffeine I had been consuming was pretty obscene, so I was even more exhausted and found focusing difficult. But eventually I made it through, and it’s been incredible. My resting heart rate is lower, I went from needing three or four 6oz cups of coffee just to not hate existence and be minimally awake to being able to grab a couple cups of tea and get moving (and nowadays, don’t even need caffeine in the morning at all, for the first time in over a decade), and when I’m on the road I can grab a half cup of coffee and be ready to go go go and enjoy life.

tea tinsI do not have a problem.

And less than three years later, here I am with fourteen tins of tea again, just like in 2004/2005, and I finally feel like me again. I won’t claim to be a connoisseur now though, I just drink boring black teas (nothing like a hearty cup of Assam) because I still don’t have the patience to properly make green tea aside from the occasional cup of gunpowder green tea (very forgiving), and Oolongs are generally too expensive for me now (I know you can steep them over and over, but I’m still a bit lazy and I don’t find them so much better than it justifies the prices nowadays). But it’s something.

by clinton at February 13, 2021 01:34 AM

February 12, 2021

Clinton Ebadi (clinton)

Bernie, You Ignorant Slut

I’ve been asked to post some content. Have some content.

No one said it would be good content.

by clinton at February 12, 2021 12:59 AM

February 10, 2021

Clinton Ebadi (clinton)

February 07, 2021

Sajith Sasidharan (sajith)

Annus Horribilis in Reading

New Year Blooper! New Year Blooper!

On the first day of 2021, early in the morning, I tagged along a friend to take some pictures of the sunrise. It was a little cold in the beginning but only tolerably so, and then slowly it became windy and really cold. We quickly went home.

Even after witnessing the fact that the sun actually rose on this new year’s morning, I am having trouble believing the year past is indeed past. The vast majority of us will remember 2020 as Quite A Bad Year, and reasonably so. Its badness still lingers. We have no idea when it will all go away for good.

The past year was not that horrible for me personally, and am grateful for the good things and being spared of the bad things. It still is a year I too wish to forget. We did a couple of long-ish road trips, but other than that we mostly stayed home, most of the time. I did some work. I read some books. That is about it.

I finally sat down and wrote a list of books I read in the past year, for, you know, memories’ sake.


1. Zucked: Waking Up to the Facebook Catastrophe, Roger McNamee

McNamee was an early mentor to Zuckerberg, and came to realize that Facebook wasn’t going to turn out the way he hoped. This is essentially a mea culpa. An important book, but overwritten, and annoying to read.

My main annoyance was that the book attributed Bad Cruel Orange Man’s 2016 election success almost entirely to Facebook, and in particular, malicious foreign actors who were able to influence voting American public to convince to vote for Bad Cruel Orange Man. I do not believe that to be a correct and accurate interpretation of events.

2. Let’s Make Ramen!: A Comic Book Cookbook, Hugh Amano and Sarah Becan

I never learned to correctly appreciate ramen. I like comic books and cookbooks when they are well produced. This book is both. I found it a little tedious, but ramen affictionados will certainly like this one.

This was the first physical book I got to check out from Toronto Public Library using my brand-new library card. Like many other things in the corona-panic stricken world, access to the fantastic Reference Library soon became limited. A great shame, considering that the branch was just a few minutes away from our first apartment in Toronto.


3. A Monk’s Guide to a Clean House and Mind, Shoukei Matsumoto

People and things in our lives make us who we are, and it follows that a clean house leads to a clean mind. Therefore one must strive to have fewer, cleaner possessions. Clean yourself too. Japanese monasteries appear clean at all times, because cleaning is the first order of business in those monasteries.

4. Games without Rules: The Often-Interrupted History of Afghanistan, Tamim Ansary

A fantastic, insightful, and eminently readable take on Afghanistan’s past and present from someone who was born in Kabul, and managed to move to the west after high school, just as things were getting worse.


5. Everything in Its Place: First Loves and Last Tales, Oliver Sacks

Short sweet collection of essays on appreciating lovely things: libraries, ferns, gingko trees, cuttlefish, gardens, the human brain.

6. The River of Consciousness, Oliver Sacks

Another collection of essays, because one does not stop after reading the first collection.

7. Digital Minimalism: Choosing a Focused Life in a Noisy World, Cal Newport

I have deeply rooted poor Internet hygiene from the past twenty odd years to weed out, and badly needed this reminder. Even prior to reading this book, I had largely abandoned Twitter, and that still remains pretty much the extent of my digital minimalism.

8. The Hidden Life of Trees: What They Feel, How They Communicate – Discoveries from a Secret World, Peter Wohlleben.

Summary of research and experiences as a forester: trees talk to each other, they have “friends” and “communities”, and they possess various means to defend themselves against harm.


9. Skin in the Game: The Hidden Asymmetries in Daily Life, Nassim Nicholas Taleb.

Taleb argues that separating risk from decisions is a bad thing, and yet in the modern world the most important decisions are made by those only benefit from the upsides of their decisions, and suffer no downsides. Taleb’s prime example is that of Robert Rubin, who evidently is one of the many that passed through the revolving door between Wall Street and US Federal Government.

10. The Truth About Animals: Stoned Sloths, Lovelorn Hippos, and Other Tales from the Wild Side of Wildlife, Lucy Cooke

A collection of essays about sloths, beavers, eels, hyenas, vultures, bats, frogs, storks, hippos, moose, panda, penguins, and chimpanzees that dispel many widely existing myths about them, and narrate many surprising aspects of their lives.

11. Never Enough: The Neuroscience and Experience of Addiction, Judith Grisel

This book is both memoir and a summary of research to date: the author was an addict once, got “cleaned up”, and went to graduate school to study addiction, and threw herself to research with passionate intensity. Do some unfortunate folks possess personalities that are particularly addiction-prone, and if they do, why?

12. The Secret Life of Cows, Rosamund Young

The author grew up in a farm, and runs a farm, so this book is mainly a collection of cow-related anecdotes: cows have personalities and personality quirks, they pick favorite friends from others in the herd, and they respond differently to different people.

13. The Way Home: Tales from a Life Without Technology, Mark Boyle

Mark Boyle lived without using money for some years, wrote a manifesto about it, and then took it to the next logical level: he chose to live without some technology (phones, computers, electricity) for another year, in rural Ireland.

Boyle wrote a series of columns for the Guardian in that year about his experiment. He wrote on paper by candlelight, sent his work to editors of the Guardian by post, and then his editors would forward interesting reader reactions to him via post.

14. Loserthink: How Untrained Brains Are Ruining America, Scott Adams

As subjects of the most powerful empire that has ever existed in human history, Americans are targets of unprecedented levels of propaganda, via both old and new media channels. The propaganda has gotten so sophisticated that it is next to impossible to separate fact from fiction, but fret not, Adams is here to teach you how to prevail in the war for your minds!

There’s some useful advice in here. Some of it read like practical advice on how to win your everyday social media fistfights, which is a losing proposition to begin with. It would be wise to apply the advice from the book to the book itself.


15. Barking Up the Wrong Tree: The Surprising Science Behind Why Everything You Know About Success Is (Mostly) Wrong, Eric Barker

I barely remember anything from this book, which must be the reason success eludes me?

16. Unspeakable: Chris Hedges Talks with David Talbot about the Most Forbidden Topics in America, Chris Hedges

Hedges has been a foreign correspondent for New York Times for several years, and covered many conflicts in the middle east in which the US military was involved. Much of what he reported at great risk went unpublished, because that is what those in power wanted. This “book” is really an interview (in audiobook form, I’m counting it as a book nevertheless), and it talks about the way things are in the intertwined world of American politics, war machinery, and journalism.

Back when I read Hedges’ Death of the Liberal Class, it helped me to make better sense of what is termed as liberal/left-wing politics in the US, which in reality is neither particularly liberal nor very left-wing. With this book, I found myself agreeing with most of his observations and disagreeing with many of his conclusions.

17. Better: A Surgeon’s Notes on Performance, Atul Gawande

A collection of essays, based around the idea of medical practitioners becoming better at what they do, even with their human limitations.

18. The Happiness of Pursuit: Finding the Quest That Will Bring Purpose to Your Life, Chris Guillebeau

The author visited all the countries in the world by the age of thirty-five. This is the kind of pursuit he talks about in this book, with stories of people pursuing various similar “quests”.

19. The Checklist Manifesto: How to Get Things Right, Atul Gawande

I purchased a used copy of the hardbound edition of this book ten years or so ago. It is still in a box in friends’ basement in Chicago with the rest of my book. I finally listened to the audiobook version, and declared victory. And this turned out to be the one I liked least among Gawande’s books.

20. The Art of Logic in an Illogical World, Eugenia Cheng

Kind of like Loserthink, but for the other side. It seemed to me that the author is someone who has already taken a side, which can’t be the way to go if you are trying to think logically. Maybe that will work if you are trying to win some arguments on social media, or for smart people to convince themselves that they’re right and their adversary is wrong.

21. Meet the Frugalwoods: Achieving Financial Independence Through Simple Living, Elizabeth Willard Thames

Author and husband saved up enough, and then left their urban professional lives to go live in rural Vermont. A memoir that could serve as a how-to guide, if you happen to be in a similar group.


22. Profiles in Corruption: Abuse of Power by America’s Progressive Elite, Peter Schweizer

There’s a surprising list of names under scrutiny:

  • Kamala Harris
  • Joe Biden
  • Cory Booker
  • Elizabeth Warren
  • Sherrod Brown
  • Bernie Sanders
  • Amy Klobuchar
  • Eric Garcetti

Notice that the first two from the list came to occupy the highest offices in the US this year, with considerable approval from all kind of media?

It should not be shocking or surprising if you’ve been attempting to separate signal and noise from the previous four years. A career mired in corruption does not make a dent in your chances of success in the most powerful country in the world. All that matters is appearances. You just have to successfully sell your narrative to a large enough majority of voters.

This book cured me of my faith in some politicians, and turned me into a skeptic of all career politicians. One has to wonder if progressive posturing and proximity to power is a formula for familial wealth.

(Schweizer specifically targets a set of prominent Democrats in this book, but he does not shy away from scrutizing conservatives either: he did put Mitch McConnel and Donald Trump’s family in under the lens in Secret Empires. I admire him for that.)

23. The Diabetes Code: Prevent and Reverse Type 2 Diabetes Naturally, Jason Fung

I am under moral obligation to read and re-read everything Dr. Jason Fung has written. If you have made it this far, I urge you to read his books.

24. Designing Your Work Life: How to Thrive and Change and Find Happiness at Work, Bill Burnett

This book urges you to think like a designer of your life. Designers do not think their way forward, but they build their way forward: they are curious, they build stuff, they try stuff, they re-frame problems to make better sense, they seek help, and they understand that it is a process.

25. Fortitude: American Resilience in the Era of Outrage, Dan Crenshaw

Crenshaw trained hard to become navy seal, went to Afghanistan, came back home injured, recovered, and eventually sought public office. This is part memoir, and a screed about his firmly held convictions and opinions as a conservative.

I want to cheer for good people that seek public office, irrespective of party affiliations. I find Crenshaw really interesting, although by now I should know better than to be a naive believer.

26. Stuff Every Gardener Should Know, Scott Meyer

Basics for gardeners, mainly north American ones: starting seeds, growing vegetables and flowering plants, herbs, soil, composting, perennials and annuals, trees, helpful insects, pests, wildlife control, and the such. Short, simple, and useful.


27. Spying on Whales: The Past, Present, and Future of Earth’s Most Awesome Creatures, Nick Pyenson

What we know, so far, about the evolutionary history and present lives of some of the most amazing co-habitants of our planet.

28. Other Minds: The Octopus, the Sea, and the Deep Origins of Consciousness, Peter Godfrey-Smith

Octopuses (and cuttlefish, and other cephalopods) split off at a very earlier branch of the evolutionary tree from the rest of us. As a result, they posses an intelligence that is considerably different from what we have normally known. They are closest to an intelligent “alien” life form we will likely ever meet.

29. The Evolution of Beauty: How Darwin’s Forgotten Theory of Mate Choice Shapes the Animal World—And Us, Richard O. Prum.

In The Descent of Man, Darwin originally proposed that mate choices are more strongly guided by a sense of beauty than other, more “practical” parameters. Sexual selection is not merely based on “fitness”, and that also has guided evolution. This was largely ignored because of the prevailing moral standards at the time. This book makes a strong case with several examples, from avian and human worlds.

30. Dollars and Sense: How We Misthink Money and How to Spend Smarter, Dan Ariely

Often we’re bad with keeping and growing our hard-earned money, because we are irrational creatures, because evolution made us that way. Maybe there is a way to keep our guard up.


31. The God Delusion, Richard Dawkins

Strong offense against faith, and a strong defense of atheism. I felt that this book was combative, although one could see why. I think some perspective on why we are the way we are in matters of faith would have made a stronger book.

32. The Organized Mind: Thinking Straight in the Age of Information Overload, Daniel J. Levitin.

My mind is so disorganized that this book had no chance of leaving any impression at all. I mean, I know that information overload is bad: I am a living proof of why and how it is bad. I suspect we all are.

33. Headscarves and Hymens: Why the Middle East Needs a Sexual Revolution, Mona Eltahawy

Eltahawy, an Egyptian-American activist, makes a case about the plight of woman in countries where Islam is the pre-dominant religion. She was sexually assaulted by her male peers one night in Cairo’s Tahrir Square, as they were protesting the repressive regime together.


34. The Soul of an Octopus: A Surprising Exploration Into the Wonder of Consciousness, Sy Montgomery

I felt that this could book could be a companion to Other Minds. This is mostly about the connection the author felt for several octopuses in New England Aquarium, and the connection she felt that the octopuses felt for their human captors.

35. Appetites: A Cookbook, Anthony Bourdain

I had to read this because I admired Bourdain, who was clearly a man who had a way with words. Although the recipes presented are those of simpler, approachable dishes that Bourdain liked to prepare for family and friends, I haven’t tried making any new-to-me dishes from this book. Some of the ingredients are difficult to obtain, and then what do you do with them after you’ve made the dish once?

I do want to follow Bourdain’s recipes from Kuching and Hanoi at an unspecified future date. We will see about that.

36. The Hacking of the American Mind: The Science Behind the Corporate Takeover of Our Bodies and Brains, Robert H. Lustig.

Not about Twitter and Facebook, but how food industry managed to hack American minds in a dangerous and unhealthy fashion, long before Twitter and Facebook did that in a more spectacular and equally dangerous fashion.

37. Medium Raw: A Bloody Valentine to the World of Food and the People Who Cook, Anthony Bourdain

Bourdain dishes out insults for some people whom he considers worthy of his insults: television chefs, restaurant critics. Delicious.

(To appreciate this book more fully, please watch the episodes of Treme that Bourdain co-wrote.)

38. Ship of Fools: How a Selfish Ruling Class Is Bringing America to the Brink of Revolution, Tucker Carlson

I used to admire Sen. Ben Sasse of Nebraska very much. Sasse appeared to be a rare combination of scholar and public servant: PhD in history from Yale, author of two books that I quite liked (Them: Why We Hate Each Other – and How to Heal and The Vanishing American Adult). What does it matter if he is a Republican?

And then Tucker Carlson did a segment on the ruin of Sidney, Nebraska. Sidney’s main business, Cabela’s, had managed to survive the onslaught on industrial small town America, until Cabela’s was forced to sell to a large retail chain, by a hedge fund managed by a major Republican donor. Jobs were lost, Sidney went to ruin. Carlson called Sasse out on his complicity. I lost a politician I admired.

Thus I found myself agreeing with the rants and ravings of a Fox News talking head.

39. How to Change Your Mind: What the New Science of Psychedelics Teaches Us about Consciousness, Dying, Addiction, Depression, and Transcendence, Michael Pollan

Pollan went underground to investigate some historically vilified psychedelics. Some of the vilification happened as a result of the political climate at the time of vilification; it also helped that scientists who had been studying them at the time had so thoroughly mismanaged their studies.

Psychedelics are making a modest comeback for their therapeutic properties. Pollan tried some of them, well, not exactly for science, but to mostly to satisfy his curiosity, and then wrote an extended treatise on their history, present, and likely future.

This book did not go into neuroscience much. That disappointed me a little bit, but Never Enough addresses that quite well.

40. Don’t Burn This Book: Thinking for Yourself in an Age of Unreason, Dave Rubin

I had been on Twitter long enough to be familiar with the talking points of what is seen as the “liberal” side of politics, and I am thoroughly bored and annoyed by them. Dave Rubin is someone who used to be a liberal and then he navigated over to the other side.

I found this interesting, perhaps more interesting than I normally would have, specifically because finding someone who has violated the faith is cause for strong disapproval these days.


41. The Bed of Procrustes: Philosophical and Practical Aphorisms, Nassim Nicholas Taleb.

You would think that Taleb’s aphorisms could have been a bunch of tweets, and you would not be too wrong. Taleb maintains an active Twitter account, so I suppose these were the ones he could not bring himself to drown in the horrible pandemonium.

42. Anthony Bourdain’s Les Halles Cookbook: Strategies, Recipes, and Techniques of Classic Bistro Cooking, Anthony Bourdain

Recipes here are a little more intimidating than Apetites. I plan to cook none of the dishes from this cookbook, unless I somehow find myself toiling in the kitchen of a French bistro. I read it for love of Bourdain.

43. Quickies mini book, Emily Dubberley

A book about spontaneous sex, with some naughty pictures. This was listed as library staff pick in Overdrive app.

44. Good Economics for Hard Times: Better Answers to Our Biggest Problems, Abhijit V. Banerjee and Esther Duflo

What I understood is that at least some of the “better answers” involve giving extended power and more money to government and bureaucrats. It bothered me that Banerjee and Duflo have chosen to ignore some very strong counter-evidence against their arguments.

45. Life in the Fasting Lane: The Essential Guide to Making Intermittent Fasting Simple, Sustainable, and Enjoyable, Jason Fung, Eve Mayer, and Megan Ramos

Some science, some medical practice stories, some personal stories. I’d have preferred mostly science, but then Dr. Fung has written other books which cover exactly that.


46. The Longevity Paradox: How to Die Young at a Ripe Old Age, Steven R. Gundry.

This is a book about extending our “health span”, or the good years of our lives without relying on medical care.

There is some good content about quality of food, importance of gut flora, role of physical activity, importance of social connections, some probably useful takeaways from “blue zones”, etc. It was all quite good until Dr. Gundry started his long list of supplements that he recommends, some of which are sold by his company.

47. Why Is Sex Fun? The Evolution of Human Sexuality, Jared Diamond

Humans are different from other animals. We form long-term relationships, rearing children is (usually) considered a joint duty, sex is a (usually) private and (usually) recreational activity, female ovulation is concealed, and females undergo menopause. This book is a biologists speculation about why our bodies the way they are.

48. Successful Aging: A Neuroscientist Explores the Power and Potential of Our Lives, Daniel J. Levitin

Several factors (genes, upbringing, environment) affect longevity in ways that are hard to study and hard to predict. This book discusses cognitive and physical decline that happens with aging, and strategies to prolong health span. Notably,

  • Our social lives matter.
  • Meaningful work matters.
  • Sleep is important, but becomes harder as you age.
  • Physical decline is a slow process; stay active to stave it off.
  • We still don’t know enough about diet and nutrition.
  • There’s plenty of stories about long-lived people in “blue zones”. Scientifically, they are not necessarily reliable.
  • Lifestyle matters more than genetics.

49. Bottle of Lies: The Inside Story of the Generic Drug Boom, Katherine Eban

Generic equivalents of brand-name drugs were touted as an inexpensive alternative that should have saved Americans a lot of money. In reality, manufacturing and quality control standards are so poor that sometimes generics can be ineffective at best, and life-threatening at worst. Since generics are usually made in India and their ingredients come from China, the US FDA have little oversight over the process. Further, FDA’s process for granting rights to marketing generics in the US was flawed, since it favored whoever filed the application first over the quality of their products.

Bottle of Lies mainly tracks Ranbaxy, the ill-fated Indian pharmaceutical company, their fraudulent manufacturing and business practices, efforts of an insider whistle-blower, and the work of FDA agents. It took a very long time for the slow-moving FDA to act upon information they received from the whistle-blower at great risk of their personal safety. This is bad in the USA and other countries with powerful enforcement agencies, and it gets a lot worse in Africa, where the poorest quality drugs are dumped.

Ranbaxy eventually went out of business, but the book does not end in a positive note: today the diaspora of Ranbaxy executives are everywhere in the generic drugs industry today, and so are the fraudulent practices they learned there.

Truly terrifying.


50. The Body: A Guide for Occupants, Bill Bryson

Grand tour of the human body: skin and hair, human microbiome, brain, heart/blood, skeleton, immune system, lungs and breathing, bipedalism, equilibrium, digestion, the nervous system, diseases, food, medicine.

Of particular interest were the parts about pandemic. The most often repeated phrases in this book must be “nobody knows” and “we do not know”, which is pretty much the summary: we know a great deal about our bodies, but there’s far more we know little about.

51. The Shallows: What the Internet Is Doing to Our Brains, Nicholas Carr

I have it on good authority that the fifty-odd browser tabs I seem to have open at any time of the day is a constant source of distraction, thereby making me more stupid. This page itself is an example the work produced by my own stupid distracted mind. I mean, look at all these links!

We know that the original promise of the Internet as some sort of great library has been greatly compromised. None of the arguments this book put forward sounded new to me, and then I realized that it was originally published in 2011. Oh.

52. Right Here, Right Now: Politics and Leadership in the Age of Disruption, Stephen J. Harper

Years back, I was led to believe that the then Prime Minister of Canada is some kind of great conservative Satan who was enacting some terrible policies. Recently I asked some Canadian friends about their opinion of Harper, and they reassured me that Harper indeed is some kind of great conservative Satan who had enacted some terrible policies.

My views about politics and the nature of power have changed over the last few years. I became interested in knowing why we do the things we do, and why we believe in the things we do. I am no longer willing to believe the things I am told. So I decided that I would rather listen to Harper’s own words and do my own mental filtering, however faulty that process may be.

Harper claims that his administration had done a better handling of economy, immigration, and trade in Canada. In the US though, the mishandling of those very things lead to Donald Trump’s election in 2016 – contrary to popular narrative, it did not happen due to an alarming rise in racism and xenophobia among Americans. About 2.4 million working class jobs have been lost in the US since China’s entry to the World Trade Organization. The presence of about 12 million illegal immigrants have put a further downward pressure on working class jobs and wages. Both major American political parties and several previous administrations have failed to adequately protect the working class. And thus, President Trump happened.

Having lived in middle America, having seen the ghastly shells of many formerly prosperous industrial towns, and having left the place with a lot of affection to its residents, I tend to agree with this point of view. The vast majority of Americans are neither racists nor xenophobes – they are just very tired of their own country’s business and political elites. That is an entirely decent and reasonable position.

Thank you, PM Harper, for articulating things I thought I knew! Now let me go find some reasons to be disappointed in you. That seem to happen inevitably, every single time I think I like a political leader.

February 07, 2021 12:00 AM

December 02, 2020

Sajith Sasidharan (sajith)

Area Man Learns to Make Wheels

I have been toying with Python wheel packages, of which I knew very little a few months back, except of their existence, and things like: they’re essentially zip files, and they somehow make shipping C extensions easier.

I wanted to write down the few things I have learned since, so that I would appear to be little less confused and maybe a little more informed.

Background is as follows: one of the libraries Tahoe-LAFS depends on is zfec, which implements an “erasure code”, or “forward error correction code”. Parts of zfec is implemented in C, presumably for the sake of speed, and that poses a little bit of an inconvenience.

In the olden days (up to zfec version 1.5.3, that is), folks that installed zfec had to have a C compiler in order to be able to build those bits of C. People that use free operating systems or macOS usually have a C compiler installed, but not universally, so this has been a minor hassle for them. Windows people are inconvenienced a little more because their compiler installer downloads are somewhere deep within the layers of Microsoft’s vast and expansive empire of websites.

Yet another inconvenience is that if your Python project depended on libraries that ships with C extensions in source form, your continuous integration systems would take a little longer to run, because of the additional steps required when building and installing those libraries.

It would be nice if we could make installing zfec and thereby Tahoe-LAFS a little bit easier for more people. One big target is Windows, where people need to install Visual C++ for Python 2.7, otherwise known as vcpython27.

I did some work on packaging and publishing zfec. Ramakrishnan helped a lot with GitHub pull request reviews, and with setting me up with appropriate permissions to zfec’s GitHub project and PyPI channels. Thank you Ram!

Python wheels

Python wheels solve the problem of shipping Python packages that contain C extensions by enabling maintainers to ship their software with pre-built extension bits for various platforms. Installing such Python packages are less of a hassle.

On the other hand, packaging is more of a hassle: you will have to prepare wheel packages for all the combinations of various versions of Python, various Operating Systems, and various instruction set architectures that you intend to support. Normally you will have to consider a matrix that consist of:

  • Commonly used versions of CPython and PyPy.
  • Windows, macOS, and three ABI variants of Linux.
  • x86 and amd64.

In addition, you will have to also publish a source distribution package, as a catch-all for any other exotic possibilities.

(Before wheels, Python had eggs. Wheels are currently the standard: see Wheel vs Egg.)

Building wheels

Normally, on a given platform, you could build a zfec binary wheel package for that platform like:

$ git clone
$ cd zfec; virtualenv venv; source venv/bin/activate
$ pip install setuptools wheel
$ python bdist_wheel

On my x86 Debian stable machine, this results in a package like dist/zfec-1.5.5-cp27-cp27mu-linux_i686.whl. On my amd64 Debian testing machine, that results in dist/zfec-1.5.5-cp38-cp38-linux_x86_64.whl. You get the idea.

In theory, I could upload those files to PyPI like below and declare partial victory:

$ pip install twine
$ twine upload dist/*

In practice, there’s a better way.

If you try to build wheel packages for the various combinations of Python versions and operating systems and instruction set architectures “by hand” in the above manner, that could become quite a tedious chore, and a very unreliable one at that. The process should be automated as much as possible.

A nice pre-packaged solution that does just this exists, namely cibuildwheel.

Using cibuildwheel

cibuildwheel is a nifty piece of software that helps with building Python wheel packages on a variety of CI providers. For packaging zfec, I chose GitHub Actions as the CI provider, and adopted the example configuration given in cibuildwheel documentation pretty much as-is.

When a release is tagged, this CI configuration is kicked into action, and in the end, a zip file that contains a whole bunch of binary wheel packages and a source package is produced as a CI artifact. This way, I was able to publish a nice long list of wheel packages for zfec 1.5.5 release: there’s wheel packages for CPython 2.7 through 3.9! PyPy2! PyPy3! Windows, both 32 bit and 64 bit! macOS! etc!

Note that there’s still a manual step of uploading packages to PyPI. As cibuildwheel docs correctly suggests, manual steps are for chumps.

Igor Freire has kindly made pull request 33 against zfec, which should automate this step. I haven’t had a chance to test and merge this PR yet, but I am eager to do that. Thank you Igor!

Fewer wheels with abi3

This is something for the future: although the number of wheel packages produced in the above step is rather big, it doesn’t have to be always that way.

From Python 3.2 onward, there’s the concept of a Stable Application Binary Interface, aka “abi3”, aka Py_LIMITED_API, which means that the need for Python version specific wheels could go away. With fairly new versions of setuptools and wheel, we should be able to do something like this:

$ python3 bdist_wheel --py-limited-api=cp36

That should produce a cp36-abi3 wheel for the current OS and architecture, still usable across Python 3.6 and onwards on the same OS and architecture. Installing abi3 wheels will require a fairly new version of pip.

Obviously building of abi3 wheels too should be automated. At the time of writing this, cibuildwheel is still discussing how to support abi3. I have filed a reminder issue against zfec to ship abi3 wheels when it can be done with minimal hassle.

I learned about abi3 when Jean-Paul noted that bcrypt has been able to ship fewer wheel packages this way. Thank you Jean-Paul!

Maybe zfec can adopt what bcrypt has done, but this isn’t really an urgent thing.

Mistakes were made

Releasing zfec was not as smooth as I make it out to be.

The first release I made was zfec 1.5.4, which did not work on Windows. I published zfec 1.5.4 on TestPyPI, and then made a draft pull request against Tahoe-LAFS. That seemed to work fine, modulo some usual CI noise, so I published zfec 1.5.4 on PyPI. But the zfec 1.5.4 packages I uploaded to PyPI broke Windows CI for Tahoe-LAFS, with this rather unhelpful error message:

  File "d:\a\tahoe-lafs\tahoe-lafs\.tox\py27-coverage\lib\site-packages\allmydata\", line 20, in <module>
    import zfec
  File "d:\a\tahoe-lafs\tahoe-lafs\.tox\py27-coverage\lib\site-packages\zfec\", line 13, in <module>
    from ._fec import Encoder, Decoder, Error
exceptions.ImportError: DLL load failed: %1 is not a valid Win32 application.

Uh-oh. I don’t know what that means!

Fortunately PyPI allows project owners to delete individual files from a release, or yank entire releases. At this time I was a maintainer of zfec project at PyPI – maintainers have upload rights, but they are not allowed to delete files or yank a release.

I asked Ram to make me a zfec project owner, and he obliged. I went ahead removed the zfec wheel packages that broke Tahoe-LAFS CI, and Tahoe-LAFS CI began to spin again. But the original problem I set out to solve remained: to install zfec on Windows, you still need to have a compiler.

I have not been able to figure out why zfec 1.5.4 binary wheels failed on Windows. I haven’t spent a bunch of time on figuring out that either: instead I updated zfec’s cibuildwheel from version 1.6.0 to 1.6.4, and changed CIBW_TEST_COMMAND such that there’s a bit of sanity checking of the wheel packages produced by CI.

Those two things seemed to have made a difference: when I tagged zfec 1.5.5, and did some local testing of the CI-produced binary wheel packages on macOS, Linux, and Windows, things seemed to work.

Testing on Windows

To test zfec locally, I could use my old laptops that run various versions of Debian, and an old MacBook Pro that runs macOS. I do not have a Windows machine.

Microsoft offers some Windows 10 virtual machine images for download. I tried using their VirtualBox image, but things were far too slow in my old computers to be usable.

This problem was solved when cypher at tahoe’s IRC channel pointed out that there’s a Windows 10 Vagrant box, which turned out to be nifty: it offers a command line and not the full desktop, and they’ve included Chocolatey package manager, and OpenSSH, among other things. So you can do:

$ vagrant init gusztavvargadr/windows-10
$ vagrant up
$ vagrant ssh

And that would drop you at a Windows command prompt. Nifty! I did not know that this was even possible. Thank you cypher!

So I tested zfec 1.5.5 packages a little more on setups that are available to me, and felt confident that things will not break this time, or maybe they would break in a different manner this time.

I published zfec 1.5.5 at PyPI, and then made pull request 862 against Tahoe-LAFS that removed installation of vcpython27 from our Windows CI steps. CI looked fine, the PR was approved, and I merged it.

And then things broke again this time, in a different manner.

C’est la vie

While I was working on zfec packaging, Tahoe-LAFS had added netifaces library, and removed its corresponding old homegrown methods of querying network interfaces, in PR 872.

It turned out that netifaces uses a C extension, but a wheel package that targets 64-bit Windows and Python 2.7 has not been published yet. My branch for PR 862 was a bit old and did not have the changes that added netifaces, so I failed to detect that we were not quite ready to remove vcpython27 installation step from CI.

I have since made PR 909 against Tahoe-LAFS, which put vcpython27 installation step back into the CI.

I have also made PR 68 against netifaces, which builds a cp27-cp27m-win_amd64.whl package during its CI steps. Until that PR is reviewed, merged, and new netifaces packages are published, Windows users of Tahoe-LAFS will still need to install a compiler.

As they say, c’est la vie.

Further reading

I opened and closed a bunch of browser tabs while working on wheel packaging. Someday I might actually read them!

Just kidding. I am not going to read them all.

December 02, 2020 12:00 AM

August 16, 2020

Sajith Sasidharan (sajith)

Cinnamon Rolls for a Vegan Friend

Regardless of the ongoing plague and its social consequences, we managed to make some new friends in Toronto!

Since one of the things our species bond over is food, Achu decided to prepare some cinnamon rolls when we recently met our friends. (Some of the other things that our species bond over are tribalism, gossiping, common enemies, and angry pointless rants on social media, but that is a separate topic.)

One of our new friends is vegan, so some vegan-appropriate changes were made in the recipe. I am glad to report that both the food and bonding turned out quite well. I would like to share the recipe Achu used.

Look at these glorious cinnamon rolls! Look at these glorious cinnamon rolls!

We will make some dough, roll it out, add some fillings, roll the dough up, slice the rolled dough into smaller rolls, refrigerate the rolls overnight, bake them the next morning, and add some glazing.

For the dough, we’re using a modified version of a classic dinner roll recipe, with these ingredients:

  • 2 cups of all purpose flour, and some more for dusting.
  • A packet of rapid rise yeast.
  • 3 tablespoons of sugar.
  • 3/4 cup of vegan milk.
  • 2 tablespoons of coconut oil.

We used cashew milk and virgin unrefined coconut oil. Don’t worry about the coconut oil: there will be no lingering smell or flavor of the oil in the final product.

We will need a few more ingredients to make the filling:

  • 2 teaspoon of powdered cinnamon.
  • 1/4 teaspoon of powdered clove.
  • 1/4 teaspoon of powdered nutmeg.
  • 1 to 2 teaspoon of powdered ginger.
  • 1/4 cup of white or brown sugar.

For the glaze:

  • 1/4 cup of white sugar or 1/4-1/3 cup of confectioner’s sugar.
  • 1 teaspoon of pure vanilla extract.
  • 1 to 2 tablespoons of cashew milk.

Warm the milk until slightly hot to touch, about 45 to 60 seconds in a microwave oven. Add the yeast and coconut oil to the milk and let sit while you get dry ingredients together.

Take half the flour and 3 tablespoons of sugar, and mix well.

Dry ingredients in a bowl. Dry ingredients in a bowl.

Pour the milk-yeast-oil mix into the dry ingredients, and mix well with a wooden spatula.

Dough preparation: add wet ingredients. Dough preparation: add wet ingredients.

Add the remaining flour gradually as you continue mixing.

Dough preparation: combine dry and wet ingredients. Dough preparation: combine dry and wet ingredients.

Once the dough comes together, transfer it to a lightly floured surface, and continue kneading for eight to ten minutes, until it forms a smooth round ball. Achu did all the kneading by hand, since we do not have a mixer.

Dough preparation: the kneading part. Dough preparation: the kneading part.
Dough preparation: the well-knead dough ball. Dough preparation: the well-knead dough ball.

Transfer the dough ball to a lightly oiled bowl. Turn the dough around to coat it with oil.

Dough preparation: the oiled dough ball. Dough preparation: the oiled dough ball.

Let the dough rest for ten minutes.

If using active dry yeast (and not rapid or instant rise yeast), let the dough rise until doubled in size (this will take about an hour or so) after kneading it into a smooth ball, then punch it down, roll it out, and proceed with the rest of the recipe.

Meanwhile prepare the filling: mix the powdered cinnamon, clove, nutmeg and ginger with white or brown sugar.

The filling. The filling.

Then roll the dough out to a roughly 9"x16" rectangle. Use a pastry brush to brush coconut oil on the rolled out dough.

Brush with coconut oil. Brush with coconut oil.

Generously and uniformly sprinkle the filling over the rolled out dough.

Spread sugar-cinnamon mix evenly. Spread sugar-cinnamon mix evenly.

Starting with the longest edge closest to you, roll the dough tightly until you reach the seam, then pinch lightly to stop it from unraveling.

Roll the whole thing up. Roll the whole thing up.

Cut into twelve pieces or so. Use a sharp knife for clean cuts.

Cut the roll into slices. Cut the roll into slices.

You may want to pinch and join the ends of the sliced rolls.

Join the ends. Join the ends.

Arrange the rolls in an oiled baking dish. Cover with wrap or a cloth, and refrigerate overnight.

Cover and refrigerate overnight. Cover and refrigerate overnight.

The following morning, take the baking dish out and let it come to room temperature.

Preheat oven to 350 degree Fahrenheit. Bake for 25-30 minutes, until the rolls turn golden in color.

Baked rolls out of the oven. Baked rolls out of the oven.

For the glaze, powder sugar, or use confectioner’s sugar. Mix with vanilla and cashew milk until melted and gooey.

Make a glaze. Make a glaze.

Then pour the glaze over right-out-of-oven rolls and let sit for 10 minutes before serving.

The final product! The final product!

We waited for a little more than ten minutes before serving: we took the subway for the first time since the pandemic began, met our friends at Dufferin Grove Park, shared the food each of us had brought, and spent the whole day hanging out.

Final step: bask in appreciation. Final step: bask in appreciation.

And then together we proceeded to grab some food from Madras Masala, and hung out some more at Christie Pits Park, with some more really tasty food.

August 16, 2020 12:00 AM

June 06, 2020

Clinton Ebadi (clinton)

An Open Letter to the City Council of Raleigh NC


At the press conference Friday morning, our mayor passionately stated:

The Raleigh City Council supports our police chief … We have her back now, and we support her.

Raleigh Mayor holds press conference after a week of protests in the city

The council member code of conduct states:

Members should never attempt to express an opinion on an issue as the position of the city unless the full council has endorsed that position.


However, there is no public record of a meeting, motion, vote, or resolution wherein the council declared their support for the police chief. Based upon this it appears that our Mayor violated the council code of conduct, and if the the rules of the council are to mean anything can and should be sanctioned for it. It is hypocritical for the mayor to consistently note when members of the public violate decorum, and to gavel at other members of the council when she deems them in violation, only to go on and do so herself with such a bold affirmation very publicly during a politically tense moment with public confidence in RPD low (an understatement, I suspect). If this is just a misunderstanding, a vote on a resolution of support for our police chief should be held so that each council member enters their view into the public record.

Even after the events of this weekend, the RPD continues to astound with its brazen attacks on their fellow citizens. Friday we learned that the RPD instructed the Wake County Sheriff to serve a warrant unrelated to the RPD’s jurisdiction (certainly not worthy of rousing officers in the middle of the night over) against Conrad James (whose event drew an astounding crowd of three), in the dead of night because he “had caused a nuisance”: merely knocking on the front door of a police station asking that officers pass a list of his demands for reform onward to their chief officer, afterward even having a polite chat with the police chief that happened to make for a diffusing news piece that was nothing but glowing for the police chief and the RPD (the citizen heard! the chief opening her heart and pledging to seek a more perfect justice!).

And then the RPD went on to openly surveil him (speaking his name as a target over public radio bands) during the peaceful marches Friday night, and furthermore openly followed him back to his home as he left well before curfew.

These are clear acts of retribution on the part of RPD that they have openly admitted to intended to have a chilling effect on speech, and for what? Mere participation in a moment of protest? Mild criticism of the police department? Should I be afraid of a knock on my door at three in the morning for sending these letters? Is the RPD running background checks on everyone who called into the meeting Thursday evening in case they have some outstanding warrant or unpaid citation they could be harassed over? Which of us will they next descend upon in the dead of night in their attempt to intimidate the city into silence? There is no going back from this precipice: the mayor and police chief must go, no more of this “if immediate demands are not met” nonsense.

Furthermore, while the curfew may have been legal and justified the first night, at this point it is very clearly unconstitutional on a number of grounds, and grows more problematic with each passing day. The NC ACLU has noted its concern with very similar curfews imposed in Greensboro and High Point, and by the criteria listed in their June 1st article it is clear Raleigh’s curfew fails to pass muster.

This is the latest declaration from our mayor that impinges upon our basic right to free expression, showing a pattern of either fundamental misunderstanding of or outright contempt for the basic law of our land. That upon reflection her only regret is not putting a curfew into place with even less justification makes it feel like contempt is the likelier of the two.

Does the city council really stand for this: For tear gassing peaceful protesters (including at least one member of the city council)? For banally violating the basic civil liberties of Raleigh’s citizens? For allowing the police to terrorize and take vengeance upon anyone who dares question them?

I thought I was cynical, but every day this year is a surprise,

  • Clinton Ebadi, Resident of District D

by clinton at June 06, 2020 08:55 PM

June 03, 2020

Clinton Ebadi (clinton)

An(other) Open Letter to Mayor Mary-Ann Baldwin of Raleigh NC

To the mayor,

I see you are still in office. Do you not understand how responsibility works? Especially after Sunday where RPD launched chemical weapons into a peaceful crowd with no provocation (spreading an outright lie to justify it), proceeded to antagonize the crowd for hours by repeatedly tear gassing them, escalating the situation until the crowd erupted in anger. Officers launching flash bang grenades at the owner of Ruby Deluxe was a nice touch too.

There were hours where the crowd was cohesive enough that the police could have declared an unlawful gathering and ended it Sunday before rioting started (or, you know, the RPD could simply have not antagonized the crowd in the first place): the blame falls squarely on your shoulders as the Mayor for this absolutely bungled response and I think proves the point of the protesters. Your police force picked a fight with the citizens they are sworn to protect, and outright terrorized the city Sunday.

Compare to last night when RPD showed restraint and at least kept their jackbooted thug contingent out of sight, giving the protesters room and allowing them time to peacefully disperse. I do hope the council reconsiders the curfew soon however: it will certainly be unequally enforced if it goes on long enough, and there will almost surely be an incident that inflames tensions again.

In addition to to your resignation and the termination of the chief of police, the city council must move forward and kill the half-assed police “oversight” board (where the oversight is the oversight) and replace it with one that has subpoena power, as our marginalized communities have been demanding for years now. It might be time to reconsider your position that “Sometimes, when you make nobody happy, maybe that is the best solution” and consider that listening to the citizens you represent and protecting them from brutalization at the hands of law enforcement is the best solution, and is your duty. Law enforcement is a job: if they don’t like having to respect citizens, good riddance. Citizens can’t choose the color of their skin!

Reinstating CACs until an alternative is researched would be a good show of faith too, although since the rest of the council except for Mr. Cox are also opposed to them I admit that’s a stretch. Just know you’re all unlikely to be re-elected unless you actually do something about this and really begin to LISTEN to marginalized communities instead of paying them lip service and waiting for them to be gentrified out of existence.

If you don’t understand why you as the mayor must resign over this, I leave you with a tale of inverted responsibility courtesy of Kierkegaard:

Although everyone wants to rule, no one wants to have responsibility. It is still fresh in our memory that a French statesman, when offered a portfolio the second time, declared that he would accept it but on the condition that the secretary of state be made responsible. It is well known that the king in France is not responsible, but the prime minister is; the prime minister does not wish to be responsible but wants to be prime minister provided that the secretary of state will be responsible; ultimately it ends, of course, with the watchmen or street commissioners becoming responsible. Would not this inverted story of responsibility be an appropriate subject for Aristophanes!

I know you were looking for a cushy prestige gig to capstone your career where you didn’t actually have to lead as it’s clear you have no leadership ability in you, but that’s not how this year turned out. Resign and allow someone competent to take your place before Raleigh goes down in service of your vanity.

  • Clinton Ebadi, Resident of District D

by clinton at June 03, 2020 01:00 AM

May 31, 2020

Clinton Ebadi (clinton)

An Open Letter to Mayor Mary-Ann Baldwin of Raleigh NC

To the mayor,

Resign, now. You have no legitimacy after allowing the police to brutalize a peaceful protest last night and trigger rioting.

The chief of police and wake county sheriff need to go too. What did you think would happen when the police showed up fully jackbooted in riot gear off the bat? Do you not understand the message that sends? That they followed up by lobbing chemical weapons at peaceful protesters made it deafeningly loud: we are an occupying force, and you are the occupied. You are in charge of that force, and are ultimately responsible for last night.

You went on to blame outside agitators: I hate to break it to you, but the agitators took their uniforms off and quietly went back to their homes in our communities last night.

You’ve made it clear through your many tone deaf comments (remember when you endorsed Bloomberg, making it clear that you’re fine with monstrous policing that brutalizes marginalized communities as long as the tax base increases?) that you are only the mayor of upper class white Raleigh. Disbanding the CACs because the underclass used them to complain about being tread upon, creating a joke of a police advisory board with no teeth as a giant “fuck you” to the communities suffering from state violence, even continuing to push forward on the stadium project (made possible only by Trump’s “opportunity zones” which were created specifically to destroy minority communities!) even as the COVID-19 crisis began. But you created a few special parking zones! Mission accomplished! You’re a joke.

You’ve made it clear you view the majority of Raleigh as an annoyance, and wish to silence their pleas for a better life as they are ground underheel (until they are silenced forever: dispossessed by gentrification courtesy of your friends in the construction industry).

  • Clinton Ebadi, Resident of District D

And did those feet in ancient times
Walk bare upon these lonely streets like mine?
Does God watch us from that penthouse high above
His children down below who live on air and love?

by clinton at May 31, 2020 08:52 PM

May 10, 2020

Sajith Sasidharan (sajith)

It's Downtown, Man

Since January, we have been living in the center of a populous metropolis. Clearly populous metropolises (or is it metropolii?) are a rather poor choice to take upon residence at the time of a global pandemic. Clearly our move was rather poorly timed. But it sort of happened.

The way-too-short-term stay

We spent our Christmas with Bill. After Christmas, we drove to Canada from Indiana, with Ammu cat, and what worldly possessions we could fit in our hatchback car.

We were going to stay in a room in some guy’s house in a Toronto suburb for a month maybe, while we look for a long-term place to stay. Our host had originally told us that we were all welcome to use kitchen and living area, and Ammu was free to be wherever she wants to be, for our host’s children like cats.

On New Year’s eve, a woman our host was dating moved in, and started a proxy war. Long story short: we vacated that place the next day, and moved into the first apartment we found downtown.

View of the concrete jungle. View of the concrete jungle.

I have not lived in a city in a very long time. Various reports suggest that Toronto is nice, lively, multi-cultural, with much to do and explore. Some friends live a couple of city blocks away, and some other friends live a few kilometers away.

Things looked good. Until it didn’t.

It’s downtown, man

Rainy January night. Rainy January night.

One night in January, we were walking to our friends’ apartment, with the friends in question, and with their toddler in a stroller. We stopped at a convenience store on our way, picked up some stuff, and stood on the line at the checkout counter to pay for the stuff.

A man with a fresh open wound on his face entered the store, blood gushing forcefully from the wound, like a fountain. He wanted to show his wound to the man who was at the counter, who apparently had caused the damage.

Shouting and pushing and shoving ensued. The rest of us stood there watching, unsure what to do. I offered to call 911, but a woman who was working in the store pleaded not to do so. She was afraid, and wanted the trouble to go away by itself.

We had not witnessed what happened a few minutes before: the now-wounded man had grabbed two sandwiches from this store and had made a run. The store worker who was now being pushed had tried to stop this terrible burglary with a baseball bat. Some of the beatings fell on the assailed man’s face. The assailed man threw the sandwiches on the floor, threw a few curses around, and stomped out.

Moments later, after the bleeding started and upon realizing what the hell just happened to his face, he came back. He let everyone in the store know of the crime that has just been committed, and stomped back into the night again.

A woman walked in, saw the mess and the startled faces in the store, and burst out laughing: “it’s downtown, man!”

Another store worker quietly brought out a bucket and a mop, and started to clean up the mess.

We left the store, shaken. What did we just witness? Did all that happen just for two sandwiches? Couldn’t they have let the man go with the damn sandwiches? Perhaps the store worker is from a kind of place where shoplifters are routinely handled in this manner, swiftly and violently?

Later that night, when we were walking back home, we saw a cop car outside the store, so presumably rule of law eventually got involved in the matter.

I wish I had the good sense to call someone to help the wounded man, but I did not do that at the heat of the moment. I just stood there and watched the whole thing like an idiot. Perhaps I should not have.

I have been walking

I chatted up a couple of photographers I met on the street. One of them told me about the abundance of nature trails and wildlife in Toronto. He showed me a picture of a howling coyote that he had taken one early morning, from fairly close quarters.

I have taken to the trails since then. I have seen plenty of birds. I have seen some tortoises. I have also seen an occasional raccoon or two, Toronto’s infamous nemesis. I have not seen a single coyote, howling or otherwise, so far. I continued walking. It seemed to be good way to orient myself in the new surroundings.

On the same day I met those photographers, on a long walk home, I was delighted to chance upon a building that houses Toronto Camera Club. The club holds (or rather: used to hold) regular meetings, they have a dark room, and some training for members that are darkroom rookies.

I was hoping to join them and maybe learn darkroom printing, but alas.

Late March snow day. Late March snow day.
March: fish in former brickworks pond. March: fish in former brickworks pond.
April: Tulips and scillas. April: Tulips and scillas.

And then the masks came on

I believe masks started appearing in January. I remember feeling rather weird about them. There was reports of some epidemic going on in China. Should we worry yet? Why should we?

What did the mask people know that the non-mask people did not? That an abundance of caution is always a good thing? That the virus will eventually make its way to this side of the planet?

April: month of the shutdown. April: month of the shutdown.

Throughout the winter, I had been preparing myself to grow cranky by spring time. In the spring, I would grow cranky about not having a garden or a yard to care for. Little did I suspect that I could grow cranky about other things too, such as having to stay within the confinements of the apartment, and the uncertainty of the whole thing.

April: empty University of Toronto campus. April: empty University of Toronto campus.
April: empty street. April: empty street.

Of late I have stopped going on my long walks. There are crankier people out there. I do not like meeting them. Who would have thought that going to the grocery store would be such a stressful experience?

Ammu cat dislikes confinement

Ammu in the new digs. Ammu in the new digs.

Ammu cat has never lived in an apartment. She always had access to some stomping grounds. In Atlanta, as a kitten, she spent all her time outside. After moving to the midwest from the south, year after year, she would patiently stay indoors all winter. And then, throughout the rest of the year, she would spend all day and sometimes all nights outside, coming and going as she pleased.

She still wants to do that. She would wake me up in the morning way too early for my liking, get her food, and then lead me to the door, demanding to be let out.

I’m sorry, Ammu, but you can’t go outside here. There’s an epidemic out there, and worse, there are cranky people out there and I do not want you to meet them.

You wait until we move out of here, to a house with a yard, away from this madness, where you and I can stomp to our hearts’ content.

May 10, 2020 12:00 AM

January 26, 2020

Clinton Ebadi (clinton)

November 19, 2019

Sajith Sasidharan (sajith)

Adventure Time

Lately there has been an uptick in life events. I thought I should keep a brief record of the said events here, in a “dear diary” fashion, before I forget nearly all of it.

The gist is this: we (Achu and I, not the royal “we”) are in the process of moving to Canada from the United States. In fact, I am in Canada as I write this.

I moved to United States about nine years back, under a confluence of circumstances, and not without some resistance. I was a graduate student at first, then took a stab at running a one-person company, and then was employed by a national lab.

Despite certain shortcomings, good old USA has been a nice place to live. Nearly all Americans we have met so far have been genuinely nice, kind, and considerate people. The country is incredibly beautiful, mind-blowingly vast, and its geography is astoundingly diverse. We have seen some of it, and we wish to see more of it.

However, because of the realities of immigration (namely: very long wait times for permanent residency in the US for people born in India), living in the United States long term is just not a viable proposition for us. Attempting to do so would mean sacrificing what’s left of our youth and freedom, and that is not a thing we are willing to do.

That is okay: those are the rules, we signed up for it fully cognizant of those rules, we played by those rules, and it is time to move on now.

That old house

We had a house in west Chicago suburbs. We bought the house three years back when I moved to the area for work, and we spent a lot of time and effort in improving it inside and outside. Friends came over often, and always had a lovely time there.

We sold that house in September. We also sold the bulk of our belongings, except some stuff we like to hold on to: books, tools, kitchen implements, camping gear, computers, and the such.

A riot of brown eyed susans A riot of brown eyed susans

While it is true that getting rid of stuff is liberating, we will miss that house and neighborhood. The yard was nice. We loved our neighbors, both humans and non-humans. There were oaks, spruces, and magnolia trees. There were raccoons, possums, skunks, rabbits, robins, cardinals, woodpeckers, sparrows, mourning doves, blackbirds, grackels, nuthatches, and other many birds I could not identify. Milkweed plants sprang up by the front door. Honeybees and monarch butterflies made our garden their way point.

I should write about that house, yard, and monarch butterflies.

Prairie road trip

In early September, just a week before selling the house, we took a road trip across Wisconsin, Minnesota, South and North Dakotas, Wyoming, and Iowa. As usual, we stayed off the highway.

I had not seen a sky clear like that in years. I had not seen a sky clear like that in years.

We saw a lot of the countryside. We visited Lake Itasca, headwaters of the mighty Mississippi river. We drove through Native American reservations. We saw the Bear’s Tipi. We camped in Badlands National Park, and gazed at stars under a clear sky.

I should write about that road trip.

That old job

I worked for Fermilab for a little under three years. My job was a three-year term position, due for renewal by January 2020. I quit the job in October, in preparation for leaving and in the interest of flexibility of schedule and location. After selling the house and before quitting my job, Ammu cat and I camped out at a friend’s living room for a month.

My esteemed former colleagues: Fermilab’s bison herd. My esteemed former colleagues: Fermilab’s bison herd.

Fermilab is an interesting place, and I loved its 6,800-acre campus. A part of that land is set aside for prairie preservation. Humans and particle Physics experiment facilities share it with very many non-human occupants. It is lovely.

I can’t speak of particle Physics, but I should write about the wildlife I met at Fermilab.

Down south

After quitting my job, the three of us (Ammu cat, Achu, and I) drove down to Charleston, South Carolina, and there we lived in a hotel for about a month.

Seen in Charleston, South Carolina. Seen in Charleston, South Carolina.

Achu has been visiting Charleston often for work over the past few years, and her work there got extended a little longer this time. Charleston is a great city, and we wish to keep going back there.

I should write about our stay there.

Toronto in between

I visited Toronto in late October. I exchanged my Illinois driver’s license (which was about to expire, along with my US work visa) for an Ontario one, set up a couple of bank accounts, and went back to Charleston.

Seen in Allan Gardens, Toronto. Seen in Allan Gardens, Toronto.

When coming back from Toronto, I entered the US on a tourist visa, and faithfully performed some tourism.

Further down south

We went to south Florida on vacation. We found a lovely home-stay in the lovely Coconut Grove neighborhood of Miami, and visited Everglades and Biscayne national parks. We went snorkeling in Key Largo, and then drove further down to Key West, tasted the obligatory key lime pie, and came back.

“Southernmost point of continental United States!” “Southernmost point of continental United States!”

This was my first time in Florida, and I am happy to report that southern Florida’s tropical climate and flora and fauna reminded us of home.

I should write about our week as tourists in Florida.

Up north

We drove to Indiana, to our friend Bill’s house, via Georgia, South and North Carolinas, Virginia, West Virginia, and Ohio. We stayed a night with friends in Florida, and a weekend with friends in North Carolina.

Seen in Charleston, West Virginia. Seen in Charleston, West Virginia.

We wondered at the transition from the tropical climate of south Florida, to late fall foliage of West Virginia, to early winter of northwest Indiana. When we found ourselves in Indiana, gloomy winter weather and an early snowfall greeted us.

Seen in Fort Wayne, Indiana. Seen in Fort Wayne, Indiana.

We drove up to Chicago, stayed with friends for a couple of days, hung out a bit, picked up some of our stuff that was left with friends, and came back.

Back in Toronto

I am back in Toronto area again, as of Sunday the November 17th. I have found modest but entirely sufficient living arrangements in the suburbs, for the duration of a month. I will need to find another modest living arrangement for the next few months after that. What about after after-that? We will figure that out.

I have been, rather selectively, applying for jobs over the past few months. As with most job search stories, there has been some interest in my job applications, while they were mostly ignored or rejected.

I also applied to The Recurse Center again, but my application was rejected after the second round of interview.

I should write about 2019 edition of my job search.

The new job

Moving to Canada as a permanent resident has granted me more flexibility in work situation. I do not need to be tethered to an employer who would sponsor me a work visa, like I was in the US. That is nice, and I fully intend to make the best out of my new situation.

I have signed a contract with the non-profit Aspiration Tech, to work on porting Tahoe-LAFS from Python 2 to Python 3, while maintaining backward compatibility. This work should ideally be finished before Python 2 sunset date, but we know how it is with software project schedules.

For me the main thing is this: I have wanted to work on free software and get paid to do so for a very long time now. This time I am actually getting to do that!

I am very grateful for the opportunity, and very thankful to the kind and generous people that have made this possible, and overall very excited by the possibilities.

I should write about my work too.

November 19, 2019 12:00 AM

August 05, 2019

Sajith Sasidharan (sajith)

This Yak's Name is Hakyll

I originally created this website using Emacs html-helper-mode, and then later, for blogging purposes, switched to a setup that uses Emacs Org-mode and Jekyll.

(Remember “blogging”, kids? It is something we old people used to do in the Internet about fifteen years before from now.)

The Org-mode + Jekyll setup worked like this: you write the site files and blog posts as Org-mode files, and then “publish” the “project” to kind of headless HTML files, which are then processed by Jekyll into the shape of a website with blog posts. This process is described in detail in Org-mode website, in the article “Using org to Blog with Jekyll”. It was fun and novel at the time. Fun and novel for me, anyway.

While Jekyll is nice, and I quite like writing prose in my favorite text editor and kitchen sink, the process of writing in this manner has been far from friction-free.

For example, while writing, I would often run ‘org-publish-project’ or ‘org-publish-current-file’ command from Emacs, in order to preview what stuff I just wrote looks like in HTML. This would send the cursor back to the top of the buffer, breaking my “flow”. Aaargh!

The tedium of that possibly kept me from writing here more often. I have other lame excuses too, but I think I can reasonably claim that this one has been the main one. Thus I have been contemplating moving away from Jekyll, while keeping Org-mode.

I tried using jekyll-org, but it wasn’t really much of an improvement.

I tinkered with Hugo for a bit. Hugo seemed nice: it is fast, popular, and has some useful niceties (such as image re-sizing) that could have been useful. Hugo can also handle Org-mode input!

But it turned out that Hugo’s Org-mode handling is not quite complete: it can’t handle embedded images or tables, for example.

So I gave up, and gave Hakyll a good look again.

I have not written Haskell earnestly in a while now. Even then, with a bit of effort and a lot of fun, I could migrate things from Jekyll. Thanks to Pandoc, Hakyll has excellent Org-mode support that is only surpassed by Emacs itself. I have managed to move old content pretty painlessly, with just some minor changes to Org-mode markup, some directory name changes, and some tweaks to the default site code generated by hakyll-init.

But the best part is this: I no longer have to do the old crufty moves just to write something on this site!

(The old moves were, to rehash: “publish project from Emacs, then preview stuff in web browser, then go back to Emacs, then find the lost cursor position and go back to whatever I was writing, then lose interest, then procrastinate, and then give up.”).

This is a good thing! I do not have that one lame excuse that held me back from writing! I can write more! I can write more often! Even if nobody else reads the stuff I write!

(I suppose we will see about that soon.)

Some notes

The basics of using Hakyll is quite well documented, and that worked well for me. There’s no need of repeating any of that here. But there was one thing that irked me.

Hakyll worked OK in my computer that runs Fedora (GHC 8.4.4, Cabal, but gave an error when running preview server in the computer that runs Debian (GHC 8.6.5, Cabal and another that runs macOS (GHC 8.6.5, Cabal

$ cabal new-configure
$ cabal new-build
$ cabal new-exec site watch

  Creating store...
The preview server is not enabled in the version of Hakyll. To
  Creating provider...
enable it, set the flag to True and recompile Hakyll.
  Running rules...
Alternatively, use an external tool to serve your site directory.
Checking for out-of-date items

It is a weird error message, and it is annoyingly interleaved with a non-error message. I don’t quite know why this happens, and I haven’t really tried to figure out why it happens either, but I have found a simple solution: add a cabal.project.local in the project root directory, and add the below line in that file:

constraints: hakyll +previewserver

And then rebuild things:

$ cabal new-exec site clean
$ cabal new-exec site watch

That should fix it.

I copied other people’s code

While moving things from Jekyll to Hakyll, I copied Hakyll snippets from many other people:

Thank you for sharing the code, folks! Mine is here, posted as a GitLab snippet.

August 05, 2019 12:00 AM

June 22, 2019

Clinton Ebadi (clinton)

Defeat Snatched From the Jaws of Victory

I was very excited on June 19th to hear that the Maine legislature had passed LD 1083, which would have finally implemented ranked voting for Presidential elections. But then thanks to some technicality the Senate had to pass it a second time, failed to do so, and adjourned for the session. So close, yet infinitely far away.

I’ve been waiting for ranked voting for at least the Presidential vote since I was fifteen (Ralph Nader, Indecision 2000, and an excellent American Government teacher all happened in the same year and ruined me), and it’s maddening how something so sensible is perpetually impossible to implement.

Imagine being able to vote for the party you really want to win with a middling mainstream candidate as your backup: instead of having to weigh how many people will never speak to you again because you voted "wrong", and violating everything you believe in so the slightly less shitty party can win (and the all-knowing politicos then using the lack of third party votes as self-fulfilling proof that no one supports major political change).

I’m hoping once one state successfully uses ranked voting for a general election it’ll spread to the rest quickly—it feels like shutting down the bullshit argument that voters are too stupid to count to three or four is the last significant propaganda barrier to breach. But it looks like we’re gonna have to wait at least another Presidential election cycle to prove the naysayers wrong :-\

by clinton at June 22, 2019 06:09 PM

June 18, 2019

Steve Killen (nevetski)

At odds with the human condition

I don’t really know how to cope with the despair some days. One foot in front of the other, fake smile, showing up for other people’s children while the demands of just keeping up pull me in every direction except with the people I want to spend more time with: friends, my fambly.
A therapist won’t help, because the problem isn’t me–it’s the society that demands that we work harder and longer for less vacation and shittier healthcare than pretty much any other developed nation. It’s the people who are taking money produced by the labor of others and squirreling it away, piling it up, and making laws to make that easier and more institutionalized–and having the temerity to call a return to an equitable system “sociualism” as if it’s a crime. Meds for my ADHD have marginal returns when I don’t need to focus on writing something, because the irritability of an untenable work environment comes out on the children in a magnified way. And again, I shouldn’t have to take meds just to cope with externalia.
I miss everyone I have ever been friends with. As the Echo reminds me to get ready to go–a life-changing addition to our household, for which I am suremely grateful–I feel compelled to let my son sleep for just a bit more. Just writing these words is helping, and that is my only recourse. I’ve been trying to avoid going on about internal states, but I am not sure that walling up is what we need anymore. We need some fucking breathing room. We need to be able to have downtime, to be seen as human, to be in a flawed space. And I feel like I’m not allowed to do that right now.
I could just stop reading the news–but now is the time when we should be reading it. The drips and draps of the current movement into neofascism (which is absolutely happening) will become a torrent that we cannot withstand, if you follow history with even passing familiarity. So if we know about things, if we get organized, we can push it back.
I just don’t know what the fuck to do anymore. It’s overwhelming, and I feel like I’m in a tunnel, with life happening around me.  So I guess that’s where I am right now.

by Steve Killen at June 18, 2019 11:33 AM

May 04, 2019

Clinton Ebadi (clinton)

Printers Fixing Printers

My ancient (but still perfectly reliable and awesome) LaserJet 6MP has had a problem for a yearish now… one of the clips that keep the rear exit tray closed finally fatigued and snapped. Replacement bits are expensive enough that it’s not really worth replacing, and it’s not feasible to repair in place. Problem is, the rear tray needs to be closed for paper to feed to the exit tray on the top, and if it’s not quite closed, paper just tangles itself in the rollers and causes a nice little jam. So I’ve had a stack of DVDs jammed between the printer and my subwoofer on the same shelf this entire time…

Finally got fed up with this arrangement and used my other printer to make clips to keep the tray closed. Not very exciting, but hey… better living through technology.

by clinton at May 04, 2019 11:54 PM

April 04, 2019

Clinton Ebadi (clinton)

Winter of TEMPEST

A few summers ago, I was lucky enough to exist in the right time and place to be able to regularly play TEMPEST. The summer wasn’t meant to last — the realities of aging vector hardware in a busy bar led to TEMPEST disappearing a few shorts months later.

Attempting to simulate a spinner with a keyboard or gamepad with MAME is an exercise in futile suffering, so what’s a TEMPEST addict that can use a drill and knows how to plug wires into things and measure to do?

Why, build a very weird mouse in essence, which I did last September. This was a pretty easy project: I just grabbed a TurboTwist 2 spinner (an ultimarc spintrak would probably work equivalently), the mouse encoder board for it, a few buttons, and stuffed it all in a reasonably sized project box from the craft store.

I used a bit of openscad to make a template and ended up giving the box a light sanding and a few coats of spray paint that I had lying around.

I set MAME to interpret the third mouse button as both coin and start, so it’s all self contained for TEMPEST. It plays great after calibrating the turn count and making sure to totally disable mouse acceleration for the spinner.

by clinton at April 04, 2019 03:39 AM

March 17, 2019

Clinton Ebadi (clinton)

Printer v2.3

It’s been a few years since my reprap’s journey began, and I think it has reached the conclusion, before a total overhaul and replacement of the frame (3.0?).

I replaced the 45° rear frame brackets with slightly better ones (used a bit off-label — I’m just bolting the frame part to a table) that mount to where I had originally intended the supports to go, decided to see if the hype was real and swapped my worn out three year old belts for real, live Gates GT2 belts, replaced the original y-axis mounts that made it impossible to remove the y-axis without getting under the printer with metal brackets that are accessible from the top, and swapped the y-axis parts for the Wilson II y-axis.

This resulted in some slight improvements in print quality (mainly in y, since the original belt was really worn out and there was a ton of backlash… not helped by my super misaligned belt line), but nothing major. Worth the effort if only for the y-axis not being awkwardly mounted and impossible to remove, and the control board being in a better position.

At this point it’s clear that the 2020 frame is too flimsy for a printer of this size… as such, I’m planning to design a new frame inspired by the Prusa i3 MK3 Bear Frame Rebuild, but in openscad instead of a proprietary cad program that doesn’t run on GNU/Linux (still debating continuing hacking on the pre-MK2 community version of the Prusa i3 or just re-forking the mainline Prusa i3 MK3).

  • Original frame braces for the TS … I sized the rear extrusions for mounting to the top of the frame but never go around to making my own mounts so the extrusions went way past the edge of the table…
  • Replaced the idler-side frame brace. Not messing with the brace the control board is mounted to until rebuilding the y-axis.
  • cat tax
  • new y-ends! In addition to having adjustable tension without adding backlash like the old tensioner did, they give me ~6mm more z height.
  • Just before the overhaul
  • y-axis mounts from hell
  • you can’t get a screwdriver into either of these except from below the machine which makes working on the y-axis a major pain, especially since my frame has to be bolted to a table for rigidity.
  • After much struggle, these replaced the y-axis brackets. The attachment to the xz frame uses ball spring t-nuts so they stay in place when removing the brackets for easy alignment on re-assembly. These also feel way stiffer than the plastic mounts (and the screws can be checked/tightened regularly).
  • Was a bit messy under the printer after getting the y-axis off.
  • All clean now. And the plastic corner brackets I couldn’t get out (without much suffering) before have been replaced with metal brackets, matching the top of the frame (I had to learn the hard way how much stiffer the metal brackets are)
  • What have I gotten myself into?
  • Y-axis back together, with the fancy GT2 belt (and original 10mm hardware from the TS, not taking the entire print bed apart this time…)
  • All together again. Much nicer looking I think! Still needs some cable management redone (not that it was ever done very nicely before)
  • Back and ready for action.

A quick and probably meaningless rough history of changes to the machine, that I want to expand into a page on my actual website eventually (more naval gazing?):

  • 1.0: Straight Wilson TS, with a 300x400x300 mm frame, an itty bitty double flex extruder, and 10mm linear rods for the y-axis.
  • 1.1: Swapped the threaded rod for a lead screw on the z axis
  • 2.0: Upgraded the linear rods on the x and z axes from 8mm to 10mm
  • 2.1: Upgraded to a Panucatt Azteeg X5 GT running Smoothieware (great hardware, adequate firmware).
  • 2.2: Fixed bug in z-axis that was causing the motor mount to shift 2mm vs the x-axis parts (perils of using two different source trees for different parts)
  • 2.3: Swapped the y-axis for the Wilson II y-axis, replaced the rear frame braces.

by clinton at March 17, 2019 08:38 PM

March 11, 2019

Sajith Sasidharan (sajith)

January and February Books

I keep making earnest plans about taking notes about books I read, and like my other earnest plans, I keep failing in executing them.

I made an effort this week, and managed to write things about books I have read over the last two months.

The Botany of Desire: A Plant’s-Eye View of the World, Michael Pollan.

Plants domesticated humans, just as much as humans domesticated plants. Botany of Desire explores the story of how plants conditioned us to do their bidding, through the history of our relationships with a representative sample of four plants: apple, tulip, marijuana, and potato.

What Got You Here Won’t Get You There: How Successful People Become Even More Successful, Marshall Goldsmith.

Professional competency may help climb up the organizational hierarchy, but that alone will not make you successful once you reach the higher positions.

There will be negative habits you will need to unlearn (goal obsession, passing judgment, making destructive comments, making negatively framed comments, speaking when angry, explaining why things won’t work, withholding information, failing to recognize the right people, claiming undeserved credit, making excuses, obsession with the past, favoritism, failure to express regret, punishing the messenger, passing blame…), and there will be positive habits you will need to learn (apologize, listen, show gratitude, express your willingness to change, follow up with people whom you have wronged…).

Basically: be a decent human person (failing which, pretend to be one?), and other people are far more likely to accept you in leadership positions.

Making Sense of the Alt-Right, George Hawley.

The thing that bothered me most about this book is that Hawley could define alt-right only in broad and vague: they are neither “alt” nor “right” in traditional senses of those words; they are some disparate, leaderless bands of Bad People who really do not have a grand unified agenda.

He set out to make sense of it anyway (which would have been fine, had the stated goal been met), so like any Good Twenty-First Century Journalist, he investigated the shit out of it: he read a lot of the nasty stuff on Twitter other various alt-right stomping grounds in the Internet, talked to some prominent talking heads of the alt-right, and reported back with what he found: yeah, there are some nasty people Out There.

In the end, neither Hawley nor the reader emerges particularly wiser from the experience. Are you surprised, dear reader?

Rendezvous with Oblivion: Reports from a Sinking Society, Thomas Frank.

I have read What’s the Matter with Kansas and Listen, Liberal previously, and quite liked them. Count on Thomas Frank to shine a light on what is really going on with America, in a manner none of the Journalists Who Tweet The Latest Matter of Outrage have managed to do, and with insight none of them have managed to earn.

Rendezvous.. is a collection of essays, many of published at The Guardian, The Baffler, and elsewhere. The book has been read and returned to the library, so I will keep some links around:

All The Answers, Michael Kupperman.

Graphic novel. Michael’s father, Joel Kupperman, appeared in mid-20th century radio and television shows as child prodigy – a Quiz Kid, along with other Quiz Kids. Joel rose to fame, but eventually became an object of public derision, and left the scene, never to return.

Dewey: The Small-Town Library Cat Who Touched the World, Vicki Myron.

On one wintry night in Iowa, someone dropped a tiny kitten in to Spencer Public Library’s book return box. Vicky Myron, who happened to be the librarian at the time, adopted the kitten, nursed him back to health, named him Dewey Read More Books, and acted as his Public Relations Liaison.

Except for a small handful of haters and doubters, Dewey was adored by the majority of library patrons. In his time, Dewey constantly drew some press attention to himself and thus to the town of Spencer, in both local and national media. Occasionally some international media outlets made the trip to rural Iowa to meet the famous library cat.

I like cats and libraries, but this book was a disappointment. A good editor would have ruthlessly trimmed the uninteresting parts that involved the author’s family drama.

Wild: From Lost to Found on the Pacific Crest Trail, Cheryl Strayed.

After cancer killed Cheryl’s mother at an early age, her family began to fall apart. Cheryl herself began to fall apart. She hoped that hiking on the Pacific Crest Trail, on her own, would somehow fix her. She was an inexperienced hiker when she started, made the inevitable mistakes, made some friends along the way, and encountered danger. And she finished what she started.

I watched the movie in a flight, and then read the book. I liked them both.

A First-Rate Madness: Uncovering the Links Between Leadership and Mental Illness, Nassir Ghaemi.

The idea is that, in times of crises, mentally “normal” (as fraught with peril as the word may be) people do not make the best leaders. In those times we are perhaps better served by “abnormal” leaders, those with a history of mental illness.

Because of proximity bias (and other biases), we are not in a good place to judge the mental capacity of recent world leaders, whose lives happen to be best documented. We can however reasonably study the lives and times of some of the past leaders, from available historical and medical records. Subjects of this study include: General Sherman, Abraham Lincoln, Mahatma Gandhi, Winston Churchill, Adolf Hitler, and Robert Kennedy, among others.

Churchill, for example, could see the evil of Nazi Germany, precisely because of his depression and bipolar disease, whereas his more “normal” colleagues failed to grasp the extent of it, and so he was the best person to lead wartime Britain.

The Coen Brothers: This Book Really Ties the Films Together, Adam Nayman.

Photographs and art are great. Writing is annoyingly art-critic like and pompous. Perhaps that is intentional, considering this is essentially a coffee-table book, and thus a conversation starter for Coen Brothers movie enthusiasts.

It did help start a conversation with another Coen Brothers movie enthusiast, and it does manage to tie the movies together, so the book has served its stated purpose.

I have since returned it to the library, so no further anecdata collection is possible.

America: The Farewell Tour, Chris Hedges.

Another book in the “America’s doom and gloom” genre: like the Thomas Frank book (even color schemes of both book covers are eerily similar), only darker and depressing. The most disturbing parts in this book are about porn industry, especially abuses actors endure behind the scenes, aspiring ones and successful alike. It does serve a purpose, so I do not think those could have been removed.

Hedges is a left-winger and a socialist (I personally disagree with much of it), but his reporting and sense of what ails American society is usually on the mark. I have read another one of Chris Hedge’s books, The Death of the Liberal Class, which explained why much of what is marketed as “liberalism” in America is really fraudulent counterfeits, and what happened to the real liberals of the past. I look forward to reading more of his writing, even if I happen to disagree with him.

March 11, 2019 12:00 AM

January 27, 2019

Steve Killen (nevetski)

A shade of red

Flung to the stars, we rose and fell–fell from the sky, fell from grace, fell out of our minds, fell into chaos. The Spire stands still in Redgar Bay, its gleaming bulk impenetrable to us even now, a dozen dozen years after its doom. Lights wink on and off, seemingly at random. The waters around it are still fell, though no longer as deadly as they used to be. Our children grow into adults, not knowing the home from which we sprang, while the wind rustles the red grass on the plain. We know it not ourselves.

But life goes on. We grow still the seeds from the ship that brought us here, those which the Settlers brought down before the Fall. We raise the calves, mis-shapen though they be, of the beasts that the Settlers grew from their laboratories. Darkened now, useless as all the other tools they brought with them, hoping to forge a new life. We scratch out our life from the soil with forged clay; metal is all but useless to work with. We build with wood, wood that must be drained of its blood and cured like meat. We clothe ourselves with grass and the skins of the animals of this world, tough and brittle and unpliant, but clothing nonetheless.

Eyes watch over us, three of them. Amidst the unchanging stars, the moons of this world have taken on a mythic quality. The Witch watches over us in winter, glittering green; the Thief in summer, his golden eye winking open and shut. But the Dragon is unblinking in its gaze, tenday after tenday, season after season, year after year: a baleful red gleaming that rises with the setting sun and sees into the hearts of us, alien interlopers on this world that we are not of.

And we are not alone. In the night we hear the terrors of the things that claim our stock, and though we hunt to end their predation, they are uncanny in their skill. Often the herds-yeoman is slaughtered along with their herd, harvested with the rest, but those who live have not much to give account of. Nothing we have thrown at them seems to effect a change, though they will not attack us within sight of the City. That may be the only reason we yet live.

So our City, Vindulan, is our beacon of hope, that we will carry on and not flicker out and crumble like ash into the dull red soil of Maroon.

by Steve Killen at January 27, 2019 12:45 AM

January 07, 2019

Steve Killen (nevetski)

On Women

First, the news. We have shuffled along to Catonsville! I am returned to work, as a preschool language teacher at a Reggio Emilia-inspired facility, where my son has been graciously afforded an opportunity to thrive and grow alongside me. We live right on top of the Catonsville Junction, with all the Scittino’s pizza, Caffe Di Roma goodness, and Trolley Trail #8 hiking within walking distance that entails. It’s also nice to be a 10-minute drive to Seoul Spa, the only jjimjilbang in the region. (I have so much to say about Korean saunas. Another time.)

What I wanted to write about here, though, is women. Not specific women–I mean the idea of women as being included, as a fundamental part of our perspective. The woman who married me sat me down and shared with me a (nominally) comedy segment called Nanette, performed by an Australian woman, Hannah Gadsby. It’s apparently much talked-about, but I missed all that in the vortex of being back at work full-time (and raising a son, and being out of the country, and on and on and on). And before I write more, I exhort you to sit down with nothing else to do, and watch it.

All of it. Don’t stop watching when it gets uncomfortable. Keep going.

OK, you still with me? Good.

So, Nanette blew the gates wide open for me. I have been writing, working, and living as a feminist, but Hannah’s story sunk home for me a lesson that I should have learned growing up as a young man, raised largely by my mother. My mother, who had to fight her direct supervisor tooth and nail (successfully!) for every promotion and raise at work. My mother, who stood up against (and beat!) the school board who wanted to suspend my sister for violating their arbitrary no-shorts policy for girls.

And the lesson is this: we need to become aware of marginalized people’s perspectives, and educate ourselves on their realities. We need to be conscious of the validity of their perspectives–and actively demonstrate that validity–not merely in our spoken words, but in our internal speech and the actions that spring from that. We must take up arms against an active oppression, one that has been going on for centuries, against humanity.

But I didn’t learn it. I went to high school and college, absorbing patriarchal thought patterns as you do when you are part of the highest social caste in Western culture–the straight, white man. Rape jokes were funny. Prison rape jokes were just the bomb. “Gay” was a useful epithet for describing disdain. Even as I dislodged my mind from this intellectual morass in undergraduate, even as I began to practice a basic sort of feminism thanks to my fantastically patient professors and my vastly-improved peer group, I persisted in thinking of women as objects (to be worshiped and praised and sought after, but objects nevertheless). I thought trans individuals were arrogant for rejecting the pronouns that perpetuate our cultural ignorance of the vast diversity of gender that exists. And even as I grew into a teacher, as I began to inject into my curriculum that awareness of the social Other, I laid down and rested on my laurels. I wrote from the lens of that boy growing up sheltered in a cul-de-sac, reading fantasy books by old white men.

No more. I’m not tearing up what I have written. But it requires surgery, and long rounds of physical therapy. It’s pretty simple, really. All people are equal, fiercely and unapologetically–and I commit to my writing as an act of showcasing the ways that people–and specifically women–are alive, and intrinsically worthy of those lives without any reference to another. I have so much to learn.

by Steve Killen at January 07, 2019 05:05 AM

January 06, 2019

Sajith Sasidharan (sajith)

The Year of Reading Slightly More Judiciously

2018 has been pretty good as far as the amount of reading I managed to do, considering all the distractions towards which I routinely propel.

I read fewer books than those I managed to read in 2017, but that is OK. I am happy with the quality of my reading. I read fewer books on American politics, but more importantly, I read some very interesting books about cats and apes and butterflies and human behavior and other content of a more joyful nature.

I have also found some new favorite authors: Robert D. Putnam, Robert

  1. Sapolsky, Carl Safina, Jonathan Haidt, Anurag Agrawal, among

others. These wonderful people write about natural and social sciences in an accessible manner, and they are experts who have worked long and hard years in their respective fields of work, often advancing the said fields.

In the beginning of the last year, I thought I should write regularly about the books I read, as notes to myself, if nothing else, but never got around to actually doing that. Perhaps I should do that in the future, if nothing else, as a favor to my own future self.

Below follows the list of books I read last year, with my favorites in bold. Unlike last year, I am skipping the commentary: that will just take me a rather long time, which will delay publishing this post. Besides, I am afraid that it does not get me much.


  1. Thanks, Obama: My Hopey, Changey White House Years by David Litt.

  2. Bernie Sanders Guide to Political Revolution by Bernie Sanders.

  3. When Breath Becomes Air by Paul Kalanithi.

  4. Bowling Alone: The Collapse and Revival of American Community by Robert D. Putnam.

  5. Smarter Faster Better: The Secrets of Being Productive in Life and Business, by Charles Duhigg.


  1. The Quitter by Harvey Pekar.

  2. National Geographic Photography Field Guide: People & Portraits by Robert Caputo.

  3. National Geographic Photography Field Guide: Landscapes by Robert Caputo.

  4. Win Bigly: Persuasion in a World Where Facts Don’t Matter by Scott Adams.

  5. A Colony in a Nation by Chris Hayes.

  6. Exit Wounds by Rutu Modan.

  7. White Trash: The 400-Year Untold History of Class in America by Nancy Isenberg.


  1. The Death of Stalin by Fabien Nury.

  2. Street Art: Famous Artists Talk About Their Vision by Alessandra Mattanza.

  3. The Upside of Irrationality: The Unexpected Benefits of Defying Logic at Work and at Home by Dan Ariely.

  4. Make It Stick: The Science of Successful Learning by Peter

    1. Brown.


  1. The Politically Incorrect Guide to Islam, by Robert Spencer.

  2. Killing and Dying: Stories by Adrian Tomine.

  3. The Complete Infidel’s Guide to the Koran by Robert Spencer.

  4. Summer Blonde by Adrian Tomine.

  5. The Arctic Marauder, by Jacques Tardi.

  6. Bloody Streets of Paris, by Léo Malet.

  7. The Inner Life of Cats: The Science and Secrets of Our Mysterious Feline Companions by Thomas McNamee.

  8. Milk and Honey by Rupi Kaur.


  1. Behave: The Biology of Humans at Our Best and Worst by Robert M. Sapolsky.

  2. Janesville: An American Story by Amy Goldstein.

  3. The Righteous Mind: Why Good People Are Divided by Politics and Religion, by Jonathan Haidt.

  4. Sleepwalk and Other Stories by Adrian Tomine.

  5. Shortcomings by Adrian Tomine.

  6. Big Questions by Anders Nilsen.

  7. A Primate’s Memoir: A Neuroscientist’s Unconventional Life Among the Baboons, by Robert M. Sapolsky.

  8. You Get So Alone at Times That it Just Makes Sense by Charles Bukowski.


  1. Strays: A Lost Cat, a Homeless Man, and Their Journey Across America by Britt Collins.

  2. 12 Rules for Life: An Antidote to Chaos by Jordan

    1. Peterson.
  3. How to Think Like a Cat by Stéphane Garnier.

  4. Secret Empires: How the American Political Class Hides Corruption and Enriches Family and Friends, by Peter Schweizer.

  5. You Are Not a Gadget Jaron Lanier.


  1. Canada by Mike Myers.

  2. The Happiness Hypothesis: Finding Modern Truth in Ancient Wisdom by Jonathan Haidt.

  3. Tell Me about Yourself: Six Steps for Accurate and Artful Self-Definition by Holley M. Murchison.

  4. Ten Arguments For Deleting Your Social Media Accounts Right Now by Jaron Lanier.

  5. Republican Like Me: A Lifelong Democrat’s Journey Across the Aisle by Ken Stern.

  6. Sapiens: A Brief History of Humankind by Yuval Noah Harari.


  1. Et Tu, Brute?: The Deaths of the Roman Emperors by Jason Novak.

  2. How to Be a Cat by Lisa Swerling.

  3. The Grumpy Guide to Life: Observations from Grumpy Cat by by Grumpy Cat.

  4. How Luck Happens: Using the Science of Luck to Transform Work, Love, and Life by Janice Kaplan.

  5. Beyond Words: What Animals Think and Feel by Carl Safina.

  6. Just So Happens by Fumio Obata.

  7. Undoctored: Why Health Care Has Failed You and How You Can Become Smarter Than Your Doctor by William Davis.

  8. Live Work Work Work Die: A Journey into the Savage Heart of Silicon Valley by Corey Pein.


  1. Side Hustle: From Idea to Income in 27 Days, Chris Guillebeau.

  2. Such a Lovely Little War: Saigon 1961-63, Marcelino Truong.

  3. The Trainable Cat: A Practical Guide to Making Life Happier for You and Your Cat, by John Bradshaw.

  4. Cat Daddy: What the World’s Most Incorrigible Cat Taught Me About Life, Love, and Coming Clean, by Jackson Galaxy.

  5. Our Towns: A 100,000-Mile Journey Into the Heart of America, by James M. Fallows.

  6. The Danger Within Us: America’s Untested, Unregulated Medical Device Industry and One Man’s Battle to Survive It, by Jeanne Lenzer.


  1. The Innovator’s Dilemma: The Revolutionary Book that Will Change the Way You Do Business, by Clayton M. Christensen.

  2. The World Without Us, by Alan Weisman.

  3. The Coddling of the American Mind: How Good Intentions and Bad Ideas Are Setting Up a Generation for Failure, by Greg Lukianoff and Jonathan Haidt.

  4. Why Zebras Don’t Get Ulcers, by Robert M. Sapolsky.


  1. Lab Girl, by Hope Jahren.

  2. Please Stop Helping Us: How Liberals Make It Harder for Blacks to Succeed, by Jason L. Riley.

  3. Peak: Secrets from the New Science of Expertise, by K. Anders Ericsson.


  1. വിന്‍ഡോ സീറ്റ് (Window Seat), by Haris Nenmeni.

  2. Monarchs and Milkweed: A Migrating Butterfly, a Poisonous Plant, and Their Remarkable Story of Coevolution, by Anurag Agrawal.

In November and December, we took a few weeks off and traveled a bit, which slowed down my reading. I watched airplane movies of questionable quality in the airplane while in a long haul airplane daze. My best guess is that no one, including myself, wants to hear anything about that.

January 06, 2019 12:00 AM

December 29, 2018

Clinton Ebadi (clinton)

Comments Are Open Again

To all zero of my readers,

Ages ago, I disabled comments on my journal because I posted approximately never and the few comments I did get were always spam so it was just some extra noise for me to deal with. You could always comment if you logged in using openid… maybe a good filter once upon a time, but it feels like that never really caught on and fizzled out over the years (maybe there will be a resurgence now that ActivityPub is catching on).

Since I am posting regularly again (albeit as mindless sharing of links I find interesting), I figured I’d give opening comments in general another shot. You still have to provide your name and email address, and the first comment is always moderated as a trivial spam filter. After I’ve approved your email address, you can post away all you’d like. I am a bit wary of enabling proprietary SaaS like akismet, so that’s not enabled yet… hopefully deleting spam from the moderation queue doesn’t become a huge pain.

I guess that’s that.

by clinton at December 29, 2018 10:44 PM

December 27, 2018

Clinton Ebadi (clinton)

Hello IPv6 World

Thanks to moving to a provider that supports it, HCoop now has IPv6 support. After a bit of work on domtool, all member domains (including my journal here!) now have IPv6 enabled automatically.

We’re not doing anything too fancy (everyone shares one address for now, unfortunately our upstream provider has a weird implementation and we only get 16 IPv6 addresses per server right now), but it feels pretty cool to see the "6" in my menu bar from IPvQ.

We also finally implemented PHP 7.2 support, just in the nick of time.

by clinton at December 27, 2018 10:08 PM

November 13, 2018

Clinton Ebadi (clinton)

New Server Setup Checklist

2018 update.

  • Check if IP is in any spam blacklists from previous users
  • Verify the entire block hasn’t been blacklisted in any major countries by evil government censorship agencies

by clinton at November 13, 2018 04:00 AM

October 26, 2018

Clinton Ebadi (clinton)

An Experiment

To all zero of my readers,

Actually writing things seems to be something I can’t muster up the will to do.

So I hacked up an rss plugin for wordpress last year to repost excepts from my tt-rss shared feed, but have left the posts it generates private. Since it’s OK if not ideal, I’m just gonna set the plugin to post publicly for now to see if it works out, and maybe as motivation to hurry up and finish tweaking the format, or writing a fresh plugin from scratch that only does what I need.

For now it will post every time I update my shared feed from tt-rss; I am leaning toward modifying it so that it collects all posts and makes a single daily entry, but I’ll see how this works first.

by clinton at October 26, 2018 11:13 PM

March 28, 2018

Sajith Sasidharan (sajith)

Up in Minnesota

We went up to Minnesota last year in July, and had a fun time. Other than catching connecting flights at MSP, this was our first time in the state. We headed up to the northeastern parts, all the way up to the parts that abuts with Canada.

We drove up there via Madison, Wisconsin, stayed the night there, ate, drank, and generally were very merry. Met two friends for breakfast at Mickies Dairy Bar, an old Madison establishment that turned out to be Quite Alright.

As drove through Wisconsin countryside, a mama bear and her two cubs crossed our way. Further up, we saw bald eagle feasting on carrion, roadkill perhaps, by the roadside. Since this was July 4th weekend, I suppose we could consider the bald eagle sighting a Quite Meaningful Event.

At Grand Marais, Minnesota, we ate breakfast at the Naniboujou Club Lodge, a place I stumbled upon when scrolling through Google Maps. We liked the place so much that we went back there to eat dinner.

Naniboujou Lodge.Naniboujou Lodge.
Naniboujou Lodge’s dining room.Naniboujou Lodge’s dining room.

The last time we came by Lake Superior was the year before, when we visited the Upper Peninsula of Michigan. We gawked a lot at Lake Superior, which we consider the Truly Superior Lake of All Great Lakes: this is the largest, deepest, clearest, bluest, coldest, and greatest great lake of them all, and it is a marvelous sight to behold.

Lake Superior.Lake Superior.
Lake Superior.Lake Superior.

We hiked a bit in some of the state parks along North Shore Drive, and visited a few waterfalls. One of the waterfalls – The High Fall in Grand Portage State Park – happened to be sharing its river (Pigeon River) with Canada, so I suppose we “saw” Canada too, for the second time. Based on what we’ve seen Canada consists of mostly trees and a river.

(The other time we’ve seen Canada was from across another waterfall. Based on what we have seen then, Canada consists of mostly hotels and other establishments serving tourists.)

Devil’s Kettle waterfall, Judge CR Magney State Park.Devil’s Kettle waterfall, Judge CR Magney State Park.
Devil’s Kettle waterfall, Judge CR Magney State Park.Devil’s Kettle waterfall, Judge CR Magney State Park.
Bunchberries in forest floor.Bunchberries in forest floor.
High Falls, Grand Portage State Park.High Falls, Grand Portage State Park.
Rainbow over Lake Superior.Rainbow over Lake Superior.

As we were admiring Lake Superior again, late that rainy day evening, a rainbow was presented to us. We stayed the night in Grand Portage Lodge and Casino, which provided decent accommodation. Would have loved to check out the casino too, but we were too tired for that after a day of wandering.

Ever since visiting Copper Harbor, Michigan, the year before, we have been talking about visiting Isle Royale National Park One of These Days. Isle Royale is an island in Lake Superior, and it is the least visited national park in the lower 48 states, and it is part of Michigan, but ferry ride is shorter from Grand Portage, Minnesota than the one from Copper Harbor, Michigan.

Somewhere in that direction lies Isle Royale National Park.Somewhere in that direction lies Isle Royale National Park.

Our drive back home was long, and we chose to drive home late instead of staying the night somewhere along the way. This turned out to be not such a good idea. I was tired, and it was late night, and the road was unfamiliar, and I drove like an idiot, and I put ourselves and others in danger. I took a right turn, and it was too dark to see the road marking, and I drove straight into the other lane, into the oncoming traffic, and there was traffic coming from behind us. Luckily everyone else acted saner than I did, and disaster was averted.

Note to self: (1) Do not drive when tired. (2) Do not drive late at night. Ever.

I also lost a bunch of pictures I took in the beginning because cameras and memory cards are way too mysterious for an idiot like me to handle, but that is okay, because in the end it is the experience that matters, you know?

• • •

The “Naniboujou” Danish Creme

The “Naniboujou” Danish Creme.The “Naniboujou” Danish Creme.

We found a recipe for the Danish creme dessert we had at Naniboujou in the Internet, and successfully recreated it at home with some minor variations.


  • Gelatin, 2 packets.
  • Water, ½ cup.
  • Heavy creme, 2½ cups.
  • Sour creme, 2 cups.
  • Sugar, 1 cup.
  • Vanilla extract, 2 tsp.

Optional ingredients:

  • Some kind of berry or fruit sauce, jam, or jelly.
  • Some berries.
  • Whipped creme.


  1. Sprinkle gelatin over cold water. Let sit.

  2. Warm heavy creme and sugar on stove top, just enough to melt sugar. Add vanilla extract.

  3. Microwave gelatin + water mixture for about 30 seconds, and stir until all gelatin is dissolved.

  4. Add the gelatin + water mixture from step 3, and heavy creme + sugar mixture from step 2, into sour creme. Mix or beat well until there are no clumps. Pour into 8 or 10 serving cups.

    As an optional step, while pouring the blend into serving cups, layer with berry/fruit sauce, or jam or jelly diluted with a little water.

  5. Chill in refrigerator for about 4 hours until set.

  6. Before serving, top with whipped creme and some fresh berries.

And that is how we occasionally re-live our Naniboujou Lodge experience.

March 28, 2018 12:00 AM

February 17, 2018

Sajith Sasidharan (sajith)


A few years back, back when we were living in Fort Wayne, Indiana, our friend Bill made a road trip in his old pickup truck, from Indiana to west coast and back. Bill’s two sons lived in west coast cities (Seattle and Los Angeles) at the time. Bill made it to Seattle, then started missing his own home and hearth, decided to skip Los Angeles, and turned around.

Once back in town, he stopped by to see me before getting home. He looked tired: clearly driving across America is not a short trip by any measure. I made lunch for him.

Bill just wanted to get home and lie down on his own bed. He didn’t really care for lunch, but that didn’t matter. I enjoy force-feeding friends, especially when they come back from a cross-country trip.

I had wanted to go with Bill, but I had also weaseled out of this trip. I regretted not going, not least because Bill kept sending me pictures from his pit-stops and day hikes and camp sites and stories of Patel-run motels: South Dakota! Wyoming! Montana! Washington! Oregon! California! New Mexico! Texas! Places I have never seen, and unlikely to ever see unless I make an effort to go see them.

I can be a homebody, but I also get the itch to go out and about around the country. Two years later, when Bill decided to go on another trip, probably relenting to my strategically timed prodding, I did not think twice about going with him. I could not have.

On a fine May morning, we loaded up our things into his pickup truck – a newer one this time, because the older one had broken down during the previous trip – and started driving west to New Mexico. Preferring the back roads, we stayed off highways as much as we could, ate at local eateries as much as we could, and saw quite a bit of American countryside.

I remember this trip fondly.

• • •

Ye good olde midwestern landscape.

Wednesday, May 4, 2016: from Fort Wayne, IN to Rushville, IL.

Familiar looking farm country and familiar sorry-looking rundown towns of the old midwest. Bill chuckled at the giant US flag fluttering in front of a Taco Bell, and the very red Coca-Cola delivery truck entering its parking lot. We have barely started, and we have already encountered peak America.

Stopped for lunch at a Fairbury, Illinois local establishment (McDonald’s Family Restaurant, not affiliated with the fast food giant). Drove further, found a motel in Rushville, Illinois (Green Gables, good reviews on travel websites), and stopped for the day. Ate dinner at a gas station’s convenience store.

Green Gables’ garden gnome.

• • •

Thursday, May 5, 2016: from Rushville, IL, to Iola, KS, via MO.

We entered and left Missouri on this day. Breakfast at Renee’s Place, Mt. Sterling, IL. Lunch at Jack and Virginia’s Restaurant, Hermitage, MO. I did most of the driving. I had never imagined I would ever be driving a pickup truck across rural Missouri, but here I was, having the time of my life.

Look ma, I drove a pickup truck across Missouri!

We saw some small towns, but mostly we saw farmland. Quincy, Palmyra, Monroe City, Shelbina, and Preston in Missouri. Weablou, El Dorado Springs, Nevada, Bronson, Moran, and Iola in Kansas. Stopped in Iola to look for a motel room.

The first motel we tried turned out to be a little weird. It was within town limits, and it seemed like some kind of renovation work was going on. No one at the front desk, and it looked like no one was staying there either, because there were no vehicles in the parking lot. A note at the front desk asked to pick up the phone and call a number, so I did that, and a woman answered at the other end. She asked us to wait for fifteen minutes.

We waited for about ten minutes, was spooked, left, and found an America’s Best Value Inn which looked more promising.

There is a paved trail near the motel. Took an hour-long walk. Spring is all around: bird calls, bunnies, flowers, flower fragrances, that rich green springtime vegetation. Nice. Kansas is nice.

• • •

Kansan cattle.

Friday, May 6, 2016: from Iola, KS, to Dayton, NM, via the Oklahoma panhandle.

Breakfast at an establishment named the Greenery, conveniently located right next to our motel. Kansans are serious about their meat lovers’ breakfast: a considerable helping of bacon, sausage links, sausage patty, ham, and eggs was served, for a very reasonable $10.71.

I have decided that I would move to Kansas if the opportunity ever arises.

Charting the route across Kansas.

US Route 54, US 160, K-80, K-51, and US 56 today. Eureka, Rosalia, El Dorado, Augusta, Wichita, Kingman, Meade, Hugoton, Rolla, Elkhart of Kansas; Keys and Boise City of Oklahoma; then Dayton, New Mexico. Driving through Wichita was a mistake, considering the city traffic. Soon we left Wichita behind, and entered the vast plains.

As we were going west, landscape has been becaming progressively flatter. Illinois and Missouri were flatter than Indiana. Kansas and Oklahoma panhandle has the flattest landscape I have ever seen. Kansas had good roads. Oklahoma had an awful stretch of roads.

An avian cloud formation and more Kansan cattle.
A farm co-op.

I saw my first tumbleweed in the Oklahoma. I think I saw my first dead armadillo in Missouri. There was plenty more of both to come.

The radio announcer was quite amused by the fact that Kansas has more cattle than humans. I thought this was an understatement: there indeed are a lot of cattle in Kansas. We saw more cattle than humans in the Kansan countryside.

(Turned out that nine US states has more cattle than humans – Kansas ranks sixth in this list.)

Lunch was at gas station café in Bucklin, KS. Dinner was a couple of boiled eggs from a convenience store in Dayton. That meat lovers’ breakfast indeed went a long way.

Dayton has some connections with dinosaurs.

• • •

Saturday, May 7, 2016: from Dayton, NM to Raton, NM.

Ate a leisurely breakfast at Rabbit Ear Cafe, drove for two hours, and then stopped at Sugarite Canyon State Park. The Canyon is tucked between flat-topped mesas at New Mexico’s northern border with Colorado, at the border of Great Plains and Rocky Mountains. Sugarite used to be a busy coal mine town once upon a time, and some ruins of the old town are still around.

We paid for a campsite, and went exploring a couple of trails. A short drive took us about a mile into Colorado.

Hiking in Sugarite Canyon.
Climbing up Sugar Creek Mesa.

Climbed up Sugar Creek Mesa in the morning, and took in a very lovely view of the surroundings. Found what looked like bear footprints on the trail: a big set of footprints, closely followed by a small set. Perhaps a black bear mother and her cub?

Those are some funny-looking footprints.
Up the mesa.

Those footprints were a cause for concern, but appeal of the hilltop was stronger. I loved it so much that I went back there again in the evening to spend more time there. Climbed down reluctantly by sunset.

Bill was worried by the time I got back. It was still bright on the hilltop, so it had not occurred to me that it was getting dark down in the valley.

This fallen tree too has some dinosaur connection.
Looking east at sundown from the mesa.
The flat hilltop in question, all mine this fine evening.

• • •

Sunday, May 8, 2016: from Sugar Canyon, NM to Farmington, NM.

Breakfast at El Matador Café, Raton. There’s a deer in the parking lot across the street. More deer, wild turkeys, prairie dogs as we drove further west.

Names of the places are not familiarly midwestern anymore. Ciamron, Ute Park, Eagle Nest, Angel Fire, Ranchos de Taos, Rio Grande Gorge Bridge (claim to fame: second tallest bridge in the US), Santa Fe National Forest, Carson National Forest, Chama, Dulce, Bloomfield Jicarilla Apache Nation Reservation, and Bloomfield.

Rio Grande Gorge Bridge, NM.
A quirky drive through.
Yonder are the mountains.

All kinds of weather and landscape today: sun, flat lands, rain, pine mountains, snow, and then flat lands and sun again.

By evening we found a room in an Econolodge in Farmington, NM. Farmington appeared prosperous compared to the rest of New Mexico we had seen this far.

A river (Animas) flows right next to our hotel. A boardwalk has been built by the riverside. Walked along the river, ate dinner, and slept.

Yonder are the rain clouds.
Into the storm.
Soon we were in snowy mountain roads.

• • •

Monday, May 9, 2016: from Farmington, NM, to Santa Rosa, NM.

Arizona is an hour’s drive west. Bill does not want to go any further west.

Mesa Verde National Park in Colorado is about an hour’s drive north. Bill does not want to go north either.

Bill is obsessed with New Mexico.

We ate breakfast, and drove south on US Route 550 towards Cuba, NM. Made a detour into a small country road, and then a rough ride on very unpaved dirt road and dry river bed, towards Chaco Culture National Historical Park. Chaco Canyon contains remains of a 12th century pueblo, managed by National Parks Service.

Chaco ruins.
There’s a Chaco-era sundial atop this mesa.
Dirt road out of Chaco canyon.

We did not linger in Chaco Canyon. Got back on Route 550: Cuba, Bernalillo, some Albuquerque suburbs, interstate 25 towards Santa Fe, Gloneria, Rowe, Pajarita, San Jose; country road 3, then 41 E, through small farming communities: Ribera, Pueblo, Sena, Villanueva, Aurora.

My attempts to convince Bill that we should go further south and see the White Sands National Monument failed. Another NPS site was beyond what he could stand: Bill wasn’t going to stand any more of “idiots and their RVs”.

We stopped in Villanueva State Park, considered camping there, but did not. Took Interstate 40 (old route 66) towards Santa Rosa, and checked into a Super 8. Ate a dinner at the Sun and Sand restaurant next door.

(Super 8 has since became the theme of a running joke between us. This Super 8 room turned out to be the epitome of luxury in our trip. We liked our room so much that we would continue to seek out Super 8 motels whenever we are on the road, and found them to be consistently reliable.)

Saw quite a bit of New Mexico landscape today: ever-changing colors and shapes of mountains, San Pedro peaks, Santa Fe mountains, vast plains. Strange how tree-laden eastern mountains look tame and boring in comparison with the dramatically barren western mountains.

• • •

Tuesday, May 10, 2016: from Santa Rosa, NM, to Palo Duro Canyon, TX.

We’re in Texas panhandle. Caught sight of the famous Cadillac Ranch along the interstate, but, I bet you know this by now: we are too cool to gawk at tourist traps.

Bill has some history with Amarillo: he came here first as a young air force trainee back in the days. He was in Palo Duro Canyon (also known as “the Grand Canyon of Texas”) in his previous road trip too. The place was packed then, because it happened to be a long weekend.

This being a weekday, we managed to reserve a camping spot. We hiked a little bit. The landmark Lighthouse Trail is about five miles round-trip. We did not go that far. We are too cool for long hikes too.

There were some wild turkeys around. One of them came close to examine our site, and looked at us pleadingly. It looked like she was used to humans feeding her.

We met two girls. They go to college in North Carolina, and they were driving across the country, to California, to spend the summer with one of their families. They appeared happy and cheerful and excited in a way young people driving across the country on their summer vacation would appear.

Palo Duro.
Palo Duro.
Palo Duro.
Palo Duro.
Palo Duro.
Palo Duro.

• • •

Wednesday, May 11, 2016: from Palo Duro Canyon, TX, to Fayetteville, AR.

Left Palo Duro in the morning. Ate breakfast at a Waffle House in Amarillo. Crosssed Texas panhandle, Oklahoma, and reached Fayetteville, Arkansas. Heavy traffic in the interstate. We should have reconsidered getting on I-40 again.

Gray County, Texas.

The landscape has been progressively turning to deeper shades of spring green again as we drive east. An explosion of wildflowers along the road in Oklahoma; Arkansas for some reason has decided to spend cash money to mow those damn wildflowers down.

At Fayetteville, we specifically looked for a Super 8, and found it. We indeed have become fans of the Super 8 motel chain. Fayetteville has a college town vibe, thanks to University of Arkansas, but not many students around at this time of the year.

• • •

Thursday, May 12, 2016: from Fayetteville, AR, to Peoria/Pekin, IL.

Slow-moving traffic on 49 North, due to an accident near Springdale. Tired of sitting in the traffic, gave up on eating local for breakfast and ate at a McDonalds. This was my first time in a McDonalds in a very long time – perhaps the first time in the US. It was a revelation of sorts that the McMuffin actually tasted quite nice.

Description on the paddle: “Largest shit-stirrer in Chariton County.”

Springdale, Bentonville (known for Walmart and Tyson Foods) in Arkansas today; and Joplin, Carthage, Jasper, Nevada, Sedalia, Marshal, Moberli, Monroe City, Palmyra in Missouri; and then Quincy, Mt Sterling, Beardstown, Astoria, and then Peoria in Illinois. Lunch at Sherri’s Home Cookin, Brunswik, MO.

In Missouri, I spotted a strange-looking thing flying low across the horizon. Bill, being the old US Air Force hand he is, correctly recognized the flying thing as a B-2 Spirit stealth bomber.

I later looked up the B-2: 19 of the 20 active B-20s in service are based in Whiteman Air Force Base, Missouri. Each of them costs a few hundred million dollars to a little more than two billion dollars, depending on how you calculate.

America is dying small towns, and two billion dollars a pop stealth bombers.

Schuyler County, Illinois.

540 miles of driving between the two of us this day. I suggested stopping at the old Green Gables Inn again, but Bill had grown fond of Super 8, even though it was going to be past our usual stopping time by the time we get to the one in Peoria. I could not object, because I too had grown quite fond of Super 8! Ate dinner at Avanti’s Italian Restaurant that happened to be right next to the motel.

• • •

Friday, May 13, 2016: from Peoria, IL, to home.

Watseka, Illinois.
Watseka, Illinois.

Fort Wayne was six hours from Peoria. We drove home, with a breakfast stop and a refueling stop.

A very old car pulled into the parking lot as we stepped out of the breakfast place. Old cars would be “classic cars” in some jurisdictions, but this was just an old car. Its owners, a very senior couple, said they were on their way to meet their family in Georgia.

Bill and I exchanged looks. To us it looked like neither the car nor its owners were in the shape to make such a lengthy road trip. We wished them well, drove on, came across the same Taco Bell and its giant American flag again, and chuckled again.

We were home that afternoon.

February 17, 2018 12:00 AM

January 07, 2018

Sajith Sasidharan (sajith)

The Year of Reading Injudiciously

In January 2017, I found myself with a job, and consequently, a commute. I drive to and back from work, and spend about an hour on the road.

For the first half of the year, every other week, I also drove four hours or so, one way, because A and I lived in two different cities, in two different states.

An unexpected side-effect of my newfound employment and associated commute is that I have “read” far more books than I otherwise would have. In reality the books were read to me, but for statistical bragging purposes, I am sticking with the claim. This is a form of cheating, but since I am the cheater and the cheated, no harm is done to anyone else.

I have long given up on listening to propaganda news and the such on the radio, so I resorted to audiobooks in order to ease some of the commute pain. By the end of the year, I seem to have “read” 108 books: 53 of them are audiobooks.

I have also embraced ebooks, reluctantly at first, and then with abandon.

Previously I had adopted an anti-DRM stance, and had rejected DRM-encumbred ebooks. I have since become a sell-out, and I have learned to rationalize my acceptance of what some good people call digital handcuffs: the public library offers them whether I check them out or not, and some of my tax dollars pay for that stuff, so might as well get my money’s worth of them digital handcuffs, right?

To be clear, I still do have objections to DRM and the megacorp’s hegemony over the publishing industry (and the market as a whole), but I am just one tiny inconsequential person and it appears that my feeble resistance is laughably futile.

There’s another thing about my reading in 2017. Like many other people who were faced with a sudden rude awakening, I have also been reading stuff I normally would not have read: American politics.

For the first six years of living in the US, and even prior to that, I have found politics here not especially interesting. I had never heard a speech given by Barack Obama until the “we killed Osama bin Laden” speech, even when the entire world was going crazy over Obama in 2008, for example. I chose to be blissfully ignorant.

That changed in November 2016, for the obvious reasons, and I have been trying to figure out what is really going on with America since. I may have developed an unhealthy obsession with the topic, and have read way more than I should have; some of that was very good and very insightful, some of that happened to be trash that never should have been published in the first place.

Presenting my read list in some sort of thematic order would have made sense, but I read in a haphazard manner: sometimes depending on what is available, sometimes based on a hunch, and sometimes based on what people are talking about, sometimes for no good reason at all.

If you, dear reader, care for recommendations of a fellow injudicious reader, my favorite titles are in bold.

(On the other hand, if you fancy yourself to be a prudent reader, why are you even reading this?)


1. Snowden, Ted Rall (2015, paperback).

Among Americans, Edward Snowden provokes extreme reactions: he’s either a traitor, or a hero. For Rall, Snowden is a hero, and he makes no attempt to hide his admiration for the protagonist of his story. Of the considerable number of people that acquire security clearance, how and why did Snowden become the whistle-blower? This is an exploration in graphic novel format.

2. Museum of Mistakes: The Fart Party Collection, Julia Wertz (2014, paperback).

Julia Wertz ran a popular web comic strip, which heralded stories from her own life, and this book is a collection of early ones. I had cut down on webcomic consumption some years back, so I wasn’t familiar with her work. I am glad that I found the book: it is really funny, and refreshingly honest.

3, 4. Boxers (Boxers & Saints, #1), Saints (Boxers & Saints, #2), Gene Luen Yang (2013, paperback).

Two-volume graphic novel about the Boxer Rebellion. I remember embarrassingly little of it, except that the art was pretty cool.

5. A User’s Guide to Neglectful Parenting Guy Delisle (2013, paperback). 6. Even More Bad Parenting Advice, Guy Delisle (2014, paperback).

Dad jokes collection that can be actually pretty funny, depending on the kind of sense of humor you posses.

7. Scott Pilgrim, Volume 1: Scott Pilgrim’s Precious Little Life, Bryan Lee O’Malley (2010, paperback).

I had seen the movie and liked it. I am conflicted as to which I liked better: the movie or the graphic novel.

8. Indeh: A Story of the Apache Wars - Ethan Hawke and Greg Ruth (2016, hardcover).

Graphic novel about Apache wars of the 1870s. Illustration stood out, but the script did not: it is confusing and rambling.

9. Couch Tag, Jesse Reklaw (2013, hardcover).

Graphic novel memoir. I liked it at the time of reading, but by the end of the year I remembered nothing of it, so I had to look up to see if I can recall what it was about. What does that tell you?

10. The Road to Little Dribbling: More Notes from a Small Island, Bill Bryson (2016, ebook).

Bill Bryson’s publishers roped him in to write a follow-up to his popular travelog, Notes from a Small Island, twenty years after it was originally published.

11. Wait Wait… Don’t Tell Me! Famous People Who Returned Our Calls: Celebrity Highlights from the Oddly Informative News Quiz, Peter Sagal (2009, audiobook).

“Wait Wait…” is my favorite show on radio after “Car Talk”, but like I said, I do not really listen to radio anymore. This audiobook suited suited a 4-hour drive once, and that is all I remember about it now.

12. Alias the Cat!, Kim Deitch (2007, hardcover)

Trippy and rambling, but I guess that is kind of the point. I did not enjoy this graphic novel on first reading, but it actually is a lot of fun. I should perhaps read it again.

13. What Do You Care What Other People Think?, Richard Feynman (2005, audiobook).

Feynman’s autobiographical notes. Mostly about losing a loved one, work at Los Alamos National Laboratory, and investigation into space shuttle Challenger’s explosion.

14. Clinton Cash: The Untold Story of How and Why Foreign Governments and Businesses Helped Make Bill and Hillary Rich, Peter Schweizer (2015, ebook).

This book investigates connections between the Clinton Foundation’s benefactors, and the Clintons’ use of their influence to help those very benefactors. Schweizer does not offer conclusive evidence for outright corruption, but there are fourteen chapters of dealings that look bad, and it is rather extensively cited.

I have been looking for point-by-point rebuttals on the allegations, I have not found anything of such nature, yet. There used to be a “brifings” section in Hillary Clinton’s website that purportedly did this, but that section no longer exists.

The book’s production was supported by Government Accountability Institute (which in turn was bankrolled by some controversial men: Steve Bannon, Robert Mercer, the Koch brothers); it was later made into a graphic novel and a documentary. All this, and many other confounding factors, might have had an effect on the 2016 presidential election outcome.

15. In Defense of Food: An Eater’s Manifesto, Michael Pollan (2008, audiobook).

Michael Pollan’s well-known aphorism (“Eat food. Not too much. Mostly Plants.”) unfortunately became way too popular for its own good, as it also acts as a kind of horse-blinkers. Pollan recognizes that not all plant-based food could be “healthy”, gives a hat-tip Gary Taubes for Good Calories, Bad Calories, and then goes on to stress the importance of a “balanced” diet anyway.

16. The Life-Changing Magic of Tidying Up: The Japanese Art of Decluttering and Organizing, Marie Kondo (2014, audiobook).

If you minimize your possessions to the bare minimum good stuff (the stuff that “sparks joy” within you) by throwing out all the extraneous stuff you do not really need, your life will be awesome. This pitch is repeated ad nauseum; listening to the same thing in someone’s robotic monotone made it worse. They should perhaps have decluttered the damn book?


17. Think Like a Freak, Steven D. Levitt (2014, audiobook)

Content from Freakonomics blog/podcast, third in the series. Contains useful tips on applying the unconventional approach that the authors made popular.

18. No Good Men Among the Living: America, the Taliban, and the War through Afghan Eyes, Anand Gopal (2014, audiobook)

This book covers conflict in Afghanistan, through the eyes of several Afghanis: a Taliban commander, a warlord who sided with the US, and a village housewife.

19. Breasts: A Natural and Unnatural History, Florence Williams (2013, audiobook).

In addition to the useful and necessary nutrition, mother’s milk also carries a hodgepodge of scary synthetic toxins (paint thinners, flame retardants, and the such), because the fatty tissues in breasts easily absorbs contaminants present in the modern environment.

20. Why Nations Fail: The Origins of Power, Prosperity, and Poverty, Daron Acemoğlu and James Robinson (2012, audiobook).

Nations prosper or fail because of the strength or the weakness of institutions they are built on: those with “inclusive” institutions prosper; those with “extractive” social systems ultimately fail, regardless of other factors. The authors offer a tour of the world history to support their simple and fascinating thesis.


21. Complications: A Surgeon’s Notes on an Imperfect Science, Atul Gawande (2003, audiobook).

This is Dr. Gawande’s first published book – although he’s one of my favorite authors, I’m afraid that his newness as a writer showed a bit.

22. What the Most Successful People Do Before Breakfast: And Two Other Short Guides to Achieving More at Work and at Home, Laura Vanderkam (2013, audiobook).

Successful people wake up early and give themselves some time to do things that enrich their life. I do not eat breakfast on most days, so I am afraid that I cannot join the ranks of successful people. I usually wake up early though, so maybe I have my chances?

23. The Best American Travel Writing 2016, Bill Bryson and Jason Wilson (2016, ebook).

Collection of travel essays by various authors. It has some very good pieces, but I was turned off towards the book by the “Keralan” chapter where the writer describes just the things that she experienced in the tour package and nothing else. Nothing wrong with doing those things or writing about it as such, just do not present that as the “best” travel writing.

24. Fooled by Randomness: The Hidden Role of Chance in Life and in the Markets, Nassim Nicholas Taleb (2001, audiobook).

Humans often attempt to attribute random events to non-random causes, and we are pretty bad in figuring out the actual causes of most events. Taleb is not like the rest of us, because he is a really smart and enlightened man.

25. Are We Smart Enough to Know How Smart Animals Are?, Frans de Waal (2016, audiobook).

You know Betteridges Law of Headlines, and you know the answer to the question posed in the title of this book: no, we are not smart enough to know.

The anthropocentric viewpoint has been a hindrance in understanding how non-humans think and act. Animals are smart in different ways. Human measurements of intelligence is useless in understanding animal intelligence.

26. Crisis of Character: A White House Secret Service Officer Discloses His Firsthand Experience with Hillary, Bill, and How They Operate, Gary J. Byrne (2016, audiobook).

Byrne served in the White House during Bill Clinton’s second term, and wasn’t pleased to see what he saw, and what he heard from others, and absolutely did not want to see the Clintons in the White House ever again.

27. Someplace Like America: Tales from the New Great Depression, Dale Maharidge (2013, ebook).

America is an sad place to live for poor people, and often their destitution is often because no fault of theirs. People lose their jobs, or there was a major illness in the family that drained all their savings, or maybe the economy was not doing well like in 2008, or financial institutions committed acts of fraud: millions have lost their homes and were thrown into the streets. This book documents stories of some families that lost everything in the second great depression of 2008, and their struggle for survival.

28. Antifragile: Things That Gain from Disorder, Nassim Nicholas Taleb (2012, audiobook).

Some things become stronger when exposed to stress and volatility (the way people build muscle from resistance training, for example). Taleb coined the term “antifragile” to describe this quality, because “resilience” or “adaptability” do not adequately describe it.

29. The Case Against Sugar, Gary Taubes (2016, audiobook).

I am yet to finish Taube’s Good Calories, Bad Calories; I have read How We Become Fat (the latter appears to be the “lite” version of the former), and I am convinced that he has a good case for what causes obesity and other modern day health troubles; The Case Against Sugar builds a stronger case against sugar, which we have been consuming in historically unprecedented quantities.


30. At Home: A Short History of Private Life, Bill Bryson (2010, audiobook).

A history of domestic life: how did the houses we live in came to be the way they are? Bryson goes from room to room (living room, kitchen, bedroom, bathroom…), and describes their evolution. This is pretty western-centric; I believe there is room (ahem) for a similar book on the story of non-western houses.

31. Deep Work: Rules for Focused Success in a Distracted World, Cal Newport (2016, audiobook).

We are impaired of our ability to do focused deep work in the modern world because our environment is hostile to deep work. Paradoxically, deep intellectual work also happens to be the most valuable kind of work that we can do.

32. Hillbilly Elegy: A Memoir of a Family and Culture in Crisis, J.D. Vance. (2016, ebook)

This turned out to be more of one person’s autobiography than what I expected. That in itself isn’t a bad thing though: Vance has a good story of finding a good place for himself in the world, in spite of all the odds.

33. Guns, Germs, and Steel: The Fates of Human Societies, Jared Diamond (1997, audiobook).

Eurasian civilization has survived and thrived, while many great ancient civilizations have not. This book argues that this is not due to an inherently superior culture, but from certain historic and technological advantages.

34. Zero to One: Notes on Startups, or How to Build the Future, Peter Thiel and Blake Masters (2014, ebook).

Notes from Stanford CS183, in book from. Contains the accepted Silicon Valley wisdom on creating startups.

35. Low-Carb Fraud, T. Colin Campbell, Howard Jacobson (2014, ebook).

I have been looking for solid counter-arguments against avoiding carbohydrates from our diet, but sadly found no such thing in this book: it is mostly the tired ad-hominem attacks (on Robert Atkins and Gary Taubes), appeal to authority (the authority being himself), and dishonesty (such as: there are no ancestral societies that thrived on a low-fat diet – what about the Inuits, the Māoris, the Masais?), and just very ranty. A sad wasted opportunity.

36. When to Rob a Bank, Steven D. Levitt (2015, audiobook).

Fourth in the Freakonomics series: collection of stories that follow basically the same recipe.

37. The Underachiever’s Manifesto: The Guide to Accomplishing Little and Feeling Great, Ray Bennett. (2006, hardcover)

Short sweet book on not sweating it too much, and not being too hard on yourself.

38. Gang Leader for a Day: A Rogue Sociologist Takes to the Streets, Sudhir Venkatesh. (2008, audibook)

The author’s fieldwork in Chicago’s housing projects while doing his doctoral research took some unexpected turns. He started hanging out with gang members, became close friends with a leader, and was coaxed into becoming the gang’s token leader for a day so that he can see for himself what it is really like.

39. The Only Game in Town: Central Banks, Instability, and Avoiding the Next Collapse, Mohamed El-Erian (2016, audibook).

The argument is that central banks, when faced with the responsibility of handling the 2008 financial crisis, have done an admirable job, and will need to continue doing so. Maybe so, if you are a financial industry insider. El-Erian is one, and this book is self-serving sophistry, and it made me angry.


40. Gratitude, Oliver Sacks (2015, audiobook).

Sacks’ posthumously published essays, written after his cancer diagnosis.

41. The Revenge of Analog: Real Things and Why They Matter, David Sax (2016, ebook).

Analog things – film cameras, vinyl records, moleskin journals, brick-and-mortar indie bookstores, board games – waned for a while, in the onslaught of digital things, and now they are coming back.

(Incidentally, in my town’s main street, there’s a record store, an indie book store, a board game store, a photo studio that has a collection of old film gear, a cobbler’s store, a tailor…)

42. The Achievement Habit: Stop Wishing, Start Doing, and Take Command of Your Life, Bernard Roth (2015, audiobook).

Accomplishing things is a skill that can be learned. The details are hazy to me, which might be as well.

43. How Not to Be Wrong: The Power of Mathematical Thinking/, Jordan Ellenberg (2014, audiobook).

Using Mathematics in dealing with day-to-day issues. The audiobook was a drag; perhaps I should read the paperback?

44. /Shattered: Inside Hillary Clinton’s Doomed Campaign/, Jonathan Allen and Amie Parnes (2017, ebook).

Blow-by-blow account of 2016 presidential campaign: learning from Obama campaign, Clinton’s campaign relied too much on sophisticated and complex software models, and too little on actual groundwork, and ignored some key constituencies. This worried people experienced in traditional campaigns; even Bill Clinton, who had ears on the ground, worried about the way things were going.

45. The Unwinding: An Inner History of the New America, George Packer (2013, audiobook).

Story of America’s transformation in the recent decades, told mainly as stories of three Americans: a former political aide, a failed bio-fuel entrepreneur, the daughter of a drug addict who eventually became a community organizer. These stories are interleaved with shorter life stories of people such as Sam Walton, Elizabeth Warren, and Jay-Z.

David Brooks panned the book for what he perceives to be a lack of rigorous analysis, but in my mind that precisely is the best thing about this book: analysis is left to the reader.

46. How Trump Won: The Inside Story of a Revolution, Joel Pollak and Larry Schweikart (2017, ebook).

Dispatches from Donald Trump’s 2016 campaign trail, by two campaign insiders. Chest-thumping, cheer-leading, blow-by-blow account of the campaign, from the side of the candidate that few expected to win but won anyway. They speak as if they knew it all along; that is probably hindsight speaking. I doubt that they were that sure all along.


47. Car Talk Science: MIT Wants Its Diplomas Back, Tom Magliozzi and Ray Magliozzi (2016, audiobook).

I do not find cars very interesting, but Car Talk used to be my favorite show on NPR (back when I used to listen to NPR) because I loved (and still love) listening to these two brothers’ compulsive and infectious laughter. I dearly miss them. As far as I am concerned, it hardly matters what they actually talk about in the show. It is all about that laughter.

48. Who Stole Feminism?: How Women Have Betrayed Women, Christina Hoff Sommers (1994, audiobook).

There are “equity feminists”, and there are “gender feminists”, and the latter have stolen feminism from the real feminists. There are real issues that unprivileged women face that should be addressed by feminism; but for gender feminists it is all about the setbacks a privileged group of women face while climbing their career ladders.

49. Making It Big in Software: Get the Job. Work the Org. Become Great., Sam S. Lightstone (2010, paperback).

Interviews with people who became successful in computer software business: Steve Wozniak, James Gosling, Marissa Meyer, John Bentley, Marc Benioff, Bjarne Stroustrup, Peter Norvig, Linus Torvalds, Richard Stallman.

My favorite is Richard Stallman’s answer to this question: “How do you achieve a work-life balance? How do you keep your software life from dominating everything?”

To this Stallman says: “Why would I want to do that? My work is not programming; it is campaigning for freedom for software users. This is not just a pastime and not just a job. It’s the most important thing I know any way to do. I’m proud of it, and when I achieve something, I am very satisfied. It should be the main focus of my life, and it is.”

50. Team Geek: A Software Developer’s Guide to Working Well with Others, Brian W. Fitzpatrick and Ben Collins-Sussman (2012, paperback).

Summary: be nice and be respectful to other people.

51. Guilty as Sin: Uncovering New Evidence of Corruption and How Hillary Clinton and the Democrats Derailed the FBI Investigation, Edward Klein (2016, ebook)

Clearly the intended audience for this book is not me: it is the angry Republican who is already convinced that Clinton is guilty of something, and it doesn’t matter what. Regardless, I have read it, and regret reading it. In my defense, I am new to this genre, and I do not know how to tell between the good ones and the really trashy ones.

52. Throw Them All Out: How Politicians and Their Friends Get Rich Off of Insider Stock Tips, Land Deals, and Cronyism That Would Send the Rest of Us to Prison, Peter Schweizer. (2011, ebook)

American elected officials engage in a shocking amount of lawful but questionable practices while holding a public office, for their private gain (example: stock trading based on prior knowledge of legislation), and to the detriment of those whom they are supposed to serve. Schweizer has clearly chosen a camp, and therefore he aims to hurt the opposition – part of this book is about dubious investments in energy companies during Obama years, for example – and that is the great weakness of this book.

53. Chaos Monkeys: Obscene Fortune and Random Failure in Silicon Valley, Antonio García Martínez (2016, audiobook).

Martinez regales us with his stories of creating a startup that was acquired by a bigger company (Twitter), and then leaving it to work for Facebook. Entertaining, even though I personally find Silicon Valley’s giant success stories less than wholesome.

54. One Man’s Wilderness: An Alaskan Odyssey, Sam Keith (1973/2011, ebook).

Building a cabin by an Alaskan lakeside, by yourself, and surviving a winter there, mostly by yourself – that holds greater appeal than moving to San Francisco to work for a tech startup, doesn’t it?

55. Listen, Liberal: Or, What Ever Happened to the Party of the People?, Thomas Frank (2016, audiobook).

The Democratic party no longer works for the working class people; it has become a party of elites, and it serves, and is served by, what Frank calls people of “professional class”.

56. Strangers in Their Own Land: Anger and Mourning on the American Right, Arlie Russell Hochschild (2016, ebook).

Reports from Louisiana, with interviews with Tea Party supporters. Petrochemical industry has done considerable damage to the environment, often displacing people and making their land and homes worthless, and their waterways unusable. They do this with impunity, and with the government’s support. There’s very little opposition from the affected as well; Hochschild tries to understand why.

57. Why I Am Not a Feminist: A Feminist Manifesto, Jessa Crispin (2017, audiobook).

Crispin do not like contemporary feminism; I could not quite figure out why, and exactly whom it is that she dislikes.


58. The Lion in the Living Room: How House Cats Tamed Us and Took Over the World, Abigail Tucker (2016, audibook).

As I was writing these notes, it was sunny but quite cold outside (-14 °C), and a few inches of snow had piled up. Appu cat insisted on going outside, and came back in a few minutes with a freshly killed vole. Just… how did he do that?

Turns out that household cats are hunters par excellence.

Appu and his sister Ammu adopted us seven years ago. Today it is impossible for us to imagine a life without the two of them. We are very devoted, and we are hardly alone in the cat craze.

Indoor cats are a recent phenomenon – until the invention of cat litter in 1947, and commercially prepared dry food became popular around 1950s and 60s, cats came and went as they pleased.

Considering the limited utility of cats (as compared to dogs) to humans, this is a mystery. They might even be harmful (toxoplasmosis) while controlling our irrational brains by evolving their features to be appealing to us, and even learning to modulate their voices to invoke our affections with an oxytocin rush.

Cats! How do they do that?

59. Kerplunk!: Stories, Patrick F. McManus (2008, audibook).

I’ve been informed that this is not the most funny McManus book. I haven’t read any of his other books. I found this one to be quite funny.

60. An Evening with Garrison Keillor, Maya Angelou, Laurie Colwin and Tom Wolfe: A Gala Evening of Readings to Benefit the Homeless (1991(?), audiobook).

I think I will claim this to be a “book”, for the purpose of claiming an exaggerated reading list.

61. Rare Encounters with Ordinary Birds, Lyanda Lynn Haupt (2004, audiobook).

Birds in Haupt’s immediate surroundings – starlings, crows, cormorants, woodpeckers, sparrows, and the such – are a source of fancy. This is a delightful book, and Haupt has excellent mastery over the craft, and my complaint is that it should have been longer.

62. Prison Island: A Graphic Memoir, Colleen Frakes (2015, ebook)

Graphic novel memoir, about the author’s teen years in McNeil Island, in Washington State. Frakes’ parents worked for the prison in the island. When the penitentiary closed down for good in 2011, the family went there again to take another look.

63. What If?: Serious Scientific Answers to Absurd Hypothetical Questions, Randall Munroe (2014, audiobook)

Munroe’s answers to some hypothetical questions about unlikely situations. Audiobook version failed to keep my attention, and the ebook was poorly formatted for my devices. Maybe I should read the paperback?

64. The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact, Edmond Lau (2015, paperback).

Some good advice in there, and most starting programmers could do a lot worse than reading this book. There are things even I, a Hardened Grizzly Veteran and a Cynic (disclosure: some of those adjectives are false, except the one about being a cynic), found useful: such as, for getting the best returns from your effort, figure out what is the most “impactful” part of the project you are involved in, and expend most of your energies there.

65. The Genius of Birds, Jennifer Ackerman (2016, audiobook).

This could be a companion book to Are We Smart Enough to Know How Smart Animals Are?: we are not smart enough to know how smart birds are, either, because bird brains are designed differently from primate brains. Birds are extremely smart but in their own ways; therefore “bird brain” as an insult is quite insufficient.


66. My Little Town, Garrison Keillor (2011, audiobook).

Keillor continues to make fun of the imaginary people of his imaginary hometown.

67. Glass House: The 1% Economy and the Shattering of the All-American Town, Brian Alexander (2016, audiobook).

I have seen many small towns and old industrial cities all over the US Midwest in states of ruin. In fact, outside major cities, those that are not in a state of ruin are rare. Major cities too have got their share of ruined parts. They are all places with a history of past prosperity.

Lancaster, Ohio is one such rundown town. It used to be an entirely different place in its heyday, back when the hometown company, Anchor Hocking Glass, thrived. What happened?

This book answers the broad question of what happened to industrial America, while describing the history of Lancaster’s decay. Alexander places the blame on an era of economic ideals popularized by Milton Friedman, endorsed by presidents from Ronald Raegan onwards, and eagerly adopted by corporate America.

68. What’s the Matter with Kansas? How Conservatives Won the Heart of America, Thomas Frank (2004, ebook).

Perhaps the best known book on the rise of conservatism in middle America. Midwest wasn’t always conservative: old midwest leaned left, than it is today. Eventually economic conservatism won over elites, and social conservatism won over working class people, and the strange coalition soon began to win elections.

69. The Chemistry Between Us: Love, Sex, and the Science of Attraction, Larry Young and Brian Alexander (2012, audiobook).

Our relationships cannot be attributed solely to cognitive processes; hormones play a surprisingly large part. I need to find a paper copy and take some notes.

70. Stories: An Audio Collection, Garrison Keillor (1992, audiobook).

These stories are not set in the imaginary Lake Wobegon, Minnesota, but I was still entertained.

71. The World Beyond Your Head: On Becoming an Individual in an Age of Distraction, Matthew B. Crawford (2015, audiobook).

I do not know of quite what Mr. Crawford was going on about, but it is quite apparent that he is a very concerned and very smart man. I have previously read his other book, Shopcraft as Soulcraft, and I was hoping to learn something from this one. Other than perhaps that focused work is good work, but we already know that.

72. Twitter: The Comic (The Book): Comics Based on the Greatest Tweets of Our Generation, Mike Rosenthal (2014).

Read, and forgot all about what was in it. Which makes it, you know, just like twitter dot com.


73. Dear Ijeawele, or a Feminist Manifesto in Fifteen Suggestions, Chimamanda Ngozi Adichie (2017, audiobook).

Practical suggestions on raising a feminist child. Or, what you would call a normal child.

74. How to Be Black, Baratunde R. Thurston (2012, audiobook).

Humorous take on being a black person in America.

75. I’m Tempted to Stop Acting Randomly, Scott Adams (2010, ebook).

Scott Adams has pariah status in certain circles. This he mostly earned during the 2016 presidential election, and prior to that, by other shenanigans. But I still kind of like Dilbert, what can I do?

76. The Liberal Redneck Manifesto: Draggin’ Dixie Outta the Dark, Trae Crowder, Drew Morgan, and Corey Ryan Forrester (2017, audiobook).

Turns out that there are rednecks out there who are also liberal in their political views, and this comedy trio belongs to that group.

77. NPR Laughter Therapy: A Comedy Collection for the Chronically Serious (2013, audiobook).

This could not make me laugh. Not even once. Perhaps it will work only on the chronically serious folk.

78. Pearls Hogs the Road: A Pearls Before Swine Treasury, Stephan Pastis (2017, ebook).

Prime attraction is that Bill Watterson came out of retirement and drew three strips for this book.

79. The Book of Obama: From Hope and Change to the Age of Revolt, Ted Rall (2012, ebook).

Rall lists plenty of reasons to be disappointed in Obama presidency by the end of the first term. Grievances include but are not limited to: his voting history as senator (in favor of invading Afghanistan); the appointment of Lawrence Summers as Treasury Secretary and the subsequent bank bailout; failure to prosecute white collar criminals that caused the 2008 downturn; ongoing conflicts abroad.

The backdrop of this book is Occupy Wall Street protests; hence “the age of revolt” in the title.

80. Photojournalism: 150 Years of Outstanding Press Photography, Reuel Golden (2011, paperback)

I am the kind of photographer who spends an unreasonable amount of money on gear and then shoots pictures of cats and dogs and flowers in the yard. The photographs presented in this book are powerful, and they have greatly embarrassed me.

81. The Great LIFE Photographers, Gordon Parks (2010, hardcover).

Excellent anthology of photographs by hundred-odd LIFE magazine photographers.


82. The Dictator’s Handbook: Why Bad Behavior is Almost Always Good Politics, Bruce Bueno De Mesquita and and Alastair Smith (2012, audiobook)

Not even dictators can completely get away with doing whatever they want: they must strive to keep the support of their core backers, or they will be thrown out of power soon enough. The same principles are at work in democracies as well.

83. Batman: The Killing Joke, Alan Moore (1998, ebook).

I did not grow up with western superhero comics, and perhaps that is why I was not impressed by this book.

84. The Audacity of Hope: Thoughts on Reclaiming the American Dream/, Barack Obama (2006, audiobook).

I wasn’t paying close attention to the 2008 US presidential election; so I needed to figure out what was going on back then.

85. Portrait Revolution: Inspiration, Tips, and Techniques for Creating Portraits, Julia Kay (2017, ebook).

This book is the result of worldwide portrait parties: many artists contributed portraits, and the collaboration took place in a Flickr group.

86. Start Sketching & Drawing Now: Simple Techniques for Drawing Landscapes, People and Objects, Grant Fuller (2011, ebook)

I have not started to put the lessons to use.

87. How to Draw Comics: From the Legendary Co-Creator of Spider-Man, the Incredible Hulk, Fantastic Four, X-Men, and Iron Man, Stan Lee (2010, ebook)

An excellent overview of how comics are made: walks you through the stages from conception to finished product (character design, penciling, inking, coloring, lettering…).

88. Relish: My Life in the Kitchen, Lucy Knisley (2013, ebook)

Part memoir (of growing up with a mom who is a chef), part recipes. Illustration, as always, is excellent.

89. Spy Secrets That Can Save Your Life: A Former CIA Officer Reveals Safety and Survival Techniques to Keep You and Your Family Protected, Jason Hanson (2016, audiobook).

There are a few things worth learning from this one, especially regarding situational awareness and preparedness. But the aggressive sales pitch made it unbearable.

90. How the Hell Did This Happen?: The Election of 2016, P.J. O’Rourke (2016, ebook).

O’Rourke is a conservative, and yet maintains a rather low opinion of just about every aspirant – Republicans and Democrats alike – in the 2016 presidential election.


91. Devil’s Bargain: Steve Bannon, Donald Trump, and the Storming of the Presidency, Joshua Green (2017, ebook).

On how Steve Bannon, his band of “honey badgers”, and other influential non-traditional Republicans helped Donald Trump on his way to the presidency. People see Bannon as some kind of arch-villain; but he is someone who grew up in traditionally Democratic family, and eventually switched sides during the Reagon wave.

Bannon, and the billionaire Robert Mercer, played key roles in the campaign; their multi-pronged attack (which encompassed Breitbart News website, Clinton Cash books produced by Government Accountability Institute, Clinton Cash the documentary produced by Glittering Steel, data analysis by Cambridge Analytica) turned out to be ultimately quite effective.

92. What Happened, Hillary Rodham Clinton (2017, ebook).

Too many words to say nothing at all, and surprisingly little introspection. She lost because of the commonly raised reasons: Russian meddling in the elections, and James Comey’s actions that may have turned the elections, racism and sexism helped her opponent, and so on. For a book written by someone marketed as a “policy wonk”, this book contains little policy; this is about the candidate’s feelings during the campaign and after.

I was curious about if this book would attempt to address the allegations meted out in Clinton Cash. Clinton mentions Robert Mercer and Steve Bannon (who is really behind the book), but is completely quiet on Schweizer’s controversial book and its contents.

93. Way Off the Road: Discovering the Peculiar Charms of Small Town America, Bill Geist (2008, audiobook).

By now I have spent most of my time in America in some its small towns. Although I clearly do not blend-in in small town America, I quite like small town America; I much prefer small town America to my current suburban America situation.

I loved Bill Geist’s stories from small town America. And now I love small town America even more.

I found a copy of this book for the first time in a place that was described in the very book: Nick’s Kitchen, in Huntington, Indiana. (The famed pork tenderloin is pretty good, but their pies are even better.)

I am also planning to visit another closeby landmark mentioned in this book soon: Moonshine, Illinois (population two), to try their famed moonburgers.

94. Our Revolution: A Future to Believe In, Bernie Sanders (2016, audiobook).

Sanders narrates his life story, his political beliefs and activism, how his 2016 campaign became considerably influential from the original fringe status, his view of what ails America, and his vision for the country’s future.

95. The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers, Ben Horowitz (2014, audiobook).

I think there are better ways of running software business than the the Silicon Valley standard Venture Capital-driven high-growth startups. I hope to stay clear of such employment as long as I am in the software business: they are unduly stressful on everyone involved, founders and employees alike, and that is no way to live our short lives in this world.

However, I quite liked this book, which is based on a series of blog posts that Ben Horowitz wrote as a VC, reminiscing the time he ran a startup mode enterprise software company that was later acquired by Hewlett-Pakard. He came across as human, and I found the war stories of running a business and successfully finding an “exit” at a very challenging time quite engaging.

96. National Geographic Photography Field Guide: Travel, Robert Caputo (2005, paperback).

Good practical advice on taking better travel pictures. This is a little dated, and therefore contains some advice about film and film gear, which I imagine would no longer be applicable to its intended audience.

97. Don’t Vote: It Just Encourages the Bastards, P.J. O’Rourke (2011, ebook).

Collection of political satire. It was good enough to keep going till the end, but not good enough to recall the details. Maybe except that O’Rourke likes to skewer most politicians, regardless of their party affiliation.

98. My Friend Dahmer, Derf Backderf (2012, ebook).

Backderf’s classmate, Jeffrey Dahmer, was a noted weirdo and outcast in high school. Dahmer had no real friends, his family situation was worse than your average dysfunctional family situation, and to ease his pain, he passed his days in an alcohol-induced haze. Years later he was convicted as a serial killer – he had raped, killed, and chopped up, and preserved body parts of about seventeen victims by the time he was caught. Breaking the usual serial killer pattern, he fully co-operated with the investigation.

My Friend Dahmer is the story of this real life murderer. Backderf is empathic to his classmate, situation, while fully acknowledging that this is no excuse for the crimes committed.

(I could also recommend Backderf’s other graphic novel, Trashed, about his life as a garbageman in small-town Ohio: it was excellent and opened my eyes to things such as garbage pickup service that I only had a faint appreciation for, even when my life was critically dependent on those very things.)

99. Sex Criminals, Vol. 1: One Weird Trick, Matt Fraction and Chip Zdarsky (2014, ebook).

A couple realizes that time freezes when they’re having an orgasm – the world literally comes to a standstill, and they could use the opportunity to do anything they want. Such as, robbing banks.

I have only read the first volume of the multi-part series. I don’t think I want to read further.

100. The Destruction of Hillary Clinton, Susan Bordo (2017, ebook).

According to this litany, Hillary Clinton lost because everyone else opposed her: Russians, James Comey, Bernie Sanders and supporters, all the right wingers, a country full of alleged sexists and racists, and a very crude and very crass opponent.

But that is the thing about running for world’s most powerful position: given the stakes, you will invariably run against some vicious opposition. Why couldn’t Clinton, with her several decades of experience in government and policy and politics, run a more effective campaign?

I was again curious to see if a sympathetic portrayal of Clinton would include a better point-by-point rebuttal of the allegations from Clinton Cash, but I was sorely disappointed: it stops at flat-out denial. Unfortunately Peter Schweizer has written a far stronger book.

101. Brain Bugs: How the Brain’s Flaws Shape Our Lives, Dean Buonomano (2016, audiobook).

Our brains sometimes fail us. Although we take pride in our rationality, we often behave irrationally. Our brains are good in certain kinds of tasks (such as those involve pattern recognition), but even our own crudest machines can beat us in certain other kinds of tasks (such as, adding several large numbers). This is because the conditions under which our brains evolved are different from our current challenges.

102. Men Without Women: Stories, Haruki Murakami (2017, ebook).

Short stories set in that familiar yet odd Murakami universe, about friendless men who have lost their women and thus are left incomplete.

103. After We Kill You, We Will Welcome You Back as Honored Guests: Unembedded in Afghanistan, Ted Rall (2013, ebook).

After the American invasion of Afghanistan, Rall visited the country twice. First time in 2001, representing a couple of news organizations; and second time in 2010, raising money from crowd-funding. On both occasions he went there as an independent, “unembedded” journalist.

By the time of his second visit, Afghanistan had changed considerably. In 2001 Afghanis were hopeful of America’s ability to change their situation; by 2010 they had given up. Outside the major cities, the Taliban was in full force; some of the old inter-city passages that Rall had counted on traveling had become extremely unsafe.

After the initial shows of considerable force, and strategic mis-steps such as bombing innocent civilians, and spending huge amounts of money with relatively little to show for it, the US were failing in their longest war abroad. How did that happen?

104. Two Brothers, Fábio Moon and Gabriel Bá (2015, ebook).

Daytripper is the first book by the Brazilian twin brothers that I read, and it mesmerized me. You should absolutely read it.

Two Brothers, based on a novel by Milton Hatoum, nearly approaches Daytripper levels in terms of artistic achievement. Something seems to have lost in translation though


105. The Death of the Liberal Class, Chris Hedges (2010, ebook).

Every year, rest of the world celebrates International Workers’ Day, sometimes called May Day, on May 1, sometimes to commemorate the 1886 Chicago Haymarket affair.

America however has entirely forgotten the affair (although Labor Day is celebrated on a different day), and that is no accident at all: it is the result of decades of suppression of labor movements (example: Taft-Hartley Act of 1947), silencing of anti-war activists, Communist witch hunts, Raegon-era union busting, fear of foreign terrorism, and surrender of the liberals class to these new ethos in exchange for professional survival. The permanent state of war suppresses dissent and breeds unquestioning patriotism, and has the dual advantage of being very profitable for some corporations.

Some quotes:

Since the presidency of Ronald Reagan, the corporate state has put the liberal class on a death march. Liberals did not protest the stripping away of the country’s manufacturing base, the dismantling of regulatory agencies, and the destruction of social service programs. Liberals did not decry speculators, who in the seventeenth century would have been hanged, as they hijacked the economy. Liberals retreated into atrophied institutions. They busied themselves with the boutique activism of political correctness. The liberal class was eventually forced in this death march to turn itself inside out, championing positions it previously condemned. That it did so with almost no protest exposed its moral bankruptcy.

“The left once dismissed the market as exploitative,” Russell Jacoby writes. “It now honors the market as rational and humane. The left once disdained mass culture as exploitative; now it celebrates it as rebellious. The left once honored independent intellectuals as courageous; now it sneers at them as elitist. The left once rejected pluralism as superficial; now it worships it as profound. We are witnessing not simply a defeat of the left, but its conversion and perhaps inversion.”

I first learned the phrase “inverted totalitarianism” from this book, and I think it is an accurate way to describe the way things are.

106. What Every American Should Know About Who’s Really Running America, Melissa L. Rossi (ebook).

Rossi seems to have found a formula: her other books include What Every American Should Know About the Middle East, What Every American Should Know About Europe, What Every American Should Know About Who’s Really Running the World, What Every American Should Know About the Rest of the World

The idea is that rogue public representatives represent none but themselves. Plenty of examples are given, and the (arguably limited) actions ordinary citizens can take to correct the situation.

107. Story of Little Babaji, Helen Bannerman and Fred Marcellino (1996, hardcover).

Found this book in our friends’ toddler’s collection, and I am charmed: the story is short and sweet, and Marcellino’s artwork is ridiculously excellent.

(The original, The Story of Little Black Sambo, was criticized for its racism. I did not find the “racism-corrected” version racist, but what do I know.)

108. The Wrong Enemy: America in Afghanistan, 2001-2014, Carlotta Gall (2014, ebook).

Gall covered Afghanistan and Pakistan for the New York Times, and has ties to Afghanistan from the time her father, Sandy Gall, reported from the country.

The book’s insight is that the real root of the troubles Afghan government and US forces face in Afghanistan is the insurgents from Pakistan, and they are supported by Pakistan’s Inter-Services Intelligence (ISI) and military intelligence, and this is regardless of US support for Pakistan.

ISI and Pakistani military play by their own rules, sometimes in defiance of their own civilian leadership. They use jihadists as a pawn in the dangerous geo-political game they play to keep India, Iran, and Russia in check – and it has lead to predictable results. A notable example is the Siege of Lal Mosque.

US eventually learned its lesson, and decided to keep Pakistani authorities in the dark when raiding Osama bin Laden’s Abbottabad compound. The compound was close to Pakistan Military Academy, and the house had no escape routes, which strongly suggests that Laden was under tutelage.

Gall’s prose is surprisingly uneven for someone who wrote for a major newspaper for such a long time.

In Conclusion

I am grateful to public libraries. I read all these books except two thanks to public libraries, without spending a direct cent. That they exist in this day and age, in this country, is nothing short of a miracle to me.

I would also like to let bygones be bygones: I will need to forget that I have done this to myself on my own volition. I should learn to focus on the quality of my reading in 2018. I will read fewer but better books. Some classics, some computer science and math books perhaps. Let us see.

But I don’t think I have found a way to avoid audiobooks yet, other than enjoying engine noise during my commute.

Or worse, podcasts.

January 07, 2018 12:00 AM

September 08, 2017

Sajith Sasidharan (sajith)

Area Man (Kinda) Figures out How to Use CPack

Lately I have been working on a C++11 project that uses CMake. I find CMake to be approachable, useful, and sometimes somewhat weird. But it gets the job done.

I suppose I should document what I have managed to learn so far (which is: just enough to be useful), and I will do that in due time, in a regularly scheduled future weblog update (haha).

For now here are some notes about a thing I struggled with, for longer than I should have: making an RPM package from ye olde CMake project.

CMake ships with a companion program, CPack, which makes creating binary packages easy. All you need is a line like this in your top-level CMakeLists.txt:


Our project generates the good ole Unix Makefiles, so I should have been able to do just run some commands and get on with my day:

$ cmake $SOURCEDIR
$ make package # or just run 'cpack'

As we know nothing in computering land works that way.

With the basic configuration, the above produced three packages: a self-extracting shell script, a tar.gz package, and a Unix compressed .Z package. But here’s a problem:

$ ls -l project-0.1.1-Linux.*
-rwxrwxrwx 1 sajith sajith 3818 Sep  8 10:35
-rw-rw-r-- 1 sajith sajith   29 Sep  8 10:35 project-0.1.1-Linux.tar.gz
-rw-rw-r-- 1 sajith sajith   54 Sep  8 10:35 project-0.1.1-Linux.tar.Z

They are all empty! Also I still do not have that RPM package I needed. So I set the CPACK_GENERATOR variable before the include(CPack) line:


In order to have the intended artifacts (binaries, documentation, etc) inside the archives, I also needed some install lines in the appropriate CMakeLists.txt files. (We have not been “make install”-ing our project, so we had omitted the install lines. CMake-built binary packages get their contents from the install step, and it took a bit of figuring out.)

install(TARGETS binary DESTINATION bin)
install(DIRECTORY project-config-files DESTINATION etc)
install(FILES README.txt DESTINATION share/doc/project)

With that, I have a basic RPM file. For further customization, there are a bunch of extra variables that we can set:


set(CPACK_PACKAGE_NAME                 "usual-widgets")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY  "Some usual widgets for day-to-day use")
set(CPACK_PACKAGE_VENDOR               "Usual Business Corp")
set(CPACK_PACKAGE_CONTACT              "Your Humble Packager <>")


set(CPACK_RPM_PACKAGE_GROUP    "Applications/Internet")

We can also instruct CPack to generate additional kinds of packages:


And there are more knobs to turn:


Another thing I figured out is that I can set CMAKE_INSTALL_PREFIX to somewhere other than the default /usr/, when running cmake:

$ cmake -DCMAKE_INSTALL_PREFIX=/opt/UsualBusinessCorp/ $SOURCEDIR

I still do not know how to sign the packages, etc., but then again, this is just enough to be useful, and that is all I need.

Extra: verbose output

What if I need a little more verbose output from CPack?


Extra: the dreaded comma

Here’s a frustrating but really silly thing I dealt with: I inserted an extra comma in one of the set() directives by mistake, and then spent an inordinate amount of time figuring out why things weren’t working the way I thought they should be working.

CMake silently ignores the directive when you do set(VAR, VAL): it has to be set(VAR VAL) or CMake will do its thing and not the thing you’re asking it to do. You do not want this to happen.

September 08, 2017 12:00 AM

August 23, 2017

Steve Killen (nevetski)

Moments of transition

Well, we have unpacked, gone to Ikea for shelves, and set everything up. We are officially residents of Ellicott City, MD :) My better half has begun working, and she is thriving wearing the many hats that the job requires.

Time is going to take on a different sense now that I am a SAHD; indeed, it already has. I have been trying to write this post for about three weeks. No car means being creative about seeing friends, and generally more isolation. But there is lots to do here in EC! The Boy and I hike down to the Trolley Trail on a mostly daily basis, and we play with his train set, and I subsume myself in keeping the house running: cleaning, cooking, getting groceries, etc. It is a way to channel my anger at the current state of national affairs.

But it’s not just national news that is getting me angry–it filters all the way down to my family and friends, so divorced from the web of the people around them that they let their bigotry hang out like yesterday’s laundry on the line. I stand my ground, and choose my battles–but the void of reason remains. The insulation of their line of thinking makes them impervious to the very real damage they’re doing to American discourse, and their support of this kind of thinking at the highest levels of national office means that the damage is nation-wide. They go on about fake news, and then turn around and spread fake news, which they defend from a position of simple intransigence. It’s infuriating.

I am grateful for the opportunity to see the Boy grow in real time, and to see and talk to friends as they allot time for us. And gratitude is what carries me through these times most of all.

by Steve Killen at August 23, 2017 01:22 PM

July 29, 2017

Clinton Ebadi (clinton)

July 21, 2017

Steve Killen (nevetski)

This brave new world

Two years, and how life has changed. (And somehow remained the same…)

After an adventure abroad in South Korea and Vietnam, we have moved back to Maryland, and it feels like home. My wife has made the leap into her career as a plant nursery manager for a watershed restoration non-profit, coming from the Piedmont to save the Chesapeake Bay. Somehow, North Carolina was always terra incognita. So, rather than spend a few weeks each year returning to the Old Line State and spending the rest of the year pining for my beloved friends and family, I return with my family. My son (a Tar Heel born) has spent over half his life outside the US, which will only change on his second birthday. I used to say–never having  left the US–that I was a citizen of the world. I feel that title truly belongs to him. We are the wings that lift him up, beating on to sustain his flight to heights undreamed.

I followed the election closely last year, and it is difficult to contain the feelings that arose afterwards, continuing onward through the transition and into the new presidency and Congress. A thousand Cassandras spelled out the doom that would follow, and yet I still see people surprised by events that unmask the professional grifters we have elevated to high office. I dedicated my life to truth a very long time ago, and to see such blatant disregard for it promulgated by friends and family rocks me to the core. It is a wound of the psyche, difficult to bear even as we live our lives in quotidian dismay and joy. My son and wife are my reminder that we still have power to change the world, by learning from our mistakes and teaching our children a better way.

Ever the Knight of Cups, I return to writing as the challenges of life ebb and flow. I succeeded in completing NaNoWriMo again last year, and the world of Maroon is more vivid in my mind than ever. The Boy guarantees that it comes in fits and starts, but my resolve has only wavered, never vanished. I tried writing groups, but the effort of keeping up with the group crowds out time for writing itself. It is a truism that people understand only after parenthood the meaning of not having enough time. We fritter so much away and call ourselves bored when we merely fail to perceive the gifts before us untouched. I have let drop so many connections with friends and family in the face of overwhelming responsibility, but as we emerge from the woods of our son’s infancy into the meadow of his burgeoning independence, I resolve not only to write but to connect.

Habitica or Google tasks seem reliable choices. (To this day, I mourn the passing of the Handspring Visor, and with it the Calendar+ app, set to Sinead O’Connors “Nothing Compares 2 U.”) I must try to avoid the trap of futzing with the medium too much, though. My life as someone with ADHD is a song of distraction and immediacy. Too often I absorb my stress into video games. But if, instead of playing games that merely pass the time, I make my life into a game of sorts (a la Habitica), that may serve.

Thanks for listening, even amidst the silence.

by Steve Killen at July 21, 2017 02:28 AM

March 30, 2017

Clinton Ebadi (clinton)

An(other) Open Letter to Representative David Price

I previously wrote David Price after learning of HR 676‘s reintroduction this year, and received no response (not even a paltry form letter sent by an intern). Since the issue is back on the table, I decided to give it another shot. Feel free to borrow some of my ideas.

Representative Price,

I am writing you a second time about HR 676, the Expanded and Improved Medicare For All Act [0] which your colleague John Conyers is yet again introducing, and to request that you cosponsor the legislation.

As you are likely aware, Senator Sanders has announced plans to introduce either a Medicare for All or Public Option in the Senate in the coming weeks. With the collapse (and moreso with the grumblings of revival) of the AHCA efforts, it is my opinion that the time is ripe for Democrats to show that they are still capable of pushing for social progress, instead of merely defending the status quo as seems to be their way in recent years.

My hope is that strong support for HR676 in the House will result in a Senate version, instead of a watered-down Public Option that is, purely from a financial perspective, doomed to failure as it would be forced to take on the sickest citizens and would not have the needed clout to effectively manage costs.

Although I was unable to take off of work to attend any of your recent Town Halls, I was glad to read [1] that several of my fellow constituents asked about your stance on single-payer and called upon you to support Medicare for All. I was, however, disappointed hearing that your response was not one of support, but a declaration it was off limits for another 20 years.

A progressive party cannot progress society if they lack forward thinking ideals and goals. I fear that the democratic party has now become a conservative party, fiercely defending the status quo, attacking progressive politics, and having the mere appearance of progressiveness relative only to the republican party now that it has devolved into a regressive party of neofascists.

Although it is true we still need to defend and expand basic access to healthcare, and perhaps the bill would be dead on arrival this session, I still believe your party supporting it would go a long way toward repairing your tarnished image with the public, possibly ensuring strong wins in the House and the ability to push positive legislation come 2019.

There is also the human cost — at a time when the majority of your constituents support a single-payer system, when insurance company profits are bolstered by the private-industry bailout of the ACA, when real health care costs are unaffordable for far too many despite nominally having insurance — you ask us to suffer and die destitute upon the streets for twenty more years before even considering the idea that profit and human health are incompatible?

Economic reality supports single-payer sooner than later as well — all resources expended enhancing the intrinsically broken for-profit healthcare industry instead of building up a public not-for-profit one is wasted, and with each year the population grows and ages, and the problem of building a public system sufficient for all becomes that much more financially disruptive; perhaps insurmountable.

We simply do not have time as a society to delay more than another four years (and even that is too long, but your party decided against single-payer when there was a chance, and I suspect the current President wouldn’t be amenable to signing such a bill). If the discussion is not started now, the prospects for passage in time to save the country from a public health crisis not seen since the 19th century seem dim.

I end my plea with a warning — I suspect you are aware of the strong support for Sanders during the 2016 primary in your district, and the growing disaffection with status-quo democrats. A failure to take a stand for something so popular reinforces the perception that your party no longer cares to represent the common citizen.

I am already leaning toward lending material support to any more progressive primary challenger for your seat, and your refusal to make a stand with HR676 will certainly seal that decision. The North Carolina Green Party also may very well have ballot access in 2018 (emboldened by a recent 11th circuit ruling [2] they have now filed to overturn our ballot access laws as unconstitutional [3]), so you may no longer rest easy, assured that your gerrymandered constituency will re-elect you without challenge.

Best Regards,

Clinton Ebadi


by clinton at March 30, 2017 01:34 AM

March 16, 2017

Clinton Ebadi (clinton)

Some Parts of the Planet Don’t Suck

Good news for the Netherlands:

The big winner of Wednesday’s election – and now the largest party of the Dutch left for the first time – was GreenLeft, headed by 30-year-old Jesse Klaver, hailed by his enthusiastic supporters as the “Jessiah”.

Sometimes compared to Canada’s youthful prime minister, Justin Trudeau, Klaver – who has a Moroccan father and a mother of Indonesian descent – said on polling day that the left’s answer to the far right’s rise in Europe was to stand up for its ideals.
“What I would say to all my leftwing friends in Europe: don’t try to fake the populace,” he said.
“Stand for your principles. Be straight. Be pro-refugee. Be pro-European. We’re gaining momentum in the polls. And I think that’s the message we have to send to Europe. You can stop populism.”
The Netherlands’ youngest ever party leader, Klaver built a strong following on social media through small Meetup events after taking over GreenLeft’s leadership in May 2015.

by clinton at March 16, 2017 11:43 PM

March 15, 2017

Clinton Ebadi (clinton)

March 12, 2017

Clinton Ebadi (clinton)

Some Kind of Box

Something about blue teeth and video games.

panel box

by clinton at March 12, 2017 08:12 PM

February 24, 2017

Clinton Ebadi (clinton)

Angry Mobs At Town Halls

Where were these people when the Democrats scuttled socialized healthcare and gave us the capitalist abomination that is the ACA?

I think they were busy calling me a communist for suggesting that for-profit enterprise was intrinsically incompatible with a universally required service like “preventing people from dying on the streets.” But economic eugenics is ok — those poor undesirables really should have had a better lineage if they wanted healthcare after all — until the petit-privileged classes find out they too get to die on the streets as inequality rises.

And yet they still fight for their privileged capitalist healthcare (we just want the leeches to die, not proper middle class wage slaves, get it?) instead of fighting for something that would be unassailable when the forces of regression rise to attack again.

by clinton at February 24, 2017 12:28 AM

February 18, 2017

Clinton Ebadi (clinton)

February 15, 2017

Clinton Ebadi (clinton)

February 05, 2017

Clinton Ebadi (clinton)

February 04, 2017

Clinton Ebadi (clinton)

155 Lines

The CCFL backlight on my six year old monitor started having problems cold starting this week and I need my monitor to live so a new one was ordered. This was surprisingly cheap, QHD, and the included stand rotates which is neat for pdfs and viewing a ton of code at once (actual readable size here, could knock it down one point of I got around to getting new glasses). A few hours later I realized I could also play pinball on it… how did I live before?

by clinton at February 04, 2017 02:25 AM

Open Letter to Senator Thom Tillis: Kindly Go Fuck Yourself

Thom Tillis is a total asshole and should probably go fuck himself. His current views represent a disdain for democracy and education and I hope that he loses re-election and is banished from the public sphere for all of time when his seat comes up.

Here is a letter I wrote to him on the topic of the DeVos nomination after hearing he was on the fence and wanted the input of his constituents. Not that I thought it would do anything — I’ve far too good an education to think something like lobbying your representatives will result in representation, unless that lobbying comes with cash money or a promise of a lavish consulting gig later.


I recently read in the Charlotte Observer that you were seeking the input of North Carolina citizens in order to make your decision on the confirmation of DeVos for Secretary of Education. Since you asked — here’s my two cents:

Our public education system has been under attack by regressive anti-intellectual forces for decades, and her appointment represents their ultimate victory in their quest to build a compliant, uneducated populace. It would be a great tragedy to see our public education system completely dismantled for a system of second-rate charter schools (as can be seen from the many scandals with poor performance, grade inflation, and outright noncompliance with state education standards here in North Carolina), wherein only the privileged few may receive a good education while the rest languish in ignorance and the resulting lack of economic and social opportunity. It could very well result in the dissolution of the already tenuous social fabric itself in ten or twenty years time when the children of today take the helm of society. Now is the time to rebuild our failing system, not to encourage it to completely fail.

As representative democracy is based upon an informed and educated electorate, this would represent a great tragedy and an acceleration of our descent into status as a failed democracy. I exhort you to vote against her confirmation.

by clinton at February 04, 2017 12:07 AM

February 03, 2017

Clinton Ebadi (clinton)

Georgia Ballot Access Laws (Mostly) Overturned

One thing that bothers me about Democrats and their self-praise in regards to voting rights is that they have done more than the Republicans to suppress ballot access by third parties. Not that the Republicans haven’t done their fair share (it benefits both ol’ boys after all). There’s some good news on that front today: The 11th Circuit of Appeals upheld that Georgia’s Egregious and Unconstitutional Ballot Access Laws Are Indeed Unconstitutional:

The one-sentence ruling, by a unanimous three-judge panel of the 11th U.S. Circuit Court of Appeals, adopted the “well-reasoned opinion” issued last March by U.S. District Judge Richard Story in Atlanta. Story had significantly lowered the number of signatures required for third-party candidates to petition to get on Georgia’s presidential ballot — from tens of thousands [approximately 51k] to 7,500.

The ruling has a nice side-effect in that it lifts restrictions in Florida as well that curiously enough went unenforced from 2011 until August of 2016, just in time to keep “…Gloria La Riva, Evan McMullin, and Thomas Hoefling off the Florida ballot, with no warning.”

Georgia appears to be planning an appeal; my hope is that the Supreme Court will take up the case and strike down absurd ballot access restrictions across the country so that we can have freer elections in 2018. I mean, who cares if you can vote, if you have no options at the ballot box?

by clinton at February 03, 2017 12:13 AM

January 31, 2017

Clinton Ebadi (clinton)

Adventures in Syndication

I have a seemingly trivial task at hand: automagically repost things on the ol’ weblog from my public tt-rss atom feed. Just an excerpt and maybe a relevant picture, nothing too difficult.

I’ve been fighting it on and off again for years, recently finding cybersyn which worked but has its own bugs (like not aggregating anything without a valid thumbnail and filling my media library with gigantic stls from planet reprap. Still, it was the only one that actually fetched feeds with any reliability.

But to get excerpts and some other things I’ve had to hack it up… and have come to realization that I too must write another half-assed aggregation plugin. Or convince the cybersyn folks to add some filters to make it easier to munge things. Unfortunately that doesn’t fix things like it using php’s built in horror show of an xml parser (so I end up with feeds entitled “Article Title – Source Name” and there’s nothing I can do about — it’s just blindly catenating the title in <entry> and <source>, and the source comes last so that’s that without major surgery…

Running tests with my hacked up plugin set to post privately also reveals a social issue: I can easily share more than a full page of links in between real posts (if I actually journalled into the abyss… which I might be now). Thinking there should be some kind of squashing (e.g. everything posted in a 3h window gets thrown into one post). Or maybe not, tracking posts would be more annoying then. Trying not to think too hard about it and just get something minimal running soon.

by clinton at January 31, 2017 01:09 AM

January 30, 2017

Clinton Ebadi (clinton)

The Fight Against Fifteen

polticians / shitheads

Last week, the Montgomery County Council approved a bill that would have made it the first jurisdiction in Maryland — and the second in the region after Washington, D.C., to mandate a $15-per-hour base pay by 2020.

Del. Derek E. Davis (D-Prince George’s), the chairman of the House Economic Matters Committee, has introduced a bill that would put the General Assembly in charge of setting minimum wage even for cities and counties.
Davis said the bill would help improve the business climate in Maryland by making wage and benefit rules more predictable and consistent, noting that Montgomery and Prince George’s counties current have their own minimum-wage laws in place, and Baltimore considered a $15 base wage last summer.
“We’re not a collection of 24 individual fiefdoms,” Davis said “We have to work together as a state so we can attract and retain businesses, keep a healthy, strong economy, and not put our jobs at risk.”

Who needs Republicans when you have Democrats like these. It’s not like a higher minimum wage is a majoritarian viewpoint or anything like that…

by clinton at January 30, 2017 08:42 PM

January 29, 2017

Clinton Ebadi (clinton)


This post brought to you by me finally overcoming extreme procrastination and general laziness and implementing fastcgi php support in domtool. Yep, we were spawning an independent php-cgi for each request…

by clinton at January 29, 2017 03:44 AM

January 28, 2017

Clinton Ebadi (clinton)

January 27, 2017

Clinton Ebadi (clinton)

Medicare For All

January 25th

A national physicians group today hailed the reintroduction of a federal bill that would upgrade the Medicare program and swiftly expand it to cover the entire population, saying it’s the only workable and equitable way to move forward in U.S. health care.

The Expanded and Improved Medicare for All Act, H.R. 676, introduced last night by Rep. John Conyers Jr., D-Mich., ranking member of the Judiciary Committee, with 51 other House members, would replace today’s welter of private health insurance companies with a single, streamlined public agency that would pay all medical claims, much like traditional Medicare works for seniors today.

And yet, not a peep from the so-called “Real Media”. Shocking. This broke January 20th, and aside from an open letter published by Ralph Nader, some press releases from physicians groups, and a few recent endorsements from labor unions the supposedly Liberal Media™ hasn’t made a peep. How can anyone fight for something they don’t know exists?

by clinton at January 27, 2017 08:48 PM

January 26, 2017

Clinton Ebadi (clinton)

May 17, 2016

Sajith Sasidharan (sajith)

Yosemite, the Barn

I’ve been reading A Supposedly Fun Thing I’ll Never Do Again: Essays and Arguments, by our dear departed author, David Foster Wallace. One of the essays, E unibus pluram: television and U.S. fiction (1993) dissects mainstream intelligentsia’s generally-agreed habit of looking down upon the television watching masses, and television itself, with contempt and ridicule.

(I guess it was dissection, because I am unable to grasp the essay entirely. I simply do not have enough context. What was I doing in 1993? Not watching television, not ridiculing TV-watching habits of the masses, not reading intelligentsia-on-TV take-downs, for sure.)

In the essay, Wallace quotes Don Delillo (Delillo’s 1985 novel, White Noise, specifically), “a long-underrated conceptual novelist who has made signal and image his unifying topoi”:

Several days later Murray asked me about a tourist attraction known as the most photographed barn in America. We drove twenty-two miles into the country around. Farmington. There were meadows and apple orchards. White fences trailed through the rolling fields. Soon the signs started appearing. THE MOST PHOTOGRAPHED BARN IN AMERICA. We counted five signs before we reached the site…. We walked along a cowpath to the slightly elevated spot set aside for viewing and photographing. All the people had cameras; some had tripods, telephoto lenses, filter kits. A man in a booth sold postcards and slides—pictures of the barn taken from the elevated spot. We stood near a grove of trees and watched the photographers. Murray maintained a prolonged silence, occasionally scrawling some notes in a little book.

“No one sees the barn,” he said finally.

A long silence followed.

“Once you’ve seen the signs about the barn, it becomes impossible to see the barn.”

He fell silent once more. People with cameras left the elevated site, replaced at once by others.

“We’re not here to capture an image. We’re here to maintain one. Can you feel it, Jack? An accumulation of nameless energies.”

There was an extended silence. The man in the booth sold postcards and slides.

“Being here is a kind of spiritual surrender. We see only what the others see. The thousands who were here in the past, those who will come in the future. We’ve agreed to be part of a collective perception. This literally colors our vision. A religious experience in a way, like all tourism.”

Another silence ensued.

“They are taking pictures of taking pictures,” he said.

And what did DFW think of the text he quoted?

I quote this at such length not only because it’s too good to edit but also to draw your attention to two relevant features. One is the Dobyns-esque message here about the metastasis of watching. For not only are people watching a barn whose only claim to fame is being an object of watching, but the pop-culture scholar Murray is watching people watch a barn, and his friend Jack is watching Murray watch the watching, and we readers are pretty obviously watching Jack the narrator watch Murray watching, etc. If you leave out the reader, there’s a similar regress of recordings of barn and barn-watching.

But more important are the complicated ironies at work in the scene. The scene itself is obviously absurd and absurdist. But most of the writing’s parodic force is directed at Murray, the would-be transcender of spectation. Murray, by watching and analyzing, would try to figure out the how and whys of giving in to collective visions of mass images that have themselves become mass images only because they’ve been made the objects of collective vision. The narrator’s “extended silence” in response to Murray’s blather speaks volumes. But it’s not to be taken as implying sympathy with the sheeplike photograph-hungry crowd. These poor Joe Briefcases are no less objects of ridicule for the fact that their “scientific” critic is himself being ridiculed. The narrative tone throughout is a kind of deadpan sneer, irony’s special straight face, w/ Jack himself mute during Murray’s dialogue—since to speak out loud in the scene would render the narrator a part of the farce (instead of a detached, transcendent “observer and recorder”) and so himself vulnerable to ridicule. With his silence, DeLillo’s alter ego Jack eloquently diagnoses the very disease from which he, Murray, barn-watchers, and readers all suffer.

The points I’m trying to make here are far more simple: (1) we visited National Park in the last week of April, and (2) I do not think I have seen such a confluence of photographers anywhere else. NPS properties all over America have their share of people with fancy and expensive cameras, all the time. Yosemite simply appears to have has more of them.

I do not believe that there’s anything wrong or objectionable to there being such a confluence of people that enjoy taking pictures. Or a confluence of people that enjoy whatever creative or non-creative pursuits that they are pursuing. Some of my very good friends are photographers! I might be one myself, if you squint the right way.

Nevertheless, the DeLillo quote made me feel morally superior for a brief moment (in an us-vs-them, “ah look at all these ridiculous people with cameras!” way), and after a moment of pause, rather quite uncomfortable (in an “Oh no, I myself am one of them!” way).

I was only vaguely aware that photography, among other popular pursuits, was subjected to some amount of contempt by certain class of intellectuals. I chose to ignore it, until the above-quoted piece made things clear to me.

I will admit that Wallace’s counter-take has soothed me somewhat.

• • •

Anyway, now that I’ve been made acutely aware of it, here are some of my ridiculously touristy pictures from Yosemite National Park.

Prior to visiting Yosemite, we spent a week in San Francisco, where both of us fell sick. Consequently I could not meet some of the friends I wanted to meet, and my plan to go see the Computer History Museum in Mountain View fell flat. For the most part of two days, I was stuck in a hotel room, moving my runny nose between bathroom and bed.

However! I would like to report that we still made it to Yosemite, and climbed all the way up to Upper Yosemite Falls and then Yosemite Point (8.2 miles round-trip, all ascent and descent), huffing and panting, coughing and wheezing and sneezing.

We perhaps were the slowest hikers in that particular trail. It was still worth the trouble. It was pretty memorable.

And I’ve taken some pictures.

May 17, 2016 12:00 AM

April 13, 2016

Daniil Frumin (notd)

Frobenius property of weak factorisation systems and Pi-types

I’ve put together a note on the Frobenius property for weak factorisaion systems and it’s relation to models of type theory. Awodey and Warren described a way of obtaining a model of type theory with identity types from a model category structure/weak factorisation system. However, in absence of axioms for other type formers (specifically, Π-types), one is required to put an additional restriction on the weak factorisation system, in order to model identity elimination in an arbitrary context/with arbitrary parameters; specifically, it is required that cofibrations are stable under pullbacks along fibrations. In presence of Π-types, however, this is not necessary, as I tried to explain in the note.

by Dan at April 13, 2016 08:56 AM

March 20, 2016

Sajith Sasidharan (sajith)

A Tale of Two Winters

Last year in the second week of February, we went to Indiana Dunes State Park to gawk at the ice shelves that were formed on Lake Michigan. The ice shelves laid sprawled out on top of the frozen lake, but we could not quite approach it, much less gawk at it – howling winds that nearly sandblasted us came between us and the lake. The wind blasted a lens away from an eyeglass. On our way home, we were stuck in a massive, wild, yet beautiful lake effect blizzard for many hours. Many vehicles laid on either side of the road, skidded this way or that way because the road was hardly visible, with people inside, waiting for assistance. Amidst the storm, a passing good Samaritan spotted the flat tire on our tiny hatchback, perhaps just in time before it led to something far worse.

• • •

This year we went back there in the first week of February. Lake Michigan looked rather quite placid this time. We went at sunset, and again at sunrise, and took walks on the lake shore. It was cold, but there were no ice shelves. This year’s winter has been indeed relatively milder.

• • •

I can’t quite decide which way I like it. I think I like the early arrival of spring.

March 20, 2016 12:00 AM