Blog Experiments

I did two things this week regarding my blog –

  1. I read a lot on Instapaper, mostly non-fiction articles. I make a lot of notes and highlights and all of those come over to this blog. Why? Well, at some point I thought it would be a good idea to write articles based on my readings. It’s also a way of preserving all of those thoughts in case Instapaper some day goes kaput. But the fact that I have all of this text sitting in my blog, counting against my word count, and not contributing to my readership has been irritating me ever since I started the practice.

    A few days ago, I setup a new blog on WordPress – with the objective of posting everything there instead of here. If I can build a readership for the ideas and quotes I publish there, I figured, I can bring over the readers back to this blog eventually and grow the kind of things I write about.

    There’s only one problem – I read a lot of varied topics, but the one I write notes most about is politics. I’ve never been comfortable airing my views on politics. It was never taught to me to be overtly political, and the environment I’m in now doesn’t allow for many public mistakes. Whether this is a perceived threat or a real one, I do not care to find out.

    So, within a day of creating the blog, I’ve abandoned it. All my comments are still coming to this blog and hiding in plain site – they are only visible to logged in users. So if you’re curious as to what I write about, ask me and I’ll create an account for you on my blog and let you in. Otherwise, I’m happy writing those thoughts for myself for now.
  2. The other thing that happened was that I noticed that my blogs were running into some technical difficulties. I was not able to update plugins or open MySQL in the browser to take a look at it. Turns out, my VPS thinks it’s run out of space, despite the fact that I recently updates from a 20 GB node to a 50 GB one. I noticed that the /var/mail folder was choked up with thousands of files, and the ibdata1 file has overgrown. I cleared up the former with a nice ‘find -delete’ command, and for the former, I’ve got a script that takes the backup of all my blogs, deletes the ibdata1 file, and reups the backups to bring everything back online. In the end, it tells me how much space it saved me.

    The last time I ran this, maybe last year or so, I regained about 5 GB. So I ran it again. Turns out, I’ve updated my MySQL version somewhere in between and the thing completely broke, without giving me back my two blogs! Gulp!

    Luckily, I read through the script and recovered my blogs, without losing much uptime or any data. But this sort of thing is exactly what scares me. I’ve got scripts that take backups regularly, but it never feels enough.

    Regardless, has anyone else dealt with large ibdata1 files? What can I do about that? Also, I still don’t know why my system thought it’s run out of space. Maybe the sheer number of files in /var/mail? Due to the assumed lack of space, MySQL crashed and wouldn’t launch back up, until I deleted the mail folder’s contents. So I’m not sure I want to be in this situation again!

Lunch is all about food. Sometimes it’s for the body, other times, it’s for the soul.
Finished reading this beautiful collection of short stories by #VandanaSingh and I can not recommend it more. It’s brilliant, lush, full of characters and locales that feel real, in situations that feel surreal.
Go get yourself #AmbiguityMachines if you’re looking to read some class writing.

Reply to Khürt on

Khürt, I absolutely get a lot of value from my account. First of, this is a great community of bloggers, coders, amateur photographers and even one harpist. I’ve found this to be a great continuation of the community I found in, which subsequently splintered into a few groups. I am, in fact, thinking of trying to woo some esoteric friends off twitter and onto here, though I’ll be guiding them to use for free, because the economics doesn’t work out for everybody around the world.

Second, is an interesting experiment in blog comments. The other day, I saw your post about house parties and responded. I knew I could respond right here, but I had a little more to say, so I put it on my blog and let that reflect here. That exchange can happen independently too, but this centralization of feeds is difficult to attain. We’re all avid users of RSS readers, but with that comes its own challenges. In some senses, is my people feed reader, while my other feeds readers are relegated to follow webcomics and networking news.

Third, any tool is what you put into it. is one of the most visited tabs in Firefox on Windows. Which means I every time I want to unwind from a task at work, I come here and check things out. But it’s not the most visited app on my phone. Mindless browsing time goes to Instagram or Fiery Feeds. So if doesn’t fit your time-flow, it’s not going to give you what others get from it.

Lastly, deleting your account – I know it’s the cleaner thing to do. It severs your ties, Manton is obligated to delete your data, it removes the mindshare takes from you, etc. And frankly, you’d be better off deleting your account than mindlessly posting to it like a bot, or like dave. But not deleting it gives you the opportunity to come back whenever you want. If you want to keep the connection open, however tenuous, keep this account in your back pocket for a rainy day.

Also, if it irks you to pay for, know that I’ve not paid for it in months! I post to it using my own blogs (multiple of them), and I primarily use it for replying to other people’s posts. One issue with not paying is supposed to be that I can’t start conversations. But I get around this by posting through my liveblog, which has an RSS feed without titles. There’s no shame in using like this, because Manton can tighten the noose whenever he wants, but seems to explicitly allow free use. It’s part of the growth model – to allow free users like me.

I hope this all helps you make the best decision for you. I would love to continue conversing with you, and I will do so through our blogs, if you decide that is not for you.

It’s your house, it’s not your party

It’s my house. It’s my party.

Source: You can leave at any time by Khürt Williams

Khürt feels that social networks are not like jails, because you’re not being held at gunpoint and must stay. They’re like a house party, sponsored by Khürt. It’s his house and he can boot you any time. But that also means that you can leave whenever you want.

I don’t think that analogy is correct.

Social networks are like a sponsored agora – an open space that feels like a welcome hangout spot, but which are nevertheless run by someone. That someone can have their security guards kick you out, or you can up and leave.

But you’re not staying because you’ve made your peace with the privacy issues. You’ve made your peace with the privacy issues because all your darn friends are there and it feels good to hangout with them.

Khürt is pretty active on If tomorrow Manton feels that Khürt is not welcome any more, he can kick him out.

But that arbitrariness is what has caused problem for twitter and Facebook before. If it truly were their party, people who are kicked out would be blamed for their misdeeds. But that’s not how it works. Increasingly, you see that these networks make the mistake of kicking someone popular off, or kicking them off for the wrong reasons, and a cycle of blaming these networks runs its course.

It’s their house, but it’s not their party. The party is brought there by the people. In Facebook’s case, the party was brought there by the people signing up from their college times. In twitter’s case, the party was equally brought by the people as well as the developers.

Twitter chose to kick out developers a few years ago and they’re still reeling from the effects of that move. It’s held on to the people because of the critical mass. Same for Facebook (critical mass and dirty moves in that case).

If enough people leave Facebook today, as they did Uber during the #deleteUber campaign, and MySpace during its years of attrition, and tumblr during their recent purge, the party gets dull. No matter what the host does then, the party is already dead, it just needs to get called.

That time has not come for WhatsApp or Instagram, but has pretty much come for Facebook. People are tired of the big blue’s shit. They just can’t leave yet because of all their friends there. The next generation chose to skip Facebook altogether and just go for SnapChat. How long can Facebook keep the party running?

Thoughts on Chris Hughes’ call to break up Facebook

I took my own sweet time to read this story, collecting some of my ideas and publishing them here. I’ve already had a lot of online and offline conversations around the topic, but posting these thoughts here for posterity and discussion makes sense to me.

Opinion | It’s Time to Break Up Facebook

Jefferson and Madison were voracious readers of Adam Smith, who believed that monopolies prevent the competition that spurs innovation and leads to economic growth.

The F.T.C.’s biggest mistake was to allow Facebook to acquire Instagram and WhatsApp. In 2012, the newer platforms were nipping at Facebook’s heels because they had been built for the smartphone, where Facebook was still struggling to gain traction. Mark responded by buying them, and the F.T.C. approved.

Facebook’s version of Snapchat’s stories and disappearing messages proved wildly successful, at Snapchat’s expense. At an all-hands meeting in 2016, Mark told Facebook employees not to let their pride get in the way of giving users what they want. According to Wired magazine, “Zuckerberg’s message became an informal slogan at Facebook: ‘Don’t be too proud to copy.’”

They create immense amounts of data — not just likes and dislikes, but how many seconds they watch a particular video — that Facebook uses to refine its targeted advertising

One big question is, of course, who owns this data? The data would not exist on a platform which doesn’t have the technology to track your time in seconds. The data is also not really relevant to you in a meaningful way. So unless there’s a way to make it meaningful, there is no point in us users claiming ownership of it. Even if we did, in most aspects, the data is owned by Facebook and that is the basis for them not deleting it even after you’ve asked for ‘all’ of your data to be deleted. In that context, ‘all’ is all of the data you’ve given to Facebook, not the data they’ve generated on you.

he went even further than before, calling for more government regulation — not just on speech, but also on privacy and interoperability, the ability of consumers to seamlessly leave one network and transfer their profiles, friend connections, photos and other data to another.

Chris Hughes says in the next line that these proposals were not made in bad faith, but from where I am seeing, these are nothing but bad faith. One can only say these things from a position of privilege, of power. Where were these ideas when twitter launched periscope with Facebook friend-finder integration?

The fact is that what Zuck is proposing here is nothing different from what Microsoft did for Apple all those years ago to head off anti-trust investigations. Why not head off an investigation by propping up a few lame-duck competitors who Facebook can kill off in the name of API changes whenever it feels threatened?

Zuckerberg’s words may seem like music to your ears, but they are nothing more than an empty promise. Already, you can export your Facebook data, and there are services built around importing it and doing stuff with it. So how is his proposal any different?

Will Facebook provide an API to easily move all your data and conversations, and photos off? Will Facebook provide precious server time required to sync out every last bit of data through a legit API? I don’t think so.

Even if they do, the point remains that he’s doing this just to save his own hide. Paying lip service to the open web and interoperability is the easiest thing he can do as CEO.

Besides, Facebook’s value isn’t in the data you provide it with. It’s in the data they generate about you. Today, your uploaded data might be in the couple hundred MBs. But I can assure you, the data they’ve generated about you, and the data you don’t know you’ve uploaded (including stealthy location tracking, cookies, and third party browsing data they’ve bought about you), probably stands in the GBs.

That vast difference is something Facebook will never give you access to, since they can legally claim that it is data they have created and they own. You taking charge of that data is the real threat to Facebook.

Zuck knows this only too well and is trying to ward it off.

Imagine a competitive market in which they could choose among one network that offered higher privacy standards, another that cost a fee to join but had little advertising and another that would allow users to customize and tweak their feeds as they saw fit. No one knows exactly what Facebook’s competitors would offer to differentiate themselves. That’s exactly the point.

Another example of hypocrisy from Chris. We know there are social networks out there today that do all of these things. There are exceptional services built by dedicated people who believe in the ideal of an open web. Just recently an instagram replacement was kickstarted. It took a long while to get it to the bare minimum it needed to fund successfully.

Why? Why did Chris Hughes not put his money where his mouth is? Why not fund all these competitions as an outsider? He’s arguably for the money for it. was kickstarted by the people, but along the way they took funding from a VC firm. Some people saw that as a betrayal of the idea with which it began, and ADN ended up shuttering under a year later.

Hughes doesn’t need to singularly fund social networks and exert control as a VC or angel investor. He can fund them as an individual and just use his voice to amplify the message – that open web ideas do exist and have the potential to be disruptive.

The thing is, that Silicon Valley is about control. Right now, the definition of control is Facebook. It’s a behemoth that can eat up most of the things in its path, whether it’s WhatsApp and Instagram, which it acquires and turned into its pawns, or Snapchat, which it is trying to destroy by replicating it and using its networking effects against.

Look towards the (inter)networking world – everyone needs networking and so it’s not that sexy a field. But even though there’s a behemoth, Cisco, it can’t eat everything up. Every few years a company springs up that can cause serious competition to it based on new technology, or better production cycles, or just a fresh pair of eyes on the same ideas networking has been revolving around since the last decade.

So Facebook doesn’t need to be broken up in order to be made irrelevant, be it the right approach or not.

The F.T.C. should have blocked these mergers

Its first mandate should be to protect privacy.

It’s interesting to talk about privacy only in terms of Facebook, but it is infinitely more important to talk about privacy in a broader sense.

The US needs an agency that actively works with companies and individuals to thwart attacks on our data, to help secure information, and to educate the people about these topics. Right now, there’s a haphazard group of organizations doing this, led perhaps by the FBI, which steps into the case when hospitals and other organizations are attacked.

There needs to be an organization that ‘polices’ the use of data. Of course, there’s no reason to stifle new growth, but this org would work with, and actively target companies that are becoming big, and perhaps even white hat attack them to show weaknesses.

This latter role has been left to private entities till now, and that has worked out fine for most people. But formalizing it means making sure that the US has a pulse on cyber warfare in the civilian realm, which is where it is more active and deadly currently.

Imagine a CDC for cyber warfare and privacy issues.

But there is no constitutional right to harass others or live-stream violence

Mark Zuckerberg cannot fix Facebook, but our government can.

Can they, though? Can either Zuck or any government in the world ‘fix’ Facebook? As an industry, social media can be regulated. As a company, Facebook can be fined and controlled. But as an idea, as a part of the Internet, and as a trend, Facebook is more difficult to control. What needs to happen is that along with the threat of government sanctions, Facebook also needs internal pressure to restructure. That pressure will never come until golden boy is removed from the helm. It was only till Biz Stone and Jack were shown to be totally inept at handling twitter, that people understood that twitter needs some serious work. It’s a great feeling to follow an enigmatic or often just an esoteric leader and believe that they’re doing the right thing. But Facebook’s investors, specially those who care about the effects of the company on the world, should break through that spell and focus on forcing the company to rebuild.

Zuckerberg himself should realize that it is under his own helm that bad things have happened, and we’ve long given him a huge platform to grow and become a leader. But just like Rahul Gandhi, growing on the job is not possible for someone who controls the fate of a billion people. That just doesn’t work. He would be better off stepping away from the plate and letting someone else play while he rebuilds himself and finds out what he believes in beyond just the dominance of Facebook.

Automatic app updates out, this method in.

Automatic app updates are a bad idea. Apple should recognize this by now. In case you, dear reader, aren’t convinced of that, here are some simple reasons why automatic app updates are just no good –

  1. Software is buggy – how many times have you heard that “we shouldn’t get the dot zero version of that software”? It’s almost a maxim in the enterprise world – unless you deeply trust it to not break your current setup, don’t get that update. So why should we be so cavalier about software updates for our personal devices? We shouldn’t let developers decide the de facto time when we get an update.
  2. It’s a vehicle for disruption – and not the good kind. App updates are great if they’re well thought out, streamlined, and work. But more often than not, they introduce changes which wouldn’t sit well with you and your workflow. How many of us regret updating to some version of iOS that slowed down our devices to hell and there was no recourse? Why do we trust third party developers more than we trust Apple in this instance? If I don’t know exactly what is going to change in the update, why should I update it? Which leads me to the next point…
  3. Automatic app updates are evil – Yes, they’re evil. How many times has Facebook slipped in something nasty and you didn’t even know it till you got the update? There are two types of nasty Facebook has slipped into your devices over time – the first is when they change the user agreement. So often, we would go to the website and Facebook would make us check a box and hit Accept before letting us burst out our Likes and jealousy. We’ve all brushed past those to chat with our friends. The same applies to app updates. You open the app to answer the call of a notification and an annoying pop up tells you to just say YES before you can do what you came here to do. What option do you have other than to stab that yes button? The second nasty is the more insidious version – Facebook has been able to slip in all kinds of dirty code, tracking features, and nasty experiments into our apps simply by adopting frameworks that let them remotely update our apps, and by using vague release notes that just said “making some improvements”, even when they were shipping major changes to your Facebook and Instagram experiences. This must stop, and the easiest way to make them stop (even though we’re too far gone now thanks to their remote app update frameworks), is to stop automatic app updates.
  4. It’s bad for security – This goes against everything you’ve ever heard. “Automatically updating software is great! It keeps things secure!” Until, it doesn’t. Software is eating up our life and yet, pretty much all of us are rather careless about the security of our apps and services. For most technophobes, automatic app updates are both a boon, and an excuse to hide behind. “Hey, I keep my apps updated, but I still got hacked!” Well, did you consider 2FA? Did you try to understand whether you’re using insecure communication over insecure networks? Did your app have the requisite features to protect your privacy, like data encryption? Are you using the same password for fifty services? We would all be more knowledgeable about all those questions if we bothered to understand what goes on in the making of our apps, the design decisions taken by the devs, and the shortcuts they take to ship sooner. Which leads to the next point –
  5. It’s a surprise! – it feels great to open an app the first time in the day and notice that something has changed overnight, but more than once, I’ve been bitten by apps that changed their business models, removed features, and made decisions that affect me, without so much as bothering to explain that a change is coming. This attitude is a right that a developer feels about a piece of code that they’ve written, but it’s a piece of code that I licensed from them and is running on my machine. They should not be able to decide how that code changes for me. By removing automatic updates, we’re forcing developers to explain why we should be getting this new update, rather than letting them get away with “we removed bugs!” or the boilerplate crap big tech companies throw at us.

Until things change and developers become better documentation writers, and tech companies stop lying about the code they’re sneaking into our machines, I have one suggestion –

Don’t do automatic app updates. Do expiration-based ones instead.

Right now, automatic app updates are an all or nothing deal. You either trust Apple and third party devs completely, or your don’t. I fall in the latter category and I couldn’t be happier! I know that I’m gonna get exactly what I paid for an app (especially if it’s free), and it’s going to work exactly as I expect it to for a long time to come.

Well, almost. Apps often have massive API changes, or security updates that are absolutely essential. The only way for devs to push those through is to expire the version of app currently installed on your devices, and force you to update (when you open the app the next time, at the crucial moment when you actually need the app). I’ve seen a lot of important updates like this, like when my banks update their APIs, or my insurance firm tells me to get the update else I won’t get continued service, or my grocer decides that I can’t get to my weekly ‘one dollar off’ coupons until I get the latest and greatest app update they’ve pushed out.

OK, that last one is silly. Apps like my grocer and my insurance app should always work. If I’m in front of a cop who’s asking for my insurance info, it would suck if I have to tell her that I have to update my darn app before I can show it to her. Also, why the heck does my grocer need to update the app once a month? Haven’t they heard of APIs?

Situations like those cause me to propose the solution I’m presenting, though, it’s obvious that it should be taken with a pinch of salt, since it’s not the perfect solution.

Here’s what we should do –

Apps shouldn’t get auto-updated. Instead, this should be a deliberate process. We need to be able to approve everything that goes into our devices. Yet, some apps are essentials, and though I don’t open my insurance app every day, when I open it, I expect it to work instead of showing me a banner to update the app before I can continue. So those essential apps should have two options – either I let them auto update completely, or I let them update only when the app is marked as ‘expired’ by the developer. The benefit of the latter approach is that devs should have a legitimate reason, such as changing their API drastically, that should drive app updates. Does this put more strain on Apple’s app approval process? Yes. Let’s make them earn that 30% they take from the devs, and the hundreds of dollars of Apple tax they collect from us.

I’m not interested in the smaller updates. I’m interested in keeping my apps available when I need them. So if I can skip the small ones and only get the big, breaking news updates, I’ll be a happy camper.

But this may not suit everyone. Some people don’t care about how and what changes are coming to their devices, but that’s what got us into this mess before with Apple and the battery issue which Apple effectively cheated and lied to us about, and Facebook and every privacy scandal they’ve been able to walk away from.

I believe that if you want to remain that kind of person, you have the full right. So I would love to see all of these options incorporated into the next iOS, or the one after that. The future is customization and personalized feature sets for everyone. It’s more expensive due to that, but that’s just where we’re headed. Hopefully, we’ll get to enjoy some good software on the way.

A couple of things about the iPadOS.

To me, this is the most exciting consumer announcement at WWDC today.

Everything, from better copy/paste (that terrible tap UI be damned), to the new Apple ID based app sign-in (it’s been a long time coming), to the fact that you see footnotes on the iPadOS page for the first time at about 70% down the page (when they mention speed improvements, which are already a sore spot for Apple), tells me that Apple has finally accepted that the iPad is not just a ‘bigger iOS device’ but a thing in itself.

Some of the ideas they’re throwing at us are reminiscent of OS X jiggery-pokery (like Today widgets, and App Expose and app spaces), while others, like Apple Arcade (gaming subscription service; akin to Amazon FreeTime Unlimited) seem like good improvements that Apple needs to keep their services business growing.

Apple’s long road to merging Mac and iPad app development is on the cusp of breaking out, and their continuity and handoff features are getting better and better.

The best part was the range of iPads that this new OS supports, which is a good job, well done, Apple.

I realized recently, that we use our iPads horizontally almost exclusively, and Apple should ideally twist the Apple logo in the back by ninety degrees. Perhaps this software change is the first step to embracing this new mentality.

Notes on setting up Freedbin

Here are some notes on how to setup Rachel Sharp‘s Freedbin, which is a docker version of the popular Feedbin RSS feed reader.

I had some trouble setting this up on my Windows 10 machine. A lot of issues I faced had to do with setup and environmental variables. I don’t think I faced any real issues due to my host being Windows, other than the terrible thing that Windows 10 itself is. Anyways.

First of all, I had an already running version of postgres for other docker images, so there was a conflict I was not able to resolve, since Rachel’s docker compose file calls its images directly from Docker Hub which are not easily configurable. If someone can guide me to using the same postgres instance for two docker projects, that would be great! Right now, I have two docker containers running postgres.

So, (real) first of all, I downloaded the repo to my own machine to make modifications.

To begin, in the docker-compose.yml, I changed the name of the service from postgres to postgresfeedbin and changed the port to 5433 instead of the 5432 which was already in use.

I also changed the app image from rachsharp/feedbin to a local name freedbin_app and added the build line, so I could build the changes I’m putting in.

I added the restart unless-stopped line to ensure my containers never stop! 🙂

There’s a discussion on the github repo about replacing Postlight’s Mercury service with our own open source version of the same. Postlight has sunset their own servers, so it makes sense to use our own. One alternative is to use Feedbin’s own extract service, but that is available only in the newer version of Feedbin, which Rachel’s docker container doesn’t use. Instead, I already had a docker image of Mercury from the docker hub that I’ve setup for tt-rss and other projects, which I just connected to, using the MERCURY_HOST environment variable. In this setup, the MERCURY_API_KEY doesn’t do anything. Mercury just ignores it and it seems that so does Feedbin.

All of the above are summarized here, as part of the docker-compose.yml file –

    # image: rachsharp/feedbin
    image: freedbin_app
    build: .
    restart: unless-stopped
      - MERCURY_API_KEY=abcd
      - SECRET_KEY_BASE=abcd
      - POSTGRES=postgresfeedbin
      - POSTGRES_USERNAME=feedbiner
      - POSTGRES_PASSWORD=feedbiner
      - PGPASSWORD=feedbin
      - DATABASE_URL=postgres://feedbiner:[email protected]:5433/feedbin_production
    image: postgres
    restart: unless-stopped
    command: -p 5433
      - POSTGRES_USER=feedbiner
      - POSTGRES_PASSWORD=feedbiner
      - 5433:5433
      - 5433
      - postgres_data_feedbin:/var/lib/postgresql/data

I further had to make changes to the file as here –

if psql -h postgresfeedbin -p 5433 -U feedbin -lqt | cut -d \| -f 1 | grep -qw feedbin_production; then

As seen, I’ve just pointed it to the new service name and port.

At this point, the service was able to start. I was able to create an account and get in and add feeds. However, I follow a lot of feeds and importing an OPML file makes good sense for me. But, the import settings page was failing to import due to a failed AWS config. I looked up solutions and one way around is just to disable a connector called CarrierWave, which connects to AWS. Guess what gets disabled if you disable CarrierWave? The import/export page.

So, I went about creating an S3 bucket on AWS, getting credentials, and making the S3 bucket publicly accessible. I don’t know why this is the case. Perhaps if we use a newer version of Feedbin, these issues will not pop up, but in Rachel’s version, this is the case, so I went with it.

After I made my S3 bucket and got the AWS credentials, I added them to the Dockerfile as here. The variables are already there, just need to be filled up –

ENV FONT_STYLESHEET=|Domine|Fanwood+Text|Lora|Open+Sans RAILS_ENV=production RACK_ENV=production AWS_ACCESS_KEY_ID='my_key_id' AWS_S3_BUCKET='my_bucket_name' AWS_SECRET_ACCESS_KEY='sooooo_secret!' DEFAULT_URL_OPTIONS_HOST=http://localhost FEEDBIN_URL=http://localhost PUSH_URL= RAILS_SERVE_STATIC_FILES=true

There’s one more catch. The Feedbin code uses its own version of CarrierWave called CarrierWave Direct, which defaults to try to use the ‘us-east-1’ region for AWS. If your bucket is there, you’re fine. Mine is in ‘us-west-1’, so I had to go into the /config/initializers/carrierwave.rb file and change the following to add my region –

config.fog_credentials = {
      provider: "AWS",
      aws_access_key_id: ENV["AWS_ACCESS_KEY_ID"],
      aws_secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"],
      region: 'us-west-1',

Finally, I am ready to build and deploy. Running the following command –

docker-compose build

You’ll notice a new image in your docker images list –

$ docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
freedbin_app                  latest              20a0334cd11c        30 minutes ago      1.27GB

and now you can deploy –

docker-compose up

It takes a while, as Rachel mentions somewhere, but all services come up perfectly, and I was able to import my OPML file. I noticed that the S3 bucket holds the lone OPML file, so perhaps it won’t cost me any money? Eventually, once I know that the import is done, I’ll go in and delete the bucket.

Big, big thanks to Rachel Sharp for creating Freedbin. It’s a great way to get started on Feedbin and while I was working on setting this up, I learnt how to use docker, created my first Docker container and uploaded my first project to Docker Hub. Hopefully, I’ll be able to build Freedbin from scratch using the latest Feedbin code and Feedbin’s extract service, and using the principles set down by Rachel.

Words Matter in Interfaces

Visual design is powerful, but the words are what people quote to one another.

And they are the only part of the design that survives across time and media types. They can be held intact in a human mind.

Erika Hall


As soon as I read this quote on Joshua’s blog, I thought about my reluctance to use Snapchat. I once had a conversation with someone who is an ardent user of the social network and after explaining a few basics of the app to me, he grew weary of my inane questions and simply said, “if you’d been with the app since the beginning, this would not feel weird to you.”

Indeed, I see it as this – visual design needs a lot of historical context to understand. If you’ve seen it evolve over time, you can understand it well. But if you are dropped into it anew, it’s all strange and confusing to you. A new user might even be scared of clicking things, if they have no idea what they’re doing.

I love playing a game called Egg, Inc. For the first few months of playing the game, I would notice these cute little drones flying around. I thought they’re just an easter egg by the developer. Unrelated, I would notice that at random times, my resources would shoot up, by random values which made no sense to me.

While reading a post on reddit one time, I discovered that you’re supposed to smack those drones out of the air. See, in the game, you’re running a chicken farm, and you believe those drones are a violation of your space, so you can shoot them down, for a reward. Sometimes, fast moving drones appear and shooting them down is difficult but awards you with an exponential value. All of this would be in the onboarding, but I can never recall there being a specific time when I was told to hit the drones. In a way, that is an easter egg – you’re supposed to discovered on your own that those cute flying objects are actually an annoyance to your character and shooting them is the right thing to do. But I felt betrayed. How many months had I wasted not knowing about this growth hack?

I can’t expect a game of all things to label everything. The elegant interface of Egg, Inc, would only be made more clunky by the addition of ugly labels. But I can expect this from Snapchat. Their job is to make it easy for me to use their interface, specially if I’m a new user.

An interface made up entirely of swipes is revolutionary, but a hindrance to people who have not understood it from the beginning. The same is true for all visual design, and it’s worth remembering for everyone who is involved in the task of designing interfaces.

n.b. Notice how quickly Erika’s ideas were attacked by someone who puts more value in visual design than textual context. I would have expected people to have differing opinions about the topic, but one opinion doesn’t invalidate another. It’s an opinion, not a fact.

My wife asked me the other day – why do you use twitter? Isn’t it full of bile and anger? This is why. Great ideas are often posted to it, and inquisitive minds go where the water of knowledge is.

Reeder 4 is here?!

I’ve been experimenting with Tiny Tiny RSS for a couple of weeks now, to figure out if I’m done with Fever RSS. Part of it is that Fever runs on a Digital Ocean VPS and I’d like to reduce the load on that server as much as possible.

I run TT-RSS on my home PC and get access to it using ZeroTier wherever I am. My app of choice for it on the move is Fiery Feeds. It’s a beautiful app with an amazing, rich feature set. But the main reason I use it is because Reeder doesn’t natively support TT-RSS.

But, I’m learning that I’m set in my ways. the TT-RSS web app feels just as dated as Fever, and there are some features in Fever that I really enjoyed, which I miss in TT-RSS. Since I’m looking at two dated, self-hosted RSS readers, why not go with the one I’ve used more?

Also, Fiery Feeds is gorgeous, but it’s not Reeder. Reeder is familiar and cozy. It’s got matured syncing and great UX. Fiery Feeds comes close, but there are some things which are just irksome, such as the way it opens up articles as a pop up. The cadence of Reeder’s panes is just beautiful to work with.

Today I learnt that Reeder 4 has been out since April 25th. At an absurd cross-device cost of $5, it’s a steal for all the features Reeder gives you.

But here’s the flip side – I only use Fever (and now TT-RSS) and while TT-RSS has a plug-in for Fever, I’m more inclined to just use Fever. Which means I have no space for using any other paid or free RSS reader service. So I’m really restricted in what I’m doing with Reeder. Further, though I’ve started using Instapaper as my read later solution, I’ve never really understood the point of using Reeder for Instapaper. It’s fine to skim through, but wouldn’t you rather use the Instapaper apps to read the content? For me, the highlighting and notes functionality of Instapaper is essential. How does one ignore that to read content on Reeder?

Lastly, there’s the demise of Mercury. Mercury has been my savior in this mess of RSS feeds. My TT-RSS installation has a Mercury plugin that cleans up and extracts content from the feeds. It really just works, and since they’ve made it open source and unavailable as an API, Reeder is bound to suffer. Reeder 4 is now experimenting with something called Bionic Reading and it’s a hit or miss. We’ll see.

So here it is –

  1. I’m tired of TT-RSS and untired of Fever (for now).
  2. I love Reeder 3 and Reeder 4 is ridiculously cheap for an upgrade. I have an older iPad Pro, so Reeder 3 works really well for me. But buying 4 means supporting Rizzi in the amazing work he’s doing.

  3. Fiery Feeds is awesome and pretty and useful, but I don’t pay for the subscription, so I don’t get to use the fancy automatic folders that it creates.

  4. RIP Mercury

  5. I really want to get my RSS feed reader off the VPS and onto my local setup, secured and made accessible through ZeroTier.

How many people reading this have already bought Reeder 4?

How is it?

Have you used Bionic Reading?

Which RSS reader service do you use it with?

Do you read Instapaper articles on Reeder 4? How is that experience?