mirror of
https://github.com/jbranchaud/til
synced 2026-01-15 13:08:02 +00:00
Compare commits
4 Commits
07720d9841
...
5b8bc314d2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b8bc314d2 | ||
|
|
4f2399de13 | ||
|
|
7573119c59 | ||
|
|
460473a87f |
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
||||
|
||||
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||
|
||||
_1512 TILs and counting..._
|
||||
_1514 TILs and counting..._
|
||||
|
||||
---
|
||||
|
||||
@@ -1040,6 +1040,7 @@ _1512 TILs and counting..._
|
||||
- [Update Column Versus Update Attribute](rails/update-column-versus-update-attribute.md)
|
||||
- [Upgrading Your Manifest For Sprocket's 4](rails/upgrading-your-manifest-for-sprockets-4.md)
|
||||
- [Use IRB And Ruby Flags With Rails Console](rails/use-irb-and-ruby-flags-with-rails-console.md)
|
||||
- [Useful ActiveSupport Constants For Durations](rails/useful-active-support-constants-for-durations.md)
|
||||
- [Validate Column Data With Check Constraints](rails/validate-column-data-with-check-constraints.md)
|
||||
- [Verify And Read A Signed Cookie Value](rails/verify-and-read-a-signed-cookie-value.md)
|
||||
- [Where Am I In The Partial Iteration?](rails/where-am-i-in-the-partial-iteration.md)
|
||||
@@ -1744,6 +1745,7 @@ _1512 TILs and counting..._
|
||||
- [Add Subscriber To Kit Form Via API](workflow/add-subscriber-to-kit-form-via-api.md)
|
||||
- [Add Subtitles To Existing Mux Video Asset](workflow/add-subtitles-to-existing-mux-video-asset.md)
|
||||
- [Access 1Password Credential From CLI](workflow/access-1password-credential-from-cli.md)
|
||||
- [Allow Key-Repeating With Cursor](workflow/allow-key-repeating-with-cursor.md)
|
||||
- [Change Window Name In iTerm](workflow/change-window-name-in-iterm.md)
|
||||
- [Configure Email Redirect With Cloudflare](workflow/configure-email-redirect-with-cloudflare.md)
|
||||
- [Convert An ePub Document To PDF On Mac](workflow/convert-an-epub-document-to-pdf-on-mac.md)
|
||||
|
||||
@@ -15,10 +15,8 @@ const remove = (items,index) => {
|
||||
};
|
||||
|
||||
const list = [1,2,3,4,5];
|
||||
remove(list, 2);
|
||||
// [1,2,3,4]
|
||||
list
|
||||
// [1,2,3,4,5]
|
||||
remove(list, 2); // [1,2,4,5]
|
||||
// list still [1,2,3,4,5]
|
||||
```
|
||||
|
||||
It only took a couple lines of code and immutability is baked in.
|
||||
|
||||
45
rails/useful-active-support-constants-for-durations.md
Normal file
45
rails/useful-active-support-constants-for-durations.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Useful ActiveSupport Constants For Durations
|
||||
|
||||
Whenever I'm passing a duration to a function, I like to [name it with the
|
||||
unit](https://ruudvanasseldonk.com/2022/03/20/please-put-units-in-names)
|
||||
relative to the value it represents. For instance, if I need to pass in an hour
|
||||
duration in seconds, I might write the following line:
|
||||
|
||||
```ruby
|
||||
hour_in_seconds = 60 * 60
|
||||
|
||||
# or
|
||||
|
||||
hour_in_seconds = 3600
|
||||
```
|
||||
|
||||
ActiveSupport has a [Duration
|
||||
class](https://api.rubyonrails.org/classes/ActiveSupport/Duration.html) with a
|
||||
series of constants that we can reach for.
|
||||
|
||||
```ruby
|
||||
> ActiveSupport::Duration::SECONDS_PER_MINUTE
|
||||
=> 60
|
||||
> ActiveSupport::Duration::SECONDS_PER_HOUR
|
||||
=> 3600
|
||||
> ActiveSupport::Duration::SECONDS_PER_DAY
|
||||
=> 86400
|
||||
> ActiveSupport::Duration::SECONDS_PER_WEEK
|
||||
=> 604800
|
||||
> ActiveSupport::Duration::SECONDS_PER_MONTH
|
||||
=> 2629746
|
||||
> ActiveSupport::Duration::SECONDS_PER_YEAR
|
||||
=> 31556952
|
||||
```
|
||||
|
||||
Though it is fun to know about these, we should keep in mind that this class
|
||||
provides support for what is likely to be a more useful abstraction layer:
|
||||
|
||||
```ruby
|
||||
> 1.hour
|
||||
=> 1 hour
|
||||
> 3.hours
|
||||
=> 3 hours
|
||||
> 1.day.to_i
|
||||
=> 86400
|
||||
```
|
||||
33
workflow/allow-key-repeating-with-cursor.md
Normal file
33
workflow/allow-key-repeating-with-cursor.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Allow Key-Repeating With Cursor
|
||||
|
||||
I recently installed the Vim extension for Cursor. This is the same extension
|
||||
for VSCode since Cursor is built on VSCode. A lot of the expected Vim behavior
|
||||
was working. However there was one glaring point of friction.
|
||||
|
||||
I often hold down keys like `k` and `j` to go up and down several lines when
|
||||
I'm absent-mindedly scrolling around. This wasn't working with the Vim mode
|
||||
extension. I'd hold `j` down and the cursor would move down a single line and then
|
||||
stop.
|
||||
|
||||
The first thing the Vim extension tells you to do is run a command to enable
|
||||
key-repeating. These instructions are specific to VSCode:
|
||||
|
||||
```bash
|
||||
$ defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
|
||||
```
|
||||
|
||||
That won't work for cursor which is a separate application with a distinct
|
||||
`CFBundleIdentifier`. You can check the current identifier in Cursor's
|
||||
`Info.plist` file to be sure, but it should be `com.todesktop.230313mzl4w4u92`.
|
||||
|
||||
Run this to target Cursor:
|
||||
|
||||
```bash
|
||||
$ defaults write com.todesktop.230313mzl4w4u92 ApplePressAndHoldEnabled -bool false
|
||||
```
|
||||
|
||||
Then restart Cursor.
|
||||
|
||||
Now key-repeating in Vim mode should be working.
|
||||
|
||||
[source](https://github.com/getcursor/cursor/issues/777#issuecomment-1690996370)
|
||||
Reference in New Issue
Block a user