The Changelog: Software Development, Open Source - Xiki and Reimagining the Shell (Interview)
Episode Date: July 16, 2014Adam and Jerod talk with Craig Muth about his project Xiki, the current Kickstarter he has to raise funds so he can work on it full time, and reimagining the shell....
Transcript
Discussion (0)
welcome back everyone this is the changelog where our members supported blog podcast
and weekly email come with fresh and what's new in open source check out the blog at the
changelog.com our past shows at 5x5.tv slash changel. And you're listening to episode 126.
Jared and I talked to Craig Muth about Ziki, a cool new project that brings the power of shell commands to everyone.
It's a pretty wild and deep conversation we have with Craig, so definitely hang on to your seats.
Today's show is sponsored by DigitalOcean, Codeship, and TopTile.
We'll tell you a bit more about our friends at Codeship and TopTile later on,
but DigitalOcean is simple cloud hosting built for developers.
In just 55 seconds, you can join over 150,000 developers
who deploy daily to DigitalOcean's SSD cloud.
Enjoy the ease of use and speed of an SSD-only cloud.
Create droplets, manage your DNS,
build a new server from a snapshot,
save a ton of time installing Rails, Docker, GitLab, and more
with one-click installs.
You can even scale your infrastructure with their intuitive API.
Sign up today and use the code CHANGELOGJULY or CHANGELOGAUGUST to get a $10 hosting credit
when you sign up.
Head to digitalocean.com to get started.
And now, on to the show.
We're joined today by Craig Muth.
He is, I don't know, Craig, you're doing some crazy stuff.
Some are saying change the way shell works um you're here to talk about this very cool project you have started i guess 10 years ago
zicky which is super powerful for the shell and uh and some pretty cool stuff so we also have
jared santo on the call as well, doing some heavy lifting here.
Right, Jared?
Yo, what's up?
How's it going, guys?
Yes, yeah, I'm here.
Heavy lifting, I don't know what that is, but that's how it goes.
But Craig, welcome to the show, finally.
You're a listener of the show, right?
Yes, big fan.
How many ChangeLog shows have you listened to?
Oh, man, probably about somewhere around 10. Just sort of like spread out
all over the place. You got a favorite
money chance?
Let's see.
I'm a big fan of RethinkDB
so that was a good one. Yeah, that was a good
show. Probably didn't know we were going to
have a quiz section.
I'm a big fan of Avdi's and a huge
fan of pair programming so that was
a pretty good one for me as well. Yes. I think a big fan of Avdi's and a huge fan of pair programming. So that was a pretty good one for me as well.
Yes.
Yeah, I think a lot of people have enjoyed that show as well.
It was a good show.
Cool.
Yeah, totally.
So I guess let's kick off with, I guess, why we're on this call.
You reached out to us a couple days ago because you got a Kickstarter ending.
We'll fast forward to the now present and kind of rewind and play it back.
Cool. But like right now you're dealing with a pretty much what I can tell is a
10 year old project.
That's just now kind of getting some real limelight.
You've been using for a very long time,
but now you also have a Kickstarter going on to kind of help fund it to the
next level.
And this isn't the first time we've had a,
uh,
an open source project on the show.
That's primarily start.
Well,
not primarily,
but started from a Kickstarter.
And so that's where you're at right now. Why don't you give the listeners kind of an intro to who you
are and kind of what Ziki is and what you're doing and maybe even why Kickstarter. Okay, yeah, sure.
I'm a coder first and foremost. I've always kind of loved coding. I grew up in Ohio, kind of started out like most of us, just kind of hacking around and doing things, doing a bunch of coding that I really kind of got excited about.
Went to school, got beaten down a little bit and taught how to do some structure.
My first consulting job, I really bought into the like high structure stuff for everything and kind of had phases back and
forth, but I've always had a kind of a rebellious streak against against high structure, high
abstraction. And I've kind of kind of as my cat in the background, she says hi. So I've kind of
always had this rebellious streak and I've kind of I feel like over the last 10 years, I've kind of always had this rebellious streak, and I feel like over the last 10 years,
I've kind of watched people kind of also gain a rebellious streak.
Like, for example, you used to not really be able to just have a hash
that wasn't acceptable and pass around the values of a form field.
Now everyone does it.
There used to be no such thing as JSON.
You had to have objects and structure for everything.
Now everyone will put something into JSON.
Wikis are becoming a big thing.
And I sort of had all these ideas that I kind of suppressed and squashed and just used on my own.
It's actually more like 13 or 14 years from the beginning, but it started out pretty rough and it didn't even have have a name in the beginning it's just a bunch of collections of uh of elisp uh stuff basically where i could expand stuff in the shell and run
expand file paths in the shell navigate files and then run shell commands like in a text buffer
um and i just i just had a few like moments where I realized like, wow, you actually can
do these very flexible things, but have them be in a pretty nice structure. Sort of like the first
time I saw a wiki, it blew me away. I kind of thought, wow, you can actually have that just
these big text files where you, uh, put free form texts in with headings. And then that's,
you know, just a flat namespace, uh, you know,
where you've got like, uh, everything dumped in, you've got a project page next to a page of
contacts next to everything else. And like, wow, that simple thing can like be a better solution
than like a big, massive, uh, file, you know, uh, shared directory of, of, of stuff for your,
for your company, or, you know, it can
be, can be better than SharePoint. So yeah, I've kind of like held onto this Ziki idea for a long
time and I've kind of come to believe it's kind of a pretty big missing piece in the landscape
of, um, of tech. And, um, I, uh, so I was, I was working for banks and insurance companies in Ohio, eventually kind of realized I needed to get out.
And I moved out to Silicon Valley, to San Francisco, decided I was going to work on my my startup Memorize.com, which I did and had interns and part-time employees and kind of probably should be focusing on that now,
but instead decided to take a big risk and work on this crazy open source thing,
full-time Ziki.
And the Kickstarter, I think now is the time to bring it to the world.
If you look at my GitHub page, you'll see a lot of issues of people saying like,
hey, I really liked this,
but had a hard time installing it. Um, and that's sort of because I've been, I've been neglecting
people. Um, I've, I've basically wanted to make it for myself. I use it for everything for
development and notes and everything. And, um, I've kind of intentionally let it, let the installer
be crappy for a while. Cause I almost didn't want
people to use it. Cause I had all these features. I took a way to not let them use it as a key
feature suppressed. Yeah. I'm not, I'm not super proud of that, but I wasn't really suppressing
features. It was just, I wasn't improving the installer cause I would spend time on it and it
would just take a lot of time. Uh, but I had these, this like list of three really big things I wanted to do. And I
just recently I've kind of finished them up. So now I'm to the point where I'm like, all right,
it's ready for the world. And a Kickstarter seemed like a good way to reach out. So you have a really
solid video on the Kickstarter page, but for those listening, can you give kind of the, the
elevator pitch for Ziki, um, what it does and how it's different than what we currently have? Sure. There are a lot of ways of describing Ziki. The simplest way is it's like a command line,
but it's a better way of running shell commands. It's not meant to replace the command line,
it's meant to augment it. So for example, if you do an LS, instead of then having to do a CD to
the fourth directory that you see on the screen, CD to like, you know, the fourth directory
that you see on the screen and Ziki, you can just move your cursor down to that fourth directory and
then control enter to expand. So you can navigate directories like, um, kind of like a GUI app. Um,
and then when you run shell commands, you can, uh, you can type a prompt on any line and basically a
big text area by just
typing a dollar sign rather than being restricted to the uh you know the single prompt at the bottom
as is the case with traditional shell consoles and then anytime you run a command you can
immediately type to incrementally filter down the output and then with many commands you can
move your cursor down to the output of, like, say, Git.
If you type Git and you move your cursor down to log and control enter, it'll expand that and run the Git log command for you.
And if you then move it down to a commit and expand that, it'll go one level deeper and show you, you know, your commit message and all the files.
And then you can drill in and interact with the output as though it was like a GUI tree.
So it's very free form, just like a wiki. Yeah. Very free form. You can edit anything.
So in practice, I suppose, um, how many users has it had? I know you have on your video,
a couple of guys who said
I've been using it for seven years. I'm sure that's not in the current form, but in this,
in the, in the one that you show in the video where it's free form and you can click here and
you can drill down in trees and stuff. How many people have been using that or how long have you
been using that in practice and how does it feel as opposed to what we currently do?
The, uh, drilling into the file trees has been there since pretty much the day one.
So that my two friends that have used it for years and years, they use that the file tree drilling into the output of shell commands is relatively new.
So there aren't many people that use it.
And there are a few people here and there out of the net that have got it installed.
It's hard for me to estimate.
It's relatively low number because the install is kind of not great uh as far as how it
how it feels um i don't know like some people it's hard to say i think it's an individual experience
like some people just really really get it and they're like whoa i can see how this these you
know two or three things would be an improvement i can filter down i can drill in i can copy and paste a command and run it again and still have the old outputs and i can delete
the lines and the output that i i want because like you said that everything's free form you
can edit everything and some people just say like well wait a minute why wouldn't i just use my shell
to me it feels just just sort of natural and like an like obvious improvements for you know for some
cases not all it's not meant like it's a different place the shell there's some things the shell is like really
great at like asynchronous stuff it kind of feels like not exactly like this but it kind of feels
like um like what is it like like kind of an irb session where you can kind of jump into what's the
other kind of really awesome irb j Jared, the one that's out recently?
Pry.
Pry.
What is it called again?
Pry.
Pry.
Yeah, Pry, that's what it is.
Yeah, I actually did a pairing session with Conrad Irwin,
one of the Pry guys.
Yeah, Pry is awesome.
Yeah, it seems a little bit like,
I mean, obviously that's, you know, Ruby,
but this is kind of everything.
It seems a little like what that
provides, but on a grander scale for the entire shell.
Yeah, it's, um, it's the little different, uh, like basically in Ziki, everything is just happens
from a text file. Uh, so, you know, when the, when you run a command, the output is just inserted as
text into your text file, and then you can save it.
Pry is kind of more along the lines of like, you know, a REPL and has some other cool integration points.
But yeah, when I got together with Conrad Irwin several months ago, we had some really cool ideas for kind of the two complementing each other.
Like making a Ziki interface, a Ziki command that could call the pride features
and sort of drill in and like CDLS into the functions and stuff. I want to get back to that
at some point because I think that'd be really awesome. I was going to say, I think interactions
are really, it seems like from your Kickstarter, that's one of the main focuses of your development
roadmap is to get it integrated into Vim, into Emacs, into Sublime Text and so on.
Right now, is it kind of in its own world and it's not really integrated into the environment?
Well, right now it supports Aquamax and Emacs.
Okay.
Those two text editors.
Aquamax is basically a very user-friendly version of Emacs where you can Command-C, Command-V.
You can use the mouse to select text and you can type to
replace you know it's very much like a mac native text editor uh so that's the the editor i recommend
people to use they can you know if they don't like emacs they don't have to really know it's emacs
they can use the menus and stuff and they can use you know command s to save etc so it runs in that
as sort of the default and then it also runs in like base uh uh emacs and
terminal emacs and yeah there's tentative vim support but it's very very weak there's a
tentative sublime support but it needs to be improved which is what the kickstarter is
half of what the kickstarter is about um and there's this brand new xsh where you can run it
right from the in the shell console.
It's not released yet.
That's I'm going to do first.
And that'll let people just type XSH space, you know, gets on the command line and they
don't even have to worry about setting anything up.
It'll just pop up and I'll have, uh, stuff right there on the screen saying, Hey, type
control Q to quit and type control E to expand.
So that's probably going to be the default,
the XSH right from the show. I think it's pretty good for learning people too.
Like, you know, just getting started,
you get all those, all the feedback basically
from the CLI that's already present for Git.
And, you know, do you want to do a push
or do you want to do a pull?
Those kinds of things are like already accessible
and it's also keyboard navigatable. So it's not like you have to move your mouse around but though you
could right you can double click on things if you want as well you're right so you said xsh um
this piece of it does it pop its own window when you do that because i know it's very interactive
clickable um or can it take over your current terminal session or does it pop its own UI?
It takes over the current terminal session.
What's actually happening behind the scenes
is it's launching Emacs.
Okay.
But I'm overriding all the keyboard shortcuts,
including escape.
I'll make escape actually cancel out
so it won't confuse people.
So as far as most people are concerned,
they don't even have to know what it is.
I'll have all the key shortcuts on the screen.'re all they're all remapped not all of them you can
use the the base uh emacs shortcuts if you know them but yeah it's just it's just actually running
within emacs and just customizing the heck out of it and it's doing it in a way that's not
interfering with uh your normal emacs config if you have it, which is a big challenge that I've had.
That makes a lot of sense.
I was wondering how you were accomplishing that.
What about operating system support?
Is this Linux and Mac at the moment?
Yeah, Linux and Mac.
There's a pull request for Windows support out there
that might go a little bit of the way toward Windows support.
I'd like to do Windows support.
Now that I've got all this publicity from the Kickstarter,
I think if it passes, I'll be able to reach out to people afterward and say like,
hey, people that know how to do this process communication in Windows,
like pair with me and help me on it.
But I'm not promising Windows support as part of the Kickstarter,
even though a lot of people want me to just because I don't, you know, I've already kind of promised a lot. But I do want to on it. But I'm not promising Windows support as part of the Kickstarter, even though a lot of people want me to, just because I don't, you know,
I've already kind of promised a lot.
But I do want to do it.
Well, Jerry, do you think it makes sense
to dive down Kickstarter?
I was thinking about going into the past a bit
to try to figure out where this,
what was the problem you kind of tackled?
Where did this come from?
What's the history?
It's like 10 years old,
so it's not like it's a year old.
It's pretty dated in terms of its age.
Not so much good.
And I'm interested in, I guess, a little bit of the technical implementation.
I'm sure for a 10-plus year project, it's probably gone through different forms.
I know it seems to be written in Ruby at the moment, but perhaps not always.
So I'm definitely interested in the history of how you developed it.
Cool. Yeah. Originally, it an e-lisp. Right. Um, I originally just absolutely hated and despised Emacs because I started from like a Mac GUI, uh, you know, actually I started before
that. That's not true. I did. My first experience was Apple IIe and basic, uh, when I was really
young. And then, um, then I got a Mac and just loved it, loved it,
loved it, went to college and they're like, here, use Emacs. And I was like, where's, you know,
where are the menu items? This is horrible. Uh, and I started using Pico instead, which is where
I got the inspiration for seeing the keyboard shortcuts on the screen. I was just talking about,
but then I, I kind of fell in love with, with Em and loved what it did and like the just the free form aspects of it.
But I always hated the default keyboard shortcuts and still kind of do.
And I use it for all kinds of things.
And it seemed like a one big missing piece was cool file navigation.
And I always want to be able to have kind of extreme flexibility.
And the file navigation that was kind of ideal for me was being able to control,
edit anything at any time. So, you know, if I have a directory of, say, you know, 20 models
and I only care about two of them and one starts with a A and one starts with a Z,
I don't want to scroll back and forth between the two.
I want to delete the ones in between just temporarily,
you know, hide them from the view.
So I made basically a file browsing,
you know, format, which is just, you know,
the most obvious thing you can do,
which is like you basically type a path with slashes.
And then if you want to make it multi-line you can uh you indent two spaces so you know like
slash project slash and then line break space space and then my project basically taking that
and making that navigable via keyboard shortcuts and then later the mouse um so it started out as elisp i
made that's an elisp i made the uh running shell commands which is pretty similar so you type a
dollar sign space and like ls and it inserts the result indented two spaces underneath
implemented the filtering down and um tons of keyboard shortcuts and just kept changing things over and over and over
and eventually discovered,
well, I became a Ruby programmer in the meantime
and just loved Ruby
and DHH kind of just rocked everyone's world with Rails
and had this beautiful combination
of sort of flexibility
and yet structure where it was needed in rails and i
just totally bought into it became a rails programmer loved ruby because i liked the
oh stuff i could do in java but love the i i started out with pearl and love the flexibility
of pearl and ruby was like a perfect marriage of the two so i found this uh library called el for
r like elisp for rub Ruby written by one of the
core Ruby guys, this guy named, uh, Rubikitch. And, uh, that let you program inside of Emacs,
but using Ruby instead of ELISP. So I ported to that and my product, I ported, uh, you know,
my big code base to that, uh, named it Ziki around that time. Uh, my productivity shot
up about like two X or three X. Um, I do like lists, but for this particular, uh, application,
Ruby was just a great fit. A lot of text processing, et cetera, processing. Um, yeah,
it's been, it's been Ruby for maybe seven or no more like eight or nine years now i think so i know one of the major drawbacks that
you mentioned for people getting started with it has been the setup slash install process
some of that the blame on on you know ruby as a as a choice i know uh recently we had on uh
jeremy signs uh who you know has a post post where he was distributing command line tools in Ruby
and switched to Go because of the universal binary that you can just drop in.
Is Ruby and the ecosystem some of the reason why the setup process has been not streamlined yet?
I suppose.
Ruby is probably, I mean, at this point, the Ruby landscape is pretty good
because Ruby 2.0 is installed by default on the Mac on Linux people. You just tell them to install
something and they say, okay, right on the Mac. If you're like, say, install a different version
of Ruby, it's a big challenge. But, uh, with Mavericks, Ruby 2.0 is installed by default.
And I can just use that. It has Emacs installed by default. I can just use that it has emacs and salt by default i can just use that you know behind the scenes um i should i should mention that uh beginning a couple years ago i
started supporting other languages so even though ziki is implemented in ruby you can make ziki
commands uh in python javascript coffee script uh several different languages. Nice. Talk about these commands.
Yeah. The coolest part of Ziki is that you can make your own commands.
Ziki is
very Wiki-inspired,
which you're probably not surprised because
it's called Ziki, which is
Wiki with an X
instead of a W.
First, I was calling that
expandable Wiki, is kind of what Ziki was short for.
First I called it executable wiki.
Now I'm leaning toward expand,
expanding wiki actually for X,
I,
K,
I.
So it's very,
it's very wiki inspired.
You can type the name of a command and if it doesn't exist,
it'll pop up and say,
Hey,
this command doesn't exist.
Do you want to create it using a text file or a ruby script or a python script or a directory structure where the
directories and files are your menu items or a class where it'll just take the methods in your
class and use them as the menu items and then when you type the name of that command, let's say,
uh, like Adam is a command we'll, uh, you know, then you'll be able to just type
Adam on any blank line and double click and it will run your file. Um, and basically as time
goes on, I can, I've, I've kind of had more and more ideas about, Hey, here's this obvious way
of making a command and they kind of get simpler and simpler. And to me, I think for, uh, what
Ziki tried to does, it tries to like make, uh, make it so that all the simplest possible ways
of making a little command with like a UI of like kind of menu items, uh, exists. Uh, so ziki is like you know one use case is better shell console the other use
case is quickest way to make a ui on top of code like a working ui so you can just take the command
that you've written it's got its own little ui and you can just pass it to a friend and they can
they can run it exactly is there a distribution mechanism or is it like you know email me this text file or
you know whatever yeah there's there's no uh central repository yet aside from um basically
my git repository the uh you know you know the homebrew model of if you have a or uh
you know a new package you just give it to to the main guy and he'll check it in for you i mean
that's what i've got now basically but down but down the road, yeah. Having something sort of
like Ruby gems or a NPM is probably going to be a fit at some point. So how many built-in commands
are there just off the top of your head? Uh, several hundred, uh, I'd say roughly like 400
or something. Um, probably more, but some of them are kind of silly and useless but uh over over a
couple hundred pretty pretty useful ones the uh i should say at kind of the intro to the command
uh discussion that the hello world for making a command is just make a text file say named hello
dot txt dot txt and you put uh world in the file and then you just drag that into a special directory and then that immediately is
a command and that direct by default that directory is just the commands directory in your home
directory or any other directory that you designate as being in your your ziki path and you said
earlier ruby python several languages just put those languages in there they run exactly just
drop it in and then and yeah so where do you see the power of something like that coming up? Like give us some
examples of, to expand on, you know, we've got some people listening to the show and they're
thinking, okay, well, how can I be practical? Maybe they've already got some ideas, but
can you give us some things and some ways that you've used that specific feature set?
Yeah, sure. Um, since it's so easy to make commands, you know, uh, I've, I've made a ton a ton of them that like normally would have taken me like way longer. I've written Eclipse plugins and it's that's like, you know, a really big, you know, process to plan some texts and it displays it to the user. And then you can like fix it later, make it look more organized later. Um, a good example is just actually last
night, my friend Jeremy and I, uh, got together and paired to make a Heroku menu. And we did it
in like a half an hour. It's just this flat file with kind of like, if else, if else, and, uh,
you type, uh, Heroku on the command line, with ziki shell which is xsh it's the the
new kind of easy way of interacting with ziki you can just type xsh space dash heroku and then
it shows you uh heroku and then underneath that it lists out all your apps and you can move the
cursor down and drill into each app.
And then it has items for each app of things that you want to do, kind of like you would have in a GUI.
So there's a config option underneath your Heroku app.
You can expand that. It shows you the config parameters and then you can edit and then save those back by control E.
The same way you expand and collapse. You can, there's a log item.
You can expand the log and type to filter down.
You can, there's a browse option.
I actually just posted a video on the Kickstarter page and I tweeted it to
at Ziki on Twitter. If you want to check it out.
Is that an update or something like that? So let's get
Hiroku back.
Let's get Hiroku to back
Ziki. Yes, my new strategy.
That's a nice way to get their support, right?
Yeah, I hope it works.
That's my plan for getting
50% of the Kickstarter goal met.
We'll put that link in the show notes then.
Awesome. Yeah, a ton of people
retweeted that this morning. It was awesome.
People saying like, hey, Heroku, check this out.
Maybe you should back Ziki.
Yeah, I'm going to reach out to companies,
probably a bunch of different ones,
and tell them like, hey, there's this $10,000 reward
that will get your logo on ziki.org
and xsh.org for a year.
And the eternal gratitude of the thousands of developers that
are excited about ziki let's pause the show for just a minute give a shout out to our sponsor
code ship code ship is a hosted continuous deployment service that just works you can
easily set up continuous integration for your application in just a few steps and automatically
deploy all your code when your tests pass. CodeShip has great support for lots of languages, test frameworks, as well as notification
services. They easily integrate with GitHub or Bitbucket and can deploy to cloud services like
Heroku, AWS, Nojitsu, Google App Engine, or even your own servers. Setup takes only three minutes.
Get started today with their free plan and make sure you use the code, the changelogpodcast.
That's the changelogpodcast is the code to get a 20% discount for three months on any plan you choose.
Head to codeship.io and tell them the changelog sent you.
I noticed in the screenshot, at least of the opening video that you were talking about,
it's the Ziki shell command, so XSH.
It looks like a space and then a dash, Heroku.
Yes, yes.
Is that what you said earlier, or did I miss that?
I think I said that.
Okay, because I thought you said...
Because I know you can kind of pre-pin the Ziki shell in front of something like LS and something, and you can get that.
So this is a little different.
This is like a flag.
Yeah, if you pass a flag, xsh space dash foo, that's a Ziki command.
If you do xsh space foo, it'll treat that as a shell command.
Okay, gotcha, gotcha gotcha that's why i was
trying to connect the dots out then yeah and they're kind of similar you can you can make
both of them have um interaction like that's that's a new ziki feature if you type xsh space
uh like who am i uh and then enter that'll open up who am i and it'll run it it'll show you the
output indentitude spaces underneath and if you double click on open up who am I and it'll run it. It'll show you the output indentitude spaces underneath. And if you double click on the, or if in a shell console, it would be control E
to expand the output. Uh, then Ziki will pop up and say like, Hey, it looks like you're trying
to interact with the output of this command. Um, there isn't a wrapper for it yet. Do you want to
create one? And then you can, it'll walk you through giving you a little template of just making a script in any language you want and then basically you make that output look at
what was uh expanded and usually you make it like call you know shell out to the command and do
something that's relevant so you can make wrappers for commands. So you can interact with, you know, the outputs of, you can just go in and expand the output of, another good example is like
PS. If you want to kill processes, I've got a wrapper built in where you can type XSH space PS,
and then you can go move your cursor down to one of the lines of the output and then control E to
expand that. And it'll kill the process for you.
So interacting with the output of commands, kind of like it's a GUI,
you know, like you've got the, you've got stuff on the screen.
Sometimes you don't want to like type another command underneath that,
you know, has a retyping some of the output, like it's right there.
Why not just move your cursor down and say, Hey,
do the relevant thing to to this line of output.
That's awesome. I've spent years. I probably had this ingrained in my, in my fingers now,
how to type, you know, P S A U X, pipe it into grep for a specific word and then grab the PID
and kill the PID. And it's like a two-step process that I've just done so many times.
I'm sure there's ways even inside just bash to make that more simple. But being able to interact like a GUI seems like it would really be beneficial to me in that specific circumstance.
This might be about the same time the listeners are saying things like, is this real life?
My brain just exploded.
My mind is blown.
Holy mother of God.
My life just changed forever.
These are quotes on your Kickstarter, but these are things that I'm sure people are saying
because when I saw that, I was like, that's insane to be able to do that.
And like you said, Jared, it's kind of like ingraining your brain
to type certain commands and certain flags to things
and grep for stuff when you don't really have to do that now.
You just made the lives of so many so much easier.
Yeah, thanks.
Let's not mention the Hacker News comments
that are like, you are an idiot.
I hate you.
That's just life, right?
That's what happens.
Yeah, I wanted to kind of talk about
what is arguably a marketing campaign
that you've had going
because you've gotten, Zicky, on TechCrunch,
number one on Hacker
News, I think Linux Journal, IT World. These are major outlets and, you know, it's a shell console,
right? I mean, I'm not trying to belittle it, but at the end of the day, like TechCrunch doesn't
usually cover these things. How did you get so much exposure for a project that you've had put
so much time into kind of behind the scenes and now all of a sudden explosion?
It's hard to say.
I think it's probably the videos.
I put a ton of time into into the videos and just implementing a bunch of features.
Like I think the XSH thing recently kind of pushed me over the top and I was in the middle of the Kickstarter.
I had all my friends advising me like, hey, spend your time, like, you know, sending emails to people
and reaching out to the media. And I was like, no, I'm just going to hunker down. I've got like,
you know, uh, 20 days left, but I'm going to spend five days implementing this XSH thing.
Cause I think I can make a video and people will just appreciate the, like, you know,
seeing that in action. So just doing videos of showing a lot of cool stuff happening and getting
rid of the pauses and
getting to the point, making yourself get to the point really quickly. Um, yeah, it's been,
it's been really cool. Um, the, the, uh, linux.com article and the tech coach article were like
almost more positive than I would have ever, you know, dared to dream about. Like they, you know,
said like, uh, particularly,
uh, Carlos Schroeder, who's like just an amazing person. She, she wrote the, um,
O'Reilly's Linux cookbook and the Linux networking cookbook. Um, she's like, you know, kind of one of
my idols now actually. And, uh, having her say like Ziki is the next big thing in free and open
source software and it's revolutionary.
And she doesn't use the word lightly. That's just blows my mind. And I'm so happy with that. I did
like reach out to a few people, but I guess it kind of snowballed on the downside of it. I've
got like, you know, the, the big outlets, like you said, uh, tech crunch in particular and giving me
amazing coverage. And I'm still just about at half of my goal.
So it's sort of bittersweet.
Like, where do I go from here, you know?
This is something that Tim Kaz will cover, Jared,
not long ago when we talked to him.
You know, similar, I mean,
he'd done two rounds of, you know, fundraising.
First one was a Kickstarter,
second one was a bounty source.
And, you know, he was building JSKit at the time to dovetail into T-Edit.
And his story was a bit more successful, and I think it was only because Mozilla stepped in and gave like $30,000 to kind of complete the goal or something like that.
But we're seeing open source look for funding more often, and in your case, it's a little different, Craig, because you've got a startup you're doing.
You took a pause from that to work on something that's open source and then also kickstart it.
So it's slightly different, but it's kind of a bummer that you're not getting, I guess, more funding traction on your Kickstarter.
Just for the record, my startup is not making any money.
So I'm not asking for like a bonus here.
Like if this passes,
I'll be able to spend a bunch of time on Ziki off savings.
Okay.
Must be a lot of savings then.
A lot of money doing consulting.
Especially if you're in Silicon Valley, right?
Yeah, well, I've got roommates here.
So we keep the rent down.
But yeah, my new plan is to reach out to companies i think
it's i think it's actually a really big opportunity companies blow you know just thousands on like
sponsoring conferences they don't blow it it's it's you know it's good right right it's a good
way to spend it but they you know they they spend money on um recruiting and advertising and
thousands of thousands and like zicky's sort of like gotten all this publicity and it's just
sitting out there waiting for someone to kind of like a company to rescue it. And,
you know, uh,
they would have tons of kind of like really cutting edge tech people that are
like really into just the very cutting edge. Those are like the fans of Ziki.
You know, they would, they would have those people saying like, wow,
thank you. Uh, you know,
engine yard or thank you Heroku or Mozilla for for saving this unfortunately i can't
have the uh donation any bigger on kickstarter than 10 000 so i'm gonna need to like get maybe
three or four companies to uh send you know donate 10 000 which i think isn't much and you know in
return i will i will make such a big deal out of you know tweeting and emailing all the Kickstarter backers saying like, hey, this company saved Ziki on the screencast showing.
You can even buy the dot com.
You can be like such and such company saved Ziki dot com and put up like a landing page.
I will tweet that everywhere.
Yeah, right.
That'd be crazy.
Another thing, I mean, you've got your get up too.
We had chat on the show not long ago talking about get up.
And it's kind of a bummer. you got $1 per week coming to you.
Listen, everybody, you got $1 a week.
This guy's been building this open source project for 10 years.
That's like a cent.
It's not even cool.
That's kind of what I get for having a crappy install.
If all these people are excited about it and they try to install it,
and they're like, well, five different errors.
So maybe if you fix the install process, you get more GitHub?
Hopefully.
It used to be higher.
It used to be more than a dollar.
But I actually found out that most of that was coming from my mom.
Sad, true story.
Awesome.
So on the Kickstarter page, you talk about Ziki's future.
I know we kind of covered a bit of it, but can you kind of paint the picture of what's the trajectory?
Where are you going with it?
And as best as you can, fill in the gaps for us.
Cool. Yeah.
The future of Ziki is it's morphing into a language.
It's basically just a kind of wiki-ish freeform way of like making a
user interface. So, you know, if you take a step back and look at what user interface is, let's
say you have like a Foo menu in your, you know, your GUI menu bar and you click it and then you
see bar. What's the difference between that and seeing a foo icon
on your desktop it pops up and it shows you bar uh typing foo and your shell command and it shows
you bar as the outputs you go to url you know foo.com and you see bar up here there's there's
something fundamental there that can be abstracted out and to me the simplest way of doing that and
like you know a lot of other languages like Python and CoffeeScript are using this to space indenting.
It's just this sort of natural thing. So why not have just a dead simple kind of language slash
syntax of representing, you know, a UI where you just type of word in free form text and then you double click on it or do a keyboard shortcut
and then you see the output.
And of course, from there,
if that's indented two spaces underneath,
you could have multiple lines of output, you know,
and each one of those lines of output
themselves can be an option and you can expand those
and you indent that two spaces more underneath,
so four spaces.
And then at that point, basically,
you've got like a tree that looks just like any, you know, tree that you see in like a left nav of, you know, standard application.
But if you keep things simple and you keep things boiled down as a text format, you can kind of represent just about any user interface as just an indented textual tree.
And, you know, I think it's just absolutely insane to me that there isn't a simple format
where you can define an interface. It's like we'll make little animals, you know, program.
And underneath it, you've got like mammals and lizards and underneath mammals, you've got whatever dogs and cats. So you want to make that structure and deploy it as a, you know,
navigable websites as a shell command, as a mobile app where, you know, you it's a mobile app called
animals and then you double click it and it shows you two options, mammals and lizards or whatever
I said. And then, you know, we've got all these devices coming out like all these.
I've got a Pebble. I love it.
There are like 10 smartwatches coming out and they all have their own separate APIs.
And I think the world is just totally ripe for having this dead simple language
where you can just type something out, basically the navigation of a program, and then deploy that to all these devices.
Of course, if you want to make a Pebble app that does something useful or an iPhone app,
you'll probably at some point have to call a native method.
But I say make the structure first, make that deploy everywhere so you can navigate around.
And then if you have to do something, whatever, iPhone, then, you know, on top of this universal structure of your navigation, you can, you know, conditionally say like, all right, they clicked on phone call.
If platform is iPhone, then make phone call. And, you know, if you want to make it look pretty, then you can do all kinds of stuff that, you know, we already have tools like this to like style the output to move things around and not make it just a nested structure.
But out of the box with Ziki, you can just type, you know, something like animals and indent mammals and lizards underneath.
And then you can navigate that and use it in the shell command.
You can go to the Ziki web server that's built
into ziki and you can see a mobile interface so it'll show like a you know like a little mobile
pill button style the menu items so mammals and lizards and you can click on mammals and it will
move over like you know like a slide over like a standard mobile interface. And, um, from your text editor as well, if you have a Ziki plugin for your text editor,
you can type, uh, animals and a double click or control enter, and it will, uh, insert those
underneath. Um, and from there you can do all kinds of things where it's not just this trivial
example. You can add headings and paragraphs. Like I said, Zuki is very wiki
inspired. There are wiki syntaxes for tons of stuff. Like I said, there's a wiki syntax for
running a shell command. It's just dollar sign space. And then the wiki syntax for a heading is
just a angle bracket space. And then the heading syntax for a bullet point is just like a dash
space, you know, with two space indenting.
So you can type those things in the commands as well. And then when you display that in a mobile interface, it can show you it can render the heading as a as a larger font size.
And you can make, you know, actually an app that's like read only that actually has some useful content.
You can make that with zero code and that could deploy to everywhere. Like a cool example, I think, is like if you go to a conference, they could say like, hey, got the conference schedule in this global format.
You can deploy it on your watch. You can deploy it on your cell phone on, you know, and basically any device.
And then even though it's like static content, it's very useful.
And you could navigate around on your on, pebble to see the schedule. And then, you know, of course from there,
having embedded code is going to pop up as a, you know, as a need very quickly,
if you want to do something, you know, more than, than a static, uh, app. So the way I do that is,
is, uh, underneath a menu item, you can item you can there's a wiki syntax for code
embedded underneath a menu item which is this exclamation mark uh space and you can have
multiple lines of a method and uh you know that can call your you know your library that has
your code very well structured out in a way you know you can have your menu items delegate to that and i've got
a bunch of other ways of of having dynamic code like you can have a class that has a kind of a
routing string that'll route back and forth between methods um and uh and different paths
and pass arguments in kind of a sophisticated way but kind of the number one rule in ziki is like
by default the absolute simplest way of doing something should work.
Like if you can do something with a class, you should be able to do it with a script as well when you want to.
If you can do that, you should be able to take a text file and make that be, you know, sort of a command for a program.
My mind is blown.
I'm just thinking like you've got language in there.
You've got a shell augmentation.
It's meant to be kind of going to end with your shell already.
I mean it seems – personally to me, it just seems like it's such an audacious kind of goal to hit.
And the things you're talking about, I wasn't even expecting to go there.
What about you, Jared?
No, not really. I'm wondering now, I mean, 80,000 on this Kickstarter, what is that? Like a
six month runway for a year runway? Maybe you're in San Francisco. So three weeks, what is that?
Um, okay. I mean, I can make it stretch out for, uh, I can make a stretch out for a year. Um,
but, uh, yeah, if it does pass, that's going to be a milestone where it means people care.
What I'll spend my time doing, I mentioned early on when I was talking about how much I like Avdi,
I mentioned I'm a big pair programming fan.
If it passes, I'm just going to reach out and pair with everyone on Ziki.
I've done that.
I've done the, you know, Obdi's pair with me tag.
Right.
And I've it's been a while because I've been like heads down coding by myself, which I kind of actually don't like to do.
But I've made myself do it to get like all these features into Ziki.
Before that, I was reaching out and pairing with tons of people like I paired with a lady in London.
This is a really awesome dude I connected with in Argentina.
And then people, you know, half of them have been remote and half have been people in San
Francisco.
I've met at coffee shops and done like maybe 25 pairing sessions with people.
And they've all just been fantastic.
Like even people that weren't super techie, like they just had so many ideas of stuff
I didn't didn't think of.
And we sat
down and like made a command and, you know, a half an hour that just whatever shelled out to,
uh, you know, scrape some website and listed like the world cup, uh, you know, results,
um, or, you know, done something more sophisticated. So that's what I want to do with my
time. And I think if I have this, you time to just reach out and pair with everyone,
that will be the beginning of something else.
It'll build up a team of people kind of taking it and running with it
and making their own commands.
One thing we talked about recently with Chad Whitaker was talk to your users.
Because when he came on the show, it seemed like he had had this gap
between what he thought GitHub was and I think what the users were using it for,
where you're playing with pairing, that's speaking to your users, right?
I mean, if you want to see the success of Ziki,
you're going to have to get in the trenches and speak with people
and talk to people and get feedback in real time and, and manage the community.
I can't say that your job over the next year is going to be easy.
So for those of you out there listening to the show, it's hopefully it's Tuesday,
um, of next week, which you don't even know what today is, but it doesn't matter.
You got a few days left to back this thing on Kickstarter.
Yeah. I mean,
give or take five days to back this project and show your support for this.
If this is something that's, uh, you know, of use to you, let's see this thing get done.
But yeah, I can't imagine that you've got the next year of your life that's going to be fun, but not easy.
Yeah, I mean, pairing for me makes it easy, actually.
Like, if I can pair with people, like, I know I'm not going to slack.
Like, obviously, I can't slack off. You don't want to slack off if you're pairing with someone.
Um, so I, yeah, I, I'm actually looking forward to it. I think I actually just got done with the
painful part the last like six months of making myself sit by myself. Now I'm like looking forward
to kind of getting out there and having fun again, actually. But yeah, if, if anyone thinks it's
cool, um, check out the video, go to XSH.org.
And you can see kind of like a better way of running shell commands for many use cases, not all right there in the top.
And especially people that work for cool companies that, you know, back open source projects and sponsor conferences.
I think Ziki is like a really kind of actually kind of cheap way of,
uh,
getting a lot of publicity.
Uh,
I think if I can get a few companies to back it can do some amazing things.
And,
um,
yeah,
looking forward to just reaching out and pairing with people again and
having a,
having a great time doing this stuff,
getting people's ideas.
You have to be one of his first pairs,
Jared.
Yeah,
totally.
I'm ready.
You guys should both,
you guys should both pair with me.
I promise it'll be fun.
Everyone's had a great time doing it.
Sign me up.
Sign you up.
How do you get on the list?
Wicked.
Wicked.
Well, with you guys,
you're on the list now.
Anyone else,
just tweet me at,
you know,
Zicky,
X-I-K-I
on Twitter
and just say like,
hey, I want to pair
and we'll pick a time and do it. I'm not looking for like commitment. You know, Ziki X, I, K, I on Twitter and just say like, Hey, I want to pair and we'll, we'll pick a time and do it. I'm not looking for like commitment. We, you know, usually we'll just
pick like an hour and if it goes well, you know, if we both like it, go for two hours and then no
commitment after that. I'm not looking for people that are like trying to rope into contributing to
the project on an ongoing basis. I'm just like, I honestly think just reaching out and pairing
with people. Um, I mean, this is like Avdi's idea and other people's.
I'm late to the game in it.
But I think, you know, just connecting to like you're a dev.
Maybe you're a junior dev.
Maybe you've been out there for a while.
You're like sitting around.
You're like, OK, time for my next project or time to have some like fun and learn from
new stuff.
What better way than just to go tweet, pair with me or just reach out and spend an hour with someone who like knows a project and just have this amazing high energy pairing session where you're just learning stuff and firing up, firing off questions.
Like to me, that's such such a win win for most people.
There are some people that just do really well coding by themselves.
And those people are super valuable. Um,
and, uh, uh, but you know, probably about half the population is, is very motivated by kind of
being social. And for those people, um, I think this is going to be one of the biggest ways that
people just find new projects, find new jobs, um, you know, uh, find team members. They're just
gonna be like, Hey, work with me on this. And they'll work with, you know, three people in, in four or five hours.
And then the people that hit it off, they'll, they'll work a little more and they'll be
like, Hey, we had a great time working on, you know, this little open source thing I
was working on.
Why don't you consult with me on my project?
And then why don't you, you know, work for my company or why don't I work for your company?
Like I, I, um, I think the future of software dev is going to be just so open and embracive and like, uh, um, so social that, uh, I just,
yeah, get excited when I think about it. Let's pause the show for just a minute and give a
shout out to our sponsor TopTile. Now we've been working with TopTile for about a year now,
almost a year now. And we thought it would make sense to circle back and talk to some of our listeners who have applied to TopTow and have been accepted, because
only about 2-3% of the engineers who apply make it past their strict elite engineering
process, and Daniel Lauzon, a long-time listener and fan of the changelog, is now living the
dream, he's an elite engineer at TopTow. And I say living the dream because he's now able to have 100% control
of the types of projects and technologies he's working on,
as well as the rate he wants to charge.
Daniel earns 100% of his income as a TopTile engineer,
and he wanted me to pass on his seal of approval of the TopTile experience.
For those of you out there who are freelancing or would like to test out freelancing,
you've got to check out TopTal.
If you think you have what it takes,
head to toptal.com slash developers.
That's T-O-P-T-A-L dot com slash developers
to get started.
Tell them that ChangeLog sent you.
Speaking of speaking and even being social,
do you have any upcoming,
since you've done the conference track
of talking at RubyConf, Strange Loop, and others,
do you have any upcoming conferences
you'll be at to speak about Ziki
in addition to your next year of coding and pairing?
I've kind of laid off on the conferences
because they take a lot of time.
I'm glad I did those conferences
because all the time I spent on the presentations
helped me with my like, uh,
way of explaining Ziki to people.
And I use a lot of those thoughts, uh, in my Kickstarter stuff. Um,
I'm going to be on Ruby rogues, uh, excited about that. Nice. Nice. Uh,
and I think a couple of weeks here, uh,
but if the Kickstarter passes,
I'll probably try to do the conference thing again and just really reach out
there and start spreading the word. I'll get xsh out there like soon um because it's all of a sudden like really kind of kind of
practical now and i'll get a one-line installer so you can uh you know hopefully like uh apt get
install xsh and then right away you can type you know x, XSH space dash HTML. And then you can just type some HTML, you know, modify the sample it gives you and then control enter.
And then bam, it shows on the browser.
And then you can type XSH space dash CSS to try out some CSS.
You can do bootstrap.
And then just in a couple of keystrokes, you know, have a Bootstrap layout that you can just type.
I've got like a wiki syntax and you can drill into some examples.
You can get a working Bootstrap layout.
Node Rails, you'll be able to type xsh space dash node and then just expand out controller and then modify the controller.
And bam, you've got like, you know, you're trying out things in Node Controller.
Yeah, I think that'll, that'll, that xsh stuff i think will demo particularly well at conferences
so i'll definitely want to do some of those again like i've gotten really good feedback
at conferences but people have have said like hey seems really cool i don't know how it would
fit into my workflow like i'm not going to switch to a new text editor. Um, in my text editor now I've, I kind of like it how it is.
Um, so people haven't, uh, my cat doesn't like it. Um, the cat's a Vim user and won't talk to me.
Um, but, uh, yeah, now that, now that I've got XSH out there, that answer to that objection is
easy. It's like, Oh, here's how you incorporate it. Next time, instead of doing, you know, PS and then kill,
you just do XSH space PS.
Or next time you're doing a git and you forget a command,
you just do a XSH space git.
And then you can drill into the output.
You can also see code.
This is a couple of kind of cool features.
These are a couple of kind of cool features
I haven't mentioned yet.
Slow down.
I'm starting to stutter, getting too excited.
There are a couple of cool features with shell commands where you can look at the history of a command and narrow down and rerun it.
You can also mark commands with particular options as favorites.
And then you can type XSH space dash f git for example and it will show
you your favorites and then you can pick one and run it again nice um and you can also there's
documentation kind of that comes along with it where you'll see like the examples for common
ways of using the git command like uh you know you'll you can drill into examples i think
xsh space dash e space git that'll show the examples that's probably how it'll it'll end up
being and then you can drill into like undo just move your cursor down and expand undo and it'll
say like you know undoing the changes to one file and it'll show you that it's that you know that's
the git checkout command and you can just actually run it right from there and then you know undoing your repository
get reset and then undoing it and wiping out other changes get reset dash dash head so now you can
actually kind of uh drill in to those examples and then run them uh right from where you're you're
looking at the documentation that sounds really powerful for beginners who are trying to learn a specific tool.
Also for even power users who,
I've been using the git command for years,
but there's things in there that I have never come across.
And you can kind of, it amps up the discoverability
when you're navigating an entry structure
than if you're trying to Google around
for how do I do this in git.
Yeah, totally. And to all you command line people that say the command line works great. I totally agree. I love the command. I'm not looking to replace
man, et cetera. Uh, like basically I'm building on top and adding a few new features that work
in some use cases. Uh, I'm not saying they're better across the board, but, but sometimes,
you know, having, having more options is, is kind of, kind of awesome. I'm really saying they're better across the board, but sometimes having more options is kind of awesome.
I'm really looking forward to getting people to contribute to these.
I've added a few of my favorite Git examples on my own, but once I get this out there and get people using it and adding their own menu items underneath the Git examples, I think it's going to turn into something really awesome. I think one feature too,
that you may not have really touched on that I think is kind of like a little
hidden gem is like,
you can even browse databases and you got support from my sequel rethink DB
because you're a fan of it,
couch DB and,
and all the other,
you know,
awesome DBs out there,
but being able to even,
you know,
dive into a database and browse around like that,
that's even kind of neat as well.
And I'm,
I'm assuming just because of what you've said already that you can even run commands
and interact with the output and save back to the database.
Yeah, that'll now be xsh-tables
that will list out your database tables and you can type to narrow down
or move your cursor down and expand a table and it will show you the records.
And then you can type to filter those down and expand a table and it will show you the records and then
you can type to filter those down and then you can just edit in line um and then ctrl e to save
that back to the database yeah that's uh something that in my uh presentations i always get a a good
gasp from the audience at that point i was gonna say i was like that's that's where i fell over i
almost fell out of my seat when I read that part of the...
The DOM editing also
people really like
when I show
expanding out the DOM
and then updating the DOM
and having it reflect
in the browser right away.
Yeah,
that's intense right there.
Jared,
is there anything else
you want to cover
before we go into
our traditional
super awesome questions?
No,
just to say,
you know,
for anybody out there
who wants to see this
in action,
it looks like ziki.org
slash screencasts
has a bunch of stuff up there.
Of course, the Kickstarter page
also has a handful of things.
Yeah, the slash screencast
is a little out of date.
I need to update that.
Yeah, xsh.org
has a really cool,
it's the newest screencast at the top.
And then that has a link
to the Kickstarter,
which has the newest videos.
Cool. Well, even so, I mean, even if they're a little data you can go there and get
excited about where it's been and you can only imagine
where it's going so yeah
don't feel like you can't go and watch them because Jared
you were probably impressed right
yeah I was watching can your shell console
do this which
that first one about three minute video
where you kind of build like what if I could do this
what if I could do this yes What if I could do this?
Yes. I like that one as well.
It can. That was very, uh,
Were you guys like,
were you guys super annoyed by my repeating the what if you could?
No, not exactly. I mean,
I got so hammered for that.
I didn't think so. I mean,
I felt like you were trying to make a point when you make a point,
you repeat yourself.
I've deleted like 10 YouTube comments that were just, what if could what if you could what if you could what if you could what
if you could not place a comment here and go away that's i deserve it i mean i hammer other people's
projects to haters what happens when you throw yourself so 80 grand you're looking for 80 grand
on this kickstarter um yes could be as much as five days left when you're listening to this.
You're about halfway right now at the date of recording.
And today's date is Friday, July 11th.
Just so everybody's aware, the show should be out July 15th.
So if you're listening to it July 15th or after,
you've literally got days, possibly even seconds,
to go and back this thing so uh you
can you want to do a quick rundown maybe of a couple of your favorite not all of them but a
couple of your favorite um rewards is that what they're called yeah yeah rewards and kickstarter
like some of your favorites maybe just kind of glaze over some of the cool ones that uh that
stand out yeah yeah um for 35 bucks you can get a Ziki t-shirt. It's a American
apparel, 50, 50, really nice t-shirt. Um, I did, uh, went back and forth with the design,
uh, like five times to get it right. Uh, it's really nice digital print with a gradient on it.
Um, and then you can do, I think for, what do I have it for? Uh, 300, I think, um, can do a
pairing session with me. Um, let me bring up
the page so I can tell you the actual number. I've got a couple of different ones with pairing
session. That's one of my favorites cause I love to pair people, pair with people. Um, you can
pair with me on a menu for your project. Um, and I'll include uh, include it in the Ziki distribution. Um, I think that's the, uh,
currently the, uh, uh, early, early bird ones are sold on that. I think so now it's, um,
300, um, which I think, I think is a good way to fund an open source project. If you're
transparent about including people's stuff and it doesn't get in your way and users can override it.
Uh, that's kind of one of my plans, like, uh, after the Kickstarter, I'll say for a, for a company that's got like a, you know, commercial projects
and they want their command included, uh, just for, you know, for a few hundred, I'll just stick
it there to by default. It won't get in anyone's way. If they don't want to use it, it's not going
to pop up at them and say like, Hey, this, this needs to be used. It'll be just be if they type
that, you know, if you type Heroku or whatever, it'll be if they type that you know if you type heroku or
whatever it'll be there for you to use and the commands are so they're so tiny there's a few
few k or a few not even a k a lot of times of text that they don't bloat anything um there's
a reward there where you can pair with me and i'll make a video of the um of the you know little
command that we make for your tool, your project,
and then I'll publicize that.
My absolute favorite one is the $10,000 category.
Why is that?
Because it's $10,000.
And right now there are zero, okay?
Right now there's zero.
And we want at least one, maybe two, maybe five.
Five would make this a Kickstarter pass. Five would make the Ziki Kickstarter pass.
That would be amazing.
There you go.
I think with three, we could still get it to pass.
So with that, I'll put your logo on xsh.org and ziki.org.
We can make it kind of big if you want,
because it's totally worth that.
And I'll spread the word everywhere
that your company rescued Ziki.
And I'll tweet, I'll send emails to my, what is it, spread the word everywhere that your company rescued Ziki and, um,
I'll tweet,
I'll send,
uh,
emails to my,
what is it?
1300 backers.
I've got a couple thousand Twitter followers.
I'll,
I'll tweet it a lot.
Um,
cause honestly it's like,
it's in my interest to spread that out right now as much as I can.
Cause that will encourage other companies to back it.
He'll tweet it a lot.
I'll tweet it a lot.
Tweet it a lot.
I got a question for you.
I don't
want to be a Debbie Downer by any means,
but I'm thinking maybe
the audience might be thinking,
what will Craig do
if it doesn't succeed?
If this Kickstarter
fails and doesn't fully fund?
Yeah.
Thanks, Debbie Downer.
Womp womp womp.
Just kidding.
No, I'll just kind of regroup at that point.
I'm going to keep working on it regardless.
You have a plan B then?
I kind of thought about maybe doing a smaller campaign
for just XSH, but God, the thought of like redoing
all this again and trying to be like a cheerleader again
and saying like, hey, everyone, remember me?
Well, now I'm like, you've got this big thing again and I'm harass like a cheerleader again and saying like hey everyone remember me well now
i'm like you've got this big thing again i'm harassing you about like i'll probably take a
break if i do it maybe a smaller one for just xsh but uh i'll keep working on it for myself
regardless because i've used it for myself i can't stop working on it like i've got all these
these things that i i see as like obvious next steps, like using the tree structure as actually a data structure.
It's sort of like a combination of a hash and an array and like all kinds of
stuff that I, and, and make,
I want to make a little generator where you can take these two space
indenting structures and generate a Pebble app. And that's like,
that's easy to do, I think,
and like generate the code for Pebble app, generate the code for
iPhone so I'll keep doing it for myself
I just won't jump in and do
Sublime support and Vim support right away
because I'll have to probably actually
get back to another project to make money
other ways basically
So this is literally saving Ziki
Yeah
for the time being
It'll still live on but
the trajectory, the feature set, the direction, the future that you painted out during this show, all of that, just in case no one's listening, in the immediate future of tech and bringing this,
you know, what I think is just something that the world absolutely needs a dead simple structure for,
you know, defining a working UI and, you know, we can spread that to the world. It's open. You
can incorporate that into your projects. You know,'s it's it's very open like i feel
like if we want something like super super open that's going to like take all these devices that
are out there now that have these user interfaces and make an you know an open language and structure
i feel like we as developers have to do it ourselves like companies are have vested interests
in making their own proprietary languages like if if we want another like HTML, which has revolutionized the web.
And like before that, it was like AOL.
They controlled every, you know, America Online, which was great.
And, you know, they couldn't like make a standard themselves.
They just had to make something that worked for them.
But, you know, it was so far from being open.
And the HTML basically just made everything possible.
Like mobile wouldn't be mobile without, without HTML. Um, you know, it just revolutionized
everything and made everyone, you know, able to be a web developer and just made everything spread.
We need HTML for like a general purpose UI. Like we need that. And it's gotta be like as
simple as possible. Like trends right now are moving that direction anyway. If you look at like new languages, like coffee script,
they're like moving the direction of just like, you know, you do like a,
here's my class. And then underneath that, I've got like, you know,
a colon underneath that I've got B colon. So it's, it's happening now.
You know, like, like the world is moving that direction. Let's make it,
you know,
let's make it open and as flexible as possible and take control of it
ourselves, you know?
Cool.
What's the call to arms, I guess?
Besides Backit, which we've pretty much punched that in the face, what is the call to arms for the community?
How can people step in?
How can people help out?
Besides, I guess you can say backing if you want, but I think it's pretty obvious.
Yeah.
How about reach out to companies and get
them to back it like i actually had to late last night i tweeted this twilio thing saying hey uh
everyone help me um get twilio to back this like after this i'm going to make another uh
video for probably mozilla and a couple other companies um and the first ones that do it are
going to get going to get,
going to get like the most,
most press.
So if you work for a cool company that donates to open source and,
and sponsors,
you know,
cool conferences,
like seriously walk to the office and say like,
Hey,
check this out.
You will get a bunch of press if you,
if you sort it.
Okay.
Yeah.
Everybody tell your friends, tell, uh, tell your friends,
tell your coworkers, tell your boss, tell your leaders to support this if they can. Um, you were,
you were my best friend right now. And, and, uh, let's talk about programming hero. Like, uh,
we've talked a bit about your history a bit, but so do you have any programming heroes you want to
plug here on the show today? Yeah. Uh, word Cunningham is my,
my programming hero. Only one. Uh, well I would say DHH also with, with rails, but,
but word word Cunningham is definitely, uh, at the top guy. He's, he's the guy that wrote the
original wiki. Um, I remember working for a bank on a pretty cool team, but you know,
if you work for a bank, it's, it's about money. It's not about programming. It's about not crashing the prod server and losing a million dollars,
you know, in a half an hour. So I was kind of like disgruntled by all the structure that
everyone had to go through. And this guy joined our team and he installed a wiki.
And I remember looking at this, you know, seeing a wiki for the first time and thinking like, holy crap, that's,
you know, you can do that. Like this breaks every rule that I've learned in school. And with like
structure, like, you know, uh, you just make, you know, I think, I think every programmer should
make a wiki, like new programmers, this is an exercise. You just like make one database table
with a column of like name and then a column of contents. And then you give people this big text area.
We can just type in any text and then you like search and replace these
little like syntaxes, like equals into, you know,
headings, HTML headings. And with this, like, you know,
two fields and, um, searching and replacing.
And then of course you make links to, you make a search for links.
You've got this incredible, you know, versatile system that, you know, turned into Wikipedia
basically and, you know, defeated Encarta and all these like highly structured GUI,
GUI tools. So that just, that just was like a awakening for me. I felt like before that point, I almost had the idea of doing something kind of like a wiki, but never even dared to think about or suggest it because I knew I'd be laughed at.
Like, oh, here's this guy's design for the system.
He's going to have a big text field and dump everything into it and search and replace.
Like, you know, let's, uh, let's not hire this
guy. Um, but, uh, yeah, Ward Cunningham is a hero because he does stuff like that. And he also has
like these huge, like, Oh, Oh, design pattern shops. Like the first wiki was for augmenting
the Portland pattern repository, which, which is like a bunch of strongly typed OO design patterns,
patterns. So he's this guy that can use this, you know, high abstraction and complexity where it's,
uh, where it fits and does a good job and where he sees an opportunity to just to like do this
really flexible thing. Uh, he'll just do it. Um, and, uh, I, I've and I've sort of
tried to adopt that
it seems like he's like
on the patterns
and extreme pair
sorry
patterns and extreme
pair programming
or extreme programming
I want to put pair programming
in there because you said
a couple times
well he actually
he was like one of the guys
he and
like was one of the guys
that invented pair programming
which I also like
am obsessed with.
Right.
Right.
That's,
that's,
um,
we'll link him in the show notes as well.
Ward,
thank you for your awesome service to the software development community.
That's
check out,
uh,
check out,
uh,
his,
uh,
his projects.
He's working on some really,
really awesome stuff.
I've actually had the,
the opportunity to,
uh,
Skype with him for quite a while.
And he's,
he's brainstormed with me on Ziki.
Um, smallest federated wiki is what he's kind of designing. It's his project. It's sort of the
next version of a wiki where it's federated out and you can have your own and share.
It's kind of mind-blowing. Check it out. Well, Craig, I want to say thanks, man,
for coming on the show today. It's certainly been great to kind of get to know you and what
you're doing with Ziki and the future of it.
Um,
you know,
all I can say is,
you know,
we hope that when people listen to this,
they get excited about it and they go and back your Kickstarter and they
help save Ziki from a different future.
Um,
and,
and thanks for coming on the show.
Let's let's,
uh,
everyone say goodbye.
Yeah.
Thanks so much guys.
I had a great time