Skip to main content

Posts

Promise -fication of JS calls.

Found a new pattern to use recently that is called Promise. I really like the way ES6/7 brings new thinking patterns into life nowdays. Here is Promise used instead of old pattern. It was to give JS method a callback function. This splitting code and making a lot of possibilities for error to come out in this place. One would write old times according to MDN : function greeting ( name ) { alert ( 'Hello ' + name ); } function processUserInput ( callback ) { var name = prompt ( 'Please enter your name.' ); callback ( name ); } processUserInput ( greeting ); And now it is made with Promise pattern like so: let promise = new Promise (( resolve , reject ) => { resolve ( prompt ( 'Please enter your name.' )); }); promise . then (( name ) => { alert ( 'Hello ' + name ); }); In general and briefly this now helps to avoid 'callback hell' with functions passed as arguments and write as...

Vagrant error: * Unknown configuration section 'hostmanager'.

Sometimes you get a vagrant environment or boilerplate with a Vagrantfile config in there and do a vagrant up command. And see some errors. like this: There are errors in the configuration of this machine . Please fix the following errors and try again : Vagrant: * Unknown configuration section 'hostmanager'. To fix this one needs: $ vagrant plugin install vagrant - hostmanager Installing the ' vagrant-hostmanager ' plugin . This can take a few minutes . . . Fetching : vagrant - hostmanager - 1.8 .6 . gem ( 100 % ) Installed the plugin ' vagrant-hostmanager (1.8.6) ' ! So command to fix this as follows: vagrant plugin install vagrant-hostmanager

POP3 Mock (Fake) server using python script

Having a need in POP3 server for my debugging purposes I have used this script. Letting it to be here in case of anyone would need to do something similar. Usage is: $ python pypopper.py 110 email_file.eml " " " pypopper: a file-based pop3 serve r Useage :     python pypopper.py <port> <path_to_message_file > " " " import logging import os import socket import sys import traceback logging . basicConfig ( format = " %(name)s %(levelname)s - %(message)s " ) log = logging . getLogger ( " pypopper " ) log . setLevel ( logging . INFO ) class ChatterboxConnection ( object ) : END = " \r \n " def __init__ ( self , conn ) : self . conn = conn def __getattr__ ( self , name ) : return getattr ( self . conn , name ) def sendall ( self , data , END = END ) : if len ( data ) < 50 : log . debug ( " send: %r " , data )    ...

Install Docker under Ubuntu 14.04 (Trusty)

Docker supports Ubuntu versions: Ubuntu Vivid 15.04 (64-bit) Ubuntu Trusty 14.04 (LTS) (64-bit) Ubuntu Precise 12.04 (LTS) (64-bit) Ubuntu Raring 13.04 and Saucy 13.10 (64 bit)  For both Vivid and Trusty you need nothing. It will work out of the box. Others will require some modifications. (Updating of some things, like kernel or installing with wget on 13.04) 1. To install docker from a repository do so: sudo apt - get update sudo apt - get install docker . io sudo ln - sf / usr / bin / docker . io / usr / local / bin / docker sudo sed - i '$acomplete -F _docker docker' / etc / bash_completion . d / docker . io 2. Now run it with: sudo apt - get install lxc - docker 3. Make it run on system boot: sudo update - rc . d docker . io defaults 4. Ready to go! Run container with an Ubuntu: sudo docker run - i - t ubuntu / bin / bash To disconnect, or detach, from the shell without exiting use the escape sequence Ctrl-p + Ctrl-q . 

Remi and EPEL repositories in CentOS

There are 2 common repositories that come nowdays for centos. They contain tasty things, while they are absent in official repositories. CentOS 5: wget http : //dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm wget http : //rpms.famillecollet.com/enterprise/remi-release-5.rpm sudo rpm - Uvh remi - release - 5 * . rpm epel - release - 5 * . rpm CentOS 6: wget http : //dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http : //rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm - Uvh remi - release - 6 * . rpm epel - release - 6 * . rpm You can check you are successful like so: ls - 1 / etc / yum . repos . d / epel * / etc / yum . repos . d / remi . repo / etc / yum . repos . d / epel . repo / etc / yum . repos . d / epel - testing . repo / etc / yum . repos . d / remi . repo Now you are only left to activate Remi repository: sudo vi / etc / yum . repos . d / remi . repo In [remi] section we need to change enable...

Tmux quick start guide

Tmux is a handy terminal manager that allows you to switch between terminal sessions easily. Without losing history or windows upon ssh disconnects or similar. It is like screen , just better. (First of all because of using client-server based technology... ) Here is my minimal keyboard shortcuts guide that allows you to start using Tmux in a blink of an eye. Endless advanced commands and hotkey combinations you could always find by entering "man tmux" in a terminal. Tmux is installed quite easily in most of common linux based systems. Just type: Ubuntu: $ sudo apt - get install tmux CentOS: $ sudo yum install tmux This allows you to start using by starting it with $ tmux a | | tmux new This command first tries to attach to existing running tmux instance and creates new in case it is not found. Ctrl+b d - Will allow you to disconnect at any time. (This is also a way it is happening when you loose ssh session. How to connect - look earlier) Each sess...

Installing MySQL and phpMyAdmin for web development on a Mac OS X 10.9, 10.8, 10.7, 10.6

This is a simple guide on installing a must have SQL database engine for web development. It is often used at the beginning of the journey and I did not find a good guide for it. That made me make myself one and share with others. Hope somebody would benefit from it.