Inversion of control - Wikipedia
Finding new abstractions is difficult. In general, it seems that an abstraction is usually discovered by generalizing from a number of concrete examples. An experienced designer can sometimes invent an abstract class from scratch, but only after having implemented concrete versions for several other projects.

This is probably unavoidable. Humans think better about concrete examples then about abstractions. We can think well about abstractions such as integers or parsers only because we have a lot of experience with them. However, new abstractions are very important. A designer should be very happy whenever a good abstraction is found, no matter how it was found.
programming  ioc 
8 days ago
Gödel, Turing and Cantor: The Math – The Vault of the Future
"He would develop his own personal library of functions, in fact almost a domain-specific language required to solve the problem he set out to solve."
godel  incompleteness 
july 2018
Simple, correct, fast: in that order | Drew DeVault’s Blog
You need to take problems apart, identify smaller problems within them and ruthlessly remove scope until you find the basic problem you can apply a basic solution to. The complex problem comes later, and it’ll be better served by the composition of simple solutions than with the application of a complex solution.
programming  software 
july 2018
Idioms of Dynamic Languages | Will Crichton
"the core impedance mismatch is that metaprogramming is fundamentally at odds with static typing"
programming  ruby  python  metaprogramming 
july 2018
Reasoned PHP
"This is extremely powerful. It is almost like doing TDD, but without writing the code."
relationalprogramming  programming  relation  declarative 
july 2018
What is an example of Godel's Incompleteness Theorem in practice? - Quora
"every so often someone will start to question why we need programmers, at least for finding bugs in a program (probably about 90% of "coding" is spent on trying to find bugs), so they try to build an automated bug checker to catch all mistakes that ever existed. But some mistakes will cause infinite loops, and it is impossible to catch all of these in any [Turing complete] programming language. It's nice to know that, as a software engineer, the future of your profession is guaranteed by a mathematical theorem."
godel  incompleteness  programming 
june 2018
« earlier      
activerecord ajax amd android apache api apiwrapper arch archlinux arel assets associations audio authentication aws backbone-relational backbone.js bash bdd bestpractices blog book books bootstrap bower browser bug bundler business caching capistrano capybara capybara-webkit cgroups class clojure code coffeescript commandline config configuration console css css3 cucumber database debugging dell dependencies deploy deployment design development devise display displayport docker dotfiles editor elixir email encoding encryption erlang events ffmpeg firefox font form forms framework garbage gem gems gist git github globalvoices gmail gnupg godel google gpg graphics hackernews haml hardware heroku hosting hstore html html5 http httparty i18n i3 i3bar i3wm icons imap incompleteness input install intel interview introduction ioc japan japanese jasmine javascript jquery json kernel keyboard language laptop less linode linux lisp lubuntu luks lvm mail map mapping maps mathematics mbsync memory metaprogramming microg mobile modal models module modules music mutt mvc mysql network nginx notmuch nvidia omniauth oop osx packaging partials passenger password performance permissions phone plugin postgres presentation programming python rack rails rbenv recycling reddit reference replication require.js requirejs rest routing rspec ruby rubygems s3 scheme screenshot search security sequel server setup shell sim sinatra software spree sprockets sql ssh ssl stackoverflow startup storage systemd talktalk tdd templates templating terminal testing thinkpad tips tmux tokyo tools translation travis travisci tutorial twitter ubuntu ui unix urxvt validation video views vim vps web webdesign weechat wifi workspaces writing xorg zsh 日本語

Copy this bookmark: