vonb + hacking   1009

Testing Your Sproutcore Views
All I need to verify is that the view properly changes it's own state and that it sends the correct message to it's collaborators.
hacking  SproutCore  unit-testing  unit-tests 
22 days ago by vonb
The last time I did a job search, one of the questions I started asking in inter... | Hacker News
The last time I did a job search, one of the questions I started asking in interviews was “what distinguishes an employee at your company who meets your expectations from someone who is truly outstanding”? If the response was phrased in terms of hours per week, I knew that was not the company for me.
hacking  interviews  interviewing  job-hunting 
24 days ago by vonb
#AltDevBlogADay » Functional Programming in C++
Actual functional languages are implemented in ways that make this not as disastrous as it sounds, but if you do this with typical C++ containers you will die.
hacking  fp  c++ 
5 weeks ago by vonb
How does a startup out-recruit Google? Palantir cofounder Stephen Cohen explains. - garry's posterous
the sense you get from college recruiters is that you get to write new code. Most great hackers love to do this. But that's not what you get from a software engineering position at the tech giants. You get to maintain old code. The job should really be called software technician.
philosophy  hacking  startups 
5 weeks ago by vonb
A Filter for Weeding Out Non-Technical Co-Founders - Move Fast & Break Things
"Have you seen the movie, The Social Network?"

[They likely say yes]

"Do you think the Winklevoss brothers were right or wrong?"
hacking  startups  business  entrepreneurship 
6 weeks ago by vonb
I agree with chromatic below; Java and C++ do not teach you OO. They teach you ... | Hacker News
A better way to program is with interfaces and composition via delegation, something that Java and C++ support but have no syntax for making it easy.
hacking  oop  java  c++ 
7 weeks ago by vonb
Dynamically Typed Languages
Dynamically typed languages such as Python and Ruby have experienced a rapid grown in popularity in recent times. However, there is much confusion as to what makes these languages interesting relative to statically typed lan- guages, and little knowledge of their rich history. In this chapter I explore the general topic of dynamically typed languages, how they differ from statically typed languages, their history, and their defining features.
hacking  programming-languages 
9 weeks ago by vonb
Why I'm Interested In Haskell - iRi
CLispScript is:

A mutable-state language
Mixes duck typing for convenience with optional manifest typing for efficiency, with the definition of "type" converging more or less on Java/C# types
Believes "Everything is an object", with composition favored by convention over inheritance, but inheritance still technically supported
Believes "Everything is a reference"
Runs on top of a VM with a JIT compiler that has an internal scheduler for microthreads with minimal-by-convention shared state
Uses Algol-filtered-through-C++-filtered-through-"Ack! C++!" syntax
Offers the powerful approaches for manipulating collections as a whole borrowed from early functional languages like Lisp (map, closures, various syntax sugars like list comprehensions), suitably modified to work on more than just lists
Easily interfaced with C libraries due to significant low-level philosophical compatibility (even if CLispScript is much more advanced)
Does not have full-on Lisp macros, which are just a bit too powerful, but builds many of the classic Lisp macro use cases into the language, including powerful metaprogramming
Embraces a philosophy of empowering the programmer to a significant degree and not putting more than minimal constraints on them
hacking  haskell  programming-languages 
february 2012 by vonb
Every time I read one of these (Github, Etsy, ...), I feel a bit guilty that our... | Hacker News
Assuming your main product is on the web, you really only need a few things to do this right:
- Automated tests that run on push to any branch.
- Rolling deploys (no downtime) from any branch.
- Exception reporting system (Exceptional, Hoptoad, homegrown, whatever).
- Twitter search feed.
Push to a topic branch, wait for the tests to come in green, deploy from topic branch, watch exception notification and twitter. If everything looks okay after 10 minutes, push to master. If exceptions or twitter blows up, redeploy master.
You should be able to setup the whole system in about the same time as it takes to develop a majorish product feature.
hacking  deployment  ci 
february 2012 by vonb
When should I use the Visitor Design Pattern? - Stack Overflow
Visitor lets you define a new operation without changing the classes of the elements on which it operates.

Now, let's think of a simple class hierarchy. I have classes 1, 2, 3 and 4 and methods A, B, C and D. Lay them out like in a spreadsheet: the classes are lines and the methods are columns.

Now, Object Oriented design presumes you are more likely to grow new classes than new methods, so adding more lines, so to speak, is easier. You just add a new class, specify what's different in that class, and inherits the rest.

Sometimes, though, the classes are relatively static, but you need to add more methods frequently -- adding columns. The standard way in an OO design would be to add such methods to all classes, which can be costly. The Visitor pattern makes this easy.
hacking  oop  design-patterns  visitor 
february 2012 by vonb
Computer Programming: What is data driven programming? - Quora
a style of programming in which specialization is done through data structures and not boilerplate code.
hacking  data-driven-programming 
february 2012 by vonb
src/redis.c at unstable from antirez/redis - GitHub
How the commands are defined in the globals section is a good example of data-driven programming.
hacking  data-driven-programming 
february 2012 by vonb
REST is a scam.For most people, REST is simply the negation of SOAP. They shou... | Hacker News
the #1 delusion in distributed systems is that you can compose distributed operations the same way you compose function calls in a normal program.

The issue is that the latency involved in a distributed call is about 100 million times more than that involve in a function call, and the failure rate is more than 10 trillion times more. All of the great distributed algorithms such as Jacobsen's heuristic for TCP and Bittorrent have holistic properties possesed by the system as a whole that are responsible for their success.

Security is another problem with REST. Security rules are usually about state transitions, not about states. To ensure that security (and integrity) constraints are met, REST applications need to contain error prone code that compares the before and after states to check if the transition is legal. This is in contrast to POX/RPC applications in which it is straightforward to analyse the security impacts of individual RPC calls.
hacking  REST  distributed-systems 
february 2012 by vonb
« earlier      

related tags

*  *unread  0mq  2d  abbot  acl  ActiveMessaging  advertising  agile  ai  aio  ajax  algorithms  amazon  android  apache  apache-commons-io  api  api-design  arc  architecture  asana  asynchronous-io  asyncronous  audio  authentication  automation  AutoResize  avi  awk  aws  backbone.js  backup  bash  battlecode  bayes  big-data  bigtable  bittorrent  blog  blogging  book  books  browsers  bryant  bugs  build  business  button  c  c++  cake  cakephp  career  carmack  cassandra  cell  cellphones  certs  cgi  ci  cl  class-loader  classloader  clojure  closures  cloudant  code  code-beauty  code-review  code-reviews  code-smells  codereview  codereviews  coding  coding-standards  codingstandards  coding_standards  coffeescript  cohesion  comet  common-lisp  communication  compilers  computers  computing  concurrencty  concurrency  continuations  copyright  couchdb  coupling  cpan  cracking  cs  css  ctags  curl  cygwin  daemon  data  data-driven-programming  data-mining  data-store  data-structures  databas  database  databases  datamining  db  debugging  dependencies  dependency-injection  dependency-management  deployment  design  design-patterns  designpatterns  development  dhtml  distributed-systems  dns  docs  documentation  domain-names  domains  driven  drm  DRY  dynamics  dynamo  ebb  eclipse  ecmascript  ecosystem  editors  education  elisp  emacs  email  encryption  entities  entrepreneurship  epoll  erlang  errors  essay  estimation  etags  ethnography  event  event-driven-programming  events  exceptions  faq  files  filesystem  firewalls  flash  fonts  foreach  fp  frameworks  friend-feed  FSM  fun  functional-programming  gae  game-design  game-programming  gamedev  games  gaming  gcc  gearman  gemstone  gevent  git  go  google  gpl  graphics  greasemonkey  guava  gui  hacking  hacks  hadoop  hardware  hash  hashtables  haskell  haxe  heroku  hex  higherarchy  hiring  history  hn  hosting  howto  html  html5  http  httpunit  humor  i18n  iframe  incanter  infrastructure  inner-classes  interview  interviewing  interviews  io  iphone  ipod  iterable  jabber  jars  java  javadocs  javascript  jax-rs  jekyll  jersey  jettison  job-hunting  job-interviews  jobqueue  jobs  js  js2-mode  json  jsp  junit  jvm  jwz  knuth  languages  laptop  layout  leaderboards  lectures  leiningen  libebb  libs  license  licensing  lighttpd  linkedin  linux  liskov  lisp  ListView  lsp  lua  lucene  luna  mac  machine-learning  macros  mail  maintainability  mamamo  management  mapreduce  marketing  math  mathematics  maven  memcache  memcached  memcachedb  memoization  memory  memory-management  merb  messaging  meteor  michael_abrash  mindblown  mindfulness  mit  ML  mobile  mockito  mocks  module  modules  mod_rewrite  monads  mongrel  multimethods  multithreading  mvc  mvn  mysql  names  namespace  namespaces  naming  nanny  nes  networking  news  nintendo  nio  node  nodejs  non-blocking-io  object-prevalence  one-liners  online-dating  oo  oop  open-source  ops  optimization  osx  package-management  packages  packaging  parc  parsing  passwords  patterns  performance  perl  pg  philosophy  phone  php  physics  pig  politics  postgres  postgresql  postmortem  presentation  probability  process  programming  programming-languages  prototype  prototypes  psychology  puzzles  python  queues  QuickCheck  r  rails  ranking  readability  reddit  redis  refactoring  reference  regexp  replication  research  resize  rest  review  review-board  reviewboard  reviews  riak  rigid-body  rmi  roles  ruby  rubyonrails  runy  salting  SBCL  scala  scalability  scalaris  scaling  scheduling  scheme  science  scm  screen-scraping  scriptaculous  scripting  scrum  search  security  selling  seo  server  servers  servlets  sessions  ShootingStar  sicp  simulation  skills  slate  smalltalk  social-networking  software  software-engineering  sorting  source-control  specs  sproutcore  sql  sqlserver  ssl  standards  starcraft  startup  startups  stat  statecharts  static-code-analysis  statistics  stm  storm  strace  style  subversion  sudoku  syntax-highlighting  sysadmin  tables  tart  TCP  tdd  technology  testing  tests  TheSchwartz  threading  threads  threding  tokyocbinent  tools  traits  transactions  trees  tutorial  twilio  twitter  typography  ui  unicode  unicorn  unit  unit-testing  unit-tests  unity3d  unix  unread  urls  usability  utf-8  v8  variables  vcs  version-control  versioning  vi  video  video-games  visitor  visualization  vm  vpn  web  webapps  webserver  webservers  wii  windows  work  work-queue  workqueue  writing  xmlhttprequest  xmpp 

Copy this bookmark:



description:


tags: