Skip to content

Instantly share code, notes, and snippets.

View yjaaidi's full-sized avatar
💭
👨🏻‍🍳 helping you cook better apps

Younes Jaaidi yjaaidi

💭
👨🏻‍🍳 helping you cook better apps
View GitHub Profile
@yjaaidi
yjaaidi / rest-api-workflow.py
Created December 8, 2017 10:34
ReST API Workflow
// Create an order.
POST /orders
request = {
title: 'TITLE',
description: 'DESCRIPTION'
}
response = {
id: 'ORDER_ID',
title: 'TITLE',
@yjaaidi
yjaaidi / generate-cert.sh
Created July 10, 2017 14:54
Generate dev self-signed certificate
#!/usr/bin/env bash
# Generate private key and CSR.
openssl req -nodes -newkey rsa:2048 -keyout ssl/server.key -out ssl/server.csr -subj "//CN=devserver"
# Auto-signing.
#openssl req -x509 -sha256 -days 365 -key ssl/server.key -in ssl/server.csr -out ssl/server.pem
openssl x509 -req -days 365 -in ssl/server.csr -signkey ssl/server.key -out ssl/server.crt
# Removing CSR.
@yjaaidi
yjaaidi / reactive-store.ts
Created June 10, 2017 10:29
Reactive Store
import { ReplaySubject } from 'rxjs/ReplaySubject';
import { Observable } from 'rxjs/Observable';
export abstract class ReplayStore<T> {
private _isInitialized = false;
private _state: T;
private _state$: ReplaySubject<T>;
constructor() {
@yjaaidi
yjaaidi / wt-dynamic-component-injector.js
Created April 27, 2017 18:42
Angular dynamic component injector
@Injectable()
export class ComponentInjector {
constructor(
private _injector: Injector,
private _applicationRef: ApplicationRef,
private _componentFactoryResolver: ComponentFactoryResolver) {
}
@yjaaidi
yjaaidi / prerender-clean-up.js
Last active February 1, 2022 17:01 — forked from imevro/gist:edfe9dea12196056467f
Clean up all cached pages in prerender.io from console
const cleanUp = async () => {
const response = await fetch('https://prerender.io/api/cached-pages?page=0&pageSize=100');
const itemList = await response.json();
const csrfToken = document.cookie.replace(/^.*XSRF-TOKEN=/, '').replace(/;.*$/, '');
const promiseList = itemList.map(item => fetch(`https://prerender.io/api/remove-cached-url?url=${encodeURIComponent(item.url)}`, {
method: 'DELETE',
headers: {
@yjaaidi
yjaaidi / webpack-dynamic-file-name-resolution.js
Created November 13, 2016 20:38
Webpack Dynamic File Name Resolution
/*
* Webpack config
*/
/* Use file-loader for images. */
{
test: /\.(gif|ico|jpg|png|svg)$/,
loader: 'file'
}
@yjaaidi
yjaaidi / wt-typescript-contracts.ts
Last active June 8, 2016 10:51
TypeScript dynamic runtime contracts example
import 'reflect-metadata';
let _contractDictMetadataKey = 'contractDict';
let ApplyContracts = () => {
return (target, key) => {
let originalMethod = target[key];
let contractDict = Reflect.getOwnMetadata(_contractDictMetadataKey, target, key);
// Generated by CoffeeScript 1.4.0
(function() {
var NamedParameters, exports;
NamedParameters = (function() {
var _assert, _clone;
function NamedParameters(m) {
this.map = _clone(m);
this.coerce_all = false;
@yjaaidi
yjaaidi / splunk-user-agent-stats
Last active June 21, 2018 15:28
Splunk user-agent statistics
| search *
| lookup user_agents http_user_agent as user_agent
| replace "unknown" with "" in ua_device, ua_os_major, ua_os_minor
| replace "Windows*" with "Windows" in ua_os_family
| eval user_agent=ua_os_family + " - " + ua_family
| regex user_agent!="(unknown|PhantomJS)"
| eventstats dc(address) as total
| stats dc(address) as count by user_agent, total
| eval percentage=(count * 100/total)
| table percentage user_agent
@yjaaidi
yjaaidi / gist:9488069
Created March 11, 2014 15:23
OS X - Change Chrome Language
defaults write com.google.Chrome AppleLanguages '(en-US)'