September 2022:
This has spread to a far wider audience than I had anticipated - probably my fault for using a title that is in hindsight catnip for link aggregators. I wrote this back in 2021 just as a bunch of personal thoughts of my experiences using Rust over the years (not always well thought through), and don't intend on trying to push them further, outside of personal experiments and projects.
Managing a living language is challenging and difficult work, and I am grateful for all the hard work that the Rust community and contributors put in given the difficult constraints they work within. Many of the things I listed below are not new, and there's been plenty of difficult discussions about many of them over the years, and some are being worked on or postponed, or rejected for various good reasons. For more thoughts, please see my comment below.
#!/bin/sh -eu | |
FILTER="${FILTER:="."}" | |
TOOLCHAIN_BK="$(rustup toolchain list | rg default | awk '{print $1}')" | |
TOOLCHAIN_KIND_BK="$(echo "$TOOLCHAIN_BK" | rg -o '^(stable|nightly)')" | |
if [ "$TOOLCHAIN_KIND_BK" != "stable" ]; then | |
rustup install stable | |
rustup default stable | |
fi |
function __git_fzf_is_in_git_repo | |
command -s -q git | |
and git rev-parse HEAD >/dev/null 2>&1 | |
end | |
function __git_fzf_git_status | |
__git_fzf_is_in_git_repo; or return | |
git -c color.status=always status --short | \ | |
fzf -m --ansi --preview 'git diff --color=always HEAD -- {-1} | head -500' | \ | |
cut -c4- | \ |
MIT License
Copyright (c) 2018 Josh Bode
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
#http://unix.stackexchange.com/questions/34248/how-can-i-find-broken-symlinks | |
find . -type l ! -exec test -e {} \; -print |
#import <Foundation/Foundation.h> | |
#import <Cocoa/Cocoa.h> | |
#import <unistd.h> | |
BOOL copy_to_clipboard(NSString *path) | |
{ | |
// http://stackoverflow.com/questions/2681630/how-to-read-png-image-to-nsimage | |
NSImage * image; | |
if([path isEqualToString:@"-"]) | |
{ | |
// http://caiustheory.com/read-standard-input-using-objective-c |
This gist lets you keep IPython notebooks in git repositories. It tells git to ignore prompt numbers and program outputs when checking that a file has changed.
To use the script, follow the instructions given in the script's docstring.
For further details, read this blogpost.
The procedure outlined here is inspired by this answer on Stack Overflow.
Ideas are cheap. Make a prototype, sketch a CLI session, draw a wireframe. Discuss around concrete examples, not hand-waving abstractions. Don't say you did something, provide a URL that proves it.
Nothing is real until it's being used by a real user. This doesn't mean you make a prototype in the morning and blog about it in the evening. It means you find one person you believe your product will help and try to get them to use it.
#!/bin/bash | |
# Merges the master branch into all other branches | |
# | |
# Process: | |
# | |
# - Save the name of the current branch | |
# - If the current branch is not master then checkout master. | |
# - Pull the latest changes for master from its upstream branch. | |
# - Loop over each local branch. |