anders tonfeldt


YouTube ragnarök

2014-06-11 12:51

Anyone who's been visiting my YouTube channel (love you 56 subscribers, although I think you'll all leave by the end of the week) know that I mostly make Let's Play videos. I love the concept, it's fun to share your experience of an overlooked game with random bystanders. Maybe they'll love it too and you'll have helped them find a new favourite game.

I'm terrible at making them though. I went on several months long hiatuses for no apparent reason. Many times I kept my thoughts internal, especially when I did blind LPs, since I'm a fairly analytical person. But people did enjoy them, I got 25k views on (for the most part) entirely unknown games. Many developers also contacted me, graciously gave me permission to make LPs of their games and thanked me. That felt great.

I just removed all of my LP videos from my YouTube account. Thus those precious 56 subscribers are about to go poof. For those who enjoyed my LPs I apologize. This wasn't made on a whim. I won't bore you with all the details, nor will I shame anyone publicly, but this is what happened.

Just finished a new series for a new game. I was given permission by the author beforehand and we had a great conversation back and forth. When it was done I was left with a feeling of joy. I really liked the game and it showed. But the developer wasn't happy that I got stuck on a couple of occasions. I tried explaining that it was a blind LP, I wasn't reading a walkthrough so obviously there's a risk of getting stuck. Just like any other player might get stuck.

No, he didn't like that. Could I change it? Well, I could edit some parts down I suppose. This irked me since none of my other LPs were edited, but fine. All was well and I was going to post it. Then he asked me to not show the alternate ending that I stumbled across. Ahem, that was in the middle of the LP. I found it by mistake. I'd have to re-record hours of video to avoid leading up to it. Yes, that's what I should do.

I refused. So then he unceremoniously revoked his permission and told me he'd file a copyright strike for each video of his game I'd post. Alright then, that's fine since I wasn't planning on posting the LP after this debacle. Apparently that isn't what he wanted to hear, next he's saying he's going to start filing copyright strikes on my other Let's Play series, out of spite I suppose. Because he "had the power to get my youtube account shut down". Awesome.

The thing is, he does. Any random person can file a claim for just about any video. The way Google has set up YouTube to avoid any and all risk on their part you're pretty much screwed against trolls. I've gotten flagged before, many times. Somehow I always managed to work it out and never got a strike.

Then the automated content-id system was introduced and wham, I was getting my videos claimed because the games included music that third parties had (illegally) claimed was their own. Great. Still, it didn't matter to me since I'm not running ads on my LPs. Claiming $0 out of $0 is fine by me.

But I've got things planned for my YouTube account. I find it very gratifying to help people figure things out. Maybe find a helpful application. How to solve a problem. Thus it would be a disaster if I did get my account shut down because I was making Let's Plays of games people don't know, that hardly anyone watches and that I don't make any money out of but that still get illegally claimed.

Am I a coward for running? Probably, since I love the Let's Play scene. But it's just too much of a hassle these days. So screw it. I'm done.


What must my next phone have?

2014-06-09 14:59

For some reason (brand loyalty) my decision to leave the android sphere wasn't that popular with some of my friends. I get it, we've all been using it since its inception and making a wide variety of private apps together. Some agree with me but aren't going to switch. Some have already switched. Some are rabidly telling us we're making a mistake. In order to get this out of the way I figured why not another list? One where the actual essentials are listed.

I need my next phone to do the following;

  1. Run TOR for individual applications.
  2. Run Python (2.x is acceptable, 3.x much preferable).
  3. The phone must run linux.
  4. The bulk of the phone must be open-source or at least have its bits replaceable by open source.
  5. A superuser setting must be enabled, I will never be forced to "root" my phone again.

Those are the essentials. There's a ton of other things that I require, as evidenced by my last post about must have android apps. But the above solves the vast majority of those, the rest I can code myself or just port. Here's some examples of apps that the above solve.

  1. todo.txt
  2. rss-reader
  3. pdf/document readers
  4. foldersync
  5. tasker
  6. twilight

Some you just need a browser for, apps tend to be smoother but they're just not required.

  1. reddit
  2. spotify

Finally we're left with a handful that will affect me to some degree. The worst likely being the status of a KeePassX port. The chromecasting of netflix won't matter since I've got a nexus tablet around but I'll still mention it since it is inconvenient. I'm sure there'll be a podcast manager of some variety, but it won't be beyondpod.

  1. Keepass2android - Works perfectly with KeePassX.
  2. Beyondpod - Podcast perfection.
  3. Whitepapers link - Scanning of specially marked papers.
  4. Bankdroid - Not sure about internationally, but fantastic bank widget.
  5. Chromecast - For, well, our chromecast.
  6. Netflix - For now, there's finally cropping up alternatives.
  7. Skånetrafiken - Swedish public transport system.

Since the Ubuntu phone isn't out yet let's have a look at the Jolla. Does it meet my criteria? Yes, mostly.

  1. Yes, TOR is available via something called the package warehouse(?). Reports tell me it works, and the basic version of TOR we all know and love is being ported.
  2. Yes, "Starting with Sailfish OS 1.0.3.8, Python 3.3.3 and PyOtherSide are shipped in the official repositories". Perfect.
  3. Yes, it runs linux. Actual linux.
  4. Yes, Sailfish OS is built upon the Mer project. So parts will be interchangeable. Jolla also said their entire OS would be open-source, but even if it isn't I can always replace the bits that aren't.
  5. Enabling root is as simple as switching on developer's mode and setting a password. Perfect.

In other words, I could switch right now. The Jolla is being sold a few kilometres from me if I remember correctly. So, what's my lame excuse for not doing so right now? It's a mundane one, I'm a bit strapped for cash and my note 2 does function decently now that I've got cyanogenmod on it. I'm also interested in seeing just what the live Ubuntu phone will and won't do once it's released.

I've got a bad track record of jumping on the latest hotness and getting burned, badly. I think I'll wait just a bit this time, once the Ubuntu phone is out I'll do an in-depth comparison to the Jolla one and then pick the one I prefer. And, to be honest, the cheapest. Amusingly the cheapest will likely still end up in the premium range when compared to android/ios, but them's the breaks when living in a niché market.


The must have Android apps

2014-06-07 20:02

I'm planning on leaving the Android ecoscape once my current phone breaks down, or a tempting offer comes along. But until then I'm mostly content with the functionality itself. Recently flushed my Note 2 entirely and slapped on the last nightly cyanogenmod, a process that was surprisingly smooth despite Samsung's bootloader and Knox.

Once everything was back up and running I trimmed the fat, a lot of the apps I had previously kept installed simply weren't interesting enough to re-download. Here's a list of the ones that were, and thus are the apps I can't live without.

K9 - E-mail client deluxe.
Baconreader - Reddit, oh thou art a beast.
Firefox - Them plugins.
Inoreader - I was using selfoss for months, but this is smoother.
Orbot - Tor, can't live without you.

Simpletasks cloudless - todo.txt, perfectly executed.
Analytics - For now, at least.
Whitepapers link - Scanning of specially marked papers.
Bankdroid - Not sure about internationally, but fantastic bank widget.
ezPDF - Pretty much reads everything I throw at it. Always has.
Keepass2android - Works perfectly with KeePassX.
Officesuite pro - Handy at (rare) times.
Foldersync - Works fantastically with encfs shares.

Beyondpod - Podcast perfection.
Chromecast - For, well, our chromecast.
Netflix - For now, there's finally cropping up alternatives.
Quickpic - Everything an image viewer should be, and nothing else.
Spotify - What are these MP3s you speak of?
VLC - Really not the best, just a personal favourite.

Sleep as android - Best alarm clock I've ever found.
Solid explorer - Unsurpassed file manager and network share access.
Tasker - Automation, automation, automation.
Appsales - For the cheapskate within.
Skånetrafiken - Swedish public transport system.
Twilight - Dims and reddens your screen, to preserve your eyes.
Fing - Network mapper. Glorified ping tool, but it works great.

Muzei - Wallpaper downloader for classical art.
Minimalistic text - Use it mostly for tasker variables.
Widget locker - Because other lock screens are terrible.

This will likely be my final list. I did install some additional apps, but they aren't what I'd call essential. Hopefully you'll find some new favourites in this list.


Recursion, flooding the stack

2014-05-29 15:02

Recursion is essential to most types of programming (imperative vs functional is an entirely other topic, maybe for another day) but it's generally not understood even by people who use it for looping every other day. In fact, the act of mentioning the stack can result in blank stares every now and then.

Stumbled across a rather helpful video when I attempted to explain it to a mate of mine. I might add that we've been cutting code together for over a decade and the fact that he didn't know what the stack was, or how it functioned, never really came up. That shows you just how much we've abstracted ourselves from machine code, and how ineffective we've become in order to save time.


Interview with Joe Dever

2014-05-27 09:57

Despite his success I can't help but think Dever is selling himself short, or he's just really humble. His work, and the legacy he mentions, sent ripples that have grown to tsunamis over the decades. Some developers had mentioned they were inspired by the lone wolf saga, but at this point even the ones that never read them are implementing his ideas and concepts as established fantasy tropes. If there's one person in fantasy I'd like to meet, it's this man.

Android - Blood on the snow
iOS - Blood on the snow


Offline remote backups

2014-05-26 09:17

I've got 1.1 TB of data that I mirror and backup every single day. This is data that would cripple me, either professionally or emotionally, if lost. No, it doesn't contain the bloated dvdrip collection I made since we've found we rarely use it at all.. and it took me two months to rip our entire dvd collection. Even with automation. Good grief that was time wasted.

It doesn't include our music files, all carefully ripped from the merged cd collection when Becka and I moved in together, all stored in flac of course. No, we never use that, not since Spotify.

So what exactly does it contain if it's that large? Photos taken after the advent of digital cameras, and scans of photos even older still. Videos of birthdays, Christmas dinners, etc. That means the only visual motion medium record of my father and grandfather since they've both passed. If I were to lose those.. All the code, websites, games, applications, writing and projects in general I've created during my 27 year stint with computers.

Google Drive's new pricing is.. tempting. 1TB for $9.99 per month is pretty much perfect with some slimming down. Unfortunately, the time it would take to make the initial backup to Drive's slow as molasses servers was just too daunting, if you factor in how many changes there will be to the archive during the weeks it'll take to upload it and you're left with pure frustration.

You might call some of us paranoid about not wanting Google to search through, digest and then hand out our private, financial data to foreign intelligence agencies. But you damn well should be paranoid about criminal elements doing the same, especially since people have a nasty habit of leaving sensitive information like credit card numbers in plain-text files.

I've cleaned up the shattered remains of people's digital and financial existences after a completely harmless third party site, let's say a forum about soccer, was hacked. The attackers checked what e-mails were being used for the accounts, oh hey look, a @gmail.com e-mail. Then they cracked the password hashes, which is extremely simple to do these days if the password is weak. Then like the snap of your fingers they had access to my mate's Google account. Not because Google was hacked, not because the soccer site was somehow nefarious. But because the person maintaining the forum wasn't that security savvy and my mate used the same password for every bloody site.

Encryption, heavy encryption, isn't just for the paranoid but for the people who are willing to be a little inconvenienced every day and in return avoid having their lives ruined by identity theft when the day comes. EncFS has major problems that they're hoping to solve for v2. But it works right now, it can be used right now. It's free and is compatible with all file-based cloud services, drive, dropbox, box, etc. You should already be using it.

So just how did I end up making backups? My local server does a mirroring of the backup archives to a separate disc every night, this disc is encrypted with EncFS. The disc rests in an open usb-cradle on my desk. Whenever I leave home I pop the disc out, plop it into a rubber protective case and deposit it in a safe, secure location outside of my home.

It's an off-site, complete backup that is encrypted to the point where the sun would burn out before anyone manages to decipher it in case they happened to stumble across the disc. I'm safe from the eventual fire striking our apartment, burglaries are covered. But it's a pain in the arse and requires absolute discipline whenever you plan to leave home. That one time you say "meh, nothing will happen" and leave the disc at home. That's when it will happen.

I will be making a couple of follow-up posts with how-tos on, well, how to actually implement this in the most frictionless way I've found. The one thing you should start doing right now, this very second, is simply: use different passwords for all of your online accounts. All of them. KeePassX will help you do that, and there's LastPass for the less suspicious. Start there.


Javascript, PHP, Python. Pain.

2014-05-24 21:38

Ever since I suffocated my dreams of being an indie game developer about a year ago and left (was chased out) to pursue other interests (ran like a yellow bellied coward) I've been dealing mostly with data analysis / content discovery. In fact, I recently stealth-launched the first site to reach a somewhat functional state, Let's Play Nexus. It works and I use it myself on a daily basis to find new videos, it's sort of awesome to realize you've designed something not just for others but yourself as well. Which is surprisingly uncommon for programmers I suspect.

LPN isn't done, in fact it's lacking several key features, which is why I haven't promoted it at all. But I've sent it to some Let's Players that I enjoy and received a ton of positive feedback. In general it appears people like sites that help other people find out about their own work, who would have known?

I found this fact very encouraging, especially since I'm working on half a dozen other similar sites but for other topics. Now, parsing big data from YouTube has been.. challenging. And I haven't really started yet. The sheer quantity of data that Google throws at you is staggering, making sense of it daunting. But the major issue hasn't at all been related to the process of developing the site, its back-end or even cobbling together the lifeboat to prevent myself from drowning in all the data. No, it's been choosing how to implement it.

C was my language of choice for the longest time. But as the web grew the mass of protocols and formats grew with it. Learning each one and implementing it in c was.. a lot of work. At some point I gave up and decided to drink the Kool-aid. I switched to PHP. And I hated it. But I hated it less than the alternatives and despite some major hassles with certain builds / configurations by certain providers the whole thing generally worked.

It's been many years since I ran a site beyond my blog, in fact my blog was down for many years (ahem). During that time I found it very relaxing to not have to worry about vulnerabilities cropping up in libraries, extensions and scripts. In fact, I've intentionally decided to not rely upon third party server-side tech or scripts this time around. My blog is powered by Pelican and runs locally, outputs flat html which my local server then synchronizes to this host. Works great. In fact, it works so great that I wrote my backend for Let's Play Nexus in Python and designed it for local use.

Yes, it parses all that data, outputs flat files and I then sync them to the server. My sync process is fairly intelligent so little data is sent each time, the menu is javascript driven so updating it, the banners and such won't require rendering all the files again. It works beyond my expectations. But it has limitations, severe limitations, as all web developers will know. Some can be bridged, for instance I recently added a javascript table sorting to my consumption lists after a mate asked me to do so. Visitors can sort the table every which way without any server-side scripting or tech required. But that's just a drop in the ocean, there's so many things that would just be a line or two in PHP that I just can't do properly using only client-side scripting.

But I don't want to go back to the problems of yesteryear. I really, really don't want to venture back into the snake-pit that is PHP (and please, no, asp containers with vb, c#, et alles is just as unappealing). What do I do then? I've experimented with Python and it's fantastic for small web applications (and almost every type of non-web application, of course). But using it to build a CMS-like environment? Man, that was painful. node.js is very attractive, but it's really designed for real-time applications and offers no real benefits without the previously mentioned drawbacks.

Services like disqus help you add dynamic aspects to sites. Of course, the observant reader will note that it opens up an entirely other fiendish trap since you're basically giving a third party your data and hoping they don't go out of business / terminate your account. But with some care you can maintain local backups of all that data. Good grief this entire thing is rubbing me the wrong way.

I suspect this particular subject will crop up regularly on my blog if I continue doing web development. A solution has to be devised but what form it will take is currently shrouded in a haze of alternatives, each worse than the next. And to think I started out with the noblest of intentions.


How to migrate from Keepass2 to KeepassX

2014-05-19 09:16

I've got some bad news for you, if you're using Keepass2 in the new second generation kepass2 database format and you want to migrate to KeepassX in linux then you're in for a bad day.

KeepassX has no way of importing the new generation database and Keepass2 does not support exporting it to anything usable under linux. It appears their support of the first generation database format is dependent on the client running windows. I crawled through every script and work-around you can find on the net and none of them worked reliably.

That's that, pretty much. There's no native way. However, our old friend wine to the rescue yet again. You can download the windows version of Keepass2 and run it with wine with nary a problem (you might require .net in the wine prefix), export your data to a first generation database and then import that with KeepassX. It'll work as expected. Just don't go blind trying to google for a native way to do it, I did.


Netflix in linux with pipelight

2014-05-17 10:06

Despite Netflix' honest attempt to lock out anything that isn't windows or osx, and running the abomination that is silverlight, it has been running just fine in linux for quite some time. Before we had netflix-desktop which was basically a standalone version of firefox running under wine.

These days we use pipelight, which is a firefox plugin for your native browser using wine to run the windows version of the plugins. It's smoother and doesn't require running a separate app, the flipside being that it runs constantly in the browser you use for daily use. Your choice.

Now, there's tons of how-tos and tutorials for this subject out there but they all lack one rather vital bit of information so I figured I'd throw my hat into the ring. Took me a solid hour to figure out just what the problem was. This will be designed for Ubuntu 14.04 LTS users but you can adapt it to fit whatever distribution you're using.

First let's install pipelight itself.

1. sudo add-apt-repository ppa:pipelight/stable  
2. sudo apt-get update  
3. sudo apt-get install --install-recommends pipelight-multi  
4. sudo pipelight-plugin --update  

Now let's install the silverlight plugin.

1. sudo pipelight-plugin --enable silverlight5.0  

I recommend you stick with 5.0 even though 5.1 is out because Microsoft tried adding driver verification to that one. Guessing it's to please their MPAA masters, but who knows for sure. 5.1 caused me a variety of issues while 5.0 worked just fine for everything I tried it on.

If the sites you visit use both silverlight and flash (hey ho, back to the future of days gone past) then you will want to enable the windows version of flash as well. But please check that you really need it before doing so.

1. sudo pipelight-plugin --enable flash  

Finally we need to change our user agent. This is the part that pisses me off. I get it, Netflix is checking what browser you're using to customize the experience to fit your viewer. But that starts smelling like bs after the next step.

1. Install uacontrol https://addons.mozilla.org/en-us/firefox/addon/uacontrol/  
2. Restart firefox.  
3. Click the earth-icon and UAControl options.  
4. Add site.  
5. Site: netflix.com  
6. Custom: Firefox 15/Windows: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1  

Now then, go to netflix. Looking good right? What? You're getting DRM errors when the movie is trying to start? Yeah, that's the thing. They correctly identify silverlight, they think you're running windows and firefox and customize the site to fit your experience.. But UAControl doesn't change the UA for javascript requests. So they're checking multiple times to make sure you're really ready to eat that DRM. No matter, we can fix that.

1. https://addons.mozilla.org/en-us/firefox/addon/user-agent-js-fixer/?src=search  
2. No configuration, just restart firefox.  

Finally! Try some netflix goodness. Does it work? Great! You're done. Unfortunately, I ran into even more problems but if you're done at this point then you're done.

Silverlight uses javascript to communicate. There's tons of calls going back and forth. The DRM bit of silverlight desperately wants to connect to certain elements to validate itself, in a futile attempt I might add since if you can see it you can record it. If you're running any of the following addons then make sure to disable them one by one until you find the one that's blocking something silverlight is trying to reach.

1. Disconnect  
2. Ghostery  
3. Adblock plus  
4. HTTPS Everywhere  
5. many, many more  

Basically, if your addons are locking out parts of the web then try disabling them. Figure out which one is causing the problem and then take the appropriate steps. That should be it.


<< -3 >>


RSS Feed