Compsci Library πŸ“š
225 subscribers
13 photos
86 files
434 links
Resource about my compsci study, random topic related mostly about system, compiler and programing language.
Download Telegram
Computers are amazing.
So why is software so terrible?


https://handmade.network/manifesto
❀‍πŸ”₯4✍1
Compsci Library πŸ“š
Ousterhout,_John_K_A_Philosophy_of_Software_Design_2018_2019,_Yaknyam.pdf
Software is Malleable

Different with physical design, software is easy to change. It smoothly adapt to change program structure rather structure in building or hardware while construction. For example, it easy to change your navbar website from top to left side in construction even production! (do with your own risk) rather changing Steel material into Titanium in Eiffel tower.

So, how to design and develop software need to address this nature? Incremental design, first start from small design then compounding by redesign and redevelop to adapt with change until grow big, similar with Snowflake method in writing fiction.

Before dive to incremental design, let see the predecessor: Waterfall design. Waterfall design is way to design software and engineering stuff, start from requirement analysis phase, planning, design, develop and release.

Pretty simple and make sense, yes. There a catch, each phase can not backtrack to previous step and change any definition from that phase. Like, there something planning requirement not possible in design phase.

It possible to change it by yourself, but that not how management works. In waterfall each phase done mean that no go back, fire and forget sort like that. The name waterfall imply this, the no water jump back to it belong after fall to ground.

If you do change that will affect budget, deadline and resources which is pain in ass, in other word start fresh cycle.

Ok, maybe you thinking about if there change or not comply each phase, why not put it to next development cycle to address ?

This what Incremental development for, it continously design and develop. These approach address malleablility in software. Such Agile, Rapid Application Development, XP, you name it.

Quite different with waterfall that once design and develop then done, so in certain case it done - clearly define planned design which is rare, human want A but stated B or C or else.
COPYRIGHT DOES NOT EXIST
Linus Walleij, 1998

p.s: There interesting story about hacker and computer

https://www.devili.iki.fi/pub/misc/books/cdne.pdf
Dissecting-the-Arsenal-of-LockBit-HuiSeong-Yang.pdf
14.4 MB
Dissecting the Arsenal of LockBit
Hui Seong-Yang

🫣 staring to one of you who want start RAAS *pun intended
Bruce_Dang,_Alexandre_Gazet,_Elias_Bachaalany,_SΓ©bastien_Josse_Practical.pdf
4.6 MB
Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, reversing tools, and obfuscation (2014)
Bruce Dang, Alexandre Gazet, Elias Bachaalany, SΓ©bastien Josse

This truly practical book from page 2 you already throw by reading assembly, despite kind of masochistic nature, it scale well which make it fun to read *ehem* with good amout of free time. If you want to understand the point of reversing, I suggest read this first: https://t.me/compsciresources/245
❀‍πŸ”₯1
Producing Open Source Software
How to Run a Successful Free Software Project

https://producingoss.com/en/producingoss-b5.pdf
Rui_Ueyama_Introduction_to_creating_a_C_compiler_for_those_who_want.pdf
1 MB
Introduction to creating a C compiler for those who want to know the lower layer
Rui Ueyama

note: the image can't translated
❀‍πŸ”₯4