Tell Your Brain to Shut The Fuck Up

You’re on your last set. Your muscles are screaming, sweat is dripping into your eyes, and your brain is telling you “you’re already lifting more than last week. You can call it quits here!”

Tell your brain to shut the fuck up. Shut. The. Fuck. Up.

You’re walking across the street. She’s got legs anybody would kill for. Your brain says, “she looks like she’s heading someplace, let’s not bother her”.

Tell your brain to shut the fuck up.

Don’t listen to the voice. You give in once, it’s a slippery road down to mediocrity.

You’re tired. The networking event has dragged on far too long. You can’t wait to go home and relax. “I already got 5 contacts, that’s pretty good ain’t it?”

Shut the fuck up. You know damn well how to make friends. Be interested, provide value. If you can’t be witty, you can at least damn well be chill.

Shut the fuck up. Just do it.

Why I switched from Android to iOS

My LG G5 got stolen by a beggar in a leather jacket (but that’s not why I switched).

g5-box-desk
Rest in peace, my beloved G5.

I keep the box on my desk to remind myself not to be so fucking stupid again.

The truth is, the camera wasn’t perfect. I dreamt of making it a mini-computer on the go, with a Bluetooth keyboard, Termux with so many packages installed, but then I realized:

I don’t want to see such little but important details being fucked up again.
I don’t trust that I’ll get Android updates in the future, and I don’t want to deal with custom ROMs anymore, because I don’t want my phone to be like a computer.

While I was back on my HTC, trying to run a recent version of Android (4.2) without crashing…

I saw my dad with his iPhone 4 running iOS 7. It’s slow, and the camera isn’t impressive. But the photos never had issues. The camera always takes a photo within 300ms, whether or not it is in focus. It is slow because of iOS 7, not because someone forgot to program TRIM support into the kernel (thank you Android!). And there’s still app support for iOS 7, so he can use it today.

I saw my friend with his iPhone 5, which came out the same year as my HTC One S. It runs the latest version of iOS, runs Google Maps faster than my phone, can even play Pokemon Go and run the number26 app (required to have a bank account with number26).

I bought an iPhone 5S for 260EURs. As of 2016, I estimate it has at least 3 more years of useful life left. The camera is still miles ahead of the Nexus 5X or 6P – it starts faster, burst mode is incredibly fast, and you don’t have to install another app for that. I only wish I had bought this phone in 2013.

The LG G5’s camera isn’t perfect

Now although the G5 can take great photos, and the wide angle is truly useful:
franzi-fluchtling

Franzi IKEA

I still found many things wrong with it:

  1. In darker situations, the noise reduction is way too strong, making the photo look like a watercolour (the wide angle needs more light than the main camera). This is what I’m talking about:
    20160517_212214 lowlight near home 1 20160517_212516 lowlight near home 2
    Videos are the worst. Here’s an uncompressed still from a video quality comparison I made:

    lgcam
    LG’s Camera app
    opencamera
    OpenCamera

    The noise reduction algorithm is the same (because they both use Qualcomm’s ISP), it’s just dialed down in OpenCamera. You can see the texture on the white wall now. The pillows look better. The texture on my dad’s underpants looks better. And despite what it looks like, my dad was not moving his arm in the first picture. Just look at the file sizes. The first is 820kB, the second is 1.8MB because it contains way more information.

  2. LG’s Camera app only lets you take photos at full-res 16MP. I can’t believe nobody noticed this. I don’t want 3-5MBs of watercolour! In fact I don’t want to spend 3-5MB on each photo, period! In the end I had to write a python script to do the resizing.
  3. It’s still slow to focus like a normal smartphone because it doesn’t have PDAF, or phase-detect autofocus. At this price range, it’s inexcusable. The Galaxy S7 is freaking fast. The iPhone 6 is second place. If my girlfriend makes a funny face, I don’t have 500ms to wait for the phone to focus.
  4. Burst mode does not work in Manual mode. Why? The Galaxy S7 can do this.
  5. The volume-down shortcut to quickly launch the camera is great – but LG uses the proximity sensor so it doesn’t launch if the G5 thinks it’s in your pocket, so you can’t ‘preload’ the camera in your pocket. There’s no need for this. The volume buttons are hard to accidentally press in your pocket anyway.
  6. I can’t change the volume button shortcuts!

Getting Django easy-select2 to include JQuery and friends

Select2 is how you get boring dropdown lists:
dropdown

to look like this:
select2

And django-easy-select2 is a little Django app that quickly turns that on for whatever widgets in your form you choose.

  1. Add easy_select2 to INSTALLED_APPS
  2. In your forms.py:
    from easy_select2.widgets import Select2, Select2Multiple
    When using the widget, don’t just use the class name, provide an instance, like Select2()

If only it were that easy. The documentation for easy-select2 forgot to mention:

  1. Include {{ form.media }} in the head section of your template

Otherwise jQuery and the other magic stuff that actually does the list hiding and searching/whatever doesn’t actually load in the browser.

Upcoming Book: Linux Tutorial for Normal People

linux-tutorial.tech

For the past month I’ve been hard at work writing a Linux tutorial. What, you say? Aren’t there enough Linux tutorials out there, the Linux Documentation Project, the installation guides etc? And wait, who are you to teach anything? And what, I have to pay for it?

Yes, there are many guides out there that can teach you about Linux for free. But none of them tell you why things are so, how they came to be this way, and what’s the rationale for doing things this way. The worst ones just tell you what to type at the terminal.

Not to mention, which of these would you sit down and read if you were bored? None of them, that’s what. You’d only read them if you wanted to install Linux.

So this pet project is my challenge – to take everything I know about computers and write about it in an interesting way.

I’ve already put the first few chapters up for free, so you can decide for yourself if you like the way I explain things. Later on I will release the ebook that explains networking and how to host your own site with WordPress, as well as how it all works internally.

Domain move from ritchan.dasaku.net to do-it-big.com

Although I haven’t been blogging that much recently (been focused on real life), I found that I had so much content on my old blog that it was kinda silly to just leave it there.

Bit by bit, the few useless blog posts from long ago built up into something rather useful – if only to see my mental state back then

It also helps search engine traffic for this blog. Apparently many people found my blog by searching for Ellen Fein’s The Rules – I wrote two articles on why they sucked, although these days I’m sure I can explain why much better.

How to root the LG G5 (H850 EU only)

Required background information

Android phones have 3 system levels:
system
recovery
bootloader
Each level can modify the level above it. So in order to modify system, you need to first make recovery do your bidding. And to do that, you need to unlock the bootloader.

In Android phones, internal storage is split up into partitions:
/boot: contains the Linux kernel and ramdisk. SuperSU and no-dm-verity will patch the files here.
/system: Android.
/data: Apps and settings are installed here. A factory reset just wipes this partition.
/recovery: recovery system goes here. We will flash TWRP onto it.
/cache: amongst other uses, LG’s Software Update downloads OTAs here.

Android platform tools:
adb: works in recovery and Android (if Development Mode is enabled and USB mode is not Charging Only)
fastboot: works in bootloader
adb reboot (bootloader or recovery) – Totally great! Now you don’t have to fiddle with button combos to get into recovery.
adb push/pull – really easy way to get/put files on phone’s storage. Uses MTP
fastboot flash (image) – flashes a certain partition with whatever image file you have on the computer.

LG G5’s recovery button combo:
Hold Volume Down+Power.
When you see the LG logo, let go of Power and press it down again (keep it pressed).
Keep holding both buttons.
It will ask you if you want to factory reset. Say yes only if you want to lose your data.

Backup

You will lose all your data. Get it off the phone.

Bootloader

First you must unlock the bootloader. Follow LG’s instructions here.

After you do this, from now on whenever you boot your phone it will say “Your device software can’t be checked for corruption”.

Recovery

Now that the bootloader will let you flash something onto it, you can change the recovery. The stock recovery only displays an Android with an open stomach – you can’t do anything on it. Download TWRP for the LG G5 here.

With your phone plugged into your computer and USB debugging enabled, type:
adb reboot bootloader
The phone will reboot into a black screen with some small text that includes “Welcome to Fastboot Mode”:
fastboot flash recovery twrp-3.0.2-0-h850.img
Upon reboot, the G5’s system will find that the recovery has been flashed, and will restore the old version. You don’t want that. So send TWRP to the phone again and tell the phone to boot directly into it:
fastboot boot twrp-3.0.2-0-h850.img
When booted, TWRP will automatically patch /system so that it won’t try to overwrite TWRP on the next boot.

System

Put a microSD into the LG G5, because /data (internal storage) is encrypted and TWRP can’t read/write to it. That’s why we’re going to wipe /data later and patch Android to not use encryption.

OK, now you’re in TWRP. It’ll ask you to swipe right if you really want to allow system modifications. After you swipe right, you need to flash no-verity-opt-encrypt.zip or else you won’t be able to boot into Android again, only into the bootloader/recovery.

Backup your /boot and /system partitions. Tell TWRP to save the backup to the microSD card.

Download SuperSU and no-verity-opt-encrypt.zip, and use adb to push these files from the computer onto the G5’s microSD over USB.
adb push no-verity-opt-encrypt.zip /external_sd
adb push SuperSU.zip /external_sd

Install SuperSU.zip and no-verity-opt-encrypt.zip using TWRP. These will modify the /system and /boot partitions, which is why we backed those up earlier.

Go to Wipe->Format Data. Don’t Swipe to Factory Reset – it’s not the same thing. It removes all the files in /data but it can only do that if it can read/write /data – which it can’t at the moment.

Congratulations. Just Reboot->System.

If you ever get stuck at a white screen that says “Encrypting”, boot back into TWRP and Wipe->Format Data. And make sure you flashed no-verity-opt-encrypt.zip.

Rooted

This is what we’ve all been waiting for.

Hate Facebook/Instagram/Evernote? Want to get rid of those stock apps? They’re in /data/data.

Hate ads in free apps and websites? Install Adaway. Of course, you won’t find it on the Play Store 😉

Wifi passwords are stored in plaintext in /data/misc/wifi/wpa_supplicant.conf

Install TitaniumBackup. it’s so much more flexible than backing up /data, because you can transfer your apps+data into a totally different ROM, like Cyanogenmod.

How I got an LG G5 (I paid for it)

old faithful HTC One S
Ye Olde Faithful., originally in blue-gray.

It happened again.

I had a new idea for a blog post and was typing it into Google Keep, when my HTC One S rebooted again.

It never did that before I flashed Cyanogenmod 11 on it. The One S was my old friend. I remember when I first got it in April 2012 – I had just gotten dumped by my first girlfriend, and I needed something to make life enjoyable again (and a phone more bearable to use than the insufferably slow LG Optimus One). I took pictures with it and posted them on Facebook, hoping to show my new ex-girlfriend what a nice life I was having without her. All those desperate messages to her wall of silence – written on that phone.

And when that didn’t work – it accompanied me to the gym, where I dropped it on the stone floor. It was in my pocket when I did my first clumsy cold approaches with girls on the bus – there is no winter colder than a teenage German girl on an overcast day. I remember the very first time I tried an opener on the waitress at Grand Cafe – I felt totally stupid, the exact opposite of James Bond. I would then read everything to do with picking up girls – especially the Book of Pook… on that phone.

HTC, being the shit company they were, only supported the phone for 9 months (later they would go on Reddit asking people to “give us another chance” with the One M7). So at some point, I flashed Cyanogenmod. I even bought a new body and battery and completely rebuilt the phone. But it wasn’t enough. Without Android from HTC, the camera was sluggish and took ugly pictures. And it would reboot itself spontaneously. Plus it got slower over time because the Cyanogenmod kernel doesn’t support TRIM. It was time for a change.

Continue reading “How I got an LG G5 (I paid for it)”

Lunch with the Millionaire Next Door

lunch grill

Every now and then, me and my friend take the bus to go to a company in the middle of nowhere to fix any PC problems they might have. And we’ve had many lately thanks to Microsoft and their forced Windows 7-10 updates.

Now the owner of this company is a self made multi-millionaire, but he doesn’t live it up. You wouldn’t notice anything particularly special about this guy, in fact just the other day he was dressed as a plumber, as he’d been installing the plumbing in his building that he had commissioned right next to his office. Which didn’t look like much either, you’d think it was just some backwater shrub. But…
Continue reading “Lunch with the Millionaire Next Door”

Der Selbstdarsteller

A Google Conference

Setting: at a Google conference
Me: loitering around waiting for the conference to start. There were just a handful of people, and I didn’t particularly feel like chatting anyone up. Besides, I was about to meet someone there anyway so I should probably save my energy up for that.

Oh well, there’s a guy in a suit. Looks like a cheap suit, but still, whatever. Let’s warm up my social muscles by talking to him first.

“So, what brings you to this event?”
Continue reading “Der Selbstdarsteller”