Skip to content

Instantly share code, notes, and snippets.

@duelinmarkers
duelinmarkers / app.clj
Created November 5, 2012 22:41
Handling file upload in a ring app
(ring.adapter.jetty/run-jetty
(ring.middleware.params/wrap-params
(ring.middleware.multipart-params/wrap-multipart-params
(fn [request]
(if (= :get (:request-method request))
(render-html-form-with-file-field-called "my-file")
(let [file (get-in req [:params "my-file" :tempfile])]
; file is a java.io.File
(with-open [reader (clojure.java.io/reader file)]
; reader is a--You guessed it!--java.io.Reader
@duelinmarkers
duelinmarkers / abstracting_the_details.clj
Created November 14, 2012 23:19
Asynchronous HTTP in Clojure with Aleph
(defn get-fb-access-token [code redirect-uri]
(run-pipeline (access-token-url code redirect-uri)
{:error-handler (fn [_])}
#(http-request {:url %})
read-access-token-from-response))
(defn get-fb-user-with-token [access-token]
(run-pipeline access-token
{:error-handler (fn [_])}
fb-user-url
@duelinmarkers
duelinmarkers / defmodel_macro.clj
Created November 27, 2012 19:46
"Why not to use my library clj-record" code examples
(defmodel widget db
(associations
(:has-many :sizes))
(validation
(:name "Name is required" #(not (empty? %)))))
module RapidFTR
module AddOns
def self.add_exporter(e)
exporters << e
end
def self.exporters
@exporters ||= []
end
@duelinmarkers
duelinmarkers / init.el
Created August 13, 2013 03:28
A paredit-based attempt at local rename for Clojure in emacs. M-x parfactor-rename-local.
(defun parfactor-rename-local (new-name)
(interactive "Mnew-name: ")
(save-excursion
(if (not (region-active-p))
(er/mark-clj-word))
(let* ((old-name (buffer-substring-no-properties (region-beginning) (region-end)))
(start-of-declaring-sexp (find-start-of-form-declaring old-name)))
(message "Renaming %s to %s" old-name new-name)
(goto-char start-of-declaring-sexp)
(while (re-search-forward old-name (scan-sexps start-of-declaring-sexp 1) t)
diff --git a/Cargo.lock b/Cargo.lock
index a2e127d..d593db6 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2,119 +2,191 @@
name = "cargo-release"
version = "0.6.1-pre"
dependencies = [
- "clap 2.2.5 (registry+git://crates.mirrors.ustc.edu.cn/index)",
- "quick-error 0.1.4 (registry+git://crates.mirrors.ustc.edu.cn/index)",
@duelinmarkers
duelinmarkers / gem_make.out
Created December 18, 2017 22:32
Build failure: grpc-1.8.0 --platform ruby
/home/pair/.rvm/rubies/ruby-2.2.3/bin/ruby -r ./siteconf20171218-28931-gwasiz.rb extconf.rb
Building internal gRPC into /home/pair/.rvm/gems/ruby-2.2.3@gateway/gems/grpc-1.8.0/src/ruby/ext/grpc/libs/opt
make: Entering directory `/home/pair/.rvm/gems/ruby-2.2.3@gateway/gems/grpc-1.8.0'
make: Circular /home/pair/.rvm/gems/ruby-2.2.3@gateway/gems/grpc-1.8.0/src/ruby/ext/grpc/libs/opt/libares.a <- /home/pair/.rvm/gems/ruby-2.2.3@gateway/gems/grpc-1.8.0/src/ruby/ext/grpc/libs/opt/libz.a dependency dropped.
[C] Compiling third_party/cares/cares/ares__close_sockets.c
mkdir -p `dirname /home/pair/.rvm/gems/ruby-2.2.3@gateway/gems/grpc-1.8.0/src/ruby/ext/grpc/objs/opt/third_party/cares/cares/ares__close_sockets.o`
gcc -Ithird_party/googletest/googletest/include -Ithird_party/googletest/googlemock/include -Ithird_party/boringssl/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -Werror -Wno-long-long -Wno-unused-parameter -DOSATOMIC_USE_INLINED=1 -O2 -fPIC -
@duelinmarkers
duelinmarkers / error_not_reset.rb
Last active May 3, 2018 16:14
Ruby doesn't reset rescued error var on retry
failures = 0
begin
raise "failed with failures: #{failures}" if failures < 3
puts "did not fail"
rescue => e
puts "rescued #{e}"
failures += 1
retry if failures < 5
raise "re-raising"
ensure