Jon Aquino's Mental Garden

Engineering beautiful software jon aquino labs | personal blog

Thursday, January 31, 2008

Four Learning Styles

The book Teach What You Know has an interesting list of four learning styles:
  • Purpose-Driven learners need to know why something is important before they begin to learn about it. While you are teaching away, they are trying to figure out why the topic is important. Once they have an answer, they will give you their attention.
  • Just The Facts learners don't care so much about the big picture – what's important to them is the steps to do the job. They want you to skip the fluff and just tell them the main points.
  • Contextual learners seemingly ask you about everything except the topic at hand. "OK, let's get back on topic," you say gently. But that's how contextual learners learn: by seeing the connections to things on the periphery.
  • Out-of-the-Box learners are ornery devil's advocates. "What if we took a totally different approach and try this?" they ask, to your chagrin. "What would happen if that part failed?" Out-of-the-Box learners learn by pushing the limits of knowledge, by asking about hypothetical situations.
In the book, these styles are called: Why learners, What learners, How Does It Work learners, and What If learners.

Update: The book's author, Steve Trautman, sent me this helpful clarification:
Hi Jon

Thanks for posting about my book. I wanted to offer a slight correction. I’d say you’ve mixed your “contextual learner” with your “out of the box learner.” The hallmark of a contextual learner is needing to see the relationships between the components in a situation. For example, they like to see an org chart and job descriptions so they know how the people fit together. They like to see a site map to know how the grounds are laid out and they like to have information about external factors like competition or seasonal issues. They’re the ones who need to see the “big picture” in order to learn.

Otherwise your paraphrase is good.

The other note you might want to share is that since not everyone learns the same way, we need to be a little tolerant of the differences when we’re the teacher/mentor – adjusting for the learning style of our apprentices rather than making them adjust to us.

Hope this helps.

All the best

Steve Trautman

Wednesday, January 30, 2008

Subversion Time-Lapse View 1.6 Released

SVN Time-Lapse View 1.6 has been released. It has the following improvements:
  • Remember Password checkbox
  • Repository Browser dialog, added by Kim Tiedemann. The Browse button will open the file dialog or Repository Browser dialog as appropriate, depending on whether you specify a filename or URL.

Tuesday, January 22, 2008

Using text-to-speech to listen to online books

An even better way to learn from online books – if you are an audio learner like me – is to have them read to you. I just bought the high-quality AT&T Natural Voices for $35 (including a Windows program that lets you paste in text to read). And I've heard that Mac OSX Leopard has a pretty good built-in voice called Alex.

Here's an MP3 excerpt from Teach What You Know: A Practical Leader's Guide to Knowledge Transfer Using Peer Mentoring. The text is from the O'Reilly online book (shown in my previous post); it's being read aloud by AT&T Natural Voices.

The voice is easy to understand, and the information sinks into my brain easily. I like this way of learning.

Saturday, January 19, 2008

Firefox O'Reilly Online-Book Legiblizer

I find O'Reilly's online books to be hard to read. The font is too small, and the lines are too close together.

Here's a bookmarklet that increases the font size, increases the line spacing, and changes the font: O'Reilly Legiblize. Drag it to your Firefox toolbar, then click it while reading an O'Reilly online book.

Before legiblizing:


After legiblizing:


Much better.

(Font, font size, and line spacing can be adjusted to taste.)

Monday, January 14, 2008

Quote from Zinsser's "On Writing Well", Chapter 4: The Audience

"Another question will occur to you: 'Who am I writing for?' It's a fundamental question, and it has a fundamental answer: You are writing for yourself."

–William Zinsser

Wednesday, January 09, 2008

Programming: Method names: Statistics for the JDK

Here are some statistics on method names in Java 1.5 (method signatures, method names). By analyzing code of reasonably high quality like the JDK, we can derive rules of thumb for good, standardized function names. Useful for any language.

Number of methods in JDK 1.5:

Most common method names:
   1304 toString            
1219 run
663 equals
496 hashCode
440 actionPerformed
439 getName
383 contains
352 accept
320 remove
285 reset
280 get
278 getCharacterEncoding
277 paint
261 read
258 add
256 write
224 main
216 close
213 clone
204 getValue
199 getType
193 next
191 createUI
189 size
175 clear
168 getPreferredSize
167 print
159 init
152 newEncoder
152 newDecoder
150 propertyChange
145 update
140 historicalName
134 getMinimumSize
130 debug
120 translate
119 setValue
116 set
116 put
110 getEncoderIndex2
110 append
107 isEmpty
107 getInstance
104 initialize
103 getMaximumSize
102 getBorderInsets
102 error
102 dispose
101 writeObject

Most common 1-word prefixes:
  19984 get       
5449 set
3555 is
1604 to
1534 create
1441 visit
1180 add
776 remove
707 write
642 update
532 mouse
501 hash
500 check
477 new
471 has
468 print
449 action
412 read
374 install
357 parse
330 paint
302 uninstall
294 handle
260 put
258 init
252 process
223 next
223 find
220 end
217 load
217 build
202 can
198 make
195 do
171 window
166 type
161 start
159 compare
157 fire
152 property
141 impl
140 historical
140 clear
138 contains
137 jj_3
121 code
116 draw
109 show
109 focus

Most common 2-word prefixes:
  626 getAccessible
308 getCharacter
229 getPreferred
223 getDefault
190 getMinimum
183 getIcon
175 getClass
163 getSystem
160 getMaximum
130 getMax
129 getEncoder
128 getBorder
127 getFile
117 getLast
115 getDecoder
109 getNode
109 getInput
105 getNext
105 getCurrent
89 getType
89 getLocal
88 getColumn
88 getAttribute
87 getFont
82 getComponent
80 isValid
80 hasMore
78 getRow
75 visitType
75 getJvm
74 getElement
73 getData
72 getParent
65 getNum
62 getUser
62 getProperty
61 getMenu
60 getText
59 getStandard
57 visitConstant
57 getNative
57 getContext
57 getActual
57 addLayout
56 setDefault
56 getSelected
55 getError
54 getDocument
54 getContent

Most common 1-word method names:
 1219 run       
663 equals
383 contains
352 accept
320 remove
285 reset
280 get
277 paint
261 read
258 add
256 write
224 main
216 close
213 clone
193 next
189 size
175 clear
167 print
159 init
145 update
130 debug
120 translate
116 set
116 put
110 append
104 initialize
102 error
102 dispose
96 start
96 match
95 parse
94 eval
91 trace
83 create
83 compare
81 encode
72 finalize
71 flush
68 stop
68 insert
60 copy
57 check
55 render
54 matches
52 delete
50 process
50 name
47 skip
46 show

If you want to conduct your own analysis, view the JDK 1.5 method signatures and method names.

Thursday, January 03, 2008

Programming Book: The Little Schemer

I'm having fun going through a computer-programming book called The Little Schemer. It consists of dozens of exercises that you solve using little snippets of recursive code. It definitely has the feel of a game - Sudoku moreso than Call of Duty.

The key to enjoying this book is to not get hung up on the non-code questions. The book is written as a list of questions and answers, and it's frustrating to try to answer the non-code questions because they are often unguessable:

Q: Is that bad?
A: You must beware of shadows

Quickly read through the non-code questions and answers. But try to answer the code questions - that's the stuff that's fun and interesting.

Q: Write fun? with set? and firsts
A: (define fun? (lambda (rel) (set? (firsts rel))))

You'll find pencil and paper to be too slow for this stuff; a text editor is more convenient. But you need not bother running the code through a compiler - the answers are given on the same page.