svieira + programming   2633

Haskell's kind system - a primer · dcastro
Levity, higher kinded types (HKT) and their relation with higher order functions (HOF) and polymorphism at the *kind* level.
Programming  Haskell  TypeSystems  Theory 
25 days ago by svieira
Paradigm shifts for the decentralized Web | Ruben Verborgh
How to get a decentralized web (if you like semantic web, knowledge graphs, RDFa triples, etc.)
Programming  Databases_and_Data_Persistence  Philosophy 
6 weeks ago by svieira
lightweight concurrency in lua -- wingolog
CML (Concurrent ML) - the nicer version of a similar article (linked here) that implements the same thing in Scheme. Presumes call-with-prompt (something like call-with-cc)
Programming  Concurrency  Lua  DeepDive 
may 2018 by svieira
Crafting Interpreters
A book on building an interpreter from scratch
Books  Programming  Learning_Resources 
march 2018 by svieira
The Function Colour Myth • Lukasa's Echochamber
A counter-counter-point to Unyielding vs. What Color is Your Function that comes down more on Unyielding's side.
Programming  Async  Concurrency  Opinion  DeepDive  Python 
march 2018 by svieira
Shtetl-Optimized » Blog Archive » Shor, I’ll do it
A layman's introduction to Shor's algorithm and quantam algorithms in general as a period-finding method using the known truth in multiple universes.
Quantum  Algorithms  Programming  Physics 
august 2017 by svieira
Specs for a wireless mesh network using Ham Radio frequencies and COTS hardware and software
Programming  Network  Radio  DIY 
may 2017 by svieira
How to limit WebRTC bandwidth by modifying the SDP - webrtcHacks
If you're doing voice or video chat via Peer-to-Peer, this will help keep the bandwidth requirements low by throttling the total bandwidth requested by a video or audio channel.
Programming  Web_Development  Javascript 
may 2017 by svieira
A fast alternative to the modulo reduction – Daniel Lemire's blog
A neat trick to turn X % Y (x mod y) which is 6 instructions + 26 instructions of latency on 2016 Intel machines into (x * N) >> 32 + assembly to make it not need the shift (4 instructions, no latency).
Programming  Performance  C  Assembly  Algorithms 
may 2017 by svieira
The Wrong Abstraction — Sandi Metz
I've been thinking about the consequences of the "wrong abstraction." My RailsConf 2014 "all the little things" talk included a section where I asserted:

> duplication is far cheaper than the wrong abstraction

And in the summary, I went on to advise:

> prefer duplication over the wrong abstraction

This small section of a much bigger talk invoked a surprisingly strong reaction. A few folks suggested that I had lost my mind, but many more expressed sentiments along the lines of:

> This, a million times this! "@BonzoESC: "Duplication is far cheaper than the wrong abstraction" @sandimetz @rbonales"
— 41 shades of blue (@pims) March 7, 2014

The strength of the reaction made me realize just how widespread and intractable the "wrong abstraction" problem is. I started asking questions and came to see the following pattern:

Programmer A sees duplication.
Programmer A extracts duplication and gives it a name.

This creates a new abstraction. It could be a new method, or perhaps even a new class.

Programmer A replaces the duplication with the new abstraction.
Ah, the code is perfect. Programmer A trots happily away.
Time passes.
A new requirement appears for which the current abstraction is almost perfect.
Programmer B gets tasked to implement this requirement.
Programmer B feels honor-bound to retain the existing abstraction, but since isn't exactly the same for every case, they alter the code to take a parameter, and then add logic to conditionally do the right thing based on the value of that parameter.

What was once a universal abstraction now behaves differently for different cases.
Another new requirement arrives.
Programmer X.
Another additional parameter.
Another new conditional.
Loop until code becomes incomprehensible.
You appear in the story about here, and your life takes a dramatic turn for the worse.
Programming  BestPractices  Development 
april 2017 by svieira
Responsive CSS Patterns without Media Queries
Fab 4 (min-width, max-width, width + calc) and flex-grow: 9999 for responsive container-size-based CSS without any media queries at all.
Programming  Web_Development  CSS 
march 2017 by svieira
The Internals of PostgreSQL : Chapter 1 Database Cluster, Databases, and Tables
What really happens on disk when you create a table, an index, or a tablespace - also, how do you mount one table on a separate partition for speed?
Programming  Books  Postgres  Databases_and_Data_Persistence  DeepDive 
january 2017 by svieira
Buildroot - Making Embedded Linux Easy
A base build system for building embedded systems - great for use with Docker (seem Minimal Containers on YouTube).
Programming  Docker  Linux 
january 2017 by svieira
Joe Duffy - Blogging about Midori
An extremely deep dive on language design by an ex-Microsoft employee who worked on Midorii - a type-safe, async everything language that compiled from C# and was used to write a completely concurrent OS.
Programming  DeepDive  Language  Design  BestPractices  Async  Concurrency 
january 2017 by svieira
CSS Triggers
Things that trigger repaints, reflows, compositing, etc. on first load and on subsequent updates too.
Programming  Web_Development  CSS  Performance 
january 2017 by svieira
The Line of Death – text/plain
Browser chrome, picture-in-picture attacks, and why trusted content (about the security of a feature or requesting permission to activate something) must appear outside of the content-provider's space (line-of-death).
Programming  Security  UserExperience 
january 2017 by svieira
How to Get Fired Using Switch Statements & Statement Expressions
Switch in C is crazy and can be treated more like labels and gotos, allowing oddities like:

if (i < 10) {
case 7:
case 8:;

inside a switch statement. Much craziness results.
Programming  C  DeepDive 
october 2016 by svieira
Using Saga To Accumulate And Deduplicate Redux Actions
Why redux-saga is an awesome pattern to combine with redux - deduplication and aggregation of network requests with sagas.
Programming  Web_Development  ReactJS  Javascript  Redux 
october 2016 by svieira
Java Method Reference Evaluation | Kynosarges Weblog
Did you know that `handle` in `Runnable handle = obj::methodReference;` updates when you change what `obj` references?
Programming  JVM  Java 
october 2016 by svieira
The Aux Pattern
Understanding Shapeless and Cats Aux class for type-level computations.
Programming  Scala  TypeSystems 
october 2016 by svieira
Failed Experiments: The missing diamond of Scala variance
Type constructors and variance (covariance and contravariance) patterns found in higher kinded types (HKT)
Programming  Scala  JVM  Theory  TypeSystems 
september 2016 by svieira
The math of CSS locks
How CSS locks work from first principles + not locking the user into a fixed size by setting the root `font-size` to a percentage or to a `rem` unit.
Programming  Web_Development  CSS  Accessibility 
september 2016 by svieira
-- Axioms of Web architecture
Tim Berners-Lee on the principle of least power - "The reason for [picking the least powerful solution] is that the less powerful the language, the more you can do with the data stored in that language."
Programming  Web_Development  BestPractices 
september 2016 by svieira
Electronic Paper Displays — Visionect Server 2.4 documentation
E-Ink - how does it work, and where can you get them (as of 2016)
Programming  Hardware  DIY 
august 2016 by svieira
Concurrency Freaks: Throughput vs Latency and Lock-Free vs Wait-Free
The inverse of the mean of the latency distribution is the throughput
Programming  Algorithms  Performance 
august 2016 by svieira
Capability Myths Demolished
Capabilities vs. permissions for an authorization system
Programming  Security  Theory 
july 2016 by svieira
Is Parallel Programming Hard, And, If So, What Can You Do About It?
A free book on low-level parallel programming with a nice Appendix (C) that details how the CPU cache works.
Programming  Performance  Books  Learning_Resources  Hardware 
july 2016 by svieira
Adactio: Articles—<A>
A brief history of hypertext as it relates to the A tag and the world wide web
Programming  Web_Development  History 
july 2016 by svieira
The Languages Which Almost Became CSS - Eager Blog
A brief history of all of the languages that we *could* have wound up using to style our web pages (with comments from one of those language's designer's!)
Programming  Web_Development  CSS  History 
june 2016 by svieira
What the Hell is Symbolic Computation? / Steve Losh
Understanding symbols and the REPL in LISP (binding functions to symbols like `if` and why LISP can be metacircular).
Programming  LISP  DeepDive 
june 2016 by svieira
« earlier      
per page:    204080120160

bundles : Programming

related tags

Accessibility  Advice  Agile  Algorithms  Analytics  AngularJS  Ansible  Art  Artificial_Intelligence  Assembly  Async  Authentication  Backups  Bash  BestPractices  Bitcoin  Blogs  Books  BusinessIdeas  C  C#  CategoryTheory  Challenges  Charting  Cheatsheets  Clojure  ClojureScript  CloudManagement  Color  Command_Line_Tools  Comparisons  Competition  Compiler  ComputerScience  Concurrency  Configuration_Management  Cryptography  CSS  Culture  DataAnalysis  Databases_and_Data_Persistence  DataStructures  Debugging  DeepDive  Demos  Deployment  Design  DesignPatterns  Development  DevOps  DistributedProgramming  DIY  DNS  Docker  documentation  Editors  ElasticSearch  Electronics  Elm  Email_Development  Embedded  Encoding  Enums  Epistimology  Erlang  ES6  Estimations  examples  FAQ  Finance  Finances  Firewall  Flask  Fonts  FORTH  Forth  Freelancing  Functional  Games  git  Go  GoodIdeas  GUI  Hacking  Hardware  Haskell  HigherKindedTypes  Hiring  History  Hosting  HTML  HTTP  Humor  i118  Icons  IE9_Pinned_Sites  ImageRecognition  IntegrationTests  Internationalization  IPTables  IT  Java  JavaScript  Javascript  Jobs  JVM  Kids  Knowledge_Resources  Language  LDAP_and_Active_Directory  Learning_Resources  Legal  Lexer  Licences  Linux  LISP  Lists  Logic  Logs  Lua  MachineLearning  Management  manuals  Marketing  Mathematics  Memory  Metaclasses  MetaProgramming  Mobile  Monitoring  MVC3  Neo4j  Network  NeuralNets  News  Nginx  NLP  Node.js  NoSQL_and_Graph_DBs  OCaml  OOP  OpenSource  Opinion  Optimization  Organization  OS  Other  Overview  Parser  Part-Time  Performance  Perl  Philosophy  PHP  Physics  Postgres  ProcessManagement  Profiling  Programming  Proxies  Publishing  Python  Quantum  Radio  Reactive  ReactJS  Recursion  Redis  Redux  Reflection  RegularExpressions  Responsive_Design  REST  Ruby  Rust  Sales  Scala  Science  Scripting  Search  Security  Servers  Snippets  Society_and_Politics  Software  Spirit  SpringMVC  SQL  SSH  Startups  Statistics  SVG  Swift  SysAdmin  Teamwork  Testing  Theory  Time  TimeManagement  tips  Tools  Tutorials  TypeClasses  Typeography  TypeSystems  Unicode  Useful_Online_Tools  UserExperience  version-control  Version_Control  VIM  Visualizing  WebGL  WebRTC  WebServers  Web_Development  Web_Hosts  workflow  Workplace  XML_and_T-SQL 

Copy this bookmark: