JotaleaOS: a very tiny hobby operating system
JotaleaOS is an open source, minimalistic, experimental operating system made by Jotalea, designed for extreme low-resource environments. It does not support external programs or games, as it lacks a standard application execution environment. The system is entirely self-contained, running only its built-in commands. ā« JotaleaOS website Exactly what is says on the tin: a tiny operating system created entirely as a learning experience. Thatās ⦠ā Read more
thatās a fair point.
Perhaps, since Twitter in 2006 never implemented read flags, every derivative microblogging system never saw that as an expected feature. This is curious because Twitter started with SMS, where on our phones we can mark messages as read or unread.
I think it all comes from the difference between reading an email (directed to you) vs. reading public posts (like a blog or a āwall,ā where you donāt mark posts as read). Itās not necessary to mark it as āreadā, you just jump over it.
Reading microblogging posts in an email program is not common, I think, and I havenāt really used it, so I cannot say how it works, and whether it would be better for me or not.
However, Iāve used Thunderbird as a feed reader, and I understand the advantages when reading blog posts.
About read flags being simple, well⦠we just had a discussion this morning about how tracking read messages would require a lot of rethinking for clients such as timeline
where no state is stored. Even considering some kind of ānotification of unread messages or mentionsā is not expected for those minimalist client, so itās an interesting compromise to think about.
@eapl.me@eapl.me Read flags are so simple, yet powerful in my opinion. I really donāt understand why this is not a thing in most twtxt clients. Itās completely natural in e-mail programs and feed readers, but it hasnāt made the jump over to this domain.
Well, thatās another bug: The search https://twtxt.net/search?q=%22LOOOOL%2C+great+programming+tutorial+music%22 yields the wrong hash. It should have been poyndha instead.
cli/q: š± A simple programming language. - q - Projects I really like this little q lang that Ed has created ā¤ļø Really nice and simpler, great design and implementation and really lovely cross-platform compiler supporting DOS, Windows, Darwin and Linux on AMD64 and ARM64 šŖ
Android 16ās Linux Terminal will soon let you run graphical apps, so of course we ran Doom
Regardless, the fact that Androidās Linux Terminal can run graphical apps like Doom now is good news. Hopefully weāll be able to run more complex desktop-class Linux programs in the future. I tried running GIMP, for example, but it didnāt work. Eventually, Android should be able to run Linux apps as well as Chromebooks can, as I believe one of the goals ⦠ā Read more
Google begins requiring JavaScript for Google Search
Google says it has begun requiring users to turn on JavaScript, the widely used programming language to make web pages interactive, in order to use Google Search. In an email to TechCrunch, a company spokesperson claimed that the change is intended to ābetter protectā Google Search against malicious activity, such as bots and spam, and to improve the overall Google Search experience for users. The spokesperson noted that, with ⦠ā Read more
Google Begins Requiring JavaScript For Google Search
Google says it has begun requiring users to turn on JavaScript, the widely-used programming language to make web pages interactive, in order to use Google Search. From a report: In an email to TechCrunch, a company spokesperson claimed that the change is intended to ābetter protectā Google Search against malicious activity, such as bots and spam, and to improve the over ⦠ā Read more
Alright, I have a little 8086 assembler for my toy OS going now ā or rather a proof-of-concept thereof. It only supports a tiny fraction of the instruction set. It was an interesting learning experience, but I donāt think trying to ācompleteā this program is worth my time.
The whole thing is just a learning project, I donāt want to actually make a usable OS. There are a few more things I want to have a look at and then Iāll eventually move on to 386/amd64 later this year (hopefully).
@kat@yarn.girlonthemoon.xyz To improve you shell programming skills, I highly recommend to check out shellcheck
: https://github.com/koalaman/shellcheck It points out common errors and gives some suggestions on how to improve the code. Some details in shell scripting are very tricky to get right at first. Even after decades of shell programming, I run into ācorner casesā every now and then.
E.g. in getlyr
ās line 7 it warns:
echo -e $(gum style --italic --foreground "#f4b8e4" "'$artist', '$song'")
^-- SC2046: Quote this to prevent word splitting.
For more information:
https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
Most likely not all that problematic in this application, but itās good to know about this underlying concept. Word splitting is basically splitting tokens on whitespace, this can lead to interesting consequences as illustrated by this little code:
$ echo $(echo "Hello World")
Hello World
$ echo "$(echo "Hello World")"
Hello World
In the first case the shells sees two whitespace-separated tokens or arguments for the echo
command. This basically becomes echo Hello World
. So, echo
joins them by a single space. In the second one it sees one argument for the echo
command, so echo
simply echos this single argument that contains three spaces.
Chess Zoo
ā Read more
The editor can launch a new shell now:
https://movq.de/v/6ec68b50dd/los86-edit-shell.mp4
Trivial to implement but super useful. It allows for simple but meaningful dev cycles: Edit source code, run/test it, back to editor. Thatās what I do in the video.
(The Brainfuck program is silly, but I got nothing else at the moment.)
The I/O cache is also getting better. All that back and forth doesnāt hit the disk at all, once cached.
This whole thing is much more fun and interesting when you run it from a real floppy disk. Itās a 5.25ā floppy in the video (so itās actually floppy š ). Disk seek times can be catastrophic and you donāt notice any of this on modern disks.
@movq@www.uninformativ.de Woohoo, noice! Now you can ship, even sell it! :-D
All kidding aside, even though I never wrote a proper brainfuck program myself, I do like that. :-) Keep it going.
My OS has a Brainfuck interpreter now and this counts as a programming language, right? Weāre feature complete now. š
rose put crack in apt because jesus christ i just find myself mindlessly chanting āapateu apateuā under my breath at the most random times. some brain programming shit
@movq@www.uninformativ.de woah itās like a cheatsheet with explanations! java is kind of arcane magic sorcery to me so iām having trouble understanding it but i have that with most programming languages. this is like so much easier to actually look at and read instead of my eyes glazing over lol
@movq@www.uninformativ.de Thatās so damn cool mate! I went through the code, but this lowlevel stuff is really not my favorite cup of tea. Having said that, it was actually really nice to see the abstractions and APIs work together and how things are getting indeed very readable in the userland programs. Thatās easy to track in this extremely tiny OS implementation. Excellent work, keep on hacking!
Now, you just have to quickly add a network stack and then can write a twtxt client for it! ]:->
@prologic@twtxt.net oh itās ok! thank you for the explanation! i think for me when it comes to programming i learn best by doing, so like written examples or talking about it helps less, BUT baseline explanations like what a pointer is does help! i was so confused and i still need to fix the error iām having but i will figure it out!
@movq@www.uninformativ.de Wow, quite an elaborate editor youāve programmed there!
Okay, this is pretty cool. My 8086 toy OS running on my old Pentium from an actual floppy disk. š I just love that sound and the feeling of using floppies. This brings back so many memories from my early DOS days.
The cp-unopt
program copies a file and intentionally uses small unaligned reads/writes (hopefully triggers more bugs).
The I/O cache works āokay-ishā, I guess. When sha1
runs, it has to do a few reads for the first file and basically none for the second one. Both could have been served entirely from the cache, theoretically. (But even just having an I/O cache in the first place speeds up things dramatically.)
Notice how thereās an EA
file. Thatās a left-over from OS/2, because I copied some files to the floppy using OS/2. In other words, my FAT12 implementation survives OS/2 writing to it. š„³ (But I guess it should show up as EA DATA.SF
. My current code starts at the left and stops at the first space.)
https://movq.de/v/d4d50d3c74/los86-on-p133-from-floppy-small2.mp4
Thanks @bender@twtxt.net for the feedback. I fixed and expanded the article. Iām sorry for my poor interaction. Furthermore, Iām reading and writing while programming a client in Emacs.
Sunset:
No, of course not. This is the gingerbread in the oven with my digicamās sunset program. The second photo shows the colors more like they are in reality. It surprises me every year how absolutely sticky this dough is. Holy cow! Close to impossible to spread it evenly in the baking tray. https://lyse.isobeef.org/tmp/lebkuchen-2024-12-20/
@eapl.me@eapl.me @bender@twtxt.net @skinshafi@thunix.net The feed that nobody follows out of fear.
When I started programming in Delphi, I always included all the files (not only the *.exe, but also *.pas and what else there was) when giving friends my programs on floppy disks. I didnāt know that the executable was technically enough. :-)
@aelaraji@aelaraji.com This is an Intel i7-3770 from 2013 with an integrated GPU (HD 4000).
Looks like FreeCAD works fine and I think this is a more appropriate program anyway. š
If I use Fedora on my PC, Vivaldi as my browser, Signal as my main messenger program, then which OS should my phone run on?
LOOOOL, great programming tutorial music: https://www.youtube.com/watch?v=yup8gIXxWDU
a new emmanation of my trusty old vim config, now available as a home-manager nix module. now i can track my dependencies with nix instead of using git subtree and it makes installing backend programs like language servers and such way easier. https://src.ix.cyb.red/pe-vim/
stick computers, to snugly fit in reclaimed plastic tubes/containers #halfbaked #coding #programming #embedded #electronics
today I wrote a CV sequencer in VoodooAssembly for work O__O #coding #programming #embedded
#fzf is the new emacs: a tool with a simple purpose that has evolved to include an #email client. https://sr.ht/~rakoo/omail/
Iām being a little silly, of course. fzf doesnāt actually check your email, but it appears to be basically the whole user interface for that mail program, with #mblaze wrangling the emails.
Iāve been thinking about how I handle my email, and am tempted to make something similar. (When I originally saw this linked the author was presenting it as an example tweaked to their own needs, encouraging people to make their own.)
This approach could surely also be combined with #jenny, taking the place of (neo)mutt. For example mblazeās mthread tool presents a threaded discussion with indentation.
@prologic@twtxt.net Brute force. I just hashed a bunch of versions of both tweets until I found a collision.
I mostly just wanted an excuse to write the program. I donāt know how I feel about actually using super-long hashes; could make the twts annoying to read if you prefer to view them untransformed.
when I say āfunctional programmingā you think āhaskellā and I think āBQNā
OK I found this one, small enough, but where does it install to? canāt find the app, of any files of anything.
Being a total novice to Linux stuffā¦.where is this file located and why donāt they prompt you for a folder location of the program? And why such a stupid name? Dozens to choose from and most over 300MB, not what I want - I just want Apache to run the index.html webpage or the index.php webpage. I do not need Javascript or Java programming editorsā¦.
If some of you budding fathers want to know how I created a computer nerd to one day work for Facebook in the big USA, well you purchase a $1000 Xmas present, an enormous thick book with C++ programming, and say, you can play as many games as you like kids, but James has to create them using computer software.
SO James created once a 3D chess program with sound, took 6 months or so, really hard to beat, not based on logic moves point by point like other chess programs, this one was based on the depth of looking for patterns, set it to 5 moves ahead and you were toast every time. Nice program too, sadly gone over the years, computers suffer from bit rot. We used to try and mark rotten hard drive discs once as bad sectors, not sure how UBuntu does this these days, I see a dozen errors on the screen every time I load.
Today I would purchase for my kids AI CAD simulation software with metal 3D printer and get your child to build fancy 3D models and engines from scratch. This will make them an expert in the CAD AI industry by the time they are 14 years old. Sadly AI is here to stay and will spoil the Internet.
@bender@twtxt.net Is it so maxed out you couldnāt fit a pretty small program like Headscale on it? Headscale by itself and only personal home type use as far as amount of peers go, it really isnāt noticeable I donāt think resource-wise. The Docker version I guess could be a different story.
@movq@www.uninformativ.de Somewhere or another, I think in a William Byrd talk, I heard it suggested that the best ideas in computer science should fit on an index card (ah yes itās this one: https://paperswelove.org/2017/video/will-byrd-most-beautiful-program/ ). He was referring to the basic principles of LISP/the lambda calculus, which have sometimes been called the Maxwellās equations of computer programming (by Alan Kay). Simple, short, elegant, but very densely packed with meaningāgenerations of people have spent their whole careers unpacking what those simple rules can do.
Much of modern software feels like the polar opposite of that. Not only can you not write it on an index card, you never will be able to because people who write software donāt seem to aspire to try. I wish more people thought this way though!
Imperative programming is comfy
Best way to write programs: turn off the computer.
@johanbove@johanbove.info Is there any reason to use this program? I canāt remember when I last had it installed, must have been early 2000ās.
Notes et astuces intƩressantes pour #awk: https://eradman.com/posts/awk-programming.html
@movq@www.uninformativ.de Haha! yeah sounds about like my HS CS program. A math teacher taught visual basic and pascal. and over on the other end of the school we had āelectronicsā which was a room next to the auto body class where they had a bunch of random computer parts scavenged from the district decommissioned surplus storage.
The advanced class would piece together training kits for the basic class to put together.
@prologic@twtxt.net High five, Iām āgeneration Javaā as well! š There were some leftovers of C++, we used that in the computer graphics courses in Uni a lot. But pretty much anything else that involved programming was Java.
(There was nothing even remotely resembling CS in our āhigh schoolā. That school neither had the required teachers nor the equipment / PCs.)
I finally found the NASM assembler.
I had heard that name before, many times, but somehow never looked into it. Weird. š¤Øš¤
This is the kind of program I was looking for.
- It is free software. Especially in the DOS ecosystem, free/libre software is a very scarce resource.
- Itās a small command line program, not a huge behemoth.
- Documentation appears to be well written.
- It can even cross-compile DOS binaries from Linux.
Iām really bad at competitive programming. š For todayās #AdventOfCode puzzle, I spent an eternity trying to understand exactly what kind of bG9naWMgY2lyY3VpdAo= the puzzle input describes ā I havenāt done that in well over a decade, so I made little progress. I knew right from the start that SSBoYWQgdG8gbG9vayBmb3IgY3ljbGUgbGVuZ3RocyBhbmQgdGhlbiBmaW5kIHRoZSBMQ00K. It just didnāt occur to me to just run my program on cGFydGlhbCBpbnB1dAo= and print those numbers. š„“ I only did that after over 4 hours (including time to debug my nasty C code) and then, boom, solution ā¦
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. -Robert A. Heinlein
So todayās #adventofcode was solved with no programming. Just a bit o maths and wolfram/alpha
How did I just find this program? Reptyr: Reparent a running program to a new terminal: https://github.com/nelhage/reptyr
Inspiration
ā Read more
Erlang Solutions: Blockchain in Sustainable Programming
The benefits of blockchain implementation across multiple sectors are well-documented, but how can this decentralised solution be used to achieve more sustainable programming?
As the effects of the ongoing climate crisis continue to impact weather patterns and living conditions across the planet, we must continue to make every aspect of our lives, from transport and energy usage to all of our technology, greener and more sustain ⦠ā Read more