Open Data Structures
12 days ago by jm
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
SEList, SkiplistSSet, SkiplistList, ChainedHashTable, LinearHashTable, BinaryTree, BinarySearchTree, Treap, ScapegoatTree, RedBlackTree, BinaryHeap, MeldableHeap, AdjacencyMatrix, AdjacencyLists, BinaryTrie, XFastTrie, and YFastTrie
12 days ago by jm
An IDE is not enough
12 days ago by jm
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
13 days ago by jm
"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
6 weeks ago by jm
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
7 weeks ago by jm
'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
9 weeks ago by jm
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)
9 weeks ago by jm
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
10 weeks ago by jm
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
december 2011 by jm
'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
october 2011 by jm
'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
september 2011 by jm
'git checkout -t' alone is worth the bookmark
git
tips
coding
unix
reference
tricks
via:proggit
september 2011 by jm
Real-World Scala: Dependency Injection (DI)
august 2011 by jm
I think I prefer the structural-typing approach, TBH
scala
patterns
programming
oo
coding
dependency-injection
august 2011 by jm
'What Idiot Wrote The Patent That Might Invalidate Software Patents? Oh, Wait, That Was Me' | Techdirt
august 2011 by jm
'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
Not sure how I feel about this.
John - inventor of the patent in question.'
august 2011 by jm
Scala: The Static Language that Feels Dynamic
june 2011 by jm
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
april 2011 by jm
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
InfoQ: Guardian.co.uk Switching from Java to Scala
april 2011 by jm
pretty good thumbs-up account
scala
java
guardian
coding
from delicious
april 2011 by jm
Brad Porter's top five principles from "On Designing and Deploying Internet-Scale Services"
march 2011 by jm
still fantastic advice, even after 4 years. I think it's time for a re-read
internet
software
james-hamilton
design
architecture
coding
advice
services
scaling
reliability
from delicious
march 2011 by jm
Bulletproof Node.js Coding
march 2011 by jm
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
february 2011 by jm
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
february 2011 by jm
'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)
january 2011 by jm
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"
january 2011 by jm
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
january 2011 by jm
'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
december 2010 by jm
'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
december 2010 by jm
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)
december 2010 by jm
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
november 2010 by jm
'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
november 2010 by jm
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
3 Rules of thumb for Bloom Filters
november 2010 by jm
good to know (via Jeremy)
via:jzawodny
bloom-filters
hashing
algorithms
coding
tips
false-positives
from delicious
november 2010 by jm
Using genetic algorithms to find Starcraft 2 build orders
november 2010 by jm
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
july 2010 by jm
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
may 2010 by jm
'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
may 2010 by jm
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
may 2010 by jm
'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
Ruby Best Practices - Full Book Now Available For Free!
march 2010 by jm
one for the to-get queue
best-practices
ruby
book
free
download
toread
library
pdf
reference
coding
from delicious
march 2010 by jm
Mindblowing Python GIL
february 2010 by jm
'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?
february 2010 by jm
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
Build Web Apps for iPhone using Dashcode
december 2009 by jm
hmm, not too tricky
iphone
html
css
js
dev
coding
dashcode
from delicious
december 2009 by jm
Turing-incomplete Lua?
december 2009 by jm
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
december 2009 by jm
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
Code: Flickr Developer Blog » Flipping Out
december 2009 by jm
Flickr don't use branches. mental
branching
integration
branch
version-control
coding
flickr
sysadmin
wtf
deployment
from delicious
december 2009 by jm
"Source Code Optimisation", Felix von Leitner, Linux Kongress 2009 [PDF]
november 2009 by jm
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
Summary of all the MIT Introduction to Algorithms lectures
november 2009 by jm
good reviews and notes from Peteris Krumins
algorithms
mit
programming
coding
lectures
from delicious
november 2009 by jm
The Rise and Fall of the Hobbyist Game Programmer
november 2009 by jm
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
september 2009 by jm
'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
august 2009 by jm
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
august 2009 by jm
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
Next Generation Java Programming Style
august 2009 by jm
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
Premature Flexibilization Is The Root of Whatever Evil Is Left
august 2009 by jm
great blog post on the YAGNI principle. +1
yagni
coding
software
development
premature-flexibilization
august 2009 by jm
Programmer Competency Matrix
july 2009 by jm
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'
july 2009 by jm
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: