Computers
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.
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.
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.
Web apps or native apps?
On the desktop, I will generally opt for using a web site over an application where possible, except when an application is seriously more convenient. For example, at home I typically rely on webmail and forgo using a local client; at work the inverse is true. GMail is one of the best ways to do e-mail :-).
When it comes to e.g. Android, I will often opt in favour of a decent app, over the web version. Apps generally have less overhead then rendering a desktop-oriented website, heavy on JS and meant for the mouse, yet mobile apps sometimes suck compared to websites; mobile or web version. When it comes to Google stuff, I use the apps. The mobile versions (at least on my TF101) are fairly similar to the mobile apps. The desktop *<b>web</b>* versions are best, but the Android apps are O.K. Contrast: the Facebook app has always been crap, compared to either version of the website.
The advantage of going web with it, is that the cloud auto-magically can solve a lot of little logistical problems. Like keeping data in reasonable sync, favouring search over storage, and removing the issue of “Maintance” — all you need to keep up to date is usually your web browser, once in a blue moon. It is even possible to have web applications that are aware of one another, although this is sorely under-utilized in reality, versus what can be done. Facebook stuff is probably at the forefront, in more ways then one (but not all of them awesome).
When it comes to using an App, you gain hopefully better Native Integration. On the desktop, not so much in my experience: stuff like Mozilla Prism and Chromes app mode just don’t cut it just yet, nor does the whole add-on/extension crapola. I’m talking a *<b>Real</b>* native application. Thunderbird versus GMail. Thunderbird will always have better integration with today’s PC environments than the GMail’s web app. Well, knowing Moldy old Mozilla maybe not always, but you get the point ^_^. The few exceptions that I’ve seen are products like Dropbox, where the native application _is_ the major selling point of the experience, and thus makes the cloud go round. It just happens to have a useful web user interface to boot.
Native applications open up a whole world for interesting savings and mangles. A good example, using an Android phone, you can have device local, mobile carrier, MS Exchange, Google, and Facebook contacts all synced even though they come from seperate providers; anyone could extend their service like this, fundimentally. That’s how stuff should be done. In some cases (Google, Exchange) it is even possible to have calendar data synced. The downside is that doesn’t get merged back into the Google-cloud, and that is probably a Good Thing(tm) even if I and others might like the option of it.
I think the web is one of the better interfaces for creating applications, if you want a UI that isn’t better mapped to command line programs. Android offers quite a nice programming model, and I assume that iOS and BlackBerry-land offer something sufficent. The world of PCs not as good.
Personally, I think in the future, we will see the evolving “Mobile” experience rise up and destroy both the PC and Web 2.0. The difference is, it will be Mobile 3.0 :-). Then this will all fade away until such a millienia that notions like PC, Mac; Desktop, Laptop, Phone; all of it fades away into being about as interesting as using cornkobs to whipe your ass instead of the three sea shells.
Given the choice, it’s obvious where I stand. But the real question is, does it run unix? 😛
Evernote sucks
Thumbing around the Android market, the Evernote app caught my eye again. So I decided why not give it a go, it’s probably the best note taking app for Android (and I admit, it probably is). Thus I installed the app, created an account, and went about setting up the Windows app for my desktop.
Last time I went searching for a note taking app, I settled on the Viki plugin for vim. I probably entertained a several dozen stuff, including Evernote. It never made it past the information gathering phase, since it lacks support for Linux and *BSD. Having adapted an ASUS Transformer as my primary system, Android support is now good enough. Evernote AFAIK is widely used and reasonably respected in the business of note taking software. No wonder—it’s about as useful as a notebook and a pencil.
I am not your “Joe” note taker, that I will admit. My notes are frequently pre-processed data. Things where re-parsing it back into my head and bringing order to notes is fairly important.
The desktop application failed glaringly as less than ideal support for:
- Concept of sectioning is limited to font size/style and horizontal rules.
- Structure is limited to indentation, bulleted lists, numbered lists, and tables.
- Cross referencing data is primitive but effective.
- Support for “Snippets” of formatted content is limited.
- as in sample commands.
- log data and program outputs
- definition lists.
The Android tablet application despite the awesome user interface, suffers from all of the same plus the following gotcha’s when editing text notes:
- Indentation is gone.
- Adding links is gone.
- Font styling is gone.
- Adding tables is gone.
- It’s to dismal a prospect to test how links, indents, font styles, and tables render when viewed in the app.
Simply put, ever note is more primitive a note taking system than Microsoft Word, and it’s only advantage of adding something like Dropbox or Google Docs to that mixture, is the sync feature. In fact this blog editor is much more powerful than Evernote, even more so because it can take raw HTML.
For a stress test to evaluate if I could tolerate life with Evernote, I tried to reformat one of my notes files from Viki by copy/pasting the content and adjusting. The note consists of numerous sections/subsections (at least up to 3 deep) and various lists, links, and pre-formatted data; nothing you can’t do in raw HTML, LaTeX, etc. Or even plain text if you roll your own conventions as per org-mode or deplate.
After about 80% of the file, I just gave up as it came to my mind that “Evernote is about as sophisticated as using a notebook of paper and a pencil, so why don’t I use that?”—It is just so far underpowered that I would get more value out of notepad.
Some could say that I’m being too strict, but hey, I am strict when it comes to software that I will spend *excessive* amounts of time using. If I really wanted to nit pick, I would mention the lack of folding, not that I expected that from an app focused on “Notes”.
Fun with tmux & dtach
Generally the problem with running a terminal multiplexer like tmux or screen on a remote server: is if the server goes down so does your session. Like wise an issue will eventually crop up where in you have to SSH into another server or even the box you’re sitting in front of, if you don’t want a seperate xterm in order to do it; thus losing all that multiplexer goodness.
Well, I pretty much run the session (tmux btw) on my system, and then use dtach for running things I may want to detach from—like a big compile. One perk of this is I get to have my “notes” window in tmux without double the latency.
Today, I was thinking about how can I link this notes window to various tmux sessions? It is possible to link windows (linkw) in a session and entire sessions (new -t {other session}) but that is not what I want. dtach again to the rescue! My notes script already amounts to opening my “Scratch” note file in vim, and changing the window name to “notes” if used in tmux. So I modified it to be smart enough to run vim in dtach, or reattach. Thusly, I can have tmux sessions by project, home, etc, and share the same vim session between them using dtach.
Note tacular!
An interesting idea for Android development
I could hook up my rooted phone to my netbook turned server, write the code using my ASUS Transformer, then run a batch job over SSH that compiles and installs the app on my phone.
Then connect to my phone via VNC and test it off the same Transformer 🙂
PostScript (.ps) versus Portal Document Format (.pdf) – from a users perspective
- Post Script is text based
- PDF is a binary format annd offers some programmatic options where supported
Here is what makes that interesting! I have numerous files in PDF and PS formats. Most are under 5M and are PDF. Now there is a monster called The_Complete_FreeBSD.ps that weighs in at a whopping 60M!!! My largest PDF files were around 12M to 16M. I’m compressing stuff I don’t use frequently but don’t want to erase for space reclaimation. So I compressed everything over 2M with XZ to see what files will compress enough to be worth having to uncompress them next century. Most PDF files contained a few embedded images, so savings were on average about 1M, e.g. 15M becomes 14M. Useless. A few files that were more exessive on text shrunk from between 3.5M and 4M to between 1.5M and 2M. That is nice but still to small to care about, because of the original file size. The 60M PostScript file compressed down to 1.6M!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Size checks were done using du -h and compression with xz -e. Being more textual and less binary, I infer that we can get better compression ratios out of Post Script than PDF. Although it is possible to make a PS file that is pretty binary for all practical intents and purposes. But that was surprising….lol. Post Script: In point in fact, I think the only organizations that I have ever seen acknolledge other PDF readers exist, have been Canadian govermenta, which even went so far as to note XPDF, an old choice among Linux/Unix users. +1 for the Blogger app for Android remembering what I started writing ages ago witout me even having to click a draft entry, hehehe.