simplification   365

« earlier    

A Formal Verification of Rust's Binary Search Implementation
Part of the reason for this is that it’s quite complicated to apply mathematical tools to something unmathematical like a functionally unpure language (which, unfortunately, most programs tend to be written in). In mathematics, you don’t expect a variable to suddenly change its value, and it only gets more complicated when you have pointers to those dang things:

“Dealing with aliasing is one of the key challenges for the verification of imperative programs. For instance, aliases make it difficult to determine which abstractions are potentially affected by a heap update and to determine which locks need to be acquired to avoid data races.” 1

While there are whole logics focused on trying to tackle these problems, a master’s thesis wouldn’t be nearly enough time to model a formal Rust semantics on top of these, so I opted for a more straightforward solution: Simply make Rust a purely functional language!

Electrolysis: Simple Verification of Rust Programs via Functional Purification
If you know a bit about Rust, you may have noticed something about that quote in the previous section: There actually are no data races in (safe) Rust, precisely because there is no mutable aliasing. Either all references to some datum are immutable, or there is a single mutable reference. This means that mutability in Rust is much more localized than in most other imperative languages, and that it is sound to replace a destructive update like

p.x += 1
with a functional one – we know there’s no one else around observing p:

let p = Point { x = p.x + 1, ..p };
techtariat  plt  programming  formal-methods  rust  arrows  simplification  reduction  divide-and-conquer  correctness  project  state  functional  concurrency  direct-indirect  pls  examples 
29 days ago by nhaliday
Making it easier to program and protect the web | MIT News
Adam Chlipala, an associate professor in MIT’s Department of Electrical Engineering and Computer Science and Computer Science (EECS) and Computer Science and Artificial Intelligence Laboratory (CSAIL), develops tools to help programmers generate and mathematically prove algorithms for cryptography, apps, and web services.
programming  theory  software  quality  security  mit  simplification 
7 weeks ago by gilberto5757
ellipsis - Why is the subject omitted in sentences like "Thought you'd never ask"? - English Language & Usage Stack Exchange
This is due to a phenomenon that occurs in intimate conversational spoken English called "Conversational Deletion". It was discussed and exemplified quite thoroughly in a 1974 PhD dissertation in linguistics at the University of Michigan that I had the honor of directing.

Thrasher, Randolph H. Jr. 1974. Shouldn't Ignore These Strings: A Study of Conversational Deletion, Ph.D. Dissertation, Linguistics, University of Michigan, Ann Arbor


"The phenomenon can be viewed as erosion of the beginning of sentences, deleting (some, but not all) articles, dummies, auxiliaries, possessives, conditional if, and [most relevantly for this discussion -jl] subject pronouns. But it only erodes up to a point, and only in some cases.

"Whatever is exposed (in sentence initial position) can be swept away. If erosion of the first element exposes another vulnerable element, this too may be eroded. The process continues until a hard (non-vulnerable) element is encountered." [ibidem p.9]

Dad calls this and some similar omissions "Kiplinger style":
q-n-a  stackex  anglo  language  writing  speaking  linguistics  thesis  trivia  cocktail  parsimony  compression  simplification  multi  wiki  organization  technical-writing  protocol-metadata 
march 2019 by nhaliday
Gitless: a simple version control system built on top of Git
git  simplification  ui 
november 2018 by floehopper
Advanced Visualization with react-vis – Towards Data Science
The line simplification trick matched with voroni selection is a neat trick
voroni  line  simplification  chart  diagram  javascript  webdev 
may 2018 by asteroza
mourner/simplify-js: High-performance JavaScript polyline simplification library
Line edge simplification library. Originally for simplifying stuff like coastlines when zoomed out, but has relevant properties for making line charts easier/faster
canvas  javascript  line  simplification  coordinate  compressor  path  polygon  2D 
may 2018 by asteroza
Data looks better naked — Darkhorse Analytics | Edmonton, AB
To illustrate how less ink is more effective, attractive and impactive we put together this animated gif. In it we start with a chart, similar to what we've seen in many presentations, and vastly improve it with progressive deletions and no additions.
chart  information  design  graph  simplification  tufte 
march 2018 by fjordaan

« earlier    

related tags

2014  2015  2016  2017  2018  2d  3d  7news  abstraction  acm  acquisition  advantage  advice  advocacy  ai  aldon  algorithm  algorithms  alinear  amycollier  analogy  anglo  announcement  antialiasing  api  app  appification  appropriation  approximation  area  arrows  assistant  astrataylor  at  audrelorde  author:drmcwhorter  background  barriers  beautiful  beauty  behavior  behaviour  bias  big  blacklivesmatter  blog  boolean  branch  brentdavis  browserify  bureaucracy  burokratie  business  bürokratie  canon  canvas  career  careers  cartography  certainty  change  chart  charts  citygml  civilrightsmovement  clarao'shea  clayshirky  cli  clientside  climatechange  clipping  cloud  cloudkit  cocktail  cocreation  code  colleges  commentary  communications  community  company  competitive  competitiveness  compilers  complex  complexification  complexity  component  compression  compressor  compromise  computation  computational  computerscience  computing  concept  concurrency  contact  context  conversation  conversion  convert  cool  coordinate  correctness  cost  credulity  criticalpedagogy  criticism  culture  curation  curriculum  curve  cv  cynicism  d3  d3js  dads  dao  data  datamining  decreasing  deeplearning  dennissumara  depth  deschooling  design  designsprints  development  diagram  difference  differentiate  differentiation  digitalcartography  dilution  direct-indirect  directinstruction  discourse  discovery  discussion  display  dissent  diversity  divide-and-conquer  douglas  drawing  drops  duplicate  easterrising  economics  edtech  education  effectiveness  efficiency  elitism  ellenchisa  emergence  emergent  emergentcurriculum  emergenttechnologies  emotionallabor  entry  equation  equations  errors  es2015  es6  europe  evolution  examples  exclusion  executive  experience  experiment  explainer  explanation  facebook  fads  failure  fame  famous-people  favorites  feature  features  feminism  ferriss  fiction  firefly  fit  flatten  focus  focused  forests  formal-methods  format  forum  foursquare  freddiedeboer  functional  fundamental  gardnercampbell  gender  general  generations  geography  geojson  geolocation  geometry  georgeveletsianos  geos  germany  gis  gisp-idea  git  github  globalisation  glsl  golfapp  gps  gpx  graph  graphics  graphprocessing  graphs  groups  hack  hacker  hagiography  haker  hamishmacleod  heroes  heuristic  hicks  highered  highereducation  hisotry  history  hn  hope  horizontal  howto  howwelearn  howweteach  howwework  humans  ibm  idealism  ifttt  illa  illustrator  image  imageprocessing  in  individualization  inequality  information  input  install  installer  instructions  interest  interface  investing  iosdev  itinéraire  jakeknapp  jargon  javascript  jennifertoth  jenross  joannemcneil  join  josephbrennan  journalism  js  judgement  julieannhorvath  justice  keystonepipeline  kml  lab  labeling  lagrangian  language  law  laws  lcproject  learning  left  lego  lesson  library  life  lifespans  line  linearity  linguistics  lme  load  location.based  location  log  longview  machine-learning  magnitude  main  management  manifesto  mapbox  mapping  maps  marcandreessen  market  martyrdom  martyrs  matthewshepard  meaningmaking  measure  measurement  mental  menu  merge  mesh  message  messaging  messiness  metrics  middle  mikecaulfield  minimal  minimalism  minimalismus  mit  model  modern  module  multi-product  multi  multiplicative  narration  nature  network-theory  network  networks  neural  news  nibble  nitty-gritty  nodads  node.js  noelgough  non-linear  nonfiction  nonlinear  normal  not-yetness  notifications  nuance  oauth2.0  obstructionism  occam  occupywallstreet  of  officer  online  open  openness  openstudioproject  opinion  opportunity  optimisation  optimism  organisation  organisations  organization  outline  overhead  oversimplification  ows  paper.js  paper  paradox  parameters  parsimony  paternalism  path  patience  patriarchy  pdf  pedagogy  people  perfectionism  personalization  peucker  phd  philosophy-of-science  physics  plane  planning  platform  pls  plt  pocket  polarization  policy  politics  polygon  polyline  polylines  poor  portfolio  possibility  postcolonialism  potential  power  predictability  problems  product/market  product  productivity  programming  project  protocol-metadata  punditry  purity  puzzles  python  q-n-a  quality  quantification  radicalism  radicalpedagogy  ramer  randybass  rather-interesting  reach  rebeccasolnit  rec-math  recipes  recursion  reduce  reduction  reference  regulation  regulators  reification  relationships  relativity  representation  resampling  responsibility  rewordify  rhizomaticlearning  rigobertamenchú  riverkarma  rivers  rob  rust  sandwiches  schools  scientific  security  server  sexism  shaders  shape  shapefile  shapefiles  sianbayne  sig  siliconvalley  simple  simplfy  simplicity  simplify  single-use  smoothing  social  socialliberalism  socialmobility  software  solid  spatial  speaking  speed  spiraling  stackex  standard  standards  stanford  start-up  state  stephenjimenez  stock  stocks  stop  stories  storylines  storytelling  strangeloop  strategy  structure  success  sueclegg  summary  survival  sustainability  svg  swarm  swipe  symmetry  systems-biology  systems  systemsthinking  tables  tcsnmy  teaching  technical-writing  technology  techtariat  testing  text  thebookofmatt  themolepeople  theoretical-biology  theoretical  theories  theory  thesis  three.js  tidy  tim  time  timelines  timeseries  to-write-about  to  tool  tools  topojson  topology  tracé  trail  transform  trendiness  triangles  triangulation  trivia  truth  tufte  tutorial  ui  unbundeling  uncertainty  understanding  unfinished  union  universities  university  unpredictability  unschooling  urban  user  ux  validation  value  vector  vertex  vertical  vertices  viable  video  visualization  visvalingarm  vizicities  volo-avolo  voroni  waller  wallstreetjournal  web  web_app  webdev  webgl  website  whitewashing  wiki  wising  words  work  workflow  writing  yelp 

Copy this bookmark: