mcherm + programming   1746

Fibonacci Hashing: The Optimization that the World Forgot (or: a Better Alternative to Integer Modulo) | Probably Dance
Don't take mod of your hash value to select a bin in your hash table. Instead, multiply by the golden ratio.
algorithms  programming  hash 
3 days ago by mcherm
How Voxels Became ‘The Next Big Thing’ – 80Level – Medium
Polygons for 3D are reaching a complexity plateau, and cannot provide a freely-modifiable environment. Sampled 3D voxels are being developed.
via:reddit  programming  gameprogramming 
23 days ago by mcherm
Maintaining Notepad is not a full-time job, but it’s not an empty job either – The Old New Thing
Maintaining even simple features requires work. Also, an example of making code shorter and better at the same time.
programming  softwaredevelopment  via:reddit 
29 days ago by mcherm
A Deep Dive into Monte Carlo Tree Search
A description of the algorithm that AlphaGo/AlphaZero uses, complete with sample code.
ai  programming  go  algorithms  via:HackerNews 
4 weeks ago by mcherm
Girls and Software | Linux Journal
Eric S Raymond being inviting to and supportive of a 12-yr-old girl who shows up on an open source project discussion group. This is precisely how we ought to operate.
opensource  via:reddit  gender  womenintech  programming 
6 weeks ago by mcherm
Wren - a simple little scripting language
A programming language. A lot of it seems well-designed, but I also see lots of places where I think it made simple, obvious design errors.
language  languagedesign  programming  via:HackerNews 
7 weeks ago by mcherm
For mathematicians, = does not mean equality – Math ∩ Programming
Programming languages often use "=" for assignment; mathematicians use it oddly too.
math  languagedesign  programming  via:HackerNews 
9 weeks ago by mcherm
Code Duet
Weird little site where you can find someone to pair up with (for a few minutes) for your side project.
programming  via:reddit 
march 2018 by mcherm
GitHub - philipl/pifs: πfs - the data-free filesystem!
Store any value in Pi (assuming it is normal). [Metadata stored separately.]
funny  programming  math  via:reddit 
march 2018 by mcherm
FrequentVsInfrequentDevs
Frequent programmers are those who spend many hours a day immersed in the language. They have deep knowledge and a willingness to learn arcane procedures and tools. Good languages should support infrequent developers.
programming  softwaredevelopment  languagedesign  via:HackerNews 
march 2018 by mcherm
Pokemon Yellow Total Control Hack
The game had a glitch allowing arbitrary code execution. He used this to turn the game into a midi player.
programming  hack 
february 2018 by mcherm
An Introduction to Cache-Oblivious Data Structures
Analyze data structures in terms of number of cache misses for cache size B (instead of the usual number of steps executed) and you get "cache oblivious" data structures, which are often 2x better in the real world.
computerscience  datastructures  programming  via:HackerNews 
february 2018 by mcherm
Predicting Random Numbers in Ethereum Smart Contracts
An analysis of the flaws in ways Etherium smart contracts have attempted to generate random numbers and the right way to do so.
ethereum  programming  blockchain  via:HackerNews 
february 2018 by mcherm
Depending on Someone Else's Code - Dragons in the Algorithm
What if you want to depend on someone else's code, but it wasn't designed to be extensible? I propose a solution.
blogentry  programming  versioncontrol  branching  softwaredevelopment 
january 2018 by mcherm
The hidden costs of serverless – A Cloud Guru
API gateway costs are 100x as much as Lambda costs for the same app.
serverless  cloudcomputing  via:HackerNews  programming 
january 2018 by mcherm
Immutable.js
From Facebook, a library of immutable data structures for JavaScript.
programming  library  javascript  immutable  functional 
january 2018 by mcherm
AWS Serverless Java Container
Amazon has been working on a way to run things like Spring in Lambda functions. But it doesn't quite seem to be on the level where I can just pick it up and use it.
serverless  aws  lambda  spring  programming  java 
january 2018 by mcherm
Robert Haas: The State of VACUUM
About VACUUM in PostgreSQL. How it has come a long way and a few ways in which it can still be improved.
database  postgresql  programming  via:HackerNews 
january 2018 by mcherm
Random with care / fuzzy notepad
Some details about random distributions. Includes picking a random direction and the interesting beta distribution.
math  programming  via:HackerNews 
january 2018 by mcherm
How to Generate Random Colors Programmatically
Generating an infinite series of visually distinct colors, like for labeling series on a graph or something.
color  programming  webdevelopment  via:StackOverflow 
january 2018 by mcherm
JavaScript Promises: an Introduction  |  Web Fundamentals  |  Google Developers
About doing promises (and thus useful concurrency) natively in JavaScript that works in nearly all major browsers.
javascript  webdevelopment  concurrentprogramming  parallelprogramming  programming 
january 2018 by mcherm
I Slipped on JavaScript's Banana Peel - Bocoup
Changed the JavaScript grammar definition to make it more readable and accidentally made it need >1 token of lookahead (which means some analysis tools stop working). Reverted.
javascript  standards  programming  via:reddit  languagedesign 
december 2017 by mcherm
ffwd: delegation is (much) faster than you think | the morning paper
If done well, "only one thread accesses the data structure" can actually be the FASTEST multi-threaded data structure implementation because cache effects make the single thread go so much faster.
programming  via:HackerNews  concurrency  concurrentprogramming  algorithms  threading 
december 2017 by mcherm
Python API Checklist
A checklist of things to consider in good library or API design.
via:HackerNews  programming  python 
december 2017 by mcherm
Reservoir sampling: selecting from a stream of unknown length
Algorithm to select one item at random (uniformly) from a list of unknown (or unlimited) length.
algorithm  programming  via:reddit 
december 2017 by mcherm
yakshav.es
The story (part of it) of why TeX may be the greatest program ever written.
DonaldKnuth  history  programming  TeX  blogworthy 
november 2017 by mcherm
No, it is not a compiler error. It is never a compiler error.
The time it really WAS a bug in the implementation of "sort()".
bug  programming  via:HackerNews 
november 2017 by mcherm
What it means to be a Postgres extension
They had a fork of PostgreSQL, but because of really good internal hooks, they were able to make it into an extension instead. Far less work to maintain, and easier for users to utilize.
postgresql  programming  via:HackerNews 
november 2017 by mcherm
Going beyond the idiomatic Python – Hacker Noon
The same syntax rule can make code MORE readable or LESS readable. Therefore, judgement is important, not just rote application of certain rules.
programming  via:HackerNews 
november 2017 by mcherm
Volatile Software / Steve Losh
An essay on backward compatibility. I agree with 100%.
programming  via:HackerNews 
november 2017 by mcherm
PyPy Status Blog: How to make your code 80 times faster
By replacing an array operation with a specific set of multiplications they got really good optimization out of PyPy.
programming  pypy  performance  via:reddit 
october 2017 by mcherm
Splitting Strings
Splitting an empty string could sensibly return an empty list or a list of an empty string. Different languages follow different conventions.
programming  languagedesign  via:reddit 
october 2017 by mcherm
A Branchless UTF-8 Decoder « null program
He writes a UTF-8 decoder with no if statements or loops so it can be pipelined in modern CPUs. Also does a great job of explaining why the design of the UTF-8 encoding is so brilliant.
programming  unicode  optimization  via:HackerNews 
october 2017 by mcherm
Uncle Bob and Silver Bullets • Hillel Wayne
A great summary of all the other kinds of testing you should be doing in addition to unit testing with specific examples and good reasons why you should be doing each of them.
testing  via:HackerNews  programming  softwaredevelopment  types 
october 2017 by mcherm
Diminishing returns of static typing
Strong typing is good for error reduction; weak typing is faster to write. The ideal strength of typing varies by personality and perhaps by project.
programming  via:HackerNews  typing  languagedesign 
october 2017 by mcherm
Interesting Codebases – Mark Papadakis – Medium
This person says he reads a lot of code. He gave a link to some good codebases to read. (I wish it ALSO had some specific locations within each codebase to start with as highlights.)
programming  via:HackerNews 
october 2017 by mcherm
Streams: a new general purpose data structure in Redis. - <antirez>
A description of both the design parameters and the actual data structure that was designed to meet a certain need (log-like things), here called "streams".
programming  datastructures  redis  via:HackerNews 
october 2017 by mcherm
Ned Batchelder: Beginners and Experts
All programmers swap back and forth between states of extreme frustration and extreme exultion (picture). The difference between beginners and experts is that experts are used to it.
programming  softwaredevelopment  via:reddit  NedBatchelder 
september 2017 by mcherm
We Hire the Best, Just Like Everyone Else
On hiring: always looking for people that seem perfect may just expose unconscious bias toward "people similar to me". Instead, do a (paid) audit project.
hiring  JoelSpolsky  via:JoelSpolsky  programming 
september 2017 by mcherm
Supporting Hypothesis
Stripe will be contributing some money to support David MacIver's testing framework, Hypothesis.
via:HackerNews  stripe  opensource  DavidMacIver  programming 
september 2017 by mcherm
How I replicated an $86 million project in 57 lines of code
You can build a decent license plate scanner from open source libraries.
opensource  via:reddit  programming 
august 2017 by mcherm
The Night the PostgreSQL IDs Ran Out – Hacker Noon
Int sized field ran out of IDs. To avoid downtime, they used negative numbers for a while before migrating to a bigint.
bug  programming  database  via:reddit 
august 2017 by mcherm
How I implemented my own crypto
He wrote a crypto library and explains the level of analysis necessary to quash all C bugs as well as the difficulties in efficiently implementing published cryptography primitives.
cryptography  personal_net  programming  via:HackerNews 
august 2017 by mcherm
Monospaced Programming Fonts with Ligatures - Scott Hanselman
Some programming fonts with weird ligatures for displaying things that programmers use. A few are useful, but mostly I think this would be distracting to me.
typography  fonts  programming  via:HackerNews 
july 2017 by mcherm
Ned Batchelder: Finding fuzzy floats
A data structure allowing you to use floating point numbers as hash keys but still allow a degree of "fuzzy matching" where numbers that are close (but not exact) count as "equal".
datastructures  programming  NedBatchelder  via:NedBatchelder 
july 2017 by mcherm
Undefined Behavior in 2017 – Embedded in Academia
This article on tools for detecting undefined behavior in C and C++ programs has a list of all undefined behavior.
programming  C++  c 
july 2017 by mcherm
A Brief History of the UUID · Segment Blog
A history of UUIDs and a suggestion: use a 32 bit timestamp then a 128 bit random block.
history  programming 
june 2017 by mcherm
Sysdig | Container isolation gone wrong
Separate Docker containers affect each other's performance by using OS resources, in this case by increasing the size of a kernel hash table that doesn't resize itself properly.
docker  performance  via:HackerNews  programming 
june 2017 by mcherm
JAVA and SIMD - Prestodb rocks!
How Java uses single-instruction-multiple-data instructions.
jvm  java  programming  via:HackerNews 
june 2017 by mcherm
Exploring Kotlin’s hidden costs — Part 1 – Christophe B. – Medium
Kotlin has some inefficiencies, especially when running on the older JVM used by Android.
programming  kotlin  via:reddit 
june 2017 by mcherm
Tabs, spaces and your salary - how is it really?
Better data analysis on the tabs vs. spaces question. It turns out the driving factor is really whether the company you work for uses git and open source or is more of an old-style company.
programming  softwaredevelopment  git  via:HackerNews  datamining 
june 2017 by mcherm
Butter Notes | Catfish Programmers
There's a kind of programmer (contractors, mostly) who doesn't do meetings or design, but just fixes huge piles of messy, broken code.
softwaredevelopment  programming  via:HackerNews 
june 2017 by mcherm
Developers Who Use Spaces Make More Money Than Those Who Use Tabs - Stack Overflow Blog
Okay it's silly but I thought I ought to bookmark this. // After reading, I'm shocked it seems there's actual evidence here.
programming  funny  via:HackerNews  science 
june 2017 by mcherm
Instagram Makes a Smooth Move to Python 3 - The New Stack
This MAJOR user of Python moved from 2.X to 3.X with very little trouble.
python  programming  via:HackerNews 
june 2017 by mcherm
Hg-Git Mercurial Plugin
A plugin to mercurial that lets it push to and pull from git repos. (I think.)
versioncontrol  git  mercurial  programming 
june 2017 by mcherm
AWS Lambda Container Lifetime and Config Refresh | Frederik Willaert | Pulse | LinkedIn
Some actual information on how AWS does container management for Lambda behind the scenes.
aws  lambda  programming 
june 2017 by mcherm
UUID or GUID as Primary Keys? Be Careful! – Tom Harrison Jr
How to do a primary key for a DB? Don't store GUID as a string. Use a small int as a key just within the DB but generate a GUID to use for all external references.
programming  database  architecture  via:HackerNews 
june 2017 by mcherm
The Design of Stanza's Optional Type System
Stanza is a language that offers *optional* types. This is an incredibly well-written description of what typing is and how it works in Stanza.
types  programming  languagedesign  stanza  via:HackerNews 
june 2017 by mcherm
Scripting (in Javascript) for Omnigraffle
Omnigraffle supports scripting to write the objects. I wonder if this is useful.
omnigraffle  programming 
june 2017 by mcherm
You Are Not Google – Bradfield
Far too often people are using tools (Hadoop, Kafka, microservices etc) that were designed for her big companies but are not a good fit for their needs.
architecture  programming  bigdata  via:HackerNews 
june 2017 by mcherm
Mutable vals in Kotlin
In Kotlin, when an object property is declared to be a val (not var) it has only a getter, no setter, so it is read-only. But the getter MAY return different values each time, so val isn't necessarily immutable.
languagedesign  programming  kotlin  via:HackerNews 
may 2017 by mcherm
The Meaning of Underscores in Python – dbader.org
Several different conventions (and special processing) of underscores in Python identifiers.
python  programming  via:reddit 
may 2017 by mcherm
Dynamic Websites Using the AWS SDK for JavaScript in the Browser
Might be useful. An example from AWS that proports to set you up with a website folks can log into that accesses a DynamoDB database from a webpage with sensible security.
programming  aws  javascript 
may 2017 by mcherm
d3 behavior.drag example - bl.ocks.org
An example of building a draggable interface for SVG using the D3 library.
programming  d3  javascript 
may 2017 by mcherm
« earlier      
per page:    204080120160

related tags

abc  ACMQueue  activerecord  ada  advertising  agile  ai  ajax  AlanTuring  algorithm  algorithms  amazon  android  androiddev  anecdote  angular  annecdote  annotations  antivirus  ANTLR  aop  apache  api  APIDesign  appengine  apple  appstore  architecture  ArminRigo  ArsTechnica  art  articles  articles/programming  ascii  assembly  asynchronous  aws  backlog  banking  BarryWarsaw  bayesian  benchmark  BenNorthrop  bigbang  bigdata  bignumbers  biology  bittwiddling  blackberry  blockchain  blog  blogentry  blogging  blogworthy  bloomfilter  books  botnet  brain  braintree  branching  BrendanEich  BrianHurt  browser  browsers  BruceEckel  BruceSchneier  bsd  bug  bugs  bugtracking  build  bytecode  bzr  c  c#  C++  cache  caching  caja  calendar  capabilities  career  censorship  ceylon  cglib  CharlesStross  chrome  clayshirky  clean  clojure  CLOS  closures  cloudcomputing  cobol  code  codereview  codinghorror  codingstandards  codingstyle  collaboration  collisiondetection  color  comet  comic  comics  compatibility  compensation  compiler  compilers  complexity  compression  computation  computers  computerscience  concu  concurrency  concurrentprogramming  constraintprogramming  contest  continuations  contractlaw  cookie  copyright  couchdb  coverage  cpp  creditcard  cringely  cross_site_scripting  crypto  cryptography  csrf  css  cucumber  culture  customerservice  d3  DanielSpiewak  darcs  DareObasanjo  data  database  datamining  datastructures  datavisualization  DavidBeazley  DavidMacIver  DebasishGhosh  debugging  del.icio.us  DennisRitchie  dependencies  deployment  design  designpatterns  dev  development  devops  DickLipton  diff  digg  dijkstra  directx  distribution  django  docker  documentation  domain_specific_languages  DonaldKnuth  doublecheckedlocking  DouglasCrockford  DouglasHofstadter  DougLea  dreamhost  dropbox  dsl  dvcs  dynamic  DynamoDB  easteregg  ec2  eclipse  EdFelten  education  eiffel  emacs  email  encryption  enterprise  EricLippert  EricSink  erlang  EsotericLanguage  essay  estimation  ethereum  ethics  EULA  eve  eventdriven  evil  excel  exceptions  extension  F#  facebook  fantasy  fantom  feminism  fibonacci  filesharing  filesystem  final  finalization  finance  financial-crisis  Firebase  firebug  firefox  fish  flash  flight  floatingpoint  FogCreek  fonts  forth  fortress  fowler  framework  frameworks  FrederickBrooks  free  freedom  freemarker  freespeech  fun  functional  funny  gamasutra  game  gamedesign  gamedev  gameprogramming  games  gametheory  gaming  garbagecollection  gayrights  gc  gender  generics  geneticalgorithm  genetics  geometry  GIF  git  go  GodelEscherBach  golang  google  GoogleAppEngine  googleplus  goto  GPL  graph  graphics  groovy  gui  GuidoVanRossum  gwt  hack  hacking  hadoop  HamletD'Arcy  handicaps  hardware  hash  haskell  health  highavailability  hiring  history  Hoare  hosting  html  html5  http  humor  i18n  IanBicking  IanClarke  IBM  ide  idea  identity  ie  images  immutable  implicit  infographics  information  INGDirect  injection  intellij  intentional  interface  internet  interviewing  io  ioc  ip-law  iphone  ironpython  j2ee  JamesCarr  JamesIry  JamisBuck  jargon  JasonSobel  java  javadoc  javafx  javascipt  javascript  jaxb  jdk  JeffAtwood  jetty  jit  JMS  JoeCampbell  JoelSpolsky  JohnResig  JonathanEdwards  JonUdell  jquery  json  jsonp  junit  JurgenAppelo  jvm  jython  kids  kidsprogramming  kidsrights  knuth  kotlin  lambda  language  languagedesign  languages  languages/haskell  languages/lisp  LarryOBrien  LarryOsterman  LarryWall  law  laziness  leadership  legacy  legal  LeonardLin  libel  libraries  library  librarydesign  licensing  lift  linguistics  linq  linus  LinusTorvalds  linux  lisp  literate_programming  little_languages  llvm  log4j  logging  logic  login  logo  LouisBrandy  lua  machinelearning  macro  macros  make  management  mapreduce  maps  markcc  marketing  markup  martialarts  martinfowler  MartinOdersky  mashup  math  mathematica  maven  medicine  memcache  memory  mercurial  messaging  metaphor  metaprogramming  methodologies  methodology  metrics  MichaelChurch  microservices  microsoft  minecraft  miro  ml  mobile  mobiledevelopment  modeling  monad  mongodb  monkeypatching  mono  mortgage  mumps  music  mutable  myblog  mypostings  mysql  n810  names  naming  NedBatchelder  netflix  networkeffect  networking  newspeak  NickCoghlan  NickJohnson  NickJohnsonz  node.js  nodejs  nosql  notes  nsa  nymwars  obfuscated  ocaml  OkCupid  OliverSteele  omnigraffle  onlinclasses  onlinebooks  oodb  oop  op  OpenGL  openid  opensource  opera  operatingsystem  optimization  oracle  orm  osgi  outsourcing  overprosecution  owasp  OwenWinkler  p2p  packaging  pairprogramming  parallellcomputing  parallelprogramming  parrot  parsers  parsing  patent  patterns  paulgraham  PaulStovell  payments  performance  perl  persistence  personal_net  PeterSeibel  PhilHaack  philosophy  phishing  php  physics  plugin  plugins  podcast  poker  polyglot  postgresql  presentation  prison  privacy  probabilisticcomputing  probability  productivity  profiling  progra  programming  programminglanguages  projectmanagement  prolog  proof  ProtocolBuffers  protocols  psychology  puzzles  PvsNP  pypy  python  python3000  quality  quantummechanics  quickcheck  quine  quotes  raganwald  rails  random  rands  rant  react  reactiveprogramming  readability  recruiting  recursion  reddit  redis  reducio  ref  refactoring  reference  refs  refs/java  regex  regexp  religion  requirements  research  REST  resume  reuse  reverseengineering  riddle  RobConery  RobertFischer  RobertMartin  robots  rope  rosetta  RoyFielding  rpc  ruby  rules  rulesengine  RussOlsen  rust  s3  salt  sandbox  scal  scala  scalability  scaling  scheme  science  ScientificMethod  scm  scratch  scrum  search  security  securitystupidity  securitytheater  selenium  serverless  sexism  SimonPeytonJones  SimonWillison  singularity  slf4j  slick  smalltalk  soa  soap  socialcomputing  software  softwaredevelopment  softwarepatterns  softwaretransactionalmemory  sorting  space  spam  speech  spelling  spine  spotify  spring  spring-ws  springmvc  springws  sql  sqlserver  ssl  stackoverflow  standards  stanza  startup  static  statistics  SteveHolden  SteveMcConnell  stm  stocks  stories  story  storypoints  stripe  subtext  subversion  sudoku  sui  svg  svn  swarm  swift  syntax  tcl  TDD  teaching  teach_programming  techcrunch  techdirt  technicaldebt  template  terracotta  testing  TeX  texting  TheGuardian  threading  time  timetravel  todo  tomcat  tools  TopCoder  toread  tortoisesvn  trac  tradesecret  translation  trie  tumblr  turing  tutorial  twillio  twitter  types  typesystem  typing  typography  ubuntu  ui  unicode  unittest  unix  unladenswallow  unobtrusive  usability  useful  utility  v8  variablenames  vba  velocity  versioncontrol  versioning  VersionOne  via:ArsTechnica  via:BenNorthrop  via:BillMooney  via:BillTheLizard  via:boingboing  via:BrianHurt  via:BruceEckel  via:BruceSchneier  via:CedricBeust  via:CodingHorror  via:cringely  via:DanielSpiewak  via:DavidMacIver  via:debasishg  via:DebasishGhosh  via:del.icio.us  via:digg  via:dzone  via:EdFelten  via:EricLippert  via:EricSink  via:GoodMathBadMath  via:googleplus  via:haacked  via:HackerNews  via:HamletD'Arcy  via:IanBicking  via:JamesIry  via:JanSmith  via:JoeCampbell  via:JoelSpolsky  via:JonathanEdwards  via:JonUdell  via:judell  via:JurgenAppelo  via:LambdaTheUltimate  via:LarryOBrien  via:LarryOsterman  via:MaciejCeglowski  via:MarkCC  via:MartinFowler  via:MichaelChurch  via:MichaelLugo  via:NedBatchelder  via:NickJohnsonz  via:NikhilVora  via:OwenWinkler  via:PatrickMcKenzie  via:PaulGraham  via:PaulStovell  via:PeteGray  via:PeterSeibel  via:pypy  via:python-list  via:raganwald  via:ragenwald  via:rands  via:reddit  via:RobConery  via:RobertFischer  via:RobertFisher  via:rrbeatty  via:RussOlsen  via:ScottAaronson  via:ScottHanselman  via:SimonWillison  via:slashdot  via:StackOverflow  via:SteveHolden  via:SteveYegge  via:Techdirt  via:theCodist  via:TheLeftFold  via:TravisHimes  via:twitter  via:Wikipedia  via:WilShipley  via:xkcd  via:YossiKreinin  video  virtualization  virtualmachine  virus  visualisation  vm  voiceRecognition  voting  w3c  wave  web  web2.0  webde  webdesign  webdev  webdevelopment  webhooks  webhosting  webservices  wiki  Wikipedia  WilShipley  windows  wine  wired  womenintech  writing  wyvern  xkcd  xml  XP  xslt  xsrf  xss  yegge  yosefk  zen  zip 

Copy this bookmark:



description:


tags: