Skip to content

Instantly share code, notes, and snippets.

Avatar

Amr Mostafa amr

  • San Francisco, CA
View GitHub Profile
@amr
amr / ConfigurationLoader.java
Last active Apr 25, 2021
Java simple YAML/JSON/Properties configuration mechanism with environment variable substitution/interpolation
View ConfigurationLoader.java
public class ConfigurationLoader {
private final ObjectMapper objectMapper;
private final StringSubstitutor stringSubstitutor;
ConfigurationLoader() {
this.objectMapper = new ObjectMapper(new YAMLFactory());
this.stringSubstitutor =
new StringSubstitutor(StringLookupFactory.INSTANCE.environmentVariableStringLookup());
}
@amr
amr / ConstraintViolationPathUtils.java
Created Mar 3, 2017
Mapping ConstraintViolatation paths to JSON Pointer and JSON Path
View ConstraintViolationPathUtils.java
import com.fasterxml.jackson.core.JsonPointer;
import javax.validation.ElementKind;
import javax.validation.Path;
import javax.validation.Path.Node;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
/**
* This has not been extensively tested. It's just a starting point. Please improve!
@amr
amr / my.ini
Last active Sep 30, 2020
MySQL my.cnf settings optimized for local development, this is NOT a complete my.cnf configuration, the settings here are meant to be copied from their sections and pasted in the appropriate section in an existing working my.cnf
View my.ini
[mysqld]
open-files-limit = 24000
character-set-server = utf8
character-set-filesystem = utf8
#
# InnoDB
#
# After applying these for the first time on a new mysql installation with no
@amr
amr / clean_comments.info
Last active Aug 29, 2015
Drupal 6 module to delete old unapproved comments.
View clean_comments.info
name = Clean Comments
description = "Remove old unpublished comments"
core = 6.x
dependencies[] = comment
@amr
amr / tmpdir.scala
Created Oct 2, 2014
Create temporary directory with the JVM (Scala here)
View tmpdir.scala
def createTempDir(tmpName: String): String = {
val tmpDir = Paths.get(System.getProperty("java.io.tmpdir"))
val name: Path = tmpDir.getFileSystem.getPath(tmpName)
if (name.getParent != null) throw new IllegalArgumentException("Invalid prefix or suffix")
tmpDir.resolve(name).toString
}
@amr
amr / javascript_resources.md
Last active Aug 29, 2015 — forked from jookyboi/javascript_resources.md
Here are a set of libraries, plugins and guides which may be useful to your Javascript coding.
View javascript_resources.md

Libraries

  • jQuery - The de-facto library for the modern age. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.
  • Backbone - Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
  • AngularJS - Conventions based MVC framework for HTML5 apps.
  • Underscore - Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects.
  • lawnchair - Key/value store adapter for indexdb, localStorage
@amr
amr / python_resources.md
Last active Aug 29, 2015 — forked from jookyboi/python_resources.md
Python-related modules and guides.
View python_resources.md

Packages

  • lxml - Pythonic binding for the C libraries libxml2 and libxslt.
  • boto - Python interface to Amazon Web Services
  • Django - Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
  • Fabric - Library and command-line tool for streamlining the use of SSH for application deployment or systems administration task.
  • PyMongo - Tools for working with MongoDB, and is the recommended way to work with MongoDB from Python.
  • Celery - Task queue to distribute work across threads or machines.
  • pytz - pytz brings the Olson tz database into Python. This library allows accurate and cross platform timezone calculations using Python 2.4 or higher.

Guides

@amr
amr / 0_reuse_code.js
Last active Aug 29, 2015
Here are some things you can do with Gists in GistBox.
View 0_reuse_code.js
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
@amr
amr / keybase.md
Last active Aug 29, 2015
My keybase.io github verification
View keybase.md

Keybase proof

I hereby claim:

  • I am amr on github.
  • I am amrmostafa (https://keybase.io/amrmostafa) on keybase.
  • I have a public key whose fingerprint is 3466 023F 8389 9BB0 7FB8 41CA F000 083E F73A 3E24

To claim this, I am signing this object:

@amr
amr / GooglePlayServicesInterstitial.java
Last active Jan 3, 2016
MoPub adapter to serve AdMob's interstitials with the new Google Play Services API.
View GooglePlayServicesInterstitial.java
/*
* This a modified version based on code by MoPub Inc.
* The author's modifications are released into the public domain. MoPub .inc code
* is originally released under the license below.
*
* Copyright (c) 2010-2013, MoPub Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are