Ciro Santilli Updated 2026-08-21
Quick facts:
Other people with the same name are listed at Section "Ciro Santilli's homonyms".
Figure 1.
19th century illustration of the Journey to the West protagonist Sun Wukong
. Source.
Sun Wukong (孙悟空) is a playful and obscenely powerful monkey Journey to the West. He protects Buddhist monk Tang Sanzang, and likes eating fruit, just like Ciro. Oh, and Goku from Dragon Ball is based on him. His japanese name is "Sun Wukong" (same Chinese characters with different Japanese pronunciation) for the love. His given name "Wukong" means literally "the one who mastered the void", which is clearly a Dharma name and fucking awesome in multiple ways. This is another sad instance of a Chinese thing better known in the West as Japanese.
It is worth noting however that although Wukong is extremely charming, Ciro's favorite novel of the Four Great Classic Novels is Water Margin. Journey to the West is just a monster of the week for kids, but Water Margin is a fight for justice saga. Sorry Wukong!
Figure 2.
Ciro Santilli playing with a pipette at the University of Cambridge circa 2017
.
The photo was taken in an open event organized by the awesome Cambridge Synthetic Biology outreach group, more or less the same people who organize: www.meetup.com/Cambridge-Synthetic-Biology-Meetup/ and who helped organize Section "How to use an Oxford Nanopore MinION to extract DNA from river water and determine which bacteria live in it".
Taking part in such activities is what Ciro tries to do to overcome his lifelong regret of not having done more experimental stuff at university. Would he have had the patience to handle all the bullshit of the physical word without going back to the informational sciences? Maybe, maybe not. But now he will probably never know?!
Notice the orange high visibility cycling jersey under the lab coat, from someone who had just ridden in from work as fast as possible as part of his "lunch break". It is more fun when it is hard.
Figure 3. .
Ciro Santilli fantasizes that he would have make a good scribe in the middle ages, partly due to his self diagnosed graphomania, but also appreciation for foreign languages, and his mild obsession with the natural sciences.
OurBigBook.com is Ciro's view of a modern day scriptorium, except that now the illuminations are YouTube videos.
The job of a Internet-age scribe is basically that of making knowledge more open, legally extracting it from closed copyrighted sources, and explaining your understanding of it to the wider world under Creative Commons licenses on the web. And in the process of greater openness, given a well organized system, we are able combine the knowledge of many different people, and thus make things more understandable than any single/few creator closed source source could ever achieve.
Ciro once saw some cartoon on Wikipedia help pages of a turtle with a book in one hand, and typing into Wikipedia on its computer, TODO find it. That cartoon summarizes well the modern scribe life.
Another analogous version of this fantasy more in touch with Ciro's sinophily is the ideal of the Chinese scholar, notably including their stereotypical attributes such as mastery of the Four arts.
Figure 4.
Ciro Santilli piling boxes as a child
. A natural born engineer.
Ciro Santilli's minor projects Updated 2025-07-16
These are some smaller projects that Ciro Santilli carried out. They are all either for fun, or misguided use of his time done by an younger self:
Only patches which were reviewed by at least one person with push permission will be listed here.
This may also include patches which were rejected in favor of another patch, but strongly influenced the merged patch.
DateProjectSizeDescription
2024-09python-bitcoin-blockchain-parser1Update plyvel==1.5.1 to fix fatal error: longintrepr.h: No such file or directory build
2024-02btcdeb0fix ‘runtime_error’ is not a member of ‘std’ build error
2019-09KaTeX1Create globalGroup option to place definitions in global scope
2018-06raspi3-tutorial0Explain how to see UART1
2018-05Buildroot1ltp-testsuite: add --with-open-posix-testsuite
2018-03Buildroot1qemu_x86_64_defconfig: fix kernel header version after bump to 4.15
2017-11Cocos2d1Recreate libfmod.so.6 symlinks
2017-10Cocos2d1Make bullet use -fPIC
2017-07OPenCL Headers0C11 anonymous structs / unions should allow xyz notation for vector types
2017-06Linux insides0Mention Buildroot in addition to ivandaviov/minimal
2017-06opengl-tutorial.org0Use existing empty layout on feed.xml
2017-04Tiny Renderer0Add gitignore
2017-02Vulkan Loader0Use nproc instead of ncpu
2017-01Boost Geometry1What is "QPoint::double" in doc/example_adapting_a_legacy_geometry_object_model.qbk ?
2016-12Freetype GL1GLFW Ubuntu package works on 16.10
2016-11honza/vim-snippets1Add C variable printf debug snippets
2016-09Gazebo1Add a world to the gui_overlay_plugin_time example
2016-07Android Vulkan Tutorials1Use android API 24
2016-07minimal linux live0Fix time sh instead of sh time
2016-06GHDL0Typo severals -> several in Invoking doc
2016-06GHDL1Document GCC backend needed to generate executables
2016-06GHDL0Typo debugger -> debugged in BUILD.txt
2016-06GHDL0Typo carray -> carry in full adder example
2016-05facedetect1Add example to extract faces with imagemagick
2016-05ebookFoundation/free-programming-books0Create data science section and add Kaggle to it
2016-05opengl-tutorial.org0Add empty line before triple quotes
2016-05Bullet Physics1Improve HelloWorld
2016-04Freetype GL1Find out how to compile on Ubuntu and document it
2016-03ranger0gitignore install_log.txt generated by make install
2016-03ranger1Add %confdir macro
2016-03ranger1set_bookmark for directories other than the current
2016-02Jami2Create working Android video hardware decoding prototype
2016-02Jami1Started the one command build which was later made official
2016-01leetcode1Java LRUCache with LinkedHashMap
2015-12ebookFoundation/free-programming-books0Add InterviewBit to problem sets
2015-10Linux insides0Recommend ivandaviov/minimal to generate initrd
2015-08bare-metal-tetris0make clean also removes tetris.iso
2015-08eduOS0README typos Binutils and NASM
2015-08GDB0python: fix Linetable case to LineTable in docstrings and comments
2015-07GDB0Remove outdated comment from call-rt-st.exp
2015-07GDB0Fix broken CONTRIBUTE link to GNU insignificant changes
2015-07GDB1py-linetable.c: Fix doc of LineTable.source_lines' return type
2015-07Binutils1Clarify case requirements for gas pseudo-ops
2015-07Capstone0Website typos at beyond_llvm
2015-07Vim Session1auto_save_to option added
2015-05NASM0doc: typo occationally
2015-05ebookFoundation/free-programming-books0Computer Science from the Bottom Up
2015-05ebookFoundation/free-programming-books0problem-sets: leetcode
2015-05ebookFoundation/free-programming-books0Papers we love
2015-04alternativeTo0icanprove.com
2015-04ebookFoundation/free-programming-books0Knapsack Problems
2015-04ebookFoundation/free-programming-books0LSB
2015-04honza/vim-snippets0java: prinlna to print array
2015-04ebookFoundation/free-programming-books0PEG Judge
2015-03GitLab1Convert many JavaScript # links to buttons
2015-03GitLab1Factor permission check in issuable finder
2015-03Spring0Typo Gardle -> Gradle
2015-02Linux insides0Make x86 paging reference title clearer
2015-02GitLab1Ignore .bundle
2015-02ebookFoundation/free-programming-books0Problem sets: CareerCup
2015-01honza/vim-snippets1Fix false positive hyphen list item expansion
2015-01GitLab1Append in place for strings and arrays
2015-01GitLab1Remove unneeded password_confirmation from seed
2015-01GitLab0Typo in project API events comment
2015-01GitLab1Replace match via get with get on routes
2015-01GitLab0Remove or prepend underscore _ to unused method arguments
2015-01GitLab1Change always passing visible false tests
2015-01GitLab1Make blob new and edit file editors more uniform
2015-01GitLab1Replace regex methods by string ones
2015-01GitLab1Simplify SSH fingerprint regexp extraction
2015-01GitLab1Add tests for disabled blob edit button cases v2
2014-12GitLab0permission.md align table, rm double empty line
2014-12GitLab0Remove commit indicator from path on Commits tab
2014-12GitLab0Make protected branch perms explicit in doc
2014-12GitLab0doc workflow markdown style
2014-12GitLab1Disallow POST to compare as it does not create objects
2014-12GitLab0Sort .gitignore
2014-12GitLab1Remove unused Project#code function
2014-12GitLab0Remove unused has_gitlab_shell3? method
2014-12GitLab1Add tests for tree edit routes
2014-12GitLab1Disable / hide MR edit blob button if cannot edit
2014-12GitLab0Use blob local instead of instance
2014-12GitLab1Fix dev user seed: ID was used twice
2014-12GitLab0Fix Rake tasks doc README: add top level h1
2014-12Ruby0Typo close -> closes.
2014-12CommonMark1Add tests for normalize outer whitespace removal
2014-12CommonMark1spec_tests make --pattern affect --dump-tests
2014-12CommonMark1Add --number option to run a single test by its id
2014-12CommonMark1Don't raise exception on invalid UTF-8 output
2014-12CommonMark1spec_tests add short options for common parameters
2014-12CommonMark0Ignore pyc files
2014-12CommonMark1Expose failure to normalize whitespaces
2014-11honza/vim-snippets1Markdown bold and italic
2014-11honza/vim-snippets1Markdown links URLs from the clipboard
2014-11honza/vim-snippets1Markdown autolinks
2014-11honza/vim-snippets1Let the short version of links not have title.
2014-11honza/vim-snippets1Fix markdown fenced code blocks.
2014-11GitLab1Delete tags and branches that start with hyphen
2014-11GitLab3Restore hooks PATH before calling ruby
2014-11GitLab1Factor regex error messages with spec API tests
2014-11GitLab1Move new blob commit message textarea below editor
2014-11gitbrute0Usage
2014-11GitLab1Factor GITLAB_SHELL_VERSION get method
2014-11GitLab1Create dev fixture projects with fixed visibility
2014-11GitLab1Factor using Repository#path_to_repo
2014-11GitLab1Remove unused authenticate_user from project#show
2014-11GitLab1Remove dead Event#new_branch? method
2014-11GitLab1Don't output to stdout from lib non-interactive methods
2014-11GitLab2Fix version of test seed branches to specific revisions
2014-11GitLab1Factor '0' * 40 blank ref constants
2014-11GitLab1Transform remove blob link into button
2014-11GitLab1Update default regex message to match regex
2014-11GitLab0Continue strings with backslash instead of append
2014-11GitLab1Factor behaviors.scss constants
2014-11GitLab0Remove unneeded backslash: "/" == "/"
2014-11GitLab1Fix push not allowed to protected branch if commit starts with 7 zeros
2014-11GitLab1Use require spec_helper instead of relative path
2014-11GitLab0Fix doc rake import md style
2014-11GitLab1Factor lib backend gitlab shell path
2014-10GitLab1Run user select Js only where needed
2014-10GitLab1Use button type=submit instead of input
2014-10GitLab1Only run profile js on pages that need it
2014-10GitLab1Better js -> URL projects map to reduce unneeded execution
2014-10GitLab1Use Gitlab.config instead of Settings everywhere
2014-10GitLab1Show nothing instead of unassigned on issues
2014-10GitLab1Only run namespace select js when needed
2014-10GitLab0Merge File basename and dirname into split
2014-10GitLab1Fix import.rake failed import if project name is also an existing namespace
2014-10GitLab0Remove unused variable user at lib/gitlab/markdown
2014-10GitLab1Use argument list for sh instead of string
2014-10GitLab1Only run avatar chooser Js on pages that need it
2014-10GitLab1Remove whitespace link between user group avatars
2014-10GitLab0Fix doc raketasts import md style
2014-10GitLab1Remove unneeded app/finders config.autoload path
2014-10GitLab0Improve grack auth hooks comment.
2014-10GitLab1Remove unused admin/projects#repository method
2014-10GitLab1Factor admin logs
2014-10GitLab1Remove unused filter from ProjectsController
2014-10GitLab1Remove unused dev_tools helper.
2014-10GitLab1Factor authorize_push! and authorize_code_access!
2014-10GitLab1Replace match with end_with: more readable, faster
2014-10GitLab1Use @project on controllers, don't call method
2014-10GitLab1Remove param[:project_id] at admin controller
2014-10GitLab1DRY mentioned in magic note constant
2014-10GitLab1Factor group forms
2014-10GitLab1State on CONTRIBUTING that people should fix line style of touched lines
2014-10GitLab1Export all coffee classes with @
2014-10GitLab1Fix missing flash on file edit error from web UI.
2014-10Capybara0Fix History typo.
2014-10GitLab1Make new and edit file submit more uniform
2014-10libgit21Join typedef and struct definitions in single file
2014-10GitLab1Factor dashboard helper methods
2014-10GitLab1Factor issue and merge request services
2014-10GitLab1Replace www.gitlab.com with about.gitlab.com
2014-10GitLab0Improve formatting of app/finders/README.md
2014-10GitLab0Remove outdated comment from commits_controller
2014-10GitLab1Factor markup? gitlab_markdown? into new method
2014-10GitLab1Remove unused title parameter
2014-10GitLab1Make Spinach test names consistent
2014-10GitLab0Ignore .bundle
2014-10GitLab0Ignore tags file
2014-10GitLab0Split one instance variable per line
2014-10GitLab1Factor commit message textareas
2014-10GitLab1Remove outdated comment on the project test seed
2014-10GitLab0Remove assignment without effect.
2014-10GitLab1Add parenthesis to function def with arguments.
2014-10GitLab1Remove test line without effect because no should.
2014-10GitLab1Improve remove file commit message textarea placeholder
2014-10GitLab1Replace :erb filter with plain HAML
2014-10GitLab1Remove blame lines added leading whitespace
2014-10GitLab1Improve new file commit message textarea placeholder.
2014-10GitLab1Simplify custom MR good commit message hint
2014-10GitLab1Move group feature step to match test location
2014-10GitLab1Titleize blob action buttons.
2014-09GitLab0Remove statement without effect.
2014-09GitLab0Fix dev merge seed: update testme to gitlab-test.
2014-09GitLab0Remove trailing whitespace from views.
2014-09GitLab1Remove def project from tests that inherit it.
2014-09GitLab1Replace testme with gitlab-test.
2014-09GitLab1Add predictable merge requests on dev seed.
2014-09GitLab1Prevent email sending on admin dev seed.
2014-09GitLab1Only show text wrap and diff notes for text in merge requests.
2014-09GitLab1Add web UI file CRUD tests.
2014-09GitLab1Remove type submit from button_tag since default.
2014-09GitLab1Replace empty? nil? with blank?.
2014-09GitLab0Typo indiciated -> indicated.
2014-09GitLab1Remove unnecessary page. from tests.
2014-09GitLab1Remove ununsed CONTRIBUTING link on edit MR form.
2014-09GitLab1Add g++ dependency to ubuntu install.
2014-09GitLab0Hound prefer single quotes.
2014-09libgit20Remove unused buf variable from path/core test.
2014-09GitLab1Only clone GitLab Shell on tests if necessary.
2014-09GitLab1Factor fork button view.
2014-09GitLab1evaluate -> execute_script when return not needed.
2014-09GitLab1evaluate_script history -> go_back and go_forward.
2014-09GitLab1Factor current_url + URI.path into current_path.
2014-09GitLab1Replace javascript:; links with buttons.
2014-09GitLab1Factor .add-diff-note active state.
2014-09GitLab1Fix link_to_reply_diff.
2014-09GitLab1Factor issue and MR edit form error list.
2014-09GitLab1Factor error and success methods from services.
2014-09GitLab1Set textarea resize:vertical by default.
2014-09GitLab1Factor out commit list from compare and new MR.
2014-09GitLab1Prefix Spinach features with Spinach::Features::.
2014-09GitLab0Typo it -> its.
2014-09GitLab1Factor zen mode.
2014-09GitLab0Ignore tags file.
2014-09GitLab1Improve zen mode internals.
2014-09GitLab0CONTRIBUTING typos.
2014-09Marked1Add browser usage to README
2014-09GitLab0Typo herlper -> helper.
2014-09libgit21Factor 40 and 41 constants from source.
2014-09libgit21Replace void casts with GIT_UNUSED.
2014-09libgit2/rugged0Typo "di ff" -> diff.
2014-09libgit2/rugged0Remove trailing whitespace.
2014-09libgit2/rugged0Gitignore rdoc/.
2014-09libgit2/rugged0Factor File.join in test sandbox_init.
2014-09Ruby on Rails1Explain ERB space removal.
2014-09GitLab0Update README to match Md style in CONTRIBUTING.
2014-09GitLab0Typo localy -> locally
2014-09vader.vim1Add run-tests script.
2014-09vader.vim2Add SyntaxAt and SyntaxOf helpers.
2014-09libgit2/rugged0Remove trailing whitespace.
2014-09libgit2/rugged0Gitignore rdoc/.
2014-09libgit2/rugged0Factor File.join in test sandbox_init.
2014-09Pro Git book1Mention packed-refs.
2014-09GitLab1Add link to fixed SHA version on blob.
2014-09GitLab1Factor new issue and edit MR forms.
2014-09GitLab1Fix missing to on reassign Merge Request text email to unassigned.
2014-09GitLab1Fix missing to on reassign Merge Request email to unassigned.
2014-09karlcow/markdown-testsuite1Run multimarkdown in compatibility mode.
2014-09karlcow/markdown-testsuite1Link to stmd.
2014-09GitLab1Add users with deterministic username and password to development seed.
2014-09Ruby on Rails0Shorten ActionView::Base doc summary line.
2014-09Ruby on Rails1Clarify Rails uses erubis not stdlin ERB.
2014-08honza/vim-snippets1Rename node p to pipe
2014-08GitLab0Typo.
2014-08honza/vim-snippets1README improvements: md style, typos, fix links.
2014-08honza/vim-snippets1Add tex hyperlink snippets.
2014-08GitLab1Remove HAML eval for const strings.
2014-08softcover1Ignore template top level tex file.
2014-08softcover1Fix failing PDF fontsize verbatim test.
2014-08honza/vim-snippets1Add tex listings snippets.
2014-08GitLab0Fix Md style for API docs.
2014-08GitLab0Fix Md style for projects API doc.
2014-08GitLab1Restrict commit area resize to vertical.
2014-08GitLab0Update README Markdown style to match CONTRIBUTING
2014-07Pro Git book1Set dummy merge driver merge ours .gitattributes.
2014-07GitLab2Add project stars.
2014-07GitLab1Increase diff byte highlight contrast.
2014-07GitLab0Clarify squash comes after review.
2014-07GitLab0Enforce Markdown style.
2014-07Octokat.js1Gitignore fixtures and dist/commonjs.
2014-07GitLab1Fix username validation message to match regexp.
2014-06GitLab1Add trailing newline to all text files.
2014-06GitLab0Typo.
2014-06markdownlint/markdownlint0Typo.
2014-06Ruby on Rails0Typo.
2014-06GitLab1Replace HTML5 obsolete center element with CSS.
2014-06developer.github.com1Explain :user is username not ID.
2014-06Prose0Correct CONTRIBUTING typos.
2014-06Octokat.js1Fix repo to repos in README examples.
2014-06Octokat.js1Fix typos and style on README.
2014-06octokit.js0Remove trailing whitespace.
2014-06octokit.js1Add grunt watch.
2014-06Octokat.js0Remove unneeded semicolon.
2014-06Octokat.js1Add grunt watch.
2014-06karlcow/markdown-testsuite2Add Vagrantfile.
2014-06karlcow/markdown-testsuite1Remove hoedown options.
2014-06honza/vim-snippets1Add HTML ac Anchor from Clipboard.
2014-06RVM0Correct some doc typos.
2014-06GitLab1Clarify that bbastov is the style of Hound CI.
2014-06GitLab2Update docs to match new markdown style guide.
2014-05karlcow/markdown-testsuite1Add blackfriday, lunamark, maruku and rdiscount.
2014-05karlcow/markdown-testsuite1Add autolink-no-bracket extension test.
2014-05karlcow/markdown-testsuite0Add showdown engine.
2014-05karlcow/markdown-testsuite1Title attribute is significant at normalization.
2014-05karlcow/markdown-testsuite1Add design goals.
2014-05karlcow/markdown-testsuite0Add Python Markdown 2 engine.
2014-05karlcow/markdown-testsuite0Add peg-markdown engine.
2014-05GitLab1Commit message textareas have 72 char mark line.
2014-05karlcow/markdown-testsuite1Add autolink-no-bracket extension test.
2014-05karlcow/markdown-testsuite1Add link-idref-implicit-no-bracket test.
2014-05karlcow/markdown-testsuite1Minor fixes to addition of hoedown.
2014-05karlcow/markdown-testsuite1Remove no-auto-id argument for kramdown.
2014-05karlcow/markdown-testsuite1Add markdown_pl Markdown.pl engine.
2014-04GitLab0Remove redundant signin link from signin page.
2014-04GitLab1Add help link to header.
2014-04karlcow/markdown-testsuite1Improve output normalization with custom parser.
2014-04karlcow/markdown-testsuite1Add ordered-list-inner-par-list test.
2014-04GitLab CI1Add application.yml.example.development.
2014-04Boost Graph1Explicitly use vertex type on quick tour example.
2014-04karlcow/markdown-testsuite1Add list-code-1-space test.
2014-04karlcow/markdown-testsuite1Add md2html engine.
2014-04karlcow/markdown-testsuite1Remove email tests because output is random.
2014-04karlcow/markdown-testsuite2Run only tests that contain string in title.
2014-04karlcow/markdown-testsuite1Add marked engine.
2014-04GitLab1Add markdown styleguide.
2014-04GitLab1Include SASS in subdirectories with glob.
2014-04tig1Add refs bind ! to delete branch.
2014-04GitLab1Rename issue form tags to match MR and params.
2014-04GitLab1Say issues are accepted at both GitLab and GitHub.
2014-03karlcow/markdown-testsuite1Document config_local.py on README.
2014-03karlcow/markdown-testsuite1Factor out engines that are commands on PATH.
2014-03karlcow/markdown-testsuite1Add sample run-tests.py output to README.
2014-03karlcow/markdown-testsuite1Check if are no engines enabled to avoid exception.
2014-03plasticboy/vim-markdown1Add Toc commands.
2014-03karlcow/markdown-testsuite0One disable per line commented out on conf.
2014-03karlcow/markdown-testsuite0Add multimarkdown support.
2014-03karlcow/markdown-testsuite0Typo conten -> content.
2014-03karlcow/markdown-testsuite2Automated tests.
2014-03GitLab CI0Remove config/puma.rb from gitignore.
2014-03GitLab CI0Ignore config/unicorn.rb.
2014-03GitLab CI0Tell users to install bundle locally without sudo.
2014-03GitLab CI0Document where to find the registration token.
2014-03karlcow/markdown-testsuite0Remove space from simple list, specify asterisk.
2014-03karlcow/markdown-testsuite1Add script to cat all input files.
2014-03karlcow/markdown-testsuite0Remove newline from empty files.
2014-03GitLab1Start development Key seed id from 1.
2014-03GitLab1Show link to public projects for new users.
2014-03GitLab cookbook1Correct bindfs metal dev init script.
2014-03GitLab CI0Organize gitignore.
2014-03GitLab cookbook1Correct metal install home share technique.
2014-03GitLab cookbook0Uniform markdown headers
2014-03GitLab cookbook0Typo ommited -> omitted.
2014-03GitLab0Documentation Typos
2014-02plasticboy/vim-markdown1Add contributing guidelines and started tests as required by them.
2014-02plasticboy/vim-markdown0Add Vundle install to README, updated pathogen URL to GitHub.
2014-02plasticboy/vim-markdown0Create credits section, remove link to old homepage.
2014-02GitLab1Remove dir prefix from filename of tests under dir.
2014-02karlcow/markdown-testsuite0Make title more readable.
2014-02karlcow/markdown-testsuite0Make readme intro more direct.
2014-02karlcow/markdown-testsuite1Add extensions.
2014-02GitLab2Blob and tree markdown links to anchors work.
2014-02git-browse-remote0Add install instructions.
2014-02Overleaf1Remove latexmk install instructions from README.
2014-02Overleaf1Remove dollars from readme bash code.
2014-02Overleaf1Add dummy version to package.json to fix install.
2014-02Overleaf1Add .nvmrc
2014-02GitLab2User can leave group from group page.
2014-02GitLab2Add anchors to markdown rendered headers.
2014-02GitLab2User profile pages are publicly visible.
2014-01GitLab cookbook1Development install documentation correction.
2014-01GitLab cookbook2Create metal development install documentation.
2014-01GitLab cookbook0Improve docs.
2014-01GitLab cookbook1Add option to control the SSH port used.
2013-12GitLab cookbook1Improve production install docs.
2013-11plasticboy/vim-markdown1Header navigation mappings work for Setext headers.
2013-10okular1Add shortcut to Change Colors on a page.
2013-09plasticboy/vim-markdown2Add mappings to navigate across headers.
2013-02SciPy1Improve documentation.
2013-01Django Userena1Add new configuration option.
2012-11DataTables1Improved a doc example.
DateProjectSizeDescription
2019-04gnuplotWhy does plotting with point labels make plot generation extremely slow?
2019-04GDB DashboardLimit the size of shown arguments in the Stack display
2018-03QEMU2Test record and replay feature. Also here
2018-02pandocAdd option to produce AsciiDoc output without explicit heading ids
2017-10AndroidGLES3 content gles3jni from ndk examples fails with "java.lang.RuntimeException: createContext failed: EGL_BAD_CONFIG"
2017-09Mozilla rrHow to automatically start replay and go directly to main instead of _start?
2017-09Mozilla rrReverse step over time(NULL) enters rr/src/preload/syscall_hook.S and leads to "Cannot find bounds of current function"
2017-08xselWhy maximum 4000 characters output with xsel -b ?
2017-06BuildrootDon't print mutiline struct function arguments on stack when set pretty print on
2017-04GDB DashboardAdd style option to print stack arguments on a single line
2017-05BuildrootBuild fails with "unexpected EOF while looking for matching "'" if PATH contains a newline
2017-04GDB DashboardAdd style option to print stack arguments on a single line
2017-03clBLAS.s[0] + CL_DEVICE_TYPE_ALL
2017-01game-icons.netUse multiple separate paths, allow customizing the color of each component, and give a default color
2017-01game-icons.netdelapouite/originals/svg/brick-wall.svg has some whitespace on top
2017-01OpenAI Gymexamples/agents/keyboard_agent.py fails with "AttributeError: 'TimeLimit' object has no attribute 'viewer'"
2016-12Simple DirectMedia LayerAdd C variable printf debug snippets
2015-03tigAccepted feature.
2014-11GitLabDuplicate
2014-11GitLabBug.
2014-11GitLabSupport.
2014-11Bootstrap Hover DropdownBug confirmed.
2014-11GitLabBug confirmed.
2014-11GitLabTriaging.
2014-11GitLabProblem with the display icons in the left block
2014-11sassBug confirmed.
2014-10GitLabPoint duplicate.
2014-10GitLabBug confirmed.
2014-10GitLabBug confirmed.
2014-10Semaphore CIBug confirmed.
2014-10libgit2Bug confirmed.
2014-10GitLabSupport.
2014-10GitLabPoint duplicate.
2014-09vader.vimAccepted feature.
2014-09GitLabPoint already fixed.
2014-09vader.vimAccepted feature.
2014-09GitLabBug confirmed.
2014-09GitLabBug confirmed.
2014-09GitLabPoint duplicate.
2014-09GitLabPoint already fixed.
2014-08markdownlint/markdownlintAccepted feature.
2014-08softcoverAccepted feature.
2014-08markdownlint/markdownlintAccepted feature.
2014-07GitLabBug confirmed.
2014-07GitLabAccepted feature.
2014-07GitLabAccepted feature.
2014-06GitLabAccepted feature.
2014-06GitLabPoint duplicate.
2014-06karlcow/markdown-testsuiteBug confirmed.
2014-06plasticboy/vim-markdownClose issue.
2014-06plasticboy/vim-markdownReview patch.
2014-06plasticboy/vim-markdownReview and patch patch.
2014-05softcoverAccepted feature.
2014-04karlcow/markdown-testsuiteClose issue with better issues.
2014-03tigAccepted feature.
2014-03GitLabAccepted feature.
2014-03softcoverAccepted feature.
2014-03GitLabAdd useful information.
2014-03GitLabPoint duplicate.
2014-03GitLabPoint duplicate.
2014-03GitLabAccepted feature.
2014-02GitLabPoint duplicate.
2014-02GitLabAccepted feature.
2014-02OverleafFeature generated considerable interest.
2014-02GitLabPoint already fixed.
2014-02GitLabLink feature request to patch.
2013-10yakuakeBug confirmed.
2013-10okularBug confirmed.
2013-06krusaderBug confirmed.
2013-05NumPyBug confirmed + inner cause.
2012-05krusaderAccepted feature.
2012-05krusaderBug confirmed.
2012-05AutoKeyBug confirmed.
OurBigBook.com / Motivation Updated 2025-07-16
Many subjects have changed very little in the last hundred years, and so it is mind-blowing that people have to pay for books that teach them!
If computers are bicycles for the mind, Ciro wants this website to be the Ferrari of the mind.
Since Ciro Santilli was young, he has been bewildered by the natural sciences and mathematics due to his bad memory.
The beauty of those subjects has always felt like intense sunlight in a fresh morning to Ciro. Sometimes it gets covered by clouds and obscured by less important things, but it always comes back again and again, weaker or stronger with its warmth, guiding Ciro's life path.
As a result, he has always suffered a lot at school: his grades were good, but he wasn't really learning those beautiful things that he wanted to learn!
School, instead of helping him, was just wasting his time with superficial knowledge.
First, before university, school organization had only one goal: put you into the best universities, to make a poster out of you and get publicity, so that more parents will be willing to pay them money to put their kids into good university.
Ciro once asked a chemistry teacher some "deeper question" after course was over, related to the superficial vision of the topic they were learning to get grades in university entry exams. The teacher replied something like:
You remind me of a friend of mine. He always wanted to understand the deeper reason for things. He now works at NASA.
Ciro feels that this was one of the greatest compliments he has ever received in his life. This teacher, understood him. Funny how some things stick, while all the rest fades.
Another interesting anecdote is how Ciro Santilli's mother recalls that she always found out about exams in the same way: when the phone started ringing as Ciro's friends started asking for help with the subjects just before the exam. Sometimes it was already too hopelessly late, but Ciro almost always tried. Nothing shows how much better you are than someone than teaching them.
Then, after entering university, although things got way better because were are able to learn things that are borderline useful.
Ciro still felt a strong emotion of nostalgia when after university his mother asked if she could throw away his high school books, and Ciro started tearing them all down for recycling. Such is life.
University teachers were still to a large extent researchers who didn't want to, know how to and above all have enough time and institutional freedom to teach things properly and make you see their beauty, some good relate articles:
The very fact that you had very little choice of what to learn so that a large group can get a "Diploma", makes it impossible for people to deeply learn what the really want.
This is especially true because Ciro was in Brazil, a third world country, where the opportunities are comparatively extremely limited to the first world.
Also extremely frustrating is how you might have to wait for years to get to the subject you really want. For example, on a physics course, quantum mechanics is normally only taught on the third year! While there is value to knowing the pre-requisites, holding people back for years is just too sad, and Ciro much prefers backward design. And just like the university entry exams, this creates an entry barrier situation where you might in the end find that "hey, that's not what I wanted to learn after all", see also: students must have a flexible choice of what to learn.
We've created a system where people just wait, and wait, and wait, never really doing what they really want. They wait through school to get into university. They wait through university to get to masters. They wait through masters to get to PhD. They wait through PhD to become a PI. And for the minuscule fraction of those that make it, they become fund proposal writers. And if you make any wrong choice along the, it's all over, you can't continue anymore, the cost would be too great. So you just become software engineer or a consultant. Is this the society that we really want?
And all of this is considering that he was very lucky to not be in a poor family, and was already in some of the best educational institutions locally available already, and had comparatively awesome teachers, without which he wouldn't be where he is today if he hadn't had such advantages in the first place.
But no matter how awesome one teacher is, no single person can overcome a system so large and broken. Without technological innovation that is.
The key problem all along the way is the Society's/Government's belief that everyone has to learn the same things, and that grades in exams mean anything.
Ciro believes however, that exams are useless, and that there are only two meaningful metrics:
Even if you wanted to really learn natural sciences and had the time available, it is just too hard to find good resources to properly learn it. Even attending university courses are hit and miss between amazing and mediocre teachers.
If you go into a large book shop, the science section is tiny, and useless popular science books dominate it without precise experiment descriptions. And then, the only few "serious" books are a huge list of formulas without any experimental motivation.
And if you are lucky to have access to an university library that has open doors, most books are likely to be old and boring as well. Googling for PDFs from university courses is the best bet.
Around 2012 however, he finally saw the light, and started his path to Ciro Santilli's Open Source Enlightenment. University was not needed anymore. He could learn whatever he wanted. A vision was born.
To make things worse, for a long time he was tired of seeing poor people begging on the streets every day and not doing anything about it. He thought:
He who teaches one thousand, saves one million.
which like everything else is likely derived subconsciously from something else, here Schindler's list possibly adapted quote from the Talmud:
He who saves the life of one man saves the entire world.
So, by the time he left University, instead of pursuing a PhD in theoretical Mathematics or Physics just for the beauty of it as he had once considered, he had new plans.
We needed a new educational system. One that would allow people to fulfill their potential and desires, and truly improve society as a result, both in rich and poor countries.
And he found out that programming and applied mathematics could also be fun, so he might as well have some fun while doing this! ;-)
So he started Booktree in 2014, a GitLab fork, worked on it for an year, noticed the approach was dumb, and a few years later started building this new version. The repo github.com/booktree/booktree is a small snapshot of Ciro's 2014 brain on the area, there were quite a few similar projects at the time, and most have died.
Ciro is basically a librarian at heart, and wants to be the next:
Video 2.
"Brewster Kahle: A digital library, free to the world." 2007 TED Talk
. Talks about the Internet Archive which he created. Source.
Video 3.
Sal Khan from Khan Academy 2016 TED talk
. Ciro is not a big fan of the "basis on top of basis focus" because of his obsession with backward design, but "learn to mastery at your own pace" and "everyone can be a world class innovator" are obviously good. Source.
OurBigBook.com Updated 2026-10-18
Mission: to live in a world where you can learn university-level mathematics, physics, chemistry, biology and engineering from perfect free books that anyone can write to get famous.
Further information and rationale: Section "OurBigBook.com"
The project's mission is one of, or perhaps the most important, life objective of Ciro Santilli. Reproductive goals aside. These two types of goal are incommensurable. This is one of the great challenges of life.
This is ongoing project.
Ciro's goals in advertising this half done project are is partly to obtain some feedback, and partly to give the idea to someone else who might help push it further, be it in this stack or not.
Better editing support is a must, likely WYSIWYG.
But besides that, it is already in broad strokes the best approach Ciro Santilli can come up with to try and reach the mission statement only with technical advances, i.e. without large amounts of money or political influence which Ciro Santilli does not have.
Maybe that website isn't enough of a technical advance to reach its mission. Maybe there is some further not yet imagined technical insight that would push it into viability. Maybe not. But one must try. Only God can know the answer to these questions.
As of 2022, Ciro has spent about 2.5 years full time working on this project. First he spent about 1 year in 2014 on the first iteration: github.com/booktree/booktree, a GitLab fork, but then decided it was not the way to go.
Then around 2021 he put in some more 1.5 year of full time work, now with a possibly overly complicated (or perhaps just insane/immature) Next.js/Sequelize from scratch website stack.
It makes Ciro a bit ashamed to see that "so little user visible stuff was achieved in so much time". It is partly because he and many people underestimate the difficulty of web development. Perhaps there were some bad stack/useless feature choices issues. And a good dose of indulging in studying the natural sciences to bootstrap content and have fun. But really trying is the only way to learn.
Ruby on Rails Updated 2025-07-16
The only reason why Ruby exists.
This web framework is pretty good as of 2020 compared to others, because it managed to gain a critical community size, and there's a lot of basic setup already done for you.
it is just big shame it wasn't written in Python or even better, Node.js, because learning Ruby is completely useless for anything else. As of 2020 for example, most Node.js web frameworks feel like crap compared to Rails, you just have to debug so much there.
Used in GitLab, which is why Ciro Santilli touched it.