Skip to content

Instantly share code, notes, and snippets.

import random
# The indices in state represent this tic tac toe board
#
# index 0 | index 1 | index 2
# ---------------------------
# index 3 | index 4 | index 5
# ---------------------------
# index 6 | index 7 | index 8
@theptrk
theptrk / sequelize-migration-addColumn.js
Created April 13, 2019 04:21
Run $ /node_modules/.bin/sequelize migration:generate --name 1m_user_to_dids
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.addColumn(
'Dids',
'UserId',
{
type: Sequelize.INTEGER,
references: {
@theptrk
theptrk / django-custom-user.md
Last active March 23, 2019 01:52
django 2.1.7

Create a custom user model to use as the new default

Gotcha! Django comes with a default auth library that utilizes a default hidden User model. This default model cannot be easily migrated so DO NOT use this model. Even the Django docs recommend extending this into a custom user model.

Why would you want to extend the model? Imagine you later want to record a users birthdate, using the default model, there is no easy way to add this field to the model. By extending the mode you are future proofing your user model.

Gotcha! Extending the model won’t be enough. In creating your own User model, you must...

  • Step 1: Create new app with "manage.py startapp"
@theptrk
theptrk / django-starter.md
Last active March 16, 2019 03:17
start a django project

moved

@theptrk
theptrk / sublime-text-vim-remap-jj.md
Last active May 10, 2020 00:34
Sublime Text vim (vintage) remap `jj` to exit
  • Go to Sublime Text -> Preferences -> Key Bindings and add this to your Default (OSX).sublime-keymap
[
    {
        "keys": ["j", "j"],
        "command": "_enter_normal_mode",
        "args": {
            "mode": "mode_insert"
        },
 "context": [{"key": "vi_insert_mode_aware"}]
@theptrk
theptrk / app.js
Last active January 22, 2019 01:43
local authentication
app.use(logger("dev"));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));
app.use(session({ secret: "ilovetodidlist" }));
// authman init needs to be invoked AFTER app.use(session)
authman.init(app);
@theptrk
theptrk / readme.md
Last active January 21, 2019 22:54
Migrate a postgres database with sequelize.js

Migrate postgres database with sequelize.js

Part I: Set up postgres and sequelize

  • Start the postgresql server using brew and ensure relaunch on login more
$ brew services start postgresql
const fs = require('fs')
const path = require('path')
const saveToFile = (entry) => {
const target = path.join(__dirname, 'did.txt')
console.log(chalk.green(`... saving to did.txt`))
if (fs.existsSync(target)) {
@theptrk
theptrk / index.js
Last active January 19, 2019 23:42
const chalk = require('chalk')
const inquirer = require('inquirer')
const promptSignup = () => {
const questions = [
{
message: 'Whats hannenin\'??',
name: 'action',
type: 'list',
choices: ['did', 'task']
@theptrk
theptrk / bcrypt-nodejs.md
Last active October 4, 2020 09:14
bcrypt-nodejs bug - Invalid salt revision

Bug - Invalid salt revision

Whenever I ran compareSync(password, passwordHash) I would see the error

Invalid salt revision

What did it mean? Where did it come from?

This is the code in the library bcrypt-nodejs

minor = salt.charAt(2);