Digest 2014-08-20

Welcome to weekly Federated Wiki hangout on August 20, 2014

On today's call

  • Ward
  • Allen
  • David
  • Paul
  • Nick


In wiki, page names serve the role of hashtags
  • Then need disambiguation?

Group configuration, people using different words

Meetups, with groups that don't crosstalk

David is working on Service Systems Thinking

Paul has been catching up on Express

Txtzyme plugin
  • A board with a character display
  • Has USB hardware on the chip, so can do flow control with C
  • Run an interpret -- text with enzyme -- twiddle bits, LED glows
  • Write Perl or Java or Ruby scripts to stream data to interpreter
  • Has a repeat loop, e.g. do something 10 times
  • Series of pulses
  • Streaming of programs goes into separate hardware, invoke it, throw it away
  • Macro that runs in plugin, formulates programs, send to the microcontroller
  • Broke it in refactoring
  • Added ability for "string backs";  send a string, plugin then checks if it has a macro with that name

Demo:  federated wiki for OSCON hardware showcase
  • From fed wiki in browse, can make hardware blink and beep

[Fire drill for Ward!]

Compatibility of Paul's code with Ward's code?
  • Nick wrote a Javascript version of the server, sitting in a folder inside the Ruby project
  • Had SFW on Github that had the Ruby server, the node server, and the client and the plugins, in separate directories
  • Nick split the Node server onto a separate project, about a year ago -- at that point, the versions were the same
  • The Ruby version signs in with OpenID, the Node version now signs in with Persona, which seems to be an better solution at the time
  • Ward was having problems with OpenID providers disappearing
  • At some point, ended up two versions of the client: after the node server was moved to separate project, moved the client server at the same time?
  • Some divergence
  • Then did massive refactoring with plugins into separate repo
  • Ward then started working with NPM to do a separate Ruby-Gems
  • Client version has moved on with time, the server versions haven't changed much, it's convoluted

Difference in client versions?
  • Just different versions
  • When a feature is added, e.g. drag and drop between pages, it won't be on any server that was installed a while ago
  • When logging in, the version gets downloaded to the client
  • Should have a page that tells what version of the server and client is connected to -- it's not obvious
  • There's a server command that does this, but it doesn't do a check
  • Could check with Git  if there's a new version

OpenID vs. Persona?
  • OpenID, when save the identity, saves the URL
  • Persona saves the e-mail address
  • Ward had been have problems with the OpenID provider
  • A risk that Persona could disappear?  It hasn't been taken up more widely
  • Current problem with people who use Google identities, the OpenIDs won't work

[Fire drill over for Ward!]

Timebomb will be people who signed up with Google IDs on fed.wiki.org
  • No SLA, not in trouble if they can't log in
  • Ward erased all of the identity information and reclaimed

[Nick joined]

Speed bump of being technologically savvy to use federated wiki?

Claim a cookie, instead of claiming a site?

HTML5 browser local storage retains the content across reboots
  • WebRTC data channels
  • A way to open up binaries
  • Still need some server to handle the connection details
  • There are people working on not having a server connection

What behaviour should we expect if there's content in the local browser storage?
  • Try a variety of ways, and then enable the affordance that works
  • Original sponsors insisted on the ability to edit in private, and then publish when a group of aticles is approved
  • Can do this by having a local version -- a pain in the butt

When publishing, is there a way to subscribe?
  • To subscribe, add a site that you care about, it will cause all of the sites to be collected
  • You have to ask for it
  • Not RSS, call it sitemaps

How to a control-Z?
  • Go to the ghost page, fork the page, and then it clears the journals
  • Varies between implementations, not all servers do that
  • Journal is the undo buffer, visualized
  • In the Node version, doesn't do the annotation

Recent refactoring in the Page Handler
  • Depending on the fork, different types of behaviours
  • Should be unified sometime

Working with Txtzyme, need to find on pages, have to drag in more frequently
  • Not meticulous about IDs, could end up with two things with the same ID
  • Need to make samples about events
  • Shift-and-drag, drop
  • Complicated ways to remember original IDs, with aliases -- but too complicated
  • Theory:  when you finally learn what to do when the software becomes simple, then the design becomes simple
  • Luxury to have a few powerful features, and learn what they can do over time?

Simple versus easy:  simple isn't easy to do
  • Can make something simple to use, but not easy to use
  • Wiki was successful because it was simple and awkward to get around the cheesiness that Ward had written

Archtectural programming?
  • David has been working backwards from pattern language to understand the context of architectural programming, as used by built environment architects
  • Ward doesn't follow a methodology
  • Good fortune and trusting colleagues to make something work, surprisingly, and then make it worth of study
  • Might be successful only after someone takes the code away from Ward, and makes it valuable
  • Research prototype? Wouldn't complain, would be a little hurt
  • Nick would do this?

Agile has worked well when you have a well-defined customers
  • Works well when you have a good project manager that adds as a surrogate for a customer
  • However, there are a lot of good things that can from not agile?

Domain-driven development?

Nick is getting close to feature-freeze
  • No official freeze, but have an announce date, can't add much
  • Do work with visual designers (user experience), have a lot of influence
  • Didn't have much room for that in agile
  • Have elevated computer programming from dysfunctional to average
  • Now when people report fantastic gains, it was because they weren't getting anything done, now getting things done
  • First, physicists, they were used to making things done

Domain-driven design as agile that is closer to object-oriented design
  • Ubiquitous language
  • Important that developers use the language they're coding, especially if they have a customer using a language
  • Eric Evans found this in Smalltalk when doing container shipping -- whole team had to learn a lot of business practices
  • Nothing in the book that Ward disagrees with
  • More social interaction practices
  • The place to begin is on ddd.fed.wiki.org -- the patterns are there
  • The best is to buy the book, could ping Eric