joshua0: (Default)
2019-02-06 06:41 pm
Entry tags:

as is its nature

Just as I left the office this evening and got on my bike to head home, the sun was taking its last gasps, making its way down behind the hills. I didn't know this until I turned out of the parking lot, and saw the sky positively on fire, with tantalizingly brilliant hues of pink and orange and gold descending behind the recycling plant, and into the trees; I skidded my back tire briefly while deciding whether to take a photo then, and then figured I'd grab it when I had an unobstructed view around the corner.

an ebbing sunset behind buildings

I pedaled down the road, waiting for the opportunity to see it in its full glory, but there was always something in the way. I turned facing down the foothills, but by now, just a few minutes later, it had faded to just a dull glow. I took the picture anyway.

a grey sky

By the time I was nearly home, I stopped at a red light, and the sky betrayed no sign at all that anything had happened between me and it, now cold, grey, and unfeeling. "As is its nature", I thought.

But I knew, too, that even as it turned to black now, it would surely awaken again in all its radiant warmth, even if only for moments at a time.

joshua0: (Default)
2018-12-31 12:25 am
Entry tags:

on the horizon: 2018, as heard by Joshua.

on the horizon: 2018, as heard by Joshua.
(a mixtape)

on the horizon: 2018, as heard by Joshua.

This compilation is the first of what I hope to be a series of "Joshua's picks from the year". Some of these tracks did not come out this year, and some of them did not even come out recently; the important thing about them is that I discovered them this year! In this CD-length mix, my goal is that everybody who listens should pick up something new that they didn't know that they loved, and many should also find a track that they really quite dislike: if everybody loves everything, then I'm not being pushing my listeners out of their comfort zone enough, and if everybody hates everything, then I'm not giving anybody a reason to listen.

In this compilation, I've mixed together a range of music from a variety of genres, feelings, and tones. 2018 was a year full of so much, and I hope that in here I could present some of the gamut that it spanned. Please join with me, then, in the soundtrack to my 2018.

My "music 2018" roundup post will come soon. But I did spend tens of hours selecting the tracks, mixing them, and putting this together for you, so I hope this will hold you over until then!
joshua0: (Default)
2018-11-27 11:18 pm

window on my world

sunset-painted sky through a window, with water bottles and other gym accoutrements in the foreground
(click for many more)


a window on my world

Everything seems to be happening so fast these days. April feels like an eternity ago. A lot has happened inside me. A lot has happened outside. I have been a lot of places, and experienced a lot of things. I tried to capture a lot of feelings that went flashing by me, and as I went flipping through them, they all came rushing back. The photos I shot, I hope, resonate some with you, too. Please enjoy a tiny view into my universe.

(previously, previously)
joshua0: (Default)
2018-11-25 01:48 pm
Entry tags:

pyusbip

I spent this last Thanksgiving week at home with my family in the greater Boston area, which has been a wonderfully relaxing break from all the goings-on of my ordinary life in the Bay Area. Since I planned to get a little bit of work done for a client, I brought with me some development boards, including a Lattice MachXO3L eval kit. I had a productive Monday and Tuesday, getting quite a lot done, testing all the while in simulation, but by Friday, I was ready to test on hardware, and this posed a problem: the tool to program a bitstream onto the board runs on Windows and Linux, but I only had my Mac with me. I considered all the obvious solutions to this problem, weighed them each on their individual merits, and then discarded them all and chose the most complicated unreasonable approach possible.

--- More (1791 words) --- )
joshua0: (Default)
2018-11-09 10:14 pm
Entry tags:

A short update on the Wahoo ELEMNT BOLT

A few months ago, I wrote a little review of the Wahoo ELEMNT BOLT, and a miniature teardown of the software on it. I was surprised to find that it, in fact, ran Android, but that the license compliance story on it was not great. Over the intervening time, though, I've been exchanging some mail with Chip Hawkins, the CEO at Wahoo, and it sounds like they're working on getting the licensing story all fixed up there -- and, to my surprise, that engaging with the enthusiast community is something that they are interested in! So, this post has a short update on some of those discussions, and my experiments so far in modifying the thing.

My initial post led off with this arguably clickbait-like statement that the device was in violation of its myriad licenses, so I think it is only fair to the Wahoo team to give an update on where that stands. As of the time I write this, source isn't available for the GPL components, and attribution isn't in place for the Apache components, but as far as I can tell, Chip and his team are pretty serious about getting this squared away. They have a release pending that has been occupying basically all of their engineering time, which also will have some UI changes; so, for the attribution components, they plan to include those in the new UI, rather than running a fire-drill to retrofit that a branch that is unlikely to see another release again. This makes sense to me. My impression is that the next release will have attributions included, then, and kernel source for that release will go out with it, too. They seem to understand what components they need to release source for, and where to look for other licenses that they need to include. So, my claim is that anyone who wishes to be mad about there not being source available yet, should wait for the next release -- it does sound like they are trying, and have a plan to get into compliance! The Android app already has an attributions tab, which is a good start, and I hope that they get the on-device software squared away soon too.

Chip also gave me some information on doing some hacking on the device, which is exciting. They plan to release a recovery image (for Android people, this is a full update.zip, including boot, /system, and userdata images) along with the next release, but until that is ready, one caveat to all of the following is that would-be hackers must be extremely careful, because there is currently no image available to restore a device from unless you create one, and further, that if you modify the root filesystem, then the device will no longer be able to take over-the-air updates until you restore it from backup.

With all those warnings said, here are some tricks to get you started messing with the device. I mentioned in my previous post that the device had an ADB daemon running, but it wasn't accessible; as it turns out, there is a key shortcut to get access to it! If you press the power button and the up button on the right side at the same time, the ADB daemon should unlock. Chip notes that it's best to press them a few times in a row in order to ensure that the event actually happens; after you do that, unplug the device from your computer, then plug it back in, and you should be able to adb shell in. For me, the ADB daemon was already running as root, but if this wasn't the case for you, I am told that adb root should work.

Since there isn't a recovery image available yet, I recommend that the first thing that you do is to make your own. To get a bare minimum backup of the system image on your device, you might want to run something like for i in boot system recovery nvdata ; do adb pull /dev/block/platform/mtk-msdc.0/by-name/$i elemnt-backup-$i.img; done, which will grab a backup of, at least, everything you need to reflash a known-good bootable configuration onto your device.

Once you have boot and system partition images, you are now in a much safer position to explore the device. The other step that you might want to take is to unlock the bootloader on the device, so that you can flash those images again if you need to. The ELEMNT devices run Fastboot, but they have a very finicky version of Fastboot running on them; as far as I can tell, after every command, you need to unplug and plug the device back in, or else it will not respond to you again. Unlocking the bootloader will wipe any data that you have on the device, so make sure to back up anything that you want (either using ADB, or over MTP with Android File Transfer) before you do it!

To boot the device into Fastboot, turn it all the way off, then hold the "down" button on the right side while pressing the power button. If everything goes well, it will give you a black screen, and present a Fastboot interface over USB. Run fastboot oem unlock on your computer side; you'll get a message like "waiting for user" or something of that nature. When you do, press the power button once, and wait; you'll eventually get a message like "erasing user data...", and then the device will be unlocked. To be sure of that, you can unplug and plug the USB connection back in, and then run fastboot getvar all; in there, you'll see the message "unlocked: yes". When you're ready, you can then run fastboot continue, and your device will continue to boot. If you get yourself into trouble later, you can restore your backup with something like fastboot flash:raw boot elemnt-backup-boot.img, and similarly, fastboot flash system elemnt-backup-system.img.

I had been putting this post off for a while, since I had planned to try to modify the .apk that runs the thing. Sadly, I never really got time to do that. But I did get mail from Chip saying that he didn't have objections to people redistributing modified system ROMs -- and modified BoltApp.apks. So what I'm hearing is that, for the enterprising hacker with spare time, this could be a fun toy! He notes that the launcher is pretty careful about monitoring the main app for crashes, and that there are intents that you can send the launcher to make it happier; I tried decompiling the launcher, but found that the version of Android that runs on the device is not compatible with any of the de-odex tools that are out there. So that also sounds like future work.

Anyway, I'm still using mine. I still wish it would boot faster, and especially that it would restore a paused ride faster. I also wish that it would show me sunset times. But I've put a few hundred miles on mine by now, and it hasn't eaten a ride yet. And that makes it better than my Edge 510.

joshua0: (Default)
2018-10-27 09:56 pm
Entry tags:

שְׁמַע יִשְׂרָאֵל‬ (shema, yisrael)

a havdalah candle reflected in a fingernail

I don't usually write about current events -- here, or anywhere else, really -- because, for better or for worse, they don't usually reflect my own lived experience, and anyway, someone else probably has done a better job writing about them than I have. There is an argument that, in this time as I make preparations to make havdalah [the closing prayers, service, and meditation for Shabbat] -- something I do approximately once every never at home -- that I should not be writing about this subject at all yet, but the peace of the Rest Day has already been shattered by eleven deaths in Pittsburgh earlier today, and surely my koteb ["writing"; a prohibited activity on Shabbat] shall not breach it any more than it already has been. And I'll give myself a pass on the other front, too: as I expected today's news to pass through me, I found this afternoon that I could not tear myself away from news and Twitter and messengers, hoping in some way to make sense from something that doesn't. And so I write.

--- More (2443 words) --- )
joshua0: (Default)
2018-10-12 10:51 pm
Entry tags:

episodic

This post has been a long time in the works. I've had it on my disk for five or so months, and I never really got it into a state where I liked it enough to post. Oddly enough, five months ago, when I wrote the first draft of this, #DeleteFacebook was trending, and I originally wrote:

"I had been planning another post for a while, with the thesis being an answer to the question: if we #DeleteFacebook, then what? I have been meaning to sit down and write that for a while, but I either haven't had the time to do it or I just didn't want to. It might not be coincidence that this post feels more pressing and urgent at this second at my fingertips; the two are inextricably linked in my head. (T.C. Sottek's piece from 2016 in The Verge, offers a different perspective on this.)"

I didn't "#DeleteFacebook" then, and I haven't now, but when Facebook was compromised and logged me out a few weeks ago, I never bothered to log back in. I was having a rough time around then, and the escapist urges to disconnect ran high.

I've dug this out because it seems apropos for this hashtag-holiday that's trending this week. As much as I above describe a coherent structure for a post that I wanted to write at some point, this post continues in the recent trend of having no such; instead, I offer, perhaps, a collection of vignettes on mental health -- in general, and mine in specific.

--- More (1322 words) --- )
joshua0: (Default)
2018-08-19 01:25 am
Entry tags:

Trip reports: expectation, and experience.

a blurry road at night, lit by headlamp, with trees whizzing by
It never goes smooth. How come it never goes smooth?

I have had a lot of trip reports in the queue to write -- or, perhaps I should say, I have taken a lot of trips recently, and some of them had moments worth writing about. I have half of a trip report written about getting shut down on Mt. Shasta; after it became clear that it was a simple recounting of a day, with nothing terribly interesting to say about it in that light, I gave up on that incarnation of it. In my mind, too, was brewing a set of thoughts about a recent cycling trip to make a lap around Lake Tahoe. On my laptop is also a draft of a post about mental health -- or, really, the things that go along with the absence thereof -- that I never seemed quite satisfied with enough to post.

It seems like what I was looking to write is a synthesis of all of these. Over the past few months, I have entered a handful of experiences with expectations for how they would turn out; some of them went exactly as I'd planned, and some of them were entirely the opposite. To be honest, I'm not sure exactly what my thesis is here -- is it that expectations influence outcomes? that they don't? that expectations influence experience? Regardless, here are a collection of moments of each of these.

"The best climber is the one having the most fun." — Alex Lowe
--- More (4108 words) --- )
joshua0: (Default)
2018-08-13 09:57 pm

Accelerated Tech

After nearly seven enjoyable and stimulating years, July 2nd was my last day at NVIDIA; I learned an enormous amount from all of my wonderful colleagues there, and I'm very grateful for the opportunities that I was given there. Some highlights of my time at NVIDIA include: assisting in or facilitating the bringup of eight (!) chips; designing a ground-up new architecture for Tegra's video input engine; visiting a customer site with a logic analyzer that was worth a few times more than the car I drove there in; laying out the concept of the image processing pipeline for the zFAS platform in this year's Audi A8; prototyping a machine learning-based image signal processor; spending an hour or two with a soldering iron attaching probes to a 3GT/s MIPI link; and guiding the NVDLA open source project from concept to initial release. Perhaps more strikingly, I was lucky to have worked with a great number of people with at least as diverse experience as I, and to have had the chance to benefit from their expertise! So it is with nontrivial sadness that I depart, but that is how things go, I suppose.

On the other hand, it is my joy and excitement to announce that, as of last week, I am now Senior Engineer and Vice President at Accelerated Tech! Accelerated Tech is the combination of me and Jamey Hicks working together to provide hardware and low-level software design and engineering services. I first worked with Jamey over 15 years ago, when I had an HP iPAQ h3765, and his project at HP Labs -- handhelds.org (sadly, now defunct) -- existed to run Linux on those devices. Jamey was a powerful mentor for me during my early days of systems programming, and so I am proud and excited (and, perhaps, a little nervous!) to be working alongside him again in this new role.

When I worked with Jamey last, it was not immediately obvious at the time that what his lab was doing was "the future", but in retrospect, it is very clear to me that the handhelds.org work was the direct predecessor of, and the enabling technology for, modern smartphones. I don't think that it's possible to try to predict future results from past performance, and the kind of impact that handhelds.org had seems like the kind of thing that happens at most once in a lifetime. At the same time, the parallels of stage of development of some of the technology at play are striking: programmable logic has only recently hit a price point that ordinary hobbyists can experiment with, and that it can start to show up in consumer devices. Development for programmable logic is still quite difficult, especially as designs become nontrivial, and it it's still very unusual to build hardware with 'modern' programming techniques (i.e., with higher-order typed languages, or 'correct-by-construction' design methodologies). It's hard to believe that we could have the kind of impact a second time that we did the first time, but there sure is a lot of space in the hardware design world to improve.

I am excited. I think that I'll be doing a lot of different and interesting work soon. I am also a little nervous, for myriad reasons. But that's a good thing, maybe: if the outcome of something is guaranteed, is it really worth doing? No matter what, I hope to learn and grow.

joshua0: (Default)
2018-08-04 11:07 am

Gear review: Wahoo ELEMNT BOLT (or: "my new bike computer violates the GPL")

There have been a lot of exciting changes for me in the past month -- maybe the most exciting being that I left my job, and so I've been spending the last month biking and hiking and generally getting outside. I've been meaning to write about those, and I have a post drafted about that, but this is not that post. Instead, this post is an unrepentently nerdy dissection of a new toy that I got, in which I unintentionally buy yet another Android device -- a Wahoo ELEMNT BOLT, which is a bike computer with GPS (and other data) logging support, phone and internet connectivity, and a whole bunch of exciting gadget and doodad features.

Update August 6th, 2018: I am in contact with Chip, at Wahoo Fitness, about the licensing issues -- and with promising news about hackability! I'll write a little more later when I get a chance, but I figured this update should be front and center....

--- More (3314 words) --- )
joshua0: (Default)
2018-07-21 10:58 pm
Entry tags:

yep, it's still storming out there.

a threatening-looking sky behind mountains peers through a tent window
(4032x3024)

yep, it's still storming out there.
joshua0: (Default)
2018-01-27 05:07 pm
Entry tags:

Millenial Falcon.

So, last night, I went to So Stoked: Rave to the Grave 2 at DNA Lounge. So Stoked is DNA's once-a-month kandi rave; I don't usually attend, but I confess that I do really miss getting to dance to high-BPM trance. Rave to the Grave is a kind of unusual event, where the So Stoked promoters join forces with the Death Guild promoters; upstairs, are the Death Guild DJs playing (maybe a little bit older, and faster) Death Guild tunes, and downstairs, are the standard kandi rave DJs. In the two times they've done this, they've had one big-name EBM DJ and one big-name rave DJ for each one; last time, they had Ronan Harris, of VNV Nation and Darude[1], and this time, they had Daniel Graves, of Aesthetic Perfection and Kyau & Albert[2]. (Both DJs played both rooms.) The event is, anyway, weird enough, and enough fun, that I try to make it a point to attend when it comes around.

Anyway, [personal profile] jgrafton and I arrived around 10pm or so, a little while before Daniel Graves's set, and we stuck around downstairs through some of the later sets, too. As far as I can tell, the two of us were basically the only ones dancing with glowsticks, and I was dancing pretty darn hard.

Eventually, this kid walks up to me. As far as I could remember, he wasn't wearing a wristband[3]; I'd seen him getting a light show from someone with LED gloves earlier that evening. He looked impressed -- and somewhat transfixed -- so I obliged, and turned my glowsticks in his direction.

"Dude. Are those just glowsticks?" Yep. The best 4.5-star glow that Amazon can sell you for $20.

"Dude. Do you ever use gloves?" Nope. Just glow. LED gloves are after my time.

"So you never used gloves before? Just that?" Nope.

"That makes it even more impressive!" The best of the [livejournal.com profile] knightofstarz Roselawn 7 School of Dance, my young friend.

He says something. Mumble. I can't understand it over the noise.

He pulls out his phone. He opens Snapchat. I nod, and turn up my dancing a notch to give him another light show. He doesn't seem to be aiming his phone at me to video; instead, he leans in to say something. Mumble. I don't understand.

He pulls up his QR code. Snapcode. Whatever it's called. I understand.

I grab my phone and launch Snapchat, and aim the viewfinder at his snapcode. It doesn't automatically scan. I realize that I don't know how to scan a snapcode. I try going to the "add friends" tab, and tap on "snapcode". It asks me to select an image from my camera roll; I didn't capture one. I fumble in embarrassment. Clearly, I am not a very competent Millenial.

He looks at me, and I hand him my phone. He expertly finds my snapcode, and just types my name into his phone somehow. I didn't think my profile was public, but maybe I am just the only "joshua" on Snapchat. He adds me, and smiles, and goes on his way.

I now understand. He uses Snapchat and gloves; I use IRC and glow.

Tomorrow, he will see my Snapchat story, with snaps of heckling my coworkers, and shitposting about my impending disappointment with a screenshot of buying MP3s of the new Above & Beyond album on Amazon, and he will be as confused as I.

* * *

(Young raver friend, if you come across this, keep on rocking. I am at least as much making fun of me as I am of you.)

[1] You heard me. Darude. Like, Sandstorm Darude.
[2] Who, by the way, were also freakin' fantastic.
[3] i.e., he was not of drinking age. So Stoked is an all-ages event. This is, on occasion, somewhat unsettling. I am pretty sure that the song Sandstorm was older than the median age at the event when they had this last year.
joshua0: (Default)
2018-01-14 08:33 pm
Entry tags:

2017 in music

Yes, it's that time of year again: a little late, but it's the musical year in review for 2017. There was a handful of really good stuff this year, and a few albums that I was really excited about! This year, I made some changes: I've added a relative and subjective rating system, from one to five stars. A one star album is not, necessarily, bad (unless I say it is...) -- think of it, really, as how much I am excited about listening to something, so one star just might mean that I haven't really found a place for it in my regular listening habits. The more stars, the more I think other people will want to listen to it too; to that end, this year, I had only one five-star album, but that means that yinz had better go and listen to it!

Got it? Okay, well, let's get started! This year, I bought 18 albums, saw 5 live shows, and recommended another additional 18 pieces of "extra credit", and here they are:

--- More (5459 words) --- )

So that was 2017. What did I miss?

(Previously, 2016; previously, 2015.)

(Also, this post was automatically formatted by a script that I wrote, and if you want it for yourself, you can get it here.)

joshua0: (Default)
2018-01-10 09:31 pm
Entry tags:

you take practice, practice, practice

Tomorrow afternoon, I'm scheduled to get LASIK. I have some trepidation about this. Not, like, worried about the outcome: I'm pretty sure that, on the whole, having a LASIK flap is going to be much safer and much less of a liability than being dependent on corrective optics while I'm outside exploring. To tell the truth, I was planning on doing this last year, and backed off at the last second -- like, the day before I was supposed to come in for measurements. I've worn glasses since I was 6 or so (so, 22 years!), and glasses have just kind of become part of who I am. Who would I be if I didn't have my glasses? Who would I be if I couldn't choose to see or not see?

*   *   *

Tonight, I went and practiced asana at Planet Granite. The same studio I have practiced at for years, the same class I have taken for quite some time, with a teacher I knew well. Sometimes when I practice, I put my glasses on, and see through my glasses. Sometimes when I practice, I very intentionally take my glasses off: let my vision be blurred, as a way of turning inwards. I did today: today would be my last opportunity to do that. It felt like a turning point, and I tried to savor it when I could. The soft defocused view, the warm color temperature of the filtered floor lights, the knowledge that I was practicing in the company of many others, but without the distraction of any in particular ...

Some time ago, I used the metaphor of avidya for glasses with scars on them. When I have my glasses on and I see the outside world with crystalline sharpness, am I seeing reality more clearly, or less clearly? When I take my glasses off, and the outside world is blurred, am I now seeing reality more clearly, or less clearly?

*   *   *

In April, I talked about my experience of a morning practice. I promised myself that I would be honest when I talk about my experience of yoga, rather than trying to cultivate an image, and so it is only right to say: I haven't been doing it recently. In fact, I haven't been sitting at all recently. I've gotten out of the habit of it. Or, really, I couldn't make myself do it. For a while, I was beating myself up about it, feeling guilty after every day that I didn't sit. Then, the weeks went by, with my mala sitting on my cushion, untouched, but at least not unnoticed.

I'm given to believe that it is a very rare individual indeed who does not, at times, struggle with the practice of meditation -- or yoga, in general. I'm certainly not one of them.

I don't know when I'll come back to it. I take some comfort, though, in the knowledge that, like an old friend, it will be there for me when I return.

*   *   *

“You take practice. Practice, practice, practice. That is method.”
— Guruji Pattabhi Jois

joshua0: (Default)
2018-01-02 01:18 pm
Entry tags:

Upgrading a BitHead, part 2

MicHead board installed

(click for full writeup)

There is, truly, no kill like overkill. This is a story of how I spent untold tens of hours of engineering time designing and retrofitting an upgrade for the headphones amp that I keep at my desk to support a microphone input, and all for no real good reason. I jumped through contortions at every stage to get there. But, it was fun -- and that's what matters.

joshua0: (Default)
2017-12-02 12:57 am
Entry tags:

Trip report: High Exposure (5.6)

looking out over the Trapps, from the Grand Traverse Ledge on High E

Let's talk a little about High Exposure. High Exposure is this famous route in the Gunks, which themselves seem to be the Northeast trad-climbing mecca. When you get to the Trapps -- the specific part of the Gunks where High E is -- it's easy to see why people go there: it's about a mile-and-a-half long carriage road with a cliff on one side of it, with classic route after classic route after classic route back to back. The local ethic is not to add bolts, and it makes sense, because the rock is eminently protectable: many of the routes have perfect gear placements the entire way up. The Trapps have climbing from 5.2 all the way to 5.hard, and great climbing at every grade: the very first 5.3 that I got on there had a mix of every style of climbing, from stemming to pulling on a little overhang. If you've never been there, you'd expect "amazing 5.3" to be a pair of words that don't go together; a Gunks climber would say it unhesitatingly, and they'd be right.

--- More (1533 words) --- )
joshua0: (Default)
2017-07-22 12:16 am
Entry tags:

The Great Matthes Crest Cluster

rope running between flakes on Matthes Crest

On Saturday (that is to say, July 15th), Josiah, Liz, and I went for an attempt on the Matthes Crest traverse from south to north. It was a total mess; in my book, it falls just barely short of an epic, but it certainly crosses the line over into being a total cluster. We got in a decent ways over our heads, made a mess of basically the whole route, and had a really long day. Remarkably, almost the entire day was still fun. Here is, more or less, how it happened.

--- More (3483 words) --- )
joshua0: (Default)
2017-06-10 09:37 pm
Entry tags:

Pulling data from a bootlooping Nexus 5X

tl;dr: you can boot TWRP on some bootlooping Nexus 5Xs if you are really careful and use the image that I provide. Skip to the instructions if you don't care to hear me blather. And if you liked this, you might also like the hard mode version.

Yesterday evening, my Nexus 5X (a refurb from July 2016, after the fingerprint sensor on my original October 2015 Nexus 5X failed) succumbed to the disease that seems to take all of them: while I was at dinner, I sent someone a message, and as I hit "send", the device hung, got shot by the watchdog timer and rebooted, displayed the "Google" logo, and continued to cycle through being shot down by the WDT and rebooting over and over again. This failure mode is apparently very common in these devices, and is known as the dreaded "bootloop"; it is so widely known that the Google Store has indefinitely extended the warranty period for devices matching these symptoms, and the Nexus 5X subreddit is basically overrun by bootloop posts.

The actual root cause, as far as I can tell, is not publicly known. There has been a lot of speculation about what causes it, and what triggers it, and what exacerbates it -- and there are a lot of very hocus-pocus remedies to attempt to prolong the life of the device, or to recover from it. Indeed, information about this seems scarce even inside Google; reliable sources indicate that for a time, microkitchen refrigerators were full of Nexus 5Xs, in an attempt to stave off issues while updating the devices. All that seems to be certain is that the "bootloop" is a hardware defect. There seem to be many different syndrome families of bootloop. For instance, some devices seem to exhibit unusual behavior before they fail entirely (perhaps reporting "no SIM card", or having touchscreen issues); some devices fail in a fashion that is temperature-sensitive or voltage-sensitive (freezing the phone can give some extra life, or discharging the battery to a low percentage can also give the phone some extra time); and some devices fail in a fashion that seems to indicate storage issues (there's no temperature or other sensitivity, and the system usually crashes when trying to read from storage). There seems to be a long tail of symptoms, but the "temperature-sensitive" case seems to be the most common.

In any event, that is the bucket that mine fell in. Mine would boot into recover for about five or six seconds after being put in the freezer, but did not last long enough to mount the filesystem, let alone get data out of it. One enterprising user on XDA-Developers noted that low-battery-voltage cases caused the system to disable the Cortex-A57 (high-power, high-performance) cores, and experimented with a patched kernel that forced the phone to only run on the Cortex-A53 (low-power, low-performance) cores, and lo and behold, found that doing so allowed his phone to boot.

I tried booting his boot.img on my phone, and sure enough, it at least got to the boot progress spinner. But, really, I wanted all the data from my phone, not to boot my phone up and potentially corrupt more stuff if it crashes. So, I used mkbootimg_tools to tear apart the boot.img that he supplied, and also to tear apart a TeamWin Recovery image. Then, I glued the TWRP ramdisk into the "A53-only" boot.img using the same mkbootimg package; and after I had an A53-only-plus-TWRP boot.img, I booted that on my phone. And sure enough, TWRP booted without trouble, and I could pull data off my phone! (For good measure, I wrapped it in an ice pack while it was mirroring, just in case.)

how to pry data out )
joshua0: (Default)
2017-04-02 06:39 pm
Entry tags:

a morning practice



I have many thoughts to spill out, but maybe most are better served by my personal journal. But I have been thinking that I want to more regularly publish vignettes of thoughts publicly; less well-formed, less "pointful", less edited, less coherent, more thoughts and ideas. Here is one.

unformed thoughts: a morning practice )
joshua0: (Default)
2017-01-12 09:27 pm

DreamWidth PSA

Whether you imported your LiveJournal account or not (my opinion: you should; then you will have continuity), you should also remember to claim your LiveJournal OpenID, which is a non-obvious part of the LJ-to-DW transition process. Go do this now to save yourself and other people headache.

(Why? When you import your LiveJournal account, you create subscribe-and-access links to a bunch of LiveJournal people, but you still exist twice, according to DreamWidth -- once as "you.dreamwidth.org", and once as "you.livejournal.com". So if people imported their LiveJournal accounts, and have you as friends, you still won't be able to see them, because they gave access to your LiveJournal instance; you need to link the two, so that DreamWidth knows that they actually meant to give access to your DreamWidth instance, too. For bonus points, this also means that all of the comments that got imported by your LiveJournal name into other people's journals will now be attributed to your DreamWidth name, too.)