Testing Your Sproutcore Views
22 days ago by vonb
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
24 days ago by vonb
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
If I were solving this problem in C# I'd probably lean towards defining specific... | Hacker News
25 days ago by vonb
I think this is the composition-over-inheritance approach
hacking
oop
25 days ago by vonb
#AltDevBlogADay » Functional Programming in C++
5 weeks ago by vonb
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
5 weeks ago by vonb
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
6 weeks ago by vonb
"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
[They likely say yes]
"Do you think the Winklevoss brothers were right or wrong?"
6 weeks ago by vonb
I agree with chromatic below; Java and C++ do not teach you OO. They teach you ... | Hacker News
7 weeks ago by vonb
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
9 weeks ago by vonb
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
february 2012 by vonb
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
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
february 2012 by vonb
Every time I read one of these (Github, Etsy, ...), I feel a bit guilty that our... | Hacker News
february 2012 by vonb
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
- 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.
february 2012 by vonb
When should I use the Visitor Design Pattern? - Stack Overflow
february 2012 by vonb
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
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.
february 2012 by vonb
Computer Programming: What is data driven programming? - Quora
february 2012 by vonb
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
february 2012 by vonb
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
february 2012 by vonb
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
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.
february 2012 by vonb
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: