'Universal memory' research passes new milestone
"Universal memory" is, in essence, a memory where the data is very robustly stored, but can also easily be changed; something that was widely considered to be unachievable—until now. Currently, the two main types of memory, dynamic RAM (DRAM) and flash, have complementary characteristics and roles. DRAM is fast, so used for active (working) memory but it is volatile, meaning that information is lost when power is removed. This new non-volatile RAM, called ULTRARAM, would be a working implementation of so-called 'universal memory', combining all the advantages of DRAM and flash, with none of the drawbacks. Simulations of Ultralow-Power Nonvolatile Cells for Random-Access Memory, IEEE Transactions on Electron Devices (2020).
Dependent Type Systems as Macros [pdf]
Gamedev Tutorial: Dot Product, Rulers, and Bouncing Balls
本文之中文翻譯在此PrerequisitesOverviewThe dot product is a simple yet extremely useful mathematical tool. In this tutorial, you’ll learn:The geometric meaning of the dot product. Cosine-Based Dot Product FormulaNotice that there’s a right triangle in the figure. Since monotonically decreases all the way to , the more similar the directions of the two vectors are, the larger their dot product; the more opposite the directions of the two vectors are, the smaller their dot product. Finally, we have learned how to use the dot product to reflect vectors, and how to use vector reflection to simulate balls bouncing off a slope.
Ontology for the life sciences: genes, proteins, diseases, all expressed in OWL
bfo Basic Formal Ontology The upper level ontology upon which OBO Foundry ontologies are built. Detailxao Xenopus Anatomy Ontology Anatomy and development of the African clawed frog (Xenopus laevis). DetailGeographical Entity OntologyAn ontology of geographical entities DetailGlycan Naming OntologyAn ontology for glycans based on GlyTouCan, but organized by subsumption. DetailHUPO-PSI cross-linking and derivatization reagents controlled vocabularyA structured controlled vocabulary for cross-linking reagents used with proteomics mass spectrometry. obsolete Detailtao Teleost Anatomy Ontology Multispecies fish anatomy ontology.
The C64 as Pipe Organ
It has been postulated that this was a test tune that Bach would play when trying out new organs. The chorale itself is a very simple melody, so the praxis is to embellish it with trills and other ornaments. A passacaglia is based on a short melody which is repeated throughout the piece, mostly in the bass, sometimes with variations. These four roles — playing the subject, playing the first counter-subject, playing the second counter-subject and playing free counterpoint — can be distributed among the four voices in 24 different permutations. This happens eleven times throughout the fugue, and Bach picks a different permutation every time according to a mathematical formula.
Cello – High Level C
I made Cello as a fun experiment to see what C looks like hacked to its limits. It might be better to try Cello out on a hobby project first. People have experimented with it, but there is no high profile project I know of that uses it. Cello is too big and scary a dependency for new C projects if they want to be portable and easy to maintain. If you do anything with Cello I'd love to know, you can e-mail me at firstname.lastname@example.org , or help with the development at the Cello github repo.
FreeBSD is an amazing operating system
This is a small article about some of my adventures with FreeBSD and why I believe it is an amazing operating system. When I asked about the choice of operating system the system administrator said something like:People who know what they are doing run FreeBSD! As mentioned previously, because FreeBSD is a real multi-purpose operating system with many different use cases, FreeBSD is very flexible and tuneable. FreeBSD is an operating system made by developers who are also system administrators. FreeBSD is an amazing operating system!
Beethoven’s audacious acts of musical risk-taking
Writing Code to Be Spoken (2019)
A personal favorite design element that APL allows me to explore is the "lyricality" of a given piece of code. I ask myself how much the natural language description of what a piece of code does would map directly to the code. Pass Overview: Count the Rank of Indexing ExpressionsDescription #1: Store the count of the rank of indexing expressions in the n field of each indexing expression. Description #2: Store in the n field of each indexing expression the number of children it has. Description #3: For each child whose parent is an indexing expression increment the parent's n field by 1.
Grammars for Programming Languages (2018)
Attempts to specify AlgolAfter Chomsky introduced phrase structure grammars in 1950s, this model quickly became a standard for definition of syntax of programming languages. Though being surprisingly simple, this mechanism allows defining syntax of modern programming languages (in a form of BNF notation that is equivalent to context-free grammars) and is still used as a lingua franca when describing syntax. Soon after context-free grammars had been introduced, it became apparent that their expressive power is limited. In 1962, Floyd has shown that Algol is not a context-free language and thus cannot be defined by a context-free grammar. beginreal x;xx := xxx;endContext-free grammars define structural syntax of languages, but cannot express any facts about their static semantics (what is called context conditions).