Skip to content

Instantly share code, notes, and snippets.

View dpritchett's full-sized avatar
🦅
microservice party

Daniel Pritchett ⚡ dpritchett

🦅
microservice party
View GitHub Profile
@dpritchett
dpritchett / naur.md
Last active January 10, 2023 18:58
Programming as Theory Building

Programming as Theory Building

Peter Naur, 1985

(copied from http://alistair.cockburn.us/ASD+book+extract%3A+%22Naur,+Ehn,+Musashi%22)

Introduction

The present discussion is a contribution to the understanding of what programming is. It suggests that programming properly should be regarded as an activity by which the programmers form or achieve a certain kind of insight, a theory, of the matters at hand. This suggestion is in contrast to what appears to be a more common notion, that programming should be regarded as a production of a program and certain other texts.

irb(main):002:0> User.all
User Load (1.0ms) SELECT `users`.* FROM `users`
=> []
irb(main):003:0> Store.departments
Store Load (0.0ms) SELECT `stores`.* FROM `stores` WHERE `stores`.`is_store` = 0
=> []
irb(main):007:0> User.includes(:store).merge(Store.departments)
User Load (1.0ms) SELECT `users`.`id` AS t0_r0, `users`.`email` AS t0_r1,
`users`.`encrypted_password` AS t0_r2, `users`.`password_salt` AS t0_r3,
`users`.`remember_token` AS t0_r4, `users`.`created_at` AS t0_r5,
@dpritchett
dpritchett / 0) order-contents.diff
Last active September 21, 2015 14:42
order contents diff between spree 2-3-stable and 2-4-stable
daniel@hubertus-bigend ~/s/order_contents> diff ./*
9,16c9,11
< def add(variant, quantity = 1, currency = nil, shipment = nil)
< line_item = add_to_line_item(variant, quantity, currency, shipment)
< reload_totals
< shipment.present? ? shipment.update_amounts : order.ensure_updated_shipments
< PromotionHandler::Cart.new(order, line_item).activate
< ItemAdjustments.new(line_item).update
< reload_totals
< line_item
Loading development environment (Rails 4.1.9)
Spree::Taxon.find(4966).self_and_descendants.to_sql #=> "SELECT `spree_taxons`.* FROM `spree_taxons` WHERE (`spree_taxons`.`lft` >= 447) AND (`spree_taxons`.`lft` < 500) ORDER BY `spree_taxons`.`lft`"
Loading development environment (Rails 4.2.0)
>> Spree::Taxon.roots[0].self_and_descendants.to_sql #=> "SELECT `spree_taxons`.* FROM `spree_taxons` WHERE (`spree_taxons`.`lft` < 500)"
USE musiclender;
-- CREATE TABLE products_50k;
SELECT * FROM products_400k LIMIT 10000 INTO products_50k;
INSERT INTO products_50k SELECT * FROM products_400k LIMIT 10000 OFFSET 50000;
INSERT INTO products_50k SELECT * FROM products_400k LIMIT 10000 OFFSET 100000;
INSERT INTO products_50k SELECT * FROM products_400k LIMIT 10000 OFFSET 200000;
INSERT INTO products_50k SELECT * FROM products_400k LIMIT 10000 OFFSET 300000;
@dpritchett
dpritchett / Dockerfile
Created June 23, 2015 02:44
bundle cached Dockerfile
FROM rails:4.2.2
MAINTAINER dpritchett@railsdog.com
# first pass of gem caching
RUN mkdir /webapp
ADD ./data/docker-gemcache/* /webapp/
WORKDIR /webapp
RUN bundle install -j4
#!/usr/bin/env sh
# take the current folder name as the app name
APPNAME=${PWD##*/}
# start a new persistent postgres container named appname_pg that listens on local port 5432
docker run -p 5432:5432 --name ${APPNAME}_pg postgres
@dpritchett
dpritchett / 1) nlog.rb
Last active August 29, 2015 14:16
Logging 101
require "logger"
# build a persistent logger that we can send stuff to at will
def logger
@_logger ||= Logger.new("nicole.log")
end
# sample command that would be hard to figure out if it wasn't logged
# note: this is going to die
def probably_broken_command
Rails.application.routes.draw do
get '*path', :to => redirect('http://zombo.com')
# all of your actual routes are still in place below
end
> git push -f heroku master
Fetching repository, done.
Counting objects: 5433, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4627/4627), done.
Writing objects: 100% (5433/5433), 2.68 MiB | 231.00 KiB/s, done.
Total 5433 (delta 1711), reused 1773 (delta 501)
-----> Node.js app detected