Static analysis of Java enterprise applications: frameworks and caches, the elephants in the room, Antoniadis et al., PLDI’20 Static analysis is a key component of many quality and security analysis tools. Being static, it has the advantage that analysis results can be produced solely from source code without the need to execute the program. This means … Continue reading Static Analysis of Java Enterprise Applications: Frameworks and Caches, the Elephants in the Room
Tag: Software Engineering
Mostly posts relating to software design and architecture.
Watchman: monitoring dependency conflicts for Python library ecosystem
Watchman: monitoring dependency conflicts for Python library ecosystemWang et al., ICSE ‘20 There are more than 1.4M Python libraries in the PyPI repository. Figuring out which combinations of those work well together is not always easy. In fact, we have a phrase for navigating the maze of dependencies modern projects seem to accumulate: “dependency hell”. … Continue reading Watchman: monitoring dependency conflicts for Python library ecosystem
Migrating a privacy-safe information extraction system to a Software 2.0 design
Migrating a privacy-safe information extraction system to a software 2.0 design, Sheng, CIDR'20 This is a comparatively short (7 pages) but very interesting paper detailing the migration of a software system to a 'Software 2.0' design. Software 2.0, in case you missed it, is a term coined by Andrej Karpathy to describe software in which … Continue reading Migrating a privacy-safe information extraction system to a Software 2.0 design
Programs, life cycles, and laws of software evolution
Programs, life cycles, and laws of software evolution, Lehman, Proc. IEEE, 1980 Today's paper came highly recommended by Kevlin Henney and Nat Pryce in a Twitter thread last week, thank you both! The footnotes show that the manuscript for this paper was submitted almost exactly 40 years ago - on the 27th February 1980. The … Continue reading Programs, life cycles, and laws of software evolution
Reverb: speculative debugging for web applications
Reverb: speculative debugging for web applications, Netravali & Mickens, SOCC'19 This week we'll be looking at a selection of papers from the 2019 edition of the ACM Symposium of Cloud Computing (SoCC). First up is Reverb, which won a best paper award for its record and replay debugging framework that accommodates speculative edits (i.e., candidate … Continue reading Reverb: speculative debugging for web applications
Synthesizing data structure transformations from input-output examples
Synthesizing data structure transformations from input-output examples, Feser et al., PLDI'15 The Programmatically Interpretable Reinforcement Learning paper that we looked at last time out contained this passing comment coupled with a link to today's paper choice: It is known from prior work that such [functional] languages offer natural advantages in program synthesis. That certainly caught … Continue reading Synthesizing data structure transformations from input-output examples
How do committees invent?
How do committees invent?, Conway, Datamation magazine 1968 With thanks to Chris Frost for recommending this paper - another great example of a case where we all know the law (Conway's law in this case), but many of us have not actually read the original ideas behind it. We're back in 1968, a time when … Continue reading How do committees invent?
Declarative assembly of web applications from pre-defined concepts
Declarative assembly of web applications from predefined concepts De Rosso et al., Onward! 2019 I chose this paper to challenge my own thinking. I’m not really a fan of low-code / no-code / just drag-and-drop-from-our-catalogue forms of application development. My fear is that all too often it’s like jumping on a motorbike and tearing off … Continue reading Declarative assembly of web applications from pre-defined concepts
Local-first software: you own your data, in spite of the cloud
Local-first software: you own your data, in spite of the cloud Kleppmann et al., Onward! '19 Watch out! If you start reading this paper you could be lost for hours following all the interesting links and ideas, and end up even more dissatisfied than you already are with the state of software today. You might … Continue reading Local-first software: you own your data, in spite of the cloud
Scaling symbolic evaluation for automated verification of systems code with Serval
Scaling symbolic evaluation for automated verification of systems code with Serval Nelson et al., SOSP'19 Serval is a framework for developing automated verifiers of systems software. It makes an interesting juxtaposition to the approach Google took with Snap that we looked at last time out. I’m sure that Google engineers do indeed take extreme care … Continue reading Scaling symbolic evaluation for automated verification of systems code with Serval