Reasoned Programming
How do you specify what a program should do without determining exactly how it should do it?
Programming  Specs  Logic  Book 
22 days ago
How to do Things Safely in Bash
If there is anything like a driver's license for safe bash coding, it must be rule zero of Bash pitfalls: always use quotes.
Bash  Pitfalls 
10 weeks ago
How HTTPS Handshake Happens – Sudhakar
HTTP over a secure socket layer (SSL) is what we call simply as HTTPS, helps us to safely share our sensitive data over the internet. But, how actually it works? What is happening behind the scenes?
10 weeks ago
Reducers, Transducers and core.async in Clojure – Eli Bendersky
I find it fascinating how one good idea (reducers) morphed into another (transducers), and ended up mating with yet another, apparently unrelated concept (concurrent pipelines) to produce some really powerful coding abstractions.
Clojure  Concurrency  In-Depth  Article 
10 weeks ago
Clojure Concurrency: Ultimate Guide
If Clojure has a superpower, it's concurrency. Rich Hickey made specific design decisions to make Clojure great at making use of all of the cores on your machine without creating bugs.
Clojure  Article 
10 weeks ago
Mathematics for Computer Science
This text explains how to use mathematical models and methods to analyze problems that arise in computer science.
Mathematics  Computer-Science  Book 
10 weeks ago
Software (r)Evolution -- Adam Tornhill
We'll use modern data science to uncover both problematic code as well as the behavioral patterns of the developers that build your software. This combination lets you to identify the parts of your system that benefit the most from improvements, detect organizational issues and ensure that the suggested improvements give you a real return on your investment.
Software  Analytics  Article 
10 weeks ago
Some Observations about Clojure core.async – Howard M. Lewis Ship
When things go well with core.async, they go very well. However, when things go wrong …
Clojure  Troubleshooting  Tips  Article 
11 weeks ago
Lean Testing or Why Unit Tests are Worse than You Think
I advocate for an economic perspective towards testing. Secondarily, I claim that focussing too much on unit tests is not the most economic approach. I coin this testing philosophy Lean Testing.
Unit-Testing  Testing  Article 
11 weeks ago
Nil Punning (Or Null Pointers Considered Not So Bad)
Null pointers are considered by their inventor to be a huge mistake. Clojure inherits its null pointer, called nil in Clojure, from the JVM. In contrast to Java, Clojure seems to embrace the null pointer. In this post, I’d like to explore how Clojure uses the null pointer in what is often called nil-punning.
Clojure  Programming  Article 
11 weeks ago
Unix System Programming in OCaml
This document is an introductory course on Unix system programming, with an emphasis on communications between processes. The main novelty of this work is the use of the OCaml language, a dialect of the ML language, instead of the C language that is customary in systems programming. This gives an unusual perspective on systems programming and on the ML language.
OCaml  Unix  Programming  Tutorial 
11 weeks ago
Learning Haskell - Miscellaneous Enlightenments
The following are some of the so called 'Aha!' moments I have experienced while learning Haskell.
Haskell  Programming  Tips 
11 weeks ago
Bash Pitfalls
This page shows common errors that Bash programmers make.
Bash  Programming  Tips  Article 
11 weeks ago
Learn Physics by Programming in Haskell
We describe a method for deepening a student's understanding of basic physics by asking the student to express physical ideas in a functional programming language.
Haskell  Physics 
july 2018
JVM Internals -- James D. Bloom
This article explains the internal architecture of the Java Virtual Machine.
JVM  In-Depth 
july 2018
Good Java Idioms
There are aspects of programming in Java that are not obvious just by learning from the language specification or standard API documentation. This document attempts to collect and explain the most frequently used idioms.
july 2018
State the Problem Before Describing the Solution -- Leslie Lamport
The title says it all. This one-page note is as relevant today as when I wrote it. Replace “describing the solution” by “writing the program” and it becomes a practical recipe for improving software.
Paper  To-Read 
july 2018
Programming in the 21st Century -- James Hague
It's not about technology for its own sake. It's about being able to implement your ideas.
Blog  Programming  Te 
july 2018
The Real Power of Linux Executables
What happens when a file gets executed in Linux?
Operating-Systems  Linux 
june 2018
C is Not a Low-level Language
There is a common myth in software development that parallel programming is hard. This would come as a surprise to Alan Kay, who was able to teach an actor-model language to young children, with which they wrote working programs with more than 200 threads. It comes as a surprise to Erlang programmers, who commonly write programs with thousands of parallel components. It's more accurate to say that parallel programming in a language with a C-like abstract machine is difficult, and given the prevalence of parallel hardware, from multicore CPUs to many-core GPUs, that's just another way of saying that C doesn't map to modern hardware very well.
Computer-Science  C  Hardware  Article 
may 2018
Behaviours and Streams, Why Both?
Both behaviours and streams represent things that happen or changes over time. But still, they are very different.
Functional-Programming  Article 
may 2018
A Plea for Lean Software –– Niklaus Wirth
Recommended as one of top two CS papers to read by Joe Armstrong.
Computer-Science  Paper 
march 2018
Deconstructing Functional Programming –– Gilad Bracha
How to distinguish FP hype from reality and to apply key ideas of FP in non-FP languages, separating the good parts of FP from its unnecessary cultural baggage.

Gilad Bracha is the creator of the Newspeak programming language and a software engineer at Google where he works on Dart.
Functional-Programming  Video 
march 2018
Compiler Construction –– The Art of Niklaus Wirth
Reflection about Wirht's way of designing compilers, and some general principles behind his work.
Computer-Science  Paper 
march 2018
JOpt Simple is a Java library for parsing command line options, honoring the command line option syntaxes of POSIX getopt() and GNU getopt_long().
Java  Library 
march 2018
« earlier      
2016 action adruino ai algorithms analytics angularjs anime api app apps article assembly audio autotools awk aws bash blog book books c c++ category-theory cheatsheet clang cli clojure clojurescript cloud cmake cms coding common-lisp computer-science concurrency contest continuation contravariance courses crazy-ideas crowdfunding css cuda debugging decision-trees decomposition deployment design development dijkstra distributedcomputing docker docs drama economics education emscripten essay examples floating-point font fortran fpga free functional-programming funny futures gadgets gallery garmin gdb geneticprogramming gis git github gnu gpu graham guide hardware haskell history home hpc http in-depth innovation inovation inspiration interactive internet interpreter interview ios java javascript john-hughes json julia jvm latex learning lectures legal library links linux liskov lisp llvm local logic mac machine-learning mail make management mapreduce markdown mathematics maven mit monad mount movie movies mpi music network neural-networks norwig ocaml om openmp opensource operating-systems osx paper paragliding parsing path-finding performance photo physics pitfalls plugin politics postgresql practice privacy productivity programming psychology python reference repl repository resources reviews rich-hickey robotics saas safari scala scheme sci-fi science seo service slides social software software-development software-engineering space specs sql ssl startup style supervised-learning talk te technology testing the-morning-paper thriller tips to-blog to-print to-read to-watch tool tooling tools training troubleshooting tutorial twilio ui unit-testing unix venues video vim visualization weather web webgl writing x86

Copy this bookmark: