The art of programming Updated +Created
Just art:
  • useless mathy stuff
  • incredibly nifty little tools that are just so satisfying to use it is mind blowing:
  • media related stuff
Build automation Updated +Created
Compiler Updated +Created
Computer-aided design Updated +Created
Computer program Updated +Created
One specific software project, typically with a single executable file format entry point.
Computer security Updated +Created
As mentioned at Section "Computer security researcher", Ciro Santilli really tends to like people from this area.
Also, the type of programming Ciro used to do, systems programming, is particularly useful to security researchers, e.g. Linux Kernel Module Cheat.
The reason he does not go into this is that Ciro would rather fight against the more eternal laws of physics rather than with some typo some dude at Apple did last week and which will be patched in a month.
Computer user-interface Updated +Created
Data compression Updated +Created
Database Updated +Created
File manager Updated +Created
Ciro Santilli used to use file managers in the past.
File sharing Updated +Created
Game engine Updated +Created
A library to make games.
Geographic information system Updated +Created
Integrated development environment Updated +Created
IDEs are absolutely essential for developing complex software.
The funny thing is that you don't notice this until someone shows it to you. But once you see it, there is not turning back, just like Steve Jobs customers don't know what they want quote.
Unfortunately, after the Fall of Eclipse (archive), the IDE landscape in 2019 is horrible and split between:
  • highly buggy but still feature rich Eclipse
  • many may many other feature lacking options using possibly more trendy and forward lasting implementations like Electron
  • awesome cross-platform proprietary JetBrains IDEs
  • the God-like Windows-only proprietary language-lacking Visual Studio
Programmers of the world: unite! Focus on one IDE, and make it work for all languages and all build systems. Give it all the features that Eclipse has, but none of the bugginess. Work with top project to make sure the IDE works for all top projects.
Projects of the world: support one IDE, with in-tree configuration. Complex integration is often required between the IDE and the build system, and successful projects must to that once for all developers. Either do this, or watch you complex project wither away.
Build tool maintainers: make it possible for IDEs to support your tool! E.g., implement JSON Compilation Database output so that IDEs can read the exact compiler commands from that, in order to automatically determine how files should be parsed! Or better, just use libllvm in your IDE itself as the main parser.
Ciro is evaluating some IDEs at: github.com/cirosantilli/ide-test-projects
Killer application Updated +Created
Memory management Updated +Created
Garbage collection (computer science) Updated +Created
Messaging software Updated +Created
Multimedia software Updated +Created