Skip to content

Instantly share code, notes, and snippets.

@jeremy-w
jeremy-w / Remote - Office Not Required.md
Created December 10, 2013 20:28
Reading notes for Remote: Office Not Required by Fried & Hansson.

Remote: Office Not Required

Fried, Jason and D. H. Hansson. First edition, first printing. ISBN 978-0-8041-3750-8. Crown Business, New York, 2013.

Notes by Jeremy W. Sherman.

Read 2 chapters from the middle of the book for BNR Book Club meeting on 10 Dec 2013.

The book is a very quick read. Illustrations precede each section.

@jeremy-w
jeremy-w / AboutTalking.md
Created December 3, 2013 17:48
Some links useful when putting together a presentation.

Use 4 main colors or so. 90pt–300pt font, 150pt average. Use words as shapes; use very few words. Repeat visual patterns to structure: colors, symbols, badges. Recapitulate before moving on.

Record yourself; post your talk immediately; magnify your audience. React, don’t anticipate: ground your talks in reality. A detailed blog post can be a good way to gauge audience interest and your depth of knowledge of the topic. Be excited about your talk.

@jeremy-w
jeremy-w / Working Effectively with Legacy Code, Block 2.md
Created October 15, 2013 04:55
Notes on chapters 11, 15, 17, and 20 of Michael Feathers' *Working Effectively with Legacy Code.* Read as part of the BNR Book Club, October 2013.

Working Effectively with Legacy Code

Michael C. Feathers

Notes by Jeremy W. Sherman, 14 Oct 2013.

Chapter 11: I need to make a change. What methods should I test?

Use effect sketches to figure out where to target your characterization tests prior to making changes. Big fan-in means a big bang for your test-writing buck.

  • Prior to changing, write characterization tests to pin down existing behavior.
  • Characterization test: A test that characterizes the actual behavior of a piece of code (186).
@jeremy-w
jeremy-w / growl-telnet-session.txt
Created October 14, 2013 20:59
Posting a Growl notification via telnet.
% telnet localhost 23053
Trying ::1...
Connected to localhost.
Escape character is '^]'.
GNTP/1.0 REGISTER NONE
Application-Name: JWS
Notifications-Count: 1
Notification-Name: jws.text
Notification-Display-Name: JWS
@jeremy-w
jeremy-w / Robert Annett - Modern Legacy Systems.md
Created October 14, 2013 03:42
Notes taken while listening to Robert Annett's talk on Modern Legacy Systems at QCon London 2012.
@jeremy-w
jeremy-w / Working Effectively with Legacy Code.md
Last active April 16, 2024 19:58
Notes on Michael Feathers' *Working Effectively with Legacy Code*.

Working Effectively with Legacy Code

Notes by Jeremy W. Sherman, October 2013, based on:

Feathers, Michael. Working Effectively with Legacy Code. Sixth printing, July 2007.

Foreword:

  • Software systems degrade into a mess.
  • Requirements ALWAYS change.
  • Your goal as a software developer: Create designs that tolerate change.

Threading (jws, 2013-0909)

Reddit Threading

Currently, Cauldron indents with every reply.

So we might have a conversation like this:

A: Hey

- B: Hello

defmodule Test do
def test(a, b, c) do
case true do
a == b && b == c -> :equilateral
a == b || b == c -> :isosceles
_ -> :scalene
end
end
end
@jeremy-w
jeremy-w / merge-problem.exs
Created August 26, 2013 22:27
Demonstrates funky fn name mangling and my own confusion with Dict.merge/3 docs.
defmodule MergeProblem do
def count(string) do
words = String.split(string)
|> Enum.reject(&1 == "")
|> Enum.map(&String.downcase/1)
count = HashDict.new(words, fn key -> {key, 0} end)
count = HashDict.merge(count, words, fn _k, v1, _v2 -> v1 + 1 end)
count
end
@jeremy-w
jeremy-w / The A Word.html
Created August 12, 2013 01:42
Notes on a Bob Martin talk. Introduces Ivar Jakobson's BIE model and puts MVC in its place (GUIs only).
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="1187.39">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; text-indent: 18.0px; font: 14.0px Cochin}