rtlechow + programming   758

tinkerpop/gremlin
"Gremlin is a domain specific language for traversing property graphs. Gremlin makes use of Pipes to perform complex graph traversals. This language has application in the areas of graph query, analysis, and manipulation. Connectors, provided by Blueprints, exist for the following graph management systems:"
api  database  graph  java  programming 
10 days ago by rtlechow
m.e.driscoll: data utopian • the secret guild of silicon valley
“You have too many hipsters, you won’t scale like that. Hire some fat guys who know C++.” 
programming  software  craftspersonship  craftsmanship  c 
4 weeks ago by rtlechow
Why is Estimating so Hard? | 8th Light
"Answer: Because when we do it manually, we don’t follow a procedure. What we do instead it continuously evaluate the output and adjust it until it’s right. A procedure is blind. It doesn’t look at the output to see if it’s right. If the procedure is wrong, the output will be wrong. Period. But we, humans, are goal seekers. The goal is to split the lines up to no greater than 13 characters, and so we evaluate every line. We look it over and adjust it until it meets the goal. And we can do that in 5 minutes.

It turns out that we don’t know the procedure. We haven’t got any clue to just how difficult the procedure is. We aren’t computers. We don’t follow procedures. And so comparing the complexity of the manual task, to the complexity of the procedure is invalid.

This is one of the reasons that estimates are so hard, and why we get them wrong so often. We look at a task that seems easy and estimate it on that basis, only to find that writing down the procedure is actually quite intricate. We blow the estimate because we estimate the wrong thing."
estimation  software  programming 
6 weeks ago by rtlechow
Michael Feathers: Tell Above, and Ask Below - Hybridizing OO and Functional Design
"Object-orientation is better for the higher levels of a system, and functional programming is better for the lower levels."
functional  programming  oop  software 
7 weeks ago by rtlechow
Turning Your Code Inside Out
"This method of turning your code inside out is the secret to solving what appear to be hopelessly state-oriented problems in a purely functional style. Push the statefulness to a higher level and let the caller worry about it. Keep doing that as much as you can, and you'll end up with the bulk of the code being purely functional. "
software  programming  oop  fp 
7 weeks ago by rtlechow
Programming With Nothing
"In fact, you know what? I love Ruby so much that I want to ruin it. Let’s see how much it can do if we remove all of its features. Naturally that means no gems, no standard library, no modules, methods, classes or objects. But this is love, so let’s go all the way: no control flow, no assignment, no arrays, strings, numbers or booleans."
code  functional  lambda  programming  ruby 
9 weeks ago by rtlechow
Martin Fowler Explains Txtzyme | DorkbotPDX
"In their new book, Domain Specific Languages, Martin Fowler and Rebecca Parsons demystify the creation of small languages by decomposing the practice into four-dozen carefully-named essays (patterns) offering solutions to every problem one might encounter. What would they call Txtzyme? They'd call it Delimiter-Directed Translation with Embedded Interpretation."
software  programming  dsl  languages  patterns 
11 weeks ago by rtlechow
Talk Like A Duck : How Arlo got injected into Ruby
"Came to talk about the draft. They got a building down New York City, it's called Whitehall Street, where you walk in, you get injected, inspected, detected, infected, neglected and selected.

So Dan picked the collection enumeration method selectors in Smalltalk from "Alice's Restaurant", no doubt. I suspect that that initial argument of inject:into: came about because he wanted to use that pattern and map and reduce didn't fit. Actually I'm not sure that map and reduce were commonly used terms at that time.

So if you don't like inject in Ruby, don't blame Matz, blame Dan and Arlo!"
programming  software  smalltalk  history  humour  music  ruby 
february 2012 by rtlechow
The Julia Language
"Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. The library, mostly written in Julia itself, also integrates mature, best-of-breed C and Fortran libraries for linear algebra, random number generation, FFTs, and string processing. More libraries continue to be added over time. Julia programs are organized around defining functions, and overloading them for different combinations of argument types (which can also be user-defined)."
computing  julia  language  mathematics  programming 
february 2012 by rtlechow
Service Oriented Agony | 8th Light
So what’s the solution? First of all, I question whether the system needed to be partitioned into services. Services are expensive and complicated, you should only create them if you absolutely need to. It’s always easier to live in a single process. Remember Martin Fowler’s first law of distributed objects: Don’t distribute your objects.
srp  solid  ccp  systems  software  programming  services  architecture 
february 2012 by rtlechow
Home Page | Visi.io
"Visi.io is a language, runtime, and development environment written in Haskell (and a little Objective-C) that runs on the iPad and in the Cloud. Visi.io and Visi.Pro will make writing beautiful, interactive iPad facing, Cloud powered apps super simple."
haskell  excel  web  cloud  ios  programming  lift 
january 2012 by rtlechow
Lisp as an Alternative to Java
"It turns out my hopes were answered. First, Prechelt published another article that covers Tcl, Python, Perl, and Rexx. Also, Ron Garret (nee Erann Gat) did a follow-up study in which he asked programmers to write Prechelt's test program in Lisp. His results show that the resulting Lisp programs ran faster on average than C, C++ or Java programs (although the fastest Lisp program was not as fast as the fastest C program), and that Lisp programs took less development time than the other languages."
lisp  java  norvig  programming 
january 2012 by rtlechow
Goodbye, shitty Car extends Vehicle object-orientation tutorial
"In good OO programming, we don’t make class hierarchies in order to satisfy our inner Linnaeus. We make class hierarchies in order to simplify the code by allowing different
parts of it to be changed independently of each other, and to eliminate duplication (which comes to the same thing). Without any context as to what the code needs to accomplish, you can’t make a judgment about whether a particular design decision is good or bad… A simple interactive graphical environment is a better alternative."
code  cs  oop  programming 
january 2012 by rtlechow
TodoMVC
The fact that this exists says a lot.
framework  javascript  mvc  programming  tutorial 
january 2012 by rtlechow
6.S184 - Zombies drink caffeinated 6.001
"Zombie-like, 6.001 rises from the dead to threaten students again. Unlike a zombie, though, it's moving quite a bit faster than it did the first time. Like the original, don't walk into the class expecting that it will teach you Scheme; instead, it attempts to teach thought patterns for computer science, and the structure and interpretation of computer programs. Three projects will be assigned and graded. Prereq: some programming experience; high confusion threshold."
scheme  sicp  history  programming  cs 
january 2012 by rtlechow
Bill Joy's greatest gift to man – the vi editor [printer-friendly] • The Register
"It was a world that is now extinct. People don't know that vi was written for a world that doesn't exist anymore - unless you decide to get a satellite phone and use it to connect to the Net at 2400 baud, in which case you'll realize that the Net is not usable at 2400 baud. It used to be perfectly usable at 1200 baud. But these days you can't use the Web at 2400 baud because the ads are 24KB."
history  programming  vim  vi 
january 2012 by rtlechow
Schizophrenia (object-oriented programming) - Wikipedia, the free encyclopedia
"Object schizophrenia or self schizophrenia is a complication arising from delegation and related techniques in object-oriented programming.
An object can be defined as a computing concept combining data and behavior, and having an identity. Objects are typically built on class systems. A base class provides the fundamental or default behavior of an object, and acts as a template for creating objects. A derived class can be used to override behaviors of a base class, and can be used as a template for objects whose behaviors refine those of the base class. As an alternative to inheritance — which is a relatively static concept — some programming languages use delegation, which is semantically equivalent.[1][dubious – discuss] Instead of using one class to refine another, delegation allows one object to override the behavior of another. The original object a (analogous to the base class behaviors) can delegate some of its methods to another object b (analogous to the derived class behaviors). If a delegates its foo method to the bar method of b, then any invocation of foo on a will cause b's bar method to execute. However, bar executes in the context of the a object — for example, its self identifier refers to a rather than to b.
When delegation is used, the question arises: What is the identity of the object a? The identity is split. There are two potentially meaningful self values when executing a method of a. This problem does not arise in most class-based languages, because an object has a single physical identity. With delegation, the object has two identities."
oop  programming  software  smell  antipattern 
january 2012 by rtlechow
Refactor This: The Gilded Rose Kata « I Am Not Myself
"Hi and welcome to team Gilded Rose. As you know, we are a small inn with a prime location in a prominent city ran by a friendly innkeeper named Allison. We also buy and sell only the finest goods. Unfortunately, our goods are constantly degrading in quality as they approach their sell by date. We have a system in place that updates our inventory for us. It was developed by a no-nonsense type named Leeroy, who has moved on to new adventures. Your task is to add the new feature to our system so that we can begin selling a new category of items. First an introduction to our system:

All items have a SellIn value which denotes the number of days we have to sell the item
All items have a Quality value which denotes how valuable the item is
At the end of each day our system lowers both values for every item
Pretty simple, right? Well this is where it gets interesting:

Once the sell by date has passed, Quality degrades twice as fast
The Quality of an item is never negative
“Aged Brie” actually increases in Quality the older it gets
The Quality of an item is never more than 50
“Sulfuras”, being a legendary item, never has to be sold or decreases in Quality
“Backstage passes”, like aged brie, increases in Quality as it’s SellIn value approaches; Quality increases by 2 when there are 10 days or less and by 3 when there are 5 days or less but Quality drops to 0 after the concert
We have recently signed a supplier of conjured items. This requires an update to our system:

“Conjured” items degrade in Quality twice as fast as normal items
Feel free to make any changes to the UpdateQuality method and add any new code as long as everything still works correctly. However, do not alter the Item class or Items property as those belong to the goblin in the corner who will insta-rage and one-shot you as he doesn’t believe in shared code ownership (you can make the UpdateQuality method and Items property static if you like, we’ll cover for you)."
kata  programming  software 
december 2011 by rtlechow
JuliaLang/julia - GitHub
"Julia is a high-level, high-performance dynamic language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. The library, mostly written in Julia itself, also integrates mature, best-of-breed C and Fortran libraries for linear algebra, random number generation, FFTs, and string processing. More libraries continue to be added over time. Julia programs are organized around defining functions, and overloading them for different combinations of argument types (which can also be user-defined). For a more in-depth discussion of the rationale and advantages of Julia over other systems, see the following highlights or read the introduction in the manual."
programming  language  llvm  julia  fft  fortran  c 
december 2011 by rtlechow
« earlier      

related tags

3d  8bit  64bit  academic  accessibility  activemerchant  activerecord  acts_as_state_machine  adages  addon  admin  advice  agency  agentive  aggregator  agile  ai  aiclass  ajax  algebra  algorithm  algorithms  aliasing  alistapart  alterego  amazon  amqp  amusements  analysis  analytics  animation  anti-pattern  anti-patterns  antiobjects  antipattern  antipatterns  apache  api  app  apple  appliance  application  applications  apply  apps  appstore  architecture  archive  arduino  art  article  articles  artificial  artificialintelligence  artisanal  arxta  ascii  asm  assembler  assembly  astar  async  attr_protected  audio  authentication  authorize.net  automation  automaton  avr  awesome  aws  backup  bar  barduino  bash  basic  battleship  bdd  bddcast  beautifier  beautify  beauty  benchmark  best  best-practices  bestpractice  bestpractices  bgp  bibliography  bigtable  billing  binding  biology  block  blocks  blog  blogs  bloom  book  books  boolean  bot  bots  brain  brainfuck  branch  branching  bray  broderbund  browser  browsers  buffer  bug  bugtracking  build  builder  business  c  c#  c++  c2  caching  calendar  canada  canvas  cappuccino  cardgames  cards  career  caret  cargo  carpentry  ccg  ccp  cells  cellular  challenge  chance  chart  charting  charts  cheat  cheatsheet  check  checklist  chrome  ci  cisco  class  classification  clearance  cli  client  clojure  closure  closures  clothing  cloud  cloud-computing  cloudkit  cluster  cobol  cocoa  code  codejam  codereview  codesmell  coding  collaboration  color  colors  colorscheme  comics  commandline  commands  comment  commentary  comments  community  company  compare  comparison  competency  competition  compiler  compilers  complexity  composition  compression  compsci  computation  computer  computers  computerscience  computervision  computing  concurrency  conditional  conference  config  configuration  console  consulting  contest  continuousintegration  controller  controllers  conventions  conversion  cool  copywriting  core  coredump  couchdb  count  course  craft  craftsmanship  craftspersonship  creative  creativecommons  crockford  crop  crud  crypto  cryptography  cs  css  cucumber  cult  culture  daily  data  database  databases  datamining  datastructures  date  davethomas  db  dci  ddd  debian  debug  debugger  debugging  delete  delta  demo  demos  demoscene  deployment  design  designpatterns  dev  developer  developers  development  develpment  devops  dhtml  di  diablo  diagram  diff  directory  discussion  distance  distributed  distributedcomputing  distribution  diy  dna  dns  dnsmasq  docs  doctype  documentation  dom  domain  doom  dotfiles  download  dragonbook  drinks  drools  drx  dsl  dsp  dvcs  dwarfs  dynamics  dynamo  eastereggs  ebook  ebooks  ecommerce  economics  edge  editing  editor  editorial  editors  education  efficiency  electronics  email  ember  encoding  encryption  engine  engineering  engines  english  entertainment  erlang  err  errors  esoteric  essays  estimation  etags  events  evidence  evolution  example  examples  excel  exception  exceptions  execution  experiment  experimental  experiments  expressions  extensions  external  fab  face  facets  failure  fallacies  faq  features  fedex  feminism  ffi  fft  files  filesystem  filter  finance  firefox  flash  fluid  folksonomy  font  fonts  foo  form  formatting  forms  fortran  forum  foss  fp  fractal  framework  frameworks  free  freehackersunion  freelance  freeware  fscript  fulltext  fun  function  functional  functionalprogramming  funny  future  futures  fuzzing  game  gamedev  gameoflife  games  gamification  gaming  gateway  geek  gem  gems  generation  generator  genetic  geo  geocaching  geocoding  geometry  geospatial  gestalt  gga4r  gif  gis  git  github  gnu  go  google  googleapps  googlechrome  googlemaps  gotchas  gps  grammar  graph  graphics  graphs  graphviz  greenspun  grep  groups  gtd  gui  guide  guidelines  guides  guru  hack  hacker  hackers  hacking  hacks  hardware  hash  hashchange  hashing  haskell  haversine  hg  hidden  hiring  history  hook  hookhub  hosting  hosts  howto  hpricot  html  html5  http  humor  humour  icon  icons  ide  idea  identica  identity  idioms  image  imperative  indie  infoq  information  infosec  inheritance  inspector  inspiration  intelligence  interactive  interesting  interface  internals  internet  interview  interviewing  interviews  introduction  invention  ios  ip  ipad  iphone  ipod  iptv  ipv6  irb  iso  issuetracker  iteration  j  jam  japan  java  javascript  job  jobs  joel  jquery  jruby  js  js1k  json  jspec  jsviz  julia  kata  kentbeck  keyboard  keyvalue  kids  kit  klingon  koans  lambda  language  languages  latency  latex  latitude  law  layout  lcthw  ldap  learning  lecture  lectures  lego  length  less  let  levenshtein  lexer  lexical  libraries  library  life  lifehacks  lift  lightweight  linguistics  lint  linux  lisp  list  literacy  live  lively  llvm  loading  locomotive  log  logfile  logic  logs  lol  lolcode  losethos  mac  machine  machinelearning  macos  macosx  macruby  magazine  management  mandelbrot  manifesto  manual  map  mapping  mapreduce  maps  mario  marketing  markov  markup  martinfowler  math  mathematics  maths  matlab  matrix  matz  maybe  maze  mechanics  media  meeting  meme  merb  merchant  mercurial  merge  messaging  meta  metaclass  metaclasses  metaprogramming  method  methodology  microblog  microcontroller  middleware  mindstorms  mining  mistakes  mit  mobile  model  models  modularity  mod_rails  monad  monads  mondas  money  mongodb  monitoring  movement  movie  mozilla  mri  msys  mtg  music  mvc  mysql  named_scope  narrative  nature  navigation  nes  network  networking  networks  nil  node.js  nodejs  Normalization  norvig  nosql  nothing  nouns  nova  null  numbers  oauth  objc  object  objective-c  objective-j  objectivec  objectivej  objectmodel  objectoriented  ocaml  offgrid  offline  oneliners  onion  online  oo  ooc  oop  open  opengl  openoffice  opensource  operatingsystem  operators  opinion  optimization  oreilly  organization  orm  os  oss  ostatus  osx  otug  outsource  outsourcing  pagerank  paginate  paging  pairprogramming  paper  papers  parallax  parser  parsers  parsing  passenger  password  passwords  patch  pattern  patterns  payment  paypal  pbs  pdf  peg  pentest  people  performance  perl  persistence  personal  personality  pharo  philosophy  phone  photoshop  php  physical  physics  piet  pki  planning  platypus  plugin  plugins  pluralize  podcasts  poker  politics  polyglot  polymorphism  polytypism  pomodoro  portal  porter  portfolio  pow  practices  pragdave  prediction  presentation  presentations  presenter  pricing  probability  proc  process  processing  productivity  programmer  programmers  programming  programmingmotherfucker  project  projectmanagement  projects  promises  protocol  prototype  prototype.js  prototyping  proxy  psd  psd2html  psychology  puzzle  python  quagga  quake  quality  questions  queues  quickref  quiz  quotations  quote  quotes  rabbitmq  rack  rails  random  randomness  ranking  rant  read  reading  realtime  recruiting  recruitment  recurring  red  reddit  redshift  refactoring  reference  regex  regexp  regression  remix  repl  replacement  requirements  research  resource  resources  rest  restful  retro  reverseproxy  review  rewrite  rfc  ria  rightjs  robotics  ror  rpg  rspec  rtex  rubikscube  ruby  ruby1.9  rubycocoa  rubyonrails  rule  rule-engine  ruleengine  rules  rulesengine  rush  s3  saas  salaries  sales  salesman  sandbox  scala  scalability  scaling  scanner  schema  scheme  science  scm  scope  scraping  scratch  screen  screencast  screencasts  screenreader  screenscraping  script  scriptaculous  scripting  scripts  scrum  sdl  search  seaside  secondlife  secret  security  seibel  selenium  self  server  service  services  session  sexism  sexps  sharing  shebang  shell  ship  shipping  shoes  shopping  shoulda  sicp  sifr  signal  simplicity  simulation  simulator  sinatra  singleton  size  skiplist  slang  slideshow  smalltalk  smart  smarthouse  smell  snippets  soa  social  socialnetworking  software  softwareengineering  solid  sort  sound  source  sparkline  sparklines  spatial  speech  spellcheck  spelling  spider  spolsky  spreadsheet  spritely  sprites  sql  sqlite  squeak  srp  ssh  ssl  stable  stackoverflow  stacks  standard  standards  stanford  starcraft  startup  startups  state  statemachine  state_machine  statistics  stats  stemmer  stemming  stock  store  story  strategy  string  strings  struct  structures  study  style  styleguide  subscription  substitutability  subtext  subversion  sudoku  sun  superators  supercollider  svn  swfupload  swing  symbol  symbols  sync  syntax  sysadmin  system  systems  table  tagging  task  tcg  tdd  teaching  technique  technology  television  template  templates  terminal  terminator  test  testing  tex  text  textbook  textbooks  texteditor  themes  theory  thoughtbot  thoughtworks  threading  threads  thx  time  timemanagement  timer  tinyhouse  tips  todo  tokenizer  tool  toolbox  toolkits  tools  toread  toronto  towatch  to_proc  tracker  tracking  training  translation  tree  trends  tricks  tryruby  trysite  tryvim  tshirts  tty  turk  tutorial  tutorials  tv  twisted  twitter  type  typeface  types  typography  ubiquity  uct  ui  UML  unicode  unit  unittest  unittesting  unix  unobtrusive  uoft  upload  ups  usability  usage  usb  utf-8  utf8  utilities  utility  ux  validation  validator  vcs  vector  verb  verbs  versioncontrol  vi  video  videogames  videos  vim  vision  visualization  void  w3c  warcraft  web  web2.0  webapp  webapps  webcast  webdesign  webdev  webgl  webhook  webhooks  webos  webserver  webservice  webservices  website  websocket  websockets  webstandards  whitespace  why  whytheluckystiff  wiki  wikipedia  win32  windows  words  work  workflow  working  writing  wtf  x509  xaml  xdebug  xhtml  xml  xmpp  xp  yahoo  yui  zawinski  zebra  zed  zedshaw  zen  zine 

Copy this bookmark:



description:


tags: