? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content


My blog about ZeroNet development

Follow in NewsfeedFollowing

Latest comments:

The first ZeroNet website created with ZeroDart!

on Oct 18, 2017 · 4 min read ·

I haven’t finished implementing all of ZeroNet’s API yet, but enough to show off the first AngularDart ZeroNet website written in the Dart programming language using ZeroDart:

angular_example_release.png (611x366)

(If the site doesn’t load for you, try again later, there might be no compatible peers yet who can serve the site to you)

You can login with your @zeroid.bit ID, add tasks to your todo list, and save the list to ZeroNet (encrypted of course, using ZeroNet’s elliptic curve encryption). Saving is manual, the save button will get enabled when you make changes and are logged in, but loading tasks is automatic when you open the site.

This is just an example app, so don’t rely on it, there are probably bugs galore and data you enter might get deleted at any time when I change stuff. If you want a fully featured ZeroNet Todo list that you can actually use, check out my ZeroTodos project.

And here is how it all works (warning, this is where it gets very technical, boring for anyone who isn’t interested in using ZeroDart). This might still change as I learn more and improve things, but so far it works really well:

Read more

ZeroNet API support for Dart is taking shape!

on Oct 13, 2017 ·

As you might have seen on ZeroMe, I've been working on ZeroNet support for Google's Dart programming language (I call it... ZeroDart! I'm soooo creative) for a few days now while I learn Dart and get familiar again with ZeroNet's API (I thought why not do both, so I did).

Got it working with the more comfortable to use await / async futures now instead of the callbacks ZeroFrame.js uses, but it still uses the normal ZeroFrame.js behind the scenes, so if there is a new version of that it can just be replaced without having to modify the Dart code.

zerodart.png (633x494)

I've started adding convenience methods like siteInfo() and fileWrite() so you don't have to call cmd("siteInfo", {}, callback) yourself (JSON and Base64 encoding is also done automatically where appropriate), which also means the commands now have documentation inside of the IDE, so you won't really need to read the ZeroNet API docs anymore in most cases and can just learn by doing.

Once I got everything working, no ETA yet, I plan to just publish a ZeroNet site with the AngularDart template. It's a ToDo list example app using material design components that make it easy to create sites that work well on both desktop and mobile (see screenshot below) and added ZeroNet functionality, like logging in and saving and loading to and from ZeroNet. Then anyone can just clone and modify the site to start super easily with developing ZeroNet sites with Dart and Angular.

angulardart.png (652x377)

There are probably not many people interested in Dart right now, but it's the future of mobile development for Google devices, so it'll get popular eventually :) It's supposedly already a better way to develop for Android (still alpha though) since it not only works on both Android and iOS but also compiles to native code, it doesn't go through a VM like Java/Kotlin does on Android so it's faster in some cases, and it'll be the main language of Google's next operating system, FuchsiaOS.

Before anyone asks, I don't know yet if I'll "switch" to Dart and Angular and convert all my old sites from CoffeeScript+Vue.js to AngularDart, right now I'm just trying it out and see how it compares. If it's a lot better then sure, I'll switch.

Read more

It’s been a loooong time…

on Oct 05, 2017 ·

Obligatory Portal 2 reference: https://www.youtube.com/watch?v=tax4e4hBBZc

To the people who knew me before I went AWOL for a year:

First of all, sorry for suddenly vanishing without a word. Anxiety got the better of me, so instead of doing the right thing and saying I’ll be gone for a while I vanished like a coward. So I’ll just say it outright: I royally fucked up, no excuses. Feel free to call me names for it, I won’t hold it against anyone since it is well deserved. I just ask for the names to at least be creative so that other people reading them can have some fun too.

Saying something wouldn’t have changed much however, health problems made it impossible for me to continue working on my ZeroNet projects, or anything really, for a long time. My condition effects my brain, I can’t think straight for days until I can again for a few days, like being completely drunk for days on end, so the time I can spend productively is limited as you can imagine. Had to move back in with my parents, I live in a different city now, but at least the internet is better here. My condition hasn’t really gotten better, just different, despite dozens of visits to doctors, but I’m starting to get back on track despite the situation.

I still love ZeroNet and still strongly believe fighting censorship is a fight worth fighting at almost all costs and decentralization is the way to do it, especially now where censorship is on the rise again all around the world, so here I am again.

I’m not going to go into too much detail of what exactly happened, because as you know if you’ve followed me before on ZeroNet, I’m here anonymously and want to remain that way as long as I can.

I won’t be able to be as active as I was before, and I’ll likely need some time to get reacquainted with the source code of my ZeroNet sites, especially the SQL parts which I still hate passionately, and there are probably lots of new ZeroNet features I need to learn, but once I’ve managed to do that there’ll be new updates to my current projects and new projects for sure.

And please don’t see this post as me fishing for sympathy due to my medical situation, I’m not and I don’t want it, if it were up to me I’d say this is the first and the last time it is even mentioned, I just feel I owe it to people to try to explain at least a little bit of why I was away for so long, as much as I can without risking my anonymity, and why going forward I might be unavailable for a few days every now and then when my condition kicks in again too hard.

Also, a big thanks to whoever paid the fee to keep the ZeroPolls namecoin domain running in my absence. I said before I so rudely vanished that’s why I don’t like the idea of using domains, and instead prefer using just the hashes. If someone hadn’t kept the domain registered, all of the ZeroPolls.bit links people shared would have stopped working in my absence, while the hashes just keep working forever, so they are way better in my opinion.

Alright, I think that’s it for now. Oh, one more thing… You won’t believe how sad I am that I missed the launch of ZeroMe. I was looking forward to that so much T_T.

PS: I posted this to both of my blogs just so people see I’m back, just so you aren’t confused if you follow both blogs, if anyone still is.

Read more

ZeroPolls - A bunch of small improvements

on Mar 31, 2016 ·

My todo list oracle told me to work on a bunch of small improvements instead of one big feature for this update, to get my ZeroPolls todo list down from 19 to "just" 14 tasks ;)

  • Raised the default data limit to 100kb, comments and quoting comments use up a lot of data!
  • New checkbox to follow comments on polls you created in your newsfeed
  • Statistics now also show the number of users (this is the actual number of users, not the number of peers, who have voted, commented or created a poll)
  • [Bugfix] Links in comments didn't turn into clickable links
  • [Bugfix] When opening ZeroPolls for the first time, no polls were displayed
  • [Bugfix] When not logged in, no new polls were loaded in real time
Read more

ZeroPolls - 102%? It's a scam!

on Mar 29, 2016 · 1 min read ·
1 comment

Looks like people finally found out that sometimes the percentages shown in ZeroPolls add up to 101, 102 and sometimes even 103%!

ZeroPolls: Have you noticed that the percentages often add up to 101% or 102%?

If you look back at the first blog post announcing ZeroPolls, that was actually a known issue, I just didn't know how to best solve it. It's not that these values are incorrect, they are just inaccurate due to rounding the numbers. That's how mathematicians say "It's a feature, not a bug!" I believe. Although to me math is something that would only happen to people in a dark alley. Not that I don't like math, it just doesn't like me. And I'm no stalker so I just leave it alone.

Anyhow, after seeing this poll I Googled the issue and found out that there is a very common method to solve this problem (I should have Googled it before). It's called the Largest Remainder Method and is used for political votes on TV and stuff like that. I've now implemented this method and use it for ZeroPolls in this new update. So from now on, all the percentages should add up to exactly 100% (and my tests show that this is the case).

It's still not 100% accurate of course, the only way to do that would be by showing an infinite amount of numbers after the decimal point ;) But this is the best that can be done I believe and now it doesn't look so wrong anymore.

If you want to use my CoffeeScript implementation of this method for your own projects (or want to see if I made some horrible mistake), here it is:

Read more

ZeroPolls - Replies and Quotes

on Mar 26, 2016

Since you can now be notified of username mentions, I made it easier to mention users. You can now click on usernames in comments to reply without having to type the username yourself.

I tried to make it a bit intelligent (yes this is basically Skynet, RUN!). If you already started writing a comment and click on a username, @username is appended to your comment. If you click on the latest comment's username, @username: is inserted as your comment so you can start writing your comment after the colon (doesn't make sense to quote the latest comment as it appears right below your new comment).

If you click on any other than the latest comment's username and you haven't written anything in the comment box yet, the comment is quoted. Works and looks pretty much like quoting on ZeroTalk, with clickable usernames to jump directly to the comment that was quoted, and with quotes inside quotes removed so there is no quoteception.

It probably sounds a lot more complicated than it is, just try it out. Basically the idea is that you don't even have to think about this, just click on a username of a comment and ZeroPolls does the right thing for you in any situation. Even your cursor/caret moves into the right position so you can start typing right away ;)

As always, if you notice any problems comment here and I'll fix it ;)

Read more

ZeroPolls - Follow in Newsfeed

on Mar 25, 2016

Can't get enough of polls? Did you ever want to be able to see new polls show up in your Newsfeed? No? Well, now you can do it anyhow!

And also, probably going to be much more popular, follow username mentions!

ZeroPolls Follow

You can choose what to follow on the main ZeroPolls page at the top, it's not shown on poll pages.

Feel free to try out mentioning usernames in this hidden poll where I already did my own testing of the new feature ;) You can mention your own username with @username to try it out, that's what I did. ZeroPolls: Trying out following polls

Read more

ZeroPolls - Infinite Scrolling

on Mar 24, 2016 ·

Coffee goes in, update comes out. You can't explain that!

The main thing in this update is infinite scrolling, since we're closing in on 100 polls now it was needed. Now only 25 polls will be loaded when you open the site (and only one when you open a poll directly of course). Scrolling down loads 25 more when you scroll near the bottom of the site. This should make everything a bit faster. In Chrome the site is already as fast as it can probably be, but Firefox/Tor Browser for some reason is at least 10 times slower, so there you will see the most speed gain. When a new vote from another user comes in you still see the site getting locked up for a second or two, that isn't faster now at all, which leads me to believe it is actually ZeroNet recreating the SQLite database that is taking so long, have to investigate further.


  • Clicking on "3 comments" on a poll now brings you to the comments
  • The poll question now has a tooltip showing you how long ago it was created
  • You can now also see how many comments were submitted on the site overall
  • Small design fix, the grey bar at the bottom of polls is now always the same height

Adding infinite scrolling meant making a lot of changes, I've tested everything thoroughly but if you notice something doesn't work anymore, just scream at me in the comments (and also state what browser you are using, including the version number) and I will fix it ;)

If you're using Apple's Safari and something doesn't work you're sadly out of luck for now, I don't have a Mac and Apple seems to have discontinued Safari on Windows so I can't test my sites on Safari. I do plan to buy a cheap (for a Mac, by [insert deity of your choice] it is not cheap) Mac Mini or Macbook Air in a few months though, already laid aside about €600, feel free to donate some money if you can't bear to wait any longer ;) And yes, yes, PCs are much cheaper and faster, PC Master Race and all that, but for web development it makes sense to buy a Mac since then I can install Linux, Windows and OS X and test everything everywhere. And I'm going nowhere near a hackintosh, I'm way too paranoid for that. Apple will surely lock me up and force me to say Android is a cheap knockoff.

Read more

A new blog because why not they're free

on Mar 16, 2016

I started a second blog for my personal thoughts. Feel free to follow it or not, that's why it's a second blog, to give you a choice by keeping my blog posts about my ZeroNet sites separate ;)

My personal blog

If the link doesn't work for you, give it some time until it has a few more peers, the link is also in the sidebar.

Read more

ZeroPolls - Comments

on Mar 13, 2016 ·

I've just added comments to polls, with Markdown support which you are probably familiar with by now from ZeroTalk and ZeroBlog. HTML is disabled and so are embedded images, for security reasons. Other than that, go nuts.

You can't reply to people yet or follow comments/replies in your newsfeed like you can do on ZeroTalk, I will probably add that in a later update once I've figured out how that works.

I've also added a new sorting button that lets you sort the list of polls by most comments. The number of comments on a poll is only shown if there actually is a comment yet, I thought it looked better this way, less cluttered, and lets you easier see if there are comments or not.

The only comments right now (at the time of this writing) are here if you want to check out how it looks: ZeroPolls: Best Back to the Future movie

As always, please report any potential bugs you find here or send me a ZeroMail.

Read more

ZeroPolls - Hiding polls

on Mar 12, 2016

Just released a small update which lets you quickly and temporarily hide polls you already voted on to find more polls to vote on. The polls you voted on in this session are still displayed so that you can see the results after voting. Your session ends once you reload the site or click on a link.

When you create a poll you can now also check a new checkbox to hide the poll from the recent / popular polls list. Only you can see it there (try logging out to see how it vanishes from the list), other than that people will only see it when you give them the direct link to the poll.

The poll can still be seen in the site's data.json files and in the SQLite database of course, so this doesn't make the polls private. Instead, this is meant for when you want to ask just a specific set of people a question, for example everyone in a specific ZeroTalk thread or some people you send the link to in a ZeroMail.

Here is one of these hidden polls to test: ZeroPolls: If you think this poll is just here to test a new feature, you are...

I will also start working on adding comments to polls later today. Not sure yet how long it will take, so that might come today, tomorrow, or later.

Read more

SQL 0 : Ekaterina 1

on Mar 11, 2016 · 1 min read

Just gave ZeroPolls a little update that took me all of the 7 days I've worked on ZeroPolls to make. You won't actually notice any difference, it works exactly the same as it did before. But now, I was finally able to create the monster of a SQL query necessary to get all polls with all answers with all votes for those answers. Before, as I had mentioned in another blog post, I had to do some cheating and prepare some of the data using JavaScript. That would not have scaled well as soon as the site has hundreds of polls, because I needed to download all votes ever created or use one SQL query per poll displayed on the site. And by the way, we are at 1706 votes in 65 polls now, that data is something I added in the update that you can see :)

But I digress, the cool thing about having this all in one SQL query now is that I can now just add the line "LIMIT 50" to the query and I will only get the first 50 polls out of the database, so it will always be fast even if there are thousands of polls. So I can now begin to add infinite scrolling, where more polls are loaded as needed while you scroll down the list.

Oh and here is this monster of a SQL query, there are probably more efficient ways to do this but I am just learning SQL which is also why I hate it right now, but people don't seem to be agreeing with me on that :P


Read more

ZeroPolls - 4 days in

on Mar 10, 2016 · 1 min read ·
1 comment

It's been 4 days since I released ZeroPolls into the wild, there have been quite a few updates already fixing bugs, adding features and making improvements to the design based on community feedback (through ZeroPolls itself). I wanted to give a little update on where ZeroPolls has gone so far, because I think it is really awesome how well it has done with the community.

After just 4 days, people have voted 1606 times in 61 polls.

How cool is that? I would not have thought it would be so popular in such a short time, a big thank you to the ZeroNet community from me, you guys and gals are awesome!

Some questions that were asked also paint a really cool picture about ZeroNet's future:

Read more

ZeroPolls - New warning is bigger, better and uncut

on Mar 09, 2016 ·

South Park reference aside, due to popular demand I made the warning at the top of the website (Votes are tied to your ZeroID) much more visible and hard to ignore while hopefully not so obtrusive that it is annoying and makes the site look bad. Most people seem to have seen it just fine before, but a sizable portion of people did not.

I also made the Select user / Logout link look like a button to make it more visible.

Interestingly, there do seem to be quite a few people who do not want to vote at all because the votes are tied to your ZeroID. That is unfortunate. Hopefully we will soon be able to easily create and use different ZeroIDs so that people can make one they don't care about and can use for voting on ZeroPolls, commenting on porn, the kind of stuff they don't want tied to their main identity. Reddit calls it throwaway accounts, we need throwaway ZeroIDs.

Read more

ZeroPolls - Markdown links

on Mar 09, 2016

The pages for polls now show Markdown code you can copy and paste into ZeroTalk or ZeroBlog, to make the link look nice.

Code looks like this:

[ZeroPolls: Do you like ZeroNet?](/ZeroPolls.bit/?Poll:5-1Mk5sVKeCrwMc3wSD11jM7DZTiqF5D9BaD)

And turns into this: ZeroPolls: Do you like ZeroNet?

Read more
Add new post


21 hours ago · 2 min read ·
Read more

Not found


21 hours ago · 2 min read


user_name1 day ago
This page is a preview of ZeroNet. Start your own ZeroNet for complete experience. Learn More