Rather than alchemy, methodical troubleshooting
I recently encountered a pesky problem while trying to
build a React Native project under Apple’s Xcode.
The build would fail with an error reporting:
Continue reading "Rather than alchemy, methodical troubleshooting"
EMFILE: too many open files, watch.
Frustratingly, all available advice on the web pointed to
different (often inexplicable) directions, none of which worked.
After tormenting myself with these, I decided to troubleshoot
the problem methodically, which allowed me to pinpoint it and
solve it with an uncommon and noteworthy application of the
git bisect command.
Here’s the story.
The Evolution of the Unix System Architecture
Unix has evolved for more than five decades,
shaping modern operating systems,
key software technologies, and development practices.
Studying the evolution of this remarkable system from an
architectural perspective can provide insights
on how to manage the growth of large, complex, and long-lived software systems.
In 2016 my colleague Paris Avgeriou
and I embarked on this study aiming to combine
his software architecture insights with my software analytics skills.
Here is a brief summary of the study, which was published this month
in the IEEE Transactions on Software Engineering.
Continue reading "The Evolution of the Unix System Architecture"
Reviving the 1973 Unix text to voice translator
The early Research Edition Unix versions featured a program that would turn
a stream of ASCII text into utterances that could be played by a voice
The source code of this program was lost for years.
Here’s the story of how I brought it back to life.
Continue reading "Reviving the 1973 Unix text to voice translator"