Compsci Library π
Ousterhout, John K - A Philosophy of Software Design: page 13.
Ousterhout,_John_K_A_Philosophy_of_Software_Design_2018_2019,_Yaknyam.pdf
1.6 MB
A Philosophy of Software Design
Ousterhout, John K.
Ousterhout, John K.
π«‘2π1π₯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.
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.
How I write HTTP services in Go after 13 years.
https://grafana.com/blog/2024/02/09/how-i-write-http-services-in-go-after-13-years/
https://grafana.com/blog/2024/02/09/how-i-write-http-services-in-go-after-13-years/
Grafana Labs
How I write HTTP services in Go after 13 years | Grafana Labs
Mat Ryer, principal engineer at Grafana Labs and host of the Go Time podcast, shares what he's learned from more than a dozen years of writing HTTP services in Go.
β€βπ₯1π1
π€1
π₯1
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
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
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
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
How to Run a Successful Free Software Project
https://producingoss.com/en/producingoss-b5.pdf