7 ms·
I feel like the idea could be covered by commodore 64. Even adding basic networking in any way opens up an absolutely massive amount of un-abstracted concepts a
by spicybright 5y ago
I feel like the idea could be covered by commodore 64. Even adding basic networking in any way opens up an absolutely massive amount of un-abstracted concepts and processes to keep in one head.
That said I flippin love people re-inventing a computer into something not derived from a VAX timeshare machine from the 70s.
- selfhoster11 5y agoThe main issue with older machines is that the resolution isn't great for writing. I like reasonable letter shapes, and you kind of need 640x480 for that at least.
- finite_jest 5y ago:-) 640x480, also known as God's preferred resolution: https://en.wikipedia.org/w/index.php?title=TempleOS&oldid=1057407249#System_overview https://en.wikipedia.org/w/index.php?title=TempleOS&oldid=10...
- akkartik 5y agoYeah, this was definitely a concern for me when building Mu. What do you think of the one font Mu has? It's http://unifoundry.com/unifont http://unifoundry.com/unifont. I was trying to get to some minimum level of legibility while otherwise optimizing for simplicity. 1024x768 seemed like a reasonable compromise, though adjacent resolutions are also fine.
- andai 5y agoI like that font: I once saw it in a screenshot and spent a good amount of time trying to figure out which font it was.
- yorwba 5y agoNote the limitations section: > Unifont Limitations > Unifont only stores one glyph per printable Unicode code point. This means that complex scripts with special forms for letter combinations including consonant combinations and floating vowel marks such as with Indic scripts (Devanagari, Bengali, Tamil, etc.) or letters that change shape depending upon their position in a word (Indic and Arabic scripts) will not render well in Unifont. In those cases, Unifont is only suitable as a font of last resort. Users wishing to properly render such complex scripts should use full OpenType fonts that faithfully display such alternate forms. So if your intention when choosing unifont was to support all of Unicode, it would be good to make it not too difficult to add more fonts.
- akkartik 5y agoI definitely prioritize supporting all languages. (I don't care about flags and emoji and crap like that.) However I don't know enough yet. The current list of supported languages is enumerated at http://akkartik.github.io/mu/html/103glyph.subx.html#L98 http://akkartik.github.io/mu/html/103glyph.subx.html#L98 It's not just a matter of supporting more fonts. I need to support smarter fonts with ligatures and more. I think we could preserve the constraint of a single font and just make it smarter. But it'll take me some time to learn enough to do that.
- yorwba 5y agoYeah, ligatures are required for many languages. E.g. you list Myanmar, where it's possible to construct something like င်္င္င္င္ငြေေေေေေေောာာာာာာာ, which has "nga" င, "asat" ်, "virama" ္ combined to put င်္ on the following consonant, which in this case is four "nga" င separated by three "virama" ္ to form a cluster င္င္င္င (Noto Sans Myanmar apparently supports stacking up to height 3, the fourth "nga" င awkwardly overlaps), then there's a "medial ra" ြ which puts a box around the preceding consonant without overlapping, then 8 copies of "e" ေ which should be rendered to the left of the consonant it follows and then 8 copies of "aa" ာ which attach to the right. You're not going to encounter something crazy like this in the wild (in Burmese, there's at most one of each vowel sign on a consonant, and I don't think stacking four consonants is ever necessary) but it serves as a demonstration of the edge cases that a font needs to handle. The lookup tables end up getting quite large, which I think is one of the reasons Noto isn't usually used as one file with all scripts.
- akkartik 5y agoYes, the vowel diacritics are definitely an issue. I'm familiar with Hindi and Tamil. Hindi's _matras_ are pretty regular, and Unifont is designed so you can just type a single diacritic in the same spot as a consonant and have the thing look right (albeit terrible). Tamil, however, doesn't have this property. Does Myanmar? At the moment a single diacritic is the extent of my ambition.
- magios 5y agoI actually use a slightly modified unifont exclusively on a linux system, deleted all other fonts, disabled browser font downloading, and use firefox to get proper rendering. If you use a tiling wm, without borders or spaces between windows, then three windows of 80 columns of 8x16 font works.
- akkartik 5y agoWow!
- spicybright 5y agoI've never heard of deleting all fonts before, but I supposed that would work well for what you're going for! Wish general computing was more customizable like that...
- aethertron 5y agoI would love to see a screenshot!
- Shared404 5y agoSeconding this!
- magios 5y agosorry for the late reply, also forgot to mention that I use a fontconfig file, .xresources, other config files for i3 (the tiling wm), termimal (xst) and vim that specify the unifont font specifically. here are a few images showing the setup and sites using unifont. https://imgur.com/a/5gAZau3 https://imgur.com/a/5gAZau3
- aethertron 5y agoCool. I'd probably pick a different font, but I like this consistency. Perhaps as a way resisting attempts at emotional manipulation by typography...
- carapace 5y agoUnifont seems very useful. Not pretty but definitely legible. - - - - FWIW, I ran across this the other day: "4x4 ASCII Font" > Small fonts have always been fascinating to me, so I decided to make the smallest font possible, which turned out to be 4x4 pixels per character. The font covers the entire range of visible ASCII characters, and most are immediately recognizable. https://simplifier.neocities.org/4x4.html https://simplifier.neocities.org/4x4.html - - - - For display from small machines I keep going back and forth between simple memory-mapped raster screens vs. emitting a stream of, say, SVG to an external "display processor" (following the "Wheel of Reincarnation": "On the Design of Display Processors" http://cva.stanford.edu/classes/cs99s/papers/myer-sutherland-design-of-display-processors.pdf http://cva.stanford.edu/classes/cs99s/papers/myer-sutherland... )
- selfhoster11 5y agoI'm actually fond of the Unifont letter shapes. It might be just that I'm used to this font from using Linux, but I actually like it.
- ExtraE 5y agoIn principle wouldn’t 3x3 be the theoretical limit? That’s 9 bits/char which is enough for twice ASCII.
- selfhoster11 5y agoUnifont is perfectly fine. Linux uses it in various places, so I don't mind it. In fact, I rather like its letter shapes. 1024x768 is more than reasonable. Almost luxurious in a "small"/"personal" computing context, but in a good way. I still use computers with that resolution sometimes.
- mdp2021 5y agoYou can start with the C64 definition as a base and rewrite it expanding it (e.g. instead of 40x25 cells, 320x200 pixels on 1000 bytes pointing to 8x8 sized chars, you could provide a similarly working mode but 120x64 cells, 1920x1024 pixels on 7680 bytes pointing to 16x16 sized multicolor chars). Have four SID instead of one, 64 sprites, use a large number of switchable 64Kb regions as modules (and/or a huge disk in physical RAM) etc. You can just take inspiration from the original and see how the traditional ideas could be adapted for current hardware.
- klelatti 5y agoColour Maximite seems like a practical piece of modern hardware that takes a similar approach to the classic 80s home computers. https://geoffg.net/maximite.html https://geoffg.net/maximite.html
- spicybright 5y agoI love hacker news because I'm always finding interesting things like these :) Thank you for sharing!
- stephbu 5y agoYes, it reminded me a lot of when I first started in computing. Today we are so abstracted from the horsepower that produces our experiences, to the extent that most Software Engineers don't actually know how their code works. Not saying that is a bad thing, not saying that it is mandatory, it's just an art and science that is eroding rapidly. I started as an 8yr old, reading computer magazines, and initially coding in BASIC in 1K of RAM. I into Z80 Assembler and Machine Code at 10yrs - learning primitives like NMI's, Display DMA and Sound IO by hand with pencil, paper, and lots of reboot-causing mistakes. It was bruteforce, but still very influential in my understanding of a then-modern computer system. Z80 was a simple-enough chip instruction set that I still remember most the mnemonics today, and many of the architectural principals are still valid even after so much time.
- fwip 5y ago> most Software Engineers don't actually know how their code works. This is only true when you decide that the specific level of abstraction that you learned is the important one. Sure, you knew the machine code. Did you know how the instruction set was implemented on the chip? The decode logic at a transistor logic to set the right signals to route your register to the ALU? Did you care about the equations that governed the flow of electrons through silicon? Or did you trust the machine code to be your level of abstraction that Worked?
- AnIdiotOnTheNet 5y agoThe world isn't as black and white as "all abstractions bad" or "all abstractions good" though. There are levels of abstraction that are objectively useful and levels of abstraction that are so separated from reality that a 3Ghz multicore computer is somehow incapable of keeping up with a human's typed input.
- fwip 5y agoAnd the level of abstraction that is "good" changes over time and by use case. At my day job, I write both high-performance bioinformatics software and good-enough-performance web software. I do need to look at the assembly & think about the internals of the CPU when I'm trying to push through billions of reads in a timely manner. But I don't need to count cycles when I'm rendering a CRUD detail page in Django - I just need to make sure my database queries are reasonable. Also, the idea that you can say some abstractions (presumably in wide use) are "objectively" bad only makes sense if you've already applied your subjective criteria.