- node.js
- Installation paths: use one of these techniques to install node and npm without having to sudo.
- Node.js HOWTO: Install Node+NPM as user (not root) under Unix OSes
- Felix's Node.js Guide
- Creating a REST API using Node.js, Express, and MongoDB
- Node Cellar Sample Application with Backbone.js, Twitter Bootstrap, Node.js, Express, and MongoDB
- JavaScript Event Loop
- Node.js for PHP programmers
This simple script will take a picture of a whiteboard and use parts of the ImageMagick library with sane defaults to clean it up tremendously.
The script is here:
#!/bin/bash
convert "$1" -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 "$2"
#!/bin/bash +x | |
# Source: http://www.gabsoftware.com/tips/automatically-reconnect-to-your-vpn-on-linux/ | |
# Description: | |
# Make the script executable "chmod +x /path/to/the/script.sh | |
# Put the script in .profile or .bashrc so it can be run on user login: | |
# Example: echo "/path/to/the/script.sh start &" >> .bashrc | |
# The script can be bound to shortcut keys with these commands: | |
# /path/to/the/script.sh start # starts and monitors VPN connection |
/** | |
* Fancy ID generator that creates 20-character string identifiers with the following properties: | |
* | |
* 1. They're based on timestamp so that they sort *after* any existing ids. | |
* 2. They contain 72-bits of random data after the timestamp so that IDs won't collide with other clients' IDs. | |
* 3. They sort *lexicographically* (so the timestamp is converted to characters that will sort properly). | |
* 4. They're monotonically increasing. Even if you generate more than one in the same timestamp, the | |
* latter ones will sort after the former ones. We do this by using the previous random bits | |
* but "incrementing" them by 1 (only in the case of a timestamp collision). | |
*/ |
var page = require('webpage').create(), | |
url = 'http://example.com/'; | |
// Put the event handlers somewhere in the code before the action of | |
// interest (opening the page in question or clicking something) | |
// http://phantomjs.org/api/webpage/handler/on-console-message.html | |
page.onConsoleMessage = function(msg, lineNum, sourceId) { | |
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")'); | |
}; |
#!/bin/sh | |
# CONFIGURATION | |
# 1. Go to @botfather and create a bot and use it's auth token as bot_token value | |
# 2. Create test channel, believe me, you need it | |
# 3. Set some url for your test channel | |
# 4. Add your bot to both channels, set their names in variables | |
# USAGE | |
# 1. Copy your markdown-formatted message into OS clipboard (Cmd+C) |
Давай представим ситуацию, когда тебе, в зависимости от какой-то логики нужно вернуть данные разного типа, например есть такая функция:
def function(foo, bar)
result = if foo > bar
10
else
"wrong"
end
end
This is my lightning talk submission to ReactiveConf 2018 https://reactiveconf.com/
In this talk, I want to share my experience gained during the development of frontend applications in several programming languages.
I think it's not a secret for anybody that developing large JavaScript applications is not so easy as it seems at first glance. We all want something simpler and more reliable. Therefore, many developers and even entire companies switch to different, compiled in JavaScript, programming languages. The bulk of such transitions is accounted for TypeScript and flow, and often, developers faced with more problems than they were before.
I wasn't the exception. Moving to a new project, I started using TypeScript and was disappointed. Luckily in my next project I used ClojureScript and it was like everything is illuminated!