Wednesday, October 10, 2018

Moving on

My new blog is here: https://www.rendall.tv/blog

An old post about my angst over using Blogger is here on Blogger, so this is quite overdue.

Also long overdue: moving my website from an old-style web host to which I paid $35/month. For now, I'm moving to Netlify, but the migration is not yet complete, which means, as of now, I get a 'This site can’t be reached' error. So, not sure if that's a propagation issue or what, or whether I'll give up and go to github.io. But by the time that you read this, days, months or years from now, it's either up and running or I have transcended such mundane concerns for some reason.

The new blog will likely be generated using Hugo, but I'm not sure about that, either.

Chrome extension: Twitter 'likes' Hider

TL;DR: I made a Chrome extension to hide Twitter posts that are likely designed to waste my time.

Here it is:  https://chrome.google.com/webstore/detail/twitter-likes-hider/dkcgnebncpfljfaaplmedjnfjifffagj 

The source code is here:

https://github.com/rendall/twitter-like-hider

The long story:

I wrote a Chrome extension that hides specific tweets from my Twitter newsfeed. Those tweets being headed with 'So-and-so liked this' or 'Thus-and-such follows So-and-so'.

Twitter, the company, really wants us to spend as much time as possible on its site, and so it deploys various tricks to bypass our rational time-management skills (this strategy of distracting folk to keep them spending is as old as casinos and suburban shopping malls). One of those tricks is to sprinkle throughout your newsfeed posts that someone else 'liked', or a post from someone that someone else 'follows'.  I would bet a lot that the Twitter 'time-suck' algorithm has somehow identified these as a particular time-suck for your specific demographic.

e.g. Are you a left-leaning, 20-something urban professional living on the East Coast of the US? Take a look at this tweet, that asserts in a spectacular smug and condescending tone that only the Republic party can save the country. And, oh look! Lots of interesting commentary...

 And, while you can mute people, or turn off their retweets, you cannot turn off these 'like' and 'follow' tweets. At least, not through Twitter's user interface.

So, I wrote a Chrome extension that does just that, and helps me separate the signal from the noise.

It does not always work reliably, and I think that's a timing issue: sometimes when the extension triggers, Twitter has not yet finished loading those tweets. So, sometimes it will take a whole minute for all 'like' and 'follow' tweets to hide.  However, you can push the extension button and trigger it manually. I'm not sure if I will ever spend the 80% time to grind down that 20% to make it shine. Perhaps, if I hear of literally anyone else in the world using it, I will make that effort.

The name that I used on the required screenshot is 'Alexander Stubb'. It was kind of a random choice, but this name is shared by a Finnish politician from the center-right party Kokoomus (who recently started a campaign to be EU President), and I think I should change that, because it's distracting. Those who know who Alexander Stubb is are likely to wonder if I'm making some kind of political statement, and what it could possibly be. But, alas, no, I'm not making a political statement.  I think I used the name because at the time it felt like an Easter egg.

I mean, I do vaguely disapprove of Kokoomus, because I hear they want to replicate some of the demonstrably failed policies that have been so divisive in my homeland. But I have not yet heard a steel-manned argument in favor of them, and until then I cannot bring myself to hold a strong opinion about them either way. Finnish politics is a bit beyond my ken, at the moment.

The only remaining question is "Why?"  Why, if Twitter is bound and determined to present you with click-baity nonsense, stay on the site?  Why not just quit?  Why spend the time to write an actual extension?  Well, there are some great gems in that garbage.  Here are a few!

Ruins: Ancient, Modern & Imaginary
A raid in the Baltic Sea
Finland is made of...
How to find stuff in git

Wednesday, May 16, 2018

Bookmarks: productivity

Owning the Role of the Front-End Developer

Ethereum thoughts

1) A smart contract to force/encourage/cajole/blackmail yourself to do something. You place money in an account, and it is released to you if certain conditions are met, or else it goes into another account and is given away according to the terms of that account.

2) An account that, when it receives money, disburses it to a random one of a set of charities.

3) Conditions met: well, maybe for me to become better at Finnish, I can add a significant amount of money into an account that will release the money only if I show a specific, measurable improvement at Finnish at some specific time. Otherwise it goes to a charities' account as above.

4) This evaluation of this 'improvement' would be determined according to some happening, perhaps on the internet. Perhaps a committee of some kind votes via some kind of secret ballot.

5)  Offering a bet on some event that could be independently verified (say, by AI, or by frequency of mention on the internet or whatever), two bets could create a prediction market. A prestige prediction market could be created by secretly approaching experts, and having them create accounts. We let those who sign up know who else is in the prediction market

6) Or perhaps! Anyone can sign up, but their ability to predict is tracked. They achieve score and ranking (still anonymous). q.v. Ray Dalio's algorithmic decision making.

7) If two anonymous accounts want to agree, they can share their real information with each other.

8) Someone wanting to check the results of the prediction market can see the prediction score of any individual, and use it to increase the accuracy of their target predicition, by only including those who score highest in a particular topic.

Bookmark: design, especially IxD

A thread from Twitter on rigor in IxD

Friday, January 5, 2018

An American's Guide to Washing Dishes in a Finnish Home

When you're in a Finnish home, don't shove every dirty dish into the dishwasher and switch it on. Apparently, many Finnish homes have old dishes, and many old dishes have glazes that will be removed by heat and chemical reaction with dishwasher soap. If there is one phrase you never want to hear, that phrase would be "Oh no! This was my great-grandmother's plate, and now it's ruined!"  You will lose friendships over this.

Full disclosure, I did not ruin anyone's great-grandmother's plate. I did, however, remove the polish from someone's decades-old ice-cream scoop. But there have been great-grandmother's plates rescued from my dishwasher.

I have tried to ban in my household the use of dishes that cannot be washed in the dishwasher.  They are to be used only on special occasions, like when we have completely run out of other clean dishes.

What we have here, I believe, is an example of culture clash, and in broad strokes, I'm tempted to claim that Americans appreciate old things only to the extent that they are convenient. Old, inconvenient things will be banished to the attic or a museum.  This is not necessarily a bad thing, or a criticism, just an observations.  Finns seem to, generally speaking, not only appreciate old things, but use them in every-day life.

At least, in my circles.

Update: 10.10.2018

After some consultation, I have discovered that there are many Americans who keep and use old things, and many Finns who do not. I have not really yet discerned a specific difference between who does what and why. While many American Southerners do keep and use old things, others do not. While many urban people of either Finnish or American nationality do not, many do.

Anyway, be careful when washing unknown dishes! You could lose a friend!

Friday, November 10, 2017

BMapp update

Well, the Burning Man Map App is coming along nicely. It's at the stage where I'm willing to show it to a UX designer to get some tips.  I've also moved it to another host, served from here.

There is still a list of things that needs to be done, but I think it's really getting there!

https://garbage-collector-acronyms-27351.netlify.com/

Saturday, October 7, 2017

Update and partial FAQ

These is a FAQ for the questions that I frequently imagine that I am being asked.  As you will see, my internal interlocutor can sound a bit judgey.

What's going on with BMapp?

I am continuing to work on BMapp apace.  I'm keeping it on a private git repo at Bitbucket for now.  I may open-source it at some point, but there's something irrationally nice about its being a private solo project*.  I've committed to Inferno, Redux and Rx.  I'm looking at redux-observables, since it's using two libraries I'm already using.

What's up with all the Bookmarks lately?

Well, there is not really a public social bookmarking application anymore, since the demise of del.icio.us.  When I find or build one, I'll move all of those to it.  There are a lot more in my chrome bookmarks.  If I added them all, it would look even more like spam.

What's up with using Blogger?  I think my grandad used Blogger once. All the cool kids use ${some_other_thing} or roll their own.

Rolling my own or moving it is in some distant future plan, a bit like my social bookmarking plans or the open-source social media plan. I started this blog waaay back nigh on 10 years now to keep track of a specific collaboration, almost immediately abandoned it, and rebooted it when I felt the need to have a public notebook.  It is quite limited, but so far I have not bumped up hard against those limitations. It does the job. The risks are that it will be sunsetted by the notoriously fickle Google.  Or that webstandards will leave it far behind.  (Does it even have any full time staff?)


* "Rather than its being a public solo project?  A publicly ignored solo project?  A project that's so stunningly fun that someone will fork it and do something more interesting?" asks my internally judgmental interlocutor. "Don't worry about any of that.  Open source it!  Do it!  Do it! YOLO!" he shouts.

Wednesday, September 20, 2017

Bookmark: Offline-only content

I may consider doing something like this for the BMapp: Offline-only content.

https://chris.bolin.co/offline/

Friday, September 15, 2017

Bookmark: The Jupyter Notebook

The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning and much more.

http://jupyter.org/

Thursday, September 14, 2017

Bookmark: Web Workers

Web Workers makes it possible to run a script operation in background thread separate from the main execution thread of a web application. The advantage of this is that laborious processing can be performed in a separate thread, allowing the main (usually the UI) thread to run without being blocked/slowed down.

https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API

Baby perspective on adults

Adults probably seem kind of like monsters to small children. Besides the obvious things, like that we are large and talk in loud, deep voices; we also do weird, dangerous things in the kitchen like boil water and cook food, which we then eat as hot as we can handle it. Hot coffee, hot soup, food with molten cheese toppings and such probably seem like monster food to babies; which we gobble up with huge bites.

But for that matter, babies seem like weird little creatures to older children. Especially newborns who can't do much except cry and just lie there like blobs. Adults are always boiling their bottles, wrapping them delicately in sterilized fabrics and such. And they smell bad quite often.

Like adults, really, if we're being honest.

Wednesday, September 13, 2017

Configuring Typescript in Visual Studio 2017

Be aware that there are 2 places to configure Typescript behavior in Visual Studio 2017 (and older, I assume).  They do not communicate with each other.  The first is the tsconfig.json file at the root of your project (the one you get when you type tsc --init in the command line).  The second is in the properties of your project (right-click the project folder in Solution Explorer => Properties => Typescript Build).

If you find your Typescript behaving in a way that is different from what you expect, make sure that both config files are synced.

For instance, despite my explicitly putting'compileOnSave':false in tsconfig.json,  javascript files kept popping in next to my .ts files at every save.  It was because Compile on save was checked in the project properties.


The More You Know!

Tuesday, September 12, 2017

Bookmark: Fake data

Fake Online REST API for Testing and Prototyping
http://jsonplaceholder.typicode.com/

Quick & simple image placeholders.
https://placeholder.com/

Bookmark: Stack Share

Discover & discuss the best open source and SaaS tools
  • Discover new tools and services 
  • See side-by-side comparisons 
  • Share your tech stack 
https://stackshare.io/

Monday, September 11, 2017

Bookmark: Tech Conferences Calendar

I'm maintaining a calendar of tech conferences and conventions around the world, mainly programming related. I add them as I become aware of them. If something is missing, here, or you'd like to help maintain it, shoot me an email. Here are public links: HTML and iCal format.