A Week of Dev #9

No v0.8 (yet)

For start, my apologizes. I said I will release the v0.8 this week, but a number of things prevented me to complete my work on it:

  • the twitter thing, which we’ll discuss later
  • November, 10th was the Apple Keynote which I just couldn’t miss - damn these M1 chips could be a real game changer for the whole industry !
  • November, 11th is a holiday where I live (France), so I spent the day with my beloved wife and our 6 πŸ“, 3 🐱 and 1 πŸ• children
  • November, 12th is the release of MacOS Big Sur, so this day will be devoted to backup, install system, install apps, I don’t expect having time to work on Cyca on that particular day
  • I’m putting together a server for a public demo of Cyca, thanks to my first donators. I put a lot of thoughts in it, I’ll tell you later what’s going on
  • the new feature has many consequences in my current code and some of them eluded me until the last moment (not the easiest to resolve, typical developper problem, the gif below will give you a pretty clear idea…)

Source

Twitter: emails, aliases, spam, etc.

Oh boy, I got on twitter. It wasn’t as easy as I thought because I had the exact same problem I had with docker and alternativeto: somehow, I can’t register using an email alias. I have absolutely no clue how one can tell whether a given email address is an alias or an acount, and it begins to scare me a lot. If such things is technically possible, it represents a great danger to Internet. Aliases exist, and should be used every where it’s possible:

  • they help organizing your email based conversations
  • they improve your privacy
  • they make managing spam a lot easier

Avoiding users to use them is counter-productive, invasive, and should not be done at all.

Besides that, I didn’t realize twitter and Google were so close to each others until I plunged into my twitter settings.

  • twitter uses Google for translating content
  • twitter uses Google for 2FA
  • twitter uses Google for reCAPTCHA

For my whole Internet life (more than 30 years now…), I’ve tried to avoid everything that could harm my privacy. This is why I’ve avoided twitter for so long. But I figured it would be useful to talk about Cyca so I’m going to live my twitter life eyes-closed, and see what good (or bad) it will do !

Unfortunately, twitter suspended my account just about few hours after I created it, apparently because my tweets were considered as spam, which makes me wonder how an individual developper can talk about his project without being considered as spam ?

Furthermore, I have seen other twitter accounts of devs speaking about their projects, why they could and I can’t ? No, I don’t believe there is a conspiracy of the whole web against me, of course, but I feel there is an injustice here.

I contacted them the same day as I noticed my account was suspended, same day I registered. I’m still waiting for an answer.

New server

As I told you in a previous post, I will need a new computer to keep on working on Cyca. To be more specific, I will need a new computer to make Cyca run on a separate network of mine. And this is the purpose of the first donations I got.

The idea is to keep using my current laptop for coding, my current server to run code (natively, meaning outside docker) and compile assets (which currently takes way to long to be comfortable), and to have another server which would run dockerized Cyca. It would also act as a public demo server.

I had numerous options, but only one suited me. First, I could use Laravel Forge, which is made to run Laravel apps like Cyca, but it looks like it’s “just” one layer on top of other popular services. I won’t enter the details, but it looks to be more suited to an app you would build for a company, not really an open source app (because of how it is distributed).

Then, I could run my container on some specialized services. Some of them are even actually free, like on OVH. But you have to pay for CPU use, memory use, bandwidth use, prices as low as 0.002 euros/hour. Something totally manageable when you work for a company, when you can know your needs. In my case, I don’t know. Today I may have 20 visitors, then, out of the sudden, because somebody mentionned me on twitter, the app needs to handle 2 000 users. It’s going to have a cost I cannot predict, and that I surely can’t handle.

This let me with two options: a dedicated server, hosted in a datacenter, or a server I self-host at home.

The total money I got from the donations at the moment worth 400 euros, and I want to spend them wisely. 30 euros per month for a dedicated server may sounds cheap, but this must be paid every month. My current money for that could handle the server only for less than a year,

On the other hand, if I buy a nice little server, host it at home, it will last virtually for ever. There is one catch, though: my current Internet connection is limited to uploads at 1Mb/s. But the fiber is expected to come at the beginning of 2021 in my house, so I guess the dedicated server wouldn’t be interesting anyways at some point.

So, I decided to buy a Beelink T34, which I should receive by Monday, November, 16th.

I already run Cyca as my private instance on a computer like this one, and it works splendidely. It’s not fast enough to have everything working smoothly, which is good because it allows me to know what must be optimized, but it’s fast enough so browsing through a collection of more than 200 folders in which I have more than 4000 bookmarks and feeds is still enjoyable. I bought last year a similar computer which not only runs my private instance of Cyca, but also HomeAssistant and a camera server with motionEye and motion detection, and I’d say it’s a pretty decent CPU/Memory/Storage combo for the price.

This is my first purchase with donations, and it will help me keep working on Cyca πŸŽ‰ Thanks again to my first donators πŸŽ‰

The Beelink T34 features a Gemini-Lake Intel Celeron N3450 CPU and comes with 4GB of memory and 64GB of eMMC storage. The small server I already run that has Cyca and HomeAssistant on it (plus various HA plugins) uses around 2GB of memory on a Celeron N4100 (which is a bit faster than the N3450). The Beelink will be used to host a dockerized Cyca, and only that, so I am pretty sure it will run well.

In fact, I am pretty sure Cyca could run well on a Raspberry Pi 4, which I will try later, when my work on the upcoming release is done.

This server will allow me to offer you a public demo version of Cyca, and also test the docker containers more efficiently and acurately than right now. It will be totally isolated from my network, so I won’t get the issues I had earlier. And it will give my laptop and dev server a bit more room so building assets won’t be so tedious anymore.

I am so thrilled about that, but of course, it doesn’t mean I don’t need more money: I have plans that involve a beefier server hosted out there to allow, hopefully, hundreds, thoushands of users, for a hosted version of Cyca - not just for a small harmless demo - targetting those who don’t want, or can’t run Cyca by themselves, and those with a very high volume of data to manage, etc. This will cost money too, and until I get my first mid-to-long term clients, I just can’t afford it by myself.

Code changes

Once again, without spoiling, I make few modification to Cyca’s code, which I am going to list here:

  • Visits are stored in the documents table, not bookmarks anymore
  • Completely overhauled unread feed items count routines
  • Marking a feed item, document or whole folder as read is as fast as it should have been

Keep in mind that, in order not to spoil you, a lot more was made, just not listed here.

Coming next

Hopefully next week, this time I have enough time to finish the new code and release the v0.8. The demo server should be setup and you could try out Cyca without the need of installing it first.

I really work hard on all of that, and I did it for the past 8 months. I really want Cyca to be something you could use. I don’t want to rush this particular release because I think it could be the reason why you would say: “I need this one”. Because I know you would. Because I know Cyca is good enough for that.

Stay in touch, and thanks for your patience 😁

Oh and, “one more thing”, maybe Cyca will get a new translation anytime soon…