Архив рубрики: Блог

Установка Hexo и размещение сайта на Github Pages

В этой статье рассказано, как бесплатно за полчаса с нуля создать сайт и сделать его доступным по адресу sitename.github.io.

Hexo — это генератор статических сайтов, подобный Jekyll, Pelican, Octopress, Hugo и т.д.

Что такое генератор статических сайтов?

Сайт, который Вы читаете прямо сейчас — статический. Все странички здесь — это обычные html файлы. Большинство статических журналов создаются с помощью различных генераторов статических сайтов. Читать

Ссылочный спам в Google Analytics и Yandex.Metrika

Описание проблемы

Обнаружение

Однажды я заметил в Google Analytics (далее GA) и Yandex.Metrika (далее YM), что у меня куча посещений из каких-то непонятных источников. Обрадовался даже поначалу. Поглядите и Вы (GA: Источники трафика → Обзор → Рефералы ; YM: Источники → сайты):

А вот соответствующая таблица (закрасил неважные столбцы): Читать

Транслитерация имён файлов с Python

У меня есть похожая запись о транслитерации содержимого файла. Здесь же будут транслитерированы только имена файлов.

Если активно пользуешься терминалом, часто возникает желание убрать пробелы из имён файлов и иногда даже кириллицу.

Итак, перед нами стоит задача группового переименования файлов. Например, нужно поменять имена всех файлов в директории. Хотим избавиться от пробелов — заменить их на нижние подчёркивания. Все кириллические буквы хотим поменять на латинские (на «транслит»).

Вот скрипт, написанный на питоне, который совершает такое массовое переименование файлов. Надо создать файл renamer.py с приведённым ниже содержанием, положить его в папку с переименовываемыми файлами и выполнить:

user $python3 renamer.py -p

И в выводе программы будет показано, как будут переименованы файлы, но изменений не произойдёт. Если Вы окажетесь довольны результатами, сделайте на всякий случай резервную копию директории и выполните python3 renamer.py. За ключик -p спасибо комментарию от hombit’a.

Файл Русский Текст.TXT переименуется в russkiy_tekst.txt. Поведение скрипта благодаря его простоте очень легко подстроить под свои нужды, даже совсем не разбираясь в питоне. В строках с 13 по 82 в левом столбце в кавычках стоит то, что подлежит замене; в правом столбце — то, на что нужно заменять. Добавляйте свои замены и корректируйте существующие по своему усмотрению.

renamer.py

Скачать

#! /usr/bin/env python#coding=utf8import osfrom sys import argvdef latinizator(letter, dic): for i, j in dic.items(): letter = letter.replace(i, j) return letterlegend = {‘ ‘:’_’,’,’:»,’а’:’a’,’б’:’b’,’в’:’v’,’г’:’g’,’д’:’d’,’е’:’e’,’ё’:’yo’,’ж’:’zh’,’з’:’z’,’и’:’i’,’й’:’y’,’к’:’k’,’л’:’l’,’м’:’m’,’н’:’n’,’о’:’o’,’п’:’p’,’р’:’r’,’с’:’s’,’т’:’t’,’у’:’u’,’ф’:’f’,’х’:’h’,’ц’:’c’,’ч’:’ch’,’ш’:’sh’,’щ’:’shch’,’ъ’:’y’,’ы’:’y’,’ь’:»‘»,’э’:’e’,’ю’:’yu’,’я’:’ya’,’А’:’A’,’Б’:’B’,’В’:’V’,’Г’:’G’,’Д’:’D’,’Е’:’E’,’Ё’:’Yo’,’Ж’:’Zh’,’З’:’Z’,’И’:’I’,’Й’:’Y’,’К’:’K’,’Л’:’L’,’М’:’M’,’Н’:’N’,’О’:’O’,’П’:’P’,’Р’:’R’,’С’:’S’,’Т’:’T’,’У’:’U’,’Ф’:’F’,’Х’:’H’,’Ц’:’Ts’,’Ч’:’Ch’,’Ш’:’Sh’,’Щ’:’Shch’,’Ъ’:’Y’,’Ы’:’Y’,’Ь’:»‘»,’Э’:’E’,’Ю’:’Yu’,’Я’:’Ya’,}for file_old in os.listdir(‘.’): file_new = latinizator(file_old, legend)

#Раскомментируйте, чтобы сделать первую букву в имени файла Прописной

#file_new = file_new.capitalize() if ‘-p’ in argv: if file_old == file_new: print (‘{0: <30}’.format(file_old), ‘не будет переименован’ ) else: print (‘{0: <30}’.format(file_old), ‘будет переименован в ‘, file_new ) else: if file_old != file_new: print (‘{0: <30}’.format(file_old), ‘переименован в ‘, file_new ) os.rename(file_old, file_new)

P.S. Функцию для замены ключа словаря на его значение подсмотрел тут.

Раскладка в Ubuntu 14.04

Для починки раскладки в Ubuntu + GNOME везде советуют это:
user $user $gsettings set org.gnome.settings-daemon.plugins.keyboard active false
setxkbmap -option «grp:alt_shift_toggle,grp_led:scroll,compose:ralt»

Первая команда отключает гномовский индикатор раскладки, так что он работать не будет. Зато вторая команда должна зажигать/гасить лампочку на Scroll Lock (при её наличии) в зависимости от выбранной раскладки. Также вторая команда вешает переключение раскладок на Alt+Shift, а Compose Key — на правый Alt. Читать

Align columns in vim

One may come across the table like this:

There are some utilities to align the columns in the table. But do you really need one, if you are already in vim? Have a look on the alignment process in gif animation or mp4 video.
The general idea is:

Paste enough spaces between the columns, so that the leftmost element from the second column will appear to the right relatively to rightmost element from the first column. In latex files like in the video/animation, & symbol serves as a delimiter between the columns, so I use :%s/&/          &/g to precede all the ampersands with bunch of spaces. How much exactly spaces you need depends on the cell length.

Select empty column in visual block mode via Ctrl + V. To move leftwards everything to the right of the selection, use <. Repeat the action as many times as you need with .. The video and the animation show this only for the first time, when second column is being aligned. It is not the shortest way, and it is shown only for better understanding of what’s going on.

Once you’ve selected an empty column, instead of <……. or so you may do 20<. This method is used to align the remainder of the table in the video/animation.

I started to learn vim about 5 years ago, when someone told me that vim knows how to work with columns. Since then this ability of vim is one of my favorites. I love vim!

Acestream on Ubuntu 16.04

Acestream (fork of the VLC player for video playback via torrents) was easy to install using apt-get on Ubuntu 14.04, but on Ubuntu 16.04 it is not in the repositories at the moment of writing (please let me know if it changes). One way is to install Acestream from source, but it could be difficult. The second way is was described here (Spanish, the link is dead already). I decided to gather all necessary files into an archive to make installation simpler.

To find out if your computer is running 32-bit or 64-bit version of Linux type uname -a in the terminal. If the output contains i686 or i386, then your Linux is 32-bit. If the output contains x86_64, then your Linux is 64-bit.
32-bit Linux

Download the appropriate archive: Acestream 32-bit.

Install the files as follows, using dpkg or gdebi:
user ~ $user ~ $unzip acestream-32.zip
cd acestream-32
root acestream-32 #root acestream-32 #root acestream-32 #root acestream-32 #root acestream-32 #dpkg -i 00-libgnutls-deb0-28_3.3.15-5ubuntu2_i386.deb
dpkg -i 01-acestream-engine_3.0.3-0.2_i386.deb
dpkg -i 02-acestream-player-compat_3.0.2-1.1_i386.deb
dpkg -i 03-acestream-player-data_3.0.2-1.1_i386.deb
dpkg -i 04-acestream-player_3.0.2-1.1_i386.deb

64-bit Linux

Download the appropriate archive: Acestream 64-bit.

Install the files as follows, using dpkg or gdebi:
user ~ $user ~ $unzip acestream-64.zip
cd acestream-64
root acestream-64 #root acestream-64 #root acestream-64 #root acestream-64 #root acestream-64 #dpkg -i 00-libgnutls-deb0-28_3.3.15-5ubuntu2_amd64.deb
dpkg -i 01-acestream-engine_3.0.5.1-0.2_amd64.deb
dpkg -i 02-acestream-player-compat_3.0.2-1.1_amd64.deb
dpkg -i 03-acestream-player-data_3.0.2-1.1_amd64.deb
dpkg -i 04-acestream-player_3.0.2-1.1_amd64.deb

Note
If you are running into the following issue: «trying to overwrite <filename> which is also in package <packagename>», you may want to add the flag —force-overwrite to your installation command. Attention: then the mentioned file will be overwritten and mentioned programs may fail.