Skip to content

Instantly share code, notes, and snippets.

@rathwell
rathwell / app_servlet.clj
Created April 11, 2012 02:54
Noir differences for GAE: app_servlet ns generated by lein appengine-new, and httpsession middleware for clustered environments. After running lein appengine-new, make the changes to app_servlet, and add the other 2 files to your project.
(ns my.ns.app_servlet
(:gen-class :extends javax.servlet.http.HttpServlet)
(:use [appengine-magic.servlet :only [make-servlet-service-method]]
[appengine-magic.multipart-params :only [wrap-multipart-params]])
(:require [appengine-magic.core :as gae]
[noir.util.gae :as noir-gae]
[noir.server.handler :as handler]
[my.ns.middleware.httpsession :as httpsession]))
;; custom middlewares
@stengaard
stengaard / OpenswanRSALoadError
Created June 19, 2012 16:31
Openswan RSA load error
If you ever see
ipsec__plutorun: 003 "/etc/ipsec.secrets" line 16: error loading RSA private key file
in your syslog
root@:/etc/ipsec.d/private# openssl rsa -in vpn.example.com.key -outform pem -out vpn.example.com.key.new
writing RSA key
may very well help.
@JakeWharton
JakeWharton / Truss.java
Last active June 9, 2023 07:35
Extremely simple wrapper around SpannableStringBuilder to make the API more logical and less awful. Apache 2 licensed.
import android.text.SpannableStringBuilder;
import java.util.ArrayDeque;
import java.util.Deque;
import static android.text.Spanned.SPAN_INCLUSIVE_EXCLUSIVE;
/** A {@link SpannableStringBuilder} wrapper whose API doesn't make me want to stab my eyes out. */
public class Truss {
private final SpannableStringBuilder builder;
private final Deque<Span> stack;
@mbigatti
mbigatti / UIView+FirstResponder.swift
Created July 10, 2014 15:40
A classical first responder finder using Swift.
import UIKit
extension UIView {
func currentFirstResponder() -> UIResponder? {
if self.isFirstResponder() {
return self
}
for view in self.subviews {
if let responder = view.currentFirstResponder() {