In the mood to work today. Coding Soundtracks playlist:
Swift amazes me. A beta language that breaks your code every 6 months, a type system so totalitarian and inescapable it makes BDSM Haskell look like a vacation (and apparently nobody's read Gödel's paper), the founder abandoned it to go work on cars, Apple won't ship production code in it, compiling burns your fucking CPU to the ground for 10s of minutes for code C can do in seconds, and after 3 years Xcode still can't refactor it.
And stupid motherfuckers write their production apps in it. 😦
I know Objective-C is hard. It's C plus Smalltalk, both of which are subtle and take a year or two to learn. [brackets scare:theNoobs] && dot.syntax.isOverloaded;
But the tools fucking work. Dynamic code makes programmers efficient. A more elegant weapon for a more civilized age.
My editing weapon of choice is BBEdit: It Doesn't Suck™. Why? I want you to read the typical release notes:
Attention to fucking detail. Best $100 I ever spent (it's cheaper now).
On iPad I use Textastic (has regexp) or Editorial (has scripting filters), but they're amateur hour in comparison.
If I have to shell in and can't edit remotely & upload with BBEdit, I'll use vi, which I used for ~20 years (actual vi, STeVIe, Elvis, & Vim).
Oh, and for iOS/Mac apps with a ton of UI/framework shit, I use AppCode. BBEdit for clean C/Obj-C and I can just xcodebuild from Terminal. As the avatar says, STOP Xcode!
It's a hell of a thing. Apple had a reasonable but limited Project Builder/Interface Builder pair of apps from NeXT. PB could set an external editor (BBEdit) so I was happy. Then Xcode combined them and lost the external editors, and every version since has been worse, slower, crashier, renders ASCII text as Russian, less capable of even simple refactors. Now it just shoves fucking Swift (C++ for masochists) down your throat and shits 10k messages into Console so you can't debug.
For the last few weeks, I've been getting into Mastodon, and last week I closed my Twitter account.
Begin personal history with Twitter:
Twitter used to be a good outlet for my humor, and I met a lot of people I like there, but it's always had a dark, abusive side. If you run into a clique of jerks, you may have a hard time ever avoiding them.
When App.net came out in 2012, I left Twitter and went there, and met many more, much nicer people; the voluntary community, longer posts, and the secondary tools like Patter chat rooms (App.net was "app" because it made it easy to build other services using the same identity) all made it more pleasant. Sadly ADN was never funded well enough to keep growing, the originally very dynamic app community fell apart (raise a toast to Bill Kunz's Felix) by last year it was a ghost town, and this year it shut down.
I had a second run at Twitter, being much more careful to prune my followees (political whiners, rude punk-asses, and marketing douchebags got booted) and mainly lived in an isolated bubble of a few dozen friends, only dipping into the main timeline when I was very bored. Not perfect, but I wasn't too unhappy. Until the election season and the months since.
Now Twitter is just hate; even non-political posts all seem to be people having massive personal problems and snapping at each other, nothing but raw exposed nerves lashing out. There's no fun or laughter, I don't want to live in a place where everyone is screaming or crying all the time. The uncertainty of Twitter's future and their seemingly random engineering changes, certainly doesn't help.
So when Mastodon got its first major publicity, I tried it out, on the Mastodon.social instance. The load of users on there flooding Local and Federated timelines quickly drove me to try smaller instances, so I'm now @email@example.com (a cyberpunk-themed instance) as well as @firstname.lastname@example.org (an OSR RPG instance). Within a week it was obvious that Twitter was done for me.
End personal history.
So what's the draw?
- Longer messages. It's hard for me to write anything meaningful without multiple tweets, but a 500-char Mastodon post ("toot" on standard instances, but "ping" on cybre.space) is pretty good. I live-pinged watching Arrival and Rogue One which would've taken a dozen tweets or a screenshot of a Notes page, and still left out detail or snark. I still need a blog for longer thoughts like this, but the intermediate space is covered.
- Home timeline can be kept small, just people you want to follow.
Local timeline of people with common interests, everyone on your instance. This is why you go to a smaller instance rather than Mastodon.social or other giant user spaces.
Federated timeline of everyone that anyone on your instance follows, which after a while is like the old Twitter firehose or App.net global timeline, just madness scrolling by. Federated is useful for finding people you'd never meet otherwise, and following them.
Culturally, people put politics, spiders, clowns, memes, and other horrible subjects (as well as nice things the anti-fun people hate, like pornography) under Content Warning, so you have to click a button to see it… Or choose not to.
What's not so great yet?
- Not as many users. Yet. Mastodon's been growing at hockey-stick rates, currently nearly a half million users on Mastodon instances. Some of my friends have made it over, but not everyone believes yet, and probably some won't get out of the burning house of Twitter.
Politics could still wreck it. There are some far-left-wing and far-right-wing factions out there, and little contact between them, but they're both intolerant and ready for war. I urge everyone to follow my philosophy:
Be the STFU you wish to see in the world.
Client apps aren't that great. I'm using a browser on desktop, and Amaroq on iPhone (where it's adequate) and iPad (where it's an iPhone app). But this is a far cry from Twitterrific, it's like 2008 all over again. The lack of mute filters other than a regular expression on home timeline is crippling when memes spread.
See also: Sarah Jeong's Vice article