Author: wikiyu

  • Links for…

    5th try of writing this

    Ok, so I have a problem.

    I got now over 2000 links in my browsers bookmarks. And I tell only about two folders: /toRead and /toRead(1). Beside of them I have also about 2 hundred of normal links to tools, githubs, apps, websites that I just use ~daily.

    Lets dig in these two folders. I need to do it finally.

    /toRead

    its just a folder with ~1.5k links in some subfolders that some day I decided that I should read some day. And to most of them I have never get back.

    /toRead(1)

    here I have stuff that I have read and decided that I should get back to them in future*.

    Now as I have additional tools in my box I want to make it a bit cleaner. So lets assume that I have some spare time. I am moving all that mess into shaarli app that I am running on my home rpi. All of /toRead got “toRead” badge, and these from /toRead(1) got “reReadNeeded”.

    Now the plan is easy: get thru them one by one and make one of two things: remove or add new tags.

    Depending on tags it will go into new area of “to read”, new area of “worth to know, or reread” (and it would be even here in some form?). Oh and all these stuff should go into linkwarden as copy to read later.

    but

    I have to find a way to put them here. Maybe I just make an html table and include it using simple js, or whatever. Even IFrame is better then messing with ghosts post formating shit.

  • Learning Ghost

    I just started blogging… using Ghost. And It’s really great tool. Unless you want to do any automatizations using API for creating / updating your posts, pages, etc. Editing any content using this API is mess. And lets play a bit.

    <p>My first paragraph of text</p>
    <p>My second paragraph</p>
    <h2>middle text header</h2>
    <p>Third paragraph</p>

    I would think that using something like HTML or Markdown inside your DB for storing text would be great. It is simple. It is well known. We all know how to handle this shit and we all can pass it to email, any browser, or import/export between different engines.

    {"root":
        {"children":
            [
                {"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"My first paragraph","type":"extended-text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},
                {"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"My second paragraph","type":"extended-text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},
                {"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"some header","type":"extended-text","version":1}],"direction":"ltr","format":"","indent":0,"type":"extended-heading","version":1,"tag":"h2"},
                {"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"My third paragraph","type":"extended-text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1}
            ]
            ,"direction":"ltr","format":"","indent":0,"type":"root","version":1
        }
    }

    This is the same part of data. 2 paragraps, 1 header, 1 paragraph. Oh and just a bit of additional shit.

    Sorry -> i do not want anymore to add a page for stuff that I want to read. I planned it as a really simple page with a list of links with titles and short note from myself about why I think its worth reading. etc.

    But hey. If I need to create this whole shit… I do not want to do it. Even once. Sorry but someone is really SICK and should rethink his life. Creating something like that is maybe great… but as a learning purpose, not to push that to people.

    lets play a game

    {"children":
    [{"detail":0,"format":0,"mode":"normal","style":"","text":"My third paragraph","type":"extended-text","version":1}]
    ,"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1},

    this is one line of text. One paragraph.

    First: seriously, you have to tell your app that inside an array a item is… CHILDREN? who would think about it…

    Second: if stuff is in default state someone decided to still put it into object… all these “xxx:0″ or :normal or :””

    Third: version… first version has still a number? for what?

    Fourth: D E F A U L T S for fuckin sake. LTR is not a default? Maybe we should put it as default for language of whole post or whole website? Or … oh fuck it. 90% of this object is just passing a defult values and killing world overusing electricity, data storage, networks, ram, cpu cycles and everything else.

    AND making harder to create a proper object by 3rd party automations. Because fuck the community.

    So maybe it is not worth staying with ghost?

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

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

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

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

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

  • Copying

    I would not discover New Great World when I just say – I am copying a friend. I love his blog and some of the ideas that he follows as his routines. So I want to get into his shoes and follow the similliar pattern here.

    Yes – its my 20436 attempt to blogging. I was also really close to buying a domain with name similliar to “MyLastBlog.com”. So what are the templates to be copied?

    100xxx

    He often uses this phrase – and its not about porn – 100 photos, 100 articles to … etc. And it looks great – it is not a daily idea. If you want to close it in a year it is just twice a week – good enough for consistency, rare enough to not burn it.

    And I know that “do sth 100 times to learn it” rule, like Ibrahim wrote it already for few times.

    Summary

    Monthly summaries – great idea for not being stuck with “what the hell i can write”. Just summarize your last month with links and some stats from other places in the web.