832
Computing History at Bell Labs
And in the late '30s, George Stibitz had an idea that some of the work that they were doing on hand calculators might be automated by using some of the equipment that the Bell System was installing in central offices, namely relay circuits. He went home, and on his kitchen table, he built out of relays a binary arithmetic circuit. He decided that binary was really the right way to compute.
programming-culture 
11 days ago
TempleOS
Development for TempleOS began in 2003 after Davis suffered from a series of manic episodes that left him briefly hospitalized for mental health issues.

Davis is a former atheist who believes that he can "talk with God" and that God told him the operating system he built was God's third temple. According to Davis, TempleOS is of 'Divine' intellect due to the inspired nature of the code. According to Davis, God said to create the operating system with 640x480, 16 colors display and a single audio voice. The operating system was coded in a programming language developed by Davis in C/C++ called "HolyC".
programming-culture 
15 days ago
History of the browser user-agent string
And so Microsoft made their own web browser, which they called Internet Explorer, hoping for it to be a “Netscape Killer”. And Internet Explorer supported frames, and yet was not Mozilla, and so was not given frames. And Microsoft grew impatient, and did not wish to wait for webmasters to learn of IE and begin to send it frames, and so Internet Explorer declared that it was “Mozilla compatible” and began to impersonate Netscape, and called itself Mozilla/1.22 (compatible; MSIE 2.0; Windows 95), and Internet Explorer received frames, and all of Microsoft was happy, but webmasters were confused.
internet-culture 
15 days ago
Turing tarpit
Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy.
programming-culture  wikipedia 
16 days ago
Immutable data structures are not as good as you think they are
If such case, the Immutable may still be a worthy investment, but only if write operations on the data structure are not very common, and you must have your application in a language that has some functional capability, preferably with a lot of free memory, and a good GC.
concurrency 
20 days ago
History of Actors
I’m going to cover the classic actor model using Agha’s presentations as a guide; then I’ll compare it to E, a communicating event-loop actor language, and to Erlang, a process actor language.
actor-model 
20 days ago
Memoization
In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again.
wikipedia  architecture 
22 days ago
Debugging managed code memory leak with memory dump using windbg
This task is not as hard as it sounds like. I just simply used the below 9 steps to debug one possible memory leak at work a while back.

1. .symfix and .reload -f
2. .loadby sos mscorwks!
3. !VerifyHeap
4. !EEHeap
5. !dumpheap -stat
6. !dumpheap -type
7. !do
8. !threads
9. kb
dot-net 
26 days ago
What lies beneath async/await in C# ?
That is because the compiler generated (notice the CompilerGenerated attribute) additional class in which the whole „magic” happens – state machine.
dot-net  concurrency 
26 days ago
A Generation Lost in the Bazaar
But to anyone who has ever wondered whether using m4 macros to configure autoconf to write a shell script to look for 26 Fortran compilers in order to build a Web browser was a bit of a detour, Brooks offers well-reasoned hope that there can be a better way.
programming-culture  nix 
26 days ago
The Truth About Lisp
Lisp was invented a long time ago, before java, before C, before fortran, before computers, before people, before the earth was built. the universe itself is a lisp program so trivial that no true lisper would even bother implementing it.
programming-culture  functional-programming 
26 days ago
You're using HttpClient wrong and it is destabilizing your software
But HttpClient is different. Although it implements the IDisposable interface it is actually a shared object. This means that under the covers it is reentrant) and thread safe. Instead of creating a new instance of HttpClient for each execution you should share a single instance of HttpClient for the entire lifetime of the application. Let’s look at why.
dot-net 
4 weeks ago
Prolegomena to Any Future Metaphysics
Unlike the Critique of Pure Reason, which was written in the synthetic style, Kant wrote the Prolegomena using the analytical method. He divided the question regarding the possibility of metaphysics as a science into three parts. In so doing, he investigated the three problems of the possibility of pure mathematics, pure natural science, and metaphysics in general. His result allowed him to determine the bounds of pure reason and to answer the question regarding the possibility of metaphysics as a science.
philosophy 
4 weeks ago
Lookup<TKey, TElement> Class
Represents a collection of keys each mapped to one or more values.
dot-net 
4 weeks ago
Dataflow
Dataflow is a software paradigm based on the idea of disconnecting computational actors into stages (pipelines) that can execute concurrently. Dataflow can also be called stream processing or reactive programming.
architecture 
6 weeks ago
The TLA+ Video Course
This is a work in progress that consists of the beginning of a series of video lectures to teach programmers and software engineers how to write their own TLA+ specifications. It assumes a basic understanding of programming concepts. Some knowledge of elementary mathematics, such as might be taught in a beginning university math course for computer scientists, would also be helpful.
leslie-lamport 
7 weeks ago
Node-RED
Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.

It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.
node  architecture 
7 weeks ago
Modularity of mind
Modularity of mind is the notion that a mind may, at least in part, be composed of innate neural structures or modules which have distinct established evolutionarily developed functions.
philosophy 
7 weeks ago
git init
Resources to learn the basics of git (link). Includes a tutorial, a cheatsheet, and some links to more advanced resources.

The tutorial explains the basic git commands through animations. Currently includes the commands: init, add, commit, status, diff, log.
git 
7 weeks ago
toki pona
Toki Pona is a human language I invented in 2001. It was my attempt to understand the meaning of life in 120 words.
linguistics 
8 weeks ago
Death Of A Programmer. Life Of A Farmer.
I am fully aware that this is not the path that everyone would choose to keep them alive, but the decision to leave my desk and say, “Hello” to the real world is one that has paid me in ways that money simply cannot. The old me who believed in slaving away at a desk just for a dollar to “support” my family had to die in order for the new, stronger, happier man to come alive.
programming-culture 
8 weeks ago
Snowball (programming language)
Snowball is a small string processing programming language designed for creating stemming algorithms for use in information retrieval.
programming-languages  wikipedia 
8 weeks ago
Precise Computation of CLR Object Size
I think many developers have been wondering: How many bytes does an object instance take in managed code? What’s the limit for a CLR object? Are there any differences between 32-bit and 64-bit systems for memory allocation?
dot-net 
8 weeks ago
.NET API Browser
Welcome to the .NET API Browser – your one-stop shop for all .NET-based APIs from Microsoft. Simply start searching for any managed APIs by typing in the box below.
dot-net 
8 weeks ago
What My Stroke Taught Me
I had also lost the ability even to engage in self-talk. ... I simply existed. ... It was as if without words I could not be concerned about tomorrow.
linguistics  philosophy 
10 weeks ago
Consciousness Is Made of Atoms, Too
In every case, these environmental stimuli exist in analog form and are converted into digital form by the receptor cells and the neural circuits connected to them.
philosophy  biology 
11 weeks ago
Yarn
Fast, reliable, and secure dependency management.
package-manager  javascript 
11 weeks ago
SPEECH ACTS AND PRAGMATICS
If you say, "Tomatoes are fruits but I don't believe it," you are denying that you believe what you are asserting. This contradiction is puzzling because it is not an outright logical inconsistency. That tomatoes are fruits does not entail your believing it, nor vice versa, and there's no contradiction in my saying, "Tomatoes are fruits but you don't believe it." Your inconsistency arises not from what you are claiming but from the fact that you are claiming it. That's what makes it a pragmatic contradiction.
linguistics  wittgenstein 
11 weeks ago
Atomic shared log file writes with FILE_APPEND_DATA
I was flicking through my copy of Michael Kerrisk’s The Linux Programming Interface a few nights back and stumbled upon the Linux O_APPEND file open flag. Files opened with this option don’t track a current position in the file but instead append all writes, atomically, to the end of the file.

This is just what concurrent writers to a shared log file need in order to avoid clobbering each other’s writes, or interleaving chunks of events in unexpected ways.
dot-net 
march 2017
I thought I'd write an update on git and SHA1, since the SHA1 collision attack was so prominently in the news.
(1) First off - the sky isn't falling. There's a big difference between using a cryptographic hash for things like security signing, and using one for generating a "content identifier" for a content-addressable system like git.

(2) Secondly, the nature of this particular SHA1 attack means that it's actually pretty easy to mitigate against, and there's already been two sets of patches posted for that mitigation.

(3) And finally, there's actually a reasonably straightforward transition to some other hash that won't break the world - or even old git repositories.
git 
march 2017
Re: SHA1 collisions found
Put another way: I doubt the sky is falling for git as a source control management tool. Do we want to migrate to another hash? Yes. Is it "game over" for SHA1 like people want to say? Probably not.
git 
february 2017
Re: Re: Merge with git-pasky II.
And the thing is, that's just crazy talk. The difference between a crazy person and an intelligent one is that the crazy one doesn't realize what makes sense in the world. The goal of good engineering is not to ask "what if?", but to ask "how do I make this work as well as possible".
git 
february 2017
Bulma
Bulma is an open source CSS framework based on Flexbox and built with Sass. It's 100% responsive, fully modular, and available for free.
css 
february 2017
Alan Kay has agreed to do an AMA today
This request originated via recent discussions on HN, and the forming of HARC! at YC Research. I'll be around for most of the day today (though the early evening).
alan-kay 
february 2017
The 68 things the CLR does before executing a single line of your code (*)
Because the CLR is a managed environment there are several components within the runtime that need to be initialised before any of your code can be executed. This post will take a look at the EE (Execution Engine) start-up routine and examine the initialisation process in detail.

(*) 68 is only a rough guide, it depends on which version of the runtime you are using, which features are enabled and a few other things.
dot-net 
february 2017
Proto Actor
Simple Concurrency & Distribution. Asynchronous and Distributed by design. High-level abstractions like Actors and Virtual Grains.
actor-model 
february 2017
Analysing .NET Memory Dumps with CLR MD
However back in May 2013 Microsoft released the CLR MD library, describing it as:

… a set of advanced APIs for programmatically inspecting a crash dump of a .NET program much in the same way as the SOS Debugging Extensions (SOS). It allows you to write automated crash analysis for your applications and automate many common debugger tasks.

This post explores some of the things you can achieve by instead using CLR MD, a C# library which is now available as a NuGet Package.
dot-net 
january 2017
A bite of Python
Being easy to pick up and progress quickly towards developing larger and more complicated applications, Python is becoming increasingly ubiquitous in computing environments. Though apparent language clarity and friendliness could lull the vigilance of software engineers and system administrators -- luring them into coding mistakes that may have serious security implications. In this article, which primarily targets people who are new to Python, a handful of security-related quirks are looked at; experienced developers may well be aware of the peculiarities that follow.
python 
january 2017
Pixie
A small, fast, native lisp with "magical" powers.
python  functional-programming  programming-languages 
january 2017
Nicaraguan Sign Language
Nicaraguan Sign Language is a sign language largely spontaneously developed by deaf children in a number of schools in western Nicaragua in the 1970s and 1980s. It is of particular interest to the linguists who study it, because it offers a unique opportunity to study what they believe to be the birth of a new language.
linguistics 
january 2017
OneLook
OneLook Dictionary Search
tools 
january 2017
Rider
A cross-platform .NET IDE based on the IntelliJ platform and ReSharper.
dot-net 
january 2017
Global interpreter lock
Global interpreter lock (GIL) is a mechanism used in computer language interpreters to synchronize the execution of threads so that only one native thread can execute at a time. An interpreter that uses GIL always allows exactly one thread to execute at a time, even if run on a multi-core processor. Some popular interpreters that have GIL are CPython and Ruby MRI.
concurrency 
december 2016
"Design Patterns" Aren't
* I think Alexander's idea is tremendous
* Computer programming might benefit from this tremendous idea
* But the Gang-of-Four idea is obstructing its niche
* Everyone already knows that "Design Patterns" means a library of C++ code templates

We need to take a fresh look at Christopher Alexander
architecture  oo 
november 2016
Spoonerism
A spoonerism is an error in speech or deliberate play on words in which corresponding consonants, vowels, or morphemes are switched (see metathesis) between two words in a phrase.
wikipedia 
november 2016
The P programming language
P is a language for asynchronous event-driven programming. P allows the programmer to specify the system as a collection of interacting state machines, which communicate with each other using events. P unifies modeling and programming into one activity for the programmer. Not only can a P program be compiled into executable code, but it can also be validated using systematic testing. P has been used to implement and validate the USB device driver stack that ships with Microsoft Windows 8 and Windows Phone. P is also suitable for the design and implementation of networked, embedded, and distributed systems.
programming-languages 
october 2016
Vehicles: Experiments in Synthetic Psychology
These imaginative thought experiments are the inventions of one of the world's eminent brain researchers. They are "vehicles," a series of hypothetical, self-operating machines that exhibit increasingly intricate if not always successful or civilized "behavior." Each of the vehicles in the series incorporates the essential features of all the earlier models and along the way they come to embody aggression, love, logic, manifestations of foresight, concept formation, creative thinking, personality, and free will. In a section of extensive biological notes, Braitenberg locates many elements of his fantasy in current brain research.
books  philosophy 
august 2016
“I Want to Know What Code Is Running Inside My Body”
Marie Moe is a cyborg who runs on proprietary software she can’t trust. She’d like to change that.
programming-culture 
august 2016
Try .NET MVC
Dive into the world of ASP.NET MVC and learn how to build easy-to-maintain web applications with the MVC design pattern and ASP.NET Core.
dot-net 
august 2016
On Chomsky and the Two Cultures of Statistical Learning
It's true there's been a lot of work on trying to apply statistical models to various linguistic problems. I think there have been some successes, but a lot of failures. There is a notion of success ... which I think is novel in the history of science. It interprets success as approximating unanalyzed data.
linguistics 
august 2016
Google CS First
Empowering all students to create with technology through free computer science clubs developed by Google.
programming-for-kids 
august 2016
The Itch
One morning, after she was awakened by her bedside alarm, she sat up and, she recalled, “this fluid came down my face, this greenish liquid.” She pressed a square of gauze to her head and went to see her doctor again. M. showed the doctor the fluid on the dressing. The doctor looked closely at the wound. She shined a light on it and in M.’s eyes. Then she walked out of the room and called an ambulance. Only in the Emergency Department at Massachusetts General Hospital, after the doctors started swarming, and one told her she needed surgery now, did M. learn what had happened. She had scratched through her skull during the night—and all the way into her brain.
psychology 
july 2016
Libraries
Discover new modules and libraries you can use in your projects.
tools 
july 2016
Marp
Let's write the presentation on multi-platform, with like a feeling of Markdown editor.
tools 
july 2016
Apophenia
Apophenia is the human tendency to perceive meaningful patterns within random data.
psychology  architecture 
july 2016
Laws of programming
A complete set of algebraic laws is given for Dijkstra’s nondeterministic sequential programming language. Iteration and recursion are explained in terms of Scott’s domain theory as fixed points of continuous functionals. A calculus analogous to weakest preconditions is suggested as an aid to deriving programs from their specifications.
programming-papers  tony-hoare 
july 2016
Brave
The new Brave browser automatically blocks ads and trackers, making it faster and safer than your current browser.
browsers 
june 2016
surf
surf is a simple web browser based on WebKit/GTK+. It is able to display websites and follow links. It supports the XEmbed protocol which makes it possible to embed it in another application. Furthermore, one can point surf to another URI by setting its XProperties.
browsers 
june 2016
Ōryōki
Ōryōki [応量器] is a small web browser with a thin interface. This is an experimental project, currently in development.
browsers 
june 2016
Learning a Manifold of Fonts
Given the wealth of fonts that are available today, we would like to exploit the expertise used to produce these fonts, and to enable everyday users to create, explore, and edit fonts. To this end, we build a generative manifold of standard fonts. Every location on the manifold corresponds to a unique and novel typeface, and is obtained by learning a non-linear mapping that intelligently interpolates and extrapolates existing fonts. Using the manifold, we can smoothly interpolate and move between existing fonts. We can also use the manifold as a constraint that makes a variety of new applications possible. For instance, when editing a single character, we can update all the other glyphs in a font simultaneously to keep them compatible with our changes.
typography 
june 2016
Caddy
The HTTP/2 web server with automatic HTTPS.
tools 
june 2016
Paranoiac-critical method
The paranoiac-critical method is a surrealist technique developed by Salvador Dalí in the early 1930s. He employed it in the production of paintings and other artworks, especially those that involved optical illusions and other multiple images. The technique consists of the artist invoking a paranoid state (fear that the self is being manipulated, targeted or controlled by others). The result is a deconstruction of the psychological concept of identity, such that subjectivity becomes the primary aspect of the artwork.
psychology  wikipedia 
june 2016
Relentless Persistence
Problem: Compiled code isn't interpreted code, even if it compiles to interpreted code. Solution: Grunt watch Problem: Promises Solution: IOUs Problem: Javascript is a toy language that was tied to a document markup and somehow this has become the universal runtime of the internet. Problem: At this point, the ecosystem around Javascript is so densely layered and frequently changing that maintenance of any project over any significant period of time is going to be a nightmare
javascript  programming-culture 
june 2016
Lock-free programming for the masses
Efficient concurrent programming libraries are essential for taking advantage of fine-grained parallelism on multicore hardware. In this post, I will introduce reagents, a composable, lock-free concurrency library for expressing fine-grained parallel programs on Multicore OCaml. Reagents offer a high-level DSL for experts to specify efficient concurrency libraries, but also allows the consumers of the libraries to extend them further without knowing the details of the underlying implementation.
ml 
june 2016
.NET Compiler Platform - Language-Agnostic Code Generation with Roslyn
// Get the SyntaxGenerator for the specified language
var generator = SyntaxGenerator.GetGenerator(workspace, LanguageNames.CSharp);
dot-net 
june 2016
Shuhari
In shu, we repeat the forms and discipline ourselves so that our bodies absorb the forms that our forebears created. We remain faithful to these forms with no deviation. Next, in the stage of ha, once we have disciplined ourselves to acquire the forms and movements, we make innovations. In this process the forms may be broken and discarded. Finally, in ri, we completely depart from the forms, open the door to creative technique, and arrive in a place where we act in accordance with what our heart/mind desires, unhindered while not overstepping laws.
wikipedia  philosophy 
june 2016
The Rare Humans Who See Time & Have Amazing Memories
Brang’s subjects have time-space synesthesia; because they have extra neural connections between certain regions of the brain, the patients experience time as a spatial construct.
psychology 
june 2016
Typosquatting
Typosquatting, also called URL hijacking, a sting site, or a fake URL, is a form of cybersquatting, and possibly brandjacking which relies on mistakes such as typographical errors made by Internet users when inputting a website address into a web browser.
internet-culture  wikipedia 
june 2016
Programmer, Fired After 6 Years, Realizes He Doesn't Know How to Code
After graduating college with a computer science degree seven years ago, OP landed a job in the Bay Area doing Quality Assurance work for a tech company. And, being the savvy tech person that he is, OP automated almost all of his tasks after eight months on the job. So with most of the hard part of his job done for him, OP had some free time... six years' worth, in fact.
programming-culture 
june 2016
HyperDev
Combining automated deployment, instant hosting and collaborative editing, HyperDev gets you straight to coding.

You just code. It just runs.
tools 
june 2016
Von Neumann bottleneck
The shared bus between the program memory and data memory leads to the von Neumann bottleneck, the limited throughput (data transfer rate) between the central processing unit (CPU) and memory compared to the amount of memory. Because the single bus can only access one of the two classes of memory at a time, throughput is lower than the rate at which the CPU can work.
architecture  wikipedia 
may 2016
Effect system
In computing, an effect system is a formal system which describes the computational effects of computer programs, such as side effects. An effect system can be used to provide a compile-time checking of the possible effects of the program.
architecture 
may 2016
Computing Without Clocks
Asynchronous chips improve computer performance by letting each circuit run as fast as it can.
concurrency 
may 2016
Introduction to Mathematical Philosophy
Mathematics is a study which, when we start from its most familiar portions, may be pursued in either of two opposite directions. The more familiar direction is constructive, towards gradually increasing complexity: from integers to fractions, real numbers, complex numbers; from addition and multiplication to diferentiation and integration, and on to higher mathematics. The other direction, which is less familiar, proceeds, by analysing, to greater and greater abstractness and logical simplicity; instead of asking what can be de ned and deduced from what is assumed to begin with, we ask instead what more general ideas and principles can be found, in terms of which what was our starting-point can be de ned or deduced. It is the fact of pursuing this opposite direction that characterises mathematical philosophy as opposed to ordinary mathematics.
books 
may 2016
Self-organization
Self-organization is a process where some form of overall order or coordination arises out of the local interactions between smaller component parts of an initially disordered system. The process of self-organization can be spontaneous, and it is not necessarily controlled by any auxiliary agent outside of the system.
biology  wikipedia 
may 2016
How Do You Say “Life” in Physics?
What about life? We think we know life when we see it. Darwin’s theory even explains how one form of life evolves into another. But what is the difference between a robin and a rock, when both obey the same physical laws? In other words, how do you say “life” in physics? Some have argued that the word is untranslatable. But maybe it simply needed the right translator.
biology 
may 2016
What It’s Like Being a Sudden Savant
These individuals find that they abruptly have some kind of artistic or musical ability. It’s as if the person fell asleep and woke up the next morning with extraordinary talent.
psychology  biology 
may 2016
« earlier      
actor-model agile alan-kay angular ants architecture art biology books browsers carl-hewitt cinema comics compilers concurrency csp css david-ungar dojo don-syme dot-net drugs erik-meijer events functional-programming git github hans-j-boehm hosting human-machine internet-culture javascript javascript-history javascript-libs joe-armstrong keyboards leslie-lamport licenses linguistics ml mongodb nintendo nix node oo package-manager papua-new-guinea pdf persistent-data-structures philip-wadler philosophy programming-culture programming-for-kids programming-games programming-languages programming-papers programming-talks psychology python redis research rich-hickey rob-pike rust rx scrum sicp snippets startup tech-articles tony-hoare tools toys typography ux vcs versioning vim wikipedia wittgenstein

Copy this bookmark:



description:


tags: