Well, the reason you’ve not seen updates in the Philolog or here is because the majority of my time for the last two days has been spent helping keep my company’s mail systems on-line while being hammered by yet another Windows virus.
Yet again (and again (due to the horrible security model underlying the inherently insecure operating systems)), users all across the Internet have been forced to endure network latency, system slowdowns, mangled mail, and missing mail. Thanks for dicking us over, Microsoft.
I took a look at their security tips site which addresses how to maintain your PC / Systems (i.
When formulating a mathematical theory, the great mathematician, philosopher, artist, polymath Edsger Dijkstra thought, much like Plato, we should endeavour to express ourselves clearly and precisely above all else. To enforce this he made sure he could explain his rationale to a layman in both Dutch (his mother tongue) and English.
What does this say about The White House’s policy if the executors of the rationale are not convinced?
Why?
I’m up at 6 a.m. and feeling sorta awake. I feel that my living on the travel run has caught up with me, my lymph nodes are the size of walnuts and I keep sneezing thus, I cannot sleep, thus I type.
I hope that work’s requirements will allow me to check out some tunes on the shared Mac users’ iTunes shares, slurp some green tea, and parse my bazillion emails.
I have to be honest, I’m dreading that. I eradicated my mail quota before I left (it’s good to be king) so there’s no telling how bloated my inbox is with people sending me mails that want to ‘get buy-in’ or ’leverage synergies’ or ‘what the hell happened to X’.
Sometimes you are stuck on a problem….and you just can’t solve it. And it appears that that problem is related to another frustrating thing.
And sometimes you spend wasteful hour after hour on it…
And you go to bed. And in the morning you make one change, and not just that problem, but others magically clear up.
The latest generation of killer apps (the Trillian IM client, linux’s XMMS audio player system, the lamentably-dead Nullsoft’s WinAmp) all came with a feature allowing “skinning”. Much like our own epidermis, the guts underneath are pretty uniform - but by wrapping the application in a new skin you could make it ‘yours’.
Every college student knows the magic of a sofa cover - turn that hideous inherited couch into a sea of pastel blue thanks to a sofa cover.
A visual example should help you see just how much the same application can vary between two skins. Here’s a link to skins for XMMS.
Often hereabouts I am asked if my degree is in CompSci.
HELL NO
Computer Scientists are endlessly fascinated by optimization, IT guys (of which I number) are concerned with “can it even fsking be done?” IT guys do not care about memory usage, unless it makes things not work. CompSci guys don’t care about doing things merely, they want to do it in the most efficient manner possible (left to their own devices).
Case in point, CompSci guys find pages like this endlessly fascinating. Myself, I was ready to move back to
Recently you may have noticed a certain amout of blog.love of Paul Graham . What can I say, I really liked his book Hackers and Painters.
He talks somewhat extensively about the programming language LISP. To this end I have taken up the challenge and am now working through his instructional book ANSI Common Lisp.
Here is how I managed to get an emacs-based IDE running Common Lisp.
You need this web page for background: [ LINK ].
Download fink if you don’t have it. This is a handy tool for grabbing new command-line-ish tools
Make sure you can get clisp: “sudo fink list clisp” - something should come back with the word clisp in it.
Well maybe I should make sure that I use a positive word, instead of “battling” I should say “becoming more acquainted with” Lisp.
This stuff reminds me so much of my symbolic logic class back in school, the material is dense, the explanation is denser, and virtually all the best part of the learning is left as an exercise to the reader, his supply of ink, and his supply of paper.
As such, I have spent many hours trying to accomplish but a few problems or feel comfortable in being able to model the world according to the syntax of Lisp.
In the unix / linux world ( and thus, by extension the Mac OS X universe as well ) there is much to-do made about the choice of text editors.
Why Does It Matter Much of the configuration of these various systems is centered around the generation / manipulation of text-based configuration files.
For example, if you’re on windows and you want to change your timezone you must go to Start Button / Control Panel / Time and Date / Timezone. On Unix / Linux / Mac OSX you simply edit a text file, change the word from PST to CDT ( or what have you ) save the file and you’re done.
Slashdot recently asked about its readers success with standardizing on one programming language. Some would advocate C, or C++, or Ruby or Python…but it was this comment that I found the most interesting and its follow-up the most humorous.
Your company should standardize around Hindi - the new programming language in India - It is an extremely natural language - you write down your requirements in English (even on paper), send it via e-mail / snail mail to a supercomputer called “India”, the “India” machine turns it into Hindi and feeds the information to a cluster of other India machines, known as “Indians” and then these “Indians” break it down into functions, write the code, put it back together, compile and send you the binary - you wont have to worry about what language they code it in!
I have finished my first program: SudokuGrid. Here’s what it looks like.
This is the starting grid. It’s blank here, but you can see the “alignment highlighter.” As those of you who work Sudokus (Sudokii?) know, you can’t have a conflict within the 3x3 grid, along the horizontal, or along the vertical. These guides help with that.
Now you might think that entering a “given” set of numbers would be a real pain, having to change the selection to 1-9, click in the cell, make the change, look at your source, etc. To this point I added the “fastFill” feature. By entering the numbers (and “-” for blanks) you can fill a grid quite quickly!
If you are learning Ruby coming from a C or Perl background, you may find the following discussion somewhat interesting.
One of the most common idioms ( especially in my CGI programming in Perl ) is to use a dispatch table based on a keyword or an option.
It is particularly handy to arrange a hash such that by entering a ‘keyword’ (the key in the hash element) you trigger an anonymous subroutine, or a pre-defined routine.
The code for this, in Perl, looks something like this:
my %h = ( 'alpha' => &theAlphaRoutine;, 'beta' => &theBetaRoutine;, 'gamma' => &theGammaRoutine;, );
Anyone who has known me long enough has likely heard me extol the virtues of Unix or Unix-like operating systems. Largely, their eyes go gooey and I can feel the thought rattling in their head: But can I use Word on it?
[Neal Stephenson][1] writes an excellent explanation about how using unix is
This week started off well, with my best friend married and myself and Lauren spending a day in Houston with my dad. Upon returning back to the work week on Tuesday I learned that an LDAP database on one of our systems was no longer updating.
The database updates by checking some source files for modification. If modification is found, the old entry is deleted, and the source file is parsed and uploaded to replace the old entry.
That is, until recently. This process stopped working. I started debugging through the logs and found this transaction
Enter LDAP Password: Delete Result: Unknown error (80) Additional info: DN index delete failed
Oh The Loneliness.
The loneliness is what my math teacher says comes when you don’t practice doing problems on your own. You’re in class, you follow the examples and everything is fine. But then comes the test, and you’re looking at the problem and The Loneliness hits you. You no longer have your guru and classmates there to help you along. Because of The Loneliness you fail.
Programming, and particularly training classes, are the same way. After my intensive study in Atlanta, with a forced 2 weeks off owing to travel and moving The Loneliness has haunted me as I’ve attempted to get back into Rails.
During the move to our new apartment I came across a CD that had a bunch of old data files from my college days on it.
One of the files was called “C++ Programs”. This struck me as a bit funny as Lauren and I are taking C++ together at Austin Community College. For her, it is an introduction, for me it is a review.
Based on this old code I found, I definitely needed much more than a review. This, quite simply, is terrible.
Check this insanity out after the jump
//---------------------------------------------------------------------------- //What: // Title...Homework Assignment 2 // Description: // This program takes financial input, calculates wages, and outputs.
During my recent web site redesign I decided I would start from scratch. I diligently worked and worked and finally had a ‘beta’ version of code that I deployed. It came out terrible.
I couldn’t believe it, how could I have gone so far wrong?
I had the positioning looking great, the images looked great, the screen effects looked great - yet there was no mistaking it. When IE got a hold of the page it looked like all the components were dumped in a pile in the middle of your screen.
It was about that time that I took a hold of the default Kubrick layout that comes with WordPress and began to hack it into my own creation.
Hello to anyone and everyone out there.
If, by some chance, you took a look at my ridiculous looking name-badge and decided to punch my name into Google and wound up here, hi, how are you.
Day 1 My morning sesion was excellent. Michael Sampson lead a session on what the skillset for a manager in a post-2.0 world would look like. The session was very exciting. Michael did an expert job of delivering slides that framed break-out mini-sessions among attendees. I very much enjoyed this meet-up. Michael seems to have enjoyed giving the presentation as well.
Thanks to all my fellow break-out group friends.
I decided to spend some of my Christmas break taking a look at Ruby on Rails again and trying to get an application together under this application stack. Since I last looked at Rails, it had crossed the 1.x to 2.x version marker and several changes manifested. For someone trying to follow the 1.x tutorials or the canonical reference book Agile Web Development With Rails, one doesn’t make very much progress before the changes with respect to scaffolding bite one. One may need a bit of a tutorial on Rails 2.x scaffolding before being “pretty close” to training documentation. An excellent tutorial for this content was found at Fairleads.
This is the mail that I sent to Rails-list which describes my issues around the Rails scaffolding in Rails 2.0.
Hello,
I’ve read the (many) re-posts about problems around scaffolding in Rails 2.0 and have followed a number of tutorials and fully understand “how to scaffold” from a technical perspective, but I don’t understand the mindset of how to use the new scaffolding. It seems like a productivity- / agility- regress and I’m thinking I may have failed to properly grok the new setup. In the interest of full disclosure, I’m coming back to Rails after being in other toolkits for about 9 months.
Donald Knuth started writing The Art of Computer Programming and along the way decided that technical publishers didn’t know what they were doing. Knuth’s yak-shave?
Writing TeX: A 10 year yak shave that has produced the most elegant typesetting language ever.
A fabulous link between the science of this book, art, and symbolic systems: http://www.npr.org/templates/story/story.php?storyId=4532247
Unlikely Phrases in the Recording:
Bar Coding Arabic Language Algebra Samuel Johnson Betsy Ross God
http://github.com/sgharms/m4resume/tree/master
“Make it a little bit more complicated” you say. To a hacker of my ilk, such is like sweet nectar before the thirsty mantis.
Github: Use M4 (1960’s era vintage programming macro language) to generate résumés (LaTeX and HTML+RDFa), share with the world:
http://github.com/sgharms/m4resume/tree/master
Using W3C, you can distill that code into RDF, or turn it into a pretty graph. Check out the links at the bottom of:
http://stevengharms.com/resume.html
Google crawler and Yahoo! searchmonkey are now RDF-aware, so it should be interesting how the traffic pattern changes on this one.
http://github.com/sgharms/textfiles/blob/b46b939d2142b299a668c01cb9f6752a9841500c/scotch_whisky.txt
I keep all my textfiles to myself at github for data retention purposes. Also here is my Scotch sampling odyssey to date, inspired by the consumption on BSG ;).
http://github.com/sgharms/textfiles/blob/b46b939d2142b299a668c01cb9f6752a9841500c/scotch_whisky.txt
http://programmers.stackexchange.com/questions/4693/why-are-so-many-programmers-arrogant
Did a programmer hurt your feelings today? Did a programmer refuse to let some arcane topic go? Did a programmer argue with you with the goal of being right at expense of the relationship or the larger goal? Curious?
http://www.engadget.com/2010/10/18/makerlegobot-is-made-of-lego-makes-things-out-of-lego-is-so-me/
A machine made of legos that can make machines that make machines of legos.
Best quote: “I, for one, welcome our new one-inch tall smiling yellow overlords.”
https://gist.github.com/785774
Ruby: The kindly Japanese gentleman of programming languages…until he opens his coat and reveals his DMT autosecretion device with a reality altering blast-radius.
https://gist.github.com/785774
http://jtnimoy.net/workviewer.php?q=178
The beautiful science behind the beautiful effects of Tron: Legacy. Makes me wish I was better at C++ (evidently I wasn’t that much of a bastard in my past life enough to deserve that).
http://jtnimoy.net/workviewer.php?q=178
For a while now I’ve been working with the Ember.JS framework. It’s been a real pleasure (for the most part) and I think it’s got a fantastic community around it. I’m very excited as the team, and yours truly, work to bring the product to version 1.0.
In efforts to help new users adopt this framework, I’ve written a fairly-extensive guide on how to build up an Ember application from scratch using the latest patterns and opinions. I hope to get it merged into the Ember documentation site, but we’ll see how it goes on that front. This guide can be found at my GitHub fork of the Ember documentation website in the routing primer documentation.
http://confreaks.com/videos/1115-gogaruco2012-go-ahead-make-a-mess
I’ve had quite a few tech inspirations, but Sandi Metz is on the next level. Whatever you know about programming, this talk makes sure you know a lot more.
http://mashable.com/2012/11/12/shop-it-to-me-threads/
What I’ve been working on at Shop It To Me for the last few months: We’ve built a product that’s now in public beta that’s designed to be your own, personal, customized, shopping assistant. Instead of the brands shouting stuff at your inbox, we want you to take control of what you want to see, based on what you like, who designs it, your size, and your tastes.
Earlier this month I appeared on the [Ruby Rogues][RR] podcast to discuss the perennial topic of Metaprogramming in Ruby.
It was a bit of a take off on the presentations I gave at RubyConf and Lone Star Ruby Conf in 2011, but seasoned with a year of perspective and influenced by my new love of clarity and explicitness — both of which are generally considered anathema to the idea of metaprogramming in general.
I really enjoyed joining the panel. If you do decide to listen to the entire podcst (of limited interest unless you happen to be a programmer) you should realize that the panel has a really good time talking and firing off zingers and trying to make one another laugh.
Recently at Shop It To Me Engineering we’ve been talking about the topic of the DCI model of application design. It’s interesting and we’ve been trying to think of real world applications of this model. We’ve also been trying to figure out if this model has a place in our codebase.
The essential gist of DCI, in my book, is that you start with a simple instance of a class (traditionally a BankAccount that knows how to increment and decrement its balance). In a certain context, that BankAccount receives temporary knowledge and becomes a TransferrorBankAccount while another BankAccount becomes a TransfereeBankAccount.
http://www.cracked.com/blog/6-harsh-truths-that-will-make-you-better-person/
I’ve seen this a lot lately in my Twitter and Facebook streams. Well-written and very, very hard to take.
I’ve been programming Rails for a while now, and with the major releases I feel like I’m back to square one. There’s new gotchas, new strangeness talking to the databse, etc. As I encounter strangeness, I’m documenting it here.
I started by installing rbenv and Ruby 2.0. I then followed this Stack Overflow post on how to install edge Rails. I really like this approach because it makes use of Git submodules.
Things after I got Edge rails installed, I then set up my Gemfile. I don’t want CoffeeScript so I handled that by commenting out its line in the Gemfile.
Introduction On my walk home from work I often listen to the Ruby Rogues podcast. In their episode with Glenn Vanderburg on “Complexity,” there’s a fascinating discussion on the nature of science, and how that defines the modus operandi of “computer science.” Dave, a panelist, asserts that: “computer science is heaving with science, but its heaving with formal science as opposed to empirical science.” I believe development is “heaving” with “formal science” because of of an all-too-human reason: vanity. Developers esteem formal reasoning over empirical reasoning out of peer pressure to seem “smart” which is associated more with the formal style of reasoning.
What is it about tech conferences that makes individuals who work in a highly cerebral and reflective industry like software development go quite so nuts? Why the oral sex jokes, the thong-model backgrounds on slides, etc.? And why are the sponsors so willing to bring out Hooters girls or hire go-go dancers at their events?[1] In short, why does the tech conference misbehavior look so much like the hormonal, puerile misbehavior associated with Spring Break misbehavior? I believe that a contributing force rarely mentioned is the way conventions and their host cities (intentionally or not, tacitly or not) market the host city’s “vice” industries as a selling point[2].
In the US we’re slow to to countenance the idea that we’re in a surveillance state of our own construction.
http://fredlybrand.com/2013/06/23/an-apology-to-my-european-it-team/
On a recent episode of “Fresh Air,” Terry Gross interviewed Ahmir “Questlove”
Thompson, the bandleader on Jimmy Fallon’s “Late Night” show and one of the
driving forces behind one of the most protean hip-hop acts ever, The Roots. I
really can’t say enough about how much I enjoyed the interview. One of
the most interesting bits is how he described deejaying. I was struck by how
similar it is to the way I hear other programmers describe coding:
Here’s Questlove on Deejaying:
I believe the number one rule of DJ is: You have to immerse yourself in music.
Immerse. Not love music, you have to immerse yourself. [...] is: So for me it's
like a chess game. I'm thinking about the payoff song that's going to be 20
songs from now and how can I build up to that moment. [...] the only time that
I will be a complete ass to a person is when I'm deejaying. I absolutely want
zero interruptions, because I'm in a trance and you're breaking my trance, and
I need to know how to get from point A to point B. [...] I can go anywhere.
[...] that world is my oyster and I need complete absolute concentration.
Let’s do a few search and replaces to make that quote describe programming,
shall we?1
Introduction Before I went on vacation I printed up a copy of Alan Kay’s seminal paper “The Early History of Smalltalk.” The article is quite fine and provides a background on the ideas that were in the computing zeitgeist of the mid- to late-60’s and which lead to the innovative programming language Smalltalk in the late 70’s and early 80’s. Remarkable about this article, and lamentably rare, is that Kay’s erudition in the fields of philosophy and biology shine through in his lucid text and provide a holistic series of metaphors which make his technical writing a joy to read.
“What we wish hiring looked like.”
http://blogs.hbr.org/2014/01/hire-by-auditions-not-resumes/
Instead of a strange test at a moment in time, see a performance: recoveries, motifs, inspirations, new views.
http://www.nerdist.com/2014/03/exclusive-robert-rodriguez-opening-museum-of-frank-frazetta-art-at-sxsw/#.UxjYn82lah8.facebook
A Frank Frazetta museum won’t be complete unless I can get a slice and a Coke and hear AC/DC during the tour through the galleries. Branded 20-sided-die expected in the gift shop.
So for 99.99994% accuracy this physicist’s predictions about the Big Bang have been validated as true.
http://www.policymic.com/articles/85551/watch-as-the-scientist-who-predicted-big-bang-theory-learns-his-research-was-correct
I guess that’s why Star Trek etc. still hold a great romantic sweep for people like me: the belief that discovery and understanding our universe is a more worthy task than any other.
Under construction across the street: soon* we’ll be able to hop to Chinatown or little Italy in a flash.
*: About ten years, I’d reckon
https://www.flickr.com/photos/municentralsubway/8076442285/
“Technical Debt” is wildly misapplied as a term because if you could go “technical bankrupt” your problems would go away. But “technical debt” doesn’t work like that. The failure of this analogy:
https://medium.com/@joaomilho/festina-lente-e29070811b84
When I am knee-deep in project mess this is what everything I read looks like: pic.twitter.com/UP8pNEkUfd
— Paul Ford (@ftrain) July 18, 2014 If you’re a developer, you really need to look at this image. Now.
And then you need to recalibrate how well you’re actually doing.
After many years of effort I finally shipped a 1.0 library for conjugating Latin verbs. It uses the same heuristics that you learn from the venerable Wheelock or Cambridge Latin books. I’ve reached other milestones with it, but finally getting 1.0.0 and moving to Semantic versioning means something. http://rubygems.org/gems/latinirb
http://blog.codinghorror.com/quantity-always-trumps-quality/
Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the “quantity” group was busily churning out piles of work - and learning from their mistakes - the “quality” group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.
Just Do It. Write bad stories. Take bad photos. Write bad code. Your low bar will bubble up.
http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey
I believe in Rich Hickey now: and not just because he quoted Heraclitus. His metaphor for imperative programming as a baseball stadium is a powerful one. Loosely: imperative models require that at the moment ball meets bat, we stop the world and update every spectator to update their reaction; move forward one instant of time; re-update; etc. Finding a model for declaring how they ought react without a stoppage of time is something we need in order to to scale to big problems.
I’m going to post this every fall to my friends with young children.
http://m.motherjones.com/media/2014/06/computer-science-programming-code-diversity-sexism-education
Code is the new literacy. IF you let them play with the iPhone or iPad but do not start making them make the games, you are dooming them to be a consumer. You are capping their career mobility. You are ensuring that the people who can code will be their masters for their entire life. You are setting them on a path of servitude and lower-wage in the same way you would if you promoted ESPN over arithmetic flash cards.
If your school does not have CS, rage today.
http://www.cnn.com/video/data/2.0/video/cnnmoney/2014/11/14/ivory-coding.cnnmoney.html
I was so busy having my first day at our NYC campus that I forgot to share this!
http://blogs.kqed.org/stateofhealth/2014/11/28/scientists-show-dogs-really-do-understand-what-we-say/
We all wonder what our dogs understand, but this article points to the aspect of the hemispheres of their brain being involved in their reactions.
“Tell all the emotional things to the dog in his left ear,” Andics says. “For commands that you want a dog to get clearly and precisely, tell them in right ear.”
As predicted, the other prosthetic shoe drops http://www.wired.com/2015/01/3-d-printed-prosthetics-look-fit-sci-fi-warrior/ shows off some of the newer, cheaper, more interesting options for those requiring support. Glorious.
The Snowden case is intensely complex and difficult to understand. I don’t know how to contextualize the work he did or the means he used to do it. Regardless, the story of how independent signal escapes constraints here is fascinating.
http://www.vogue.com/11122973/sarah-harrison-edward-snowden-wikileaks-nsa/
http://www.slate.com/articles/news_and_politics/politics/2015/02/edward_snowden_citizenfour_the_former_contractor_sparked_a_movement_that.html"
In 1995 I downloaded my first copy of PGP.EXE and promptly started encrypting everything. Regrettably, I didn’t have anything worth saving (fan poetry about Gillian Anderson aside) much less encrypting. Now that Snowden has pointed out what’s actually happening hopefully:
There will be other cypherpunks (from my 1995 guide to web lingo courtesy of “Mondo 2000”) The UX for encryption features won’t be so goddam awful
I’ve been doing the boot camp education thing for a while, and it seems that people are having good lives after. This seemed to confirm it.
https://www.themuse.com/advice/i-went-to-a-coding-bootcampand-heres-what-happened-next
Says Jacob Kaplan-Moss: “Hi, I’m Jacob and I’m an average programmer.” You should be a programmer and not buy into the fallacy that you are either rockstar-ninjas OR you suck.
This is the talent myth.
A meta-analysis on 19 independent samples (total N = 1695) highlighted that programming aptitude was associated with three personality traits, conscientiousness, openness, and introversion. Moreover, the three traits explained incremental variance components beyond general mental abilities. In contrast to stereotypical beliefs, programming aptitudes were not associated with socially undesirable traits such as disagreeableness or neuroticism.
http://www.sciencedirect.com/science/article/pii/S0092656615300052
Computers do a better job predicting a marriage’s outcome than highly trained therapists
Smart household assistant hears wife say “Fine” with finality. Smart household assistant hears door slam. Smart household assistant contacts FTD account and sends flowers.
https://www.nytimes.com/2016/01/03/world/americas/untangling-an-accounting-tool-and-an-ancient-incan-mystery.html?smprod=nytco
Amazing. In a lush jungle paper / ink / double-entry accounting fails. Solution? Khipu!
This is a post I had sitting in my drafts folder, uhm, for about 2 years. I’m
fishing it out now because I’m a completionist masochist.
A friend forwarded on to me this post entitled: “Don’t study latin if you want to become a better programmer” by Daniel Lemire, professor of Computer
Science at the University of Quebec. His piece questions the wisdom of teaching
Latin as a means of creating a better programmer. As a lover of the Classical
world, Latin student, programmer, and teacher of programming, I found myself
disagreeing with his conclusion: in my programming practice I definitely
recognized competencies learned while studying Latin resurfacing again and
again. I believe Lemire is missing some nuance to his description of learning
and I think that they might explain how we come to different conclusions. Let
me start with a usage where I agree with Lemire.
I Program, Should I Learn Latin to Get Better?
Let’s start with the obvious case. If you are, say, learning Python and then
one fine day you think: “My goodness, I’d like to be better at this” and your
solution is “I’m going to go buy a copy of Wheelock’s Latin and get to it,”
you’re probably choosing a sub-optimal strategy. Your time would be better
spent at one of the following
Writing Python
Reading Python
Finding a Python mentor / meet-up, etc.
While I agree that there are individuals who, upon learning Latin with some
background in programming probably found some way to have it drive their
programming acumen forward — say, by writing a RubyGem ;) —
this is probably a vanishingly small amount and not something I’d recommend as
a general rule.
So let me concede the obvious use of this utterance and agree that you should
not do task Y to become better at task X. However, I don’t think this is what
the author’s post was intending to analyze. My interpretation of his post is
that since he “believe[s] that knowledge is only weakly transferable, …[he
favours] practical skills that are immediately useful.” And here’s where I
think his model loses some of its nuanced understanding of learning and thus
becomes less compelling.
Does Latin Study Contribute to Learning Programming More Easily?
I believe that there are transferable skills that come from broad-based
learning and that they are worth the time and the effort of acquiring.
Specifically broad-based topics that train, enhance or instill facility with
metacognitive competenciesdo transfer well to other studies. I would
contend that learning Latin tends to force its students to acquire a series of
metacognitive competencies that would prove highly useful in learning to
program (a raw skill) and learning to be a programmer (a set of behaviors).
Is it guaranteed that other “practical, immediately useful” skills such as
Karate or swimming would fail to offer these learnings — certainly not!
And I should hope that learners of all ages and all disciplines experience the
joy of finding these metacognitive competencies in new nooks and crannies as
they learn more about their world. For me, that’s quite possibly the best
part of learning and, as I approach mid-age, one of the great advantages I have
in learning material over a 16 year old: I know that I have a battle-tested
series of competencies that allow me to ascertain, interpret, and integrate
learning in a way such that new facts feel natural versus foreign objects
that must be toted about.
Nevertheless, I believe that the pedagogy of Latin has something special to it:
something instructs both moral character (the noble sentiments of the ancients)
as well as intellectual character, its metacognitive competencies. There’s a
reason, after all, that the archetypal “teacher molds the mind of a future
generation and is never forgotten” movie is Mr. Chips and Latin, long before
Keating taught poetry in “Dead Poets Society” or Escalante taught calculus in
Los Angeles in “Stand and Deliver.”
http://www.theatlantic.com/entertainment/archive/2014/06/star-trek-tng-and-the-limits-of-language-shaka-when-the-walls-fell/372107/#article-comments
One of the most fascinating articles I’ve ever read about inter-planetary communication. How could we communicate with minds that are dramatically different than ours? The article recalls elements of Orson Scott Card’s “Xenocide” and Sagan’s “Contact.” I know the (latest) “Wow!” signal is probably an aberration, but these are the difficulties of the future.
http://edition.cnn.com/2016/06/14/politics/newt-gingrich-house-un-american-activities-committee/index.html
At the risk of going full tinfoil hat here I’m going to work on building a suite of tools for being cryptographically safe.
With First Amendment protections under assault we have to get armed. Bush and Obama have built an information collection solution I utterly fear. Gotta teach the unsavvy but brave how to be safe.
This is well deserved and woefully delayed. Hamilton made software behave in a time when there were very few tools for doing so besides a hafiz-like memory import of binders of code.
https://www.nasa.gov/feature/margaret-hamilton-apollo-software-engineer-awarded-presidential-medal-of-freedom
https://www.newyorker.com/business/currency/silicon-valley-has-an-empathy-vacuum?intcid=mod-latest
Been saying this for a while, but time will keep marching on and leaving people behind. Unless the incoming administration can act swiftly to head this off, whole sectors of society will be left with declining hope, wages, and prospects.
We can’t just look backward or go insular into an anti-NAFTA, pro-coal Trump platform. Such looks positively ridiculous for this reality.
Given the ascent of an authoritarian to the presidency, now is the time to put privacy controls in place.
https://t.co/YCroFnsf5Q
Verifying myself: I am sgharms on Keybase.io. On8E7qswnY1pKixwBiI6612vyxAnU8tX-uTi / https://t.co/YCroFnsf5Q
Design is changing fast, and design schools risk producing students without fundamental skills needed in the industry today. Writing is one of them. After all, content is still king.
Why CS majors should not be allowed to abandon the liberal arts in their degree plans.
https://t.co/tCbONqsXJJ
“I taught myself to code in the pre-boot-camp era,” Steve Harms, the head of curriculum at Dev Bootcamp, told me, “and the way I would get around getting stuck, is that’d I’d post to these horrible PHP forums … The answers were neither good, nor were they correct, nor were they kindly presented.” Stack Overflow ostensibly fixes this problem by turning coder advice into a Reddit-like thread, with up-votes, down-votes, and helpful snippets. No more lengthy arguments without a clear winner; thanks to Stack Overflow, the “best” solution to a given problem is — or should be — voted to the top.
I have a NodeJS stumper. If you know the answer I’d love to hear your technique.
https://stackoverflow.com/questions/44390561/nodejs-need-idiomatic-read-files-in-dir-concatenate-transform-write?stw=2
I don’t know who’s a bigger superhero: Diana Prince or Gal Gadot for bearing the weights of an icon 24/7, flawlessly, touchingly, with class:
https://twitter.com/scottderrickson/status/888896290737631234
Claude Shannon seems to be having a moment and I’m glad to boost the signal (snicker). For an introduction to the beautiful magical mathematical mystery that is signaling check out this “Nautilus” article. I’m reading, at present, the book cited at the bottom as well.
http://nautil.us/issue/51/limits/how-information-got-re_invented
As I’m walking out of my current job, I came across this as a new way to re-orient my next few steps. Maybe helpful for you too?
https://www.inc.com/benjamin-p-hardy/willpower-doesnt-work-heres-how-to-actually-change.html
When in doubt, coffee. pic.twitter.com/VLdEIUnuMX
— Susanna Hoffs (@SusannaHoffs) September 8, 2017 Debbie Harry drinking coffee in a diner. Just perfect.
TL; DR I have written and extension for the Chrome browser that allows you to visit your Notes and Highlights (https://read.amazon.com/notebook) page and export a given book’s notes and annotations as JSON.
From This… Visit a book’s note page and right-click a menu
To a Clipboard With This… { "title": "A Mind at Play: How Claude Shannon Invented the Information Age", "author": "Jimmy Soni and Rob Goodman", "highlightCount": 65, "noteCount": 7, "annotations": [ { "highlight": "But before Shannon, there was precious little sense of information as an idea, a measurable quantity, an object fitted out for hard science. Before Shannon, information was a telegram, a photograph, a paragraph, a song.
Introduction I recently shipped the amaJSON Chrome extension and I believe I’ve come up with an improved process for understanding how to build similar applications.
This tutorial will help you create a practical “context-menu” Event Page extension.
With Extensions, Google has delivered (yet) another astounding technical platform with superior reference documentation. Nevertheless this documentation leaves delivery practices beyond a trivial proof of concept hard to determine or worse leaves the guidance to — “look at these examples.” This guide fills in any gaps and attempts to move step-by-step.
For beginners to programming there’s also a meta-lesson in this post: how to approach programming to someone else’s API.
Our Project Recently, JavaScript educator Kyle Simpson mused on LinkedIn that he found himself sending the same messages repeatedly on the site. He said he would have liked to have the ability to select pre-typed or “canned” responses for LinkedIn. Our extension will therefore create canned responses for linkedin.com. Let’s write out a few user stories to guide our development.
User Stories AS A LinkedIn user I WANT to be able to reply with canned responses SO THAT I can more effectively manage my inbox AS A $TOOL user I WANT to be able to add new responses SO THAT I can more effectively manage my inbox AS A $TOOL user I WANT to activate my response by using a drop down from a context menu AS A $TOOL user I want the drop down to have a list of “headings” which correspond to long-form text responses e.
Meta-Post This post is really a meta-post. Here I’m going to document how I went about educating myself on a Google API. If you’re a seasoned hand at picking up API docs and making a product out of it, you might want to skip this post and move to the next part.
Getting Underway Our starting point for documentation is the Chrome Extensions page. It serves as a table of contents for us and prompts us to first visit their tutorial page.
The first introduced type of user interface to an extension described is the browser action which: “…[allows] us to place a clickable icon right next to Chrome’s Omnibox for easy access.
Introduction In this post we actually implement our canned response extension. This post is vertically long (mostly because of code samples and screen shots). Type along and take it slow. Extension development rewards patience and discipline. If you can’t be disciplined be patient. If you can’t be patient be disciplined. Whatever it is, don’t get overwhelmed by the length of this post.
For beginner developers, I hope also to show you my software development process for unfamiliar code APIs.
First Goal: Unprivileged Page Doing Something, Anything Let’s create a new developer extension. I’m not going to cover the directory setup because it’s covered very well in the Extension tutorial.
Interlude In the previous section we set up our communications conduit, and wrestled with the basics of the Chrome Extension API. We’re now going to do a pass where we change the “debuggy” messages from being noise into being canned responses.
Let’s create a new branch called: boilerplate-pass-through. Our goal is to get our canned responses passed through from background to content scripts.
Build Context Menu UI Per our user stories, we want to add a contextMenu element. Let’s add something trivial to verify it works. You should now see the pattern that many APIs require an additional permission. To use the contextMenus API you must add the contextMenus permission.
We’re ready to make this real!
Get Ready to Ship! Well the things that need to change are few indeed!
We’ll stop using stevengharms.com We’ll change the selected input fields We’ll tighten up the code’s footprint ADVANCED We’ll optimize a critical UX bug cased by LinkedIn’s JavaScript-heavy render From stevengharms.com to linkedin.com My simple site has served me well enough. Time for the big leagues. I’ll present this only as a diff.
diff --git a/background.js b/background.js index 0762faf..d68eed9 100644 --- a/background.js +++ b/background.js @@ -17,7 +17,7 @@ chrome.webNavigation.onCompleted.addListener(function(details) { id: MENU_PREFIX + details.tabId, title: "Canned Response", contexts: ["editable"], - documentUrlPatterns: [ "*://stevengharms.
“The Atlantic” recently published an article entitled: “The Coming Software Apocalypse” by James Somers. It argues convincingly that humans are failing in our ability to create software systems that deal adequately with the most complex systems (nuclear arsenal, aircraft, radiation therapy dosage machines, etc.). “We used to be able to think through all the things it could do, all the states it could get into,” noted Nancy Leveson. We are now quite beyond that recalling a famous programmer saw: “When I wrote this only God and I could understand what it did; now only God knows.”
In this post I would like to try to define a collection of vulnerabilities in thinking which contribute to our difficulty creating software that’s sufficiently robust to be trusted in complex situations.
Today you can hardly tell when something is remade, because so often it is remade by code. When you press your foot down on your car’s accelerator, for instance, you’re no longer controlling anything directly; there’s no mechanical link from the pedal to the throttle. Instead, you’re issuing a command to a piece of software that decides how much air to give the engine. The car is a computer you can sit inside of. The steering wheel and pedals might as well be keyboard keys.
https://www.theatlantic.com/technology/archive/2017/09/saving-the-world-from-code/540393/
Many years ago, I gave up Windows as my primary operating system. After a multi-year run in Linux, I adopted the Mac platform in 2002 and haven’t looked back. Lately, however, as a developer I feel ignored and under-served by Apple. To this end I’ve played with Chromebooks and [non-local-machine-based development][vpsdev]. However, with the release of the Windows Subsystem for Linux (WSL), I believe the Microsoft ecosystem is currently offering a comparable experience at a competitive price point with more performant hardware.
History I was forced to live through a Windows + Linux dual boot period (Windows for games, Linux for development and learning) 2000-2002.
The event was attended by a crowd of roughly 20,000 people, nearly all of them Americans sympathetic to Kuhn’s cause. With its swastikas and unapologetically racist rhetoric, cheering crowds and barefaced appeals to US patriotism – including a massive, stage-centre portrait of George Washington – the footage from the event is jarring and surreal to watch today.
https://aeon.co/videos/what-would-american-fascism-look-like-a-1939-new-york-rally-offered-more-than-a-hint
Tube: This was so far ahead 20 years ago it’s still at least 10 years ahead: biology, architecture, cellular biology, education, cognitive models, learning…Kay has seen so far.
https://www.nytimes.com/2017/11/21/technology/fcc-net-neutrality.html
This is horrible. Please contact your representatives.
Imagine you load up Netflix (which you pay for) on your broadband TV and then it stops and your broadband provider “offers” you the chance to buy more HD minutes. Or they break for an ad pitching their movies on demand service. This is what is being proposed.
Compare it to the water in your pipes. Do you drink that water? Do you wash dishes with it? What if if had to subscribe to the drinking plan?
The “micromanage” language is meant to inspire Reaganite hatred of big government. But this is a ruse.
Around 2012, something started going wrong in the lives of teens.
In just the five years between 2010 and 2015, the number of U.S. teens who felt useless and joyless – classic symptoms of depression – surged 33 percent in large national surveys. Teen suicide attempts increased 23 percent. Even more troubling, the number of 13- to 18-year-olds who committed suicide jumped 31 percent.
https://theconversation.com/with-teen-mental-health-deteriorating-over-five-years-theres-a-likely-culprit-86996
The Jobs family didn’t have children with iDevices because they were concerned about damage to mental development.
I don’t see how teens with smartphones is a good thing.
This is my favorite gyro poster model. I don’t like the “sexy” one. This one says “after Gyros we will study our declensions and then listen to Duran Duran.”
This is completely my jam:
The index card was a product of the Enlightenment, conceived by one of its towering figures: Carl Linnaeus, the Swedish botanist, physician, and the father of modern taxonomy. But like all information systems, the index card had unexpected political implications, too: It helped set the stage for categorizing people, and for the prejudice and violence that comes along with such classification.
https://www.theatlantic.com/technology/archive/2017/12/how-the-index-card-catalogued-the-world/547271/?utm_source=twb
Smart people say I don’t know with staggering rapidity. The most educated man I ever met said “I don’t know” faster than your neuron could fire to register that you’d heard a question.
https://getpocket.com/explore/item/how-actual-smart-people-talk-about-themselves
Its like we’ve gone back to the zenith of the steampunk era:
This is IBM’s quantum computer. Powerful and beautiful. pic.twitter.com/OJugWcxIb8
— Ben Bajarin (@BenBajarin) January 10, 2018
vim has a strange way of working with data from xargs. To make vim happy, you need xargs to send the output into a TTY before handing it to vim. Per the xargs man page:
-o Reopen stdin as /dev/tty in the child process before executing the command. This is useful if you want xargs to run an interactive application. Extract file names based on STDOUT and then throw them to vim via xargs
$ grep -o '\[C.*)' https://t.co/KdKaLY85cm |sed 's/.*(\(.*\))/\1/' |xargs -o vim
As a New Englander traversing the frozen woods I realize I can still recite Robert Frost’s “Stopping by Woods on a Snowy Evening.” via Instagram: https://t.co/1rGrjobrz9 pic.twitter.com/v4Uhs9Fwtx
— Eleanor C. Whitney (@killerfemme) February 4, 2018 It was majestic.
This is one of the most valuable graphics ever created. It explains how to move across words, sentences, breaks, etc. on the prompt command line.
https://clementc.github.io/blog/2018/01/25/moving_cli/
This is how the machines get the drop on us. Just silently make our lives a tad bit better:
OH (from an awesome Lyft driver): “Today has been great. I’ve been blessed by the algorithm.”
Immediately had an eerie feeling that this could become an increasingly common way to describe a day.
— Keith Coleman 🌱😀🙌 (@kcoleman) March 16, 2018
it's great making a product for linux users because they have such a low baseline expectation for things working out-of-the-box and will go to great lengths to help you debug
— yan (@bcrypt) March 23, 2018
Finally, a chance to edit my paper! Let's open the folder.
draft
draftFinal
draftUpdateFinal
draftUpdateFinalFinal
draftUpdateFinalFinal2
draftUpdateFinalNew
finalDraftFinal
finalDraftFinalRevised
finalDraftFinalUpdate
newDraft
newDraft2
newDraftUpdate
revisedDraftFinal
Umm...
— Lego Grad Student (@legogradstudent) March 30, 2018 Does no one show them git?
https://www.wired.com/story/rss-readers-feedly-inoreader-old-reader/
I’ve been thinking about writing a script to take the Facebook download and extract it to Jekyll posts…then exit Facebook. The social media web should have been built around RSS and pull-based, open-standard providers instead of about seducing and inveigling us to become serfs in their garden.
My employer is expanding to Houston. Seriously, if you’re into tech and education, talk to me.
https://www.chron.com/business/bizfeed/article/Facebook-providing-scholarships-for-Houstonians-12801891.php
I have often taught students that JS is like English: weird looking & hard to always predict but in every niche it somehow gets by: Chinglish, Hinglish, Danelaw, US-EN, Carib patois, etc. English always manages to work its way in and has proven extremely difficult to extirpate (ask the French). JavaScript will be the same.
Michaelangelo
I hung this print for years before leaving home. I knew it was Michaelangelo; and then later studied Heraclitus (whom the figure portrays); but only today I learned he was a last minute addition. Raphael was so moved by what was next door he added his colleague as a necessity.
OMG THIS IS AN AWESOME SOLUTION TO #GDPR - BACK TO 1996! pic.twitter.com/WZSXPbneN2
— Alec Muffett (@AlecMuffett) May 24, 2018 Going back to text-mode internet sounds more and more appealing every day. Maybe the French were right with Minitel being sufficient and filling the rest of their lives with delicious food, wine, family, art snobbery, cinéma.
Activities day @lambda_conf, and a beautiful day it is! pic.twitter.com/0k5WOCsyi7
— Stephen Pimentel (@StephenPiment) June 2, 2018 I love FP more than most but I would not be able to FP on a day like that.
Teaching:
– For beginners, the emphasis is on simple rules.
– For advanced learners, the emphasis is on giving the full picture.
— Axel Rauschmayer (@rauschma) July 4, 2018 Writing at now 2 boot camps has borne this out for me.
http://nycma.lunaimaging.com/luna/servlet/s/45j4ov
My grandfather’s house in 1940. He lived here with his two sisters, his brother-in-law and his parents. This is out on 120th street in Queens.
I recently found a tool that has really improved my life: jq. jq can
extract, restructure and change JSON data. Professional programmers often call
this operation “munging,” “massaging,” or “frobnicating.” The rest of this post
will take you through an example of some frobnication.
A great feature that ships with VSCode is the “tasks” capability. I’ve not seen
many developers use it, so I thought I’d document how it’s made my life blogging
with a statically-generated site simpler.
Often, when doing any development, developers find themselves performing certain
loops: drop to shell, run some command, capture output, paste output back into
the editor, etc. Eventually most developers wind up curating a per-project set
of shell aliases and functions to accelerate that loop. Perhaps the high-water
mark for this behavior is the Rails framework which came with a task runner,
rake, by default.
I’m glad to say that VSCode has a built-in task runner facility that
can be leveraged to make whole series of routine tasks much more pleasant.
https://www.inputmag.com/tech/ibm-will-offer-free-cobol-training-to-address-overloaded-unemployment-systems
Sneaky setup for “Hidden Figures 2?”
I learned the basics of COBOL in order to be prepared for the Year 2000 bug (“Y2K”). Didn’t really need to be done, but I was thankful to appreciate a different paradigm of computation.
But those check printing machines still run on it and we’re about to stimulus a lot of those machines back to life.
I’m one of the people all of this social distancing is helping to stay alive, so far. I belong to the group of people—the infirm, the weak—who certain conservatives have said should offer themselves up to the coronavirus. I’m part of the “cure” that mustn’t be worse than “the problem,” according to Donald Trump. Glenn Beck seems to think we should show our patriotism by volunteering to be killed by the virus rather than “kill the country.”
https://www.theatlantic.com/magazine/archive/2020/06/surviving-cancer-coronavirus-pandemic/610594/
Conservative commentator Caitlin Flanagan on her life as a vulnerable in this pandemic.
I don’t see how this is anything short of proof of:
The end of the nation-state The zenith of white privilege The apex of exceptionalism A denial of the spread effects of R0 If the local monopoly on violence is abrogated, then the social contract is undone. Absent parental supplanting corporations as stewards of the citizens welfare, the time is ripe for national fracture.
Well played, Vladimir.
A tendency to violence and a tendency to crediting disinformation will lead to a dangerous crisis.
https://www.nytimes.com/2020/05/13/us/coronavirus-businesses-lockdown-guns.html?referringSource=articleShare
https://www.wptv.com/news/coronavirus/jupiter-man-skeptical-of-coronavirus-gets-infected-changes-opinion
Even after you discover you’re right, you’ve likely done damage by spreading. You might survive, but the weaker might not. How can people be so selfish?
Note, he is a rideshare driver. Possibly the worst possible vector for spread.
“My wife’s on a ventilator. It’s been like that for three weeks, and it’s tough. It’s sad,” said Hitchens.
He thought this might be a government-planned distraction. I’ll wager he’s been drinking some disinformation from right-wing “alternative” media.
On Saturday, a diverse crowd of 150 showed up in Vidor, once known as a Klan stronghold, to turn their backs on the town’s past.
A famous sundown town turns a page. I’d sworn this day would never have come if you’d asked me about it. But…dum spiro spero.
https://www.texasmonthly.com/news/black-lives-matter-vidor/
https://www.fox26houston.com/news/governor-texas-surpasses-5000-new-covid-19-cases-in-a-single-day-for-the-first-time
My God, in 9 days (probably less), at this rate, Texas will tie with New Jersey
the co-epicenter of the pandemic that was much closer to ground zero. You are doing it wrong, Texas. This individualist-uber-alles ideal is out of hand.
Recently at work we decided to run a linter to check our spelling. This
produced a lot of output from years of, uhm, typos. The errors found (and
exceptions that needed to go into our custom dictionary!) were saved in a JSON
file. I was looking for a way to use this JSON file to help vim help me work
through this backlog efficiently. Vim proved up to the challenge when I
configured the following values correctly.
:makeprg
:make
The quickfix window
:errorformat
I’ll give a strategy for using these in the extended post.
https://www.sfgate.com/sfhistory/article/Say-goodbye-to-San-Francisco-s-iconic-Coca-Cola-15675800.php
No Magnolia or Mother’s in Austin; no Coke sign to view from Potrero hill…waiting for them to pull Manhattan out of New York.
I remember my realtor in SF saying that she always “knew she was back home from a road trip” when she saw that sign.
This Friday I will shut down my personal Blue App and Instagram accounts forever.
I’m transitioning to a newsletter for low-volume updates. I hope you’ll
subscribe: https://stevengharms.com/newsletter. The first newsletter will go
out on Friday.
My motivations are simple: Facebook has failed to steward their platform well,
they have cheapened the notion of friendship, and they feed the worst of our
voyeuristic tendencies. If you’re interested in my reasoning, please see my
blog post on the matter.
Donald Knuth, the Stanford computer scientist involved in most of the major
research innovations on that campus — including email, wrote:
I have been a happy man ever since January 1, 1990, when I no longer had an
email address. I’d used email since about 1975, and it seems to me that 15
years of email is plenty for one lifetime.1
Of Facebook properties this same can be said: it has been plenty for one
lifetime.
As I prepare to log out one final time, I’d like to tell you about how I wish
social media would have gone. It didn’t go this way. Greed and control and
perverse incentives got in the way. I’ll tell you how it was in the late 90’s
&emdash; how it was small, quaint, and good &emdash; and how it turned into the
blighted, “alternative facts” hellscape of today.
On tightening the feedback loop between programmers and a feedback canvas: from
Adam Vermeer’s “badspreadsheet” (2024) to Brett Victor’s prototypes (~2014,
left image) to Medley Interlisp (~1986).