OXBLOG

… because I forget simple little things too soon …

30 Aug

Decrypt /data partition under Cyanogenmod Recovery

Here is a trick I found to allow mounting an encrypted /data partition under Cyanogenmod Recovery. I’m not sure if you can run this on other recoveries due to lack of availability of vdc.

After booting into recovery, open an adb shell using adb shell and run the following:

setprop ro.crypto.state encrypted
vdc cryptfs checkpw 'your password'
mount /dev/block/dm-0 /data

It’s inconvenient but it works. I found this solution in an issue thread on github repo for TWRP. Hope this helps some of you out there.

19 Aug

High Bitrate Playback on Audioengine D1

I own an Audioengine D1 DAC which I love. It’s very Appley in design. Since I bought it two years ago, I have continously learnt to notice ever so subtle differences in quality of music playback, to the point that I can easily tell apart compressed and uncompressed music, and somewhat the difference between new and used equipment. A double blind test is definitely in order to prove the above abilities.

Recently reading over the spec of my D1 DAC, I saw that it resamples everything to 24bit/96Khz for playback. From past knowledge, I knew that resampling is a very complex and resource hungry operation and the small silicon inside the DAC cannot possibly do the best that can be done. So after a bit of searching online, I managed to force Pulseaudio on my Linux machine to always stream 24/96 bitstream to my DAC, and do software resampling on my main CPU. It sure is a power hungry process. The highest quality sampler, src-sinc-best-quality eats up 40% of my one core of a Xeon 3.2Ghz CPU! And that’s per stream, so if I have music playing and watch a youtube video, that’s one CPU core gone. src-sinc-medium-quality drops the usage by more than half, to 13% without any noticable difference.

To force 24/96, edit /etc/pulse/daemon.conf and add/uncomment the following lines:

resample-method = src-sinc-medium-quality
default-sample-format = s24-32le
default-sample-rate = 96000

Then restart Pulseaudio daemon:

$ pulseaudio --kill
$ pulseaudio --start

To verify your changes are in effect, play a some music and find your card under /proc/asound:

$ find /proc/asound -type l

Then see the content of streamN under the relevant directory for your card above:

$ cat /proc/asound/D1/stream0
                  2010 REV 1.7 Audioengine D1 at usb-0000:00:1a.0-1.1, full spe : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 1
    Packet Size = 600
    Momentary freq = 96000 Hz (0x60.0000)
    Feedback Format = 10.14
  Interface 1
    Altset 1
    Format: S24_3LE
    Channels: 2
    Endpoint: 1 OUT (ASYNC)
    Rates: 96000, 88200, 48000, 44100, 32000
  Interface 1
    Altset 2
    Format: S16_LE
    Channels: 2
    Endpoint: 1 OUT (ASYNC)
    Rates: 96000, 88200, 48000, 44100, 32000

Note that Status: Running is referencing Interface = 1 and Altset = 1 which is 24/96 according to the rest of the output.

22 Jan

I’m not you

Unlike you, I didn’t pack for the longest route
And now I need to make do with what I got
Don’t ask me to abandon ship and swim to shore
Teach me how to fix my boat so I can save myself

You ride far ahead in perfect circles
and once in a while you take a break
to look behind and shout, “Hey Laura! You’re doing great.”
Your actions only serve to frustrate me
Ditch the bike, walk beside me

I read your story about priorities
In it, you called everyone selfish, including me
I’m torn between calling you names
or letting you sink to the bottom
until you no longer have a name

Sometimes I wish I didn’t know you
I was playing with Legos, and you showed me the glue
One day your time will come
That moment you cannot hide from
Don’t get me wrong though, I’ll be on your team
But like you said, things aren’t always as they seem

Remember when we were both young and we clicked
We didn’t both grow up and you mocked me for it
Over the years, you became the master of your craft
I’m afraid however, that you won’t have the last laugh

Your head may be out of the water
Your clothes may be dry
You may be calm and your moves subtle
And look at me, I’m held by a thread thinner than hair
Look at my eyes, they are wet, you could drown in them
Look at me, I’m smiling, despite what I’ve seen
I look at you, and lose the fight to conceal what I know to be the truth
We, in clothes torn and bodies bruised, will win, and you will lose

11 Aug

Kite

It starts with a little kite, that you built as a child
You painted it green until that sheep you had in the barn
one night landed on your dinner plate
Hard to follow for an outsider, what trick you pulled to
slide under the farsighted family rules you were brought up under
One wonders, if an intellectual your size, can run to a small room and hide
and wish that her kite would let her fly
out of the second floor over the tiles of the streets she used to play in
that she used to fall on and cry
then why men and grown women who occupy
a much larger volume and consume as much
see themselves boxed in, in hives, waiting for that day to arrive

24 Jul

BPAY QR Code

BPAY is an electronic bill payment system in Australia which enables payments to be made through a financial institution’s online or telephone banking facility to merchants who are registered BPAY billers.”1 To pay for a bill, you need a Biller Code and Reference Code which are numbers with varying number of digits. This information is printed on the paper bills for instance where you can use them when paying for the bill online. It’s only recently that BPAY has rolled out a QR Code standard to ease the entering of these numbers in bank phone apps.

I wanted to know how the BPAY information was encoded so I could transfer my existing Biller and Reference codes to my phone without manual error. Unfortunately I couldn’t find anything online. The easiest way I thought was to figure out how my phone app reads it. The only bank right now that has an app with BPAY QR Code scanning functionality is Commonwealth Bank. So I copied the app out of the phone, disassembled it using apktool and went digging.

22 Jul

Stay with me for a moment

Stay with me for a moment
for me to grow into a flower, tall
to build a bridge from your eyes to every star

Stay with me for a moment
so I can breathe a fresh air of you
to start a journey from that moment

to the corner of the greenest grove of mind
to the doors of the city of impossible dreams
A journey in the turns and twists of stars
through the memorable moor of melodies

Stay with me for a moment
so I can open a window to the garden of your eyes
to write a poem and a story of you
A poem ringing to the sound of rain
of the green of forest and blue of sea
a story with the color and scent
of stories of all the lovers in the world

translation of Siavash Ghomeishi’s با من باش

22 Jul

Non-secure contact pages (Australian Banks)

I lost my credit card a few days ago and as soon as I realized that, I called up my bank. When searching for the right number to call, I went to their website and found my way to the contact page. As I was dialing the first digits of the number, I noticed something seriously wrong: the page was not secure (ie no HTTPS). I stopped. I began googling the phone number and only after seeing it on several places did I call the number to order a new card.

After the call, I wondered if it was only my bank. I was saddened to see that out of 40 banks and credit card providers in Australia, only 7 had secure contact pages. I have notified most of the others about the issue.

If your bank is one of those with non-secure contact pages listed further down the page, you should do a little research online first before trusting the information on those pages.

14 Jul

One liners

With that look and that hair
you ought to be in a convertible
on a road trip somewhere

With those legs and those curves
you ought to dress your body
in threads it deserves

With a face and a hand like yours
you can hold another hand, turn another face
you can make the whole of another person yours

With the sound of your voice
you’re the queen of karaoke nights
the conductor of midnight phone calls

But I’m just kicking the ball lightly
with a limp leg
While we both warm up
Ready your majesty
for web tearing shots

14 Jul

Exclusive Permission

I made a vow the other day
that if I ever catch you pray
I’ll end you with the tip of my tongue
and will send you home on a metal tray

I admit I dismissed your wish to die
I lied upon lies to make you cry
I snooped when you asked me not to pry
I helped you fail on the first and the second try

14 Jul

Midnight Theft

While we cherry picked out of red and green
Opportunities kept falling in between
Our conscious moments red shifted to left
We were sound asleep at the midnight theft

Sirens and strobe lights woke us up
You saw the light and I saw the dust
What do you do when you lose a game
Cheat and lie, don’t admit you lost

besides ranting, you may also find me asking silly questions, write code for the world or just plain showing off. Make sure you read the privacy policy.