iOS 10: not that bad!

I’ve been rocking a jailbroken iOS 9 for some time now, but I just recently decided to upgrade to iOS 10 and see what it’s like inside Apple’s jail.

Apple is smart, you see. It knows that people hate ads, and jailbreaking is one foolproof way to block ads. So it made an adblocking framework, so that people like me now have one less reason to jailbreak. And it works.

It feels faster.

The lock screen widgets are actually useful, for instance, now I can swipe left from the lock screen and see which trams are leaving from the nearest stop from my location (Fahrinfo), so I don’t have to call up the app anymore.

Number26’s widget shows my account balance even when my phone isn’t unlocked, though. I wonder who thought that was a good idea.

The Control Center is a definite improvement. The old one was too cluttered.

The swipe from lower right gesture from lockscreen to open camera was never reliable. Now it’s simply swipe to the left. Perfect!

In Photos, the edit button is now next to the favourite and delete button. Great! It used to be in the top right which was always a stretch. Now Details is up there which is a lot more appropriate.

Real thought was put into this platform, I’m glad I switched from Android. The iPhone 5S is still going on strong, and all this while I had to deal with CyanogenMod and whatever kanged ROMs some random teenager uploaded on Mega.

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.

Explained: Rooting The LG G5 (H850 EU only)

The G5's Always On Display is great especially when you plug it in. Beautiful David Hamilton photo to accompany your dreams all night.
The G5’s Always On Display is magnificent. Beautiful David Hamilton photo to accompany your dreams all night.

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)”

From Windows 7 to Arch Linux

So you’ve gotten quite comfortable with your home which you’ve been living in for the past 5 years. But your life has changed so much that it doesn’t quite fit anymore, even if it does keep you warm just as well as it did before. So many files here and there from when you did this or that, and you don’t even remember what they contain anymore and you don’t have the time to go through every one of them. It’s time to rip everything out and start all over again.

So with some excitement, and maybe just a little wistfulness, you type ‘parted; mklabel gpt’ and wipe your partition table clean.

This wasn’t because Linux had gotten better – oh no. In fact it’s quite the same as it was years ago, when everybody was declaring every year to be the year of the Linux desktop – flaky drivers here and there, small niggling things that require quite a bit of research to get working right, and always the possibility that a package update might break something.

But what’s the alternative? Windows 10 has improvements but you have to flip half a dozen switches (ok, more) to get it to not talk to Microsoft,  and even then, it seems like it still does. I grew up on Windows, but it has gotten so complicated that I don’t know what’s what anymore, and actually I don’t think anyone at Microsoft knows either. How could they? The whole thing has gotten out of control, the Windows directory is at least 20GB with all the patches, you need a SSD to get it to run quickly, and putting a swanky new interface on it that isn’t even applied consistently everywhere just makes it a joke now that I’m using OS X daily.

Then there’s AVG Antivirus, which loves to remind me that I haven’t bought their product. But I don’t have a choice, because any antivirus that’s worth a shit is commercial. Wait, do I still need antivirus? What about spyware, rootkits?

Then there’s the little niggling problem that my workflow on OS X doesn’t translate well over to Windows, not without cygwin. See, I work a lot on the console. And cygwin on Windows is an ugly hack, Linux in a VM on Windows is better, but I still have to remember to fire it up, and then I have to check its IP to ssh into it. But then I can’t use Windows programs to edit files in the VM without setting up a lot of stuff.

Then there’s the fact that I’ve been keeping my pictures/music collection on a ZFS pool for the past two years to prevent bit rot, and I would like not to have to fire up a VM and wait for Samba to announce its NetBIOS hostname when I want to listen to my music anymore.

Gentoo was an obvious first choice. My first foray into Linux was with Gentoo because they had the best documentation. I was familiar with how things While waiting for stuff to compile, I wanted to listen to some music. worked, I wanted to keep track of USE flags to not pull in dependencies, and it was sure to teach me a thing or two today still. Plus compiling things would make great use of my Phenom II X6 (but apparently a Haswell Core i3 can approach its level these days).

I chose an EFI+GPT installation with OpenRC, but apparently the minimal install ISO doesn’t boot in EFI mode, and you can’t really install GRUB2 in EFI mode properly with being already in EFI mode, because you need efivarmgr to edit the EFI variables, which aren’t accessible in BIOS mode. For some reason the Gentoo Handbook, which normally mentions small things like this that make or break the user experience, omitted this little detail. Fortunately all I had to do was temporarily rename the GRUB2 executable to EFIbootShellx64.efi, which my M5A99X EVO always looks for, and I could boot into the system, whereupon I promptly installed GRUB2 properly.

I pored over each config in the kernel sources, compiling a kernel tailored just for my use case and nothing else, that included drivers just for my hardware. I added discard to my /etc/fstab, -march=barcelona to /etc/portage/make.conf, and those zfs packages to /etc/portage/package.accept_keywords. I edited the USE flags and kept them in alphabetical order.

Then I tried to emerge mate.

I had to add all these extra USE flags just to get it to start. It wasn’t my meticulously pruned system anymore, no, it was now a mess. I was forced to accept the reality that GUIs are extremely complex and I just am not willing to deal with the little details of it all. Basically, I had to accept that I wasn’t going to have any control over what went into my system anymore.

Once I had gotten over myself and added the USE flags to make.conf, the emerge failed halfway because libgnome-keyring wasn’t pulled in when it should have been. I found a one year old post about this exact issue on the Gentoo forums. One year old and it still hadn’t been fixed. Report a bug? Get real, I’m still trying to get my desktop up and running here.

Once everything was up and running, I fired up Firefox and went on Youtube to celebrate. But the audio was skipping every second or two. Ugh. I listen to music on my computer all the time, and not having audio work properly was another thorn in the side on top of all these problems I had already which are, admittedly, characteristically Linux. I Googled but nobody had anything concrete. The closest I came was some guy on a forum advocating passing ‘snoop=0’ to the snd_hda_intel module when loading it. I tried it, and it just made the sound not work.

Around this time I started getting issues with the USB ports not being able to assign an address to plugged in USB devices. This did not happen with the Asmedia XHCI controller, only the built in AMD EHCI controlled ports. Weird, but then the GUI wasn’t a priority yet.

Then on the Arch Linux wiki, which had a larger Troubleshooting section than Gentoo’s with slightly more relevant entries, linked to the kernel documentation. Hmm. I have a Realtek ALC892 codec, with a Intel HD Azalia compatible sound system, and an Asus motherboard, so I passed model=asus-mode1 to snd_hda_intel and it worked!

It worked! I was breathing fresh air again – obviously this sort of problem shouldn’t have occured in the first place but that’s what Linux does – it forces you to learn the nitty gritty. I chalked it up to Linux and listened to some Carpenters to soothe my growing annoyance.

At this point I had realized it was taking too long for me to get anywhere, and Gentoo, which was supposed to be lean and mean through CFLAGS and judiciously applied USE flags, was not lean and mean anymore because I had to pull in lots of dependencies for the GUI and I was probably going to pull in a lot more in the future each time I installed graphical software because after all, this is my main desktop, I’m not going to type at the tty on it all the time. Plus, Arch Linux had a much better wiki. I found myself on it all the time when I had a problem even though I was running Gentoo.

So I figured I’d wipe it and install Arch Linux. Having had my patience worn thin, I didn’t bother with the EFI+GPT option this time and went straight for the BIOS+MBR. Installed the base system, everything took less than 20 minutes because I didn’t have to compile anything. Then I booted into the new system without a hitch. Thank god, something finally working out of the box.

Within another hour I had my MATE desktop and Firefox back, a point which took me several hours to reach in Gentoo and a lot of messing with USE flags and wondering if I really wanted this in my system or not (now: who cares). But the USB problem still occurred intermittently, I couldn’t use my mouse, and the audio was skipping again. No problem, I passed ‘model=asus-mode1’ to the snd_hda_intel module. But it didn’t work.

This is Linux all over again, I sighed. What did I expect. Why didn’t I just install Windows 10. My entire weekend is gone, my eyesight probably slipping because I have to spend more time in front of the screen in addition to the time I already do at work… now that I’m older, I really don’t have patience for this shit anymore.

And on top of that, my Realtek 8111E Ethernet just decided not to send any packets, despite bringing the physical link up. And I knew it wasn’t my Linksys WRT54GL, because that thing is solid as a rock – I trust it so completely because it has earned it. So I was stuck without the internet on my main computer, unable to install new packages.

On my Macbook, I decided to read the other documentation pertaining to the HD Audio module. On this page, I found something interesting: position_fix. I had no idea what a LPIB register was, and I wasn’t about to spend time figuring it out. I put in ‘position_fix=1’ and YES! My sound works again!

The networking and USB detection problem, however, was more difficult because there was nothing I could change, no options to tweak. I kept rebooting (thankfully Arch Linux boots in less than 10 seconds) hoping each time that the network would at least work again. It never did. I read a blogpost claiming that the USB overcurrent protection might be causing it, and that I should just unplug the computer for some time and it’ll be right as day. That didn’t work either, and I left it for a good 5 hours.

Finally in sheer frustration I reset the CMOS.

And the next time I booted, everything worked perfectly again! The network, the mouse was showing… oh yes! Now I recalled old Mac zealots recommending to ‘reset the NVRAM’ to prevent weird problems, and similar exhortations from the SGI and Sun SPARC communities. It made sense. The NVRAM in the PC world is called the CMOS, and problems never arise with Windows because everybody writes their BIOS to work with it.

Writing a BIOS is thankless work, so companies tend to test it against Windows and nothing else. I know Fujitsu in particular doesn’t give a fuck – the Primergy RX300 had broken ACPI tables. If a server vendor couldn’t be bothered to test its products rigorously, what about a consumer motherboard vendor that markets itself to gamers?

So now, finally, I have a wonderful setup. It automounts my ZFS pool, runs foobar2000 through WINE, can serve an rsync daemon, runs Dropbox, git, runs the Python and bash scripts that I write on OS X, doesn’t add hidden desktop.ini files to folders, doesn’t automatically put up a firewall on incoming connections, and more importantly, doesn’t talk back to Microsoft. I can ssh into it when I’m not home, and actually get stuff done in Linux, because you can’t get anything done in Windows with just the command line. Also,

And when I sniff the network and find that this computer is sending packets to the internet, I can pinpoint what it is, because I know that this OS isn’t doing anything behind my back. That it’s not doing anything behind my back is EXTREMELY important. For instance, Windows automatically has a firewall on the network interfaces. When I forward a port, and I don’t get a response, I always have to wonder: did I mess up when configuring the router, or is something wrong somewhere? I spent so much time getting so frustrated over this before realizing that Windows has a firewall up by default. I know what’s doing what and what’s set up in which way. In OS X I don’t know what’s doing This is extremely important, twhat most of the time, but I don’t have to because it always works perfectly and has sane, reasonable defaults. Not so with Microsoft.

The Windows era is over. Slowly but surely Microsoft is making it worse and more bloated with each passing incarnation, and only Office is keeping people on that platform. If people aren’t switching to OS X or Linux, they’re certainly doing more of their computing on Android or iOS.

How to install exfat-fuse on 10.5.8 PPC

Just a few notes for the future.

Macports installs a lot of dependencies, plus it cannot compile osxfuse (can’t use another port anymore) because osxfuse wants XCode 3.2, which doesn’t run on Leopard (only Snow Leopard). Use the binary provided on the official OSXFUSE website.

Use tigerbrew to install python 2.7 and scons. Just to install scons, Macports will install a lot of different crap, but at least it knows that python 2.7 is required to get scons to work properly. scons 2.3.4 is supposed to run on python 2.5.1 according to the documentation, but if you try you will end up with this error. Apparently ‘as’ only works with exceptions since python 2.6:
Import failed. Unable to find SCons files in:
/usr/local/bin/../engine
/usr/local/bin/scons-local-2.3.4
/usr/local/bin/scons-local
/usr/local/lib/scons-2.3.4
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/scons-2.3.4
/usr/local/lib/python2.5/site-packages/scons-2.3.4
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/scons-2.3.4
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/scons-2.3.4
/usr/local/lib/scons
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/scons
/usr/local/lib/python2.5/site-packages/scons
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/scons
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/scons
Traceback (most recent call last):
File "/usr/local/bin/scons", line 190, in
import SCons.Script
File "/usr/local/lib/scons-2.3.4/SCons/Script/__init__.py", line 76, in
import SCons.Environment
File "/usr/local/lib/scons-2.3.4/SCons/Environment.py", line 56, in
import SCons.SConf
File "/usr/local/lib/scons-2.3.4/SCons/SConf.py", line 199
except TypeError as e:
^

After you have python 2.7 and scons, you can follow the instructions on the exfat-fuse website. And it works.

Killed a Radeon HD 7950 in 2 days

I bought a Radeon HD 6870 and 7950 to help mine altcoins, thinking it would all pay off in two months.

No excitement here, these are slaves, workers, brought in to do the work my trusty olde GTX470 can’t do by itself. As such, I only took pictures of the Radeon HD 6870, but not the 7950. Well… it’s dead now. But I’m getting ahead of myself.

The first thing I noticed about the 7950 was either the cooler sucked (Sapphire Dual-X), or the chip puts out way more heat than my GTX470. Ran a bit of Metro 2033 on the thing just to satisfy my friend, didn’t feel noticeably smoother than on my GTX470 unfortunately. Also ran Crysis 2 on DX11. The added oomph from the 7950 wasn’t enough to make Crysis 2 as smooth as DX9 (on my GTX470). Overall, gaming wise, I hadn’t gone anywhere. Not that I needed extra performance in games – I hardly play games anymore.

Mining was a good upgrade over my overclocked GTX470. The Radeon HD 6870 didn’t want to work with the integrated Radeon HD 4250 in my second computer, but once I told it it was the only card for me, it set to work making LTC/FTC/CNC at 300kH/s (this is at high intensity). The Radeon HD 7950 managed to score the same amount at low intensity settings in GUIminer-scrypt (preset: 7950 low usage) but at high intensity it could pump out 450kH/s.

This made the desktop incredibly laggy, even if it was driving only one monitor, both monitors would be laggy. Seems to be a Windows issue, no wonder so many headless mining rigs run Linux. So I kept all the monitors on my GTX470 instead, and enjoyed smooth desktop operation while the 7950 cranked away.

All in all, 450kH/s+300kH/s+150kH/s is not an impressive show, when I bought the two cards, I had banked on the 6870 producing 350kH/s, and the 7950 to produce ~650kH/s. Turns out these were only peak figures achieved by people with watercooling loops.

Then I found that Powertune was throttling the 7950 down to 64% every now and then. WTF? When I buy a card with a custom cooler, I expect it be able to run at stock clocks without throttling, no matter the workload! So I raised the limit, and overclocked it, but I found that the overclock made Powertune throttle the GPU down to 64%… again. I figured the 100% of 925MHz was better than an intermittent 64% of 1100MHz… so I left it all at stock clocks, but kept the Powertune at +20%. OK, it’s now at 100% and not throttling – but I’m only getting 560kH/s, max. The Litecoin wiki said I’d get 600! (spent some time with thread-concurrency at 21712-24000, nothing got me up to 600 on stock clocks.

Nevertheless I had other concerns. It was getting really fucking hot, the GPU was reaching 83C. and loud. Freaking loud. The 6870 was working hard, and I couldn’t hear it over the background noise coming in from the open window. The 7950 made my PC sound like a blade server, and the sheer heat scared me enough to keep the case open, and the window to my room open. With the case closed, the heat from the 7950 made my Phenom II X6 just as hot as if it had been working at 100% too. I decided to leave the 7950 alone at 560kH/s and not overclock it.

I put up with this racket for two days, helped immensely by a pair of green foam earplugs and copious amounts of cold tap water on my body. In the end, I decided to give the computer a rest – I was hearing a rattling fan somewhere in there. Killed the miners (I got one block of BTB! yay) and let it idle at the desktop for a while. Then I shut the system down.

Ah, some peace and quiet. The Corsair Graphite 600T is making cracking noises as it sheds the heat, damn that was some workout. The CPU’s heatsink, despite it idling all the time, is hot. The heatplate on the 7950 burnt my finger. The GTX470 is doing just fine despite being just below the 7950 and running cudaminer (I don’t know how but Gelid’s Icy Vision custom heatsink is an incredibly good performer). Really, such peace and quiet. XFX’s 6870 is working in the other computer, reliably, making a loud whooshing sound but nothing really grating. OK, it’s time to get back to work.

I press the button, and my LED fans flash on for an instant, and quickly die. I smell something. Fuck. was that my mainboard? was that…. anything? I press again and again, the computer refuses to turn on, seems like the PSU’s short circuit protection is working. I pull out the Radeon HD 7950 and the computer boots.

God damn. So much for high quality Black Diamond chokes. So much for the Dual-X cooler. So much for Powertune. So much for mining!

Lessons learned:
1. Graphic cards should be seen and not heard.
2. Slow, steady and silent is actually preferable to fast, hot and raucous (does this mean I should mine LTC instead of the more profitable FTC/CNC?)
3. Sapphire’s Dual-X cooler isn’t all that. Shitty hardware review sites like techpowerup.com say that the cooler keeps the GPU at 63C while being silent, without mentioning that this is all because Powertune is silently throttling it in the background. Although Sapphire’s Dual-X heatsink is “custom”, the aftermarket Gelid Icy Vision dissipates the same amount of heat silently, without any fuss. I’m sure my GTX470 can put out more heat.
4. Most importantly: mining is for suckers. Buying hardware just for mining is for real suckers.

The 7950 is going back for a refund. It wasn’t perceptibly faster than my GTX470 anyway, despite what Anandtech bench may say.