Category: tech

  • Python

    I really like the functional programming with the simplicity of making stupid things. You can just take a python, or bash, or (even) c# or java and just write straightforward code that does your direct need.

    You know without building whole ecosystem and cicd pipeline and crud and whatever. Just joining things to do in logical pipe of actions.

    the good

    Python is great for that. You are taking your build blocks aka libraries, initialize them, use on an object to work on and throw modified ones. Step by step to get a result.

    the bad

    Of course there are bad parts like building an venv for these fucking scripts, and always messing with that hilarious method of downloading new ones using one of two dozen different repository tools, and … you know what I mean. pip, pipx, distro packages, and other shit that you have to use to get these required libs.

    Oh and I have to mention that great movement of “do everything in JS” with the same mess with versions of node.js and its libraries… at least these bastards have quite unified world of dependency downloading

    and the ugly

    spaces. tabs. indents. No braces. So code looks like the “evidence” of dozen of guys that walked out from the pub after 5 or 6 pints to the snow and decided to make a contest about “who have the strongest pressure of pee”.

    And yes. This post have been bought to you by another python mess that I found on github, but I needed to adjust it as it was not working on my machine, and download threescore of dependencies that I already have on my system, but maybe in different venv so I cannot use it and need to download them one more time.

    Have a nice day friends

  • how i hate AI…

    This whole enshitification process in the world is so fucking terrible. We cannot just make an business ready application, now we have these all shit trends about llm/ai, vibe coding, copilots, etc and its so deep in the ass that I even cannot believe.

    Due to some personal reasons I am not working now in this messy IT industry, I look from the side and using tools like hammer, hex driver, screw driver, pliers, file, vice… for living. And Oh god how i love that distance.

    But sometimes I need something from the internet or from my computer. Then I use a sheet of paper, project what I really need and go to create it.

    A, middle finger, I – this is how MS copilot creates “big A, old mans hand showing finger with green nail, big I” And the nail is blue not green, and this is very weird hand, mostly woman hand with some man hairs on it.

    It can be a new 3d project to print on my old Ender 3 – and yes, i use plotter paper to create that kind of projects first, before I go into some 3d modeling software on my computer.

    But sometimes the stuff that i need is a software. It was few days ago when I tried to use these AI bullshit for code creation. I have asked MS copilot, G gemini, ChatAI and two random models from huggingface that should focus on python code creation. I wont tell you which ones because i have already deleted them.

    It was simple: just creating a python script that goes into SQL db, gets data from simple select with two joins, on that basis it should go into directory, get a file for each SQL row from our select, and make a http post onto some API (just http://localhost/upload, with bearer token) posting a simple multiform data structure including a file from directory AND short simple json created using sql data.

    I was lazy, so I created instructions – i needed to write them anyway so… lets do it in more formal way – and put them onto all five models. tweaked them and put them another time…

    I had a plenty of time because in the meanwhile I was cleaning house, and working on our plants, and… many other much more interesting things than playing with AI and computers. So after about 10 iterations (10! its sick… human would do it after first description) all AI generated code was a bullshit…

    Sorry it was looking pretty, All had exception handling, parameters validation, config stored in additional file, nice cli argument handling.

    NONE of the code works.

    Some cannot make two joins in one select… so it was a 100 code line mess of selecting data 3 times, merging and comparing data on the client side… shit

    Some can but cannot just find a file in /home/user/script/data directory … because when I asked for using table.id for filename and .gpx for extension… it decided to look for a file: “datetime.gpx” instead of “id.gpx”why? I dont know and I dont care

    BUT all of them halucinated on the http POST request. None of the models was able to create this request. All of them tried to use “requests” library, and none of them saw this page: https://stackabuse.com/bytes/how-to-send-multipart-form-data-with-requests-in-python/ or this: https://requests.readthedocs.io/en/latest/api/#requests.Request or … oh it doesnt matter. It just hallucinated that It can use json= and files= in one request, oh and sometimes it even tried to use .addFile() and .addJson() methods that are not exist in requests…

    So For me now AI is still worth two things:

    being dumped in a big pile of shit

    generate deepfakes, deepvoicefakes, porn, and stupid images like one before. Especially that MS copilot even didnt try to follow my instructions to the end… like colour of nail or sex and age of hand. So lets leave it like that.

    Time to go back to real life, real tools and working to make some people happy.

    Post Scriptum: title “How I hate AI” is not a mistake, I still hate it from the first day, so it is why I didnt write “How I hated AI” as this was already hated on the day of trying.

  • Its always DNS

    You know that meme-like sentence about errors, outages, etc… that its always DNS? I hope yes, because a lot of people doesnt understand DNS, and docs for it are – mostly – hardcore to understand for younger people.

    Its mostly because it is documented in an old way – using tech docs, rfc`s, etc. And not with fancy json, yaml and tweets from random tech gurus.

    So what I did lastly was … setting up my own DNS in the home network but with limited access from outside. So at least my all devices at home, and my mobiles have access to it.

    Why?

    No way, no one would ask that question. Its silly. Because I can. Also because I wanted to. And because Its much easier to manage home network with much of a domains that are easy to remember. You know without that all .local mess etc. I can just use whatever domain I want to.

    So when I want to go onto my blog i can put https://blog in my website address bar, same with git, video, photos, etc

    It is great to just put whatever I want onto address bar and go to some place. And You know whats funny? IT IS GREAT

    Also I can block or … overwrite ANY domain that i want to 😀 and its even greater because I can push any youtube.com link onto my home owntube instance etc

  • SSO – Shit Security Option

    Let’s assume that I want to use some random webapp. I don’t know… strava, perplexity, whatever. Maybe I want to play some stupid online game. Whatever.

    And there is one thing that pisses me off – forcing me to using SSO where i should use no account or have a possibility to use just login+pass and some kind of second factor 😉 just because i think that should be. But hey… If you are making some stupid shit and you are too lazy or stupid to implement login+pass+mfa but force me to pass my FB or G or anything else account from other company.

    Sorry but I hate it. Sharing everywhere ONE account, or two because you cannot have FB on G, or LI on FB… whatever … its shit. It is stupid. If you want any of my data – you have to do some things by yourself.

    You have to provide me an option to just use login+password+MFA. It is very simple – really. We – IT industry – done it before, and we all have access to papers about how to do it in line with the art of coding. Really its not hard. Just take these papers and implement it.

    Oh and – its important – allow us to use MULTIPLE authentication methods for ONE account. Like – I register using login+password+mfa BUT later I can add my G SSO and F SSO and LI and … have many of them. Because it is possible and its better for you – app owner.

    Because IF I lost access to my X account because I am too lefty or I am from Iran or whatever… I still can use your app using login+password or using some other SSO… And you dont own google or facebook or whatever, and you cannot be sure that they will not create a new “great” app that will be clone of your app … and while you made it really great, they just decide that “sso on yourgreatapp.com” is no longer active… and no user will be able to restore their accounts … but they can start free now on GClone or FBClone…

    So – friends – fuck this SSO trend and just allow us to use mail+pass+MFA + multiple SSO … all of them on ONE account. Because we can.

  • 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.

  • Fusion

    This is now the last application that I am not able to run on Linux, and it doesnt matter what I try. Native Wine, proton, different bottle setups etc. Just this is the last piece of stopping me from removing windows partitions from my nvme drive.

    I am thinking about OSes too much in last year or so. I’ve moved to Fedora few years ago, then moved to Arch and still am sitting on Linux as my daily driver for enough time to not want to get back to windows. UI of my KDE desktop is so clean, windows tiling is so great with my current setup, multi monitor setup is working perfectly in all configuration, as I am using laptop display only, external widescreen only, tv only, 15` external only… or All of them at once, or laptop+wide or laptop+tv or … you understand right?

    And each setup I have managed to have its own windows tiling setup that is perfect.

    Also I have managed something that I have ever reached on windows: run three websites at once, each of them playing audio on different set of speakers or headphones. Like one movie from netflix on TV + BT headphones, one live sport coverage on widescreen + audio on the same screen audio and other movie on laptop screen with audio on usb headphones.

    I have never managed it on windows. And here I have done it just using gui in kde settings while running them.

    So Fusion is making me crazy now.