155 comments

[ 3.8 ms ] story [ 222 ms ] thread
Just wanted to say, this is an excellent idea and I'll be blatantly stealing it for myself from this point forward; thank you for putting this motivation in my head by your successful implementation.

I've done a half-assed "important learnings from the last year" retrospective for myself, but your method of keeping it going forward is both far less lossy and more complete.

Putting it on GIT as well seems like a smart choice. Treat it as your "Accessible anywhere" personal cheat-sheet.

Can I jump-start your list? "Git" is a product name, not an acronym. It's just spelled Git.

(Please forgive me this act of pedantry, as I forgive those who commit pedantry against me...)

I blame that I've been writing "SQL" all day and have unconsciously associated three letter non English words and "Is acronym". (Although I guess "git" is a word, although not typically part of my colloquial vocabulary... Maybe if I was a curmudgeon ~50 years ago as opposed to being a curmudgeon now)

Regardless, your pedantry is excused :)

> I blame that I've been writing "SQL" all day and have unconsciously associated three letter non English words and "Is acronym".

Hyperpedantically, "SQL" is an initialism, but not an acronym.

TIL what an initialism is and how it differs from an acronym :)

Funnily enough, Chrome is flagging it as a misspelled word, but googling for it brought up its definition in Google's usual definition box.

I'd suggest google dictionary plugin. Double click on anything on the page and you get the definition as a small popup/tool-tip. That's how even I learned what Initialism is.
Try turning on "Ask Google for Suggestions". That should do the trick.

Normal spellcheck is a dictionary. "Ask" is server-side magic that is context-aware and goes beyond dictionaries. After turning it on, try "icland is an icland" to be amused. Or "Brittaney Spears".

I normally don't go on about this, but since this thread is about TILs... :)

Only if you pronounce it "Ess-Kew-Ell" and not "Sequel", though, right?
Hmm, interesting. I think you are right.

(NASA is an acronym. NSA is an initialism.)

Pronouncing SQL as es-kyoo-el is a rookie mistake. Sequel!
There are varied opinions about this topic. Several Sources of Truth and Righteousness advise against "sequel"[1][2], However it seems that in a certain building in WA "sequel" is preferred [3].

[1] https://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html

[2] http://www.postgresql.org/about/press/faq/

[3] https://social.msdn.microsoft.com/Forums/sqlserver/en-US/fd6...

Redmond also colloquially refers to the product Microsoft SQL Server as just SQL (pronounced "sequel"), as in, "We're trying sell more SQL licenses," or, "Is the backing DB for your SAP installation Oracle or SQL?"

This has led to some confusion.

Additionally, as I pointed out in a sibling comment up the chain somewhere, SQL is an abbreviation of the original acronym, SEQUEL, for Structured English QUEry Language. It seems with this provenance that the "sequel" pronunciation is more historically correct.

Thanks, I did not know about the SEQUEL acronym.
For fun, try trolling obnoxious people by pronouncing it like "squeal" :)
Perhaps even more pedantically, SQL is actually an abbreviation of an acronym. It was originally conceived as SEQUEL for Structured English QUEry Language[0], only being abbreviated to SQL for legal purposes (SEQUEL was already trademarked).

For this, and sheer convenience, I take the stance that it should always be pronounced as "sequel" rather than pronouncing each letter.

[0] https://en.wikipedia.org/wiki/SQL#History

I'm forced to disagree with you here. I take the stance that it should always be pronounced as "squirrel", because seriously, who doesn't like squirrels? :)
So, on top of this, they have since decided SQL is no longer Structured Query Language--it's just SQL.
Who's that? ANSI or ISO or someone else?

I skimmed the Wikipedia article and didn't notice any mention of removing the initialism. I did find a note that the original language standard did define the "es queue el" pronunciation, but since no one is standards compliant anyway, I think I'll still stick with "sequel" (:

I actually can't find a source. My professor told me back in the day, and that's all I have.

The talk page on Wikipedia has a lot of discussion, including a citation of a book, but I don't have the book: https://en.wikipedia.org/wiki/Talk%3ASQL#SQL_Acronym

Someone there also keeps saying that the second reference on the article explicitly says it's not an acronym, but the current second source explicitly says it is, so... ¯\_(ツ)_/¯

Thanks. That's my TIL for today.
FYI: The difference between an acronym and initialism is that the abbreviation formed with initialisms is not pronounced as a word, rather you say the individual letters, such as FBI (Federal Bureau of Investigation), CIA (Central Intelligence Agency), and DVD (Digital Video Disk*). Edit: Not a criticism, I just I didn't know.

    > Hyperpedantically, "SQL" is an initialism, but not an
    > acronym
I really wish people would stop posting this - I feel like I only ever see it posted here, too.

OED's first entry on "acronym, n":

    > A group of initial letters used as an abbreviation for 
    > a name or expression, each letter or part being
    > pronounced separately; an initialism (such as ATM, TLS)
OED's second entry on "acronym, n":

    >  A word formed from the initial letters of other words
    > or (occas.) from the initial parts of syllables taken 
    > from other words, the whole being pronounced as a single
    > word (such as NATO, RADA)
OED's entry on "initialism, n":

    > The use of initials; a significative group of initial
    > letters. Now spec. a group of initial letters used as
    > an abbreviation for a name or expression, each letter
    > or part being pronounced separately
SQL is both an acronym and an initialism. The Wikipedia article on "initialism" it is guilty of using very selective quotes in its "citation".
this is awesome. this is why i read the comments before the content. (and I mean this whole thread) thanks
So SQL is an acronym for an acronym?
SQL is an abbreviated acronym.
(comment deleted)
Maybe he wrote it on his MAC before he uploaded to the WEB site.
Everyone at my company really got behind the idea of TILs too, so we created a little web app for it -- https://til.hashrocket.com/
Any chance this is open source? Would love to set this up for my office
We recently open-sourced it. Let us know what you think!

https://github.com/hashrocket/hr-til

I like it but upgrading ruby to the required 2.3 from 1.9 that comes with Ubuntu 14.04 turned out to be a daunting process. The 2.3 build was at least 15 min with several errors, and then bundler wouldn't work. I wiped everything ruby and will try again with RVM. It seems like over kill for such a simple app. I am not a RoR guy and my first impression is not very good compared to other server apps I've installed, or maybe I just need more patience!
I thing everybody in the Ruby world uses either RVM or chruby/ruby-install.
I've had great success using Brightbox's Ruby PPAs https://launchpad.net/~brightbox/+archive/ubuntu/ruby-ng. Might want to give them a try first.
This worked! Just a couple of problems. Hashrocket needs dev version of Ruby and pg wouldn't build, but StackOverflow told me I needed to install libpq-dev. Then I had to install postgres, but wasn't hard.
awesome idea! Thank you for that.
Tried messing around with it, but bundler dies every time :/
For me, this is all about tracking my personal learning. I reference old posts several times a week. I hope others can learn from it as well!
Great idea. Thanks for posting it. I'm motivated to do the same.
Really well done and nicely organized. Did you find yourself noticing the overhead of writing these after learning something new? Or did you write them as an afterthought later on? Did you pick certain things to include rather than others?

Defiantly thinking about doing something similar to this sometime soon!!

I generally take about 5 minutes at some point each evening to write up something that I learned that day or earlier that week.

I've always viewed them as being quick and easy to write up which has taken away the intimidation that can come with trying to write a big blog post.

Cool idea! I'll definitely be stealing this. Have you thought of making it searchable or generating a site your posts? Anything you would have wished you had done differently since you started it?
This is great.

As an extension, I was discussing with a friend a while ago how great Stackoverflow is at capturing the contents of expert's brains. Is there a way to achieve that on a broader scale without requiring the question-asking side of things? Say you're a lab scientist and you have a small trick or bit of informal insight, how could you be prompted in the right way to share it?

and also tagging it in such a way that it can be found. I have thought about this before too - would be a great supplement to something like wikipedia.
Stack Exchange sites would love you to ask the question and then answer it yourself. It's not exactly primary use-case though so I suppose it's not obviously acceptable behaviour.
OP might not have enough karma to answer their own question.
great idea, I use drupal to keep some notes myself, but this is concise and easier to access, when this list grows you may want to add a search button to it?
Great job, and even better idea for putting it into a git repo!

I've been keeping a sort of "development log" for the past few years where, each day, I write a small blurb about what I've done, but more importantly, what I've learned.

It's a similar idea to this, but obviously a lot less structured. (The use of Markdown was a great idea, btw!) This helps you get an idea for how much you have done if you ever find yourself questioning what you've been doing for the past little while.

It is fun to see what technologies I've been writing about the most over the long run -- Vim and PostgreSQL seem to be the big ones!
I've been using http://www.devarist.com (which was posted on HN back in August last year) to record little tidbits on an almost daily basis, and it's been working pretty well.

If it's something I have to look up I try to make a habit of putting it in there. Then I can do a search for the search phrase I'd normally make and it pops right up, saves me a lot of time looking through the top couple of documents for the nth time.

Devarist has Markdown support also. I've been using it to include little 20x20 icons for each programming language or technology so I can scan through the past pages to see at a glance which technology each note applies to.

That having been said, doing it in Github might actually be better for the public tidbits. Some things you learn kind of need to be kept private though (like your own projects, or pertaining to your job, or pointing out things you have trouble remembering to do).

I use a Google Drive directory full of markdown notes for this purpose. Edit with Writeily, the amazing Android markdown editory, or Macdown on desktop. Done.
I have done something previously in the past but never keep it up that long. I like your layout. Was it all manual? That is - did you have to do the index/readme manually?
yes, I just placed each post alphabetically as I went.
Your commit messages are remarkably consistent :)
Great idea!

By the way, minor note on unix/copying-file-contents-to-system-paste-buffer.md:

"pbcopy" is an OS X only utility, but X11 (Linux, BSD) has a rough analogue in the form of "xclip". Just in case you ever switch over ;)

Good catch, I ought to move that over to the Mac section.
Thank you. I was so excited when I read this, it would of been such a letdown.
A great reminder that everyday we do learn something and should be thoughtful about documenting it. We often move to fast to realize that what we discovered, to get something down, is unique. Thanks for sharing and keep it up!
I know this isn't intended to be stackoverflow, but it'd be cool to have a way to get feedback on things.
I know this isn't intended to be stackoverflow, but it'd be cool to have a way to get feedback on things.
This is awesome. It makes me want to do something like it. How about if instead of putting it in a public repo, I put it in a private repo that I can use as a draft for a blog, so I could use it to gradually build an audience.
Wow cool idea! I've kind of already been doing something like this but posting little code snippets to my twitter account for later reference. I like the idea of creating a repo like the OP and not having to spam my followers with my random, crappy code! :~) Cheers!
I keep my org notes in a private repo, which I often edit directly on Github. I organize by topic. e.g. Cooking, Photoshop, Haskell, yoga, drawing, Go, Emacs, vim, etc. I use my two README.org to organize the information. One is for all topics and the second is a much smaller immediate README that I want to view daily. I keep it pruned since the main README has all the references.

I'd like to breakout topics of general interest but I feel that I'd need to be more organized. Last week, however, I did move my Ergonomic Notes (e.g. RSI, keyboards, mice, programming by voice) to a public repo.

https://github.com/melling/ErgonomicNotes

I also find it helpful to group topics and create menus in the org files:

Menu: Ergonomic Keyboards | Ergonomic Mice | Programming by Voice | RSI

I've been keeping my version of TILs on Quiver and Notes. You've inspired me to organize them together into Github and share. I'm thinking of making Gists for each categories instead of individual files though. Any reason why you created individual files?
Would be nice to connect this to Twitter and get an update when a new one appears. Have you thought of doing that?
That's what newsfeeds are for. You can get an atom feed of the latest commits to any repo via github:

    https://github.com/jbranchaud/til/commits/master.atom
Thanks for that. The HTML encoding is... interesting there - < is there, but > isn't replaced by >. How on earth is a feed reader meant to parse that?
In XML, you don't need to escape >, IIRC. So, it would seem some programmer is either lazy here, or trying to save bytes. You MUST escape <, as otherwise it looks like the start of a tag. Note that the content of the tag you see that in is serialized HTML, too, so at that point, there's HTML in the XML. (and not very good HTML…)
I thought TIL stood for Threaded Interpretive Language, as per Forth or Factor
This is great.

BTW I've lurked that concept from you just recently and started doing the same stuff on Sunday. Thanks for inspiration.

Lots of good stuff here. I would appreciate a wiki-style site with short answers like these instead of searching {Google,DDG} and trawling the [stackoverflow] results.

Not all of them are necessarily good practice though. This made me chuckle:

What Is The Current [Git] Branch?

    git rev-parse --abbrev-ref HEAD
(if you're reading this jbranchaud, try `git branch` :p)
You could open an issue on his repo :)
`git branch` also determines whether your working tree is modified. This can be extremely slow on large repos.

`git rev-parse --abbrev-ref HEAD` is very inexpensive in comparison, and doesn't print anything extra you might need to parse out if you're in a shell script.

Ah yea this is awesome. I like this idea more than how I do my notes[0] because I don't actually do most of my notes in github where this makes more sense to actually commit and know when to commit/push.

[0]:https://github.com/cmpis/notes

I've been putting each fact I learn as a line in a til.yaml file for the last 6 months. I grep through all my til.yaml files any time I need to remember something. It's been useful.