PostScript (.ps) versus Portal Document Format (.pdf) – from a users perspective

Generally, PS is pretty much a dead format today. The only time a user is likely to see significant amounts of it in my experience, is if they are dealing with quality printing. Reality is almost everything comes in PDF (or Word/Excell if from retards), and morons assume that Adobe Acrobat is the only reader for it. Most people don’t know that PS exists and to many are just to lost to figure out what a PDF is (ugh, grow up!). The simple facts:

  1. Post Script is text based
  2. 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.

Interesting findings. At work, my work station has always had problems using SMB/CIFS, in fact  it is almost useless but fortunately being Linux-oriented over here in Engineering, more traditional unix methods are favoured, so it is of little loss. Now the sad fact that most people use Windows, means that SMB/CIFS is easier to work with under Android than stuff like NFS or any of the multitude of similar techniques. As I rarely need to share stuff with multiple people, for my own stuff, I typically use SSHFS.

In fact, SSH is both such a part of my work flow between machines (here and espiecally at home), I wrote a handy script that lets me quickly mount my $HOME on a remote as ~/hosts/{hostname} locally. It’s useful. My workstation is setup both as a SSH client, server, and sshfs-mounter. But how to get stuff via Android, since I can’t just use CifsManager?

My ASUS Transformer obviously has support for FUSE, just looking at what `mount` says is enough to guess that. But there is no real support for SSHFS, all the goodies are missing. Since I have a very simple chroot of Debian stable, a quick `apt-get install sshfs` and bingo, all done :-). Since the stuff I’m interested in mounting at home (where SMB/CIFS works like a charm), I can just use SSHFS mounts and a shared socket. I.e. I can have things like my Dropbox mounted, get live sync, and even access locally!

Muahauhauauhuahuaaaa!!!!!!!!!!!!!!

Geekicious mixed client workflow

Okay, that is a post title that only a geek could love. So sue me, I’m geek lol. My battle pad is now fully operational, and should soon feature a charging cable extender and screen protector.

Today, I found that while the Debian chroot I have works well, sadly the linuxinstaller app in the market sucks at setting up resolv.conf. So I edited the init script it uses for an entry hook, to detect my home network and the corporate WiFi. Sadly, doing so results in DNS names going external, so something is still fraked. On the upside, editing the chroot’s /etc/hosts works, and that is what everyone here does. Never mind that the important servers have DNS names and OpenSSH can alias them to any shortname, but alas, it works.

One downside of running a terminal session on Android, BTEP will get reaped if you don’t use it for long enough. Like wise the linuxinstaller doesn’t run your bash as a login shell (!) and it’s a bug to remount the path to linuxchroot.sh as rw; so… I found how to kill two bugs with one rocket. I can leave a tmux session running and reattach at will. Muahuuahuahauhauhauaaa! Quite nicely, if I run the tmux session on the server-end, I can attach to it from another box (like my workstation), and use X forwarding; if I create a new tab from the X-terminal, it inherits enough environment to easily use the X-terminals X.Org server :-). This is even cooler because I can have the undesturned mobility of a ‘book or tablet, yet skip fouling my X session. There is also the VNC trick to run X clients on Android but I have not tried it, nor am I very interested right now.

A new idea occured to me while chatting with a friend, namely that I can export my notes directory from alice or my workstation, mount that on andrea over cifs/smb or NFS, edit locally, then get the Dropbox live sync goodness. Which still works because while alice is running at home, so is her Dropbox client and my cronjob to auto git commit my notes files!!!

Muhauhauhauahaaa!!!!!!

Hmm, so far operations with Andrea are moving fairly smoothly. Today, i spent a little time using Eclipse to try and prototype an idea, but soon gave up. Eclipse is a reasonable enough IDE but for Android work, the extra editors and crap are just not as useful as opening the file in the text editor, and if I may as well, then I will use VIM and execute the Android tools directly in a shell. Piss off.

I’ve been exploring the Android market more of late, because Andrea has so much more storage. My phone has limited internal storage so I rarely will use an app unless it offers something I find practical, like Dropbox & Opera. Rooting it helps since more stuff can be moved to the MicroSD card. Andrea on the other hand, has a lot more storage capacity: about 28GB user accessible from a market value of “32GB”. I’m still principally interested in apps that get work done. Two that I’ve been playing with today, are TextTab which is pretty much using your phones SMS from your tablet via Bluetooth.It’s awesome, it works, it does exactly what I want, and I can’t say the say about the Bluetooth SMS app that I tried during yesterdays shopping expideition. Something else that I tried, is a TeamSpeak 3 client. From the look of the write up, they likely intend to charge for it once it exits beta but it works as an OK client. Not enough for admin work or anything but fine for the core use: VoIP.

Alice has also been setup as a server, as part of cleaning my room. It will likely operate similar to the development server at work but for my personal projects, I’ve also exported some parts of my $HOME to the network. Eventually most of that will likely become stored on Andrea but for now I’m more interested in having it available. Andrea the tablet-book definitely brings my routine closer to the cloud than Alice the netbook but so far I am liking it.

Using a netbook as a mixture of development server and network attached storage may seem very weird. To me, it also has the added benifit that while I may lose my connection as the router goes offline – in a power outage, my session state in tmux can be saved for as long as the battery runs. Plus I could reattach locally  and have the same keyboard as the system I was working on. Muahuahauahuaa!!!!!!

Day two and I almost kilt her but now I has root

After setting up my Eee Pad Transformer over night and lunch, I went about trying to root her after getting home from work. Flashing Andrea seemed to work fine, give or take that I normally have reservations about flashing stuff I haven’t personally proofed. It was marked as being appropriate for my SKU and release but left Andrea booting into a garbled multi-colour screen….a small fortune in paper weights.

I quickly rebooted Andrea into APX mode and searched Google for a way to unroot back to a stock ROM, even if that meant the original version. That soon lead me to Roach’s Prime v1.4 ROM, which I flashed to recover to a blank, usable, and rooted state. You can’t upgrade from Prime v1.4/Honeycomb 3.1 via ASUS updates, so I hit the web again to see if he had released a newer version of the ROM, sure enough, he has gotten up to v1.9! A quick look about showed me Prime v1.7/Honeycomb 3.2 stable and a 1.8 version in beta. So I tried to install the Prime v1.7 ROM as an update. Now that isn’t so hard, you basically save the ZIP archive and install it using ClockWorkMod via a recovery boot. The problemo is the ASUS Eee Pad Transformer sticks the internal storage at /mnt/sdcard with a link to /sdcard. Using a real memory card or USB device will go in /Removeable/WhatEver. So CWM couldn’t use the update, ‘cuz it couldn’t mount /sdcard.

Having missplaced my USB stick some time between work and vacation prep, I gave it no attempt to try that option and instead went looking for memory cards. I had purchased a pair of SD cards when I had bought a digitial camera a couple years ago, as it hadn’t lasted very long, my mother inherited them for her Dell Streak 7″. She had no idea where they went, so I checked her streak and found one – loaded the archive, stuck the card in the docks slot and bingo, same problem. So I removed the file, stuck that back in my mother’s tablet, and ripped the MicroSD card out of my phone. Sure enough that worked and in a few minutes was greated by a Honeycomb 3.2 versiion of Prime :-).

So now Andrea is alive, functional, and rooted. I just had to trade ASUS support for the brillance of Roach (that ROM saved my pad), and had to reinstall everything because I didn’t do a proper backup first. But that was a simple fix of redownload stuff off the Android Market via the website. I ain’t stupid, lol. When I get home, I will probably try to update to the v1.9 if it seems stable enough, but by the time I can get around to that, I will want to backup my stuff first.

After getting everything settled, I finally decided that it would be a good idea to register on xda-developers, since their forum is like most important place on the web for stuff like this. They have the most awesome forum registeration process ever, including a video. It’s worth it lol. Poking around the forums for my devices, it seems that it may be possible to flash a stock ROM after all but I would rather stick with Prime at this point. I’m also interested in seeing what gets cranked out but will need to aquire a suitable memory card before I can likely do much serious backing up.

I’m really thankful that Roach and cie made that available…lol

Enjoying the Android platform

It’s about 13:37 here and about half way through the work day. Normally I use a mixture of my workstation, Alice, and my phone; lately I have been using Alice quite heavily. I guess there is enough crap going through the wires that sometimes it is better to offload some of the heavy network traffic, plus it is rather handy that if I need to get up and walk around to do something, I can bring my /entire/ session along with me. So my workstation isn’t Mission Critical to doing my job. In fact, it is pretty much a heavy weight client doing what a humble X terminal could do really.

The important things to getting work done around here, in regards to all that, is a terminal, SSH client, and a web browser. Last night I setup the free Android Terminal Emulator app that I have on my phone, only to find that it seems to be crash happy on Andrea :'(. Likewise I setup ConnectBot for SSH access, only to find that it doesn’t support real modifier keys. So I can’t use it with my docks actual Control, Tab, Alt, etc. ConnectBot does work great on  my touch screen phone though. How did I solve these problems? After spending for the tablet and dock, I can’t bitch about paying another $4 for Better Terminal Emulator Pro (BTEP). Not only is it stable, it includes ash (probably dash but I haven’t checked), bash and busybox in its toolset. Dropbear is even slipped in for SSH, which while not something I like, will do fine for at work needs.

I can SSH into the development server at work, use tmux & vim, and go about doing stuff. Heck on a good signal day, I could stand next to the Microwave with the tablet portion and keep coding! I can do that with my phone too but practical issues like screen size/virtual keyboard, mean going from vim to ed. Emacs should even work but I don’t use it. All that is missing is a native X Server, and I could fix that with some rooting and VNC stuff, or maybe try to write one, idk. My workstation can deal with that slice of stuff easily.

To top it off, 94.9 has always been a bug to keep playing since they moved to a Flash based web player. The iHeartRadio app on my phone works but ahem, sound quality blows. The app doesn’t support Honeycomb tablets but I was able to download and install it manually, then setup the radio station to play using portrait orientation: the app doesn’t do landscape. So now I can finally work and listen to music without having to periodically stop to kick the radio stream into working 🙂 🙂 :-).

I is satisified so far!

Hello Andrea :-)

Today, I went out and bought an ASUS Eee Pad Transformer from the local Microcenter. It is very much like the ASUS EeePC, or at least the 1015PE I have been using since retiring Dixie. In point of fact, I am typing this up on my new Transformer! It took quite a while to charge up enough to get to the updating but it was a very simple, quick, and easy process to update from Android 3.0 to 3.2; one of the things to attract me to this device, has been that ASUS seems to be supporting it much better than most companies have been supporting their mobile phones.

Being so much like Alice, which is also an ASUS product, I have named this Android “Andrea”. The Transformer has interested me since I learned of it’s existence, but I didn’t quite think I would be purchasing one so soon lol. I will admit, that the differences between an Atom N450 and a Tegra 2 interest me. As does the notion of pushing Android harder to its limits. What really makes it worth while how ever, is between the dock and the tablet, the battery life should be insane.

Compared to the EeePC 1015PE, it is very similar: most external differences are more cosmetic or a reflection of the change in internals; like the ports involved. Andrea has basically the same keyboard as Alice. Except the left Windows and Alt keyshave ben replaced by “Home” and “Search keys”. Android doesn’t understand function keys, so rather tha being Fn+F* combos, various operations are instead directly accessible via the top most row of keys. There is also no numpad to enable via Fn+F* key, not that I have ever used this on a mobile. Oddly, delete has been replaced with lock where as appropriately, escape was replaced with “Back”. While docked the keyboard operates as you would expect, there are only a few noticable irregularities when coming from a PC. Mostly things like Control+Arrow-key or Control+Backspace are not working, although Control+A, Control+C, Control+X, Control+V combos working. Fair enough on a touch screen oriented OS I guess. Alt+Tab even works, more or less like long-pressing the home button on an Android 2.x phone. Using the cursor/tab keys to move around does not generally work as good as a PC user is used to, although such PC users are probably a dying breed. The touch pad however is very nice and useful. Very enjoyably you use left click/tap as on a phone and right click as an alias for the back button. Context menu is usually a soft button on the bottom or top side of the screen.

As a tablet, I personally would prefer a smaller screen like my mother’s 7″ Dell Streak. It just feels more managable in my hands. As Andrea is meant to be docked, I am quite happy to have a full 10.1″ screen. The resolution is also one up from what Alice supports, which makes for an interesting experience! It is so much easier to use Android on a 10.1″ at this resolution then my phones lowly ~3.2″ HVGA display. Changes to apps like GMail and the like, generally seem to be improvements for having a tablet sized screen in Honeycomb; I am somewhat interested to see what happens in Ice Cream Sandwich and Jelly Bean.

I have the TF101-B1 version, so 32GB is a lot. Most stuff on my phone is on the MicroSD card, and I only maintain 35-50MB of space. Andrea came loaded with something like 200MB of space in use out of 28GB accessible, a pretty good deal. Especially since unlike my phone, it isn’t loaded down with applications, even if the updates to 3.2 added more. Alice is only 11-13GB with a bunch of software installed on GNU/Linux, less than 4GB of which amounts to my home directory. So I am pretty sure that I don’t need to wory much here! I can also use memory cards and USB devices for more stuff. ASUS preloads it with a bit of My* apps, including a form of ASUS Web Storage. I have tried it under Froyo and Windows XP, Dropbox is better, and has the advantage (unlike ASUS Web Sotrage) of being able to access stuff in app when you are disconnected. Android client is OK other than requiring Network access (or side stepping out of app) but the Window PC version just sucks, period. FWIW though the integration into MyCloud and the procing is very nice—but I will stick with Dropbox.

Honeycombs UI is very enjoyable for me, and I am kind of impressed by the bundled office app: Polaris Office. Haven’t used it very much (just for documents) but it is nice. Something that really aces it for me, the Browser app is much more like Google Chrome than the Froyo version. Running off a 1Ghz dual core instead of a little 600Mhz single cored ARM, it is also fast enough that I don’t need to reach for Opera Mobile.

So far, I’m lovin’ it. Really the main lossage is a native X server. I would have to root Andrea and set things up using X/VNC. Except for a few things I do at work, I don’t need X, as a decent shell environment or a SSH client to one, does most of what I need. Hehe. My only real complaint is that while Alice has a _long_ charging cord/adaptor, Andrea has a short one :-/.

This is a deplate of my Viki notes file on XRandR

1.1 Querying information

This was taken  with my ASUS 1015PE Netbook (Alice) hooked up to my LG
wide screen at home on 2011-07-23.

$ xrandr -q

Screen 0: minimum 320 x 200, current 2944 x 1080, maximum 4096 x 4096

LVDS1 connected 1024x600+1920+0 (normal left inverted right x axis y axis) 220mm x 129mm

   1024x600       60.0*+

   800x600        60.3     56.2 

   640x480        59.9 

VGA1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm

   1920x1080      60.0*+

   1680x1050      60.0 

   1280x1024      75.0     60.0 

   1152x864       75.0 

   1024x768       75.1     60.0 

   800x600        75.0     60.3 

   640x480        75.0     60.0 

   720x400        70.1 

$

LVDS1 is Alice’s display. VGA1 is the monitor hooked up to the VGA
port on the side.

1.2 Positioning monitors

       

  • xrandr –output M1 –left-of M2 :: M1 is left of M2
  •    

  • xrandr –output M1 –right-of M2 :: M1 is right of M2
  • xrandr –output M1 –above M2 :: M1 is above M2
  • xrandr –output M1 –below M2 :: M1 is below M2
  • xrandr –output M1 –same-as M2 :: M1 and M2 mirror each other.

Where M1 and M2 are the short names given from xrandr -q. I assume that

    $ xrandr --output M1 --left-of M2 --output M2 --right-of M1

Is permitted, +/- using two xrandr commands for it, as well as being
redundant.

1.3 Setting monitor resolutions

    $ xrandr --output NAME --mode SIZExSIZE

Sets the monitor NAME to the given mode.

1.4 Turning monitors on and off

1.4.1 On

    $ xrandr --output WHICH --mode 1024x768

1.4.2 Off

    $ xrandr --output WHICH --off

Rapid fire shell coding :-)

Well, since Friday night, I have been pretty steadily working on my ~/.sh infrastructure. I started by hooking up alice to sal1600’s monitor (22″), keyboard, and rat. Since I rather distaste how the GNOME/Ubuntu has been acting late: I also took the libtery of adding my xmonad.hs file to git, then ditching GNOME for a pure XMonad session. As I use programs that need a system tray to really be useful enough to me (e.g. pidgin), I’m using fbpanel: good old staple.

For a little while I experimented with making the inactive windows transparent, this works pretty great, but rather interfers with my custom xterm wrapper script that sets my terminals ocupacy: the propteries set by transset-df get lost :-(. Looked at some other terminal emulators supporting transparency, besides gnome-terminal and rxvt-unicode. Sakura seems to be the best bet, and evilvte almost excellence (better to compile from source then using the .deb). In the end, I just switched off the fancy effects, since most of the time I am using a terminal or reading text anyway.

Next up was figuring out how to use XRandR to manually configure my displays. Better still, I wanted to extend my ~/.sh and X session infrastructure to auto-magically configure itself to Do What I Want when I launch a session when hooked up to an external monitor. For architecture and convience, it can also be run as a shell script, thus supporting a sort of hot plugging. So right now, if I hook up to say my 22″ widescreen and let alice do it’s magic configuration: after I login, I will be working off the big screen, so I can ignore the 10.1″ little one :-). This isn’t without a few warts though, namely if I go hotpluggy with it, fbpanel needs to be restarted in order to render on the new primary display (I just switch off the netbooks display), and pidgin becomes confused on where to render notifications (oi) with how it’s setup in the default Ubuntux way. Oh, and hardware issue being that the touch pad makes the cursor jiggly should I close the lid lol. The performance is also noticably slower on 1980×1080 but works very snappy. I really am inpressed with this sweet little ASUS.

I then pretty much went about refactoring bits and pieces of my `sh services environment`, going so far as to create a GNUmakefile that I can use to help set things up whenever rigging a clone on a new install. Being lazy, I also finally moved ~/sw/sh from Dropbox to git. Generally I use bin for local binaries, sh for portable scripts, and sh.local for things specific to the system. Usually odds and ends that reflect a very specific setup.

Over a dozen commits later, I like the result pretty well. The only problem is, the difference between the 20″ screen at work and this 22″ screen, I now have so much screen realestate that I don’t know what to do with it LOL. In Windows, most of it just goes to waste for want of XMonad.

VNC over SSH, the idiots guide.

Since I rather like to have options, I’ve decided to augment my usual SSH /w option of X forwarding to the option of VNC as well.

Objective: connect to my netbooks X session using VNC, tunnelled over SSH.

Implementation:

Since my netbook runs a GNOME centric distribution, I’m using the “Remote Desktop” preferences program on “System -> Preferences”. If you’re like me and to damn lazy to hunt and peck, this just runs the program ‘vino-preferences’. On here it’s possible to setup VNC access to your desktop. In essence, it just runs vino when you login. There are loads of good and bad write ups on VNC server setup and 3 or 4 click setup is good enough for me.

My iptables rules pretty much block such things as incoming VNC requests, which is good because I don’t want the session exposed across the network interface. Pretty much all there is for accessing my netbook is the SSH port.

Now on another system, it’s possible to connect using SSH forwarding. This gains us both encryption for the VNC session and less port exposure; that is good for security.

PuTTY client setup:

  1. Load/create your session in PuTTY
  2. Go to SSH -> Tunnels
  3. Add a port forwards
    1. source port: 5900
    2. destination: localhost:5900
  4. Login to the system using PuTTY.
OpenSSH client setup:
  1. ssh -L 5900:localhost:5900 username@host
There are options for both if disabling the shell session and only running the forwarding is preferred (PuTTY: SSH->Don’t start a command at all; OpenSSH -> RTFM for -n, -N, and -f). 5900 is the default VNC port running off the server end (my netbook).
Now on the client machine, connecting any VNC client (e.g. TightVNC) to localhost should give the desktop session over at user@host; in this case, my X session on alice!
This is the shortest, sweetest, non-non-sense, you’re assumed to know how to RTFM if you want to know the facts, kind of write up that I’ve seen on doing this. Hmm, maybe it helps that I already know how to use SSH port forwarding with OpenSSH, hehehe.