Skip to content

Instantly share code, notes, and snippets.

View zabirauf's full-sized avatar
👨‍💻
I may be slow to respond.

Zohaib Rauf zabirauf

👨‍💻
I may be slow to respond.
View GitHub Profile
function append(arrOrNum, toAppendArrOrNum) {
if (!Array.isArray(arrOrNum)) {
arrOrNum = [arrOrNum];
}
if (!Array.isArray(toAppendArrOrNum)) {
toAppendArrOrNum = [toAppendArrOrNum];
}
return arrOrNum.concat(toAppendArrOrNum);
type TrafficLightState =
{ red: true, yellow: false, green: false } |
{ red: true, yellow: true, green: false } |
{ red: false, yellow: false, green: true } |
{ red: false, yellow: true, green: false }
function nextTrafficLightState(
trafficLight: TrafficLightState): TrafficLightState {
if (trafficLight.red && trafficLight.yellow) {
interface TrafficLight {
red: boolean;
yellow: boolean;
green: boolean;
}
function nextTrafficLightState(
trafficLight: TrafficLight): TrafficLight {
if (trafficLight.red && trafficLight.yellow) {
@zabirauf
zabirauf / FunctionBinder.ts
Last active March 8, 2017 07:42
And example for FunctionBinder class
interface CurriedFunction2<T1, T2, R> {
(t1: T1): (t2: T2) => R;
(t1: T1, t2?: T2): R;
}
interface CurriedFunction3<T1, T2, T3, R> {
(t1: T1): CurriedFunction2<T2, T3, R>;
(t1: T1, t2?: T2): (t3: T3) => R;
(t1: T1, t2?: T2, t3?: T3): R;
}
@zabirauf
zabirauf / SuaveBootstrapFlynn.fs
Last active October 16, 2016 21:30
A F# Suave web app that outputs HTML
module SuaveBootstrapFlynn
open Suave
open Suave.Successful
open Suave.Web
open Suave.Operators
open Suave.Filters
open System
open System.Net
@zabirauf
zabirauf / weather_conversation_action.ex
Created June 15, 2016 05:12
Weather conversation Wit.ai actions for the story created to get weather information. Complete project at https://github.com/zabirauf/witai_elixir_weather_bot
defmodule EchoBot.WeatherConversationAction do
use Wit.Actions
alias Wit.Models.Response.Converse, as: WitConverse
alias ExMicrosoftBot.Client
def say(_session_id, %{} = context, %WitConverse{msg: msg_to_send} = message) do
%{"session" => %{"from" => to, "to" => from, "msgId" => msgId}} = context
message_to_send = %{from: from, to: to, replyToMessageId: msgId, text: msg_to_send}
Client.send_message(get_bot_auth_data(), message_to_send)
@zabirauf
zabirauf / messages_controller.ex
Last active June 15, 2016 05:06
Messages controller that receives message from user and sends it to Wit. Complete project at https://github.com/zabirauf/witai_elixir_weather_bot
defmodule EchoBot.MessagesController do
use MicrosoftBot.Phoenix.Controller
alias ExMicrosoftBot.Models.Message
def message_received(conn, %Message{} = message) do
session_id = message.conversationId
spawn fn ->
%{from: from, to: to, id: msgId} = message
context = %{"session" => %{
@zabirauf
zabirauf / gulpfile.js
Created October 19, 2015 00:11
Gulpfile for a frontend in React + ES6
var gulp = require('gulp'),
gutil = require('gulp-util'),
babelify = require('babelify'),
source = require('vinyl-source-stream'),
browserify = require('browserify'),
watchify = require('watchify'),
browserSync = require('browser-sync').create();
var paths = {
HTML: 'src/index.html',
@zabirauf
zabirauf / gulpfile.js
Created October 19, 2015 00:09
Gulpfile for a bower library
var gulp = require('gulp'),
gutil = require('gulp-util'),
eslint = require('eslint'),
babelify = require('babelify'),
source = require('vinyl-source-stream'),
browserify = require('browserify');
var paths = {
ALL: ['index.js', 'lib/*.js'],
JS: ['index.js', 'lib/*.js'],
defmodule EphemeralShare.PeerState do
require Logger
use GenServer
def start_link(peer_id) do
GenServer.start_link(__MODULE__, [peer_id], [name: {:global, peer_state_proc_id(peer_id)}])
end
def stop(peer_id) do
peer_id