I’m working on a series of small “unifications”. Attempts to bring several of my different projects closer together. This is to share more code between them, or allow them to work more closely together.

Today, I’ve been updating BootDown, my quick and dirty static site generator so that it now uses the same library (txlib.py) as TSWiki to render markdown and embedded media like YouTube and SoundCloud.

This means that from now on, BootDown will use the same markup for embedding videos etc. as TSWiki : block defined with [<BLOCKTYPE ... >] containing metadata in YAML format. Also means that TSWiki now inherits an include CSV file block which renders as a reasonable looking table from BootDown.

This is a small change to a couple of files in a couple of projects, but it’s part of a general campaign of forward motion that will hopefully result in a bunch of projects becoming more powerful, more flexible and faster evolving this year.

Posted in Me.

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.

Been working quite a lot on Project ThoughtStorms, the new Python / Bottle based wiki engine behind ThoughtStorms in the last few days.

I can’t believe that I’ve spent 15 years building a wiki without creating my own software.

That error is going to be rectified from now on.

Sure, most of what I’m doing is adding the kind of functionality that most wikis already have : RecentChanges, Search, Sister Sites etc. But it’s pretty quick to write. And as I bring these functions back, ThoughtStorms becomes more subtle and alive.

The truth is that ThoughtStorms’ content is woefully outdated. There are a tonne of broken links, and news stories that were current in 2005, but equivalent stories between about 2008 and 2016 are no-where.

It needs a jolly good clean up / clean out / refactoring. But I’m starting to have some ideas about how to write some more innovative custom code to help with that.

It’s very much work in progress. And there’s still plenty that’s half-baked and unfinished.

But I’m starting to feel that ThoughtStorms is coming back to life.

Posted in Me.

While on the subject of Project ThoughtStorms, I realized that the tools Quick Paste and Compare were broken.

These are now working again. Quick Paste lets you quickly paste a a bunch of paragraphs of text and get back an SFW formatted file that can be dropped directly into your pages directory in an SFW wiki,

Point Compare at two different SFW installations, and give it a page-name and it will show you a json diff of their underlying files.

Both are rough and ready, but can be useful.

Posted in Uncategorised.

I’m updating my copy of the Smallest Federated Wiki, and the plugin format has evolved again. (Not surprising, the SFW is still in its experimental stage.)

So, I’ve broken out my plugin for ThoughtStorms / SdiDesk format (wikish) from the original Project ThoughtStorms and made a dedicated git repository in the recommended format, naming convention etc.

The plugin is also now available as a node npm package on npmjs for easy installation.

Last year I wrote about how impressed I was by Clojars, the Clojure package repository. Seems like this might actually be the standard way things are done these days. Because npm seems equally straightforward.

The latest instructions for installing extra plugins to your copy of the SFW seem to be here.

Posted in Uncategorised.

Bloody hell! I just wrote a blog post and WordPress lost it.

Grrrr …

The short resume was :

– yes, I’m late (Feb) continuing my “Welcome to 2015” blog posts.

– last year I got the functional programming bug. Haskell is pretty damned good, but I’ve fallen for Clojure because a) dynamic types, b) Lisp syntax(lessness), c) Paredit.

– last year I did more Python, but not much OWL. This year, OWL is calling again. And as well as making me want to rethink Mind Traffic Control in light of it, is also seeming to demand some kind of pivot on GeekWeaver.

I’ll be coding and blogging more on this ongoing development in coming weeks / months.

I’ve also been playing a bit with remoteStorage, but nothing to show yet.

Posted in Uncategorised.

Second in a series of questions occupying my mind at the beginning of 2014. Which may (or may not) inform what I’ll be working on.

2) What About Project ThoughtStorms?

Unlike the first question in the series, this one is relatively light.

It’s obvious that OWL is the new SdiDesk. And where my private personal organizer / wiki-notebook etc. work should now be focussed. It’s equally obvious that it’s not, in itself, a publication medium. Smallest Federated Wiki is still looking good for that. SFW also has some great features : federation being one. The embedded media types being another. It’s actively improving. And looks like it’s become the “official” wiki in the node.js library. ThoughtStorms isn’t moving off SFW in the foreseeable future.

So Project ThoughtStorms is still, largely, about tools that support SFW. At the same time, this dichotomy between one tool for writing and one tool for presenting is a little bit … disconcerting. It’s natural in the outlining world, of course, a separation between outliner as authoring tool and blog / slide-show / book as rendering. But in the wiki world, where writing / editing / reading are all blurred together in a kind of closed loop, it feels wrong.

Nevertheless, there’s little real question there. In 2014 OWL is my writing tool. SFW is my public thinking space. The open question is about what bridges to build between the worlds.

Should OWL export complete SFW pages? (Easyish, I think). Should it import them? (To be consistent with my promise not to abandon SdiDesk users?) Should I try to get it to speak the federation protocol of SFW? Where should I be capturing quick notes and draft thoughts that aren’t (yet) ready for publication?

No great soul-searching here. But a bit of quizzical head-scratching required.

(Next question coming soon.)

Posted in Uncategorised.