{"id":23284232,"url":"https://github.com/agilecreativity/tips-and-tricks","last_synced_at":"2026-02-06T12:36:17.490Z","repository":{"id":66351334,"uuid":"61917041","full_name":"agilecreativity/tips-and-tricks","owner":"agilecreativity","description":"Some useful tips and tricks about development stuffs that I find useful","archived":false,"fork":false,"pushed_at":"2017-08-30T19:23:44.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-23T04:43:54.266Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agilecreativity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-06-24T23:03:20.000Z","updated_at":"2018-03-25T12:35:37.000Z","dependencies_parsed_at":"2023-02-24T18:00:55.094Z","dependency_job_id":null,"html_url":"https://github.com/agilecreativity/tips-and-tricks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/agilecreativity/tips-and-tricks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilecreativity%2Ftips-and-tricks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilecreativity%2Ftips-and-tricks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilecreativity%2Ftips-and-tricks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilecreativity%2Ftips-and-tricks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agilecreativity","download_url":"https://codeload.github.com/agilecreativity/tips-and-tricks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilecreativity%2Ftips-and-tricks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29160816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T07:18:23.844Z","status":"ssl_error","status_checked_at":"2026-02-06T07:13:32.659Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-20T01:38:58.036Z","updated_at":"2026-02-06T12:36:17.484Z","avatar_url":"https://github.com/agilecreativity.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"### Random Tips\n\n#### Fix the Arch Linux keys not valid\n\n```sh\n# Try this command\nsudo pacman -S archlinux-keyring\n\n# Then\nsudo pacman -Syyu\n\n# Or as usual\nyaourt -Syyu\n```\n#### Install Vim with Lua support on Mac OSX\n\n```sh\nbrew instal vim  \\\n--with-client-server \\\n--with-gettext \\\n--with-lua \\\n--with-luajit \\\n--with-override-system-vi \\\n--HEAD\n```\n\nThis will give you the `+lua` support which is more awesome!\n\nI am provision this through my Ansible playbook with this role (using Homebrew):\n\n```yml\n---\n## file: roles/common/tasks/editors.yml\n## ...\n##- name: Install Vim from source\n- name: Install latest version of Vim from source with Lua support\n  command: brew instal vim --with-client-server --with-gettext --with-lua --with-luajit --with-override-system-vi --HEAD\n  args:\n    creates: /usr/local/bin/vim\n  tags: editors\n## ...\n```\n\nIf you things go well for you then you should see something like this when type `:version` from Vim\n\n```\n:version\nVIM - Vi IMproved 8.0 (2016 Sep 12, compiled May 18 2017 22:57:51)\nMacOS X (unix) version\nIncluded patches: 1-600\nCompiled by Homebrew\nHuge version without GUI.  Features included (+) or not (-):\n+acl             +comments        +extra_search    +keymap          +mouse_dec       +path_extra      +smartindent     +title           +xfontset\n+arabic          +conceal         +farsi           +lambda          -mouse_gpm       +perl            +startuptime     -toolbar         -xim\n+autocmd         +cryptv          +file_in_path    +langmap         -mouse_jsbterm   +persistent_undo +statusline      +user_commands   -xpm\n-balloon_eval    +cscope          +find_in_path    +libcall         +mouse_netterm   +postscript      -sun_workshop    +vertsplit       +xsmp_interact\n-browse          +cursorbind      +float           +linebreak       +mouse_sgr       +printer         +syntax          +virtualedit     +xterm_clipboard\n++builtin_terms  +cursorshape     +folding         +lispindent      -mouse_sysmouse  +profile         +tag_binary      +visual          -xterm_save\n+byte_offset     +dialog_con      -footer          +listcmds        +mouse_urxvt     +python          +tag_old_static  +visualextra\n+channel         +diff            +fork()          +localmap        +mouse_xterm     -python3         -tag_any_white   +viminfo\n+cindent         +digraphs        +gettext         +lua             +multi_byte      +quickfix        -tcl             +vreplace\n+clientserver    -dnd             -hangul_input    +menu            +multi_lang      +reltime         +termguicolors   +wildignore\n+clipboard       -ebcdic          +iconv           +mksession       -mzscheme        +rightleft       +terminfo        +wildmenu\n+cmdline_compl   +emacs_tags      +insert_expand   +modify_fname    +netbeans_intg   +ruby            +termresponse    +windows\n+cmdline_hist    +eval            +job             +mouse           +num64           +scrollbind      +textobjects     +writebackup\n+cmdline_info    +ex_extra        +jumplist        -mouseshape      +packages        +signs           +timers          +X11\n   system vimrc file: \"$VIM/vimrc\"\n     user vimrc file: \"$HOME/.vimrc\"\n 2nd user vimrc file: \"~/.vim/vimrc\"\n      user exrc file: \"$HOME/.exrc\"\n       defaults file: \"$VIMRUNTIME/defaults.vim\"\n  fall-back for $VIM: \"/usr/local/share/vim\"\nCompilation: clang -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X_UNIX  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1\nLinking: clang   -L. -fstack-protector -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib  -L/usr/loca\nl/lib -o vim    -lXt -lX11 -lSM -lICE  -lncurses -liconv -lintl -framework Cocoa  -pagezero_size 10000 -image_base 100000000 -L/usr/local/lib -lluajit-5.1 -\nmmacosx-version-min=10.12 -fstack-protector-strong -L/usr/local/lib  -L/usr/local/Cellar/perl/5.24.1/lib/perl5/5.24.1/darwin-thread-multi-2level/CORE -lperl\n -lm -lutil -lc -F/usr/local/opt/python/Frameworks -framework Python   -lruby.2.4.1 -lobjc\n```\n\n#### How to bring up your Github branch when your pull request (PR) is accepted.\n\nTo bring your local/remote branch to the same level as the upstream branch you can do the\nfollowing.\n\nI recentely contributed to [webica](https://github.com/tmarble/webica/commit/42895b7118fe403a7fdc538f3c0f7f73fc18a82c) and like my local branch to be the same level as\nthe upstream version. All I have to do is the following:\n\n```sh\n# First you will need to tracking the branch if not already done\ngit remote add upstream git@github.com:tmarble/webica.git\n```\n\nFrom the base directory of your current project you should be able to see something like\n\n```sh\ngit remote -v\norigin\tgit@github.com:agilecreativity/webica.git (push)\nupstream\tgit@github.com:tmarble/webica.git (fetch)\n```\n\nNow you want to fetch the upstream change first\n\n```sh\ngit fetch upstream master\n```\n\nThen to bring your local branch to the level of your upstream branch\n\n```sh\ngit pull --rebase upstream master\n```\n\nAt this point you should be able to push the change to your remote branch (origin)\n\n```sh\n# This is your own branch\ngit push origin master\n```\n\nYour Github repository should now be at the same level as your upstream branch.\n\n#### Default parameter in Linux shell script\n\nSometime it is useful to be able to use sensible default for the user.\ne.g. In the following shell script we are trying to set the default `RAILS_ENV`\nto `develop` if the user omit to specify one.\n\n```bash\n#!/bin/bash\n## Script name: drop-create-migrate-seed-spec\n## Typical script in Ruby/Rails project to setup and quickly test the code\nRAILS_ENV=${RAILS_ENV:=development}\necho \"Using RAILS_ENV=$RAILS_ENV\"\nRAILS_ENV=$RAILS_ENV bundle install\nRAILS_ENV=$RAILS_ENV bundle exec rake db:drop\nRAILS_ENV=$RAILS_ENV bundle exec rake db:create\nRAILS_ENV=$RAILS_ENV bundle exec rake db:migrate\nRAILS_ENV=$RAILS_ENV bundle exec rake db:seed\nRAILS_ENV=$RAILS_ENV bundle exec rake spec\n```\n\nNote if we like to run this script with different environment then we can do so\nusing:\n\n```sh\nexport RAILS_ENV=test \u0026\u0026 ./drop-create-migrate-seed-spec\n```\n\n#### Format your USB drive on Linux base system\n\nWARNING: PLEASE TAKE EXTRA CARE AS THIS COULD BE DESTRUCTIVE!\n\n```sh\n# 1) determine the driver for your usb\nsudo dmesg | tail\n\n# Or use lsblk which should give you the drive information\nsudo lsblk\n\n## 2) Umount your USB driver (from the first step)\nsudo umount /dev/sdb1\n\n## 3) Then reformat your USB to Fat32 (BE EXTRA CAREFUL HERE)\nsudo mkdosfs -n 'USB_LABEL' -F 32 -I /dev/sdb1\n\n## or if you just want FAT instead of Fat32 then omit the `-F 32`\nsudo mkdosfs -n 'USB_LABEL' -I /dev/sdb\n\n## 3) For EXT3\nsudo mkfs.ext3 -n 'LABEL' -I /dev/sdb\n```\n\nAnd that should be it\n\n#### Checkout the pull request commit from Github\n\n```sh\ngit config --add remote.origin.fetch +refs/pull/*/head:refs/remotes/origin/pull/*\ngit fetch origin\n#git describe --all  --contains \u003cCOMMIT\u003e\n```\n\n#### To compare the content of two `.tar.gzip` file\n\n```sh\n#!/usr/bin/env bash\nfile1=$1\nfile2=$2\n# List the content of the file and find the differeces between them\ndiff \u003c(tar -tvf $file1.tar.gz | sort) \u003c(tar -tvf $file2.tar.gz | sort)\n```\n\n#### Add sample test commit for testing with CI/CD build trigger jobs\n\n```sh\n#!/usr/bin/env bash\n## file: add-test-commit\n## Add test commit to any projects\necho `date` \u003e\u003e test-commit.txt \u0026\u0026 git add --all \u0026\u0026 git commit -am \"Test commit at `date`\" \u0026\u0026 git push\n```\n\n#### Sample Jenkins script\n\nI am having fun with Jenkins script in Groovy recently.\n\nHere is the example of script that make a call to shell command to get the\nbranch name from a given commit hash\n\n```groovy\nstage \"preparation\"\n\nnode() {\n    stage('demo-stage') {\n        test_env(\"demo\")\n        echo \"FYI: may be you see: ${test_env_number}\"\n        dir(\"filename_cleaner\") {\n            // Note:t this cleanup the directory so that we can clone new repository successfully\n            deleteDir()\n\n            sh \"git clone https://github.com/agilecreativity/filename_cleaner.git .\"\n            sh \"pwd\"\n            sh \"ls -alt\"\n\n            // sample commit hash\n            def commit_hash = \"fc975c412178fb1363df1644f70b158ddcd77b8a\"\n\n            // Note: we always want to trim of the new line at the end\n            // find the branch name from a given commit hash\n            def result = exec_sh(\"git branch --contains $commit_hash | awk '{print \\$2}'\").trim()\n\n            echo \"Your result: ${result}\" // this print 'master'\n\n            // This is how you could use the result in your logic\n            if (result == \"master\") {\n                echo \"Yes you are right master!!\"\n            } else {\n                echo \"I don't know you!\"\n            }\n        }\n    }\n}\n\ndef test_env(rals_env=\"build_admin\") {\n    withEnv([\"TEST_ENV_NUMBER=${test_env_number}\"]) {\n        echo \"Your path: ${env.PATH}\"\n        echo \"Your TEST_ENV_NUMBER= ${env.TEST_ENV_NUMBER}\"\n    }\n}\n\ndef exec_sh(script_name) {\n  def result = sh(returnStdout: true,\n                  script: script_name)\n  return result\n}\n```\n#### Install PostgreSQL on Arch Linux\n\n- https://wiki.archlinux.org/index.php/PostgreSQL\n\n```\nsudo -u postgres -i\n```\n\nThen\n\n```\n[postgres]$ initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data'\n```\n\nWhich should gives something like\n\n```\n$initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data'\n\nThe files belonging to this database system will be owned by user \"postgres\".\nThis user must also own the server process.\n\nThe database cluster will be initialized with locale \"en_US.UTF-8\".\nThe default text search configuration will be set to \"english\".\n\nData page checksums are disabled.\n\nfixing permissions on existing directory /var/lib/postgres/data ... ok\ncreating subdirectories ... ok\nselecting default max_connections ... 100\nselecting default shared_buffers ... 128MB\nselecting dynamic shared memory implementation ... posix\ncreating configuration files ... ok\nrunning bootstrap script ... ok\nperforming post-bootstrap initialization ... ok\nsyncing data to disk ... ok\n\nWARNING: enabling \"trust\" authentication for local connections\nYou can change this by editing pg_hba.conf or using the option -A, or\n--auth-local and --auth-host, the next time you run initdb.\n\nSuccess. You can now start the database server using:\n\n    pg_ctl -D /var/lib/postgres/data -l logfile start\n```\n\n- You can then check if the database is start properly using\n\n```\n## restart the Postgres service\nsudo systemctl restart postgresql.service\n\n## Start the service at login\nsudo systemctl enable postgresql.service\n\n## Check if everything is running properly\nsudo systemctl status postgresql.service\n```\n\n#### Install postgreSQL on Fedora 24\n\n```\nsudo dnf install postgresql-server\nsudo postgresql-setup --initdb\n\n# start one time only\nsudo systemctrl start postgresql\n\n# start everytime we reboot\nsudo systemctrl enable postgresql\n```\n\nChange the password for user postgres\n\n```\nsudo su - postgres\n#$psql\n#postgres=#\\password postgres\n# enter the password for user postgres\n```\n\nCreate a user and a database\n\n```sh\n$createuser john -P\n$createdb --owner=john sample_db\n```\n\nIf you already have the existing user you like to use just substitute accordingly\n\n```\n$createdb --owner=bchoomnuan sample_db\n```\n\nEdit the `/var/lib/pgsql/data/pg_hba.conf`\n\n```\n#TYPE DATABASE USER ADDRESS METHOD\nhost  all  all 127.0.0.1/32 md5\nhost  all  all ::1/128      md5\nlocal all  all postgres     peer\n```\n\nOr just keep it simple as we are running locally\n\n```\n#TYPE DATABASE USER ADDRESS METHOD\nhost  all  all 127.0.0.1/32 trust\nhost  all  all ::1/128      trust\nlocal all  all postgres     trust\n```\n\nRestart the service\n\n```\n$sudo systemctl enable postgresql.service\n# systemctl\\Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to /usr/lib/systemd/system/postgresql.service.\n```\n\n#### Running Arch Linux and VirtualBox\n\nSee [this link from the Arch Wiki web site](https://wiki.archlinux.org/index.php/VirtualBox)\n\ne.g. You may just need to run `sudo modprobe vboxdrv` to start it up\n\n#### Replace multiple blank lines with one in Emacs\n\n```elisp\n(defun single-blank-lines()\n  \"replace multiple blank lines with a single one\"\n  (interactive)\n  (goto-char (point-min))\n  (while (re-search-forward \"\\\\(^\\\\s-*$\\\\)\\n\" nil t)\n    (replace-match \"\\n\")\n    (forward-char 1)))\n```\n\nThen from inside Emacs just `M-x single-blank-lines`\n\n#### Copy public keys to the remote server (manual way)\n\n```\ncat ~/.ssh/id_rsa.pub | ssh user@123.45.67.89 \"mkdir -p ~/.ssh \u0026\u0026 cat \u003e\u003e ~/.ssh/authorized_keys \u0026\u0026 chmod 0600 ~/.ssh/authorized_keys\"\n```\n\nOptional: disable the password for root login\n\n```\nsudo vi /etc/ssh/sshd_config\n```\n\nEnsure that the following line are only allow the connection with SSH key:\n\n```\nPermitRootLogin without-password\n```\n\nThen reload the ssh daemon:\n\n```\nsudo reload ssh\n```\n\n#### Create new Github repository from command line\n\nTry using [gh-utils](https://github.com/agilecreativity/gh-utils)\n\nOnce installed you can simply create a new empty Github repository with\n\n```sh\ngh-utils --config config.edn --r awesome-repo-name\n```\n\n#### To properly deploy to [clojars.org](https://clojars.org)\n\n```\n# To avoid the error try with GPG keys\nlein deploy clojars\n\n# instead of just `lein deploy`\n```\n\nSee [this link](https://github.com/technomancy/leiningen/issues/1890) for details\n\n#### Reset the very first commit in Git\n\nUseful when you like to rewrite the very first command as `git reset HEAD~1` will not work.\n\n```sh\n# Revert to your very first commit\ngit update-ref -d HEAD\n\n# Edit and fix the thinks to your liking\n# ..\n# If you have already created a repository in Github, you may like to push force\ngit push -f origin master\n```\n\n#### Copy the ssh key to Github (Linux)\n\n- [Adding new ssh key to Github account](https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/) for more detail\n- [How to generate ssh key for Github](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/)\n\n```sh\n$sudo apt-get install xclip # For Debian base system\n$sudo pacman -Sy xclip # For ArchLinux\n\n# Downloads and installs xclip. If you don't have `apt-get`, you might need to use another installer (like `yum`)\n\n$xclip -sel clip \u003c ~/.ssh/id_rsa.pub\n# Copies the contents of the id_rsa.pub file to your clipboard\n```\n\nIf you install the key manually you may like to\n\n```sh\n# Might need to install the sshpass/openssh\nsudo pacman -Sy openssh sshpass   # To get the ssh-agent\nchmod 0644 $HOME/.ssh/id_rsa      # your personal private key\nchmod 0644 $HOME/.ssh/id_rsa_work # your work private key (if any)\n\neval \"$(ssh-agent -s)\"\n\n# Then perhap you should clear the `known_hosts` file if any\n\u003eknown_hosts # will clear out the file content\n\n# Then you can try to see if your ssh Github work\nssh -T git@github.com\n```\n\n#### Work with two Github's profiles from the same machine (think Work/Personal)\n\nYou will need to create the two SSH's keypairs one for work and one for personal use\n\n```\n## file: ~/.ssh/config\n## Default config for personal work\nHost github.com\n  HostName github.com\n  User git\n  IdentityFile ~/.ssh/id_rsa\n\n## Default config for client's work\nHost github-work\n  HostName github.com\n  User git\n  IdentityFile ~/.ssh/id_rsa_work\n```\n\nNow when you need want to work on your personal projecg you can use normal command like:\n\n```\n# Git clone as usual\ngit clone git@github.com:agilecreativity/github-cloner.git\n\n# Git clone public repository as usual\n```\n\nIf you want to do the same for work, you will need to type something like\n\n```\ngit clone git@github-work:work-org/some-cool-project.git\n\n# Change to this project\ncd some-cool-project\n\n# And make sure you have the right configuration to your work's related email\ngit config user.email \"me@my-work.com\"\n```\n\nNow you can push/pull using your usual git workflow.\n\n#### Arch Linux - working with `pacman` and `yaourt`\n\nList packages you have installed\n\n```sh\nsudo pacman -Qm\nyaourt -Qm\n```\nVery usefule when you like to know what you have already installed on two different computers.\n\nAnd to install package via `yaourt` and skip the need to confirm the `do you wish to continue?`\n\n```sh\n# Q: Do you wish to continue with installation?\n# A: Of course I do that why I am running this command!\nyaourt google-chrome --noconfirm\n```\n\n#### The best way to write changes log for the project\n\nHighly recommended take a look at [http://keepachangelog.com/](http://keepachangelog.com/).\n\n#### Install ruby 2.2.3 on Arch when getting openssl error\n\nSee [//wiki.archlinux.org/index.php/Rbenv](https://wiki.archlinux.org/index.php/Rbenv)\n\n```sh\n# First install required library if not already done\npacman -S base-devel libffi libyaml openssl zlib\n\n# Install rbenv with patch\ncurl -fsSL https://gist.github.com/mislav/055441129184a1512bb5.txt | rbenv install --patch 2.2.3\n```\n\nFor other platform or system see [this link from rbenv](https://github.com/rbenv/ruby-build/issues/826) issues in Github\n\n#### Install and setup Postgres (and redis) on ArchLinux\n\nThe usual package installation\n\n```sh\nsudo pacman -Syu postgresql\nsudo pacman -Syu redis\n```\n\nNow follow [PostgreSQL wiki](https://wiki.archlinux.org/index.php/PostgreSQL/)\n\nIn summary:\n\n```\n# login as postgres\nsudo -i -u postgres\n\n# Command now run as `postgres` user\n[postgres] initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data'\n\n# Exit from running as postgres\nexit\n\n# Now it is a good time to create a password for `postgres`\n# First change to root\nsudo su -\n\n# Change the password for user 'postgres'\npasswd postgres\n\n# Type and remember the password for postgres\n# Now exit from the sesssion\nexit\n\n# As sudo user, we will need to start the postgresql.service\n# Check the current status of the postgresql.service (it should be inactive)\nsudo systemctrl status postgresql.service\n\n# To start it with the system use\nsudo systemctrl enable postgresql.service\n\n# Similarly, for redis\nsudo systemctrl enable redis.service\n```\n\n#### Checkout the Github PR locally easily\n\n```\n[remote \"origin\"]\n\turl = git@github-work:\u003cYOUR-ORG-OR-USERID\u003e/\u003cYOUR-PROJECT\u003e.git\n\tfetch = +refs/heads/*:refs/remotes/origin/*\n  # This is the magic line, this will allow us to run `git checkout pr/\u003cNUMBER\u003e`\n  fetch = +refs/pull/*/head:refs/remotes/origin/pr/*\n```\n\n#### How to quickly clone multiple Github repos quickly\n\nUse my own [github-cloner](https://github.com/agilecreativity/github-cloner) gem\n\n```sh\n# Install the ruby gem\ngem install github-cloner\n\n# And just use it to clone the repos from your favourite user/organization\n# e.g. To clone all of the 'Emacs Lisp' and 'HTML' repository for user 'sachac' the Emacs curator try\ngithub cloner -u sachac -l \"Emacs Lisp,HTML\" -c\n```\n\n#### Install ruby version 2.2.3 on Linux e.g. ArchLinux with rbenv\n\nIn this case, I am using `rbenv` as ruby manager. This wiil not be applicable\nto `rvm` or any other tools like `chruby`, etc.\n\n- [Original link](https://github.com/rbenv/ruby-build/wiki#openssl-sslv3_method-undeclared-error)\n\n```sh\n#!/bin/bash\n## See: the rbenv installation site\n## For Arch Linux we need to first install the following packages\n\n## 1)\nsudo pacman -S base-devel libffi libyaml openssl zlib\n\n## If you get the openssl error then try\n## https://github.com/rbenv/ruby-build/wiki#openssl-sslv3_method-undeclared-error\n## 2)\ncurl -fsSL https://gist.github.com/mislav/055441129184a1512bb5.txt | \\\n    rbenv install --patch 2.2.3\n```\n\n#### Selenium web driver for Firefox work best with version 35.0.1\n\n- Download the older version of Firefox and install to some directory\n- [https://www.mozilla.org/en-US/firefox/35.0.1/releasenotes/]()\n- [download pages for version 35.0.1](https://ftp.mozilla.org/pub/firefox/releases/35.0.1/)\n- [The en-US version](https://ftp.mozilla.org/pub/firefox/releases/35.0.1/linux-x86_64/en-US/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagilecreativity%2Ftips-and-tricks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagilecreativity%2Ftips-and-tricks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagilecreativity%2Ftips-and-tricks/lists"}