A little fun with linpack

It’s a bench mark thingy for Android. Basically you push the single threaded or multi threaded button and it gives you Mega FLOP’age for solving some equations.

Running at a fairly idle load for just sitting at the end of my desk, my phone scored about 3 and 3 1/2 MFLOPs. Nice little Optimus T, and a device I know doesn’t have a lot of processing power in general. In fact, it only has like a 600Mhz CPU.

Now, Andrea on the other hand is running a full load: instant messenger client, client for our internal IM system, web browser, Samba, terminal environment (btep, openssh server, several bash, several openssh client connections, and a long running vim instance). Plus whatever is in the background, WiFi and syncs are on—plus TexTab is linked to my phone over Bluetooth. In short, it’s pretty much at a typical load for me. The results were about 30 and 50 MFOPS.

I really would be curious to take a freshly setup and stripped Transformer, and see how high that might go. AFAIK the best super computers top out near 10 Peta FLOPS and the most powerful x86 chips around 100 Giga FLOPS, and top notch graphics cards blow that away. I’m not sure I want to know what the various x86 chips I have laying around, but ~50 Mega FLOPS sounds good to me lol. Most stuff I saw on linpacks website seemed to range from 25 to 100, and often big gaps, e.g. while some people might rack up 80~100 MFLOPS most would get 60~65 MFLOPS.

What really impresses me though, is the “Experience” offered, I could care less about Floating Point Operations per Second but quite a lot about being able to *use* my system while under load. For years, Firefox+Flash was enough to almost overheat my laptop (and nearly did on several occasions, just with Firefox!), throwing on a compile would generally make me worry about my laptop halting and catching fire. Andrea on the otherhand, has been managing the same task set without even blinking an eye.

I can surf, chat, stream music, code, and compile without blinking an eye.

What somewhat irks me, whatever this Android tablet/netbook is doing in it’s architecture and with this ARMv7. It puts to shame any x86 system I have used….except for the development server at work, and that has  multiple multi-core Xeon processors and a shit load more of memory lol.

I really would love to try an ARM powered system in a desktop config. Maybe run Linux or OpenBSD, and try for something like the next gen processor cores and as much RAM as she will stuff. Hehe. Andrea is powered by a Tegera 2, so that’s basically a 1Ghz dual cored ARMv7, sans NEON, if I remember correctly.

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!

A case for autotools that I have only recently begun to understand

Like just about anyone who has ever had to install software from source has, I have /used/ autotools before. But like many barely ever scratched the surface. Lately I have been cuddling up with the autotools from a developer perspective, a lot more. To the point perhaps, that I am liking autotools better than I ever thought I would. Like anyone whose used more than 1% of autotools, I know you can (or are supposed to when the developer did it right) be able to run configure/make outside the source tree. Also I know about –prefix and most of the usual configure script goodness. Now, it’s far from the first time that I have mentioned it, but my “Holy Grail” of builds has long been a multi-tree build:  one tree for build files, one tree for distribution files, and trees for whatever source and data files are needed. Then because I may be doing a diverse set of platforms, this usually becomes a need to further grind down into having co-existing build/dist trees: for example to have FreeBSD, OpenBSD, Linux, and Windows NT builds in the same working copy. Including using different toolsets, such as GCC 3.x, 4.x; and MSVC 9.0, 10.0 on the Windows NT builds. Now that my main computer is an ARM, processor architecture will probably end up mandatory. I like stuff like Build/platform/toolset. Hacks to keep this sort of thing working under {insert random OS here} should be kept to a minimum. How well a build system supports helping me with this problem (and file system hier) is one way that I judge build systems. Over the years, I have tried…just about everything except ant and maven but hey, how many C/C++ projects do you see using those at home? Multi-lingual stuff is always idea. At present, my favourite build system is premake4 — it makes setting up such a build pretty painless. After that is probably Qt’s qmake, since it makes compiling fairly painless. With the GNU build system, it is pretty easy to do something like:


$ cd Build/Linux/ARMv7/gcc44
$ ../../../../configure --prefix ../../../../Dist/Linux/ARMv7/gcc44
$ make install

Which would give something well suited for testing, and there is a config file to save whatever configuration options I usualy test with in $prefix. The check and installcheck targets also do what I will typically do with a `make tests` or a `./tests.sh` in my own working copy. To top it off, autotools probably has one of the best tools for making a distribution: make distcheck. I do not need most of what autoconf can do, and usually prefer to skip it. The ability to have things fail at configure rather than compile time is handy. Being able to e.g. toggle between Deps/{pkg} and the systems {pkg} at configure time is great and something I already do with premake4. Automake can also pretty much do what you could get out of not having to hand write Makefiles. What REALLY shines however is libtool! We have all cursed at something or other involving autoconf, automake, or libtool. But the little secret is libtool is one of the best assets ever given to a developer. If you don’t think so, you should try to alcomplish the same thing in SCONS for a solid week, just to support three platforms with differing toolsets, unless much as changed in a few years: the amount of kludges is a recipee to be pissed off. libtool can pretty much do it all and for a lot of platforms. The real question is how well autotools would really play with doing a Windows NT build with Visual C++. I’ve never tried that. That is also the principal reason I’ve never used autotools on most of my projects lol.

Your Vehicular Retardation is Showing Again

This morning on the way to work, at one of the side junctions I was fortunate enough to slip into the turn lane while the arrow was still green, but had to content with only a solid green light for turning left. In America that means YIELD to uncomming traffic. To top it off we had a cop dealing with an incident right where I’m aiming to turn. Thus I’ve got to wait on the cop and the oncomming traffic. It’s big enough a side road to have it’s own through traffic, thus a trio stacks up waiting.

The blowhard behind me starts beating his horn, because I won’t choose between getting slammed by oncomming traffic or running OVER a police officer. My response? Give mister retard a nice one fingered salute and wait until it is safe and legal to roll: without causing murder or car more wrecks.

So many people in this state should be ashamed to be on the road!

Google just made my day

Was trying to look up a word I had stumbled across too far ago to remember, so I typed the definition into Google in the hopes of finding a clue to it. I didn’t expect my chuckle of the day!

How Google shapes history

I seriously hope that is some Google Engineer’s idea of a joke about sex shaping history…..lol

This is from a real screen shot, not a photoshop!

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

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.

How technology has impacted my blogging/social media habbits

So far, my blog has seen an interesting return to pretty regular usage? Why? I’m not really any less busy with the stuff that I do, but I find with Andrea that I am posting more frequently. It’s not that the Android app is anything to write home about, in fact I will probably get googlecl loaded on her so that I can use my blogit script. It  is just a matter of convenience! The app icon on my home screen is right there, always in reach, and it is so easy to jot down a quick entry on Andrea.

Thinking about that has also made me realie part of whyI use Google+ so much. The privacy system being almost perfect and something that I’m 110% comfortable with. Having thebutton right on top of the Google pages. It isn’tneccesary to travel very far. When you are busy and either frequently having better things to do or constant interruptions at home.

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!!!!!!