Skip to content

Instantly share code, notes, and snippets.

@CognitiveDisson
CognitiveDisson / pwned.sh
Last active May 5, 2024 01:44
One line to check pwned password
# Execute fc -p for the zsh shell if you want to remove it from the history.
# In this method, you don't pass the actual password value.
# Instead, you only send the first five characters of its SHA1 hash
# and then grep for the second part of the checksum locally within the response.
echo -n '<your_password>' | \
openssl dgst -sha1 -hex | \
awk '{print $2}' | \
tr a-z A-Z | \
xargs -I % sh -c 'curl -s "https://api.pwnedpasswords.com/range/$(echo % | cut -c -5)" | grep "$(echo % | cut -c 6-)"' | \
cut -d ":" -f2 | \
@CognitiveDisson
CognitiveDisson / bzqfzf.sh
Created August 29, 2023 11:35
bzqfzf for zsh
# Example: vim (bzqfzf //...)
# Description: ZSH functions (should be easily converted to zsh) for Basel fuzzy search.
# Requirements:
# bazel
# brew install fzf
# brew install bat
# Add "source ~/.zsh_functions/bzqfzf.sh" to `~/.zshrc`
@CognitiveDisson
CognitiveDisson / bzqfzf.fish
Last active July 29, 2023 22:54
Bazel fuzzy finder ( fzf ) with bat preview
# Example: vim (bzqfzf //...)
# Description: Fish functions (should be easily converted to zsh) for Basel fuzzy search.
# Requirements:
# bazel
# brew install fzf
# brew install bat
# Note: Put each function to separate `.fish` file.
@CognitiveDisson
CognitiveDisson / .gitconfig
Last active April 1, 2022 09:50
Git config
[alias]
fr = "!f() { echo Fetch ${1:-$3} and rebase to ${1:-$3}/${2:-master} && git fetch ${1:-$3} && git rebase ${1:-$3}/${2:-master}; }; if git ls-remote --exit-code upstream > /dev/null; then f $1 $2 'upstream'; else f $1 $2 'origin'; fi"
@CognitiveDisson
CognitiveDisson / node-executer.rb
Last active April 6, 2021 17:39
Remote execute for anka
require 'net/http'
require 'json'
require 'io/console'
args = Hash[ ARGV.join(' ').scan(/--?([^=\s]+)(?:=(\S+))?/) ]
controller_url = args['controller']
if controller_url.nil?
raise "You need to specify the controller: --controller=http://anka.controller.net"
end
@CognitiveDisson
CognitiveDisson / the effect of swift extensions on the size of the binary
Last active April 8, 2020 23:27
`swiftc -gdwarf-types -emit-object gist.swift`
protocol SomeProtocol {
func someMethod0()
func someMethod1()
func someMethod2()
func someMethod3()
func someMethod4()
func someMethod5()
func someMethod6()
func someMethod7()
@CognitiveDisson
CognitiveDisson / build-universal-frameworks.sh
Last active March 28, 2021 00:56
Build universal frameworks
#!/bin/sh
# Print all the commands in script before their execution
# export PS4='+ 6: '
set -x
# Force the script to stop if any unhandled error occurs (i.e. an error not handled with `||`)
# set -e
# Force the script to stop if any uninitialized variable is used
@CognitiveDisson
CognitiveDisson / Array+AsyncConcurrentEnumerated.swift
Last active April 29, 2019 14:41
Swift: Async concurrent enumerated array
import Foundation
public extension Array {
public func asyncConcurrentEnumerated(
each: (_ object: Element, _ completion: @escaping () -> (), _ stop: () -> ()) throws -> ()) throws
{
let dispatchGroup = DispatchGroup()
let array = NSArray(array: self)
var eachError: Error?
array.enumerateObjects(options: .concurrent) { obj, key, stop in
@CognitiveDisson
CognitiveDisson / Dictionary+Enumerate.swift
Last active February 18, 2019 12:43
swift concurrent dictionary enumeration
import Foundation
extension Dictionary {
func enumerateKeysAndObjects(
options opts: NSEnumerationOptions = [],
using block: (Any, Any, UnsafeMutablePointer<ObjCBool>) throws -> Void) throws
{
var blockError: Error?
(self as NSDictionary).enumerateKeysAndObjects(options: opts) { (key, obj, stops) in
func toMainThread<T>(_ closure: @escaping (T) -> ()) -> ((T) -> ()) {
return { obj in
if Thread.isMainThread {
closure(obj)
} else {
DispatchQueue.main.async {
closure(obj)
}
}
}