recentpopularlog in

mcherm : davidmaciver   45

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
A worked example of designing an unusual data structure | David R. MacIver
He designs a data structure to meet a specific need AND EXPLAINS HOW TO INVENT THE NEW DATA STRUCTURE. His approach is basically to make a simple structure that is correct (but does not perform well), then perform some simple transformations on it to speed up the operations he cares about.
programming  datastructures  DavidMacIver  via:DavidMacIver 
april 2017 by mcherm
How and why to learn about data structures | David R. MacIver
How a data structures course should work: present an objective, then have students design a data structure for it.
via:DavidMacIver  DavidMacIver  datastructures  programming  teaching  teach_programming 
march 2017 by mcherm
The worst election | David R. MacIver
A really good article which gives a simple example where Plurality, Borda count, Condorcet, and Instant Runoff Voting give DIFFERENT results.
election  voting  math  DavidMacIver  via:DavidMacIver 
december 2016 by mcherm
Three thought experiments on majority voting | David R. MacIver
Some interesting simple problems with voting. No solutions, just problems.
voting  via:DavidMacIver  DavidMacIver 
december 2016 by mcherm
Why you should use a single repository for all your company’s projects | David R. MacIver
Some reasons why a "monorepository" for your whole company is the right thing to do. My company won't do that.
versioncontrol  DavidMacIver  via:DavidMacIver 
november 2016 by mcherm
Making taxes progressive through redistribution | David R. MacIver
If a consumption tax is regressive, fix that by increasing the tax and returning the rest to the population evenly. Also plays well with universal basic income.
basicincome  DavidMacIver  via:DavidMacIver 
august 2016 by mcherm
Thinking with the machine | David R. MacIver
Human intelligence is augmented by computers. It works two ways: the human requesting but the computer doing the work (eg: a search) OR the human thinking, but the computer aiding (eg: an outlining tool or a calculator).
ai  intelligence  brain  DavidMacIver  via:reddit 
october 2015 by mcherm
The economics of software correctness | David R. MacIver
It is economically infeasible to write "provably correct" software -- all practical software has bugs. So focus on trying to make it cheaper and easier to FIND bugs, rather than trying hard to be perfect.
programming  softwaredevelopment  testing  DavidMacIver  via:reddit 
october 2015 by mcherm
A wish list | David R. MacIver
A list of programming language features by David MacIver which I really agree with.
languagedesign  programming  DavidMacIver  via:DavidMacIver  mypostings 
july 2015 by mcherm
On Haskell, Ruby, and Cards Against Humanity | David R. MacIver
An insightful comment on how the community around a language affects its usefulness.
languagedesign  via:DavidMacIver  DavidMacIver 
may 2015 by mcherm
Some more small elections | David R. MacIver
This (and the first link) show some interesting voting results to illustrate the difference between different schemes for evaluating ranked preference voting.
election  math  via:DavidMacIver  DavidMacIver 
january 2015 by mcherm
Majority judgement by hand | David R. MacIver
How to implement the voting system "best median ranking wins" (technically "Majority Judgement") without having to resort to a computer to add up the votes.
voting  DavidMacIver  via:DavidMacIver 
september 2014 by mcherm
Write libraries, not services | David R. MacIver
"Services are not so easily refactored, so build things as code libraries at first until the interfaces have evolved and hardened somewhat, THEN expose as APIs if you find that you want to."
api  APIDesign  via:DavidMacIver  DavidMacIver 
march 2014 by mcherm
Open data and fair elections are incompatible | David R. MacIver
If you do a voting system based on full preferences, the data must be kept secret (not just anonymous) or you lose ballot secrecy. In other words, someone could bully you and say "Vote for my guy first then these other guys in a weird order or I'll beat you up", then could confirm it later. PS: I don't think it matters in practice.
voting  via:DavidMacIver  DavidMacIver 
march 2014 by mcherm
Different types of overheads in software projects | David R. MacIver
Dev time as a function of project size: A + Bx + Cx^2, where A is startup, B is doing the work, and C is cost of interactions. Different development methodologies have different values for the constants, so pick your methodology based on the project size.
DavidMacIver  via:DavidMacIver  blogworthy  softwaredevelopment  programming  estimation 
january 2014 by mcherm
Domain specific evaluation orders | David R. MacIver
A really interesting performance improvement: recognize when instances are just intermediate results, and switch around the data structures and/or algorithms and/or evaluation order to optimize performance in these cases.
programming  performance  via:DavidMacIver  DavidMacIver  algorithms  optimization 
january 2014 by mcherm
A potentially fun game mechanic | David R. MacIver
Proposed mechanic: You spend tokens to take turns, but having more tokens in reserve gives you a strategic advantage.
gamedesign  via:DavidMacIver  DavidMacIver 
january 2014 by mcherm
It’s like Intrade meets OKCupid | David R. MacIver
Another terrible idea for a dating site. Terrible in an interesting way.
OkCupid  personal_net  DavidMacIver  via:DavidMacIver 
october 2013 by mcherm
The false proxies of mirror images | David R. MacIver
David MacIver says "don't hire based on hobbies, it may discriminate". I reply "we need the signal anyway, just keep in mind that it may discriminate". I'm not sure I'm comfortable with the position I express here.
blogworthy  DavidMacIver  via:DavidMacIver  hiring  mypostings 
october 2013 by mcherm
How learning Scala made me a better programmer | David R. MacIver
The Scala compiler was buggy, so he learned to generate a reproducible error and then minimize the program that generates it. This is a slow but vital debugging technique whenever you cannot isolate the error.
programming  via:DavidMacIver  DavidMacIver  scala  debugging  blogworthy 
september 2013 by mcherm
Blog editorial guidelines | David R. MacIver
Use "they" for gender non-specific pronouns, even over someone's mild objections but not over their strong objections. I like that policy.
DavidMacIver  via:DavidMacIver  mypostings  grammar  linguistics 
september 2013 by mcherm
Towards a more perfect democracy | David R. MacIver
A well-written argument in favor of randomly selecting a ballot for elections to the legislature.
voting  via:DavidMacIver  DavidMacIver 
september 2013 by mcherm
You are not your labels | David R. MacIver
Using labels (like "gay", or "bi" or "dislexic"). They're useful as shorthand, but avoid defining your own identity with them because sometimes labels don't fit exactly and you don't want that to be a threat to your own identity.
ethics  language  gayrights  DavidMacIver  via:DavidMacIver 
july 2013 by mcherm
Bayesian reasoners shouldn’t believe logical arguments | David R. MacIver
If you are sure of something and I present a proof that it's false, a good Bayesian would conclude that EITHER the proof OR the original was false, and they would be unsure instead of convinced.
logic  philosophy  math  via:DavidMacIver  DavidMacIver 
june 2013 by mcherm
Problem solving when you can’t handle the truth | David R. MacIver
Why Occam's Razor? He says because the simpler theory will be more useful to you if it turns out to be right. I say it's because the simpler theory turns out to be right surprisingly often.
mypostings  philosophyOfScience  DavidMacIver  via:DavidMacIver 
june 2013 by mcherm
Deterministic voting is just too random | David R. MacIver
I explain why I think that any voting procedure that involves randomness, however safe, will be unacceptable because some of the population simply cannot understand the math behind the probability.
voting  mypostings  blogworthy  via:DavidMacIver  DavidMacIver 
april 2013 by mcherm
A parable about problem solving in software development | David R. MacIver
Interesting story of how software accretes complexity over time and how it got drastically simplified.
programming  via:DavidMacIver  DavidMacIver 
march 2013 by mcherm
Questions for prospective employers | David R. MacIver
More about interviewing the company. And I contributed one of the questions.
hiring  via:DavidMacIver  DavidMacIver 
february 2013 by mcherm
Sieving out prime factorizations
An algorithm and an efficient data structure for precomputing prime factorization of all numbers less than N.
algorithms  datastructures  programming  via:DavidMacIver  DavidMacIver 
august 2012 by mcherm
A heuristic for detecting expertise
If they appear obsessed with details you regard as irrelevant and you know little about the subject, then they might be an expert.
personal_net  via:DavidMacIver  DavidMacIver 
june 2012 by mcherm
An interesting game mechanic
Injury deck; draw as many cards as your HP and keep the one you want. Some cards drain HP; run out of HP and you're dead.
gamedesign  rpg  via:DavidMacIver  DavidMacIver 
june 2012 by mcherm
On the value of helpful error messages: David R. MacIver
The computer-connected scale didn't work. One OS he tried had a helpful error message, and that diagnosed it.
programming  softwaredevelopment  via:DavidMacIver  DavidMacIver 
may 2011 by mcherm
A Perfect Voting System: Select a single vote randomly
Suggestion: select a voter at random and the representative is the person they voted for. My comment: this discourages compromise.
voting  mypostings  DavidMacIver  via:DavidMacIver 
april 2011 by mcherm
Irrelevant alternatives aren’t
He demonstrates that one of the conditions for Arrow's impossibility theorem (on voting) isn't really desirable after all.
math  voting  DavidMacIver  via:DavidMacIver 
july 2010 by mcherm
The best way to handle exceptions: David R. MacIver
Don't catch an exception then log something meaningless and exit. You lose the stack trace.
exceptions  programming  DavidMacIver 
april 2010 by mcherm
A curious fact about overloading in Scala » David R. MacIver » Blog Archive
I never knew this, but the JVM allows overloading by return type, not just by argument type. I didn't realize it because the java language (and the java compiler) do NOT allow overloading by return type, only by argument type.
programming  java  scala  DavidMacIver 
august 2008 by mcherm

Copy this bookmark:





to read