Friday, December 1, 2017

pretty titles (and cats) in your terminal!

A little-known feature of iTerm2 is that you can insert images directly into your (previously text only) terminal!  This can be useful (render calculation as plot directly in terminal) or we can use it for silly purposes.

Cats. Who on the interwebs doesn't love cats?


brew install imagemagick
copy iTerm2's imgcat script into your path

Test: display built-in image

convert rose: - | imgcat /dev/stdin

Pretty Title

convert -background lightblue -fill blue  -font Tahoma -size 165x70  label:Anthony    z.png && imgcat z.png

Good Job, Bub!

curl -s | imgcat /dev/stdin

Note the "Tahoma" font used above is probably only on macOS.  Choose another font that's installed into ImageMagick.  What fonts are those, you say?  Here you go:

List ImageMagick Fonts (Awk FTW)

$ convert -list font | awk '/Font:/ {print $2} {next}' | pr -4t
AndaleMono   BigCaslonM     Herculanum      TimesNewRomanBI
AppleChancery   BrushScriptI     HoeflerTextOrname TimesNewRomanI
AppleMyungjo   Chalkduster     Impact       Trebuchet
Arial   ComicSans     InaiMathi       TrebuchetMSB
ArialB   ComicSansMSB     Kokonor       TrebuchetMSBI
ArialBI   CourierNew     Krungthep       TrebuchetMSI
ArialBk   CourierNewB     MicrosoftSansSeri Verdana
ArialI   CourierNewBI     PlantagenetCherok VerdanaB
ArialNarrow   CourierNewI     Sathu       VerdanaBI
ArialNarrowB   GB18030Bitmap     Silom       VerdanaI
ArialNarrowBI   Georgia     Skia       Webdings
ArialNarrowI   GeorgiaB     Tahoma       Wingdings
ArialRoundedB   GeorgiaBI     TahomaB       Wingdings2
ArialUnicode   GeorgiaI     TimesNewRoman     Wingdings3
Ayuthaya   Gurmukhi     TimesNewRomanB    Zapfino

Wednesday, November 29, 2017

Wednesday, November 22, 2017

website without pain

Want to put a webapp on your code, but don't care about HTML-CSS-JS? Anvil looks really amazing. You can build a "hello world" form with user registration and two linked Postgres data tables in 6 minutes!! Anvil hello world demo

For my recent wedding I worked building my own site for a while, then built a much better version using Google Forms in 20 minutes, ftw.

Wednesday, October 18, 2017

Appearances in October

Hi all! I love helping people.  For this month I'll be at these locations:

- 10/18: Mentorship Night with Girl Develop It LA!

This event helps intro developers gain confidence and industry knowledge, so they can make awesome stuff and/or get jobs.  I've had great fun volunteering for Girl Develop It the last two years, and am curious about extending my time to the Learn Teach Code group.

- 10/24: October meetup at Coding Dojo in Burbank

I've been attending to and speaking at the Socal Python group for years. As of this year I'm also coordinating. The people are so friendly and open! It's fun just to hang out with such easy and mellow people month after month, even when discussing esoteric technical topics.

This month one talk is on Bokeh, a cool Python visualization framework. This is great for the Data Science people, as Python is the dominant platform, so a graphical package is very helpful.  And, one of my projects Shotglass is using Bokeh in a modest way, to visually understand large collections of source code.

I hope to see you there, at Burbank and Culver City!

Friday, September 15, 2017

NPM package tip

FYI the only way to install and save Node/Javascript libraries is like this:

npm install mongoose@"~4.0.8" --save

This installs anything 4.0.x — major and minor are respected.  The option “@4.0.8” would be only 4.0.8, which is fine, but probably too picky.  The default “^4.0" is terrible and will install anything with major version 4. Don’t ever do this.  It’s also the default. Programmer emptor.

For Python, I generally do "pip install package" to install the latest version of a module, then "pip freeze mypackage >> requirements.txt" to capture the exact version number.

Sunday, August 13, 2017

TIP: draw plots directly in terminal! (with iTerm2)

Example: your data is already in CSV format in "z.plt", this one-line command will render a plot and show it in the terminal:

gnuplot -e 'set terminal png ; set output "plot.png"; plot "z.plt" using 0:7 with lines' && imgcat plot.png

This is great for testing web site performance. The previous one line ran Apache Bench to beat the crap out of my local server, and write the output into a Gnuplot-compatible CSV file:

ab -n10000 -c100 -g z.plt

Tuesday, July 25, 2017

slides: Design Patterns in Python

(this page is

Slides in Google Docs, or just buy the book: "Design Patterns Explained Simply", via Sourcemaking. The have a lot of material online so check it out!