09 October 2019

Samsung Galaxy S5 / S5 Neo with Lineage OS 16 bootlooping on install

Today I learned that if you install the opengapps package for Android 9 (Pie), it'll bootloop to recovery instead of loading up. Apparently same goes for the S4 too. They just don't like the recent opengapps packages. Use MindTheGapps, they work fine.

Edit: Turns out there was a bug in opengapps when I tried to install. Figures... works fine now.

01 October 2019

DD-WRT allowing setting of initial username and password then locking out, and unable to TFTP new firmware

Seems it's the day for discovering things. I upgraded to the latest Brainslayer DD-WRT release on an R7000 at work. So far, so good, fairly standard stuff. I'd wiped it beforehand, set my PC IP to 192.168.1.2, got to the web interface, set the username and password as previous, clicked on setup, waited, and then watched myself repeatedly get a "connection reset" message. I figured it was a bad flash. Tried to TFTP a new copy of the image in, it wouldn't take - turns out it works better if you use the .CHK format for that. Got out a USB-TTL interface and flashed it manually, wiped it, rebooted.

Same problem.

After much head scratching, it turned out the problem was in fact a combination of my browser and saved credentials (in this case, provided by Kee and KeePass). Because I had previously saved HTTP credentials for 192.168.1.1 on an unrelated router, it tried to repeatedly automatically submit them to the HTTP auth request, and it looks like I triggered anti-lockout rules.

Whoops!

Suffice to say opening the router was unnecessary, but at least I had the kit handy and ready.

Microsoft Remote Desktop breaks with error 0x800706be every time you try to make an outgoing connection

I was getting the above "An authentication error has occurred (Code: 0x800706be)." every time I tried to remote out of my work PC. Couldn't figure it at all, and thought it was the machine I was trying to remote into. Turns out that the CSR Harmony Bluetooth stack (it's old, but the only way to easily get APT-X on a reasonably cheap bluetooth dongle for my Sony headphones) breaks the authentication. Wtf.

Renaming C:\Program Files\CSR\CSR Harmony Wireless Software Stack\BLEtokenCredentialProvider.dll to something else (I went with .disabled, but whatever works) instantly solves the problem, and doesn't seem to affect the bluetooth setup at all.

Mostly keeping this here for my own benefit, but hopefully it'll help those searching for an answer.

(Originally spotted via https://community.spiceworks.com/topic/1778270-rdp-from-windows-10-to-anywhere - took me ages to find the answer, over several months!)

Edit: New versions of Windows 10 don't play nice with the CSR Harmony Bluetooth stack. It should be removed. But be aware, I've seen it break the Bluetooth audio stack when doing so - to the point Skype crashes when attempting to initialise the Bluetooth microphone. Haven't found a fix yet.

Edit 2: Apparently Solarwinds RMM also causes the same problem. Guessing other third party authentication systems can cause similar problems.

01 August 2019

The connections that disconnect us all.

I have watched the birth of the consumer Internet. Not literally, I'm not talking the days of ARPAnet and co, but I remember BBSs, private systems you'd dial into to find software you wanted (at very slow speeds), and chat to like minded people. I was on CompuServe, back when that and AOL were around before the main Internet really took off in the home. Where you could find areas of interest, chat with people on the system, download 256 colour porn, slowly coming into focus over the painful speed of dialup connections, and my earliest experiences of interactive erotica, when I was around 14-15. I didn't understand what it was back then, I just thought it was fun and attention, a mistake I made with many things, but it was relatively harmless. Then for me came Winsock, and a connection to the larger Internet.

Back in it's infancy, it allowed access to new things. IRC - the Internet Relay Chat system, globally linked sets of servers defined as a network group, text based with a sprinkling of ASCII art via mIRC scripts (I'll never forget accidentally clicking the thing that said Nine Inch Nails in a room with a girl I liked, and it popping up that "I want to fuck you like an animal" - I hadn't quite figured out what Nine Inch Nails was at the time. I went a very bright shade of red. Not that she could tell, though I'm fairly sure I confessed my embarrassment.) Joining rooms of interest, finding people in common, trying to fit in, spreading out into other rooms that friends recommended, and some of those friends I'm still in touch with today. ICQ came with its defining "honk" on load. I mostly used that to chat to friends I knew, with the odd random person that I kept in touch with for many years after (waves to Amanda in the States). Newsgroups set up to follow interests, synchronised across ISPs. Yahoo! Messenger followed. Then MSN. Cute little smiley icons, graphic representations of the text emojis we'd used for years. Chatpoint (hey ldy_kimmer!). HoTMaiL, the first free web based email system that I saw, that operated independently from your ISP email, which you'd normally access with a client like Eudora or Netscape Communicator. Trillian, connecting me to all the disparate networks at once. The browser wars. Frontpage. PHP. RealAudio Player and NetRadio, in gloriously poor quality. Everything got cheaper, pop unders were everywhere, your browser getting overtaken with a million windows, at least 30% of which were porn related. The susceptibility of people to be infected with wonders such as the Anna Kournikova virus. The rise of Microsoft Outlook, developed from Microsoft Schedule+, and all the hell it caused, with it's non-standard email formatting and it's magical ability to spread viruses across the Internet. Pings of death on port 139. But I digress.

I came from IRC, instant messengers, then web chat systems, then the likes of Myspace turned up. People creating a virtual persona of themselves. I suppose this was the beginning of the virtual personalities, an extension of that which we present to others, except it's a one way street, non-interactive. Forums replaced newsgroups. Facebook happened. There's an annoying plethora of messengers out there, which are rarely cross compatible. (I miss the days of being able to use Trillian and GAIM for them.)

But here's the problem. In this hyper-connected world, where we are always available to hundreds of people at once, at any given point, we're more isolated than ever. I live it. Email is a reasonably convenient replacement for postal communication. But instant messaging, instead of being a supplement for normal communication, appears to have supplanted it for a large part of the population - particularly myself. And in doing so, it's reduced the actual connections we have. A few messages here and there are good, a little message to cheer someone up, checking what's going on tonight for plans, group chats for making arrangements. But "sharing" experiences via online platforms has devalued them all, especially with the sheer amount we're bombarded with. Even when sharing real life experiences with people we care about, how engaged are we really? How many times do we look at our phone instead of interacting with those we're with, always looking for the little dopamine hits that the apps on our phones are trying to generate? And when did we forget how to connect in real life properly?

This all seems quite ironic considering just how engaged I've been in these systems. They helped at first. The way my brain is wired, I found it extremely difficult to communicate with anyone, but text allows me to be more careful with what I write and give considered responses, rather than getting flustered in real life, which happens far too often. I've grown up with these systems of communication, they're completely integrated into how I operate. I dreamed of the day I could implant a coprocessor in my brain, access additional storage, everything faster, better, be more efficient, be better, be smarter, be something more.

Yet I suspect all I'd achieve right now is to manage to task switch multiple times more quickly, and achieve half as much as I do, though I'd have looked up a dozen pages of vaguely interesting but mostly irrelevant data on Wikipedia.

And I want out.

All I've ever really been seeking is connections. From friends to soulmates. But to truly connect, I finally believe you must disconnect first, which is entirely foreign to me.

But I'm going to learn.

Live in the real life. Don't fade into being a digital ghost. Because every moment, every connection, every conversation face to face, or even on the phone, has so much more value than a few bits of text sent across this fantastic global network we have.

You can never truly appreciate the sound of the river, the smell of the fresh rain, the feel of the bark of a tree, the feel of the grass between your toes, from a picture or a description from a phone screen.

This is not living. This is existing in something that doesn't actually exist, a projection. No matter how much I wanted it all to be real over the years, it often falls apart if you give it a slight poke. But those meals with friends, laughter, playing silly games, going for a walk, pushing yourself to be better, kisses in the sun, holding hands, enjoying beautiful roads and the countryside, tactile contact, intimacy, losing yourself in moments with people, and learning to slow right down. Moments. Real life moments.

Sometimes watching cat videos with your friends, or films, or gaming, or scheduling to spend time in real life together, via the Internet, is great. But don't forget to disconnect a little. Use the system as you need it, don't just become part of it. And try to realise this before you hit 39, like I'm about to. The Internet is a massively interconnected set of tools, and a damn fine set at times, helping us be more time efficient, learning things, being entertaining, and providing far more amusements and distractions than your average arcade in the 80s. But it should always work for you, not the other way around. Remember to live in the real world, and don't get lost in the ether like I did, hiding from the real world and rarely getting the connections I needed because I was looking for them through a screen.

30 July 2019

Like tears in rain...

I've done questionable things, and extraordinary things. I've created memories with others, and by myself. In time, most of these will fade, like tears in rain, as so beautifully described by Roy Batty in Blade Runner, aka Rutger Hauer.

He was right, you know. We do so much in our lives that won't live past the end of us. So many things, events, experiences, that die with us. Many that are shared, but with each person lost, one of the perspectives is gone forever, until the last memory is lost. And over time, for most people, those memories can change, get tinted, be romanticised, or even simply disappear in the expanse of our minds. We write down tidbits on social media with snippets of photos and video, sharing a shadow of what we've seen, a reflection, but without the depth or emotions of the experience. A tiny 2D window into a much richer world.

How scary is that? How fleeting our experiences, our lives, everything we are, everything we've been... Then nothing. Though that's not strictly true anymore, I see people leave what they write up on social media as their projection and perspective of their day-to-day lives, often filtered to make it look like they're having a better time than they are, their "best self" that people seem to compete with, as if we have appearances to maintain. If we're lucky, we make a lasting impression on the world, preferably a good one. All we have that really matters is those we interact with, and how we do it. Be kind. Love and be loved. Don't stay in things that aren't good for you, don't be afraid to be in those that are, and try to learn the difference between the two. It's okay to not know what you're doing, but don't be afraid of that. It's paralysed me in the past, so often. I have caused a lot of damage to others, because I didn't understand the cumulative effect of the damage I've incurred. I was always seeking to fill a void which could never be filled, because I was trying to avoid damage, single points of failure, avoiding taking any more hits to an already bruised heart. There's little point blaming myself - like so many things I've done, I simply didn't understand; a lack of understanding of myself as well as a lack of understanding of others. Sure, my brain ticks differently, but not understanding is still simply not understanding.

Make some good tears to be lost in the rain. You, and those you love, deserve it. They may not last, but you have what you have, right now, and the memories you have made. Learn from them. Smile at the good memories, learn from the bad - because let's face it, good and bad are all relative. Remember to just be, and live in the moment, if you can - because our past plus this very moment, the moment you're spending reading this text, is all we have. Our cumulative experiences, and the choices we make. Take the time to know yourself, and take the time to truly know others. Be kind to others. Love, smile, cry, and just be. Remember that you aren't defined by your previous experiences, but you can use what you got from them in the future, but don't let it taint you. Dont be afraid to ask for help too - we're not always capable of working things out on our own in our own minds, and you can almost guarantee you're far from the first to go through something. Don't be as locked down as I've been, be kind to yourself too, because it'll help you to be kind to others. Fear is a companion which walks with us after we've hurtled on the edge of precipices, and sometimes fallen off, and we know how much it hurts. It's too easy to try to bubble wrap yourself up and avoid being put in danger again, and I've done it, held people at a distance, refused to get too close, avoided getting trapped because I might end up with someone close, someone able to pierce my heart again. Sometimes to achieve truly great things you sometimes have to jump anyway across that chasm, regardless of how scared you are. Remember to challenge those fears, because while they're sometimes good guides and warnings, things change, as do people, including yourself. You're going to make mistakes, you're going to lose good people, you're going to hurt people, sometimes you're going to get hurt, but if you're trying to do the right thing, it's all you really can do, and to appreciate what we have right now, in whatever form that lies. And sometimes, go let those tears out in the rain. You never know how many more times you'll see it.

21 November 2017

Magento half rendered page with no errors shown or logged (with fix)

Over the last couple of days, I've had a bizarre problem where Magento (1.x series, 1.9.1.0 specifically) would crash halfway through rendering a page, and refuse point blank to display the error anywhere or log it. Much hair pulling later, checking of nginx configs, making sure developer mode was enabled, forcibly ensuring all errors were shown, and then eventually manually stepping through every step of the code, I discovered a core hack. This in itself isn't that unusual when dealing with customer systems developed by other people, and I'd moved it to its own local folder as part of cleanup, but the code in question was doing a @dba_open (that's a Berkeley DB file opener), with the @ sign to prevent errors being shown. (The actual problem was I didn't have BDB support enabled on PHP, but as all errors were being suppressed, it was a tad difficult to track down.)

That in itself makes sense, but what I also learned what that @ before the function actually does is internally run error_handling(0) - then when it actually bailed, it ran the Magento custom error handler mageCoreErrorHandler in app/code/core/Mage/Core/functions.php, which would normally log an exception and/or display it on screen - except for the fact the @ had set the error_handling to 0 which was then run through $errno = $errno & error_reporting() , which immediately returned false if the AND returned 0, and promptly crashed mid-render without any explanation as to why, as the error handler decided it wasn't actually an error worth reporting.

I've also no idea why someone would pull out data from a berkeley flat DB in the middle of a Magento page render, it's a bit messy, but my guess is the developer was on the wrong end of the cheap/fast/good triangle.

Short version - don't use @ in the middle of Magento code - or indeed any code - without writing some proper error handling / logging of your own, because if someone else has to come and deal with it later, they're likely to end up banging their heads against a brick wall. Especially if it's hidden in the deep, dark depths of a core hack.

24 May 2017

Wileyfox Android Nougat 7 upgrade and lost contacts

Came across a problem with a family member who'd upgraded their Wileyfox Swift to Android 7.x, guessing it's their new version without Cyanogen on the sticker, but had lost all his contacts in the first place. Seems the original OS had the ability to add a Hotmail account and sync all the contacts to it using the built-in mail app, and the new one only had the ability to read it over IMAP. The confusion mainly arose because the hotmail account was also his Google account, and Android was trying (and obviously failing) to sync Gmail.

The solution is to remove the IMAP account from gmail/whatever mail client they have, and install Outlook from the play store, and go into settings and set it to sync contacts. Instant relief.

Hope this helps someone.