Why, yes. This is, indeed, OWL running on the PocketCHIP.

Here’s the story.

I spent 12 days recently, travelling in the south of Brazil and Uruguay border. And I decided, as an experiment, to see if I could live without my laptop. I wasn’t meant to be working, but I always like to keep some kind of SDI / MTC style software on me to make notes and generally think about my insanely long queue of tasks and all my other half-baked ideas. I feel lost without having access to these. And would usually take a laptop, just to keep them near to me.

This time, though, I decided to see how well I could cope with a “device swarm” of very small (and cheapish) tech.

Here’s what I took :

  • The PocketCHIP
  • My Android phone
  • A small, portable USB mouse
  • The rubber-tipped stylus.
  • A 5V mini USB charger that plugs into the wall.
  • An A5 sized paper notebook and pen.

On my trip, I also acquired a small bluetooth keyboard / mousepad that’s actually just a capacitative touch surface with letters marked on it. This impressed me a lot when I bought it at a Duty Free shopping outlet just on the Uruguay side of the Yaguarón River in Rio Branco for under $8. It charges via USB and feels pleasantly heavy and solid, while still pretty small.

Here are some things I found out.

I should note, first, that I’m also pretty much against keeping things on public clouds and other people’s servers. I increasingly want my data to be private, on systems that I control, and mainly synced between my own machines rather than using, say, my hosting provider.

Although I’m far from a satisfactory solution to that, it turned out that the discipline was useful in the sense that I wasn’t as persistently connected to the internet as I’d hoped. And so if I had depended on the cloud I would have been without access to my data more often than I had it.

I also, of course, want to use my own software. I currently have three distinct trajectories of development in this area.

  • Mind Traffic Control, racket-version.
  • The new engine behind ThoughtStorms wiki which is written in Python and uses the light-weight Bottle web-framework. I use this for both ThoughtStorms and a second personal wiki-notebook which is descended from my old SdiDesk notebook.
  • OWL

All these projects are still alive. And my notes and todos (and some more significant chunks of writing) are somewhat haphazardly scattered between them. So I wanted to see how well I could take them on the road with me with such minimal hardware.

Before leaving I updated the Debian on the PocketCHIP and installed the relevant libraries / environments. I already had MTC-racket running on it. And Emacs. Python was there too, but I needed to pip install a couple of standard libraries. Then I could install both Project ThoughtStorms and the Python-served version of OWL. (Spoiler alert : 2017  is going to be a year of consolidation between all these projects, particularly I’m aiming to unify the Python-OWL and Project ThoughtStorms servers into a single code-base.)

I didn’t try installing the Android version of OWL on my mobile, because of … er … reasons … which currently prevent me having a working dev / deployment environment for Android on my laptop. I hoped, though, that I’d be able to access the OWL server on the PocketCHIP from the phone.

Results

The PocketCHIP is a wonderful machine. (And, seriously, a Debian box for $9 just insanely amazing.) It seemed to cope just fine with simultaneously running three Python servers (2 copies of the Project ThoughtStorms wiki, and the OWL server) + MTC. (I just ran unix “screen” on the terminal and ran each in a separate screen.)

Obviously these were not being heavily accessed. (I was the only user). But I’m still impressed.

The weakness of the CHIP is its WiFi. It is very weak. My original thought was to run the servers on the CHIP and then access them from either my phone, or other computers in the places I was staying. But even where WiFi was available, the CHIP typically failed to establish a usable connection with the router.

The only time I could get anything else talking to the CHIP was by turning the phone into a hotspot and then placing that within 10 to 20 centimetres of the PocketCHIP.

This way I was able to access both wikis and OWL from the phone. I didn’t get to remotely ssh-ing into the CHIP to see MTC in a terminal from the phone, but this would have been a particular fiddle and it’s not clear that it would have been worth it. In fact, nothing worked particularly well. OWL’s web-interface is pretty much impossible to work with on a small phone screen. It’s OK on a 7″ tablet, but the phone is way smaller and too difficult to manipulate. And the HTML UI doesn’t zoom in any effective way.

Reading the wiki pages was slightly better. I was surprised, though, how badly the phone handled the fairly simple, static html. I accept that there’s very little fancy “responsiveness” in the TS wiki at the moment. I hadn’t realized how little Chrome would help. On my laptop, ctrl + and ctrl – work beautifully to scale text up and down, reflowing and refitting the text. I have no hard settings for font-size or spacing. The page ought to be easy to automatically resize to convenience.

But pinch zooming a TS page on Android Chrome is diabolical. Not only does it not scale and reflow the text in a useful way. It also seems to remember (or guess) arbitrary different zoom levels for different pages, so you jump from a readable page to another page with illegibly tiny letters to another with enormous text, most of which is off screen. And zooming the menu seems to be independent of zooming the main page text. The whole thing is horrible.

Firefox on the phone is a bit better. You can go into “accessibility” and turn up the text size to full. And then the defaults are reasonably readable and consistent on all pages.

Editing is trickier. And this is somewhat my fault, I have set a fixed number of columns in the text-box in TS wiki which is too large for a phone with either browser.

Overall, I’m disappointed with the phone experience. TS wiki is just about readable on Firefox. But it’s useless for doing any kind of work. And horrible on Chrome. OWL looks OK on both browsers, but is too fiddly to actually edit.

I need to radically rework the UI for both these projects.

So I went back to see if I could actually look at these web-served applications on the PocketCHIP itself.

It turns out that OWL works surprisingly well with the surf browser which comes pre-installed … as long as you use a mouse!

The touch screen even with a rubber-tipped stylus isn’t viable for navigating and editing an outline. But attach an external mouse to the USB and it’s surprisingly usable. The PocketCHIP keyboard isn’t great for a lot of writing, but for short items in an outline it’s viable.

TS Wiki is also fine to read. But for some reason the text-area is coming out black, with black text. (I’m pretty sure I’m not setting this explicitly, so I assume it’s a bug in surf.) You, therefore, can’t edit the wiki with it. But reading is an acceptable experience. Once again, a mouse helps, but you can just about get away with the stylus.

The bluetooth keyboard I bought paired fine with the phone. But with the PocketCHIP there were some issues with the mapping between some symbols. I couldn’t find any combination of keys to make a backslash for instance. And sometimes the shift wouldn’t work. Also the bluetooth connection kept dropping. I found myself continually swapping between the PocketCHIP’s own keyboard for typing short commands with a lot of non-alphabetic symbols, and the bluetooth keyboard to type paragraphs of text. It was just enough to get some work done, and the bluetooth keyboard was just better enough to make it worthwhile, but it wasn’t really a viable solution.

Aside

This trip I also got interested in Logic Programming and tried out the Python Minikanren library, logpy, on the PocketCHIP. Unsurprisingly, it worked as expected. But, again, that is kind of startling when you think of it.

Conclusion

Well, this stuff works. If the PocketCHIP just had better wifi / bluetooth connections, then it would be a serious possibility to do some work on. It might be that a software update fixes the power-saving that may be weakening the wifi.

But it’s not something that even I can use yet.

Some of that is in my hands, of course, one task is to tweak the TS Wiki UI to ensure that the text-area is readable in surf. That would at least mean that PocketCHIP could be used (if uncomfortably) for working on my notebooks.

It’s not all working yet … but it’s getting closer.

Posted in Me.

A burst of development energy in a number of directions recently.

And things are starting to self-organize towards the new ecosystem.

Today’s exciting news : OWL makes a very nice desktop app, thanks to Electron.

Here’s the github repo.

I’ll be doing more testing, compiling, packaging this shortly. So that even non-geeks can play with it. But it seems to work fine.

To be honest, the few times I’ve installed OWL on non-geek friends’ machines, the “run a server and look at OWL in the browser” part has confused / put people off. Now things are VERY much simpler.

This is also going to give me some momentum to add a couple of extra features / ideas I’ve been thinking about over the last couple of years.

In the short term … this desktop repo is likely to be where I develop the next round of functionality. Though I’ll be porting these new features back to the Android and web-based versions.

Main issues in my mind at the moment : I’ve dropped the Python based server for this. We’re now purely Coffee / Javascript. That feels cleaner and more convenient. Will I now try do the same for the web version. It makes sense. But straight node? Express? Meteor?

What’s simplest and leads to least repetition of code?

Posted in Me.

OK. At this point I’m now officially confused by the Dave Winer road-map / strategy.

I’m sure it’s evolving and exploratory. But Dave’s productivity means that I’m no longer keeping up with how this is meant to go down.

So we had an outliner. (Fargo). And then an open-sourced version of the editor (Yay! Concord). Dave got the religion of “Unhosted” apps. running entirely in the browser and using various back-end storage. (Cool). Although he has a node server for that too.

Meanwhile, there’s a radio3 which is … what? … blogging software? an RSS generator? based on the outliner? And river4 which is an RSS reader. Or is it radio4 and river3?

And now there’s a MyWord which looked like a way to format long-form essays to make an open competitor to Medium. And Little Pork Chop to cut long stories down to Tweet-size chunks to post on Twitter.

But MyWord is also meant to post to Twitter. (I think)

And now MyWord also seems to be blogging software. (Following the path of Medium?) But when I asked about how the outline editor would connect to it, Dave said he wasn’t thinking about it. Instead MyWord is gaining an ordinary in-browser text editor. But it’s also getting a “front page” which shows an ordered list of posts … pulled from an RSS feed.

Dave’s own blog seems to be outline based. There’s a liveblog version for “narrating his work” that basically IS in an outline. But MyWord seems to be going off in a different direction.

So what’s actually going on here? Are these all pieces of a single jigsaw puzzle that can be put together to make a comprehensive whole (a version of Radio Userland as a swarm of Unhosted apps)? Or is Dave running a bunch of experiments in parallel, pursuing an outliner-first strategy on the one hand, and chasing Medium and Twitter on the other?

Posted in Uncategorised.

Good news. The latest version of BTSync actually lets me specify which folder on my Android tablet I want to sync.

That means I can explicitly tell it to sync. the OWL directory that OWLdroid uses by default. (Somewhere between updates of Android and BTSync last year, this facility got lost.)

So it’s looking like BTSyncing between my tablet and laptop are working again. So OWLdroid is a viable piece of software again. (The syncing with the laptop makes a huge difference in day-to-day usefulness.)

Yes, I know this isn’t great. I need to figure out how to ensure that OWLdroid works. The longer term plan is to move to having remoteStorage.js as an option. But that’s a little way down my todo-queue.

Posted in Uncategorised.

So, Dave has a nice template for showing essay-length writing.

And naturally, the way things are evolving in 2015, it’s a “single-page web-app” which can pull in the actual content from another URL.

Of course, I’d like to write essays using an outliner. And I’m using OWL which is really just the Concord editor that saves files in OPML. But myword.io has a new custom JSON format for its input (that also seems to allow Markdown).

So here’s the question : what’s the story for converting an outline to an essay? Is myword going to evolve to import OPML directly? Is the myword JSON format going to become a standard? How should OPML turn into myword documents?

In one sense it’s easy. You can always just flatten OPML and dump it to a raw text file. Perhaps with some indentation based on outline depth. (Although that might fight the Markdown.)

Or are there plans to represent any structure in the essay (sections, section headings etc.) with structure in the OPML? Is there a project to work on this? Or thoughts on a standard that I could start to support?

Obviously I have a couple of my own solutions in this area : GeekWeaver and bootdown. But if there are any emerging standards / conventions planned, then I’m up for supporting them. Both GeekWeaver and BootDown are useful, but they’re both rather old-skool command-line Python scripts which don’t necessarily fit into the workflow of many people in 2015.

Update : Dave replied :

It is what it is.

I have no plans at this time to do anything with it.

I might swing back around to this, or not.

MyWord is MIT Licensed, so if you really want it, you can do it.

OK. So right now, I’ll probably just do a flat export of text written in OPML and a quick JSON wrapper. And then think further. As this ties into questions about GeekWeaver, the future of some of my Python code base (as opposed to moving more into the browser)

Dave also points to his code :

Here’s the code I added to Fargo to generate the myword.io JSON.

https://gist.github.com/scripting/2a612b0e2cbb7077482a

As you can see, there ain’t much there! 🙂

Still. Very useful.

Posted in Uncategorised.

How is OWL looking these days? Here are a couple of screenshots :

OWLdroid

OWLdroid Feb 2014
OWLdroid Feb 2014
Note that I’ve moved the navbar of OWL into the space which Bootstrap usually uses for the main menu. This is a big win in terms of space, and the fact that it’s now always visible, even when scrolling down long pages. I’m not sure, yet, how this will work on smaller / phone-sized screens.

OWL on Laptop (Firefox on Linux)

OWL screenshot (Firefox on Linux)
OWL screenshot (Firefox on Linux)
Posted in Uncategorised.

Been meaning to do a video demo of OWL for a while, to make it clear what it really is. Today there was some Twitter discussion of Fargo + TiddlyWiki + syncing so I had to drop a link. And decided that it was better to have a rough and ready video example than to wait until I did it properly.

So here it is. Please excuse the whole “one-handed camera while I try to drive everything from the other hand” bit.

I hope it gets the idea across.

Posted in Uncategorised.

There’s a big fix for OWL today. There were some mysterious times when pages that I thought I was changing were getting reverted. I thought originally that this was a glitch from me btsync-ing between my laptop and tablet. Or maybe my attempts at doing background synchronization between the browser localStorage and the server were failing.

Nothing seemed to completely eliminate this intermittent problem. But today I realized it was much simpler. I was basically using web.py’s “static” file serving to pull the OPML files off the server into Concord. But “static” is meant for static files (doh!). The browser was caching them. (Maybe because of some header web.py was putting out.) Anyway, I just changed the server to reading the files into memory and spitting their contents out, just like any other dynamic web-page, and the problem looks like it’s gone away.

I’ll keep an eye out, but I think that was it.

Posted in Uncategorised.