git ssb

0+

gb / gwenbell.com



Commit 1b760a3012c65a4febef9e740d6f2b1aade97923

Merge branch 'master' of ssb://%K2My/bMx32RJat5O7UWOWPmsoXCR5oRlYbWdZ0oBq+4=.sha256

gb committed on 10/3/2016, 8:47:23 PM
Parent: 23d8813fe9517149c17d051f24b7bb99d98600ee
Parent: a2ccf548ce4604eca9f5e46032855d0daf975e7b

Files changed

src/about.mdadded
src/cel.jpgadded
src/gb-cel-interview.mdadded
src/about.mdView
@@ -1,0 +1,32 @@
1 +---
2 +title: About
3 +layout: page.jade
4 +---
5 +
6 +I got to Mexico via Colorado via Japan in November 2006.
7 +
8 +In 2006 I landed in Puerto Vallarta to co-lead a yoga retreat in [Los Naranjos, Yelapa](http://www.yelaparetreat.com/retreats) from November 11th through the 18th. The taxi driver, an eldery gentleman, suggested that the two of us might sleep together. I pointed out that I'm about two feet taller than him. While stopped at a stoplight he retrieved an index card from his pocket. He drew a short person and a long person and said that in bed, height is not an issue. Aghast, I said a tiny prayer that I'd make it to the city center, laughing and crying at the same time.
9 +
10 +Somewhere in that week I emailed everyone I knew email addresses for in the States and Japan to let them know I intended to stay in Mexico.
11 +
12 +As in **forever**.
13 +
14 +I'd found a place I belong.
15 +
16 +***
17 +
18 +I spent half of December 2006 in Ajijic, Mexico. Lake Chapala in Ajijic is a retirement village of sorts for _gringos_ who are old(er) and more hang-out-with-other-gringos-ish. It wasn't a good fit for me so I made short work of it and got out of there. But I could have just backpacked around a bit. And in retrospect, I wish I'd stayed on in Mexico.
19 +
20 +Why!? Well, because I belong here. My grandfather, from what my father has told me via email (in between the other drunken screeds he sends about things I don't completely understand) was from [Zacatecas, Mexico](http://www.visitmexico.com/en/heritage-city-zacatecas). I've only been through it, but can imagine spending more time there. My mom's grandmother was of Spanish descent, too, but people in the fam don't talk about that much. Anyway, ancient ties.
21 +
22 +After 2006 lots of things happened. Many of them alright, some of them just plain awful. In 2009 I was in Mexico and got an email to go to the O'Reilly sponsored Social Web Foo Camp. I taught some yoga there, met some tech folk, played some werewolf. In 2011 I went to Sayulita and stayed at a hotel that since closed and re-opened under another name. It appears tackier than it was in 2011, so I'm not linking to the new version of it. (It was called La Casona in 2011 -- I lived in the hotel for a month and accidentally made some internettermies by doing so -- that was weird times. That's part of the reason I [track issues](https://gitmx.com/%25sa%2FOgrHPhHCw8V0x2wrIgadRJANxQAKY6V9AP%2FF4iyw%3D.sha256) now, so people can bring things up early and often.)
23 +
24 +I moved to Mexico for real in 2013. I rented an apartment here for the first time and began studying the language in earnest. I've studied Spanish since high school but school Spanish and ground level Spanish are two different things. As of 2016 my Spanish has finally hit solid and I still have a ways to fluency.
25 +
26 +***
27 +
28 +What's next? More yoga. More Spanish. More tech. On repeat. Forever.
29 +
30 +Maybe I'll teach a yoga-writing-tech retreat if I can ever get up the urge to do that. Last time I mentioned it people meh'd on the idea, but you never know what the future brings. I know mine will bring more quesadillas and funny nights in cantinas with people who make me laugh and cry at the same time.
31 +
32 +People with whom I can **be long**.
src/cel.jpg
src/cel.jpg
src/gb-cel-interview.mdView
@@ -1,0 +1,66 @@
1 +---
2 +title: 'Distributed Git on Secure Scuttlebutt: The Cel Interview'
3 +date: 2016-10-04
4 +layout: post.jade
5 +collection: blog
6 +---
7 +
8 +<img src="/cel.jpg" class="profile full">
9 +
10 +**gb** Hey [@cel](https://celehner.com) (pictured above, middle -- with @myf and @ev) -- I'm starting out by reviewing [the code for git-ssb](http://git-ssb.celehner.com/%40f%2F6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU%3D.ed25519). You made your first commit to the repo in February 2016. What brought you to secure scuttlebutt to begin with? What was the impetus for creating git-ssb? Oh, and before we go to deep into the code, can you tell readers how we met in the first place?
11 +
12 +**cel** I had a dream a day ago that you were making spaces, places where people could go. Maybe these interviews are like places...
13 +
14 +how we met
15 +
16 +We met in person in NYC, April 2016, at a coffee shop in NYC with @ev and @myf, where we had decided to have a meetup since we were all in the city. I had been staying at my parents' house a few hours east on Long Island, but was planning to come through the city the next day to leave for my visit to Acorn Community. I think @ev proposed we meet up, and I proposed the time and place, after asking my dad (who knows the city well) what a good place would be. So we had all been interacting on SSB before then. However, I knew of your writings and work online since before SSB. It might have been on socialno.de, the social network site on cjdns/Hyperboria, where I first encountered your identity. I read your website and joined your email list in 2013, and was one of the members of your audience. I was inspired by your writings to get the backpack you recommended and read _Voluntary Simplicity_. I remember when you invited people on the list to message you to say hello, but I didn't do it.
17 +
18 +**gb** What brought you to secure scuttlebutt to begin with?
19 +
20 +**cel** A good question, which reminds me of how @mix a while ago invited me and others to introduce ourselves. If I had done that, I would refer to it here. It is sometimes hard for me to motivate myself to do writing.
21 +
22 +I loosely followed the evolution of secure-scuttlebutt from original/insecure scuttlebutt, and this relates to my interests going back a bit further. I wanted a platform for making web apps for peer-to-peer collaboration and communication. I wanted to make fun and useful things.
23 +
24 +When Google Wave was in its heyday, I learned how to make real-time collaborative web apps ("gadgets") that could be embedded in threaded, editable conversations ("waves"). The most popular one I made was for free-form card games. You could move cards around in a space, flip them, shuffle them, deal them, etc., and see other players doing the same, in real-time. I later re-implemented some of it on (original) scuttlebutt, but without the surrounding social media application it wasn't as interesting. I also learned about CouchDB at some point, which allows for making standalone collaborative web apps. For my senior project in high school, I made a couchapp for collaborative maze drawing. You could go to this website and move through a big maze, and when you get out of it, you get to add on with your own drawing. In both this and the Cards gadget, I had to handle things which I later learned the theory behind, as Commutative/Conflict-free Replicatable Data Stuctures (CRDTs). This is important now for making apps on a peer-to-peer database like secure-scuttlebutt.
25 +
26 +So I was aware of scuttlebutt, a thing for making real-time peer-to-peer things. I saw some of the other cool stuff [@dominic](/dt-interview) was doing, and followed him on github. At some point I followed @paul as well. In October 2014, I saw that they were collaborating to build a decentralized social network application, phoenix, and infrastructure/database, secure-scuttlebutt. I thought this looked liked the most promising decentralized social network that I had seen, and so I gave it a try.
27 +
28 +It was very nice. I made some minor pull requests. @paul was adding a plugin system, and I made a plugin for playing tic-tac-toe (for boards of arbitrary size, of course). Then the plugin system was removed, and I lost interest. Some few months later, I saw the app had been relaunched as Patchwork, and the database re-keyed. I joined again in October 2015, and haven't left yet. I made some more pull requests and was invited to join the Secure Scuttlebutt Consortium as a Contributor. Some months later I joined as a full member.
29 +
30 +The core of the work was to make a "git remote helper" that would implement fetching and pushing to git repos in terms of querying and publishing messages on SSB. git makes it easy to add new remote helpers for new protocols. I "surveyed the literature" and found implementations for git remote helpers for CouchDB, IPFS, Mercurial, and Dropbox backends. These worked in different ways, and none were written in JavaScript, SSB's native language. I wanted to have access to the raw git objects in order to map cleanly between git data structures and SSB data structures, have flexibility, and make an efficient implementation. The usual ways of making a git remote helper didn't allow for that, so I decided to implement the remote helper in the most difficult way.
31 +
32 +I ended up implementing a bunch of stuff that usually only git itself has to do, but I tried to make it abstract and reusable: this paid off when another project, Mango, was able to make use of this work for another git remote helper, based on Ethereum.
33 +
34 +**gb** How'd you get started coding?
35 +
36 +I had access to a computer before most of my peers. My parents had a Macintosh Plus which they used for their business as artists. There was no way to do programming on it, but I liked drawing things in MacPaint. When I was about 5, this computer was 8 years old, and my parents got an iMac G3. (Interestingly, these computers were so far apart in technology development that we had no way to transfer data between them, until years later when I became interested in retrieving and archiving my old files.) On the iMac I discovered AppleScript.
37 +
38 +I learned how to create "dialog boxes" that would say whatever I wanted them to, with buttons that I could set. I made scripts to move file icons around in windows. Around this time my family got internet through AOL, and my parents decided to make a website for their business.
39 +
40 +After rejecting an overpriced quote from a web design agency at the height of the dot-com bubble, they started making the site themselves using a WYSIWYG website maker, Adobe PageMill. I got my own section of the website, in a subdirectory. I still remember the feeling of excitement and possibility when I saw how I could add my own form elements and stuff to the pages. I put a bunch of menus and radio buttons and checkboxes (and cat pictures) on my home page just because I liked that I could do that. I was about 7 or 8 at this time.
41 +
42 +[Early website](https://web.archive.org/web/20010202203500/http://deliareisscollection.com/Charlies.home.page.html).
43 +
44 +**gb** What sparked your interest in programming?
45 +
46 +**cel** Along with the AppleScript, I learned a little JavaScript, by copy-pasting code snippets from javascript.com. Usually I was not able to modify them in much of a useful way because they would break with cryptic error messages, and there were these weird cross-browser incompatibilities that made things even more confusing. The best thing I had was a cat picture (which I drew in AppleWorks) that would follow the cursor as you moved it. I did not find out about server-side scripting for a while, and was confused about how websites had dynamic content. I wanted to add a search engine page, and be able to let people create accounts and log in with them, like the big websites could. I did what I now call cargo-cult programming where I tried to put a form on the page just like a real search engine had, hoping that somehow it would be able to spit out search results. Eventually I learned about CGI scripts, found some books about Perl, and made a few server-side scripts. Later I found PHP, and started doing things with that.
47 +
48 +So, from a young age I was able to occupy myself with puzzles and pretend systems and figuring out how things worked, and that tendency found expression through computing. My parents gave me free reign on the computer as they realized I was teaching myself things.
49 +
50 +**gb** Do you have a git repo you can link to of your initial code attempts?
51 +
52 +**cel** My most salient initial code attempts were probably in AppleScript, figuring out how "display dialog" worked. I'll see if I can fire up an emulator and pick out some of those. Some of my PHP sites from around 2006-2008 I [put into git recently](git://celehner.com/thequotesite) - it is almost comical to see how unreadable the code style is.
53 +
54 +**gb** What are your current programming challenges?
55 +
56 +**cel** There are few long-standing issues with git-ssb that I have yet to tackle. I don't think I have mastered test-driven development. Doing technical writing - creating design documents, or documentation that is more than just a list of schemas and APIs, is something I could work on. The list of things I want to make grows faster than I can make them. Sometimes I spend too much time programming, thinking about programming, or doing stuff on a computer that I have a hard time falling asleep. I also haven't completely figured out how to reconcile working on the software projects that I think are valuable, with "making a living".
57 +
58 +**gb** Can you talk about pull-streams?
59 +
60 +**cel** I think pull-streams are really great. I like that they provide instant two-way backpressure and give you a lot of control over the flow of execution, and are basically simple. At their core there is no complex hidden logic, just an interface, and everything around them builds on that interface. You can implement a pull stream without depending on the pull-stream module, just by writing a function that follows the interface.
61 +
62 +I learned how pull streams worked by reading through the pull-stream-examples documents. It was a little difficult to figure out at first, and even sometimes after not looking at the API for a while I have had to refresh myself on how they work. However, you usually don't have to implement a pull stream from scratch, as there are many higher-level pull-stream modules already made. If you do want to implement a pull-stream - a source, a sink, a through, or a duplex - I would suggest reading pull-stream-examples and studying any pull-stream implementation that does something similar to what you are trying to do. Or ask on SSB for help.
63 +
64 +---
65 +
66 +Thanks for reading the @cel interview about git-ssb. You can comment on this interview on [sbot](http://scuttlebot.io). Better still, give cel's [code work a spin](https://celehner.com).

Built with git-ssb-web