News for hackers. Stuff that matters.

quincunx

Re:New images of Jupiter on Wednesday November 06, 2024 @04:31AM (#42058623)
Why is Jupiter so colorful?

If the variation of color are indicative of a similar variation in density, why is there so much turbulence in Jupiter, why are the upper layers not more consistent? Tidal motion? Anyone know?

Re:Grind – A first person shooter for Amiga 500 on Thursday October 12, 2023 @11:26AM (#37858558)
I don't think you can follow the path originally trodden (competing on asmone 68K/hw with your fellow local coders, exchanging snippets of hw reg info and source) however there's a terrific short series of videos on youtube you might consider:

https://www.youtube.com/@WeijuWu

Wei-ju Wu lays out how to code directly on the hardware in an accessible manner and, importantly, from C, instead of 68K, with lots of examples. Then, if (or rather: when) you have to, you can always step down a level into 68K assembly to get better performance.

Re:Paris to bring back swimming in Seine after 100 years on Thursday July 27, 2023 @09:33AM (#36893221)
I have a few of these rules

Interesting, can you share some other such rules?

Re:ARM or x86? ISA Doesn’t Matter on Monday May 15, 2023 @08:23AM (#35947079)
"No, that's SMP" - is perhaps too resolute a definition. I'd say SMP is across processes, SMT is within a process, which would put the distinction in software, not hardware architecture.

Definitions are more grey, muddy and dependent on context; in that line of thought, I feel the parent you're responding to is accurate enough to not warrant criticism or even downvotes.

Re:The Framework Laptop 16 on Friday March 24, 2023 @09:32AM (#35288817)
For some (myself) the right shift key is the main shift key; so doing away with it would be terrible. Typically holding it down with the right pinky while typing full speed ahead, as well as single movement stroke patterns for <>{}?"+_ and so on, so heavy on all caps C snake case type use (if that makes sense.)
Re:How We built a $1M ARR open source SaaS on Friday June 24, 2022 @07:18AM (#31860144)
What a great link.

At the time of writing, Goal Conversions:

- Visit/blog 12800

- Signup 8

I knew anecdotally that HN doesn't convert but, oof, that's rough..

Re:Blinkenlights: PC Binary Emulating Visualizer on Monday May 23, 2022 @05:57AM (#31477023)
The colorful stripes are more likely the decompression routine hammering dff180 (the background color) as a "busy signal" for the user. The Amiga has "chip RAM", which on many unexpanded machines is also the only type of RAM; there are no pre-reserved regions in chip ram; everything (code,data,framebuffers) can be anywhere the programmer wants.

I think OP is (probably?) referring to 8-bit C64 era technology, where framebuffers/video ram are at a fixed location in memory?

Re:Now DuckDuckGo is building its own desktop browser on Wednesday December 22, 2021 @03:49PM (#29654963)
ok, interesting. I just checked, as of right now I still very much get the message "Unsupported Browser - In order to provide the best experience we require you use a different browser." So I'm not sure where our configurations differ.

Firefox 95.0.2 64-bit fwiw.

Re:Now DuckDuckGo is building its own desktop browser on Wednesday December 22, 2021 @11:23AM (#29651375)
I also use Firefox as my daily, but more and more software seems incompatible with it.

For instance, AWS EC2 Global View insists I switch away from Firefox, that's just one example, but there are more.

Anyone know why? I've always viewed Firefox as the de-facto standard, why the recent breakage? Why is it deemed acceptable, by AWS of all orgs?

Re:Why Not Rust? (2020) on Saturday December 18, 2021 @06:42PM (#29609872)
| keep in mind that picking Java over Cobol for banking software in 90s retrospectively turned out to be the right choice

Is the Java written in the 90's still the same Java written today? I feel the mentioned Lindy effect equally applies to dialect. C++ today is radically different to C++ from the 90's. I'd venture COBOL from the 90's is likely quite similar to COBOL today.

Re:Opt Out of Cynicism on Tuesday December 14, 2021 @02:41AM (#29549247)
Can you elaborate a bit on "resisting"?

Been a while since I read it, but iirc one of his examples is of fellow captives telling themselves they'll be free before the new year, then the new year comes, still not free, and those would be the first ones to go (your "giving up").

But the alternative I never took as "resisting" - but "purpose." Frankl's own purpose being the study of people under such extreme conditions, but his point (again, iirc) being that having that indefinite, daily, purpose is what keeps people alive and brings meaning.

Now, granted, it's been a while since I read it, but can you provide some color to this notion of "resisting" ? It'd be interesting if you took something completely different away from it (or if I remember it incorrectly and should be corrected.)

Re:The Matrix Awakens: Unreal Engine 5 Techdemo [video] on Friday December 10, 2021 @07:12AM (#29508960)
The tech is pretty, not sure it works as a demonstration of gameplay though.

For some reason this strongly reminds me of The typing of the Dead. A "Typing of the Matrix" would fit the theme quite nicely!

Re:Books that changed my career as a software engineer on Saturday November 27, 2021 @07:51PM (#29365167)
* Mythical Man Month (Experience)

* Rapid Development (Profession)

* Epistulae Morales ad Lucilium (You're not alone, we all share this.)

* The War of Art (At 9am, you are alone.)

* Competitive Advantage (Porter, a personal choice, it's not about the bytes.)

Re:A QEMU case study in grappling with software complexity on Wednesday October 13, 2021 @06:58AM (#28850645)
Link to Paolo Bonzini's "Is QEMU Too Complex" talk: https://www.youtube.com/watch?v=FMQtog6KUlo
Re:China’s dodgy-debt double act on Tuesday September 14, 2021 @05:49AM (#28522367)
What is preposterous about it?

You mean why I felt it was preposterous? Well allow me to demonstrate my naivety...

I would have expected 50% to be "socialist Europe" type spending, and indeed, a bit of googling reveals France is at about 60% of GDP right now, Germany at about 50%, Netherlands at 47%... That 60% of all income is determined by the policies and decision making of politicians, apparatchiks and bureaucrats is, I find, shockingly close to a planned economy.

So why preposterous? Because the US, on so many fronts, positions itself in contrast to Europe - free market ideology, small government rhetoric, fiscally conservative. Anyway, obviously, I was wrong.

Re:China’s dodgy-debt double act on Tuesday September 14, 2021 @05:17AM (#28522154)
So I thought "gov't spending, majority of GDP" was preposterous, but then I looked at the graph at https://en.wikipedia.org/wiki/Government_spending_in_the_Uni...

Looks like it already blipped the 50% mark in WW2 and is quite close now. Seems to (visually) be leveling though.

It's not all marketing for the exact reason you state, it doesn't scale with the balance but is fixed. A flat-fee would be interesting for precisely the account holders with a large balance. There would be a bank-run-exodus of large accounts to such an impossible flat-fee bank.
For Elon Musk, Jim Keller or even Steve Jobs, their value isn't in manually doing the CAD / VHDL / Code, rather, it is being the Eye of Mordor on the critical path and understanding the solution top to bottom. No excuses, only problem solving.

I feel the key insight behind both SpaceX and Tesla is that both the napkin engineering from first principle and then having the force of will to personally see it through /are/ the most important thing. Both qualify as engineering.

Happy to have my fairy tale hero's journey view of success corrected.

Thanks. It's not that UTF-8 is not on the list, it's always been on the list, it's just not there yet. Hence I felt the need to stipulate the lack of it in the manual, because of its importance.

If you're so inclined, examine rex.c, and you'll see (e.g. rex_nfa_make_ranged_trans() for example) that the engine internally works with ranges of uint32 for this very unicode reason.

The front-end regex parser and driver code, however, are not there yet, so prior to code emission, these beautiful ranges of uint32 codepoints are back-translated into rote uint8 tables. Such is the fate of wanting to ship. It'll come.

Thanks for studying this, your emphasis is noted - aside from this particular bullet from the "notable limitations," are there any other short-comings that you feel are deal breakers for you?
Hey, thanks for taking the time. I appreciate the insights.

Carburetta is designed for developer productivity and hence "least surprise"; and so combines the classical distinction of scanner ("lex") and parser ("yacc") but fuses those capabilities together.

This simplifies development as the generated driver code can do more housekeeping and the code in Carburetta becomes more expressive. It is not the goal to improve on the algorithms / state of the art academics of parsers. Instead, it is the goal to improve productivity while using predictable and well known approaches / not reinventing the wheel, however noble that can be. Algorithms here are NFA -> DFA -> scantable for the scanner, and LALR for the parser; these are old, well established algorithms.

That said, have a look at xlalr.c if you'd like to go exotic and disambiguate grammars (multi symbol reductions determined at runtime), but a conscious choice was made to stick with straight LALR for least surprise. Ambiguous grammars, I find, become difficult to think about. xlalr.c is therefore not used for the main parser generation, but the classic lalr.c is favored. You should be able to understand everything that's going on using only base textbook materials (e.g. dragon book.) The xlalr.c algorithm will be phased out eventually, I believe it is currently only used internally (Carburetta, due to the bootstrap problem, is a bit of a chimera, and does not always use itself.)

That said, there is direct support for some of the ambiguities you speak of; e.g. for instance, the infamous "typedef name" ambiguity on identifiers in C can be implemented with <prefix>stack_accepts() and $chg_term(terminal). Have a look in the manual (HTML version is online) for those.

RawParser is cool, but seems to have different goals in mind.

Re:Lisbon’s startup scene rises as Portugal gears up on Friday February 26, 2021 @04:20AM (#26272871)
Looked up the significance of that date for Portugal:

Freedom Day (25 April) is a national holiday, with state-sponsored and spontaneous commemorations of the civil liberties and political freedoms achieved after the revolution. It commemorates the 25 April 1974 coup and Portugal's first free elections on that date the following year.

Nice bridge.

Re:A preview of x64 emulation on Windows for ARM on Friday December 11, 2020 @04:44AM (#25383952)
s/AMD/ARM ?
Re:Read Fewer Books on Wednesday September 09, 2020 @05:04AM (#24418924)
Please forgive me the pretentiousness of what I'm about to share, but this is so great:

"You complain that in your part of the world there is a scant supply of books. But it is quality, rather than quantity, that matters; a limited list of reading benefits; a varied assortment serves only for delight. He who would arrive at the appointed end must follow a single road and not wander through many ways. What you suggest is not travelling; it is mere tramping." - Seneca, Letters to Lucilius, #45

This is such a powerful idea to me, from about 2000 years ago, that reading everything is like drifting aimlessly never arriving anywhere; it's just so recognizable.

Re:The Polygons of Another World on Friday January 03, 2020 @06:25AM (#21944982)
You'd use a single multi-bitplane interleaved fill-blit if the background surrounding it did not need to be preserved (eg. no mask requirements as per Flow - demos tend to do this for its speed).

I'd imagine Another World creates an off-screen single-bit deep bitmap and uses that as a mask. I sent you an email if you'd like to explore more, however the original programmer probably just remembers what he actually did.

Also note that non-overlapping polygons can be grouped together in both approaches by line-blitting with XOR destination (adjacent polygons share an edge and so the edge is XOR blitted twice); so there are substantial speed-ups to be had.

Re:The Polygons of Another World on Thursday January 02, 2020 @04:18PM (#21939949)
That's very kind, quincunx is fine, or no credit is fine too. Glad I could be of help.
Re:The Polygons of Another World on Thursday January 02, 2020 @03:40PM (#21939543)
To set the framebuffer to a single color, consider that there are actually up to 6 "framebuffers" (one for each bitplane.) Consequently, it is to either set all bits for a given bitplane to 1 or to set them all to 0. To control the actual word that is blitted without DMA, you would use BLTADAT, BLTBDAT or BLTCDAT registers to control the corresponding blitter input word with DMA disabled (so the blitter does not write into these registers itself.)

A common technique to avoid having to blit each bitplane independently (esp. for BOB sprites where the blits are small and plentiful) is to interleave the bitplanes by row using the BPL1MOD and BPL2MOD register values; these values are added to each bitplane pointer address at the end of each row to move the pointer to the start of the next row; consequently a single blit operation can capture all bitplanes as in memory a row can consist of all row bits belonging to bitplane 0, all row bits belonging to bitplane 1, all row bits belonging to bitplane 2 and so on.

If this is the bitplane layout used then a single blit can only set the values to 0 or 15 (all 0's or all 1's for 4 bitplanes enabled); note however that the blitter too has modulo registers (BLTA/B/CMOD for each input and BLTDMOD for the destination) so perhaps best examine how fancy the programmer got with it (eg. multiple blits to clear the screen to a specific color even if the bitplanes are interleaved using BLTDMOD.)

Obviously I'm a bit rusty given it's been a few years, but I hope this helps. I'm a fan of your work, thank you.

Older »