A few thoughts on Polaris Office

Although it’s not a feature I was particularlly interested in, so much as the whole dock+battery life thing, I must admit, the Polaris Office suite that ASUS bundled with the Transformers does add value. Most phones come pre loaded with a lot of crapware, and rarely do I actually use any of the crap pre-loaded on my phone, or Andrea. Generally, I don’t need office suites. I used to use word processors excessively so I focus on those tasks. For years now: my word processing tasks get done in Vi IMproved and converted into a format for publishing; such as HTML for web or PDF for general reading. If I wanted someone else to edit the stuff, I would not send an MSWord file either. Read only data should not be sent as a writable .doc[x] file. I don’t do Power PoinT presentations. What stuff most people do with a spreadsheet, I generally do with Python or Perl; a more natural interface for my brain. In fact, there are only about two times that I really use office suites. If I need to share editing tasks with a bunch of people that are probably technically illiterate or just have better things to do than pick up a suitable format; I use Google Docs. For work, I use LibreOffice. That covers both reading whatever files might pop in from other departments but in eningeering we all pretty much rely on plain or marked up text; it’s really mutt/lynx friendly you could say. Something that caught my eye was a comparason of Android office suites over at XDA, Polaris was clearly a solid product. In my own tests, all I can say is that most Android apps for dealing with rich text formats seriously suck. Examples include Google Docs, Blogger, and Evernote; the last is probably the best unless you feel comfortable dealing in HTML for more stuff. Polaris Office is a really is the only Android app that I’ve seen, that really feels like a “Word processor” and so on. Today however, I noticed that the spreadsheet activity may be useful to me. At work, we have time sheets in Excel template format; I have both an Excel (.xls) and Open Document (.ods) files to use as a template; normally I fill it out using LibreOffice and the .ods version, and print it off my work station. I tried opening both files with Polaris Office today, and noticed while it doesn’t understand Open Document formats, viewind and editing the Excel file works perfectly. Rather than screw with Android+Linux+Cloud Print, I just did stuff off my workstation. Why this surprised me is that Google Docs rather fails at doing the same, for both formats. So the question I would have to ask, is how well does Polaris Office do in generating files that work with other office suites (E.g. Microsoft’s), and ditto for interfacing with Google Docs in both directions. Either way, it looks like the ASUS Transformer is as fully functional as my work station and home PC, but sans binary compatbility (x86, x86_64 != ARMv7) and Direct3D. Someday I can’t help but wonder if we will have Android PC’s powerful enough to run Windows in a Virtual Machine for legacy applications.

My ASUS Transformer’s charger was not working

Well, getting to work was not so fun this morning. I usually use my ASUS Transformer for _a_lot_ at work. When I got in to work today, I had 40% on the tablet and a drained dock. Monday I had come with a 78%/97% charge on my tablet/dock and left with a tablet charge remaining in the 70s. Andera has good battery life so I wasn’t worried, especially since my office has plenty of juice to go around.

Well, today I plug in and imagine my surprise when the frakking thing refuses to charge! Nothing, nadda! I tried hooking it up to my work stations USB 2.0 port, and Andera notified that USB debugging and ASUS Sync crap was working, so obviously +/- the right USB 3.0 pins, the cable ought to be fine. None of the electrical sockets worked.

About ready to try the freezer trick and annoyed for the first chunk of my work day, I yanked the adapter out on my way to lunch, and noticed something irksome. The base of my adapter wasn’t set quite right, maybe 3 to 5 milimetres off. Snapped it back into place, plugged it back in, and dang nabbit, the son of a biscuit eater started to charge.

Sure enough, I dislodged the plug end of the adapter and snapped it back again, no problem. You just push (really hard) down on the segment where indicated, and poll it up; I used my desk for help. Simple, and fully an issue of internationalization. Somehow the bloody thing had gotten dislodged.

That’s what I get, for countries not being able to decide on a single electrical socket >_<.

TF101 Coolness

My tablets dock has been sitting unused since I got home from work on Friday, docking it at the office I have 97% charge on the dock; and it was probably 98% when I hit the road on Friday.

Is RSS dying?

RSS Rant

I must agree with most of what the author wrote, and confese I prefer RSS – and would like something comparable that offers commenting. But the security implications of that are probably nightmare’ish to say the least.

Understanding Twitter

Newsgroups, forums, blogging, Facebook, Google+, etc are all things that I understand fairly well. Twitter less so for me, as it’s not a service that I ‘use’. Some people I know use Twitter but mostly it’s just businesses and marketing, and I don’t care about any of the businesses I like that much to listen; so I’ve little use for the service.

Viewing someone’s tweets reads off like a list of short messages, similar to the blog model (e.g. like a Wall post on Facebook) which almost everyone understands these days. But it includes the users comments inline, along with their comments (replies) on other peoples posts (tweets). In a way, it is coser to the newgroup/forum model where in you have a node that fits into a ‘thread’, yet the head of the thread is just a normal post (node). In the blogging model, it’s somewhat different because of the emphasis on the blog comment.

This makes it rather disconcerting to look at tweets for the initiated. From first glance, it’s like listening to a twittering bird that not only talks to the open air (hello you Facebook mob!) but also to its imaginary friends. By clicking the tweet (look for the icon top right) you can see the thread and explore the relationship between tweets. It’s a decentralized version of how forums work; instead of defaulting to viewing by topical thread, your default view is by the user.

If that last paragraph makes sense, particularlly the last sentence: you now understand Twitter. Or I’m missing something lol.

What remains to be seen until the course of history has advanced much further, is whether or not any given model (newsgroup, blog, twitter) will become the universally accepted model of communication on the internet. Twitter is a leg up over using a mail client that doesn’t do threads (eww) but I personally prefer the newsgroup model, but profese, twitter is an interesting data model for machine processing to whatever corporations will do to profit from that data model.

Definitions:

Newsgroup model
Someone starts a topic, other people reply; replies and topic starts are all the same thing (posts) but things are usually collated into “Threads”. Examples include USENET, mailing lists, and forums.
Blog model
Someone blogs an article, other people comment; comments are distinct from the content and may be deemphasized depending on the platform. Examples include Blogging and Facebook.
Twitter model
Someone tweets a short message, other people may publically or privately reply . All nodes are equal and connected as in a shared thread, but are collated by “Users” rather than threads.

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

In regards to modal, I mean `like vi`, where in the keyboard is shifted between a normal “Command” mode for manipulating text and an “Insert” mode for typing text into the buffer. A prime example can be found by learning vi (or vim or elvis). Personally I think this kind of model fits well with a mobile device like Android, even more so than it does a PC—emacs pinky be damned ;). Which makes me think of something like this:

  • 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.