AsmBB forum software presentation.

Discussion in 'Forum Software Development' started by JohnFound, Mar 20, 2017.

  1. JohnFound

    JohnFound Aspirant

    35
    23
    +43
    Hi. I am developing the forum software AsmBB

    It is fully written in assembly language and is trying to be as fast and lightweight as possible. It uses FastCGI for higher performance and SQLite for very robust storage and in the same time avoiding the external dependencies. Works on every x86 or x86-64 hosting (including shared) that supports FastCGI. Have no external dependencies and is very easy for installation.

    While, my general programming skills are enough for creating the back-end code, the web design is far from perfect. Also, I am not sure I have enough experience about forum software design. For now I am trying to follow my common sense and the principles of minimalism in order to keep it not overbloated. But who knows, maybe some important features are missing.

    So, if you like the project and its overall ideas, you can join in order to make the fastest forum software in the world. ;)

    The project needs better visual design, different and beautiful skins, As long as everything is configurable by template and CSS files, no assembly language skills are needed. But of course, if someone want to learn by working on real life project - the project is open for code contributors as well. (And you will be surprised how easy assembly language programming is).

    Some migrating tools from/to another forums databases are highly desirable.

    The source repository of the project is here: https://asm32.info/fossil/repo/asmbb/index

    The demo installation is here: https://board.asm32.info
     
    • Like Like x 5
    • Pure Genius! Pure Genius! x 1
    • Appreciation Appreciation x 1
    • List
  2. doubt

    doubt Tazmanian

    4,456
    502
    +1,866
    Fast as light, that's good.
    That lots of yellow is not that good.
     
  3. Hogarth

    Hogarth Aspirant

    44
    13
    +15
    It seems like a pretty cool concept and I'm interested in seeing how it eventually turns out. I do have to agree with doubt though; that really is a bit too much yellow for my tastes.
     
  4. JohnFound

    JohnFound Aspirant

    35
    23
    +43
    Well, my design skills are very far from good. I am looking for a designer to fix the forum skin. Or better to make a new from scratch. ;)
     
  5. Hogarth

    Hogarth Aspirant

    44
    13
    +15
    Haha, that is completely understandable. Hopefully if you keep this project moving in a good, forward direction you'll attract the attention of someone with the abilities and desire to design you a nice theme.
    I wish you the best and I'm sure I'll be checking in from time to time to see how everything is progressing.
     
  6. Tatl

    Tatl Developer

    125
    83
    +15
    I love it. The tags are way better than traditional forum/category layout.

    If I knew assembly I'd ask to join and work on it with you.
     
  7. Digital Doctor

    Digital Doctor Tazmanian

    4,844
    397
    +1,826
    Don't make a forum.
    Make a Reddit clone.
    They are very similar but Reddit is superior.
     
  8. mysiteguy

    mysiteguy Devotee

    2,403
    887
    +1,653
    I'm intrigued as to why you decided on assembly? I've been programming in assembly language since back in the 6502 days, everything from that to x86, embedded, Z80, etc. I'd have used C as the lowest level language for something like this.
     
  9. JohnFound

    JohnFound Aspirant

    35
    23
    +43
    Well, the answer is a good cause for flame war, but I will risk. ;) At first, I find assembly language much more readable than HLL languages and especially C-like languages with their weird syntax.

    At second, all my tests show, that in real-life applications assembly language always gives at least 200% performance boost. The problem is not the quality of the compilers. It is because the humans write programs in assembly language very different than programs in HLL. Notice, that you can write HLL program as fast as an assembly language program, but you will end with very, very unreadable and hard for support code. In the same time, the assembly version will be pretty readable and easy for support.

    The performance is especially important for server applications, because the program runs on hired hardware and you are paying for every second CPU time and every byte RAM. AsmBB for example can run on very cheap shared web hosting and still to serve hundreds of users simultaneously.
     
  10. JohnFound

    JohnFound Aspirant

    35
    23
    +43
    AsmBB is not only assembly language. In fact I am spending more time working on templates, CSS and SQL than for assembly programming.
     
  11. echo_off

    echo_off Life is an illusion...

    1,276
    367
    +95
    That's pretty cool. Definitely eeking out every last drop of performance!

    Would there be any benefit from not using a database program, and instead performing operations directly on a data structure in memory so you can avoid the cost of inter-process communication with database server, and of course the interpreting of queries? I guess you could then serialise the data in some way and write it to a file for portability.

    I say this because the main bottleneck with web apps is often times lots of costly database transactions and inter-process communication with the database server. Take away the cost of the database access, and software written in Node JS won't be hugely slower.
     
  12. JohnFound

    JohnFound Aspirant

    35
    23
    +43
    Well, of course, using database instead of simple files slower down the performance. But the problem is not in the inter-process communications. AsmBB uses SQLite, that is not DB server, but library. The big problem is to provide ACID transactions to the database. This is essential for applications where multiply users are allowed to write simultaneously. Using files, the application still need to provide ACID transactions, that will slow down the performance the same way the SQL database do, but will make the code much more complex and hard for maintaining.

    Anyway, this overhead is not so big actually. You can see, that by using fast enough language (asm) the whole application works pretty fast, regardless of using SQL database for storage.
     
  13. Karll

    Karll Adherent

    298
    87
    +118
    That is really impressive. And really going against the prevailing tendency of ever more bloated software.

    I too was surprised by your choice of SQLite, but it appears to be a more robust DB system than commonly thought. Very interesting.

    I can see this already having some appeal to certain niches.
     
  14. JohnFound

    JohnFound Aspirant

    35
    23
    +43
    BTW: I just uploaded an update of AsmBB that supports user selectable skins (set it in the user profile). Also added a very lightweight theme for those who not like yellow/black design.
     
  15. SAFAD

    SAFAD Developer

    60
    13
    +20
  16. rafalp

    rafalp Desu Ex

    1,161
    707
    +347
    But have you actually measured that with any substantial dataset? At what pace will speed drop as your dataset exceeds memory capacities? How will search scale when there's 100k posts? 1 milion? What about read states resolution? Running on multiple instances on separate machines?
     
  17. JohnFound

    JohnFound Aspirant

    35
    23
    +43
    The RAM memory on the server is 1GB and AsmBB uses approximately 2MB per running instance. The current database file is 50MB, so it is not entirely loaded in the RAM.

    (It is shared hosting: 1GB RAM, one CPU core, 30 minutes CPU time per 24h; The maximum consumed time for now was 6 minutes during a shashdot effect event).

    The biggest thread in the demo forum is this: https://board.asm32.info/test_thread/

    It contains 15005 posts (751 pages), posted by a bot. In fact I cant measure any slowdown on processing this thread. The same is with the text search - it uses the FTS engine of SQLite that is pretty fast and will not slowdown on big databases.

    With SQLite, the engine can not be executed on multiply machines, but can be installed on a separate server and will provide enough performance to power several web servers.

    Of course the database also can be replaced with some client-server database, but I don't think someone needs such ultra high performance right now.
     
  18. JohnFound

    JohnFound Aspirant

    35
    23
    +43
    Little bit more about the hosting of the demo forum. It is the cheapest possible hosing I was able to find. The cost is approximately 2.5€ per month and it has the following parameters:

    1GB RAM;
    1CPU core;
    30 minutes CPU time per 24h;
    The speed of the CPU is unknown;
    The HDDs seems to be SSD, but are not implicitly specified.

    After publishing links to the demo on some social networks, there were several slashdot effect events. Based on the statistics, on this very hosting, the engine can provide normal work of the forum for approximately 12000 visitors per 24h or 180000 HTTP requests. The limiting factor here is the CPU time - 30 minutes per 24h.
     
  19. Alex - A2Hosting

    Alex - A2Hosting Neophyte

    4
    6
    +0
    I would love to see this theme if you have any previews available? Maybe you could make the theme selection available to everyone?

    Overall feels very fast!
     
  20. JohnFound

    JohnFound Aspirant

    35
    23
    +43
    The selected theme is stored in the user profile. I don't want to set cookies for the guests because of privacy concerns. If you don't want to register account because of the email confirmation, you can use one of the disposable emails: https://board.asm32.info/email-handling-and-registration-without-valid-email-58/
    This way you will be able to test all the features of the engine accessible only for the registered users.

    Also, here is a screenshot of the Light theme:
    LightTheme2.png
     
Verification:
Draft saved Draft deleted
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.