All blogs / Software / engineering practice
The Shape of Code
- Posts
- 938 from 2 Dec 2008 to 25 Oct 2026
- Posting
- weekly (52 in the last year)
- Kind
- personal blog
- Feed
- https://shape-of-code.com/feed/
2026 43
- Mutating Lean proofs looking for issues
- Program to extract x/y coordinates of points in pdf graphs
- Programming language choice is becoming a build option
- Impact of input distribution on faults experienced
- LLM handling of programming language differences
- Source line length before coding agents
- Project implementation time savings using coding agents
- Software effort estimation in 2026
- Number of projects worked on concurrently
- End-user Pentium and SIMM prices in the 1990s
- Computers installed in the UK during the 1960s
- 2026 in the programming language standards’ world
- Flagging poor algorithm choice: LLMs next role
- Distribution of number of statements in functions
- Call graph neighbourhood and fault prediction
- Classification of code updates
- Detailed management data on 1,211 software projects
- A model of fault experiences for a single functionality program
- Reliability via N-version programming?
- Specification based programming
- Waiting times and the task selection process
- Projects are worked on in fits and starts
- Answering via a scale to improve estimation accuracy
- Estimating Open source project lifecycle using the Bass model
- Software task estimation using LLMs is fake research
- Taking a new GLR parser generator for a spin
- Working with an LLM maths assistant to model software processes
- Predicting reports of new faults by counting past reports
- Advertised prices of desktop computers during the 1990s
- Maximum Adds per second for 1950s/early 1960s computers
- Chinese research in software engineering
- 70% of new software engineering papers on arXiv are LLM related
- Identifier names chosen to hold the same information
- Analysis of some C/C++ source file characteristics
- Relative performance of computers since the 1990s
- Investigating an LLM generated C compiler
- Algorithm complexity and implementation LOC
- Dennard scaling a necessary condition for Moore’s law
- Public documents/data on the internet sometimes disappears
- Number of calls to/from functions vs function length
- Formal methods and LLM generated mathematical proofs
- Distribution of small project completion times
- Modelling time to next reported fault
2025 52
- My 2025 in software engineering
- Programming Punched card machines
- Naming convergence in a network of pairwise interactions
- Christmas books for 2025
- Lifetime of coding mistakes in the Linux kernel
- Decline in downloads of once popular packages
- Occurrence of binary operator overloading in C++
- Fifth anniversary of Evidence-based Software Engineering book
- Best tool for measuring lots of source code
- Distribution of method chains in Java and Python
- Finding links between gcc source code and the C Standard
- Modeling the distribution of method sizes
- Early research on economies of scale for computer systems
- Data+code for book: The New C Standard
- Distribution of integer literals in text/speech and source code
- ISO C++ committee has a new chief sheep herder
- Percentage of methods containing no reported faults
- Halstead/McCabe: a complicated formula for LOC
- Half-life of Open source research software projects
- Positive and negative descriptions of numeric data
- Predicted impact of LLM use on developer ecosystems
- Impact of developer uncertainty on estimating probabilities
- A process to find and extract data-points from graphs in pdf files
- After 55.5 years the Fortran Specialist Group has a new home
- Why is actual implementation time often reported in whole hours?
- When task time measurements are not reported by developers
- An attempt to shroud text from LLMs
- Evolution has selected humans to prefer adding new features
- ClearRoute x Le Mans 24h Hackathon 2025
- One code path dominates method execution
- The inconvenient history of Liberal Fascism
- A safety-critical certification of the Linux kernel
- Software_Engineering_Practices = Morals+Theology
- Long term growth of programming language use
- Deciding whether a conclusion is possible or necessary
- CPU power consumption and bit-similarity of input
- Procedure nesting a once common idiom
- Functions reduce the need to remember lots of variables
- Remotivating data analysed for another purpose
- Benchmarking string search algorithms
- Half-life of Microsoft products is 7 years
- How has the price of a computer changed over time?
- CPU frequency not relevant to SPEC benchmark performance
- Repo of software estimation datasets
- Deep dive looking for good enough reliability models
- Zig is the next fashionable language
- Apollo guidance computer software development process
- Creating a global Standard requires being politically neutral
- Comparing developer/LLM coding performance
- Example of an initial analysis of some new NASA data
- Extracting information from duplicate fault reports
- Changing development culture and practices: LLM edition
2024 52
- My 2024 in software engineering
- Small business programs: A dataset in the research void
- Good enough reliability models: still an unknown
- Christmas books for 2024
- 21 Algol 60 compilers in 1962
- The Norden-Rayleigh model: some history
- Putnam’s software equation debunked
- Indented vs non-indented if-statements: performance difference
- Employment in the software business: we know nothing
- C compiler conformance testing: with ChatGPT assistance
- Modelling estimate/actual including uncertainty in the estimate
- if statement conditions, some basic measurements
- MC/DC a step towards safety critical Open source software
- Modeling program LOC growth with recurrence equations
- Discussing new language features is more fun than measuring feature usage in code
- Number of statement sequences possible using N if-statements
- Measuring non-determinism in the Linux kernel
- Survival of CVEs in the Linux kernel
- 1970s: the founding decade of software reliability research
- The units of measurement for software reliability
- Student projects for 2024/2025
- Memory bandwidth: 1991-2009
- The 2024 update to my desktop system
- A new NASA software dataset from the 1970s
- Program fault reports are caused by its users
- Confidence intervals: my one recommended practice
- Techniques used for analyzing basic performance measurements
- Learning General relativity at a rudimentary mathematical level
- Distribution of program sizes
- Quantity of source in a given language
- Obtaining source code for training LLMs
- Sampling error in software engineering
- A surprising retrospective task estimation dataset
- Workshop on data analysis for software developers
- Survey papers: LLMs will restore some level of usefulness
- Chinchilla Scaling: A replication using the pdf
- Relative sizes of computer companies
- Average lines added/deleted by commits across languages
- Software companies in the UK
- Census of general purpose computers installed in the 1960s
- A paper to forget about
- Finding reports and papers on the web
- What is known about software effort estimation in 2024
- The Whitehouse report on adopting memory safety
- Extracting named entities from a change log using an LLM
- A distillation of Robert Glass’s lifetime experience
- Some information on story point estimates for 16 projects
- Why did organizations fund the creation of the first computers?
- Agile and Waterfall as community norms
- How did Agile become the product development zeitgeist?
- Median system cpu clock frequency over last 15 years
- Documentation as a signal of program size
2023 53
- My 2023 in software engineering
- Sample size needed to compare performance of two languages
- Patches for the code of Peter Turchin’s Attrition Warfare Model
- Christmas books for 2023
- Software engineering’s F word
- Rounding in reported task implementation time
- Rereading The Mythical Man-Month
- Analyzing mainframe data in light of the IBM antitrust cases
- Evidence-based Software Engineering book: the last year
- Relative performance of computers from the 1950s/60s/70s
- Design of the Whetstone benchmark
- Likelihood of encountering a given sequence of statements
- Criteria for increased productivity investment
- Hardware/Software cost ratio folklore
- LLMs and doing software engineering research
- Some data on the size of Cobol programs/paragraphs
- Optimal function length: an analysis of the cited data
- Halstead & McCabe metrics: The wisdom of the ancients
- Readability of anonymous inner classes and lambda expressions
- Local variable naming: some previously unexplored factors
- Motivation and software development
- Accuracy of Function Point estimates
- Who are the famous academics in software engineering?
- Benchmarking fuzzers
- Research ideas for 2023/2024
- The lifetime of performance coding issues
- Predicting the size of the Linux kernel binary
- Anthropology and building software systems
- WebAssembly vs JavaScript performance: 2023 edition
- Perturbed expressions may ‘recover’
- Distribution of add/multiply expression values
- An evidence-based software engineering book from 2002
- von Neumann’s deduction that biological reproduction is digital
- Conference vs Journal publication
- The difference is significant
- Computer: Plot the data
- Is the code reuse problem now solved?
- Distribution of binary operator results
- How much productive work does a developer do?
- Percolation of the impact of coding mistakes through a program
- Analysis of when refactoring becomes cost-effective
- My new laptop
- Modular Reasoning, Knowledge and Language systems
- 2023 in the programming language standards’ world
- Small team estimating in story points; a project dataset
- Human reasoning is generally not logic based
- Software engineering as a hedonistic activity
- Many Butterfly collections are worthless
- A comparison of C++ and Rust compiler performance
- Frequency of non-linear relationships in software engineering data
- Coding mistakes made by ChatGTP
- Evaluating Story point estimation error
- Focus of activities planned for 2023
2022 54
- The commercial incentive to intentionally train AI to deceive us
- My 2022 search for software engineering data
- Analysis of Cost Performance Index for 338 projects
- Christmas books for 2022
- C++ deprecates some operations on volatile objects
- Unneeded requirements implemented in Waterfall & Agile
- Stochastic rounding reemerges
- Some human biases in conditional reasoning
- Evidence-based Software Engineering book: two years later
- A study of deceit when reporting information in a known context
- Studying the lifetime of Open source
- Clustering source code within functions
- Printing press+widespread religious behavior: A theory
- Shopper estimates of the total value of items in their basket
- Overview of broad US data on IT job hiring/firing and quitting
- Optimal sizing of a product backlog
- Career progression: an invisible issue in software development
- Programming Languages: History and Fundamentals
- Task backlog waiting times are power laws
- Patterns in the LSST:DM Sprint/Story-point/Story ‘done’ issues
- Impact of number of files on number of review comments
- Analysis of a subset of the Linux Counter data
- Estimation accuracy in the (building|road) construction industry
- Evolution of the DORA metrics
- Extracting numbers from a stacked density plot
- Multi-state survival modeling of a Jira issues snapshot
- Estimating quantities from several hundred to several thousand
- Most percentages are more than half
- Over/under estimation factor for ‘most estimates’
- A Wikihouse hackathon
- Cognitive effort, whatever it might be
- Rounding and heaping in non-software estimates
- Complex software makes economic sense
- A new career in software development: advice for non-youngsters
- Evaluating estimation performance
- Twitter and evidence-based software engineering
- Evidence-based Software Engineering: now in paperback form
- Programming language similarity based on their traits
- Ecology as a model for the software world
- NoEstimates panders to mismanagement and developer insecurity
- 4,000 vs 400 vs 40 hours of software development practice
- Anthropological studies of software engineering
- Study of developers for the cost of a phase I clinical drug trial
- Growth in FLOPs used to train ML models
- Cost-effectiveness decision for fixing a known coding mistake
- Software engineering research is a field of dots
- Estimation experiments: specification wording is mostly irrelevant
- semgrep: the future of static analysis tools
- Finding patterns in construction project drawing creation dates
- Moore’s law was a socially constructed project
- Including natural language text topics in a regression model
- Tracking software evolution via its Changelog
- Join a crowdsourced search for software engineering data
- Creating and evolving a programming language: funding
2021 54
- Fishing for software data
- Christmas books for 2021
- Parkinson’s law, striving to meet a deadline, or happenstance?
- First understand the structure of a standard, then read it
- The software heritage of K&R C
- Open source: the goody bag for software infrastructure
- Where are we with models of human learning?
- How large an impact does social conformity have on estimates?
- Academic recognition for creating and supporting software
- Evidence-based SE groups doing interesting work, 2021 version
- Looking for a measurable impact from developer social learning
- Two failed software development projects in the High Court
- Electronic Evidence and Electronic Signatures: book
- The Approximate Number System and software estimating
- The Shape of Code is moving
- Mutation testing: its days in the limelight are over
- Testing rounded data for a circular uniform distribution
- Multiple estimates for the same project
- Readability: a scientific approach
- Cognitive bias or not paying enough attention?
- Actual implementation times are often round numbers
- What can be learned from studying long gone development practices?
- 2021 in the programming language standards’ world
- Estimating using a granular sequence of values
- What is known about software effort estimation in 2021
- Production of software may continue to be craft based
- Increase in defect fixing costs with distance from original mistake
- Evidence-based book: six months of downloads
- The CESAW dataset: a brief introduction
- Impact of native language on variable naming
- Pomodoros worked during a day: an analysis of Alex’s data
- Where are the industrial strength R compilers?
- Delphi and group estimation
- Estimate variability for the same task
- Claiming that software is AI based is about to become expensive
- Software engineering experiments: sell the idea, not the results
- Another nail for the coffin of past effort estimation research
- Pricing by quantity of source code
- The first computer I owned
- Linux has a sleeper agent working as a core developer
- The aura of software quality
- Software engineering research problems having worthwhile benefits
- The impact of believability on reasoning performance
- Code bureaucracy can reduce the demand for cognitive resources
- Fitting discontinuous data from disparate sources
- Research software code is likely to remain a tangled mess
- Performance impact of comments on tasks taking a few minutes
- Widely used programming languages: past, present, and future
- Growth in number of packages for widely used languages
- Payback time-frame for research in software engineering
- Software effort estimation is mostly fake research
- My new kitchen clock
- Likelihood of a fault experience when using the Horizon IT system
- What impact might my evidence-based book have in 2021?
2020 51
- Source code discovery, skipping over the legal complications
- Many coding mistakes are not immediately detectable
- Survival rate of WG21 meeting attendance
- Christmas books for 2020
- Software research is 200 years behind biology research
- What software engineering data have I collected on subject X?
- Researching programming languages
- Evidence-based software engineering: book released
- The Weirdest people in the world
- Benchmarking desktop PCs circa 1990
- Learning useful stuff from the Human cognition chapter of my book
- Learning useful stuff from the Cognitive capitalism chapter of my book
- Memory capacity growth: a major contributor to the success of computers
- Learning useful stuff from the Ecosystems chapter of my book
- Learning useful stuff from the Projects chapter of my book
- Learning useful stuff from the Reliability chapter of my book
- Impact of function size on number of reported faults
- The aims of software engineering research
- Time-to-fix when mistake discovered in a later project phase
- Quality control in a zero cost of replication business
- Extreme value theory in software engineering
- Scientific management of software production
- Surveys are fake research
- Effort estimation’s inaccurate past and the way forward
- No replies to 135 research data requests: paper titles+author emails
- Algorithms are now commodities
- beta: Evidence-based Software Engineering – book
- How should involved if-statement conditionals be structured?
- An experiment involving matching regular expressions
- C++ template usage
- Estimating in round numbers
- New users generate more exceptions than existing users (in one dataset)
- Happy 60th birthday: Algol 60
- Having all the source code in one file
- Enthusiasm on the Fortran standards committee
- Beta release of data analysis chapters: Evidence-based software engineering
- Predicting the future with data+logistic regression
- Motzkin paths and source code silhouettes
- Comments on the COVID-19 model source code from Imperial
- Influential programming languages: some of the considerations
- Coronavirus: a silver lining for evidence-based software engineering?
- Exercises in Programming Style: the python way
- Source code chapter of ‘evidence-based software engineering’ reworked
- The wisdom of the ancients
- Patterns of regular expression usage: duplicate regexs
- Source code has a brief and lonely existence
- How are C functions different from Java methods?
- How useful are automatically generated compiler tests?
- for-loop usage at different nesting levels
- The dark-age of software engineering research: some evidence
- Performance variation in 2,386 ‘identical’ processors
2019 54
- Reliability chapter of ‘evidence-based software engineering’ updated
- The Renzo Pomodoro dataset
- Calculating statement execution likelihood
- Christmas books for 2019
- A study, a replication, and a rebuttal; SE research is starting to become serious
- Design considerations for Mars colony computer systems
- Adjectives in source code analysis
- Student projects for 2019/2020
- Projects chapter of ‘evidence-based software engineering’ reworked
- Three books discuss three small data sets
- Comparing expression usage in mathematics and C source
- Cost ratio for bespoke hardware+software
- C compilers on PR1ME computers
- Plotting artifacts when the axis involves lines of code
- Team DNA-impersonators create a business plan
- Natural elimination, or the survival of the good enough
- Ecosystems chapter of “evidence-based software engineering” reworked
- Compiler validation used to be a big thing
- Converting lines in an svg image to csv
- My book’s pdf generation workflow
- Growth and survival of gcc options and processor support
- First language taught to undergraduates in the 1990s
- Want to be the coauthor of a prestigious book? Send me your bid
- 2019 in the programming language standards’ world
- Complexity is a source of income in open source ecosystems
- How much is a 1-hour investment today worth a year from now?
- Medieval guilds: a tax collection bureaucracy
- A zero-knowledge proofs workshop
- Lehman ‘laws’ of software evolution
- PCTE: a vestige of a bygone era of ISO standards
- Cognitive capitalism chapter reworked
- Evidence on the distribution and diversity of Christianity: 1900-2000
- Background checks on pointer values being considered for C
- A prisoner’s dilemma when agreeing to a management schedule
- C Standard meeting, April-May 2019
- Dimensional analysis of the Halstead metrics
- C2X and undefined behavior
- OSI licenses: number and survival
- The Algorithmic Accountability Act of 2019
- MI5 agent caught selling Huawei exploits on Russian hacker forums
- The 2019 Huawei cyber security evaluation report
- Using Black-Scholes in software engineering gives a rough lower bound
- Describing software engineering in terms of a traditional science
- Altruistic innovation and the study of software economics
- Regression line fitted to noisy data? Ask to see confidence intervals
- Polished human cognitive characteristics chapter
- Modular vs. monolithic programs: a big performance difference
- Evidence-based election campaigning
- Offer of free analysis of your software engineering data
- Modeling visual studio C++ compile times
- Teaching basic data analysis to programmers: summer internship
- Choosing between two reasonably fitting probability distributions
- Wanted: 99 effort estimation datasets
- Changes in the shape of code during the twenties?
2018 70
- Foundations for Evidence-Based Policymaking Act of 2017
- Distorting the input profile, to stress test a program
- Growth of conditional complexity with file size
- Impact of group size and practice on manual performance
- Coding guidelines should specify what constructs can be used
- The 520’th post
- Half-life of software as a service, services
- Ecosystems as major drivers of software development
- Polished statistical analysis chapters in evidence-based software engineering
- Waiting for the funerals: culture in software engineering research
- Some pair programming benefits may be mathematical artefacts
- Christmas books for 2018
- Is it worth attending an academic conference or workshop?
- Practical ecosystem books for software engineers
- Practical psychology books for software engineers
- Practical statistics books for software engineers
- The first commercially available (claimed) verified compiler
- Publishing information on project progress: will it impact delivery?
- Statistical techniques not needed to analyze software engineering data
- Students vs. professionals in software engineering experiments
- The best or most compiler writers born in February?
- Facebook’s Big Code Summit
- Adding a new scalar type to C
- The Nostradamus argument in software engineering research
- The world view of research in software engineering
- A 1948 viewpoint on developer vs. computer time
- Major players in evidence-based software engineering
- Business school research in software engineering is some of the best
- Moving to the 12th cycle in fault prediction modeling
- Grammar checking in 2018
- Experimental Psychology by Robert S. Woodworth
- Impact of team size on planning, when sitting around a table
- 2018 in the programming language standards’ world
- Maximum team size before progress begins to stall
- StatsModels: the first nail in R’s coffin
- What statistical techniques are useful for software engineering data?
- Source code chapter added to “Evidence-based software engineering using R”
- Perl’s failure to grow and Python takes over
- Evolutionary pressures on C++, Java and Python
- Filters to help decide who might be a software developer
- Instructions that cpus don’t need to support
- Software engineering is fertile ground for the belief in silver bullets
- Time taken to compile a source file
- Undergraduates and learning to program
- Number of parameters vs. accessing globals
- Main memory: the crucial component that vendors don’t mention
- EDG and Github are both logical purchases for Microsoft
- The age of the Algorithm is long gone
- Premium mediocrity is software engineering’s demographic
- Replicating results using research software
- Type compatibility: name vs structural equivalence
- Replication: not always worth the effort
- A Python Data Science hackathon
- Influential philosophers of source code
- The C++ committee has taken off its ball and chain
- GDPR has a huge impact on empirical software engineering research
- Reliability chapter added to “Empirical software engineering using R”
- McCabe’s cyclomatic complexity and accounting fraud
- Top, must-read paper on software fault analysis
- Estimating the number of distinct faults in a program
- Historians of computing
- Building a regression model is easy and informative
- Statement sequence length for error/non-error paths
- Mathematical proofs contain faults, just like software
- Compiler validation is now part of history
- What instructions should a computer support?
- Learning a cpu’s instruction set
- First use of: software, software engineering and source code
- Computer books your great grandfather might have read
- Was a C90, C99, or C11 compiler used?
2017 60
- Almost all published analysis of fault data is worthless
- The first compiler was implemented in itself
- The shadow of the input distribution
- Christmas books for 2017
- ISO/IEC JTC 1/SC 42 Artificial intelligence
- Vanity project or real research?
- Data-set update to “Empirical software engineering using R”
- Grace Hopper: Manager, after briefly being a programmer
- À la carte Entropy
- Double exponential performance hit in C# compiler
- Huge effort data-set for project phases
- Projects chapter added to “Empirical software engineering using R”
- Is this fitted line believable? A visual answer
- Data analysis with a manual mindset
- Histogram using log scale creates a visual artifact
- Expected variability in a program’s SLOC
- Experimental method for measuring benefits of identifier naming
- An Almanac of the Internet
- Investing in the gcc C++ front-end
- The fuzzy line between reworking and enhancing
- Microcomputers ‘killed’ Ada
- We hereby retract the content of this paper
- Two approaches to arguing the 1969 IBM antitrust case
- Books similar to my empirical software engineering book
- Signed-magnitude: The integer representation of choice for IoT?
- Software systems are the product of cognitive capitalism
- Ecosystems chapter added to “Empirical software engineering using R”
- 2017 in the programming language standards’ world
- Information on computers from the 1970s and earlier
- Increase your citation count, send me your data!
- Whole-program optimization: there’s gold in them hills
- How indeterminate is an indeterminate value?
- Experiment, replicate, replicate, replicate,…
- Unappreciated bubble research
- Signaling cognitive firepower as a software developer
- Burger flippers with STEM degrees
- Evidence for 28 possible compilers in 1957
- Programming Languages: nothing changes
- What is empirical software engineering?
- Warp your data to make it visually appealing
- Array bound checking in C: the early products
- Hedonism: The future economics of compiler development
- Average maintenance/development cost ratio is less than one
- Early compiler history
- Collecting all of the publicly available source code
- Gentleman scientists in software engineering
- Economics chapter added to “Empirical software engineering using R”
- Happy 30th birthday to GCC
- Learning from some legal decisions
- Uncovering the undefined behaviors
- C compilers of the 20th century running on Microsoft operating systems
- Estimating the yearly spend on developing software
- NWIP for Monochrome inkjet yield
- DACS: Software Life Cycle Empirical/Experience Database
- Fault density: so costly to calculate that few values are reliable
- I have been reading your interesting paper
- Empirical Software Engineering using R: first draft available for download
- Full Fact checking of number words
- The future evolutionary cycle of application software?
- Understanding where one academic paper fits in the plot line
2016 52
- Failed projects + the Cloud = Software reuse
- Is sorting a list of names racial discrimination?
- Automatically generated join-the-dots images
- Christmas books for 2016
- Giving engineers the freedom to create a customer lock-in Cloud
- Ability to remember code improves with experience
- Power law of practice in software implementation
- Uncertainty in data causes inconsistent models to be fitted
- Pre-Internet era books that have not yet been bettered
- Producing software for money and/or recognition
- Software architect is an illegal job title in the UK
- A signature for the “embeddedness” of source code and developers?
- Fortran 2008 Standard has been updated
- Student projects for 2016/2017
- Does public disclosure of vulnerabilities improve vendor response?
- The wind is not yet blowing in software engineering research
- Converting between IFPUG & COSMIC function point counts
- p-values in software engineering
- Software engineering data sets
- Does using formal methods mean anything?
- ‘to program’ is 70 this month
- ALGEC: ALGorithmic language for EConomic problems
- Happy 10th birthday to CREST
- Fortran & Cobol in the USAF over the years 1955-1986
- Is the ISO C++ standard’s committee past its sell by date?
- AEC hackathon: what do the coloured squiggles mean?
- When will Microsoft stop bothering to sell compilers?
- Least Recently Used: The experiment that made its reputation
- GitHub, the logical next purchase for Microsoft after LinkedIn
- Finding the gold nugget papers in software engineering research
- Predicting the next value in an integer sequence
- The fall of Rome and the ascendancy of ego and bluster
- Software Reliability: Lots of detailed data and thoughtful analysis
- COCOMO: Not worth serious attention
- Applied Software Measurement: shame about the made up numbers
- Survival time of Linux distributions
- Cost/performance analysis of 1944-1967 computers: Knight’s data
- Explaining the decline of German comments in LibreOffice
- The dance of the dead cat
- C Standard meeting, April 2016
- Tools that help handle floating-point dragons
- Ada updated to support undefined behavior
- Habits are the peripheral vision of the mind
- cpu+FPGA: applications can soon have bespoke instructions
- A survey of opinions on the behavior of various C constructs
- p-values for programmers
- Workshop on survival and time series analysis in empirical SE
- pycparser: a serious entry in the not-written-in-C C-parser category
- Human vs automatically generated source code: an arms race?
- Maximizing profit selling C compilers
- A book of wrongheadedness from O’Reilly
- subset vs array indexing: which will cause the least grief in R?
2015 56
- R recommended usage for professional developers
- 2015: the year I started regularly talking to researchers in China
- Christmas books: 2015
- So you found a bug in my compiler: Whoopee do
- Hackathon New Year’s resolution
- Machine learning in SE research is a bigger train wreck than I imagined
- The Empirical Investigation of Perspective-Based Reading: Data analysis
- Peak memory transfer rate is best SPECint performance predictor
- Word length lexical decision data
- Operator assignment may be in the next Ada standard
- Researching just to create software patents
- Lisp and functional languages discourage free riders
- Citation patterns in my two books
- Forces driving patterns found in call graphs of human written code
- Workshop on analyzing software engineering data
- The Ockham Sound Analysis Criteria
- Recent formal methods and C papers (Sep 2015)
- The compiler/interpreter distinction
- Actively maintained production compilers for middle-age languages
- Eye-tracking of developers reading code is now in start-up mode
- 2015 in the programming language standard’s world
- Adding house numbers to Open Street Map
- How will C code in 2045 look different from today?
- A first stab a low resolution image enhancement
- Deluxe Paint: 30 year old C showing its age in places
- Exhuastive superoptimization
- R is now important enough to have a paid for PR make-over
- 2015: A new C semantics research group
- High value IP auctions, finally a way to moneterise the blockchain
- Extracting absolute values from percentage data
- Power consumed by different instruction operand value pairs
- Is your interesting project on hold because of lack of sufficient cpu time?
- Aggregate player preference for the first 20 building created in Illyriad
- Source code usage via n-gram analysis
- Joke: Student subjects in software engineering experiments
- Finding team members and an idea at a hackathon
- Finding and choosing a hackathon to attend
- Debian has cast iron rules for package growth & death
- Computing academics destined to remain software engineering virgins
- R’s plot function, the 1970’s retro look is not cool any more
- Semantic vs phonetic similarity for word pairs: a weekend investigation
- A disheartening Space Apps hackathon
- Entropy: Software researchers go to topic when they have no idea what else to talk about
- Coq used to prove that false is true
- C code is 90% unspecified behavior: more uninformed scare mongering
- Ethereum: Is it cost effective to create reliable contracts?
- Been invaded by mysterious sounds? You need SoundHound
- Extracting the original data from a heatmap image
- Hardware variability may be greater than algorithmic improvement
- Long tail licensing
- Do languages evolve to minimise portability?
- Top secret free information
- Live coding, where should I send my invoice for performance royalties?
- My 2cents on the design of the contract language in Ethereum
- Ethereum contracts, is the design viable?
- Users of Open source software are either the product or are irrelevant
2014 64
- Z and Zermelo–Fraenkel
- XSLT, yacc and Yorick
- Wolfram and Whitespace
- VHDL, Visual-Basic and VDM
- UNCOL and UML
- TECO, Tcl/Tkl and TeX
- Snobol 4, Simula 67, Smalltalk, sed, SQL, SETL, Scratch and Spreadsheet
- Ratfor, R, RUNOFF, RPG and Ruby
- Qcl
- Pascal, Prolog, Perl, Python and PL/1
- Occam, Oberon, Objective-C and OCaml
- NATURAL, NewSpeak and NetLogo
- Modula-2, ML, M4, MUMPS and Miranda
- Lisp, Logo, LaTeX and Lua
- KRL and the K semantic-framework
- Jovial, JCL, Java and Javascript
- INTERCAL and Icon
- Haskell, HTML and Hack
- GPSS and Go
- Fortran, Forth, Frink and Flow
- Eiffel, English and Erlang
- Dylan, D and Dart
- Coral 66, CHILL, C, Cobol and C++
- BASIC, Babbage, BCPL, B, BLISS and BLooP
- ALGOL 60, AWK, ALGOL 68, Ada, APL and Assembler
- Empirical analysis of UK legislation started this weekend
- Cobol 2014, perhaps the definitive final version of the language…
- The POPL 2015 papers involving C
- Workshop on App Store Analysis
- Predicting stuff involving the next hour of my life
- Running Average Power Limit: a new target for viruses
- A book about some important bits of R
- Creating a map showing land covered by rising sea levels
- Is Earley parsing now practical?
- undefined behavior: pay up or shut up
- Self-driving cars, is it safer on the inside or the outside?
- Evidence for the benefits of strong typing, where is it?
- C++14 is now in, C++11 is out and C++17 is on the horizon
- Success: Software engineering data is starting to become very dull
- An ISO Standard for R (just kidding)
- My first day developing for Google Glass
- Reality in the world of programming language standards
- How to avoid being a victim of Brooks’ law
- Compiler writing is for hedgehogs
- Agile and the sound of one hand clapping
- Socrates 2014 unconference in the UK
- Source code will soon need to be radiation hardened
- Oh, I did not know that [about R]
- APIs can, for the time being, be copyrighted
- MyFloodPlan: The personalized flood plan App
- C++ vs. Ada: Which language is more strongly typed?
- The Shattered Windows App: How much will an asteroid impact cost you?
- Heartbleed: Critical infrastructure open source needs government funding
- A trip down memory lane with Microsoft Word 1.1
- Hack, a template for improving code reliability
- By now I ought to feel more knowledgeable about R
- Open source: monoculture is more desirable than portability
- Performing a non-local return in R
- Prompt Parking near Buckingham Palace
- Adverts during compilation; the future for gcc and llvm?
- Honking the horn for go faster memory (over go faster cpus)
- Tool for tuning the use of floating-point types
- Changes in the API/non-API method call ratio with program size
- A prediction for 2014
2013 45
- Converting graphs in pdf files to csv format
- Variable naming based on lengths of existing variable names
- How to use intellectual property tax rules to minimise corporation tax
- Unreliable cpus and memory: The end result of Moore’s law?
- Street cred has no place in guidelines for nuclear power stations
- Ordinary Least Squares is dead to me
- R now has its own shelf in Dillons
- What is the error rate for published mathematical proofs?
- Testing compiler semantics with minimal manual input
- Ways of obtaining empirical data in software engineering
- Programming using genetic algorithms: isn’t that what humans already do ;-)
- Single-quote as a digit separator soon to be in C++
- How many ways of programming the same specification?
- Software engineering: A great discipline for an academic fraudster
- 2013 in the programming language standards’ world
- Cloning research needs a new mantra
- A local CS reading group
- I made a mistake, please don’t shoot me
- Amount of end-user usage of code in Firefox
- Unique bytes in a sliding window as a file content signature
- Free range software developers: Are they cost effective?
- Empirical SE groups doing interesting work, 2013 version
- Survey of instruction selection
- Apps in Space Hackathon
- Hiring experts is cheaper in the long run
- Data cleaning: The next step in empirical software engineering
- Arm waver or expert?
- Preferential attachment applied to frequency of accessing a variable
- Wot, apply academic work in industry?
- Dead trees have been replaced by a paywall
- Prioritizing project stakeholders using social network metrics
- Spreadsheet errors: open source or survival of the fittest
- Never too experienced to make a basic mistake
- Push hard on a problem here and it might just pop up over there
- More men than women are incompetent/very competent
- R needs some bureaucracy
- Verified compilers and soap powder advertising
- The most worthwhile R coding guidelines I know
- Does native R usage exist?
- Will incorrect answers be biased towards one arm of an if-statement?
- Will programming languages now have to follow ISO fast-track rules?
- Popularity of Open source Operating systems over time
- Only compiler vendor customers, not its users, count
- US DoD software development data now available
- Programs spent a lot of time repeating themselves
2012 52
- Telepathic communication with a Supreme Being
- Low defect density implies climate code less, not more, reliable
- My R naming nemesis
- Distribution of uptimes for high-performance computing systems
- Proposal for a change of approach to programming language teaching
- Most developers don’t really know any computer language
- Superoptimizers are back in vogue
- Why is Cobol still popular in Japan?
- Sampling is now an issue in software engineering research
- Break even ratios for development investment decisions
- Agreement between code readability ratings given by students
- Sequence generation with no duplicate pairs
- Transition probabilities when adjacent sequence items must be different
- Impact of compiler optimization level on recovery from a hardware error
- Teach children planning and problem solving not programming
- Changes in optimization performance of gcc over time
- Descriptive statistics of some Agile feature characteristics
- The oldest compiler still in production use is?
- Writing language standards is a cottage industry
- My no loops in R hair shirt
- Success does not require understanding
- Why does Coverity restrict who can see its tool output?
- Undefined behavior can travel back in time
- Ternary radix will have to wait for photonic computers
- Impact of hardware characteristics on detectable fault behavior
- Trying to sell analysis tools to the Nuclear Regulatory Commission
- Background to my book project “Empirical Software Engineering with R”
- Maths GCE from 1972 (paper 2)
- Automatically generating railroad diagrams from yacc files
- Why do companies fix faults in software they sell?
- Would you buy second hand software from a formal methods researcher?
- Undefined behavior is a design decision
- EU rules that computer languages cannot be copyrighted
- Incompetence borne of excessive cleverness
- An academic programming language paper about R
- Using identifier prefixes results in more developer errors
- Randomizing a list of items using sort() and rand()
- A free pdf that is not the C++ Standard
- Generating code that looks like it is human written
- Unique values generated by expressions of a given complexity
- Go faster R for Google’s summer of code 2012
- Matching context sensitive rules and generating output using regular expressions
- Generating sounds-like and accented words
- The fatal programming language research mistake
- Parsing R code: Freedom of expression is not always a good idea
- Number of possible different one line programs
- Birth month for compiler writers
- February 2012 news in the programming language standard’s world
- O Cobol, Cobol! wherefore art thou Cobol?
- Correlation between risk attitude and willingness to refer back
- Relative spacing of operands affects perception of operator precedence
- Type compatibility the hard way
2011 38
- Initial impressions of RangeLab
- Licensing to decide the result of gcc vs llvm?
- Optimizing floating-point expressions for accuracy
- Christmas books for 2011
- Learning R as a language
- Software memory management
- Compiling to reduce the impact of soft errors on program output
- Abramowitz and Stegun mark II
- Predictive Modeling: 15th COW workshop
- What I know of Dennis Ritchie’s involvement with C
- Memory capacity and commercial compiler development
- Does the UK need the PL/1 Standard?
- Automatically improving code
- C compiler validation is 21 today!
- sparse can now generate executables
- Halstead’s metrics and flat-Earthers are still with us
- Ruby becoming an ISO Standard
- Estimating the reliability of compiler subcomponent
- Compiler benchmarking for the 21st century
- Quality of data analysis: two recent papers
- Readability: we know nothing
- Fibonacci and JIT compilers
- Developers do not remember what code they have written
- Searching for inaccurate literals in R
- Using evolution to reduce competition
- Fingerprinting the author of the ZeuS Botnet
- Unused function parameters
- Estimating the quality of a compiler implemented in mathematics
- Proving software correct
- Simple generator for compiler stress testing source
- Quality comparison of floating-point maths libraries
- Empirical software engineering is five years old
- A change of guard in the C standard’s world?
- Hexadecimal usage in Google’s scanned books
- ISO Standards, the beauty and the beast
- SQL usage: schema evolution
- Program optimization given 1,000 datasets
- Language usage in Google’s ngram viewer
2010 33
- Has the seed that gets software development out of the stone-age been sown?
- Christmas book for 2010
- Build an ISO Standard and the world will beat a path to your door
- C is top dog in Google AI Challenge
- Flawed analysis of “one child is a boy” problem?
- Ordering of members in Oracle/Google Java copyright lawsuit
- Language vulnerabilities TR published
- Predictor vs. control metrics
- So what if it is undecidable or NP!
- Thinking in R: vectors
- Oracle/Google ‘Java’ patents lawsuit
- Behavior patterns in Colonel Blotto
- Is unreachable code primarily created by a fault?
- Adding negative information to source
- Shell languages are probably a distinct category of computer language
- Two models of developer response to false positive warnings
- Network protocols also evolve into a tangle of dependencies
- Any technical benefits to C++ in a C project?
- GCC moves to attract more developers
- Frequency of floating literals in a given range
- Building directly from a .tgz file
- SEC wants prospectus source code to be published
- Brief history of syntax error recovery
- Number of digits in floating-point literals
- What language was an executable originally written in?
- Program analysis via information leakage
- Variations in the literal representation of Pi
- Using numeric literals to identify application domains
- Designing a processor for increased source portability costs
- Minimum information needed for writing a code generator
- Secret instruction sets about to make a come-back
- Assessing my predictions for 2009
- Why does Intel sell compilers?
2009 39
- The changing shape of code in the next decade
- The Met Office ‘climategate’ Perl code
- Compiler writing in the next decade
- Parsing Fortran 95
- Information content of expressions
- Christmas books for 2009
- Does the Climategate code produce reliable output?
- Software maintenance via genetic programming
- Where are the dead bodies?
- sizeof i++
- Compiler writing: The career path to World domination
- CPUs also exhibit hardware faults
- Estimating variance when measuring source
- Register vs. stack based VMs
- Using Coccinelle to match if sequences
- GLR parsing is the future
- To if-else-if or if-if, that is the question
- Implementing the between operation
- Searching for the source line implementing 3n+1
- Will language choice converge to a few?
- Dimensional analysis of source code
- Assuming compilers are clever enough (part 1)
- The complexity of three assignment statements
- Code generation via machine learning
- Finding the ‘minimum’ faulty program
- Parsing ambiguous grammars (part 1)
- volatile handling sometimes overly volatile
- A fault in the C Standard or existing compilers?
- Using third party measurement data
- Using local context to disambiguate source
- Measuring developer coding expertise
- The probability of encountering a given variable
- Readability, an experimental view
- Unexpected experimental effects
- The sound of code
- Incorrect spelling
- Semantic pattern matching (Coccinelle)
- What I changed my mind about in 2008
- The 30% of source that is ignored
2008 16
- Predictions for 2009
- Recommendations for teachers of programming
- Searching code for a specific kind of calculation
- Criteria for knowing a language
- Why is code so fault tolerant?
- Parsing without a symbol table
- Distribution of numeric values (additive)
- Benford’s law and numeric literals in source code
- How widely used is a language?
- C++ goes for too big to fail
- How not to treat loyal customers
- Naming used to predict object lifetime
- Monte Carlo arithmetic operations
- A power law artifact
- Average distance between two fields
- Will IEEE 754 become a fringe representation?