Dabitch.net - Everything is so random there must be a pattern

Hi, I'm Åsk, I'm a geeky creative director. Here I share whatever is on my mind and the occasional script.

Dabitch.net - Everything is so random there must be a pattern

Paypal shuts yet another account down

Paypal shuts yet another account down

The concept of credit cards and digital cash seems so convenient, with no heavy coins to carry, and no need for purses at all in the future when you can just skip the phone altogether and use your fingerprint everywhere. Or your DNA. Gattaca isn't that far away, is it?

In Sweden, which has rushed toward the future with the goal of being a cashless society asap, everything from public transportation to small corner shops will not take cash. They will, however, take all the new-fangled phone blipping, swishing, and whatever else was invented while I slept. No problem.

Way back in the dawn of the internet, there were several complicated ways of getting money sent over the wires - once I was mailed 2 dollars in US cash to get an account at Adland, but the person who sent me that forgot to include his email so I couldn't give him an all-access account. I also used a credit card system that nobody trusted because "it was the internet", so people would email begging for free access all day long.

Enter Paypal, which suddenly exploded as people were selling things on the internet and wanted a smoother way to send and receive money. A great solution to the issue, it was, until Paypal began shutting vendors down for all sorts of reasons. Paypal shut Adland down right before the superbowl in 2004, because we had an article about an Opium Perfume ad, with the image attached.

I've learned to not monogamously commit to third-party anything since then, but Paypal skyrocketed to the number one "internet money" bank and is now used by billions of people around the world.

Recently, the "Paypal shut down X" headlines have been quite numerous. And these are worse blunders than trying to shield people from seeing a stamp-sized image of Sophie Dahl's nude breasts.

Two weeks ago Paypal shut down Flipper Zero, a fun little device inspired by the pwnagotchi project that can interact with radio protocols, access control systems, anything with infrared, bluetooth or NFC and is pretty much the ideal thing to get me for Christmas. When Paypal froze their account, they locked in more than a million dollars that should be going to pay for new productions now. Their account was terminated permanently.

Why? The fact that some people involved in the project are Russians might be the reason. That other parts of the team are Ukrainians makes no difference.

Meanwhile, far away from tech gadgets, a parents’ group that fought to keep schools open during the pandemic has become the latest to have their account shut down by PayPal due to, and I quote, “the nature of its activities”. The group is UsforThem, and just like in Adland's case, Paypal cited the user agreement and then went incommunicado.

Paypal also shut down the Free Speech Union, as well as the Daily Sceptic, and in today's world of social media, this was announced there first.

I must admit that I've never heard of any of these publications/organizations, apart from the joyful geek-toy Flipper Zero, but I am surprised that they actually used PayPal in the first place.
We've known for almost twenty years that Paypal can and will drop you for anything they deem against the ToS. They will freeze your funds that instant, and it can cripple and kill a budding business.

It was one thing to only use PayPal back when there were no real alternatives in 2004, but if your business is "building its audience" on platforms like Facebook and Twitter today and using only Paypal for "convenience" in sales, you are setting yourself up to be de-platformed in an instant.

Self-host everything and use half a dozen payment systems that you empty with a script every evening.

I leave you with some creativity from long ago that still looks quite amazing today. Imagine if this had been lost because some company just flicked a switch and turned it all off because of the TOS.

0:00
/4:41

Updating a really old Ghost theme to 5.0 so custom templates and comments work

Updating a really old Ghost theme to 5.0 so custom templates and comments work

Ghost is now released in 5.0 and I was using an ancient theme that didn't have all the bells and whistles available. Ghost has video now, and comments too!

Some days my ADHD meds don't seem to take, as I managed to ask a question while linking the actual answer in the Ghosts forum. Awkward. Let's not link that and pretend it didn't happen. Epic brainfart.

Anyway, ages ago in my modified Ghost theme, I created custom template pages that looked different, that I could select while creating a page post. These pages were created with the old system, so they were named things like page-tags.hbs and selected when creating an "all tags" page.

But as I updated Ghost and didn't check my theme, that little feature suddenly disappeared. Now editing those special pages showed me no options at all. Like this.

There's supposed to be a drop-down menu there so that you can select what style you want.

Well, as it turns out, Ghost has changed what these pages should be called. "page-whatever.hbs" is not going to work, so you'll need to recreate those fancy pages but named them "custom-whatever.hbs", and only then will Ghost recognize that you have custom template .hbs files. If you go to create a new page now, the drop-down will work just fine. If you go to edit your previously made custom template pages you'll find that these are stuck in their old ways as the template announces "post URL matches page-whatever". It don't matter, if it ain't broke don't fix it. But if you want to track it down, this is because I did it the old school way, where my shortcut to tags was added in routes.

There are however other things broken with old themes that won't show off the new features of Ghost 5.0 - so these will need to be fixed.

The best way to check what you need to update in Ghost is to use gscan.ghost.org
Simply upload your theme.zip there and find what you need to change. It's lots of smaller simpler things, like replace {{@labs.members}} with {{@site.members_enabled}} and replace {{@site.lang}} with {{@site.locale}}

Once you've done that you'll need to add the new features, where we get the subscribers/members to sign up and the possibility to comment if you are a member.

These are things likely missing from your theme if you haven't updated it in a while. Add them to where it's most appropriate in your .hbs pages. In my case, it was all added to post.hbs.

        {{#if @labs.subscribers }}
          {{> subscribe-form }}
        {{/if}}
 {{#if comments}}
{{comments}}
{{/if}}


  {{#if @site.members_enabled}}
      {{#unless @member}}
      {{#unless @site.comments_enabled}}
      {{#if access}}

                  {{#if @custom.email_signup_text}}
                  {{@custom.email_signup_text}}
                   
                 {{/if}}
                 
      {{/if}}
      {{/unless}}
      {{/unless}}
      {{/if}}

Once you have this all enabled and set, you can see the subscribe button, the comment box, etc. See below how it looks when asking us to "subscribe" versus when I'm logged in.

My theme is a modified version of an old theme from Aspire Themes.

Joseph Jaffe is not famous but he has a talk show - I talked about data security on it.

Joseph Jaffe is not famous but he has a talk show - I talked about data security on it.

Yesterday I was on "Joseph Jaffe is not famous" and I had a great time. I was fully expecting a different kind of podcast. First off, I'm not used to podcasting on camera, so that was different, and to top it all off, it was live. I was being entertained by random celebrity snippets being thrown in and before I know it, we're gabbing about getting icicles in your eyelashes when you go dog-sledding. You can subscribe to the show here.

I had notes of topics that I wanted to bring up, and then I barely mentioned them because we got to gabbing on all sorts of things. So, I'll elaborate here.

As I said on the show, my obsession with leaking data began when a friend swiped his phone over my contactless card and told me what my last purchase was. How much information can people get about you, just by using RFID, Bluetooth, unencrypted wifi traffic, and GPS signals?

The answer is, pretty much anything they want to know, and that's not even touching on other weak points, such as all the information your android phone knows about you and where you are, which in turn almost every social media app that you have installed also knows.

The subreddit /degoogle will set you on a path of taking back your data by replacing your google habits with more secure and privacy-minded options.

Now, not everyone can go on a completely different system when it comes to phones, But for those who are into that sort of thing, and who miss physical keyboard Blackberry-style phones, Pro 1x is really tempting.

I've gone off all clouds, not just Google's cloud. But then sharing images and backing things up often still requires disks somewhere. First I had a WD My Cloud Personal NAS drive and found the interface quite lacking at a critical time when I needed to back up a failing laptop while I was abroad. I couldn't bulk upload files the way that I wanted to. Drag and drop one file at a time? No thank you.

Synology 4 personal cloud system had some better app options, I can upload images straight from my cameras wi-fi for example, and share them with select friends and family.

QNAP TS-251A NAS drive includes dual Ethernet ports, an HDMI out for connecting it to a TV and respectable hardware like the dual-core 1.6GHz Intel Celeron CPU and 4GB of RAM for hardware transcoding media files. Also, a sexy little remote control. What's not to love?

The QTS OS also lets you effortlessly install a variety of apps, from the Plex Media Server and file sharing apps to, hello unexpected, a karaoke app, as well as running Ubuntu Linux for added flexibility.

Another option would be the Buffalo LinkStation LS220D NAS drive, as it has built-in Torrent - so you can keep torrenting when your computer is off.

Hardware is an initial cost, and you can spend as much on your own cloud server as you would on a good computer, but at the same time you are killing off the many small bills that tick away every month for cloud services that you are paying for.

Protecting your recovery seeds.

I'll not be working at the home shopping network anytime soon, rubbish display skills

So I stumbled over Billfodl Multishard and was intrigued. You want to put your bitcoin etc on a cold storage hardware wallet, but then you're writing your recovery seeds on pieces of paper that can be cleaned away - or you're writing it down in a password book, and that can be read by others who get their hands on it.

With the Billfodl Multishard, you can split your seed into 3 shards, each with 16 of your 24 words for recovery. Splitting your seed into three allows you to achieve a 2-of-3 style recovery method and ensures that if someone finds your BIllfodl, they aren't able to steal your funds. Very interesting.

On the very same site they also sell what I find is the most interesting tech today from a data protection standpoint. Faraday cage bags. But look how ugly they are.

And that's how I ended up unboxing a Säkra purse that I just got on Jaffe's talkshow. I'm so excited that I found a stylish purse that has a faraday cage built in it that I just had to share. I put my phone in there and am off-grid at any time. No GPS footprint, no secret cell tower pings to a shut-off device. Nothing at all. More secure than airplane mode but better still, it's so easy to just slip the phone in there rather than disable this or that on the phone. And my wallet, to protect my cards. I might have to get this in other colors!

Oh, I almost forgot - don't use Bluetooth keyboards or mice either. I have a Wacom tablet, the Bluetooth mouse was temporary yesterday, and I held up my keyboard to show that it indeed has a cable though not a cool coiled one, yet. For the curious, my keyboard is the Drop CTRL mechanical keyboard which is currently on sale if you want a black one. I do recommend it if you carry your keyboard around a lot, the magnetic "feet" can be removed which makes for slim packing, But if you are gaming, then I'd look at the high profile version instead, which is also currently on sale.

Also, my "Porn Kills Love" t-shirt is from fightthenewdrug.org

Unreal Tournament Dabitch the Second

Unreal Tournament Dabitch the Second

I used to be un-real-ly good at Unreal. I would spend nights just playing and then cleaning up my Jolt Cola just to start work in the morning. At some point, I recall, you could find my name on public server scoreboards as one of the many top headshot people. In. The. World.

The other day, I showed Unreal to offspring. Today, she showed me this. I swear, it has to be genetics. Just the fact that she's doing this while listening to Sam Cook is sending me indeed.

0:00
/0:17

"I don't understand why my photo of Caper hasn't become a meme yet."

"I don't understand why my photo of Caper hasn't become a meme yet."

As soon as I took this photo of Caper, I uploaded it to Reddit, because I think it's epic.

These days my account has been suspended, but Reddit has never explained why and humans do not respond to appeal requests, so the original posting can no longer be found.

You can still find a photo of baby Caper and his teefies, as well as where I confirmed my account with Keybase.

Social media breaks easily when one part of the trust chain just deletes you for no reason. Basically, never use any social media to confirm an account anywhere else.

I know I've written about this before, I'm just reminding you.

Oh look, I also enriched Reddit with this old photo of a Sámi boy that I found in an old family photo album. I also showed Reddit Kiruna Söderberg, the first baby born in Kiruna so the entire city is actually named after her - and the Sami word for grouse. All bannable offenses, obviously. Ha!

Caper the cat channels Gene Simmons 

I hosted the @Netherlanders Twitter account and got the whole country shut down. Sort of.

I hosted the @Netherlanders Twitter account and got the whole country shut down. Sort of.

Well, sort of. I was invited to host the @Netherlanders Twitter account, which is like the @Sweden account once was, an account that has a new host every week. The host is tied to the Netherlands in some way and will discuss all things Dutch or anything on their mind. So I decided to chat about creativity, naturally!

But this all went quickly pear-shaped and that's how I ended up in the Feminist publication 4W with the headline: Feminist Accused of 'Wrongthink' Prevented from Posting Art to Collaborative Twitter Project

You see, no sooner than I had been announced people protested the choice of me as a host.
I hadn't even made a single tweet, but my personal account was inundated with bot-like harassment of tweets all saying the same exact thing.

Coincidentally it was the same thing that the previous host tweeted out in his last tweet before leaving: "trans rights are human rights." It looked like this:

Archive of my tweet: https://archive.is/z07HL

I carried on with my tweets about Dutch creative culture, every single one that I tweeted out is in this gallery here. All of these tweets have now been deleted.

I replied to previous hosts' tweets, and even got a little slap-happy and silly with the Dutch language. I was determined to not stray from the path of tweeting about creativity, despite the group of activists scouring my personal Twitter account for wrongthink. My tweets from the Netherlands account were quite tame, as you can see, but this hasn't stopped people from saying that I tweeted "hate speech" from the Dutch account. Without a digital record, people will believe what they're told.

Soon enough, one of the moderators and Dutch MP politician upped and quit stating that was "the drop" (that the cup filled over with).

archive: https://archive.is/mTJqJ
original tweet: https://twitter.com/msteeman/status/1427388688678457345

Anna Slatz does a much better job than I in summarising the whole ordeal, so go read her article. This, in particular, amuses me:

Wäppling, who advised 4W she does not identify as a radical feminist, says she describes her politics as “a mom who doesn’t want the world to go backwards … I’m just a woman who doesn’t want women’s rights eroded.”

Why did I say "feminist", instead of "radical feminist" when Anna Slatz asked me? I figure I'm "just" a feminist. The word "feminist" stems from Latin femina, meaning female/woman. Simply put it's about women. The French suffragette activist Hubertine Auclert may have been the first woman to use the term, but the political idea of having equal rights to men was argued much earlier than 1840. Modern liberal "feminism" variants that center around men are simply not feminism to me at all as it betrays the root of the term. This wasn't an attempt by me to reclaim the word, this was me calling a spade a spade. While I am fully aware that 'feminism' has since the mid-2000s been something people call any action performed by a woman, so-called 'choice' feminism, I figured a 4th wave feminist publication would know what the word originally meant.

Choice feminism? Yes, you know when women claim that plastic surgery and lip enlargement is a feministic choice because it makes them feel better about themselves. Individuals can make the choices they want, it just isn't a feminist act. While women around the world suffer in menstruation huts, from FGM, as forced child brides, used as surrogates or baby machines in baby factories for profit, your average Instagram influencer pouts a selfie and calls herself a feminist, which doesn't make it so.

I just don't want women's rights eroded. That's it. Her rights to her bodily autonomy, her right to privacy, her right to freedom of thought, conscience, and religion. Pretty simple, really. But in this twisted new world, that has been rebranded as "hate speech" and will get you canceled from hosting a Twitter account for a week. Go figure.

When Ghost upgrade dies on "ERROR alter table `products_benefits`"

When Ghost upgrade dies on "ERROR alter table `products_benefits`"

There is a bit of a surprise in upgrading your Ubuntu to 20.04.2 , because that will include upgrading your MySQL to mysql Ver 8.0.25, and before you know it, you're upgrading your LTS Node Version: v14.16.1 , your Ghost-CLI Version: 1.16.3 and finally, your Ghost version.

And that's when your site completely breaks because you can not upgrade it. As Scooby Doo says: ruh-roh.

If you hit up the Ghost forums, they're familiar with this issue, and there's even a solution posted here.

"OK I think I got it ! It drove me crazy for a couple of hours. Like many people here I was using a Digital Ocean droplet, it updated to Ubuntu 20, MySQL updated to 8 without asking."
jebarjonet explains, before offering his solution.

That solution, clever as it is, did not work for me, so here's mine.

Start by your usual upgrading steps, such as making a backup of your themes and data with "cp -R content backup"

Make a copy of your database just in case of FUBAR.

Go straight to the source, and in MySQL try to change every table at once.

ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

You will get Mysql complaining because the primary key is connected to another one. The primary key is in table "emails" it's "id".

 Referencing column 'email_id' and referenced column 'id' in foreign key constraint 'email_recipients_email_id_foreign' are incompatible.````

You can change the other table instead.

ALTER TABLE `email_recipients` CHANGE `id` `id` VARCHAR(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL;

That's about as close as you will get, doing it by hand. This may not be the only table rejecting your attempts, but after I had done that I could run this again, and had no errors.

ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

So, after this, it was easy to run "ghost Run" again. Remember, this is what I saw before. Ghost was just not going to upgrade. It refused to co-operate.

ERROR alter table `products_benefits` add constraint `products_benefits_product_id_foreign` foreign key (`product_id`) references `products` (`id`) on delete CASCADE - UNKNOWN_CODE_PLEASE_REPORT: Referencing column 'product_id' and referenced column 'id' in foreign key constraint 'products_benefits_product_id_foreign' are incompatible.

alter table `products_benefits` add constraint `products_benefits_product_id_foreign` foreign key (`product_id`) references `products` (`id`) on delete CASCADE - UNKNOWN_CODE_PLEASE_REPORT: Referencing column 'product_id' and referenced column 'id' in foreign key constraint 'products_benefits_product_id_foreign' are incompatible.

{"config":{"transaction":false},"name":"03-add-products-benefits-table.js"}
"Error occurred while executing the following migration: 03-add-products-benefits-table.js"

Error ID:
    300

Error Code: 
    UNKNOWN_CODE_PLEASE_REPORT

----------------------------------------

InternalServerError: alter table `products_benefits` add constraint `products_benefits_product_id_foreign` foreign key (`product_id`) references `products` (`id`) on delete CASCADE - UNKNOWN_CODE_PLEASE_REPORT: Referencing column 'product_id' and referenced column 'id' in foreign key constraint 'products_benefits_product_id_foreign' are incompatible.


WARN Ghost is shutting down
WARN Ghost has shut down
WARN Your site is now offline
WARN Ghost was running for a few seconds

So, the struggle there is clearly an issue adding the table "benefits". So, let's add that table! Here it is;

--
-- Table structure for table `products_benefits`
--

CREATE TABLE `products_benefits` (
  `id` varchar(24) NOT NULL,
  `product_id` varchar(24) NOT NULL,
  `benefit_id` varchar(24) NOT NULL,
  `sort_order` int UNSIGNED NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;


--
-- Indexes for table `products_benefits`
--
ALTER TABLE `products_benefits`
  ADD PRIMARY KEY (`id`),
  ADD KEY `products_benefits_product_id_foreign` (`product_id`),
  ADD KEY `products_benefits_benefit_id_foreign` (`benefit_id`);
COMMIT;


This clears up any remaining issues.


So now when I run "ghost run" everything starts up just fine!

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Dabitch.net - Everything is so random there must be a pattern.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.