Skip to content

Instantly share code, notes, and snippets.

@alonextou
alonextou / app.vue
Created September 16, 2018 04:30 — forked from dohomi/app.vue
Small file input element based on vuetify
<template>
<file-input v-model="filename" @formData="formData">
<v-btn @click.native="uploadFiles">
</template>
<script>
import fileInput from './file-input.vue'
export default{
components:{fileInput}
@alonextou
alonextou / chapter1
Last active November 17, 2018 07:45
how to f(x)
# How to function f(x).
The most important programming concept is using functions with variables, such as f(x). By understanding how to f(x), you can interpret almost any code. Think of f(x) as a sentence, where f (function) is the verb, and x (variable) is the noun.
The function, or verb is the action, such as climb.
The variable, or noun is the person, place or thing, such as ladder.
Programming languages may look different, but share similar concepts.
In Javascript, functions (verbs) are typed followed by parenthesis: climb().
Nouns (variables) can be typed in those parenthesis: climb(ladder).
@alonextou
alonextou / index.js
Created September 30, 2017 19:37
jsonToCsv
/*** README:
Run: npm install --save csv-write-stream
Have import.json in the same directory
Run: node index.js
Let cool for 2 seconds before serving export.csv
Set sendHeaders to false to remove headers from CSV
***/
var fs = require('fs')
var csvWriter = require('csv-write-stream')
@alonextou
alonextou / gulpfile.js
Created June 29, 2017 21:59 — forked from danharper/gulpfile.js
New ES6 project with Babel, Browserify & Gulp
var gulp = require('gulp');
var sourcemaps = require('gulp-sourcemaps');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var browserify = require('browserify');
var watchify = require('watchify');
var babel = require('babelify');
function compile(watch) {
var bundler = watchify(browserify('./src/index.js', { debug: true }).transform(babel));
@alonextou
alonextou / App.vue
Created April 7, 2017 19:47
main.js
<template>
<div id="app">
<component :is="DefaultLayout">
<router-view></router-view>
</component>
</div>
</template>

I do most of my development on a remote server or on a local virtual instance. It just makes more sense, being able to work in a portable environment and pick up where I leave off lets me worry less about environment and more about the problem at hand.

One of the problems with using a technology like VirtualBox in combination with Docker is that Docker containers are truly portable and should expose a random port chosen by the host while VirtualBox port forwarding is static. You could, for every container, create a new port forwarding rule in your VirtualBox configuration, but that requires you change host configuration to be able to run your application. Not ideal and certainly not portable.

Enter hipache. Hipache is the best way to configure reverse proxies. In this example, hipache is the entrypoint for all web traffic on the host. Running hipache in a container just like any other service allows for ultimate flexibility.

Vagrantfile

Vagrant is a cool way of abstracting VM semantics and spin

@alonextou
alonextou / Berksfile
Created February 21, 2014 19:15
Berksfile
site :opscode
cookbook 'precise64-lamp', git: 'git@github.com:awc737/precise64-lamp-cookbook.git'
#!/usr/bin/env bash
apt-get update
echo mysql-server-5.5 mysql-server/root_password password PASSWORD | debconf-set-selections
echo mysql-server-5.5 mysql-server/root_password_again password PASSWORD | debconf-set-selections
apt-get install -y mysql-common mysql-server mysql-client
apt-get install -y apache2
App.AuthController = Ember.Controller.extend({
user: null,
isAdmin: false,
isGuest: true,
actions: {
login: function() {
console.log('logging in');
var self = this;
var response = $.Deferred();
$.ajax({
App.ApplicationController = Ember.Controller.extend({
observePath: function() {
if (this.get('currentPath') !== 'index') {
$(window).scrollTop(264)
} else {
$(window).scrollTop(0)
}
}.observes('currentPath')
});