12 ms·
A forum engine written in Assembly
- flumpcakes 3y agoThis is amazingly fast to my eyes. I am endlessly annoyed by slow interfaces. At $DAYJOB I have to use a web and desktop GUI for managing CheckPoint firewalls. These often will freeze for dozens of seconds, and generally make my computer crawl. I feel that this should not be acceptable in 2023.
- eterps 3y agoThe D forum is also quite fast: https://forum.dlang.org/ https://forum.dlang.org/
- hxii 3y agoReminds me of bbPress, at least visually.
- aleph_minus_one 3y ago> I am endlessly annoyed by slow interfaces. At $DAYJOB I have to use a web and desktop GUI for managing CheckPoint firewalls. These often will freeze for dozens of seconds, and generally make my computer crawl. I feel that this should not be acceptable in 2023. This is probably not a problem of the principal slowness of the software. With a high likelihood (source: personal programming experience of my colleagues and me), the root cause when the GUI freezes in such situation is typically rather that some operation that needs a little bit of time (say, a server request) is done in the GUI thread, thus blocking the processing of any other event (message). Windows programming is very sensitive in this regard.
- fredrikholm 3y ago> and generally make my computer crawl. Sounds like its worse than that.
- briHass 3y agoThis is one of the reasons I really like the Mikrotik network gear, because of the Winbox application for management. It's Windows Forms (GDI) in the MDI style of most Windows apps of circa 2000. Lightning fast, responsive, and with nice touches like being able to drag files on/off the interface to upload/download and the ability to copy/paste entries like they were lines in a text file. I know why the web for UI took over, but I sure do miss Windows forms-based applications. The web is fine for the UI to a bank or some other tool you don't interact with that often, but for tools where you can spend hours working inside, browser-based interfaces are terrible.
- theamk 3y agoAlso unusable by many people - I see mostly macbooks around me, with some Linux laptops or Chromebooks. Windows is for those super-low-privileged users who cannot be trusted with their own system and need IT to manage them; or for gamers. And yes, I can probably run the management software in wine, but I will avoid it if I can.
- briHass 3y agoThey recommend and 'support' running it in Wine. I haven't tried, but I'm sure it works fine given Wine tends to work best with no frills Win apps from a decade ago.
- alberth 3y agoIt makes me happy to see people still build stuff like this. Also interesting that they host their code on Fossil, which itself has a builtin forum engine written in C. https://www2.fossil-scm.org/home/doc/trunk/www/forum.wiki https://www2.fossil-scm.org/home/doc/trunk/www/forum.wiki
- mhd 3y agoI looked into maybe using this a few months ago, but decided against it. https://board.asm32.info/hi-johnfound-welcome-back.351/#16249 https://board.asm32.info/hi-johnfound-welcome-back.351/#1624...
- 0xDEF 3y agoThanks for posting. In the .Net world we had the whole Moq library drama recently. Now I check the social media of library creators before I use the library. I'm sorry but I cannot trust deranged people's code in production systems.
- 10000truths 3y agoWhat the hell are those god-awful notifications that keep spamming the bottom right corner of the page? I can't seem to turn them off.
- mcint 3y agoThere's a bell icon in the header, it toggles the real-time notifications. Took me a minute to find it too.
- StingyJelly 3y agoI went straight to ublock element picker without thinking about it board.asm32.info##div.info.toast
- xigency 3y agoWould be fine if they didn’t cover the content on the page, but maybe that’s a mobile problem.
- deleted 3y ago[deleted]
- YeBanKo 3y agoI just checkout out the chat functionality and the first thing I saw there was a a bunch of obscene racists messages in Russian.
- sctb 3y agoThe flat assembler (which assembles this project) is worth checking out if you haven't already: https://flatassembler.net https://flatassembler.net. I first played around with it almost 20 years ago and it was noticeably more ergonomic and productive than masm, nasm, to say nothing of gas. I imagine it was designed for human programmers rather than primarily compiler front ends, so it's a popular choice for hand-written assembly projects.
- msla 3y agoI'm not seeing a lot of difference between flat assembler code and NASM code. What in specific makes flat assembler better than NASM?
- deaddodo 3y agoI wouldn't personally say it's better, so I can't speak for OP; but generally people that use FASM prefer it for two reasons: 1) it's self-compilable (vs NASM, which is C) and 2) they like its macro system.
- anta40 3y agoUnfortunately FASM is written in 32bit assembly, which means it won't run on recent macOS versions. Not an issue for NASM, since it's written in C.
- jbm 3y agoI don't understand — isn't the speed mostly limited by network or disk access? Is there a significant improvement by having the underlying code in Assembly? A very cool application regardless, I haven't seen Assembly since college now.
- alberth 3y agoThe website being only 65kb in total size, all inlined with no additional downloads, plays a massive role in its performance no doubt. Regardless of what language is serving up the request. Still neat though.
- jacquesm 3y agoThat means it fits in cache in its entirety. I've found this often to be the biggest factor: reduce the size of the 'hot' set so it fits in cache and you can see crazy speed improvements.
- deleted 3y ago[deleted]
- lost_tourist 3y agoif cpu is the bottleneck, then sure, if it's network/db then it won't make much of a difference at all.
- jacquesm 3y agoThat depends. If you do more complex stuff you can easily be CPU bound, but if you're just pumping data then likely the network will be your first limit. Caching should take care of the disk as a limitation (besides that, SSDs are wicked fast).
- chefandy 3y agoWhat computationally complex operation would a forum application regularly do? I can't think of any but I've never written a forum application.
- jacquesm 3y agoImagine what you could do with a smartphone if it were programmed entirely in assembly.
- simulosius 3y agoWhy would anyone want to program a smartphone entirely in assembly? There is a reason (well actually there are many) that the vast majority of software development these days is done using more advanced languages.
- jacquesm 3y agoCost. Convenience. In that order.
- simulosius 3y agoCost? Please explain why writing programs in assembly is supposed to be *cheaper* than writing programs in a higher level language? The same goes for convenience: Since when is writing an application in assemlby more convenient than writing an application in a modern language?
- jacquesm 3y agoNo, it is more expensive. And less convenient. For some reason you interpreted both of these the wrong way around. I wasn't answering the question, I was giving examples of those reasons. Which are pretty obvious.
- simulosius 3y agoAh sorry, my bad! Makes a lot more sense this way ;-)
- jacquesm 3y agoIt certainly does :) I should have quoted that bit though to make it clearer.
- mcint 3y agoReal-time notifications give a sense of activity, nice for building a community. Reminds me of http://listen.hatnote.com/ http://listen.hatnote.com/ showing live wikipedia edits, but more integrated. Some anonymity, or mention of a group, e.g. anonymous users, forum member, admin, would be better. Too much and too specific sharing of activity makes this feel stifling--more like chat with read notifications, less like email or forum where people take time to compose replies.
- skilled 3y agoAll I want for Christmas is the old-school :lol: emoji from phpBB days…
- deaddodo 3y agoThey still exist and are easily installable on current phpBB instances: https://www.phpbb.com/customise/db/styles/smilies-13 https://www.phpbb.com/customise/db/styles/smilies-13
- Jyaif 3y agoVery fast! Or should I say, the normal speed at which websites should operate. x86 only.
- Chiba-City 3y agoGarbage collecting interpreters are (mostly) for wimpy scripting kiddies. The obvious historically documented exceptions are the "Symbolic AI Researchers." In 1990, SQL (and dBASE and Excel) was a "computer language" for secretaries. Now in 2023, we suffer uneducated halfwits manically typing in endless repugnant "ad tech" and "SEO" with our "Bioinformatics Researcher" hacks inflicting delusions based on Excel #Err cells (look it up) upon an unwitting populace. Somewhere, we went wrong. We have GREAT and WISE Software Engineering (Prescriptive and Historical) guidance available in the public domain now. Our mercenary "job hoppers) don't seem to be interested in accessing that. Going forward, some combination of ASM and Forth in Open Source incarnations and with type-checking hints will wring the most computation out of energy resources (CPU cycles).
- kaba0 3y agoThat’s a thoroughly uninformed take, and this stance is overly elitist for no good reason.
- lost_tourist 3y agoAll I can say is good luck with that philosophy in anything other than writing drivers or small embedded systems.
- Waterluvian 3y agoGot me thinking. How easy is it to write Assembly that looks good but is slower than C? Like can you be really good with Assembly and still not be certain your effort is actually worth not doing it in a higher language?
- hoten 3y agoTrivially easy. Just try to beat a C compilers optimization for constant integer division. https://clang.godbolt.org/z/MrMxo678x https://clang.godbolt.org/z/MrMxo678x
- tekknolagi 3y agoAdd -O2 for even fewer instructions :)
- hoten 3y agoThanks, that was a silly oversight. Your comment is appreciated, as it saved an instruction in my game engine's JIT compilation :) https://github.com/ArmageddonGames/ZQuestClassic/commit/0a780d638671e91372675c2161cc0fa0131545b8 https://github.com/ArmageddonGames/ZQuestClassic/commit/0a78...
- tekknolagi 3y agoCool!!
- okaleniuk 3y agoHave you tried measuring the actual impact of this? This optimization is so old, I'm not even sure if it's still worth the effort. It definitely worked in the 90s. What you do here is you save on division, and lose on instruction cache. This might look good on a benchmark when all your code fits the cache nicely, but bite back in-vivo. You should try it out in an actual problem and see how it goes.
- 3y ago
- kmoser 3y agoNot exactly a forum as we now know it, but I believe Bill Basham's Diversi-Dial (DDial) BBS software for the Apple II was written entirely in assembly. https://paleotronic.com/2019/09/28/diversi-dial-an-apple-ii-party-line/ https://paleotronic.com/2019/09/28/diversi-dial-an-apple-ii-...
- fortyseven 3y agoNah: https://board.asm32.info/hi-johnfound-welcome-back.351/#16249 https://board.asm32.info/hi-johnfound-welcome-back.351/#1624...
- sodimel 3y agoOuch, I wasn't prepared to read this post.
- chickenplusone 3y ago[flagged]
- fortyseven 3y ago(Oops, somehow I missed the existing discussion thread on this further down. Sorry for the repetition.)
- deleted 3y ago[deleted]
- GaNuongLaChanh 3y agoFantastic forum engine, the demo is https://board.asm32.info/ https://board.asm32.info/ and beautiful themes are at https://asmbb.org https://asmbb.org