Main Page
From PaskvilWiki
Welcome to the PaskvilWiki!
The future shape of this wiki is unknown for now, let's hope it'll be something good...
This is partially a private wiki - viewing is allowed to all, but editing is allowed only to registered users.
This is more of a prevention than denial - I don't have time to monitor and moderate edits; - you're more than welcome to request registration, all contributors are very much welcome!
Just write me at josef.at.paskvil.dot.com.
Contents
- 1 References and Tutorials
- 2 Short Notes - Tips and Tricks
- 2.1 4store
- 2.2 Apache
- 2.3 Bash
- 2.4 C/C++
- 2.5 ElasticSearch
- 2.6 ffmpeg
- 2.7 Kyoto Cabinet and Kyoto Tycoon
- 2.8 Linux Administration
- 2.9 MAC OSX
- 2.10 MongoDB
- 2.11 MySQL
- 2.12 PDF
- 2.13 PHP
- 2.14 Python
- 2.15 Security
- 2.16 Subversion/SVN
- 2.17 ViM
- 2.18 Web - HTML, CSS, JS, jQuery, etc.
- 2.19 Other Short Notes
References and Tutorials
Emacs and Slime Reference
Small jQuery Reference
Small jQuery Cheat Sheet
Small SPARQL, RDQL, etc. Cheat Sheet
Short Notes - Tips and Tricks
4store
- setup and installation
- running 4store
- data import
- data import and querying from Python
- Turtle file printer (in Python)
Apache
- Note on serving of local files
- Self-Signed SSL Certificate
- Enable SSL/HTTPS in Apache
- .htaccess and mod_rewrite Tricks
Bash
- Extensions and File Name
- File Test Operators
- Commands and Shortcuts
$ sudo !! - run last command as root $ !!:gs/foo/bar - run last command, replacing 'foo' with 'bar' $ ^foo^bar - run last command, replacing 'foo' with 'bar' $ cp filename{,.bak} - create a .bak copy of file <Ctrl-x> <Ctrl-e> - open $EDITOR to edit current command line; upon exit, content will be run $ <space>command - run the command without saving it in history $ > file.txt - empty a file <Alt+.> - put last argument on cursor place; repeat to cycle through $ (cd /tmp && ls) - jump to /tmp, execute ls, and jump back here $ pushd /tmp .... $ popd - goes to /tmp, remembering current location; at later time, popd will bring you back $ \command - run command without using aliases $ rm !(pattern|pattern) - delete files that do not match given patterns $ find . -mtime +5 -exec rm {} \; - delete all files in this folder that are older than 5 days <Ctrl-u> ... <Ctrl-y> - Ctrl+u will cut current command, then you can do whatever you need, and Ctrl+y will paste it back $ date -d @1234567890 - convert unix timestamp to human-readable
- Informations
$ mount | column -t - pretty-print mount table $ cat /etc/issue - display distro name
- Small Tricks
$ mount -t tmpfs tmpfs /mnt -o size=1024m - mount temporary RAM partition (fast access, non-persistent!) $ disown -a && exit - exit the shell while keeping all running processes alive $ ssh -t remote_host screen -r - directly connect to a remote screen process $ for I in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $I | gzip > "$I.sql.gz"; done - backup all databases into individual files $ fuser -k filename - kill process that is locking given file $ readom dev=/dev/scd0 f=/path/to/image.iso - create CD/DVD ISO image $ mkdir -p a/deep/dir/tree - create nested directories fast $ mount file.iso /mnt/iso -o loop - mount ISO file as drive /mnt/iso (dir has to preexist) $ sudo touch /forcefsck - force a file system check on the next reboot $ ls | while read f; do something with file "$f"; done - iterate through files even if they contain space in name
- lsof
$ lsof -nPi - list network connections $ netstat -tlnp - print all listening ports with PID's (run as root to see all process names) $ lsof -c gnome-terminal - list files opened by given command $ lsof +D [folder] - discover all open files in the [folder] $ lsof -p [pid] - list files opened by given PID $ lsof -i :8080 - list programs that have port 8080 open ("who to kill" if you get "port already in use")
C/C++
- How to clean up after child thread
- Non-blocking IO using sockets
- Shared Libraries on Linux+GCC
- Singleton
- std::move Semantics
ElasticSearch
- Installation
- What You Get
- Indexing, Routing, etc.
- Deleting
- Getting and Multi-Getting
- Updating
- Search and Query DSL
ffmpeg
- Rip DVD into FLV (or anything else)
- Video File with Still Image and Audio
- process all files, may include spaces in file name:
ls *.avi | while read f; do ffmpeg -i "$f" ...params... "$f.mkv"; done
- if you're having problems with input format, passing video through mpeg typically helps:
ffmpeg -i file.mkv -qscale 2 -f mpeg - | ffmpeg -i - ...params... file.avi
- downmix 5.1 dolby to normal stereo:
ffmpeg -i file.mkv ...params... -acodec libmp3lame -ar 44100 -ac 2 file.avi
Kyoto Cabinet and Kyoto Tycoon
- Setup and Install Kyoto Cabinet
- Setup and Install Kyoto Tycoon
- KT's RPC API Reference
Linux Administration
- Reset Compiz to Default Settings
- Enable and Start sendmail
- Installing sendmail
- Sending Emails using sendmail
MAC OSX
- Asynchronous Execution
- NSThread
- performSelectorInBackground
- dispatch_async
- MacPorts
$ sudo port selfupdate $ sudo port upgrade outdated $ sudo port uninstall inactive $ (just once) sudo port install port_cutleaves $ sudo port_cutleaves
MongoDB
Esp. using the PHP PECL driver.
MySQL
- Error 1045: Access denied
- The insert ... on duplicate key update Pitfall
- Merging PDF Files using GhostScript
- Cutting PDF Files using GhostScript
- Converting to PDF using GhostScript
PHP
- Convert Accented Characters to Non-Accented
- Upload a File using cURL
- HTTP Post in Pure PHP (without cURL)
- Prevent Client Disconnect from Killing PHP
- Disconnect Client and Continue Processing
Python
- Timing, and memory, on Linux
Security
- Password Generators
- SSH Access using pubkey's Authentication
- Using RSync together with SSH
Subversion/SVN
- Simple Guide to SVN Client
- Creating a SVN Repository|Creating SVN Repository
- Moving a SVN Repository
- Change Repository URL (Subversion 1.7+)
- Setup a SVN Server on a Shared Hosting with no root Access
- creating and applying patch (the --diff-cmd is necessary in case you set some graphical diff-viewer in ~/.subversion/config):
cd root_of_project svn di --diff-cmd diff > ~/patch.diff cd root_of_other_project patch -p0 -i ~/patch.diff
ViM
- Delete all lines matching a pattern
- Directly type HTML entities
- Reformat a plain text paragraph
$ vim -x filename - open filename for editing, and save it encrypted (will prompt for a key) :X - set encryption for current file; use ':set key=' to disable encryption - put "set cm=blowfish" in your .vimrc to enable safer encryption by default $ vim +10 [file] ; vim +/hello [file] - open [file] at line 10, or at first occurrence of pattern 'hello' in file :w !sudo tee % - save file via `sudo` (as root)
Web - HTML, CSS, JS, jQuery, etc.
- Multiple Submit Buttons and/or Multiple Forms on Page
- Make 'float' Elements Appear One under Another
- Upload a File via Form
- Override the IE's Problem with width
- Make an Element Fill In All the Remaining Space