Hi and welcome to another episode of the Option Plus podcast.
As you can see, and here, maybe you have noticed that these episodes are quite irregular.
I'm breaking the common wisdom of, you know, release podcasts regularly at the
same time, like every day, every Wednesday, or every month, and so on.
But I think it is a good idea to do an episode when I have something interesting
to say and not to bore you with my rambling when I've already said it in the
previous episode and I don't have anything new to add.
This time I've been quite busy with writing a lot of code so that's why I have
not been speaking to the camera as much.
And what I've been doing is I've been writing really various programs, mostly open source.
They're mostly on my GitHub, or at least I publish them when I finish at least
a version that can compile and run and do something.
And this is what this episode is also about. With AI, with new models,
both open weights and closed, we have been given a superpower to create software.
And by we, I'm expanding the definition of programmer.
And there are many people who
were not traditionally coders who can now write code using these tools.
And in this episode, I'm asking a question today.
Should we share the vibe-coded stuff?
Should we write and publish software that is maybe not neat, not perfect?
Maybe we don't even know how it works?
And does it make sense to publish it if it will have maybe no users,
maybe a few users, maybe it's just a buggy piece of code and people will laugh at us and so on?
So I think writing software, open source hacking is about tinkering,
it is about playing, experimenting, trying new things.
It doesn't mean that these things should be perfect from start to end.
But we can play with them and this talk
that i will just roll in is
a recording from devhack day which is a part of btc prague for nerds and last
year i noticed that not all participants are actually coders which is fine because
we need many more people than just coders you know the common saying,
yes, cypherpunks write code, but they also write documentation,
they make design, they make art.
They promote, they figure out new ways to use these technologies.
They participate in social media, organize events, and then they apply and use
these technologies in various businesses and give us legal help and many,
many other important things.
So for hacking and tinkering there is i
would say i i would expand the definition
of who is the
cypherpunk's not only write code but do
many of these other things so i hoped that there will be some people who are
not necessarily hardcore coders and i spoke spoke about tinkering and this process
of experimenting and creating new things. So I hope you like it.
Let's dive in. I always liked to write code and release it.
I was an early member of an open source movement, a free software movement.
And I was coding since I was very young.
I got my first computer when I was seven years old and the games were shitty.
So I started to code instead.
And then sometime I kind of was doing some other things, mainly Linux servers and so on.
But I got back to playing, tinkering and open source.
And this talk is about a long tale of open source.
And I want to encourage you to create software, contribute, write and do it,
especially if the software is shitty, if you're not proud of it and.
It has some benefits.
So, I don't know. Okay.
So, you can become part of something that I call the GitHub graveyard.
So, most people, when we speak about open source, we talk about very successful software.
The Linux kernel is used definitely on more than 3 billion devices.
It's by far the most used operating system kernel in the world.
Android phones run Linux kernel, routers, servers, many desktop computers and so on.
The second most popular kernel, which is Windows NT kernel, is not even close.
It's like way farther in use.
But I'm not talking about this widely successful open source software like the
Linux kernel, Bitcoin Core, or many other applications that are used by many people.
And when you read traditional traditional
like like cathedral and the bazaar and traditional philosophy of free and open
source software it usually talks about it is higher quality because given enough
eyeballs all bugs are shallow people look at it they fix things they contribute things and so on.
But that's the core. But then there's the tail.
These are the projects on GitHub that have no users and less than three stars.
And they're basically failed by all conventional metrics.
And I'm going to try to convince you that it's still a good idea to publish code like this.
Maybe we are measuring it wrong maybe this is
not a success maybe a success is a weekend
hacking project that you share and this
also gives information to the community because even if the project fails if
you tried something and then realize okay this is not a good way to do it if
you don't share it there will maybe be 10 other people that will try the same
thing and also fail while they could have just, you know,
looked at your software or looked at your experience.
So in science, this is called the dark data.
So many, many scientific papers try to prove some theory.
They gather data, they have a theory, they gather data. And with the data,
they reject their theory.
So this is basically, people call it a failure of science because they set out
to prove something and they proved it's not true.
But if they don't publish this information, then there may be other scientists
that will do the same thing and they will also prove that it's not true.
So it's better if they can just read the paper and say, ah, okay,
someone thought this about reality or about whatever, medicine,
about something they were investigating in this scientific search and they realized,
okay, it doesn't work this way, but it's useful information.
It saves time to other people.
On the other hand open source
and hacking is not scientific it's
about tinkering it's about you know playing with things
trying to do small changes maybe
do some some experiments and you can you can see this in a 3d printing community
oh okay there's a cup what if i do the handle this way and people play and do
small adjustments and if they share it it's maybe useful to someone.
But then people say it's the fear of the ship.
You know, this code is not polished enough.
I will release it when I write the documentation or when I remove all the to-do
lines or to-fix lines or whatever very common is. I will rewrite this in Rust.
Now it's in Python, but I will release it when it will be rewritten in a proper language.
Then another reason why people don't ship is nobody will use this,
which might be true. All of them might be true, actually.
Maybe better projects exist, but then why did you write it?
Maybe you just wanted to learn something, but maybe you wrote it because something
was wrong about the original project.
So maybe there's a better project that exists, but that didn't meet your needs.
So you wrote the project because there was something wrong about the big project.
Sometimes also might be true. It's too specific to my workflow.
For example, I have a software that does one thing.
It's one button and it opens the gate in our building, which is a relay.
Very specific to my workflow, but maybe other people want to open doors as well.
So does it make to release anyway even
if any of this is true maybe maybe it's
it's a good idea to release anyway so this is very controversial i i have to
say i'm a proper programmer i even studied it i have paper with a stamp that
i studied computer science so when i when i say this among my peers.
They usually don't agree, but I love ugly code.
Like it's a common story. There's a new engineer that comes to a company that
had like an internal system.
They've been developing it in PHP spaghetti code for 15 years and they come
and they like hold their head and they say, okay, well, this is the worst code ever. And,
And the only thing you can do with this code is rewrite it.
When I hear this, first of all, I love the ugly code.
Like if someone has been working on it for 15 years, even if it's ugly code,
if it's spaghetti code, it kind of absorbs all the needs over the 15 years, all the specifics.
And if it works, if it's useful, it doesn't matter that it's ugly.
I think what matters is if it solves the problem and maybe have ugly user interface
or, you know, it's not properly abstracted, there are no modules or something.
But if it solves the problem, I think we should kind of praise the code.
And what people don't see when they look at the ugly code is that it's quite
hard because the specifications are changing over years.
If it's something that's been developed over 15 years, it has a lot of knowledge in there,
even though it doesn't have beautiful architecture so often
so i draw here with a with
a car that has a comma ai which is open source
free and open source self-driving kit i don't know
if any of you know comma it's basically
an ai based self-driving so i don't have to drive it is actually on par with
tesla self-driving but you can install it in many normal standards cars so i
have a volkswagen so I draw here and about a month ago I was kind of curious okay this is a.
Fastly developing field and I didn't get
an update for the software for one year so I
looked at their github and they said that they are rewriting the
code so then I realized okay this
project is dead so let's look for the forks there is
a fork that is called frog pilot which is
up to date released monthly it's not being rewritten
and it has jumping frogs on the
screen so it looks like kind of silly makes the
frog sounds when you engage the autopilot so i
really hate when someone says okay this is
all wrong let's just rewrite it because usually people
will waste a year of their
time into rewriting and then
the new requirements start coming in
and the nice new codes will again not
be so nice so it's not a permanent solution that's
just you know freshly graduated engineer
had a good idea we need to rewrite this because this
is shit so the problem is the rewrite
is often never finished so it's just a waste of time and the project dies the
only thing i hate more is when they say we are going to rewrite it in a rust
because that means that even if they rewrite it it will have zero contributors
because no one likes to write rust code or.
Five percent like compared to python or php
it's very hard to write in rust so and
embrace the shitty code doesn't matter that it's
written in a shitty language if it works and please
don't rewrite for like maybe there
are some cases when it's good idea to rewrite maybe some
cases even when it's good idea to rewrite in rust but just
you know it's okay don't don't
worry that it's ugly code just publish it if it
has users maybe you can fix the
ugly parts later maybe you will get some pull
requests but most probably you will not
get many users and you don't have to make it
polished and nice now with
ai coding there's this thing that happened and
it happened before in other fields so now everyone who has a smartphone is a
photographer and everyone everyone one who sets up a blog on Medium or Habla
or Nostra or X or wherever is basically a journalist.
We can write about our opinions, about our things.
We can take pictures of our holidays and so on.
And like these hobby photographers, they're not afraid to, you know,
show their photos from their travels to their friends just because they're not
professional photographers.
Yes, the photos are not as nice as like super artsy photographers with fancy
cameras and knowing how to do composition,
but the professional photographers are not traveling with you all the time,
so they couldn't have made pictures from your travels, so only you could have.
And I think it's the same case with the code. Many people are going to write
code, especially using AI, even people who don't know how to code really well.
Now it's literally wipe coding. you write a prompt and
you have a software and like
if i take my degree out
of my pocket and i i would look at the code i would say oh
okay i see this was written by ai there are
five bugs here and it's a shitty code but i
don't live your life i would not have written the
code for you because you wanted to write
it so why not publish it it's like it doesn't
matter the same same way as my photos
when I want to publish them I publish them because
there's no professional photographer following me around so don't worry about
ugly code so maybe your hacky script is someone's missing piece maybe your failed
experiment is someone's free experience and maybe your thinking process is someone's inspiration.
This one is important because especially with permissionless technology such
as Bitcoin, Nostra and so on, we can do many experiments.
And it's maybe not the software that implements the experiment, but the idea.
But people can see, okay, I will give you a few examples actually.
Maybe this is a way to do it. maybe I
won't use the software I will play with the software
and then I will rewrite it in a way but the
idea is expressed in the software so that's how you how you can write a blog
about it but if you have an implementation people can play with the implementation
and then write it properly so that's another reason to release it so I give
you first example I have a few.
So i have this device called pulsetto it's
a vagal nerve stimulator vagal nerve is the
longest nerve in the body that relaxes your body
and i went to a
music festival and there was a giant storm like portable
toilets were flying around it's really windy so
i went into my camper van electricity was off
cell towers were off i was a little
bit stressed you know i was looking if my friends
are safe i couldn't contact them because the mobile network
was off so i said oh perfect time for vagal nerve
stimulation i need to calm down so i put it on i started
the app the app basically sends the comment via bluetooth
to the device to turn on uh but it
needs to connect to internet to verify my account there's no subscription but
it just didn't start because i was not online so i said okay this is fucking
stupid i don't want this you know device to connect to the internet just to
send signal to start electric stimulation so i released.
An open source software i think it has three
users me my wife and maybe one more user i
i've heard someone used it for me it's
not about how many users it has it solves my problem it runs
on my phone it's published online so if i
buy a new phone i i can just get it through obtainium
on on my phone again and i learned how
to reverse engineer bluetooth lower energy so that
that was a learning experience for me for me the code
is very shitty it is written in some framework that
i don't even know it was completely wipe coded i
did only the reverse engineering part but then everything else the gui was written
by i think chat gpt i don't even know so yes it's a software doesn't have many
users but i put it out there if anyone has this problem they can they can use it they can google it and.
Do it. So I think we should be building for the joy of building the same way
as people are taking pictures even though they're not professional photographers.
I encourage you to write software just because it's fun and these days it's
incredibly fun even if you're not very tech-savvy.
So what should you release? Gists.
Gists are a special thing on GitHub that is just one file, usually one script
with documentation in comments for things you do daily.
So you solve something once and you share it and people can use it.
They just install it usually as a shell or python script
for example i have just called whisper
file so you get any video or audio
file and it will transcribe it
locally using open source whisper speech to
text models but it does all the auto conversion so it doesn't matter what the
format the the file is in you just you do just whisper file and then path to
to an mp3 or m4a or m mp4 or whatever and you will get txt file and.
Srt file with the subtitles which includes timing and you have a transcription
then i've another one is yt whisper which is the same thing but it takes a youtube
url so it downloads the video extracts audio and then transcribes it.
So if you want just to look in some video, see what they've been talking about and so on.
Venice IMG was used to generate all these images.
So basically when you have these AI image generation models,
you need to type the prompt, you press enter and you wait for,
I don't know, half a minute, one minute.
This one uses API and does it in parallel. So what I did, I took the PDF of this presentation.
I gave it to four different AI models and I said, describe me cool pictures
that could go along with this presentation.
I just set the aspect ratio for vertical because I have the space on the right side.
And then I just generated all of them in parallel. So in two minutes,
I got 400 images and I just chose the nice ones.
So you can do it. It's just literally one short Python script.
I've been publishing my .files. It's all the macros in the shell and things
that makes your shell more useful.
Another thing you can release are weekend experiments.
What if? So I will show you this one a little bit later. But for example,
I'm in many signal groups with a lot of messages and sometimes I want to have
an overview of what is happening.
So I have a software, I give it one month of messages from a signal group.
It uses AI to basically summarize it, extract all the links,
describe images, transcribe voice messages, and it basically creates one nice
summary of what has been going on.
So my friend is using this for a newsletter. He's writing...
It's a Liberation Travel newsletter, and it basically summarizes discussions
from many groups that this company, Liberation Travel, has for its clients.
I think we have, I don't know, 10, 12 signal groups, and that's the source of the content.
So it's a nice weekend experiment. This weekend lasted for four months.
Actually, it's not as easy as it sounds, but it's out there.
I will talk about this one later personal automation basically your workflow is someone's.
Inspiration so for example rss to
podcast i want to read blogs but i don't have
time to look in the on the screen so when
i'm driving or actually when my car is driving
itself i have time to read blogs but
i don't want to look because i want to look on the road so this
software will create personal podcast for
for me from the blogs that i want to read i also
release it online as a service which is called loaded for
dot me so if you want to read some blogs
in audio form this will this will basically do
text to speech in a very fancy way it's also
quite nice inspiration of how it's done it's not
it's quite fancy actually then there's
like video summarize so if someone like
wants to hear a summary of this talk they can
take the transcript and get the main
points so it's a command line utility i use oh there's
a nice talk i want to just see what they're talking about
so i download it transcribe it summarize it
and i have like a one pager to see if i want.
To actually see the video some stupid
ideas so so i i
wrote a software that sends cashew tokens over
a long-range radio over reticulum it's called
not bent i have a very nice video showing
how you can contact your 3d printer filament
dealer in case of apocalypse and you can you
can play with this my very recent project i think started working about a week
ago was creating any cashew tokens for any fiat currency so if it has a price
feed you can do check rounds over cashew or anything like that on my github
or read about it on my nostril.
So then we have the discovery problem, and this is something that is not solved.
So GitHub search is broken for small projects. If you are trying to look for something,
it is very difficult to see if someone has written this software or something like that.
There is almost no curation for niche tools like my Pulseto software.
There's a lot of signal lost in even more of noise. So what works?
Personal blogs, notes, you can just share, okay, I built this and people can play with it.
Then there should be, I have a friend and he used to do this thing.
He would open facebook and he would say oh
let's let's show the our female friends
to each other but i never got to show him mine because
he was showing me his so i started doing
this on github i was just showing people oh these
are my 50 repositories that i that i've
done and people just sharing this which with
each other crowdfunding is very useful
for discovery actually because with crowdfunding you
have to do marketing it gives you users buying
so basically what i did i i've done one software
which is called llama like venice i did
crowdfunding basically if you if you supported the project you could get the
source code right away and then it was released as free and open source when
it reached the funding goal so this gives makes it more marketing intensive
you have to focus okay you need to promote your crowdfunding campaign it's not easy.
But you will write much better code because people paid
for it so you're not gonna you know give them of course
uh but also when people invest it
in your code they will at least try it maybe they
will not use it but that it's this notion of oh
okay i paid i don't know 10 000 sats
for it so at least i'm going to download and play with it
so so it's actually creating this
barrier was very helpful for for this then
if people are doing something and and you
have solved it in a software that is like
when i see something doing something on a linux machine and and they're not
very good i i have this urge to kind of punch them and you know steal their
keyboard and show them how it's done so share your software like this oh i why
are you transcribing a video so So, so complicated way,
just run the script and it does everything for you.
And lightning talks are really nice.
Okay, and now we are approaching the end. This is one of the projects.
This generates, it's basically an Oster client.
This is the NPUB version for things when you want to share something,
but you don't want to share it under your own name.
But creating one-time use NPUB doesn't make sense because no one will read it.
So this is a shared identity. the private
key is derived only from the password so basically
here you write what you want to write when you
write the password the private key is is derived you press this button and it's
published under this shared identity and then you just spread the password among
the cool people and you have a community of anonymous microblog of people no
one knows who it is and so on,
So wipe coding is very cool.
Please ship. I will skip over this a little bit.
But basically, we are all going to run our own AI inference.
And the only challenge I only ask is when you wipe code something,
please write how to use it and how to deploy it.
No one knows how to install your specific version of Node.js.
It can be actually generated also. So write good documentation.
So building in public, why? Code diary, you enable serendipity.
You create breadcrumbs for other people. And the thinking process is also interesting.
Maybe you learn about some better and bigger software that solves the same problem.
And how to do it? Write a good readme.
Why I build this? How to deploy? And so on. share failures and the ask you are
a coder now if you have ai ship at least one useless project per month and share
it on nostr thank you very much this is how you can contact me and what you
can talk with me about so thank you very much.
Yeah we could do i didn't see you were there we could do one extra questions
maybe if you're still around for five minutes we could take that out the break
if you're interested anyone has any questions for you man there's one there's
two down here there oh i'll take it.
As you mentioned earlier, there's a search engine in the GitHub is broken.
And what about the white coding?
There should be a tool to filter the repository that has been white put because of the searching.
I think maybe the next step should be there should be a tag,
at least I white put it in this record.
So maybe don't spend maybe 12 hours to just look at the code because maybe even
the owner doesn't know what to deploy.
I think that's not the problem. The problem is finding. Like you are doing something
super niche like my, you know, Pulseto device.
And how do you even find for it? Because when you search, you find 50 projects
that don't solve the problem that you are solving.
So one of the solutions we were trying was using this kind of software to just
share cool projects. But the problem is that the domain is too wide.
So it is very hard to find if someone has even tried to wipe code something.
As I said, you know, I'm not against shitty code. It's okay.
Like I can look at the code. You can ask AI to see if there are any backdoors and so on.
So run it in a virtual machine. It doesn't matter.
The problem is to actually see if someone has done anything related to what
you want to do to save you time.
Maybe you will not use the code, maybe you will just use the ideas,
maybe you will just take the README and wipe code it yourself or something like
that. So that's not a problem.
The discovery problem is there are hundreds of thousands, millions of projects
and there will be many more because of wipe coding and how do you find if you
have to actually code something or just use someone else's software and improve it maybe.
All right, we got one more question here. So I really like this project. I'm not a developer.
I'm a marketer, but I really like the idea of shared identity.
So how can I actually use it in real life?
Can I deploy this to Instagram, to X, or some social media?
So this is Nostro only, but this website is called NPUB Pro.
You get it for free from any Nostro identity. and this
is one html file where you basically say you
basically just paste the npub so in
in the readme of my project called anon microblog there's
a how-to it's very easy to set up it takes like five minutes so if you want
i can help you even write me and i i've set up there are i think three yes at
least three instances of this no four that i know of that are that are running
and it's literally super easy.
So you need a profile picture and an idea.
And basically, Enpa Pro gives you a link up there for posting.
And it can be used from the web. So this is a Nostre account.
So you can follow this account on Nostre and repost, reply, everything.
But most users even don't know that there is Nostre behind because this looks
like a blog and there's a website where you have,
okay this is where you write what you want to post
and this is where you write your secret password and and you
click publish there's no back end everything is on nostril
relays so you don't have to worry about any
kind of infrastructure if you can host one html file which i can host for you
which is this one then you get everything else in the ecosystem for free so
i'll i'll gladly help you just write me email or whatever and I'll set it up
for you. It's super easy. Thank you.
Is there any other questions?
No? There's, there's, there was one here. It is.
You mainly talk, I think, about like personal projects of yours.
Does your mentality change when you actually come to an existing project,
even if it's also a very small one?
Because there are other people involved who maybe don't like the idea of a key or a bike code.
Yes, definitely. The first thing that you need to do is to understand how to
wire it in and how the people do.
So, for example, the fiat with Cashew that I was doing, first I had to learn,
okay, how are actually tokens issued here?
What's the structure of the project and so on?
And you are aiming for minimal changes. So, if you want to incorporate in there,
you don't want to change too much of their code because then it's a maintenance hell and so on.
So, you want to concentrate your code in like a separate module and do the minimal
changes there. So it definitely changes how you look at the project.
You can use AI to understand the project itself as well. It can look at the
code and tell you, okay, how things are done.
You should also include the documentation in the prompts so the AI understands
what the project is about.
So I'm not saying you should wipe code everything. I also write some code.
So mainly the boring things like parsing command line options.
I don't want to write the stupid parser, you know, I just say,
this is how I want to call it, please parse it and put it into variables.
And that part is great, like I wouldn't have written it any better.
So it doesn't like, I think AI writes better code than 90% of programmers.
So I'm not bashing the output of the AI is actually quite nice.
So yeah, but it changes like if you're interacting with some other code,
and you eventually want it merged, then you need to do it the way they do it, basically.
Thank you very much.
Thank you for listening. I hope you enjoyed this episode of the Option Plus podcast.
This is a value-for-value production. If you liked it,
I hope you used service such as Fountain.fm or any other app or podcast player
that supports giving value back and that you were streaming some sets.
I appreciate feedback and in the value for value ecosystem you can attach feedback
to something that is called a boost so you can send however many sets you like and give comments,
questions and so on.
Thank you very much for listening. Bye.