sudofox's journal

Austin Burk's journal, where I share little snippets of my writing, code, and dreams.

Is this my new home..?

I'm moving into a new place (with less expensive rent) and it's already proving nicer than my old place. It has a dishwasher, too! I took over the lease from an ex-colleague who moved out to start his own business; the lease lasts through May of 2019.

 

I'm still working on moving, so there's a lot of boxes..

 

f:id:austinburk:20181002121816j:image

f:id:austinburk:20181002121920j:image

 

Technically, this is my new home, though it doesn't feel like it yet. The strange thing is, neither did my old apartment.

 

I have a sense of wanting to go someplace new, someplace beautiful. I am thankful for my current job, but I feel ready to move on to something different from a customer-facing system administrator (aka support technician).

 

I want to build and design new applications, and develop my skills. I want to do security research, and a lot of other things. I want to support the growth of artists and animators, as well. I can do most anything when I put my heart into it.

 

But right now I don't feel like where I am is the place I need to be. That, I suppose, is why I don't feel at home yet.

 

The important thing is that I treat my living space as my home. It needs to be a place I can look forward to going to at the end of the day; a place of rest and refuge.

 

At the end of the day, wherever God wants me to be, I'll do my best to honor Him by serving my employer to my absolute utmost ability, and do so with humility.

.kwz Flipnote sound format progress

We're one step closer to bringing back the Flipnotes from Flipnote Hatena and Flipnote Gallery: World. Right now the hard part is figuring out the sound format. We had a breakthrough today: originally we thought it was VOX ADPCM, nibbles reversed, at 16kHZ, but there was always a lot of loud background noise. As it turns out, it may actually be bitpacked, where the samples are of a variable bitrate to save space. If this is the case, then we should be able to work it how those bitlengths are stored and decode the audio cleanly!

James, id:rakujira, is heading the work to reverse-engineer the format. (as in, he's doing the real work!)

You can find our documentation of the format here: 

As well as a parser here (Go follow his GitHub!):

Finally, we have a JavaScript .ppm and .kwz player. James reimplemented the audio decoding (ADPCM->WAV) in pure JavaScript, what an absolute legend:

Stuck At the End of Time

"Are you ready?"

They stood upon the cracked and mossy pavement, the ceiling miles above them rumbling as chunks of bright blue rock and cement began crumbling down around the cavern. Thunderous crashes from miles around came as the world began to come to an end.

"Yes," she spoke, tears glistening on her face. They turned their backs against each, each reaching one hand, intertwining their fingers as a familiar glow began to envelope Grace, and then him. The buildings around them began to crumble as time finally ceased to flow.

There they stood, Grace to the right of Rubigo, their shoulders against each other's as they stared to the North and to the West. Off in the distance behind them, large chunk of sky was floating in midair, the chunks of rock and cement that had flaked off, similarly suspended in the air thousands of feet up. Grace's watches burned brightly with a dazzling light.

f:id:austinburk:20180914121129p:plain

Time had no meaning. In the infinities worth of other universes, it has rewound itself, but in this one keystone thread of time, it had frozen. And for as long as it had frozen, the damage across the multiverse continued to undo itself.

In this place, they would not stir, they would not wake. But it did not matter so much to them, for they would be holding each other's hand... For not an eternity, but to the end of this time.

A story of two dreamers

A young man began having a dream on a dark, cold winter night. In it, he met a girl with no name, who brought him along on a wonderful adventure through places unexplored and paths uncharted within the dream realm.

 

He did not know her name, but in a way only possible within the world of slumber, their characters and personalities could be vocalized in a way that could not be done in the waking world.

 

He fell in love with her, and her with him. She was always there when he slept, and he was always there when she slept. Somehow, he knew that she was real.

 

One lonely night, the young man couldn't sleep. Yearning for his love of dreamland, he reached harder than he had ever done before to try to find her name, but instead found a strange melody in his mind. 

 

He slept a dreamless sleep, peacefully.

He awoke from his sleep, sorrowful.

 

It was at that moment of awakening that he understood that the strange, quirky tune, with a inconsistent yet haunting rhythm, was a shallow echo of the dream-name that encompassed her whole being. The song needed his words to make it complete. 

 

 

take my hand

hold me tight

sit with me in the moonlight

dream with me of what could be

adventure, treasure, mystery 


and then one day

all will change

I'll meet you again


and you'll know me from your dreaming-time

and I'll know you from mine


on that day

it shall be clear

our unsolved mystery 


my dream come true is to know your name

and for you to know of mine

 

 

The young woman sat up with a start, her eyes wide open.

"What?" she breathed.

 

The words echoed through her mind, over and over, never fading. It felt like a poem, and the meter felt strange to her. The voice was unmistakably his. The words sounded like song, but were missing something more. 

 

Taking out a pencil, she marked down a few chords on a slip of paper, singing the words to herself as her heart fluttered every time a verse crossed her lips.

Setup: Debugging Mackerel with Fiddler

Hello!

Today I'd like to introduce what I've used to understand how Mackerel communications work with the Mackerel API. It's actually really simple, thanks to the flexibility of mackerel-agent's configuration.

First, I set up Fiddler Web Debugger, a very useful (and free!) tool that I have used for many projects in the past. It serves as a proxy server that you can manipulate and debug traffic with.

Inside your mackerel-agent.conf (I've put mine at the top), put this:

http_proxy = "http://proxy.example.com:8080"
apibase = "http://api.mackerelio.com"

We are removing SSL to get it to proxy properly without doing strange things with installing a self-signed SSL on the system, and then re-adding it with Fiddler.

To do this, let's add the following AutoResponder rule in Fiddler:

f:id:austinburk:20180908002621p:plain

Match: regex:^(ix)http://api.mackerelio.com/(.*)$

Respond with: https://api.mackerelio.com/$1

You can also import this rule by saving the following content into a Fiddler AutoResponder Export file (.farx) and importing it from the AutoResponder menu:

<?xml version="1.0" encoding="utf-8"?>
<AutoResponder LastSave="2018-09-07T11:30:18.2557112-04:00" FiddlerVersion="5.0.20181.14850">
  <State Enabled="true" Fallthrough="true" UseLatency="false">
    <ResponseRule Match="regex:^(?ix)http://api.mackerelio.com/(.*)$" Action="https://api.mackerelio.com/$1" Enabled="true" />
  </State>
</AutoResponder>

Restart mackerel-agent and it will take effect immediately.

Congratulations! Now you can watch mackerel-agent as it talks to the server. You can also (if desired) modify the messages going to Mackerel for testing purposes.

To disable this, simply comment out (prefix with #) or remove the lines in mackerel-agent.conf, and restart mackerel-agent.

I would not recommend sending your Mackerel data (which includes your API key) unencrypted over the Internet, so please do this within your internal infrastructure (private network) only.