joecamel + programming   419

Jane Street Tech Blog - Effective ML Revisited
- Use uniform interfaces
- Make illegal states unrepresentable
- Code for exhaustiveness
- Open few modules
- Make common errors obvious
functional  programming  sml  ocaml  tips  jane 
4 days ago by joecamel
On Disk IO, Part 1: Flavours of IO – αλεx π – Medium
"Knowing how the IO works, which algorithms are used and under which circumstances can make lives of developers and operators much better: they will be able to make better choices upfront (based on what is in use by the database they’re evaluating), troubleshoot the performance issues when the database misbehaves (by comparing their workloads to the ones the database stack is intended to be used against) and tune their stack (by spreading the load, switching to a different disk type, file or operating system, or simply picking a different index type)."
io  programming  linux  internals  system.programming 
4 days ago by joecamel
High Performance Browser Networking (O'Reilly)
"Performance is a feature. This book provides a hands-on overview of what every web developer needs to know about the various types of networks (WiFi, 3G/4G), transport protocols (UDP, TCP, and TLS), application protocols (HTTP/1.1, HTTP/2), and APIs available in the browser (XHR, WebSocket, WebRTC, and more) to deliver the best—fast, reliable, and resilient—user experience."
book  browser  network  networking  performance  webdev  programming  ebook 
4 days ago by joecamel
A Model for Reasoning About JavaScript Promises
"the semantics of JavaScript promises are quite complex, and since the feature is implemented by way of ordinary function calls, there are no static checks to ensure correct usage. As a result, programmers often make mistakes in promise-based code that leads to pernicious errors, as is evident from many reported issues on forums such as StackOverflow."
Summary https://blog.acolyer.org/2017/11/10/a-model-for-reasoning-about-javascript-promises/
javascript  webdev  plt  paper  pdf  programming 
13 days ago by joecamel
Programming Design Systems
A free digital book that teaches a practical introduction to the new foundations of graphic design. By Rune Madsen.
book  ebook  design  programming 
5 weeks ago by joecamel
Rust at Sentry by Armin Ronacher · Eventil
"The usage of Rust started as an experiment at Sentry but became a non negligible part of our infrastructure. This is lessons learned, what works and doesn't and what we think is going to happen in the future."
rust  programming  talk  video  slides  sentry 
12 weeks ago by joecamel
Scrapmetal — Scrap Your Rust Boilerplate
"TLDR: I translated some of the code and ideas from Scrap Your Boilerplate: A Practical Design Pattern for Generic Programming by Lämmel and Peyton Jones to Rust and it’s available as the scrapmetal crate."
haskell  rust  programming  designpatterns 
august 2017 by joecamel
Jane Street Tech Blog - +'a and -'a
"If you’ve ever wondered what it means in OCaml when there is a + or - in front of a type variable, read on."
ocaml  jane.street  type.theory  plt  programming 
august 2017 by joecamel
Understanding V8’s Bytecode – DailyJS – Medium
"This article explains V8’s bytecode format — which is actually easy to read once you understand some basic concepts."
v8  javascript  js  web  programming  internals  intro  overview 
august 2017 by joecamel
System programming in Rust: beyond safety | the morning paper
"Despite many advances in programming languages, clean-slate operating systems, hypervisors, key-value stores, web servers, network and storage frameworks are still developed in C, a programming language that is in many ways closer to assembly than to a modern high-level language. Today, the price of running unsafe code is high… Why are we still using C?"
rust  programming  systems  paper 
june 2017 by joecamel
ELF Hello World Tutorial - Ciro Santilli
Introductory analysis of a simple example of the Executable and Linkable File format.
assembly  linux  programming  internals  elf 
may 2017 by joecamel
Memory Allocators 101 | James Golick
"For the last few weeks, I've been working on a couple of patches to tcmalloc, Google's super high performance memory allocator. I'm going to post about them soon, but first I thought it would be cool to give some background about what a memory allocator actually does. So, if you've ever wondered what happens when you call malloc or free, read on." HN: https://news.ycombinator.com/item?id=5720901
memory  programming  malloc  internals  intro  overview  google 
april 2017 by joecamel
Type checking Idris is much simpler than Haskell.
"...At least this is my personal feeling after having read a lot of GHC code, written an Idris backend, the native backend for Lean, and significant portions of `rustc`."
hn  discussion  haskell  dependent.types  plt  implementation  idris  programming 
april 2017 by joecamel
Thirteen Years of Bad Game Code · Evan Todd
"What follows is a compilation of lessons, snippets, and words of warning salvaged from my own excursion into the past. Names have not been changed, to expose the guilty."
development  code  gamedev  programming  experience 
march 2017 by joecamel
Beautiful Racket by Matthew Butterick
How to make your own pro­gram­ming lan­guages with racket by matthew but­t­er­ick
scheme  racket  book  online  ebook  programming  free  plt  language 
march 2017 by joecamel
Your opinions on using Rust in programming competitions? : rust
"Among my friends are regular participants to programming competitions like TopCoder, and one of them has managed to use Rust in the actual competition. The result was mixed, and he wrote the pros and cons up..."
rust  programming  competition  reddit  experience  2016 
march 2017 by joecamel
Graphical depiction of ownership and borrowing in Rust - Rufflewind's Scratchpad
"Below is a graphical depiction of moving, copying, and borrowing in the Rust language. Most of these concepts are fairly specific to Rust and are therefore a common stumbling block for many learners."
rust  programming  plt  visualization 
february 2017 by joecamel
IR is better than assembly — Idea of the day
"The crucial part is IR. It's a common language that sits between the high-level program and the low-level backend. IR is used to express high level concepts and is specific enough that any backend can produce a fast machine code.

IR is the heart of LLVM."
assembly  lowlevel  llvm  programming  internals 
february 2017 by joecamel
A Hoare Logic for Rust · Ticki's blog
"Lately, I've been working on a Hoare-logic-based model of the Rust MIR, which I will introduce in the post. This is a minor step towards a memory model of Rust, and it allows formalization of programs and their behavior."
cs  rust  programming  plt  hoare.logic  intro 
february 2017 by joecamel
Things Every Hacker Once Knew
"One fine day in January 2017 I was reminded of something I had half-noticed a few times over the previous decade. That is, younger hackers don’t know the bit structure of ASCII and the meaning of the odder control characters in it." HN: https://news.ycombinator.com/item?id=13498365
eric.raymond  history  programming  unix  ascii 
january 2017 by joecamel
Forth: The Hacker’s Language | Hackaday
"So if you want to follow along down a very strange rabbit hole, learn a bit about the real hacker’s programming language, or just fool around, stay tuned. In a couple of weeks, I’ll publish a hands-on guide to getting started with Mecrisp-Stellaris on the STM32 family ARM chips." HN: https://news.ycombinator.com/item?id=13505285
forth  programming  hardware  arm  microcontrollers  intro  resources 
january 2017 by joecamel
Introduction | Rust by Example
"Rust by Example (RBE) is a collection of runnable examples that illustrate various Rust concepts and standard libraries."
rust  programming  intro  examples  book 
january 2017 by joecamel
Tokio
"A platform for writing fast networking code with Rust."
rust  asyncio  network  architecture  library  modern  documentation  programming 
january 2017 by joecamel
Modern garbage collection – Mike’s blog – Medium
"Here are the different factors you will want to think about when designing a garbage collection algorithm..."
gc  internals  introduction  programming  overview 
january 2017 by joecamel
Category Theory - YouTube
Category theory for programmers by Bartosz Milewski
youtube  video  playlist  category.theory  cs  programming 
january 2017 by joecamel
Guide to x86 Assembly
"This guide describes the basics of 32-bit x86 assembly language programming, covering a small but useful subset of the available instructions and assembler directives."
x86  short  assembly  programming  architecture 
december 2016 by joecamel
The little book about OS development
This text is a practical guide to writing your own x86 operating system.
os  book  programming  intro  free 
december 2016 by joecamel
SeaHash: Explained · Ticki's blog
"So, not so long ago, I designed SeaHash, an alternative hash algorithm with performance better than most (all?) of the existing non-cryptographic hash functions available. I designed it for checksumming for a file system, I'm working on, but I quickly found out it was sufficient for general hashing."
HN https://news.ycombinator.com/item?id=13138588
HN https://news.ycombinator.com/item?id=13057797
algorithms  hash  rust  programming  cs  discussion  hn 
december 2016 by joecamel
Zero-cost abstractions (Rust)
"Recently I had the opportunity to do some optimisation work on Claxon, my FLAC decoder. In the process I found a piece of code which in my opinion demonstrates the power of Rust very well, and I would like to share that with you here: ..."
rust  performance  high.level  zero.cost  programming  example 
december 2016 by joecamel
"Runtime scheduling: theory and reality" by Eben Freeman - YouTube
"Can we quantify the tradeoffs between native threads and green threads? How expensive are context switches really? How can a scheduler trade off throughput and latency? How should we evaluate scheduler performance? And what do we really mean by performance, anyways?"
linux  scheduling  internals  yt  talk  strangeloop  programming 
september 2016 by joecamel
Badness 10.000 - Algebraic Patterns - Monoid morphisms
"In this instalment we’ll take a further look at Monoid morphisms to try to cement our understanding of this concept." HN: https://news.ycombinator.com/item?id=12609247
algebra  programming  functional  intro  monoid  morphism  examples 
september 2016 by joecamel
Index 1,600,000,000 Keys with Automata and Rust - Andrew Gallant's Blog
"It turns out that finite state machines are useful for things other than expressing computation. Finite state machines can also be used to compactly represent ordered sets or maps of strings that can be searched very quickly."
rust  text  search  algorithm  cs  programming  trie 
september 2016 by joecamel
"Languages for 3D Industrial Knitting" by Lea Albaugh - YouTube
Industrial computer-controlled knitting machines are churning out seamless three-dimensional fabric objects as you read this -- think gloves, sweaters, sportswear, furnishings, architectural fabrics, and plushies. But right now the programming languages for these machines are terrible.

With a knitting machine, complex structures are formed with a very limited set of low-level machine operations. Thinking on the level of those machine operations becomes untenable pretty quickly when you start trying to make real objects. How can we ensure knittability? Can we encode constraints in an understandable way? Can we optimize production speed?

We'll look at several ways to describe knit structures and generate machine instructions for their fabrication, including both the delightfully arcane language that ships with the machine and the language from our SIGGRAPH 2016 technical paper, "A Compiler for 3D Machine Knitting."
cs  youtube  talk  knitting  industry  programming  language  research 
september 2016 by joecamel
What every coder should know about gamma
"So keep on reading, and by the end of this article you’ll be more knowledgeable about gamma than the vast majority of programmers!"
graphics  color  programming 
september 2016 by joecamel
LL and LR Parsing Demystified
"My first adventures in parsing theory came when I was doing an independent study of programming languages in college. When I got to the part about algorithms such as LL, LR, and their many variations (Strong-LL, SLR, LALR, etc), I was fascinated. I felt like I was peering at some deep and powerful incantations, the significance of which I could not yet appreciate, but I was sure that someday terms like “left-to-right, rightmost derivation” would make perfect sense, and I looked forward to achieving this enlightenment." HN https://news.ycombinator.com/item?id=12552298
algorithms  parser  intro  parsing  programming  hn 
september 2016 by joecamel
golang-notes/OOP.md at master · luciotato/golang-notes
"Ease golang learning by associating golang-specific concepts with previously known concepts in the OOP field."
golang  learning  oop  programming  cs 
september 2016 by joecamel
On Generative Algorithms: Introduction · inconvergent
"I've always been fascinated with patterns. It doesn't really matter what kind of patterns; I've played with networks, leaves and leaf venation, branches, lightning, flocking, tracing outlines of shapes, river formation, rock sediments, landscapes, slime mold, lichens, reaction-diffusion, cellular automaton, some fractals, and a few other things. I think what I enjoy the most is how complex and intricate results you can get from a set of simple rules." HN has more resources https://news.ycombinator.com/item?id=12476125
algorithm  generative  art  programming  cs  ebook 
september 2016 by joecamel
Dynamic Programming: The Name (Richard Bellman)
"...Thus, I thought dynamic programming was a good name. It was something not even a Congressman could object to. So I used it as an umbrella for my activities."
cs  dynamic.programming  programming  algorithms  history 
september 2016 by joecamel
GitHub - Chiel92/vim-autoformat: Provide easy code formatting in Vim by integrating existing code formatters.
"Format code with one button press! This plugin makes use of external formatprograms to achieve the best results."
github  vim  plugin  programming 
september 2016 by joecamel
Efficient and Insightful Generalization
There is more to Hindley-Milner type inference than the Algorithm W. In 1988, Didier Rémy was looking to speed up the type inference in Caml and discovered an elegant method of type generalization. Not only it is fast, avoiding the scan of the type environment. It smoothly extends to catching of locally-declared types about to escape, to type-checking of universals and existentials, and to implementing MLF.
ocaml  programming  type.theory  typesystem  plt  pltheory 
september 2016 by joecamel
Zero-cost futures in Rust · Aaron Turon
"One of the key gaps in Rust’s ecosystem has been a strong story for fast and productive asynchronous I/O. We have solid foundations, like the mio library, but they’re very low level: you have to wire up state machines and juggle callbacks directly..." HN: https://news.ycombinator.com/item?id=12268988
concurrency  rust  programming  hn 
august 2016 by joecamel
« earlier      
per page:    204080120160

related tags

3d  aaron-swartz  abstraction  academia  accessibility  acm  activerecord  adt  advanced  advice  agda  agent  agents  ai  ajax  alan.kay  alankay  algebra  algo  algorithm  algorithms  amazon  analogy  analysis  android  animation  annotated  answer  api  apl  appengine  architecture  arm  arp  art  article  articles  artima  ascii  assembly  astronomy  async  async/await  asyncio  authentication  automata  awk  beginner  berkeley  bestpractices  binary.search  bioinformatics  bjarne.stroustrup  blog  blogpost  bloom.filters  book  books  bookshelf  bootloader  branching  bret.victor  brian.harvey  browser  build  c  c++  cache  cairo  calendar  captcha  career  cartoon  category.theory  cc  channel9  cheatsheet  children  chrome  classic  cli  clojure  clojure-conj  clustering  code  codebase  codejam  codereview  coding  codinghorror  cognitive  collection  college  collision.detection  color  comet  comic  comment  comparison  competition  competitive.programming  compiler  complexity  computer  computers  computerscience  computing  concurrency  concurrent  conference  constraint.programming  contest  contributing  conventions  cookbook  coq  course  cpp  crdt  criticism  cs  cuda  curriculum  curry  currying  cvs  d3  data  database  datamining  datastructure  datatype  datetime  db  dbus  debug  debugging  demeter  dependent.types  design  designpatterns  dev  development  dictionaries  dijkstra  dilbert  disability  discussion  distributed  django  docs  documentation  dom  douglas.crockford  drupal  dvcs  dvorak  dynamic  dynamic.programming  ebook  eckel  eclipse  editor  education  elf  elisp  emacs  emulation  emulator  encoding  engine  engineering  enterprise  epub  eric.allen  eric.raymond  erlang  error  esr  essay  essays  ethernet  evolution  ewd  example  examples  exception  exercises  experience  explanation  extension  fabric  facebook  filetype:jpg  filetype:pdf  firefox  floating  fogus  forth  fp  framework  frameworks  free  fun  functional  funny  future  gae  game  gamedev  games  gaming  gc  gcc  gdb  geek  generative  gil  git  github  gnome  golang  google  googlewave  gpu  grammar  graph  graphics  graphs  grid  gtk  guide  guidovanrossum  guysteele  hack  hacker  hacketyhack  hacking  handbook  hangout  hardware  hash  hashing  haskell  hg  high.level  hiring  history  hn  hoare.logic  homoiconicity  howto  hr  hs  http  https  humor  ibm  icpc  ict  idioms  idris  illustration  implementation  industry  infoq  inheritance  injection  inspiration  interactive  interesting  internals  interpreter  interview  intro  introduction  introspection  intuition  io  jane  jane.street  java  java8  javascript  john.hughes  journal  jquery  js  jvm  kafka  kalman  kernel  keyboard  kids  knitting  knuth  kth  lambda  lambdacalculus  lambdatheultimate  language  languages  latex  learning  lecture  lectures  library  lin.clark  linear.types  linguistics  linker  linux  lisp  list  literature  littleschemer  llvm  loader  logic  loops  lowlevel  lua  luka.kalinovcic  machine  macros  mailinglist  malloc  marijn.haverbeke  markdown  markup  martin.kleppmann  martin.odersky  math  mathematics  mccarthy  media:document  media:image  memory  mercurial  microcontrollers  microsoft  mit  mmap  mobile  modern  module  monad  monads  monoid  monospace  moon  morphism  motivation  mozilla  mptt  multipart  multithreading  music  nes  network  networking  new-style-class  nlp  norman.ramsey  norvig  notes  numbers  obfuscation  ocaml  ocw  okasaki  online  oop  oopsla  open  openframeworks  opengl  openid  opensource  operational.transforms  opinion  optimization  orm  os  otp  overview  painting  paper  papers  parallel  parser  parsers  parsing  part  partial  Pattern  patterns  paulgraham  pdf  pedagogy  performance  personal.experience  petr  phd  philosophy  PHP  physics  pip  pl  playlist  pleac  plt  pltheory  plugin  podcast  poll  pool  posix  post  postgres  presentation  problembased  problems  problemsolving  processing  programming  project  prolog  psychology  puzzles  pycon  pygtk  python  python3  pyxpcom  qt  queryset  question  queue  quickref  quirks  quiz  r  racket  rails  raph.levien  raspberrypi  raymond.hettinger  raytracing  read  reading  readinglist  realtime  reason  reddit  reference  references  regex  repeat100rt360  research  resources  rest  restful  review  richardgabriel  richhickey  ruby  rubyonrails  rust  satire  scala  scalability  scheduling  scheme  school  schools  science  scipy  screencast  sdl  search  security  sentry  series  server  servo  shape  short  sicp  signals  simonpeytonjones  simplicity  singal.processing  skip-list  slides  smalltalk  sml  software  solutions  spam  sparklines  spoj  sql  sqlite  ssd  ssl  stackexchange  stackoverflow  standards  stanford  starcraft  startup  statistics  stem  steve-yegge  stockholm  storage  strace  strangeloop  string  strings  stronglytyped  style  styleguide  super  sussman  sysadmin  system.programming  systems  talent  talk  talks  taocp  tcp/ip  teaching  tensors  testing  text  theory  thesis  thread  threading  threadpool  threads  tips  tool  tools  topcoder  toread  tribute  tricki  trie  tutorial  tutorials  type.theory  typesystem  typing  typography  unicode  unix  useful  utility  v8  vcs  versioncontrol  vi  video  videogames  vim  vimeo  virtualenv  visualization  volatile  w3c  web  webdev  webrtc  whyfp  wiki  wikipedia  working-hard  worse.is.better  writing  x11  x86  x86-64  xkcd  xsystem  xtext  yegge  youtube  yow  yt  zero.cost  zeromq  _why 

Copy this bookmark:



description:


tags: