Month: October 2011
Today while I was pacing the lunch room, waiting on my lunch to finish microwaving. I came to a bit of a conclusion; concepts such as deductive reasoning and mathematical induction generally apply.
Over the span of my life thus far, my mother has been opposed to every “Good thing” in my life. Except one: getting into church. That one good thing only happened because she was presuing her own interests, I just got dragged along for the ride. Like wise, by the flipside of that coin, pro to just about everything that has had reaching negative impact on my life.
That gives me two thoughts about life at present: A.) I’m probably on the right track (Thanks mom) and B.) at least my mother is consistent.
Maybe I can never expect my mother to ever be aligned with ‘good’ for me so much as what she wants (and assumes therefore must be best). But at least I can generally count on my mother being consistent, easily anticipated, and generally annoying. Most of her present behaviours, I calculated the probability of when I was what, like 8? LOL! I like consistency and determinism. It aligns with my concept of ‘order’ in the universe instead of pure randomness.
That being said, I think I would actually worry if my mother didn’t approuch any good thing in my life, as if it was a radioactive time bomb about to obliterate the known universe. Even more so knowing my mother.
Today, my mother wanted to know how much cash she could borrow next week. Having just paid off a stack of stuff, she’d have to wait until my next pay cheque or take it against my credit card.
I had decided to “Fire” her from the grocery shopping, i.e. rather than giving her a budget to shop with ($500/month), I’d do it myself—because she proves in capable of sticking to that. I tried paying the rent (over $700) and she racked up debt against my pocket money for vacation. Hasn’t paid back a dime. To try and be *nice*, I opted for a unique option….swap groceries for bills. Which I’ve paid off ^^.
The concept there, being yet again, if I’m doing that, she isn’t entitled to more…my most recent Google+ entry shows how much debt she’s already in. Prior to taking on bills in exchange for not firing her. I wanted an formal (and witnessed) agreement that she’s not allowed to borrow any more $$$, and the bills in my name; but I never got around to that first detail.
This time, I’m requiring it + a pay in full clause as a perquisite to loaning her any more money.
The Other Guys
Just finished watching a movie called The Other Guys, and I must say: while I thought it was rather retarded at first, by the end game I was thoroughly enjoying the film.
For Fails Sake!
I just noticed in Comcast’s account page, appropriately they note the default address, username, and password to login to the web interface for setup of the particular wireless router in question. However…the scary thing is they encourage you to connect using the default SSID and the network key printed on the label (hopefully not also out of a can….), skipping any need to use the web interface what so ever.
Right, let me paint you a picture. Joe & Jane Luser, don’t know squat about routers. Most people don’t even if they know how to use computers well beyond average (but it’s not that hard). The label says skip the rocket ma-science setup smetz up and just plug it in, connect to this network name and type in this password…you’re done! The Lusers are probably so inept, they even put the label on the router just in case.
Now, let’s say they have a neighbor help fix a computer problem someday and she notes the label. Sometime later they piss her off, so she connects from her apartment, logs in with the default, and locks the Lusers out. Or maybe does all sorts of nasty shit; winning!
It’s probably a good thing that routers rarely default to allowing remote administration, so at least the SSID/Key are there…but that isn’t good enough that I would want to bank on it. And trust me, if someone gets deep enough into your network, you can be banking on it.
I guess like many, this morning I learned that the world recently lost one of it’s biggest contributors. I do not mean Steve Jobs, a man with his own important legacy. Dennis MacAlistair Ritchie has died, he was more commonly known as ‘DMR’ or just ‘Dennis Ritchie’. A G+ entry by Rob Pike is the earliest reporting I’m aware of, but I can’t say I expect this sad news to be found on TV.
Dennis Ritchie has a place in history that few men have ever achieved, because his work helped change the world. I am a young man compared to the late DMR but I does have an interest in history. If it wasn’t for this mans work, I doubt that I could be writing this journal entry, because he helped to enable so many elements that make it possible.
His most famous programming language, C, was so pervasively popular, that I knew of it before I learned to program. My first programming language (C++) was derived from it. A big part of how I fell so deep insane with computers was learning about how C and Unix became self hosting. That means you could make C and Unix using C and Unix, in laymans terms. Back then that was almost like revolutionary – today it’s like sliced bread. We take it for granted but someone had to help show us the way; then people started to use it everywhere.
Through C, we gained countless programs. Most Unix operating systems are written in C, most other operating systems are written in C or finally grown from one that was. Unix, DOS, Windows, Linux, OSX, your iPod, your iPhone, your iPad, our Android. None of it would exist just like it does. Most of the stuff we do every day involves C programs, be that reading e-mail, playing games, surfing the web. It is even normal for other programming languages to be implemented in C. The defacto standard Perl, Python, and Ruby included. It is so normal that writing a language implementation in itself is not so big anymore. C is so pervasive that it is also inescapable in other languages: their is almost always a way and a need to interface with C code. Hell, today you might even have C code involved in your toaster. It is that important a programming language. If you ever used a computer or an embedded system, you have probably used software written in C, or are old enough to remember what it was like before punch cards.
C is perhaps the single most important language since programmer’s stopped writing in raw machine code. In fact, sometime after that we stopped writing in assembly and I know no one who goes lower level than reading the machine code. A common portion of C syntax is practically our linga franca—even if C is not a shared language, the syntax (which grew from prior languages) is also widely used and an alternative to pure pseudo code.
Maybe a lot of young programmers don’t know C, or skip it. I love it. It is one of the most beautiful languages that I know, despite it’s trappings. Perhaps some of the greatest lessons I learned about my craft, was that learned from C. Perhaps another was the humility of it’s creator.
Somehow, I doubt his other works will ever be as well known as C, or things he was a big part of (like Unix), but maybe people will study them and see what they can learn from the work of a legendary hacker, like Dennis Ritchie.
Thoughts of modal/semi-modal editing on Android
- A simple “Notepad” grade editor
- Press a designated command key, send following keystrokes to command dispatcher
- Useful stuff: save/load, buffer list, etc.
- Scripting/configuration language
Something uniquely respective of my vi/vim heritage, yet incorporating lessons from the emacsen school. As a former XEmacs user, I do know quite well that my beloved Vi IMproved is not always well subverted. Using the volume up/down keys (and settings to rebind ofc) would make perfect replacements for Control and Meta (Alt/Escape). Using a keyboard with suitable keys, obviously eliminates this: and for on screen work with a big enough display, I really have to reccomend The Hackers Keyboard. It is an interesting preposition, at least. For scripting language, that one is a stickly wickly one. Android is not well suited to this in the conventional sense. Unless you want to implement one in a suitable subset of Java (double barf). An interesting idea would be to compile something like Lua or a Scheme interp’ to native code, and communicate with it using some type of local socket and RPC. That might be interesting to toy with. Then perhaps, “Plugin-lets” that add useful tools, such as busybox or git. That’s less feasible but certainly interesting.
Another day closer to BattleTech, another Trillion away from Avatar
Notes on the ASUS Transformer’s file system / partition layout
rootfs on / type rootfs (rw,relatime)
# physical
/dev/block/mmcblk0p1 on /system type ext4 (ro,relatime,barrier=1,data=ordered,noauto_da_alloc)
/dev/block/mmcblk0p7 on /data type ext4 (rw,relatime,barrier=1,data=ordered,noauto_da_alloc)
/dev/block/mmcblk0p2 on /cache type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/fuse on /mnt/sdcard type fuse (rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other)
# special
tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
none on /acct type cgroup (rw,relatime,cpuacct)
tmpfs on /mnt/asec type tmpfs (rw,relatime,mode=755,gid=1000)
tmpfs on /mnt/obb type tmpfs (rw,relatime,mode=755,gid=1000)
none on /dev/cpuctl type cgroup (rw,relatime,cpu)
tmpfs on /Removable type tmpfs (rw,relatime,mode=755,gid=1000)
/dev, /dev/pts, /proc, and /sys are normal Linux stuff. I’m not familiar with /dev/cpuctl or /sys/kernel/debug but they are fairly self explanitory! Whatever /mnt/asec, /mnt/obb, and /acct and numerous other things are explained briefly in /init.rc; poking around /acct is interesting. The tempfs on /Removable pretty much just serves as a place to put mount points for external media, i.e. MicroSD / SD cards and USB drives. The mmcblk device is clearly responsible for the most important parts of the Android system: /data and /system are your air and water. Under /data, you will pretty much find all your apps (stored on internal memory), and in /system, well, stuff that helps make your system work; d’uh. /system and /data can probably be looked at as read-only and read-write portions of the Android File System Hierachy, I guess. As far as mmcblk itself is concerned, it’s just the internal memory card. The thing that I find rather interesting, is that the user storage area (/mnt/sdcard -> /sdcard), or what everyone typically interacts with, is provided through some type of relationship to FUSE, as opposed to directly through mmcblk0. This is curious enough to me, that I would consider poking around further, or even digging closer into ROMs for the Transformer, to be worth the effort. Yeah, I’ve just got to figure out how crap works, lol. On the upside, I know better than to disassemble my new “Stable” system and I’m to cheap to get one just for testing puposes.
com.google.process.gapps force close on my ASUS Transformer – solved
This isn’t an issue I’ve encountered before but since last night, I’ve been getting these. Very regularly. Today, I noticed an association between this and using the web browser. Sure enough if I went into Settings -> Accounts & Sync -> that Google account; and unchecked “Sync Browser”, it stopped. Like wise if I toggled it back on, it would rapidly force close.
Being more scientific, I toggled sync on/off for some other Google services without getting any force closes. Problem therefore became, how to fix this?
Android apps generally store their data under /data/data/package-name; where typically /data/data is your internal memory and package-name is a Java dotted package name like com.android.browser; that’s just how it is I’m afraid. Inside, I noticed nothing very interesting. Mostly an XML file related to settings and some databases. This is a Good Thing ™ except Fuck Your Life if you want more stuff on your memory card; unless you get hacky with mount points and linkages that is. Now, being frugal, I created an archive of this data folder (com.android.browser) from my root shell, then went into Settings -> Applications -> Manage Applications -> All -> Browser, force closed the browser and hit clear data. Problem solved.
Being of the SQLite3 varity, I’m sure I could splice anything of interest out of the backup back into the new Browser setup, but I’d rather get more done. An advantage of the important parts being either in cloud (book marks) or brain (passwords, etc), is the lossage is minimum. If anyone has more data on what causes it to go wonky, or on com.google.process.gapps in general, I’d be interested in your comments.
Someday I really would like to get myself a git checkout of the Android source, but I think I will wait until after Ice Cream Sandwich for that.