LinageOS is an alternative Android distribution. It is fast, small and secure. I have installed it on my Xiaomi Redmi 3 today and it works perfectly!
https://lineageos.org/
https://lineageos.org/
lineageos.org
LineageOS – LineageOS Android Distribution
An interesting video about e-ink displays, their hardware design and the way to control them.
https://m.youtube.com/watch?v=MsbiO8EAsGw
https://m.youtube.com/watch?v=MsbiO8EAsGw
YouTube
E-paper hacking: fastest possible refresh rate
How to modify E-paper display firmware to get 3Hz update rate.
Links to all datasheets and sources: http://benkrasnow.blogspot.com/2017/10/fast-partial-refresh-on-42-e-paper.html
Patreon: https://www.patreon.com/AppliedScience
Links to all datasheets and sources: http://benkrasnow.blogspot.com/2017/10/fast-partial-refresh-on-42-e-paper.html
Patreon: https://www.patreon.com/AppliedScience
A series of blog posts describing the memory manager of the Linux i915 driver. Eventually clears how buffer objects are managed and mapped using GTT and PPGTT.
https://bwidawsk.net/blog/index.php/2014/06/the-global-gtt-part-1/
Use the main menu to access other posts.
https://bwidawsk.net/blog/index.php/2014/06/the-global-gtt-part-1/
Use the main menu to access other posts.
MPC is a pure C library implementing parser combinators. You can write your parser using basic parsers and combinators from the library or just describe a grammar to generate the corresponding parser automatically.
https://github.com/orangeduck/mpc
https://github.com/orangeduck/mpc
GitHub
GitHub - orangeduck/mpc: A Parser Combinator library for C
A Parser Combinator library for C. Contribute to orangeduck/mpc development by creating an account on GitHub.
This longread is a great way to show non-technical people what the programming is and why it is difficult but still interesting.
https://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/
It's better to read the article in the desktop, full-featured browser, because the text contains many dynamic interactive examples.
https://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/
It's better to read the article in the desktop, full-featured browser, because the text contains many dynamic interactive examples.
Bloomberg.com
What Is Code? If You Don't Know, You Need to Read This
The world belongs to people who code. Those who don’t understand will be left behind.
Terry Davis has passed away in August. I didn't know that. In spite of his conflictness in community he was a brilliantly productive programmer. His last year was dufficult and finished tragically. Use links below to read more about him and his software.
https://en.m.wikipedia.org/wiki/Terry_A._Davis
https://en.m.wikipedia.org/wiki/TempleOS
https://motherboard.vice.com/en_us/article/wnj43x/gods-lonely-programmer
https://www.templeos.org/
https://en.m.wikipedia.org/wiki/Terry_A._Davis
https://en.m.wikipedia.org/wiki/TempleOS
https://motherboard.vice.com/en_us/article/wnj43x/gods-lonely-programmer
https://www.templeos.org/
Wikipedia
Terry A. Davis
American computer programmer (1969-2018)
Many members of the OSDEV community thought that Terry Devis was a kind of computer freak and considered his OS as an odd job. But, actually, Temple OS always had many strong features that one couldn't find in mainstream operating systems. The following article reveals such hidden things.
http://www.codersnotes.com/notes/a-constructive-look-at-templeos/
http://www.codersnotes.com/notes/a-constructive-look-at-templeos/
From the following video you will learn why it’s dangerous to think that we know everything about computer programming:
https://m.youtube.com/watch?v=8pTEmbeENF4
https://m.youtube.com/watch?v=8pTEmbeENF4
YouTube
Bret Victor The Future of Programming
"The most dangerous thought you can have as a creative person is to think you know what you're doing."
Presented at Dropbox's DBX conference on July 9, 2013.
All of the slides are available at: http://worrydream.com/dbx/
For his recent DBX Conference talk…
Presented at Dropbox's DBX conference on July 9, 2013.
All of the slides are available at: http://worrydream.com/dbx/
For his recent DBX Conference talk…
A video with detailed review of interesting parts one can find in LuaJIT.
https://m.youtube.com/watch?v=EaLboOUG9VQ
https://m.youtube.com/watch?v=EaLboOUG9VQ
YouTube
Vyacheslav Egorov @ VMSS16: What I learned from LuaJIT
Slides and other VMSS16 talks at http://soft-dev.org/events/vmss16/
The following article shows why patch-based version control systems like Darcs and Pijul matter.
https://tahoe-lafs.org/~zooko/badmerge/simple.html
https://tahoe-lafs.org/~zooko/badmerge/simple.html
A history of attacks on cryptographic hash functions.
https://z.cash/technology/history-of-hash-function-attacks
https://z.cash/technology/history-of-hash-function-attacks
Zcash
Lessons From The History Of Attacks On Secure Hash Functions - Zcash
by Zooko Wilcox, Zcash and LeastAuthority, 2017-02-24 This document is a work-in-progress. Please contact the author if you see errors […]
Prose is an open source web application for content authoring on static web sites hosted on github. It supports Jekyll and detects its Markdown pages, performs syntax highlighting, shows previews with full template substitution and so on.
http://prose.io/
http://prose.io/
A tiny collection of simple but playable games written in C and SDL. Compiled with TCC!
https://github.com/superjer/tinyc.games
https://github.com/superjer/tinyc.games
GitHub
GitHub - superjer/tinyc.games: Tiny C games you can compile and run RIGHT NOW
Tiny C games you can compile and run RIGHT NOW. Contribute to superjer/tinyc.games development by creating an account on GitHub.
Most of us know the game Super Mario Bros, but not many of us know about a glitch in the game that allows teleportation to World -1 (minus one) through the warp zone (yes, those small underground rooms with green pipes allowing next level selection).
The following article explains why such behavior can be possible. Again, this is not an easter egg or hidden level, the whole additional world is just a glitch!
https://smcgamer.wordpress.com/2010/09/09/deconstructing-the-minus-world/amp/
The following article explains why such behavior can be possible. Again, this is not an easter egg or hidden level, the whole additional world is just a glitch!
https://smcgamer.wordpress.com/2010/09/09/deconstructing-the-minus-world/amp/
Home in the Clouds
Deconstructing the Minus World
The Minus World of Super Mario Bros. is one of the most famous video game glitches. But why does it happen? Getting Through the Wall Well, first, how do you get through the wall? The game normall…
An unfinished tutorial on writing a compiler for a Haskell-like programming language called Fun.
http://dev.stephendiehl.com/fun/
http://dev.stephendiehl.com/fun/
Список простых компиляторов/анализаторов языка Си или его подмножества.
Все проекты, перечисленные ниже, действительно легки в изучении и модификации. В этот список не вошли маленькие, но более серьезные компиляторы вроде pcc, lcc и компиляторов из plan9.
Neat CC
https://github.com/aligrudi/neatcc_make
Компилирует из подмножеста ANSI C в ARM, i686, X86_64. Есть простые оптимизации на промежуточном представлении. Простой, компактный и аккуратный, что и отражено в названии. Вместе с компилятором автор разрабатывает линкер, ассемблер и стандартную библиотеку. Для сборки требуется, чтобы был установлен транслятор ассемблера fasm. Нет поддержки floating point типов, битовых полей в структурах и некоторых других мелочей. Может собирать код других проектов Ali Gholami Rudi, названных с приставкой neat*.
Tiny C Compiler
https://bellard.org/tcc/
Современный и быстрый компилятор из подмножества C99 (нет комплексных типов). Простой и прямой, собирает множество реальных проектов. Когда-то даже умел собирать ядро Linux, но эта возможность была утрачена. Есть бэкенды для популярных процессорных архитектур и операционных систем.
8cc and 9cc
https://github.com/rui314/8cc
https://github.com/rui314/9cc
Цель разработчика - полная поддержка стандарта C11 при сохранении простоты кодовой базы. Целевая платформа - Linux x86_64.
Есть краткий лог с историей разработки 8cc:
https://www.sigbus.info/how-i-wrote-a-self-hosting-c-compiler-in-40-days.html
Simple C Compiler
https://github.com/8l/scc
Цель разработчиков (suckless.org) - создать простой компилятор C99 с обозримой, простой кодовой базой. Целевые платформы: Z80, x86_64, i686.
Smaller C
https://github.com/alexfru/SmallerC
Однопроходный компилятор с поддержкой C89 и некоторыми расширениями C99. В качестве целевой платформы использует язык ассемблера с NASM синтаксисом.
SubC
https://github.com/minux/subc
Подерживает довольно широкое подмножество C89. Есть бэкенды для ARMv6, i386 и X86_64. Описан в книге Nils M Holm "Practical Compiler Construction". Сильно развит в сравнении с версией из книги.
Sparse
https://sparse.wiki.kernel.org/index.php/Main_Page
Семантический анализатор кода, созданный Линусом Торвальдсом для анализа ядра Linux. На базе Sparse не раз пытались делать компиляторы, но ничем успешным оно не заканчивалось. Поддерживает C99 с множеством GNU расширений, которые используются в ядре Linux.
Все проекты, перечисленные ниже, действительно легки в изучении и модификации. В этот список не вошли маленькие, но более серьезные компиляторы вроде pcc, lcc и компиляторов из plan9.
Neat CC
https://github.com/aligrudi/neatcc_make
Компилирует из подмножеста ANSI C в ARM, i686, X86_64. Есть простые оптимизации на промежуточном представлении. Простой, компактный и аккуратный, что и отражено в названии. Вместе с компилятором автор разрабатывает линкер, ассемблер и стандартную библиотеку. Для сборки требуется, чтобы был установлен транслятор ассемблера fasm. Нет поддержки floating point типов, битовых полей в структурах и некоторых других мелочей. Может собирать код других проектов Ali Gholami Rudi, названных с приставкой neat*.
Tiny C Compiler
https://bellard.org/tcc/
Современный и быстрый компилятор из подмножества C99 (нет комплексных типов). Простой и прямой, собирает множество реальных проектов. Когда-то даже умел собирать ядро Linux, но эта возможность была утрачена. Есть бэкенды для популярных процессорных архитектур и операционных систем.
8cc and 9cc
https://github.com/rui314/8cc
https://github.com/rui314/9cc
Цель разработчика - полная поддержка стандарта C11 при сохранении простоты кодовой базы. Целевая платформа - Linux x86_64.
Есть краткий лог с историей разработки 8cc:
https://www.sigbus.info/how-i-wrote-a-self-hosting-c-compiler-in-40-days.html
Simple C Compiler
https://github.com/8l/scc
Цель разработчиков (suckless.org) - создать простой компилятор C99 с обозримой, простой кодовой базой. Целевые платформы: Z80, x86_64, i686.
Smaller C
https://github.com/alexfru/SmallerC
Однопроходный компилятор с поддержкой C89 и некоторыми расширениями C99. В качестве целевой платформы использует язык ассемблера с NASM синтаксисом.
SubC
https://github.com/minux/subc
Подерживает довольно широкое подмножество C89. Есть бэкенды для ARMv6, i386 и X86_64. Описан в книге Nils M Holm "Practical Compiler Construction". Сильно развит в сравнении с версией из книги.
Sparse
https://sparse.wiki.kernel.org/index.php/Main_Page
Семантический анализатор кода, созданный Линусом Торвальдсом для анализа ядра Linux. На базе Sparse не раз пытались делать компиляторы, но ничем успешным оно не заканчивалось. Поддерживает C99 с множеством GNU расширений, которые используются в ядре Linux.
GitHub
GitHub - aligrudi/neatcc_make: Neatcc top-level makefile
Neatcc top-level makefile. Contribute to aligrudi/neatcc_make development by creating an account on GitHub.
Isolation of vocals with a Convolutional Neural Network.
http://madebyoll.in/posts/cnn_acapella_extraction/
http://madebyoll.in/posts/cnn_acapella_extraction/
madebyoll.in
Acapella Extraction with ConvNets
A working prototype
A library for audio and music processing. There is a good example of vocals separation.
https://librosa.github.io/
https://librosa.github.io/
Golang is beautiful, but it doesn't fit the requirements of embedded systems. There is a try to bring the power of Go to Cortex-M series of MCUs through transpiling to C.
Unfortunately the codebase is messy sometimes, but it looks like a first step towards the noble goal.
I wish the author good luck with the project.
https://github.com/ziutek/emgo
Unfortunately the codebase is messy sometimes, but it looks like a first step towards the noble goal.
I wish the author good luck with the project.
https://github.com/ziutek/emgo
GitHub
GitHub - ziutek/emgo: Emgo: Bare metal Go (language for programming embedded systems)
Emgo: Bare metal Go (language for programming embedded systems) - ziutek/emgo