Skip to content

Instantly share code, notes, and snippets.

View jesperfj's full-sized avatar

Jesper Joergensen jesperfj

View GitHub Profile

The ThoughtWorks Technology Radar is full of good stuff. Here are my personal favorites:

Micro Services

There's an upfront cost in building more distributed systems with independently operated micro services but it brings so much clarity to your world. You can align small agile teams with each service, you have much more explicit conctracts, leaky interfaces becomes more rare.

The key trend here is that platform services and frameworks have come a long way to make it easier to build micro services. So you should absolutely trial it out and understand just how the cost compares to your current approach.

Perimeterless Enterprise

Keybase proof

I hereby claim:

  • I am jesperfj on github.
  • I am jesperfj (https://keybase.io/jesperfj) on keybase.
  • I have a public key whose fingerprint is 85E8 AED2 A3FC 16C1 4D6D 3C1A 14D9 03AB F0AF 4D33

To claim this, I am signing this object:

Safe-keeping passwords used in ad-hoc scripts

When I need to send small batches of customized emails, I use Craig Kerstiens' and Will Leinweber's Ruby trick.

I've added an additional small hack to this trick that I've used several times: Storing and retrieving passwords in the Mac OSX keychain with minimal pain.

If you read through Craig's post and the code, you'll see that you need to pass in your GMail password. I care deeply about protecting access to my GMail account, so I don't just paste passwords into code or other random files stored on my hard drive. To keep things as secure as possible, I do the following:

  • Turn on two-factor for GMail
  • Now you cannot use your primary password for scripts like this. Instead I generate a per-application password. (click on "App passwords" on Security settings).
<link rel="import" href="../../salesforce/s1-elements/scaffold/s1AppScaffold.html">
<link rel="import" href="../../salesforce/s1-elements/scaffold/s1PageContainer.html">
<link rel="import" href="../../salesforce/s1-elements/s1StagedNavigationStageLeft.html">
<link rel="import" href="../../salesforce/s1-elements/s1StagedNavigationNotifications.html">
<link rel="import" href="../../salesforce/s1-elements/s1AnchorLightDefault.html">
<link rel="import" href="../../salesforce/s1-elements/s1ListWithLabels.html">
<link rel="import" href="../../salesforce/s1-elements/s1AnchorDark.html">
<link rel="import" href="../../salesforce/s1-elements/s1IndicatorDotsLightBackground.html">
<link rel="import" href="../../salesforce/s1-elements/s1ButtonGroups.html">
<link rel="import" href="../../salesforce/s1-elements/scaffold/s1DetailView.html">
@jesperfj
jesperfj / newproject.sh
Created May 13, 2011 17:58
Create a new Database.com Spring Web App from a maven archetype
mvn archetype:generate -DarchetypeCatalog=http://repo.t.salesforce.com/archiva/repository/releases/archetype-catalog.xml -DarchetypeGroupId=com.force.sdk -DarchetypeArtifactId=springmvc-archetype
@jesperfj
jesperfj / gist:1026008
Created June 14, 2011 21:53
Getting the Class-Path manifest attribute from the jar file that this class belongs to
java.util.jar.JarFile jar =
new java.util.jar.JarFile((thispackage.ThisClass.class.getProtectionDomain()
.getCodeSource().getLocation()).getFile());
System.out.println(jar.getManifest().getMainAttributes().getValue("Class-Path"));
@jesperfj
jesperfj / compile
Created September 15, 2011 17:45
Grails LP
#!/usr/bin/env bash
# bin/compile <build-dir> <cache-dir>
# fail fast
set -e
BIN_DIR=$(cd $(dirname $0); pwd) # absolute path
# parse args
BUILD_DIR=$1
CACHE_DIR=$2
@jesperfj
jesperfj / compile
Created October 5, 2011 23:00
gradle LP
#!/usr/bin/env bash
# bin/compile <build-dir> <cache-dir>
# fail fast
set -e
BIN_DIR=$(cd $(dirname $0); pwd) # absolute path
# parse args
BUILD_DIR=$1
CACHE_DIR=$2
$ mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom >>>
[INFO] 
@jesperfj
jesperfj / m2eclipse_copy_dependencies_conflict.md
Created April 30, 2012 17:17
M2Eclipse and copy-dependencies problem

Take a simple Maven app like this JAX-RS app:/

$ git clone http://github.com/heroku/template-java-jaxrs.git
Cloning into template-java-jaxrs...
remote: Counting objects: 348, done.
remote: Compressing objects: 100% (156/156), done.
remote: Total 348 (delta 97), reused 348 (delta 97)
Receiving objects: 100% (348/348), 39.70 KiB | 45 KiB/s, done.