Logo Cyca

A Week of Dev #15

A lot have been done this week again… But not everything was done on Cyca !

I release this episode of A Week of Dev two days earlier because of Christmas preparations. Same would probably happen next week.

Side note - Christmas sharing

The image used to illustrate this blog post (and shown above) is from David Revoy, my favorite French artist since I know about Pepper & Carrot.

You can see his original message here.

I highly enourage you to check out his work, it’s beautiful, cute, fun, and smart !

The Gemini Project

There is this new protocol that is getting more and more important over the days across some web user, in the spirit of the slow-web, or perma-web: the Gemini protocol. It is designed to be very small, easy to implement, easy to use, easy to browse. It was made to focus on textual content, so pages written for it are not made of HTML but a derivative from Markdown.

As it is gaining popularity over time, the need for bookmarking stuff from Gemini’s network should become important, as for any other site from the “regular” web. Cyca was made to manage bookmarks, so it needs to manage bookmarks from Gemini’s network as well.

The Gemini library

While there is already a lot of clients and servers for the Gemini protocol, I couldn’t find something for PHP. So I decided to write my own client/server library. I’ve wanted to experiment that kind of stuff for a long time, I think now is the good time for a real world use !

No integration to Cyca… yet !

It occurred to me that Cyca was made to manage bookmarks, not for the web, but for the HTTP(S) protocol. It is strongly tighted to it, because I didn’t realize that there could be a need for other protocols as well, such as Gemini now, but also FTP. Gopher, etc.

It should be easy to abstract the clients used to analyze a document. I just need to modify the database a bit, so the status of a document is not linked to a HTTP response but a generic response. Then, write the abstract code, and implementation for each client needed to connect to specific protocol, including my Gemini library.


The Gemini library took me two to three days to get to the point it looks usable but I have also worked on Cyca this week. And the most important additions are related to data extraction.

Now, Cyca is able to extract EXIF data from supported image types, and meta-data from PDF. If a PDF document contains a title, it will be used in your documents list instead of its URL.

Both images and PDF documents can now be previewed in the details panel, using the locally cached file, in place of HTML documents description.

Below the preview, you will find new stateful, expandable/collapsible panels, containing document’s meta-data.

Version numbering

I decided to change the version numbering. Semantic versioning doesn’t make sense to me at this point and in Cyca’s specific case. In fact, I have the feeling that it gets in my way.

Don’t get me wrong: semantic versioning does the job, and is absolutely appropriate in other circumstances. I just don’t think it is for Cyca. Besides, you may have noticed that wasn’t has rigorous as I should have been to really call current version numbers “semantic”.

Consequently, starting from now, I will use what looks like a popular scheme: Year.Week.Build. So, today, I published Cyca 2020.52.1 on Monday, which was the first build (or in my case, commit) of the 52th week of 2020. Easy peasy.


Finally, after six weeks of waiting, twitter decided to unsuspend my account. Well, big deal. Besides, there is this “verified accounts” policy that troubles me. It doesn’t feel right. Not a mark of reconnaissance but still given to large audience accounts, supposedly to inform you are what you pretend yet every body is a robot (or a PR manager). Not that I didn’t know that before, I’ve just never experienced it by myself. Well, now I did. And I don’t like it.

You know the difference between a house and a home ? Well, I only feel at home at home, although it took me a while to feel that way. I am still unsure if I am going to keep the twitter account.

What’s next

Well, 🎄 Christmas of course 🎅 !

Wether you are a Christian or not, or even religious or not for that matter, the end of the Julian year is, just like almost any other celebration, a moment of joy. After all, people from the West side of the world also celebrates Chinese new year. You can consider these holidays as just being a commercial thing, but wouldn’t it be sad for it to be just that ? It’s entirely up to you to make it a cheerful moment, especially after the terrible year we just had, and before 2021 that is probably getting even worse.

Forget about it being Christmas, or the end of the Julian calendar. We are all here, now, between troubled times, facing the same difficulties, regardless our political or religious considerations. So, let’s allow us a few days of blissful ignorance about what’s going on out there. Let’s pretend, only for few days, that everything is going fine.

That is what I am going to do, and believe me, it’m not natural at being blissfully ignorant. I am going to share these days with my wife and my children (yes, I’m one of those who call his pets his “children”), and we are going to eat good meal, play board games (on top of them, Civilization, A new Dawn) and watch a lot of TV. Because after these moments, and after my failure at building my own income with Cyca, I am going to need another job, quickly. After those moments, my wife is going to need to find another job as well. And it’s probably going to be harder than anytime before.

Stay safe, play by the rules, use video-chat to keep in touch with your beloved ones. Merry Christmas, folks !