mcherm + programming   1781

Race-Safe Strategies
A review of ways to protect an object shared between threads. Despite the author's claim, I am dubious about this being exhaustive.
programming  concurrentprogramming  parallelprogramming  via:reddit 
2 days ago by mcherm
Python interview questions. Part III. Senior
I actually knew some portion of the senior level questions, which was cool.
programming  python  interviewing  hiring  via:HackerNews 
9 days ago by mcherm
New for AWS Lambda – Use Any Programming Language and Share Common Components | AWS News Blog
AWS Lamba now has a way to store libraries in a common place which are then packaged with your individual land of functions when they are deployed (with a limit of 5 libraries used in each lambda). Also has support for adding new languages for coding lambdas.
aws  serverless  programming  amazon  via:HackerNews 
9 days ago by mcherm
The Incredible Power of Dijkstra Maps - RogueBasin
For a roguelike, this is a way to give numerous mobiles varying and even conflicting goals while keeping to a reasonable amount of computation.
gameprogramming  datastructures  algorithms  programming  via:reddit 
9 days ago by mcherm
A site with information on how to build a roguelike game.
programming  via:reddit  gameprogramming 
9 days ago by mcherm
Not everything is an expression
Incredibly well written essay on a weakness in Lisp's macro system. Includes features like letting the reader switch languages.
programming  languages  languagedesign  lisp  macros  via:reddit 
9 days ago by mcherm
Python Tutorials – Real Python
A site with programming tutorials (in Python) that seems to have a fair number of really well written articles, many of them on advanced topics.
programming  python  via:reddit 
9 days ago by mcherm
How to Make a Roguelike
An incredibly huge and detailed article on building "roguelike" computer games.
gameprogramming  programming  gamedesign 
9 days ago by mcherm
Asterisks in Python: what they are and how to use them - Trey Hunner
Useful summary of the syntax for interpolating values into a list, dict, argument list, etc.
programming  python  languagedesign 
9 days ago by mcherm
Falsehoods People Believe Collection
A list of links two documents listing falsehoods people believe (about addresses, names, phone numbers, etc.).
programming  via:boingboing 
9 days ago by mcherm
Why is 'ß'.toUpperCase()' equal to 'SS'? - javascript
.toUpperCase() may not preserve length. And .toLowerCase() may not reverse it.
unicode  programming  via:reddit 
9 days ago by mcherm
Microsoft Word - DriversLicenseCodeML.doc - ILDrivLicCode.pdf
Illinois driver's license numbers are derived from your name and birthdate, rather than being assigned randomly or sequentially. What an excellent illustration of ways of designing IDs.
via:reddit  database  programming  TalkIdeas 
10 days ago by mcherm
Buckblog: Maze Generation: Algorithm Recap
Various algorithms for developing a maze, described and illustrated with animations. An excellent demonstration of algorithms.
programming  gameprogramming  algorithms 
6 weeks ago by mcherm
Zip Tree Data Structure
A binary tree which is balanced by giving nodes a randomly assigned priority where half have priority 0, 1/4 have priority 1, 1/8 have 2 and so forth. Like skip lists turned into a tree.
datastructures  programming  via:HackerNews 
7 weeks ago by mcherm
Constructor, operator "new"
This is a good explanation of how "new" works in Javascript.
javascript  programming 
9 weeks ago by mcherm
What's a CPU to do when it has nothing to do? []
Many CPUs (including Intel) have multiple "idle states" they can enter (but there is a cost to enter the state). They made Linux smarter about which to use and when to enter which reduced idle power consumption by 20%.
via:HackerNews  hardware  linux  programming 
9 weeks ago by mcherm
Build impossible programs - Julia Evans
Cool effort - she wasn't an expert, but she got a grant to fund a 3-month effort and built a profiler for Rust.
personal_net  programming  opensource  via:HackerNews 
september 2018 by mcherm
How Tutanota replaced Google’s FCM with their own notification system | Hacker News
Explains how they built push notifications for Android without relying on Google.
opensource  mobile  android  programming 
september 2018 by mcherm
Sampling profiler for Python programs
A non-invasive profiler for python. It even generates flamegraphs.
python  performance  profiling  programming  via:HackerNews 
september 2018 by mcherm
Service Workers | the frontendian
I don't know why I didn't learn about them earlier, but this is the first time I have actually read something that describes the capabilities of service workers.
webdevelopment  javascript  via:HackerNews  programming 
august 2018 by mcherm
JavaScript: keep digging
Cartoon making fun of JavaScript's ever-deeper mess.
javascript  programming  languagedesign  funny  cartoon 
august 2018 by mcherm
The Desperate Quest for Genomic Compression Algorithms - IEEE Spectrum
Genetic data has enormous possibilities for compression. It's far more complex than just a sequence of ACGT.
programming  via:HackerNews  biology 
august 2018 by mcherm
What Did Ada Lovelace's Program Actually Do?
A close look at the first program ever (by Ada Lovelace) including a bug (which might have been hers or the typesetter's). It calculated Bernoulli numbers.
history  AdaLovelace  programming  bug  via:HackerNews  math 
august 2018 by mcherm
Myths about /dev/urandom [2uo]
A long and detailed piece about why you shouldn't block waiting for "more entropy" for your random number generator.
cryptography  security  programming  via:HackerNews 
august 2018 by mcherm
The Hacks of Life: When Not To Serialize
Write custom code to serialize your data structures to disk. If it is automatically transferring the in-memory structures to disk then you will need a translator when V2 comes along and the on-disk and in-memory structures diverge.
design  architecture  programming 
august 2018 by mcherm
The Twelve-Factor App
A really GOOD set of policies for architecture of applications built to run in the cloud. (Or anywhere, for that matter!)
architecture  programming  devops  softwaredevelopment  cloudcomputing  refs 
june 2018 by mcherm
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 
june 2018 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 
may 2018 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 
may 2018 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 
may 2018 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 
may 2018 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 
april 2018 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 
april 2018 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
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
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
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
« earlier      
per page:    204080120160

related tags

abc  ACMQueue  activerecord  ada  AdaLovelace  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  cartoon  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  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  TalkIdeas  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: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: