Software Engineering
. Intern implements a trie, stores it in DB for autocomplete. Another intern implements a 2D segment tree for grid updates. In both cases though, \\(n\\) was pretty small.](/img/tags/software-engineering/nested-for-loop-brrrr.png)
; inspired by [@ID_AA_Carmack's son's quip](https://twitter.com/ID_AA_Carmack/status/1466934223831506951): coding id basically just ifs and for loops.](/img/tags/software-engineering/just-ifs-and-for-loops.jpeg)
Random Link ¯\_(ツ)_/¯ | ||
Jan 3, 2021 | » | Writing for Software Development
3 min; updated Sep 5, 2022
MUST and MUST NOT; On Writing Documentation Revise documentation, many times, and on separate days to catch confusing parts. Beware of ambiguities, e.g. X may not do Y. Refer to definitions, e.g. RFC 2119 . Put yourself into different roles, e.g. the person just looking for samples, the person who wants to read up on every nook and crany, the person who has no technical background etc.... |
Jan 3, 2021 | » | Information Retrieval Medley
3 min; updated Sep 5, 2022
Pagination with Relative Cursors Exposing pagination through URLs like example.com/items?page=25&limit=100 leads to SQL like SELECT * from 'items' LIMIT 100 OFFSET 2400;, which inefficiently goes through 2,500 records and discards the first 2,400. With relative cursors, we have URLs like example.com/items?limit=50&lastID=XXX, which leads to SQL like SELECT * from 'items' WHERE 'id' > XXX ORDER BY 'id' ASC LIMIT 50, and this is more efficient, assuming there are indexes for id.... |
May 17, 2020 | » | On Distributed Systems
2 min; updated Sep 5, 2022
Mergeable Replicated Data Types On a distributed system, each replica should [eventually] converge to the same state. Commutative Replicated Data Types (CRDTs) can accept updates and achieve consistent without remote synchronization. The Need for Commutativity Say we have a queue \( 1 \to 2 \). Suppose two replicas, \(r_1\) and \(r_2\), independently call pop(). Each replica will have \(2\) on their queue. However, on receiving an update that the other replica popped, each replica will call pop() to be consistent, thereby deleting \(2\).... |
Nov 14, 2020 | » | Software Dependencies
6 min; updated Sep 5, 2022
Dependency Management Golang introduced a new library referencing mode to overcome limitations of the old one. While the two library modes are supported by Golang, they are incompatible, e.g. dependency management (DM) issues, reference inconsistencies, build failures, etc. did an empirical study that resulted in HERO, an automated technique to detect DM issues and suggest fixes. Applied to 19k Golang projects, HERO detected 98.5% on a DM issue benchmark, and found 2,422 new DM issues in 2,356 Golang projects.... |
Mar 16, 2017 | » | Designing Data-Intensive Applications [Book]
(7 items)
Relational Model Versus Document Model; Thinking About Data Systems; Designing Data-Intensive Applications [Kleppmann, Martin]; Query Languages for Data; Reliability; Maintainability; Scalability; |
Oct 1, 1974 | » | Mythical Man Month [Brooks, Jr., Frederick P] |
Mar 16, 2017 | » | Designing Data-Intensive Applications [Kleppmann, Martin] |
Feb 9, 2020 | » | The Missing Semester of your CS Education [MIT] |
Oct 1, 1974 | » | Computer Science & Software Engineering
(165 items)
Learning Haskell via AoC 2021; 000. Longest Two-Character Substring; Wiki Page; Introduction to LLMs; Relational Model Versus Document Model; Intro to Design Patterns; General Tips on Performance and Optimization; AoC 2021 Day 01: Sonar Sweep; Similarity Measures; Similarity Measures; Thinking About Data Systems; Signal Is Finally Bringing Its Secure Messaging To the Masses [Andy Greenberg]; The Missing Semester of your CS Education [MIT]; 01. The Shell; Privacy in CS and in the Law; Web Applications 101; Information Security [COS 432]; ML Crash Course [dev@google]; Examples of Influential Power; Machine Learning and Predictive Analytics [ELE 364]; Designing Data-Intensive Applications [Kleppmann, Martin]; 01. The Tar Pit; Mythical Man Month [Brooks, Jr., Frederick P]; App Layout; Query Languages for Data; AoC 2021 Day 02: Dive!; The Nearest Neighbor Algorithm; The Nearest Neighbor Algorithm; Reliability; 02. Shell Tools; Tracking and Data Collection; 02. Threat Models for Web Security; Modeling Influence with Graphs; 02. The Mythical Man-Month; Browse Page; AoC 2021 Day 03: Binary Diagnostic; Secure Multiparty Computation; 03. Cross-Site Request Forgery (XSRF); The Contagion Model; Caveats on Similarity Learning; Caveats on Similarity Learning; 03. The Surgical Team; The Cards Manager; AoC 2021 Day 04: Giant Squid; Maintainability; Infection Models: SI, SIS, SIR; Handling Noisy Data in Nearest Neighbors; Handling Noisy Data in Nearest Neighbors; Bayesian Rating; Reusable Cards; AoC 2021 Day 05: Hydrothermal Venture; The Case for Range Normalization; The Case for Range Normalization; Home Page; AoC 2021 Day 06: Lanternfish; 06. Version Control (Git); Predicting Continuous Targets Using NN; Predicting Continuous Targets Using NN; AoC 2021 Day 07: The Treachery of Whales; Other Measures of Similarity in NN; Other Measures of Similarity in NN; AoC 2021 Day 08: Seven Segment Search; The Curse of Dimensionality and Feature Selection; The Curse of Dimensionality and Feature Selection; AoC 2021 Day 09: Smoke Basin; Classes in C++; AoC 2021 Day 10: Syntax Scoring; Privacy [COS 432]; 019. Counting Sundays; Structures in C++; 020. Factorial Digit Sum; 021. Amicable Numbers; 022. Name Scores; 023. Non-Abundant Sums; AoC 2021 Input Parser; Enumerations in C++; Unions in C++; AoC 2021 Main; AoC 2021 Solution Runner; AoC 2021 Test Code; AoC 2021 Parsing Arguments; 218. To-Do List Pt. I; 380. Smooshed Morse Code; Attributes and Reflection in C#; LLM Evals; Governing Bodies; Calculators; UX for LLMs; WWW Watering Hole; 3 Maps: Locator, Topographical, and Treasure; Using LLMs to Enhance My Capabilities; Consistent Hashing; Why Have We Stopped?; Leading Big Projects; Finite Time as a SWE; Minimum Penalty for a Shop; Shortest Path in a Grid w/ Obstacles Elimination; Minimizing Bottom-Right Paths in a 2xN Grid; Queen's Movements on a Chessboard w/ Obstacles; Testing in a Monorepo; Database Layer; Continuous Integration Tooling; Of Stale UI and Re-renders; Inheritance; Markup Features; Of Builds and Bundlers; Client/Server Interface; Use of Local Storage; Hosting the Flashcards App; Identity Access Management; Productivity for Software Engineers; C++ Meta-Programming; Binary Search; Sorting and Searching; Spanning 4-Directional Walks From Origin to Destination w/ Obstacles; Unique Paths to the Bottom-Right Corner w/ Obstacles; Unique Paths to the Bottom-Right Corner; Debugging; Testing Your Code; Perspectives on Software Engineering; Resource Management in C++; Templates in C++; Software Engineering Journal Reviews; Journal Reviews; Bloom Filters; Socio-Economic Equity in Tech; Towards a Collaborative Web Browser; Reviews of WWW Proceedings; Journal Reviews on Fairness; Observer; Rage Against the Algorithm; Areas of Interest in Computer Science; LLMs: Stochastic Parrots 🦜 and How (Not) to Use Them; Research on Privacy Enhancing Techniques; Privacy on the Web; Computer Graphics Potpourri; Information Retrieval Medley; On Systems Programming; Software Dependencies; ML Usefulness to a Dev; ML Usefulness to a Dev; Of Code Smells and Hygiene; 01. Sum of Powers; Chrome vs. Everybody; On Distributed Systems; On Data Science; Miscellaneous Topics; APIs Are Not In the Efficiency Business; Scalability; Facebook to Pay $550 Million to Settle Facial Recognition Suit; AoC 2019 Day 01: The Tyranny of the Rocket Equation; To-Do List (Intermediate); Smooshed Morse Code (Intermediate); Facebook Monetizing Encrypted Messaging by Analyzing Metadata [Twitter]; Applications for DP; Building Intuition About DP; AoC 2019 Day 02: 1202 Program Alarm; SQL Injection; Cross-Site Scripting (XSS); Kernighan's Remarks on the Digital Humanities; An Apology for the Internet - How It Went Wrong [Intelligencer]; Fermat's Little Theorem (Intermediate); Linear Feedback Shift Register (Intermediate); Networks: Friends, Money and Bytes [COS 381]; A Zooming Web Browser; |