I really like this format. It's an interesting mid-point between a tweet and a blog, but optimized for "evergreen" content as opposed to content where the date is key.
This is amazing. Curious how you search or go back to refer them? Have you considered porting this to a doc generator like mdBook(https://github.com/rust-lang/mdBook).
I usually remember when I've written on something even if I've forgotten the details. I tend to be able to do a Cmd-f search of the README for a keyword to turn up what I'm looking for.
All that said, I've been contemplating moving all of this into a Gatsby-powered site with either a custom search backend or Algolia to make it all a bit more accessible.
Got it. I've been trying to solve a similar problem as well. I also stumbled upon this Gatsby theme for such a scenario (https://github.com/aengusmcmillin/gatsby-theme-brain). It's inspired from Roam Research's bidirectional links to notes.
Indeed... the MacOS command line tools often are missing or have some different defaults and hotkeys (I'm looking at you, 'top') than the versions I'm used to on my linux systems, which, sure, ecosystem diversity is cool and all, but... Every time I try to rearrange the processor usage in TOP, I open it up and think 'IT'S A TRAP!'
(admittedly, this was all just an attempt at making a sufficiently substantive comment so I could make the joke about 'ack --bar')
Does any platform ship with ack? I wouldn’t expect any mainstream one to. (And for any platform inclined to add useful utilities, I’d suggest ripgrep rather than ack, as it’s way faster, and superior in almost every regard.)
This is great. I've been collecting 'things' I learned and links to pages, like a reading list etc. but none of that sticks out long term because the resources might move, the data might not be searchable or the thing you wanted to get out of a larger article is actually much smaller than the 20 pages it came with. And then when you collect links and a reading list you end up not really going back to it anyway.
This approach makes it much easier to just add the thing you actually wanted to learn and learned in a small concise way with a reference back to where you found it. So simple, yet as so many others I hadn't thought of it.
You are absolutely right, I wrote a app for myself to note down links and texts and some webpages as design would look good. After a while everything would have changed.
Why would you need to create notes and go back to it though? Isn't searching for it much faster? Say you learned a nifty hotkey to backup text using a shortcut on OSX (or whatever). Why not simply search "hotkey backup osx"? And say that page you found it on shows up, but like you said, it's very long text page. Then just just bring up the search-in-page feature in your browser, and you're there!
Because sometimes you find an article on hacker news that you didn't search for but did stumble upon. Then you can't search for it because you weren't searching for it in the first place.
NEVER EVER move one single html file or change an URL. Don't you hate it when you click on a link and it says "404 file not found"? Well, I've been here since 1994, and all the links to my site still work!
He's full of what seems to me good advice, e.g. from the same page:
Make your website be your filing cabinet. If you have little projects underway, put them on your website while working on them. Reject the paper-publishing traditions of polishing an article to perfection before publication. DO NOT ELEVATE IMAGE OVER CONTENT. (Perhaps even keep yourself honest by cultivating a deep revulsion for "image.") Instead, let all your flaws hang out, and type things directly into your site in rough draft form (label them UNDER CONSTRUCTION if you really must).
Expunge the fear of embarassment from your life, and instead practice making foolish mistakes in front of thousands of strangers. Stop using your PC to store files, instead use your website as your main storage. Let people poke through your filing cabinet. It will contain far more than a perfectly polished website does.
Seems like a really simple web app concept someone should pursue. I feel like being able to browse other people’s TILs and save them/search them would be a really valuable thing.
True. I think that's the way the world is moving towards. I also see the 5000+ custom alarm clock apps out there as essentially forks of "deployed apps" for just alarms. But that was already predated by the explosion of websites doing the same XYZ thing (calorie trackers, photo storing apps, etc...) specifically before the mobile era. I think we're just seeing the same with the open source world as we've seen occur in more mature worlds.
ive been doing this mostly on stackoverflow (where I answer my own question, or answer questions to something I couldn't find an answer too). It does take a bit longer than a repo where I just dump information, so I might try that instead
My thought process is I'll google something and find something I wrote
There's also the bonus that you might get an expert answering your topic
EDIT: related story - I wrote an answer to a question about programming a financial calculator, and one of my dev friends had the same exact problem/found my solution the next day on stackoverflow
I have at least two things I consistently forget, and then relearn from my own Stackoverflow answer. Comes up rarely enough that I chuckle at myself everytime it happens. :-)
The absolute best Vim command of all times is "ciw", or its variants "ci(", "cip", ... You use this command when your cursor is in the middle of a word (or parenthetical expression or paragraph or ...) and you want to replace that word by a new one.
Maybe it's too well-known, but this command changed my life and I haven't found in the linked list of TILs.
Anyone that hasn't been exclusively using macOS for their entire digital life, or at least years, anyway.
'Command' (resp. 'Windows', resp. 'Super') is a different story. You can't say 'Super' with a straight face without also marking yourself out as someone who borders on saying 'GNU with Linux', or 'I run Arch'.
(For what it's worth, I do run Arch. ;))
IIRC Option is dually labelled as Alt on some Apple keyboards anyway.
> You can't say 'Super' with a straight face without also marking yourself out as someone who borders on saying 'GNU with Linux', or 'I run Arch'.
Since basically nobody knows the historical difference these days, I just call it the Meta key to avoid the above situation. When non-techy people ask me what the hell I mean, I just explain that's the technical term for the key and that I use it so both Mac and Windows people understand me. I've even heard one of them start using the term themselves, presumably to appear smarter in front of their boss.
While it's not wrong to refer to the Super key as "Meta", I don't like calling it that, because in some contexts (like emacs), "Meta" means the Alt key.
How can you know that this is a common idiom? Is there an (prob. GNU)-document for these things?
Two reasons I am asking:
1) I feel terrible reading this, since my last post was preaching for XCFE for this exact functionality.
2) It would be awesome to have these things bundled and discover many things which are yet not discovered by me.
The major Linux desktops have had this sort of thing for like 15 years. It’s usually only discovered by people who obsessively tweak their settings, though.
By the way, recently discovered you can get some of these shortcuts in all input boxes by activating “emacs shortcuts” inside of gnome-tweaks! Was one of the final blockers for getting me from Mac to Linux
Not having this has been my #1 Terminal frustration for years... and it's been there this whole time?!?!
This type of thing has actually happened to me several times in the past year or so, where I'd be frustrated an obviously good feature doesn't exist, I'd Google it to see if other people complain about the same thing... only to find it exists after all.
If I read the manual for everything I've ever used, I'm not sure I'd have time to actually accomplish anything in the end.
Sure, let me spend a day reading through the lists of keyboard/mouse shortcuts for every piece of software I use just to see if there's anything useful in there? No thanks...
Good UX would pop up a balloon informing me of the feature after the first time I held down my left-arrow key for more than, say, keypresses.
As someone who actually DOES read the manual for everything, your objection about accomplishing nothing is BS. It's a bit of an upfront investment, but you long term efficiency is dramatically higher. You have time to post comments on HN, you have time to read the damn manual.
But as someone who also designs UX, I never design anything that requires instructions. There are plenty of good ways to make things self-explanatory. It's just harder.
However, command line UX is different. You can make the basics self explanatory, but you're so limited in your options that exposing the advanced stuff intuitively muddies everything else. So there's a trade-off you have to live with.
While technically true, I tend to forget what I read after some time, especially tips and tricks that did not seem that
useful when I first read them. So RTFM is not the silver bullet unless you somehow have a system that reminds you to re-read every manual every x months.
CLIs are like that. On the bright side, things rarely change. So the stuff you read in the manual 30 years ago still likely works. I prefer it over relearning GUIs with every update.
Of course, you might as well disregard the manual and discover things on your own as you need them. Nevertheless, it helps to go at this with a mindset of "this feature surely already exists" lest you're compelled to develop a worse version of the feature yourself.
It's been one of my #1 terminal frustrations, too!!! But instead of relying on GUIs and the mouse, I started to use terminal tools and wrote a plugin for tmux that helped me. https://github.com/schasse/tmux-jump
Maybe it's useful for you.
To add what was an essential follow-up for me when I discovered this: Once you’ve enabled mouse=a, use the alt key to select text in vim for your system clipboard, rather than vim’s visual mode.
Found another interesting problem. mouse=a works great on my Ubuntu laptop; however, it has no impact when connected to Linux servers via Putty - when I click somewhere in the vim window, the cursor doesn't jump to that spot.
I don't understand this part. How do you select using Alt?
Typically with mouse enabled, you can select text with the mouse, but this doesn't go to the X clipboard. While with mouse disabled, text selected with the mouse goes to the X clipboard.
What I had meant was that when using vim configured with mouse=a, selecting with the mouse while holding down the Alt key would disable the terminal emulator's mouse reporting and allow the selection to be copied to the system clipboard.
But actually this depends entirely on the terminal emulator. The Alt/Option key works with the default preferences for iTerm2 on MacOS, but with GNOME terminal I reproduced the same behavior using Shift instead.
I agree there are ways to organize this that would benefit outside readers, but am guessing the simple, consistent structure probably helped the author get to 5 years of TILs!
It's interesting they chose to alphabetize and start many entries w/ verbs.
Forgive me for my ignorance, but I haven't contributed to open source much yet. What is the reason for forking this repo. I see a lot of people have done it. Wouldn't that be akin to cloning someone else's personal blog? I just don't see the point of that.
Doesn't GitHub delete forks if the original is deleted? Of course, actually cloning the fork onto your computer and pushing it to a new repository without using GitHub's "fork" feature should get around this easily.
When you delete a private repository, all of its private forks are also deleted.
Deleting a public repository
When you delete a public repository, one of the existing public forks is chosen to be the new parent repository. All other repositories are forked off of this new parent and subsequent pull requests go to this new parent.
> When you delete a public repository, one of the existing public forks is chosen to be the new parent repository. All other repositories are forked off of this new parent and subsequent pull requests go to this new parent.
One of the benefits of open-source is that you can ensure a copy of the source exists, in the event that something makes the original source disappear.
Gotcha. So the motivating factor was for individuals to get a copy for themselves, perhaps even use it as a form of bookmark overloaded as a backup feature. They'll need to keep pulling if they want to keep it up to date, but I suppose that could be automated.
25 closed merges, of which half of them are closed and half merged. Compare that to 330 forks and 6.7k stars. This is still an overwhelmingly read-only parent fork that is basically the author's personal TIL blog. https://github.com/jbranchaud/til/pull/24
I usually click 'fork' with the intention of making some minor change, and maybe committing it back.
90 percent of the time, that minor change either isn't suitable for being committed back to the project (it's badly hacked in, it's too specific to my usecase, etc.), Or the change ends up being harder to make or test than I had imagined, so I give up but don't bother deleting the fork.
That could explain the large number of forks and small number of PR's
Ive noticed some people use github almost like a social network. A rough analogy to Twitter would be that starring a repo is similar to liking a tweet, and forking it is almost like a retweet.
Staring at an empty sheet of paper (or a text file) can be daunting, and can suck all of your enthusiasm out of you in short order. It's much, much easier to start with some content and append your thoughts to it.
I don't really see the point of this, except that it helps the author stay consistent to make updates and learn things. I'm not really sure why anyone would consume this, except for curiosity into what they could do for implementing their own consistency forcing function.
Sorry, good work to the author. I'm kind of a downer, and personally struggling to find motivation to work on projects, but often shoot myself down first. I don't see the point in a lot of projects out there.
Would you say you've done a lot of projects though and that was the win itself? And that despite not being able to find a purpose to most of the projects, the benefit has been the learning/growth/experience/fun/etc...?
It's fantastic food for search engines. I write a lot online, and a few times a year I'll type something into Google and find the answer in something I wrote years ago and forgot about!
These are actually Emacs-style editing shortcuts that come are part of Cocoa's text controls. If this doesn't work in an app on macOS, that app has broken them or is trying (evidently poorly) to reimplement their own text editing widget.
That explains why they don't work on Windows. I'd have been mildly surprised by them breaking many established shortcuts like Ctrl+A for Select All, and Ctrl+E for search
You can further Emacsify or customize text controls to your heart with a `DefaultKeyBinding.dict` file.
This what I've been using for ~8 years. Apple removed a few functions here and there but still plenty are available. Reference URL in the file comments.
“On Mac, you can insert a non-breaking space character by hitting option-space.”
Does anyone know how to turn this OFF? I accidentally type non-breaking spaces in the terminal all the time and then have to meticulously try re-entering each space from the end backwards until bash finally groks it...
139 comments
[ 3.0 ms ] story [ 261 ms ] threadSara Soueidan has a similar log oriented toward UI work:
https://www.sarasoueidan.com/today-i-learned/
Guess I better start today!
https://dev.to/jbranchaud/how-i-built-a-learning-machine-45k...
It's quite useful when I stumble upon things like how do I format this date, or match balanced brackets in a string.
Battle tested code ready for my taking. Quite useful when I'm in a hurry! Do you guys do this too?
All that said, I've been contemplating moving all of this into a Gatsby-powered site with either a custom search backend or Algolia to make it all a bit more accessible.
:(
(admittedly, this was all just an attempt at making a sufficiently substantive comment so I could make the joke about 'ack --bar')
Anyway, thanks for sharing your tips!
This approach makes it much easier to just add the thing you actually wanted to learn and learned in a small concise way with a reference back to where you found it. So simple, yet as so many others I hadn't thought of it.
https://github.blog/2008-09-16-use-github-as-your-blog/
NEVER EVER move one single html file or change an URL. Don't you hate it when you click on a link and it says "404 file not found"? Well, I've been here since 1994, and all the links to my site still work!
He's full of what seems to me good advice, e.g. from the same page:
Make your website be your filing cabinet. If you have little projects underway, put them on your website while working on them. Reject the paper-publishing traditions of polishing an article to perfection before publication. DO NOT ELEVATE IMAGE OVER CONTENT. (Perhaps even keep yourself honest by cultivating a deep revulsion for "image.") Instead, let all your flaws hang out, and type things directly into your site in rough draft form (label them UNDER CONSTRUCTION if you really must).
Expunge the fear of embarassment from your life, and instead practice making foolish mistakes in front of thousands of strangers. Stop using your PC to store files, instead use your website as your main storage. Let people poke through your filing cabinet. It will contain far more than a perfectly polished website does.
http://amasci.com/faq.html
EDIT: Just like this: https://til.hashrocket.com/ but open to anyone to sign up
I think there’s lots of room for simple, purpose built web apps for stuff like this.
My thought process is I'll google something and find something I wrote
There's also the bonus that you might get an expert answering your topic
EDIT: related story - I wrote an answer to a question about programming a financial calculator, and one of my dev friends had the same exact problem/found my solution the next day on stackoverflow
[wow whoever wrote this was an idio... oh nevermind ^I'll just walk out now]
TIL just typing "=" in Vim fixes all my indentation
Just subscribed to his newsletter so I can get these and not forget about this cool repo!
Maybe it's too well-known, but this command changed my life and I haven't found in the linked list of TILs.
If you want to change a single line without doing a visual selection, '==' does the trick.
Anyone that hasn't been exclusively using macOS for their entire digital life, or at least years, anyway.
'Command' (resp. 'Windows', resp. 'Super') is a different story. You can't say 'Super' with a straight face without also marking yourself out as someone who borders on saying 'GNU with Linux', or 'I run Arch'.
(For what it's worth, I do run Arch. ;))
IIRC Option is dually labelled as Alt on some Apple keyboards anyway.
Since basically nobody knows the historical difference these days, I just call it the Meta key to avoid the above situation. When non-techy people ask me what the hell I mean, I just explain that's the technical term for the key and that I use it so both Mac and Windows people understand me. I've even heard one of them start using the term themselves, presumably to appear smarter in front of their boss.
<c-a> = go to beginning of line
<c-e> = go to end of line
!! = repeat last command
<esc> b = move "back" one word (also <c-b> and <c-left>)
<esc> f = move "forward" one word (also <c-f> and <c-right>)
Many others exist. See `man bash` under READLINE.
!!enter which is 3 buttons where as up-arrow enter is the same thing.
See sudo !!.
This type of thing has actually happened to me several times in the past year or so, where I'd be frustrated an obviously good feature doesn't exist, I'd Google it to see if other people complain about the same thing... only to find it exists after all.
There needs to be a word for this...
If I read the manual for everything I've ever used, I'm not sure I'd have time to actually accomplish anything in the end.
Sure, let me spend a day reading through the lists of keyboard/mouse shortcuts for every piece of software I use just to see if there's anything useful in there? No thanks...
Good UX would pop up a balloon informing me of the feature after the first time I held down my left-arrow key for more than, say, keypresses.
But as someone who also designs UX, I never design anything that requires instructions. There are plenty of good ways to make things self-explanatory. It's just harder.
However, command line UX is different. You can make the basics self explanatory, but you're so limited in your options that exposing the advanced stuff intuitively muddies everything else. So there's a trade-off you have to live with.
Of course, you might as well disregard the manual and discover things on your own as you need them. Nevertheless, it helps to go at this with a mindset of "this feature surely already exists" lest you're compelled to develop a worse version of the feature yourself.
Typically with mouse enabled, you can select text with the mouse, but this doesn't go to the X clipboard. While with mouse disabled, text selected with the mouse goes to the X clipboard.
But actually this depends entirely on the terminal emulator. The Alt/Option key works with the default preferences for iTerm2 on MacOS, but with GNOME terminal I reproduced the same behavior using Shift instead.
It's interesting they chose to alphabetize and start many entries w/ verbs.
* in case the repo gets deleted, at least you still have a copy
* some github apps on tablet might give you an easier access to your own list of repos
When you delete a private repository, all of its private forks are also deleted.
Deleting a public repository
When you delete a public repository, one of the existing public forks is chosen to be the new parent repository. All other repositories are forked off of this new parent and subsequent pull requests go to this new parent.
Yikes, is this a random process?
https://github.com/jbranchaud/til/pulls?q=is%3Apr
90 percent of the time, that minor change either isn't suitable for being committed back to the project (it's badly hacked in, it's too specific to my usecase, etc.), Or the change ends up being harder to make or test than I had imagined, so I give up but don't bother deleting the fork.
That could explain the large number of forks and small number of PR's
These are actually Emacs-style editing shortcuts that come are part of Cocoa's text controls. If this doesn't work in an app on macOS, that app has broken them or is trying (evidently poorly) to reimplement their own text editing widget.
Do Windows browsers no longer support them?
This what I've been using for ~8 years. Apple removed a few functions here and there but still plenty are available. Reference URL in the file comments.
Does anyone know how to turn this OFF? I accidentally type non-breaking spaces in the terminal all the time and then have to meticulously try re-entering each space from the end backwards until bash finally groks it...