jm + coding   52

Open Data Structures
A free-as-in-speech as well as -beer textbook of data structures, covering a great range, including some I hadn't heard of before. Here's the full list: ArrayStack, FastArrayStack, ArrayQueue, ArrayDeque, DualArrayDeque, RootishArrayStack, SLList, DLList,
SEList, SkiplistSSet, SkiplistList, ChainedHashTable, LinearHashTable, BinaryTree, BinarySearchTree, Treap, ScapegoatTree, RedBlackTree, BinaryHeap, MeldableHeap, AdjacencyMatrix, AdjacencyLists, BinaryTrie, XFastTrie, and YFastTrie
algorithms  books  data-structures  computer-science  coding  tries  skiplists  arrays  queues  heap  trees  graphs  hashtables 
12 days ago by jm
An IDE is not enough
Very thought-provoking response to that 'Light Table' demo which went round the aggregators a couple of weeks back. 'The fundamental reason IDEs have dead-ended is that they are constrained by the syntax and semantics of our programming languages. Our programming languages were all designed to be used with a text editor. It is therefore not surprising that our IDEs amount to tarted-up text editors. Likewise our programming languages were all designed with an imperative semantics that efficiently matches the hardware but defies static visualization. Indeed it would be a miracle if we could slap a new IDE on top of an old language and magically alter its syntactic and semantic assumptions. I don’t believe in miracles. Languages and IDEs have co-evolved and neither can change without the other also changing. That is why three years ago I put aside my IDE work to focus on language design. Getting rid of imperative semantics is one of the goals. Another is getting rid of source text files (as well as ASTs, which carry all the baggage of a textual encoding minus the readability). This has turned out to be really really hard. And lonely – no one wants to even talk about these crazy ideas. Nevertheless I firmly believe that so long as we are programming in decendants of assembly language we will continue to program in descendants of text editors.' (via Chris Horn)
via:cjhorn  ide  programming  coding  programming-languages  semantics  syntax  source-code  text 
12 days ago by jm
Chronon DVR for Java
"record entire execution of your Java app; play it back on any machine". Other features: time-travelling debugger -- step backwards, jump to any point in execution, designed for long running programs; post-execution logging -- add log statements after the program has run, and see what it would have logged. Looks extremely nifty, but I wonder how big those recording files get...
debugging  via:peakscale  eclipse  chronon  dvr  java  coding  logging  jvm 
13 days ago by jm
Ask For Forgiveness Programming - Or How We'll Program 1000 Cores
Nifty concept from IBM Research's David Ungar -- "race-and-repair". Simply put, allow lock-free lossy/inconsistent calculation, and backfill later, using concepts like "freshener" threads, to reconcile inconsistencies. This is a familiar concept in distributed computing nowadays thanks to CAP, but I hadn't heard it being applied to single-host multicore parallel programming before -- I can already think of an application in our codebase...
race-and-repair  concurrency  coding  ibm  parallelism  parallel  david-ungar  cap  multicore 
6 weeks ago by jm
Girls and coding: female peer pressure scares them off | Education | The Observer
'Coding and digital prowess is still niche at a young age, self-taught by the studious. It is often considered a bit nerdy in senior school, where it is not currently taught as a part of the curriculum, although this is changing in senior schools from September 2012. Therefore, generally speaking, those who code have taught themselves. Teaching yourself something that should really be covered as a part of lessons is a bit like doing extra homework – why, ask many teens, would anyone do that? There is no way the majority of hormonally challenged, desperate-to-find-their-place-in-the-world teenage girls would risk ridicule or isolation by doing such a thing – let alone be open and proud about it. (Boys of the same age have different social challenges and do not measure their societal worth so much by peer review.)'
girls  coding  education  peer-pressure  software  teaching  kids 
7 weeks ago by jm
Google Guava BloomFIlter
neat, Guava now has a builtin Bloom filter implementation using the murmur hash. that'll potentially save a little hassle in the future
guava  coding  java  bloom-filters  data-structures  sets 
9 weeks ago by jm
The day I tried teaching primary school kids to code (and succeeded)
via Niamh -- 'I learned a bit about teaching at primary level and I learned that it is pretty fun although REALLY hard work! I learned that if you make a complex subject engaging kids will learn it and are probably capable of a great deal more than they are often given credit for. The youngest kids on the day were year four which is aged 8-9 and although they were definitely more able than some of their peers, you can expect that by year 5-6 (aged 9-11) probably a lot of the kids could follow it and indeed learn to code.'
coding  education  kids  programming  teaching  school 
9 weeks ago by jm
JS1k, 1k demo submission
a speech synthesizer in 1 KB of javascript. truly awesome, nice work by @p01
js1k  javascript  demos  speech  hacks  coding 
10 weeks ago by jm
SiliconRepublic story on CoderDojo
'it's both incredible and poignant that a voluntary movement that was born in Ireland during the summer is about to go international. Coder Dojo, the brainchild of 19-year-old entrepreneur and programmer James Whelton from Cork and tech entrepreneur Bill Liao, began as a Saturday morning club for kids to teach each other software programming. It has grown into a national movement up and down Ireland, a place where kids and their parents can go and learn to write software code in a friendly environment. The first UK Coder Dojo was held in London only last week and other countries in Europe are clamouring to get the initiative started there, too.' Good on them!
coderdojo  programming  coding  kids  children  teaching  education  tech  ireland 
december 2011 by jm
peak6/scala-ssh-shell - GitHub
'Backdoor that gives you a scala shell over ssh on your jvm. The shell is not sandboxed, anyone access the shell can touch anything in the jvm and do anything the jvm can do including modifying and deleting files, etc.' nifty!
scala  ssh  repl  interactive  debugging  coding  jvm  java 
october 2011 by jm
A few git tips you didn't know about
'git checkout -t' alone is worth the bookmark
git  tips  coding  unix  reference  tricks  via:proggit 
september 2011 by jm
'What Idiot Wrote The Patent That Might Invalidate Software Patents? Oh, Wait, That Was Me' | Techdirt
'So I was thinking - great they invalidated software patents, lets see what crappy patent written by an idiot they picked to do it - then I realized the idiot in question was me :-)

Not sure how I feel about this.

John - inventor of the patent in question.'
patents  swpats  reform  usa  software-development  coding  funny  techdirt 
august 2011 by jm
Scala: The Static Language that Feels Dynamic
a good intro from Bruce Eckel. We need a good excuse to deploy some Scala ;)
scala  actors  java  language  programming  jvm  coding 
june 2011 by jm
pyflakes.vim - on-the-fly Python code checking in Vim
Vim gets a good IDE feature. 'highlights common Python errors like misspelling a variable name on the fly. It also warns about unused imports, redefined functions, etc.'
ide  vim  python  programming  via:preddit  coding 
april 2011 by jm
Bulletproof Node.js Coding
lots of patterns to write safe node.js code.  Pretty daunting, to be honest
javascript  node.js  coding  programming  async  from delicious
march 2011 by jm
Gerrit, Git and Jenkins
This is the future of code review. Commit directly from your git checkout to the Gerrit code-review system; change is immediately web-visible and enters the review workflow; at the same time, Jenkins checks out the proposed change and runs the test suite; once it's approved, it automatically gets checked in. Brilliant!
git  coding  code-review  workflows  jenkins  gerrit  c-i  testing  automation  from delicious
february 2011 by jm
Contracts for Java
'Preconditions, postconditions, and invariants are added as Java boolean expressions inside annotations.'  nice
java  google  coding  open-source  contracts  eiffel  preconditions  invariants  annotations  from delicious
february 2011 by jm
The things make got right (and how to make it better)
jgc provides a good demonstration of how a general-purpose programming language tends to make a crappy DSL -- specifically Rakefiles
dsl  build  make  coding  jgc  languages  configuration  makefiles  rake  ruby  from delicious
january 2011 by jm
good Hacker News thread on djb's "redo"
YA make-replacement build system. the thread is better than the linked article, btw
hacker-news  via:fanf  make  build  djb  redo  compilation  building  coding  open-source  from delicious
january 2011 by jm
Rules of SCRAM
'GOATS just stand around during this phase and stare at each other, rolling their eyes frequently at howlers (such as using serialization to SOAP for storage, or databases as RPC mechanisms). It is often useful for GOATS — or anybody, really — to take notes for the monthly BACKSTABBING drill.'
funny  scrum  software  project-management  coding  work  from delicious
january 2011 by jm
The Day MAME Saved My Ass
'Publishers would have people believe that MAME and the emulation scene is the root of all evil, that it promotes piracy and ultimately hurts the poor, starving developers slaving away on the game. Not only is this claim patently false, it ignores the fact that many developers use things like MAME, mod chips, and homebrew development utilities to help us overcome the day-to-day frustrations caused by the people behind the real problems in our industry.'
mame  games  coding  legal  spy-hunter  emulation  rips  takedowns  from delicious
december 2010 by jm
Andrew Tridgell's pair programming experience
Pair-programming with another SAMBA developer over the course of a year, using a SIP server and a VNC-shared desktop. very positive review indeed
pair-programming  xp  tridge  coding  collaboration  agile  vnc  sip  from delicious
december 2010 by jm
The Effectiveness of Test Driven Development (TDD)
huh. Test-driven development is slower than traditional write-first-test-at-the-end development, but it results in less bugs. Grokcode theorise that its big win is amortising the cost of testing throughout the product iteration, hence reducing the temptation to skip testing when the crunch phase happens
tdd  programming  testing  qa  coding  from delicious
december 2010 by jm
Richardson Maturity Model
'steps towards the glory of REST'. 3 steps, namely: "Level 0: the swamp of POX", "Level 1: Resources", "Level 2: HTTP verbs", and "Level 3: hypermedia controls". +1
rest  leonard-richardson  api  design  coding  martin-fowler  restful  web-services  http  from delicious
november 2010 by jm
Tony Finch - Some notes on Bloom filters
more good Bloom Filter tips. he says: 'I take a slightly different tack, starting with a target population in mind which determines the size of the filter. Also there's a minor error regarding performance in the corte.si post. You only need to calculate two hash functions, and use a linear combination of them to index the Bloom filter. This simplifies the coding a lot, and if hash calculation dominates filter indexing, it's also a lot faster.'
bloom-filters  tips  coding  via:fanf  false-positives  from delicious
november 2010 by jm
Using genetic algorithms to find Starcraft 2 build orders
discovered a previously-unknown optimal build strategy for the Zerg race -- how cool is that
zerg-rush  starcraft  ga  genetic-algorithms  evolution  gaming  coding  from delicious
november 2010 by jm
REPLs suck, I want something block oriented
good opinion piece; I agree, REPL isn't a usable approach for block-oriented languages
languages  repl  programming  ruby  hacking  coding  block-oriented  from delicious
july 2010 by jm
Mea Culpa
'Programming is an embarrassment compared to other fields of engineering and design. Our mainstream culture is one of adolescent self-indulgence. It is like something from Gulliver’s Travels, with the curly-bracketeers vs. the indentationites vs. the parenthesesophiles. The only thing that everyone seems to agree upon is how stupid all the other programmers are. Try googling “stupid programmers”. We have met the enemy, and he is us.' Fantastic post via Jan Lenhardt
via:janl  coding  programming  software  philosophy  languages  lisp  elitism  from delicious
may 2010 by jm
New programming jargon you coined? - Stack Overflow
some nice coding neologisms here. aside from "Refuctoring" (see other link), I like "The Duck" (a sacrificial feature, used to distract cut-crazy bosses from useful features) and "Stringly Typed" (an implementation that needlessly relies on strings when programmer and refactor friendly options are available)
coding  funny  slang  neologisms  jargon  stack-overflow  the-duck  stringly-typed  from delicious
may 2010 by jm
Refuctoring
'the process of taking a well-designed piece of code and, through a series of small, reversible changes, making it completely unmaintainable by anyone except yourself' (via Mozai)
funny  refuctoring  via:Mozai  coding  tests  tdd  programming  software  from delicious
may 2010 by jm
Mindblowing Python GIL
'presentation about how the Python GIL actually works and why it's even worse than most people even imagine.' A good chunk btw could be rephrased as 'pthreads is worse than most people even imagine'. pretty awful data, though
python  gil  locking  synchronization  ouch  performance  tuning  coding  interpreters  threads  pthreads  from delicious
february 2010 by jm
How do we kick our synchronous addiction?
great post on the hazards of programming in an async framework, and how damn hard it is. good comments thread too (via jzawodny)
via:jzawodny  coding  python  javascript  scalability  ruby  concurrency  erlang  async  node.js  twisted  from delicious
february 2010 by jm
Turing-incomplete Lua?
discussion thread on the cons of using Turing-complete general-purpose programming languages in places where it's not necessary, such as configuration files
configuration  turing-complete  safety  coding  software  lua  from delicious
december 2009 by jm
How to build a Google Chrome extension in 15 minutes
wow. that _is_ easy; wonder if it'd be nearly as easy to write an extension as it is nowadays to write userscripts in Firefox
user-scripts  google  chrome  firefox  extensions  coding  html  css  from delicious
december 2009 by jm
"Source Code Optimisation", Felix von Leitner, Linux Kongress 2009 [PDF]
Good presentation on C compiler optimization, via Cal Henderson. 'People often write less readable code because they think it will produce faster code. Unfortunately, in most cases, the code will not be faster.' I particularly like 'Fancy-Schmancy Algorithms': 'If you have 10-100 elements, use a list, not a red-black tree; Fancy data structures help on paper, but rarely in reality. (More space overhead in the data structure, less L2 cache left for actual data.)'
via:iamcal  compilers  c  c++  optimization  coding  assembly  speed  from delicious
november 2009 by jm
The Rise and Fall of the Hobbyist Game Programmer
great article on the 80's one-man shareware game hobbyists (via Walter)
1980s  games  history  programming  nostalgia  geek  gaming  hobbies  coding  6502  c=64  from delicious
november 2009 by jm
The Duct Tape Programmer - Joel on Software
'He is the guy you want on your team building go-carts, because he has two favorite tools: duct tape and WD-40. And he will wield them elegantly even as your go-cart is careening down the hill at a mile a minute. This will happen while other programmers are still at the starting line arguing over whether to use titanium or some kind of space-age composite material that Boeing is using in the 787 Dreamliner.'
duct-tape  jwz  funny  joel-spolsky  hacking  coding  overengineering  architecture-astronauts  from delicious
september 2009 by jm
SD, a distributed bug tracker
now available. sadly, no support for Bugzilla, which is what we use in SpamAssassin (srsly), so I won't be trying it out just yet, but still -- cool
bugs  bug-tracking  trac  prophet  distributed  coding  tools  web  sd 
august 2009 by jm
Hacking a Google Interview
course notes from a 4-day MIT course on tech interviewing (via Hacker News)
interviews  google  hiring  puzzles  mit  questions  coding  computer-science  algorithms 
august 2009 by jm
Hijack: Get A Live IRB Prompt For Any Existing Ruby Process
injects via gdb. pretty cool, if it works; one comment notes that they couldn't use it on a Rails app
gdb  hijack  ruby  debugging  irb  live  coding  rubygems  debugger 
august 2009 by jm
Next Generation Java Programming Style
a Reddit-friendly 8-point list of new idioms for Java code in a more functional style. not sure about a couple of these, but another couple get my +1
erlang  via:janl  coding  java  oop  style  fluent-interfaces  final  encapsulation 
august 2009 by jm
Programmer Competency Matrix
actually quite a good breakdown of software eng skill progression
software  coding  programming  management  hiring  engineering  matrix  skills 
july 2009 by jm
'Two wrongs don't make a right, but two bugs do'
a story of how a bug in Apollo 11's Lunar Module control software, intended to work around a deficiency of the engine hardware, barely avoided mission-endangering results
apollo-program  bugs  software  coding  engines  hardware  don-eyles  allan-klumpp  interfaces  specifications 
july 2009 by jm

related tags

1980s  actors  advice  agile  algorithms  allan-klumpp  annotations  api  apollo-program  architecture  architecture-astronauts  arrays  assembly  async  automation  best-practices  block-oriented  bloom-filters  book  books  branch  branching  bug-tracking  bugs  build  building  c  c++  c-i  c=64  cap  children  chrome  chronon  code-review  coderdojo  coding  collaboration  compilation  compilers  computer-science  concurrency  configuration  contracts  css  dashcode  data-structures  david-ungar  debugger  debugging  demos  dependency-injection  deployment  design  dev  development  distributed  djb  don-eyles  download  dsl  duct-tape  dvr  eclipse  education  eiffel  elitism  emulation  encapsulation  engineering  engines  erlang  evolution  extensions  false-positives  final  firefox  flickr  fluent-interfaces  free  funny  ga  games  gaming  gdb  geek  genetic-algorithms  gerrit  gil  girls  git  google  graphs  guardian  guava  hacker-news  hacking  hacks  hardware  hashing  hashtables  heap  hijack  hiring  history  hobbies  html  http  ibm  ide  integration  interactive  interfaces  internet  interpreters  interviews  invariants  iphone  irb  ireland  james-hamilton  jargon  java  javascript  jenkins  jgc  joel-spolsky  js  js1k  jvm  jwz  kids  language  languages  lectures  legal  leonard-richardson  library  lisp  live  locking  logging  lua  make  makefiles  mame  management  martin-fowler  matrix  mit  multicore  neologisms  node.js  nostalgia  oo  oop  open-source  optimization  ouch  overengineering  pair-programming  parallel  parallelism  patents  patterns  pdf  peer-pressure  performance  philosophy  preconditions  premature-flexibilization  programming  programming-languages  project-management  prophet  pthreads  puzzles  python  qa  questions  queues  race-and-repair  rake  redo  reference  reform  refuctoring  reliability  repl  rest  restful  rips  ruby  rubygems  safety  scala  scalability  scaling  school  scrum  sd  semantics  services  sets  sip  skills  skiplists  slang  software  software-development  source-code  specifications  speech  speed  spy-hunter  ssh  stack-overflow  starcraft  stringly-typed  style  swpats  synchronization  syntax  sysadmin  takedowns  tdd  teaching  tech  techdirt  testing  tests  text  the-duck  threads  tips  tools  toread  trac  trees  tricks  tridge  tries  tuning  turing-complete  twisted  unix  usa  user-scripts  version-control  via:cjhorn  via:fanf  via:iamcal  via:janl  via:jzawodny  via:Mozai  via:peakscale  via:preddit  via:proggit  vim  vnc  web  web-services  work  workflows  wtf  xp  yagni  zerg-rush 

Copy this bookmark:



description:


tags: