Category: tech

  • Signal?

    Since I was ~10 or 11 I have access to the internet. At early stage it was thru internet cafe, then very slow DSL and … then world somehow managed to push me into “always online” state where even my watch has its own eSIM and internet connection. So where are we now at the story my friend?

    Oh yes, at the begining I was using IRC and ICQ, then we had in Poland also GG communicator which make all ICQs looking like an grandmas chat. But I still was using IRC and other stuff like XMPP at some point, and then we had some friends on XMPP by Google (aka talk/chat/hangouts/whatever) or XMPP by O2 (Tlen) and some other ones.

    And in modern era I am talking with people using Meta stuff – Messenger (and a while ago it was also instagram), SMS, Signal and … email. Thats all.

    But I have a problem – Signal doesnt have any nice API for bots. And I Love bots. I truly love to have a chatbot in my pocket that will answer to my silly needs. Really. Because its faster and less distracting then any other way of getting these answers.

    Examples – checking current weather with a short forecast – I have an instant text answer. No icons, no emoji, no graphics, no maps… etc. Simple action. My second best friend is adding new source to RSS reader -> just write RSS https…feedurl.something… and its in my freshRSS. Simple and fast. And mobile friendly 😉

    I have also notifications from my two fav youtube channels, and i can share a quick text that lands here -> in ghost, as a draft. So I dont loose my ideas for later. Ofc most of them is not for new blogpost, but just notes with some quasi-important stuff that I dont want to loose. But it works for me.

    And It was tough experience of creating that bot. It will be some day on some OSS friendly git hosting. But didnt decided yet which one is enough OSS friendly for me. But I am using signal-cli with signal-cli-rest-api addon and my bot is written using least FOSS of all FOSS software 😉 – C#+.Net because Its my hammer that see everything as a nail.

    But it is a very powerful hammer that can use a lot of stuff as a nail. Even people that laughs from me can be a nail… 😉

    Oh yes but I have been talking about bots.

    Thas stuff that I hate in Signal. Why the fuck I cannot just register a BOT account without a mobile, that would be hardcore marked as BOT in all signal conversations and so on… Instead I had to buy a SIM card or eSim or rent a number online… just to have this one service working. Its so stupid… but hey – its popular so I have it on my phone anyway.

    It is still much cheaper to once buy a sim card in Poland (~1,2€ for few days, and after you register number in signal and make it PIN safe + remember to login in regular manner its safe) then use SMS bot ;-). I am trying to get rid of Messenger so it was a no-go. And E-mail itself is a distractor for me. Distractor that have its own BOT gate in my ToDo list.

    And yes – I was considering telegram, irc, xmpp and other “easy to implement” bots but it would be another communicator app on my mobile that I would like to NOT have.

    So for now I am dealing with c# signal app and thinking which git hosting is last on my own git suck list content. As each of them is not a good place to be.

  • Rss new feed post

    As most of these blog writing dinosours I`m using Rss reader to fetch my daily dose of information, news, motivation and to stay in line with new tech that is coming to us each day.

    In last few days I had added ~25 new sources to that reader. It was not a easy task – when I found a new blog and added it to my reader there is that annoying action that always take me to the hell of “Should I stay or should I go now”. I mean that moment when reader downloads everything that is in the feed and shows it as “latest” as it was recently added to its database. Instead of putting each article in chronologicar order by original content creation time it is in order of downloaded to reader. So I now have 200 new posts on top of my daily dose of routine.

    And imagine that I have added not 1 or 2 pages, but 25.

    It was over 5k new articles in reader as most of GOOD blogs shows not “last 10” but ALL data in their feed.

    What to do?

    • Should I just mark source as read?
    • Should I put it in another folder named “to check later”
    • Should I read it all?

  • Lost my code

    In last few days i have read few articles about coding, software engineering, LLMs, and push that can be done using these new tools, even by people without big programming knowledge. But when I wanted to summarize that all I found another article that made my day much better. Lets dive into all of these.

    1. The Parallel Lives of an AI engineer
    2. Entering Technical Debt’s ZIRP Era

  • Hoarding or preserving

    I love to read, and I love to get back to articles, books, essays that I have already read. So I have my own Linkwarden instance that is hoarding a lot of articles and blogposts and so on that I have read and I think that I would want to get back to.

    Is it already a hoarding or preserving them for future? For others? For … authors even?

    I don’t know.

    What I know is size of my database, size of files on disk and that I will need another disk in near future. But is it already a hoarding? I have a lot of blogposts that are so outdated that I should have not add them in the first place. I have even videos from conferences that have been outdated on the day of recording. But I know that maybe some day, someone would want to get it. Like I had some live shows recorded from YouTube that authors lost and I had this nice opportunity to share with them my collection of their lives. It was funny for both sides.

    But

    Now I am adding even more hoarding tools -> my RSS reader have this nice “star”/”fav” button, and all articles that I am starring are going to be added to linkwarden without any more steps from me. Just “starred mean hoarded”.

    Will it be useful anywhere in future? I doubt it.

    But the tool will be a nice addon to my life, and i will feel safe about all these stupid stuff that I am starring in reader.

    Have a nice day.

  • Hoarding.cs

    Ok, first of all: I know that it should be just a .sh or .py script… for you all purists. But I’m a guy who is doing things using tools that he know the best. So YES I am using .net and c# in many projects that it doesn’t fit great, but its easier for me.

    Also when I’m writing script like things in .net I do NOT do all stuff that we all are learned to do. I do not do OOP, I do not do SOLID etc. I am just making few functions that are combined together, often with dynamic objects to ease up my development and put it onto final machine in few dozens of minutes.

    But what my newest tool does?

    It is runned in Cron on the twice a day basis. Then it goes to the local DB of my personal freshRSS instance and gets an answer for a simple answer:

    select * from freshrss_{{username}}_entry where is_favourite is '1';

    then we do a second level magic of …

    foreach (var item in selectionAnswer) {
      if (!DoesFileContains(item.id)){
        PushOntoLinkwarden(item);
      }
    }

    that is that simple…

    Also DoesFileContains is just a function that crawls thru a “movedItems.myFile” which is a file with a structure od “id={{freshRssEntryId}}\n” and this function checks if this string exist in file.

    And PushOntoLinkwarden is a function that do two things:

    1. https://docs.linkwarden.app/api/create-link <<– adds link onto my linkwarden instance
    2. if POST method succeeded it adds item.id to the end of “movedItems.myFile”.

    So this is about 100 lines of code in total. It works. And that’s it. And as it runs on the same Pi that both freshRss and Linkwarden instances I dont care too much about hardcoding logins, apiKeys, passwords etc inside the code. And its still 100 lines instead of 40 because of my laziness. I do some stuff in a longer way just to be able to maintain it in future.

    I want this code to be easily readable by me after a year or two of not touching it. So long function names that describes everything. Not using lambdas and any shortcuts that are really nice and so pushed in programmers social media, for staying in line with this most important request: readable.

    Have a nice day.

    PS but it still is not solving my most important issue: having a single place to go thru all links that I marked as “to check” in many different tools. FreshRSS is posting to linkwarden to preserve what link contains. Not to be readed. But that is a different story for different day.

    PS between writing and publishing that post I have rewrote this mess. Now instead of a file I have a second table in DB with two columns: EntryId and LinkwardenSynchronised (Nullable), so I can add another syncs in future with ease.

  • databases

    I love how docker, especially docker compose has changed life of (server) software distribution. It is just like two or three commands and you can host your own website, blog, wiki, photo gallery. It is also just few clicks in IDE or commands in CLI to have full work environment ready to test your new feature. With all dependencies, all stuff that you would miss or use wrong version of.

    But…

    There is also a quite big downside – If you are using a lot of docker composes predefined by software authors, then you can became a dependency hoarder. For example how many databases you need for 10 apps that are hosted from your home server?

    10? 5? 1?

    That was something that hit me yesterday while I was exploring why my Raspberry Pi have so high usage of RAM. It was … 1 Influx DB, 3 MySQL, 6 PostgreSQL. Now after about two hours of playing I have still 10 DBs but with only 3 DB engines running instead of 10.

    My laziness … or just ease of use of these predefined docker compose files… created a sick env that had SIX running engines of PostgreSQL on ONE small raspberry Pi. It was taking so much RAM and CPU cycles that I really see a difference now after merging them to be just 3 engines with multiple databases on them.

    So… I will still use docker compose yamls, I will still be lazy and will use these predefined defaults. But I need to remember that if software that I am trying is good enough and I want to hold it on my server, then I need to do another migration.

    Because it is much easier to remove whole setup from docker compose file from my rpi then removing single db from an engine that hosts multiple production-like dbs that I want to still have working… Whoever never misspelled filename for rm command can now laugh, but I had this mistake.

  • easy 3d printing

    Recently I started to really hard use a Fusion 360, its an 3d modeling tool that’s free for non-commercial use with some additional asterisks. After that I need to share some thoughts about most 3d models available at printables, thingverse and so on.

    People are just lazy about thinking how 3d printers work, and clone well known ideas from molds that they know. 90° angles on the bottom side, not thinking about bridges, forgetting that some side should be considered as base.

    Examples? Ok. Lets talk about engineering Ravensburger Gravitrax Junior rip-off. That’s a great toys for learning some basic rules of physics. And are not cheap if you want to create something more complicated to simple loop.

    And its of course molded in original set. So when you will look at printables or any other free/cheap models website you will see… perfect rip offs of that model. So you will have one of two issues.

    1. printing in the air on the sides
    2. manual cleaning after using supports

    So what you can do instead? I have seen one really good idea:

    One piece is a top with a place to mount a “ring” that fits into lower part. And its great for printing: much faster because of nearly no bridging, much lower use of material due to no supports etc. BUT you have to manual join them and use some glue to make it permanent.

    And you can use some 3d printing tricks that will make that prints much easier to print, not need for use long bridges and supports. How? For example using technique of stepping up layer by layer a bit further. 3d printers can do it pretty easy, even older ones, and they can do it for 5-20mm at step depending on printer. Even my old Ender 3 can do about 5-8mm at once. What I mean? Just making bottom not 90° but for example 70° like here:

    And yes – I have just recreated most of models from web to just have it much easier to print.

    Also I am thinking about … legal stuff. How the hell is it possible that hardcore ripoffs of copyrighted items can be available to download from everywhere. OK I understand that there is a lot of new items for (for example) Gravitrax that are not even exist from Ravensburger sets, and its OK, that’s like custom mods, custom add-ons. But hey, rips of original ones are much easier to find than that custom ones.

    How these companies are not fighting with prusa, and other owners of maker websites for these models? Or our makers world is so small that they not care, or even are happy because people post it on r/someShit or youtube and make their sets more popular, and know that beyond these 20 guys no one will print it?

    Are we still so deep in our basements that they don’t care and just piss on it?

    PS YES these graphics were made in KolourPaint – soft like MS Paint for KDE Linux UI. I am proud of them.