nhaliday + prof   61

One week of bugs
If I had to guess, I'd say I probably work around hundreds of bugs in an average week, and thousands in a bad week. It's not unusual for me to run into a hundred new bugs in a single week. But I often get skepticism when I mention that I run into multiple new (to me) bugs per day, and that this is inevitable if we don't change how we write tests. Well, here's a log of one week of bugs, limited to bugs that were new to me that week. After a brief description of the bugs, I'll talk about what we can do to improve the situation. The obvious answer to spend more effort on testing, but everyone already knows we should do that and no one does it. That doesn't mean it's hopeless, though.


Here's where I'm supposed to write an appeal to take testing more seriously and put real effort into it. But we all know that's not going to work. It would take 90k LOC of tests to get Julia to be as well tested as a poorly tested prototype (falsely assuming linear complexity in size). That's two person-years of work, not even including time to debug and fix bugs (which probably brings it closer to four of five years). Who's going to do that? No one. Writing tests is like writing documentation. Everyone already knows you should do it. Telling people they should do it adds zero information1.

Given that people aren't going to put any effort into testing, what's the best way to do it?

Property-based testing. Generative testing. Random testing. Concolic Testing (which was done long before the term was coined). Static analysis. Fuzzing. Statistical bug finding. There are lots of options. Some of them are actually the same thing because the terminology we use is inconsistent and buggy. I'm going to arbitrarily pick one to talk about, but they're all worth looking into.


There are a lot of great resources out there, but if you're just getting started, I found this description of types of fuzzers to be one of those most helpful (and simplest) things I've read.

John Regehr has a udacity course on software testing. I haven't worked through it yet (Pablo Torres just pointed to it), but given the quality of Dr. Regehr's writing, I expect the course to be good.

For more on my perspective on testing, there's this.

From the perspective of a user, the purpose of Hypothesis is to make it easier for you to write better tests.

From my perspective as the primary author, that is of course also a purpose of Hypothesis. I write a lot of code, it needs testing, and the idea of trying to do that without Hypothesis has become nearly unthinkable.

But, on a large scale, the true purpose of Hypothesis is to drag the world kicking and screaming into a new and terrifying age of high quality software.

Software is everywhere. We have built a civilization on it, and it’s only getting more prevalent as more services move online and embedded and “internet of things” devices become cheaper and more common.

Software is also terrible. It’s buggy, it’s insecure, and it’s rarely well thought out.

This combination is clearly a recipe for disaster.

The state of software testing is even worse. It’s uncontroversial at this point that you should be testing your code, but it’s a rare codebase whose authors could honestly claim that they feel its testing is sufficient.

Much of the problem here is that it’s too hard to write good tests. Tests take up a vast quantity of development time, but they mostly just laboriously encode exactly the same assumptions and fallacies that the authors had when they wrote the code, so they miss exactly the same bugs that you missed when they wrote the code.

Preventing the Collapse of Civilization [video]: https://news.ycombinator.com/item?id=19945452
- Jonathan Blow

NB: DevGAMM is a game industry conference

- loss of technological knowledge (Antikythera mechanism, aqueducts, etc.)
- hardware driving most gains, not software
- software's actually less robust, often poorly designed and overengineered these days
- *list of bugs he's encountered recently*:
- knowledge of trivia becomes more than general, deep knowledge
- does at least acknowledge value of DRY, reusing code, abstraction saving dev time
techtariat  dan-luu  tech  software  error  list  debugging  linux  github  robust  checking  oss  troll  lol  aphorism  webapp  email  google  facebook  games  julia  pls  compilers  communication  mooc  browser  rust  programming  engineering  random  jargon  formal-methods  expert-experience  prof  c(pp)  course  correctness  hn  commentary  video  presentation  carmack  pragmatic  contrarianism  pessimism  sv  unix  rhetoric  critique  worrydream  hardware  performance  trends  multiplicative  roots  impact  comparison  history  iron-age  the-classics  mediterranean  conquest-empire  gibbon  technology  the-world-is-just-atoms  flux-stasis  increase-decrease  graphics  hmm  idk  systems  os  abstraction  intricacy  worse-is-better/the-right-thing  build-packaging  microsoft  osx  apple  reflection  assembly  things  knowledge  detail-architecture  thick-thin  trivia  info-dynamics  caching  frameworks  generalization  systematic-ad-hoc  universalism-particularism  analytical-holistic  structure  tainter  libraries  tradeoffs  prepping  threat-modeling  network-structure  writing  risk  local-glob 
may 2019 by nhaliday
Philosophies | Free Full-Text | The Unreasonable Destructiveness of Political Correctness in Philosophy | HTML
Jason Stanley:


Epistemic Exploitation: https://quod.lib.umich.edu/e/ergo/12405314.0003.022/--epistemic-exploitation?rgn=main;view=fulltext
On Benefiting from Injustice: https://muse.jhu.edu/article/214594

this Halloween, "straw men" come to life
Bauer’s answer to this puzzle is that feminist philosophy must involve a radical reimagining
of philosophy itself – philosophy, to be feminist, must become more
concerned with lived reality, and less concerned with the metaphilosophical goal, as
Bernard Williams put it, of ‘getting it right’ (1989, 3). Thus Bauer endorses the view
that ‘feminist philosophy’ is a sort of contradiction in terms, a contradiction that
must be resolved through a radical revision of philosophy itself.

Voila. This @LizzieWurtzel quote is the logical endpoint of identity epistemology/ethics discourse. Not sarcasm:
WURTZEL: I see sexism everywhere, and I think it has to do with that. I’ve begun to blame sexism for everything. I’ve become so overwhelmed by it that, even though I love Bob Dylan, I don’t want to listen to Bob Dylan, because I don’t want to listen to men anymore. I don’t care what men have to say about anything. I only want to pay attention to what women do. I only want to read women. I’ll tell you how intense my feelings about this are: You know The Handmaid’s Tale, the show, which is feminist in its nature? Because men are behind it, I don’t want to watch it. That is the extent to which I am so truly horrified by what is going on.

Scholars, Eyewitnesses, and Flesh-Witnesses of War: A Tense Relationship: https://muse.jhu.edu/article/267004/

Confession Booth: https://thebaffler.com/salvos/confession-booth-frost
The trouble with the trauma industry
study  essay  rhetoric  social-science  academia  westminster  philosophy  ideology  politics  culture-war  truth  epistemic  identity-politics  egalitarianism-hierarchy  inequality  zero-positive-sum  absolute-relative  realness  is-ought  info-dynamics  chart  multi  news  org:rec  list  stream  people  prof  twitter  social  discussion  unaffiliated  left-wing  backup  org:mag  right-wing  douthatish  org:edu  drama  gender  sex  sexuality  higher-ed  morality  ethics  formal-values  interview  letters  org:lite  longform  pdf  journos-pundits 
august 2017 by nhaliday
Dimensions - Geert Hofstede



Individualism and Collectivism in Israeli Society: Comparing Religious and Secular High-School Students: https://sci-hub.tw/https://link.springer.com/article/10.1023/A:1016945121604
A common collective basis of mutual value consensus was found in the two groups; however, as predicted, there were differences between secular and religious students on the three kinds of items, since the religious scored higher than the secular students on items emphasizing collectivist orientation. The differences, however, do not fit the common theoretical framework of collectivism-individualism, but rather tend to reflect the distinction between in-group and universal collectivism.

Individualism and Collectivism in Two Conflicted Societies: Comparing Israeli-Jewish and Palestinian-Arab High School Students: https://sci-hub.tw/http://journals.sagepub.com/doi/10.1177/0044118X01033001001
Both groups were found to be more collectivistic than individualistic oriented. However, as predicted, the Palestinians scored higher than the Israeli students on items emphasizing in-group collectivist orientation (my nationality, my country, etc.). The differences between the two groups tended to reflect some subdistinctions such as different elements of individualism and collectivism. Moreover, they reflected the historical context and contemporary influences, such as the stage where each society is at in the nation-making process.

Religion as culture: religious individualism and collectivism among american catholics, jews, and protestants.: https://www.ncbi.nlm.nih.gov/pubmed/17576356
We propose the theory that religious cultures vary in individualistic and collectivistic aspects of religiousness and spirituality. Study 1 showed that religion for Jews is about community and biological descent but about personal beliefs for Protestants. Intrinsic and extrinsic religiosity were intercorrelated and endorsed differently by Jews, Catholics, and Protestants in a pattern that supports the theory that intrinsic religiosity relates to personal religion, whereas extrinsic religiosity stresses community and ritual (Studies 2 and 3). Important life experiences were likely to be social for Jews but focused on God for Protestants, with Catholics in between (Study 4). We conclude with three perspectives in understanding the complex relationships between religion and culture.

Inglehart–Welzel cultural map of the world: https://en.wikipedia.org/wiki/Inglehart%E2%80%93Welzel_cultural_map_of_the_world
Live cultural map over time 1981 to 2015: https://www.youtube.com/watch?v=ABWYOcru7js


By Income of the Country

Most of the low post-materialism, high income countries are East Asian :(. Some decent options: Norway, Netherlands, Iceland (surprising!). Other Euro countries fall into that category but interest me less for other reasons.


Postmaterialism and the Economic Condition: https://www.jstor.org/stable/2111573
prof  psychology  social-psych  values  culture  cultural-dynamics  anthropology  individualism-collectivism  expression-survival  long-short-run  time-preference  uncertainty  outcome-risk  gender  egalitarianism-hierarchy  things  phalanges  group-level  world  tools  comparison  data  database  n-factor  occident  social-norms  project  microfoundations  multi  maps  visualization  org:junk  psych-architecture  personality  hari-seldon  discipline  self-control  geography  shift  developing-world  europe  the-great-west-whale  anglosphere  optimate  china  asia  japan  sinosphere  orient  MENA  reddit  social  discussion  backup  EU  inequality  envy  britain  anglo  nordic  ranking  top-n  list  eastern-europe  germanic  gallic  mediterranean  cog-psych  sociology  guilt-shame  duty  tribalism  us-them  cooperate-defect  competition  gender-diff  metrics  politics  wiki  concept  society  civilization  infographic  ideology  systematic-ad-hoc  let-me-see  general-survey  chart  video  history  metabuch  dynamic  trends  plots  time-series  reference  water  mea 
june 2017 by nhaliday
For potential Ph.D. students
Ravi Vakil's advice for PhD students

General advice:
Think actively about the creative process. A subtle leap is required from undergraduate thinking to active research (even if you have done undergraduate research). Think explicitly about the process, and talk about it (with me, and with others). For example, in an undergraduate class any Ph.D. student at Stanford will have tried to learn absolutely all the material flawlessly. But in order to know everything needed to tackle an important problem on the frontier of human knowledge, one would have to spend years reading many books and articles. So you'll have to learn differently. But how?

Don't be narrow and concentrate only on your particular problem. Learn things from all over the field, and beyond. The facts, methods, and insights from elsewhere will be much more useful than you might realize, possibly in your thesis, and most definitely afterwards. Being broad is a good way of learning to develop interesting questions.

When you learn the theory, you should try to calculate some toy cases, and think of some explicit basic examples.

Talk to other graduate students. A lot. Organize reading groups. Also talk to post-docs, faculty, visitors, and people you run into on the street. I learn the most from talking with other people. Maybe that's true for you too.

Specific topics:
- seminars
- giving talks
- writing
- links to other advice
advice  reflection  learning  thinking  math  phd  expert  stanford  grad-school  academia  insight  links  strategy  long-term  growth  🎓  scholar  metabuch  org:edu  success  tactics  math.AG  tricki  meta:research  examples  concrete  s:*  info-dynamics  s-factor  prof  org:junk  expert-experience 
may 2016 by nhaliday
Scott Aaronson Answers Every Ridiculously Big Question I Throw at Him
Great interview. The discussion of how his research went early in his career and what he thinks about free will is particularly interesting. Should really get around to reading that paper of his.
physics  profile  quantum  interview  research  prof  🎓  reflection  popsci  aaronson  tcstariat  org:mag  org:sci 
may 2016 by nhaliday

bundles : academemeta

related tags

2016-election  aaronson  absolute-relative  abstraction  academia  accretion  acm  acmtariat  advanced  advice  ai  algebra  algorithmic-econ  algorithms  alt-inst  altruism  ama  analysis  analytical-holistic  anglo  anglosphere  anthropology  aphorism  apple  art  asia  assembly  backup  bandits  bayesian  behavioral-econ  berkeley  blog  boaz-barak  boolean-analysis  borjas  branches  britain  broad-econ  browser  build-packaging  c(pp)  caching  caltech  carmack  chart  checking  checklists  china  christianity  civilization  classic  cmu  cog-psych  columbia  commentary  communication  communication-complexity  comparison  competition  compilers  complex-systems  complexity  composition-decomposition  computational-geometry  concept  concrete  conquest-empire  contrarianism  cool  cooperate-defect  correctness  correlation  counter-revolution  coupling-cohesion  course  cracker-prog  critique  cultural-dynamics  culture  culture-war  dan-luu  data  data-science  data-structures  database  dbs  debugging  deep-learning  degrees-of-freedom  detail-architecture  developing-world  differential-privacy  dimensionality  diogenes  discipline  discrimination  discussion  distributed  douthatish  drama  duty  dynamic  eastern-europe  econ-metrics  economics  econotariat  egalitarianism-hierarchy  elections  email  engineering  entropy-like  envy  epistemic  ergodic  erik-demaine  error  essay  ethics  ethnocentrism  EU  europe  evolution  examples  expert  expert-experience  exposition  expression-survival  facebook  features  flux-stasis  foreign-policy  formal-methods  formal-values  frameworks  frontier  gallic  game-theory  games  gender  gender-diff  general-survey  generalization  genetics  geography  geometry  germanic  gibbon  github  gnon  google  gowers  grad-school  graph-theory  graphical-models  graphics  graphs  group-level  group-selection  growth  growth-econ  gtd  guilt-shame  hanson  hardware  hari-seldon  harvard  henrich  heuristic  hi-order-bits  high-dimension  higher-ed  history  hmm  hn  homepage  identity-politics  ideology  idk  IEEE  impact  increase-decrease  individualism-collectivism  inequality  info-dynamics  info-econ  info-foraging  infographic  information-theory  init  insight  institutions  interview  intricacy  iron-age  is-ought  israel  japan  jargon  jelani-nelson  journos-pundits  judaism  julia  knowledge  labor  language  latent-variables  learning  learning-theory  lecture-notes  left-wing  let-me-see  letters  levers  libraries  linear-algebra  links  linux  list  local-global  logic  lol  long-short-run  long-term  longform  luca-trevisan  machine-learning  macro  maps  math  math.AC  math.AG  math.CA  math.CO  math.FA  math.NT  mathtariat  meaningness  mechanism-design  mediterranean  MENA  meta:research  meta:science  metabuch  metal-to-virtual  metameta  metric-space  metrics  michael-nielsen  micro  microfoundations  microsoft  migration  mihai  mit  modernity  mooc  morality  motivation  msr  multi  multiplicative  n-factor  nascent-state  network-structure  neuro  news  nibble  nihil  nlp  nordic  nyc  occident  off-convex  oly  online-learning  optimate  optimization  org:data  org:edu  org:junk  org:lite  org:mag  org:popup  org:rec  org:sci  organizing  orient  os  oss  osx  outcome-risk  oxbridge  p:someday  p:whenever  papers  parsimony  paul-romer  pdf  people  performance  personality  pessimism  phalanges  phd  philosophy  physics  plots  pls  polisci  politics  poll  popsci  pragmatic  prediction-markets  prepping  presentation  princeton  prioritizing  probability  problem-solving  prof  profile  programming  project  protestant-catholic  pseudoE  psych-architecture  psychology  q-n-a  qra  quantum  quantum-info  quixotic  rand-approx  random  ranking  reading  realness  rec-math  reddit  reference  reflection  religion  research  research-program  retention  rhetoric  right-wing  risk  robust  roots  rust  ryan-odonnell  s-factor  s:*  s:***  salil-vadhan  sapiens  scholar  scholar-pack  science  scitariat  self-control  sex  sexuality  shalizi  shift  sinosphere  skeleton  smoothness  social  social-norms  social-psych  social-science  society  sociology  software  spectral  stanford  stats  stochastic-processes  strategy  stream  structure  study  studying  success  sv  synthesis  system-design  systematic-ad-hoc  systems  tactics  tainter  tcs  tcstariat  teaching  tech  technology  techtariat  tensors  texas  the-classics  the-great-west-whale  the-trenches  the-world-is-just-atoms  theos  thesis  thick-thin  things  thinking  threat-modeling  tim-roughgarden  time-preference  time-series  tools  top-n  trade  tradeoffs  trends  tribalism  tricki  trivia  troll  truth  twitter  unaffiliated  uncertainty  unit  universalism-particularism  unix  unsupervised  us-them  usa  values  video  virtu  visualization  washington  water  wealth  webapp  westminster  wiki  within-group  wonkish  world  worrydream  worse-is-better/the-right-thing  writing  zeitgeist  zero-positive-sum  🌞  🎓  🖥 

Copy this bookmark: