Skip to content

Instantly share code, notes, and snippets.

View fabrianibrahim's full-sized avatar

Fabrian Ibrahim fabrianibrahim

  • Melbourne, Australia
View GitHub Profile
@fabrianibrahim
fabrianibrahim / deep-copy.ts
Created November 8, 2022 22:12 — forked from erikvullings/deep-copy.ts
Deep copy or clone in TypeScript
/**
* Deep copy function for TypeScript.
* @param T Generic type of target/copied value.
* @param target Target value to be copied.
* @see Source project, ts-deepcopy https://github.com/ykdr2017/ts-deepcopy
* @see Code pen https://codepen.io/erikvullings/pen/ejyBYg
*/
export const deepCopy = <T>(target: T): T => {
if (target === null) {
return target;
@fabrianibrahim
fabrianibrahim / debounce.js
Created November 2, 2022 00:20 — forked from ethyde/debounce.js
JS Native debounce function
// from : http://qnimate.com/javascript-limit-function-call-rate/
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this,
args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
@fabrianibrahim
fabrianibrahim / android-version-and-tag-automation.sh
Created October 19, 2022 05:08 — forked from drilonrecica/android-version-and-tag-automation.sh
Bash script for automating versioning (versionCode & versionName) and setting git Tag in an android project
# Proccess:
# 1. Go into app directory
# 2. Get current versionCode and print it
# 3. Increment versionCode by one and print it
# 4. Get current versionName and print it
# 5. Ask user for new versionName and set it then print it
# 6. Stage changes to build.gradle
# 7. Go back one directory to project root
# 8. Commit version update with message Bumped up version
# 9. Tag with versionName
@fabrianibrahim
fabrianibrahim / retry.php
Created October 31, 2019 11:46 — forked from orottier/RetryTest.php
Retry function for PHP with exponential backoff
<?php
/*
* Retry function for e.g. external API calls
*
* Will try the risky API call, and retries with an ever increasing delay if it fails
* Throws the latest error if $maxRetries is reached,
* otherwise it will return the value returned from the closure.
*
* You specify the exceptions that you expect to occur.
@fabrianibrahim
fabrianibrahim / index.html
Created August 28, 2019 00:18
Action Interfaces // source https://jsbin.com/vibeluy
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Action Interfaces</title>
<style>
html, body {
height: 100%;
}
@fabrianibrahim
fabrianibrahim / python_resources.md
Last active August 29, 2015 14:07 — forked from jookyboi/python_resources.md
Python-related modules and guides.

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

@fabrianibrahim
fabrianibrahim / rails_resources.md
Last active August 29, 2015 14:07 — forked from jookyboi/rails_resources.md
Rails-related Gems and guides to accelerate your web project.

Gems

  • Bundler - Bundler maintains a consistent environment for ruby applications. It tracks an application's code and the rubygems it needs to run, so that an application will always have the exact gems (and versions) that it needs to run.
  • rabl - General ruby templating with json, bson, xml, plist and msgpack support
  • Thin - Very fast and lightweight Ruby web server
  • Unicorn - Unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels.
  • SimpleCov - SimpleCov is a code coverage analysis tool for Ruby 1.9.
  • Zeus - Zeus preloads your Rails app so that your normal development tasks such as console, server, generate, and specs/tests take less than one second.
  • [factory_girl](h
@fabrianibrahim
fabrianibrahim / css_resources.md
Last active August 29, 2015 14:07 — forked from jookyboi/css_resources.md
CSS libraries and guides to bring some order to the chaos.

Libraries

  • 960 Grid System - An effort to streamline web development workflow by providing commonly used dimensions, based on a width of 960 pixels. There are two variants: 12 and 16 columns, which can be used separately or in tandem.
  • Compass - Open source CSS Authoring Framework.
  • Bootstrap - Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.
  • Font Awesome - The iconic font designed for Bootstrap.
  • Zurb Foundation - Framework for writing responsive web sites.
  • SASS - CSS extension language which allows variables, mixins and rules nesting.
  • Skeleton - Boilerplate for responsive, mobile-friendly development.

Guides