recentpopularlog in

mcherm : via:davidmaciver   60

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
The GRIM test — a method for evaluating published research. – Medium
Check for erronious (or faked) data in scientific papers by looking to see if the reported means are possible given the sample sizes.
ScientificMethod  fraud  via:DavidMacIver 
september 2016 by mcherm
First Past The Post is not the problem, districts are | David R. MacIver
First past the post sucks, but it isn't the problem. Even a better voting system wouldn't help if we still have gerrymandering -- it's the definitions of the districts that we have to change.
voting  via:DavidMacIver 
august 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
Contempt Culture - The Particular Finest
"Don't make fun of other people for what programming language they use."
via:DavidMacIver  programming 
december 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
Magnus Carlsen's Win in Chess Championship Shows Powerful Role of Computers -
When computers beat humans at chess, it didn't cause everyone to quit playing chess, instead they got MORE interested and started getting better by learning from the computers.
chess  ai  via:DavidMacIver 
november 2013 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
Conference anti-harassment/Policy - Geek Feminism Wiki
A sample anti-harassment policy for a conference or similar group.
discrimination  sexism  via:DavidMacIver 
september 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
Hiring based on hobbies: effective or exclusive? | Geek Feminism Blog
If you hire based on outside hobbies, you may be excluding (or at least disadvantaging) some perfectly good candidates.
hiring  via:DavidMacIver 
february 2013 by mcherm
Interviewing companies - David R. MacIver
The candidate is interviewing the company every bit as much as they are interviewing her. What good questions should she ask? Here are some excellent ideas about this. I even made a suggestion.
hiring  startup  via:DavidMacIver  todo  mypostings 
february 2013 by mcherm
A non-transitive tournament - David R. MacIver
An interesting game analyzed: let 1 scissors, a whole bunch of paper, and N rocks play a single-elimination tournament. What are the probabilities that the winner will be of each type?
math  via:DavidMacIver 
november 2012 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
Cost-free abstractions: David R. MacIver
In Haskell, he created a library allowing sorts to work on several different comparison functions instead of just working on less-than. But 100% of the overhead occurred at compile-time; none at run-time.
languages  languagedesign  haskell  types  via:DavidMacIver 
may 2011 by mcherm - Center for Range Voting - front page
An opinionated site promoting a particular voting method.
math  voting  via: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 Right Tool: What programming tool is right for which job?
A great language comparison idea: it has people rank languages as to how they fit to certain statements, thus building up a "flavor" of the language.
via:DavidMacIver  programming  programminglanguages 
may 2010 by mcherm

Copy this bookmark:

to read