Tuesday, January 30, 2018

the stream vs the froth

A few years ago I wrote on Facebook. At the time I wrote
But Facebook banks on one brilliant idea, one other sites leverage as well: empowering users to assemble a collated page/wall/feed of content from people the user finds interesting. Sites using this trick -- Tumblr, LiveJournal, Twitter, Instagram and FB all had different hooks (visual collectors, diarists, pithy bon mot makers, snapshotters, and people you know, respectively) and of all of those, FB's "people you know in real life" seems to be the most compelling in a universal kind of way. 
I think that idea still holds up.

Katie, a new cow-orker, is a big fan of Reddit, a site I never got into... I read a tumblr scrape of Showerthoughts but something about Reddit never clicked for me. Maybe I was just frustrated how those discerning souls who do the group moderation system arbitrarily raised one of my posts but then those swine left my other pearls sadly neglected? Or maybe I was nervous by reports of it as an alt-right, 4-chan-lite... or maybe I was just sick of hearing Redditors humblebragging about how frustrating it was to see all the stuff they had seen on Reddit a week or two ago propagate to the hoi polloi on Facebook...

But really, I think the problem is it's just too much! There are so many topics going all over the place, and in a few hours they drop off any channel's page- it triggers my FoMO (Fear of Missing Out) too strongly, and paradoxically it's easier to just leave it alone entirely than risk being reminded of how big the universe is compared to my capacity to pay attention to it. (Twitter was the same way for me 'til I managed to sort my followed folks into lists, and generally I just pay attention to the once called "funny")

If you can think of the collated wall/feed as a stream, Reddit is foam, just a constant froth of new stuff, and the best way to take it in is to sample it as desired, and then leave it alone. It seems a fool's errand to try and keep up with any but the sparsest of channels. I'm not sure which other popular sites work that way, going (topically) wide rather than (chronologically) deep ... Pinterest maybe?

(Again, I'm not judging any kind of inherit worth, just trying to think about how they do what they do...)

Contrast to tumblr, where I find it rather easy to follow a group of people making posting interesting stuff, and I can keep caught up without too much of an investment of time daily. Or twitter, and how outraged its fans get when twitter throws in "In Case You Missed Its" and otherwise dilutes the pure chronological ordering. (I used to hear people clamoring for that on Facebook, but I don't think they realize what a firehose they'd be setting themselves up for.)

I really liked Usenet in the 90s. If you don't know it: it was/is an Internet based message board system, forming when the Internet was mostly academic sites and a few big tech companies. Unlike modern web forums, it was "bring your own interface"- it was kind of a big shared distributed database of messages, and you could use any of a variety of "readers" (generally text-based Terminal things) There were hundreds of "newsgroups", each about a separate topic, and each group would have its own cast of characters and general guidelines for posting, but there was a shared sense of "netiquette" ground rules as well. The level of discourse was pretty high, though pushed down every September with a new batch of college Freshmen, but then AOL opened up a feed and it became "The September That Never Ended"...

Anyway, I could see Reddit having that kind of appeal - one login-shopping for all your topic needs. Its format for conversation is very different though... Usenet tended to be more conversational, like shared email threads, Reddit seems to be more drive-by shoutings. Also, many Reddit channels have a large percentage of outward links, something that really wasn't an option during most of Usenet's heyday.

Anyway, for future reference, here are the channels that Katie recommended:

askreddit
askscience
boston
explainlikeimfive
lifehacks
lifeprotips
mildlyinfuriating
mildlyinteresting
politics
whyweretheyfilming

Saturday, January 20, 2018

gruber's 2002-era daring fireball

I was a fairly late switcher to Mac (2013 or so, with some dabbling beforehand) so reading 2002 Daring Fireball's That Finder Thing - the then new-ish OSX paradigm for navigating the file system, was interesting - it's still a bit of a hybrid mess now to be honest, and I could see that a return to a "spatially-oriented" paradigm, where a given folder (and its view) could only exist at one place on the screen, so to speak - would have been cool - though  I don't understand if you can navigate down to a subfolder without leaving a trail of containing folders in its wake...

I think it was something about the demise of of Textism's Dean Allen led me to this page, where Gruber talks about the origin of Daring Fireball, especially the name.)

Friday, January 19, 2018

how not to copycat

Outlook just upgraded itself.

I erased everything in my inbox and saw this
So first off, that's a blatant ripoff of what Slack has been doing for a while:
Second off... that's kind of off-brand for Microsoft Office, I'd say? They're vibe is more professional than goofy, you know?

But finally... "for the DAY"? That's just plain stupid, a way premature sentiment for 2:30 in the afternoon.

(A cow-orker points out that Google's Inbox program was doing something similar, encouraging/rewarding "inbox zero" with a sun icon, but no "inspiring" text)

Tuesday, January 16, 2018

bad ui can be scary as hell

via https://twitter.com/CivilBeat/status/953127914618302464:

This is the screen that caused a missile alert, this is not a drill message to be sent to tons of folks in Hawaii. The user clicked "PACOM (CDW) - STATE ONLY" under "1. TEST Message" rather than the correct "DRILL - PACOM (CDW) - STATE ONLY" a few lines below. (Since then, BMD False Alarm" was added as a way of addressing the issue.)

UI matters.

Monday, January 15, 2018

automatically building when saving on mac

Playing with Batari BASIC, I thought it would be great to be able to run the build shell command every time I saved.

"fswatch" had lots of Google juice, but I couldn't get the xargs part to work.

filewatcher seemed a lot more straightforward.

I suppose I already had Ruby and RubyGems on my system (one of the weird things about having an old laptop, especially one that used to be a work machine, is that you lose track of what comes preinstalled and what was there from some previous task)

I had to
sudo gem install filewatcher
and then my command (run in the work folder) was something like

filewatcher '*bas' '2600basic.sh $FILENAME'

Easy-peasy!

Saturday, January 13, 2018

bad artists copy (and make animated gifs in imagemagick)

This morning I made the animation you see to the right - actually there's a mildly interactive p5.js app badartistscopy.

It might seem mildly interesting, but ultimately is far less cool than the inspiration, Line Girl, by Low Sugar Eye Candy who seems to have a lot of experience playing with "Girl with the Pearl Earring"

I haven't done much image processing in Processing or P5 - in p5, it is hella slow... watching it loop through and grab each pixel from the image felt like watching a BASIC program on a Commodore 64. I ended up having to take have a variable and just sample every "X" pixels.

I snagged an in-progress version and called it a prototype and it hints at how it's all done - I go through and take an RGB sample, and then average it to get a gray tone. Each particle then looks at the gray value closest to under it, and then one next to, and the bigger the contrast, the "slower" it goes (by adding less to its x position)

I don't think the original Line Girl is doing that much different - just some better choices with how particles are connected, and then tweaking some values (along with better raw source material)

I was surprised at how easily it loops - a ten frame animated GIF captures it. I recorded ten frames from the middle of the animation. At first I used the EZGif site, but I could have just used ImageMagick: convert -loop 0 *png run.gif

Thursday, January 11, 2018

mac hack howto: add number captions to series of images and make PDF via p5 and preview

For a reading group I had made a series of book-excerpt screenshots.

For ease of distribution, I knew I could open all the files in Mac's "Preview", then go to File | Print then "Save as PDF" in the PDF dropdown in the lower left of the dialog.

Having done that, I realized that it would be easier to talk about the pages if they were numbered. I went to my P5 boilerplate page and then made the code that follows.

I put all the images in a directory called "rightraw/" in the same folder as the p5 html. I couldn't dig up an easy way of reading the folder contents, so I went to the image directory and did a
ls *png > ../files.txt

(To load the page I had to run a baby webserver, like it says on the boilerplate page, otherwise the script can't load the files)

So nothing is rocketscience about this hack but I was pleased I was able to get it done and redo the Preview PDF trick before having to head out for the day. Some folks might get adept with ImageMagick or Photoshop macros or whatever, but p5 is a pretty good go-to for me.


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>addcaptions</title>
<script src="p5.js"></script>
<script>
var counter = 0;    
var files;
var fileprefix = 'rightraw/';
function setup(){
    var canvas = createCanvas(500, 500);
    canvas.parent("canvasParent");
    loadStrings("files.txt",kickOff);
    
};
function draw(){
    noLoop();
}
function kickOff(s){
    files = s;
    procNextImage();
}
function procNextImage(){
    if(counter >= files.length) return;
    loadImage(fileprefix+files[counter],showPic);
    counter++;
}

function showPic(img){
    resizeCanvas(img.width,img.height);
    image(img,0,0);
    text(""+counter,20,20);
    draw();
    saveCanvas(counter+".png");
    procNextImage();
}
</script>
</head>
<body>
  <div id="canvasParent"></div>
</body>

</html>

Wednesday, January 10, 2018

npm and new cities for trojan horses

I’m harvesting credit card numbers and passwords from your site. Here’s how. is an all-too-plausible sounding way credit card stealing code could be inserted into a popular site; the tl;dr is "reasonably clever code to steal from typically named fields inserted as a npm dependency utility for a framework, with a few other masking techniques applied". (In this case a colors-in-the-console library.)

The person who posted it at work mentioned its similarity to Reflections on Trusting Trust, a seminal ACM piece by Ken Thompson - how a compiler could be warped to detect login-program-looking C code and produce a binary with a gaping security hole.

Because I find writing simple code to do simple things - even when it is code I've basically written before - often more satisfying than learning how to use someone else's code to do the same thing, I'm at bad risk for NIH (Not-Invented-Here) syndrome, where I say "Make Vs Buy? Let's Make!" as a kneejerk response. But with links like that first one, and the story where removal of an 11-line "left-padding" module broke the build for a thousand places... I have mixed feelings about my own biases being confirmed that way.