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

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