Categories: Всячина

mini-notes-issue-12/

Темы выпуска: настройка Claws Mail, генерация UUID и каррирование в Erlang, как в Linux заблокировать экран перед выполнением pm-suspend , и не только. Предыдущие выпуски: одиннадцатый , десятый , девятый , восьмой .

1. Как сгенерировать UUID в Erlang

Генерация валидного UUID 4-ой версии занимает пять строк кода на Erlang:

module ( uuid ) .

export ( [
generate / 0
] ) .

generate ( ) ->
<< A : 32 , B : 16 , C : 16 , D : 16 , E : 48 >> = crypto : rand_bytes ( 16 ) ,
Str = io_lib : format (
«~8.16.0b-~4.16.0b-4~3.16.0b-~4.16.0b-~12.16.0b» ,
[ A , B , C band 16 #0fff , D band 16 #3fff bor 16 # 8000 , E ] ) ,
list_to_binary ( Str ) .

Библиотека для подключения этого кода к своему проекту доступна на GitHub .

2. Как в Linux одновременно сделать suspend и lock

Если просто приостановить операционку командой pm-suspend , то после выхода из suspend любой сможет получить доступ к вашей системе. Я решил эту проблему следующим образом.

Файл ~/bin/suspend:

#!/bin/sh

gksudo ~ / bin / suspend-priv

Файл ~/bin/suspend-priv:

#!/bin/sh

sudo -u eax i3lock -c 000000 & ( sleep 3 && pm-suspend )

Решение вполне очевидное — блокируем экран, и только потом уходим в suspend. Фокус в том, чтобы выполнить все команды в правильной последовательности и от имени нужных пользователей.

3. Каррирование в Erlang

В Erlang нет каррирования, но его можно добавить:

1 > F0 = curried: make ( fun ( A , B , C , D , E , F ) -> [ A , B , C , D , E , F ] end ) .
{ curried_function , #Fun < erl_eval . 17 . 17052888 > , 6 , [ ] , [ ] }
2 > F1 = curried: apply ( F0 , [ 1 , 2 , 3 ] ) .
{ curried_function , #Fun < erl_eval . 17 . 17052888 > , 3 , [ 3 , 2 , 1 ] , [ ] }
3 > curried: arity ( F1 ) .
3
4 > F2 = curried: rapply ( F1 , [ 5 , 6 ] ) .
{ curried_function , #Fun < erl_eval . 17 . 17052888 > , 1 , [ 3 , 2 , 1 ] , [ 5 , 6 ] }
5 > curried: apply ( F2 , [ 4 ] ) .
[ 1 , 2 , 3 , 4 , 5 , 6 ]

Код библиотеки доступен на GitHub .

4. Проверка орфографии русского языка в Claws Mail

«Из коробки» в моем любимом почтовом клиенте Claws Mail нет проверки орфографии русского языка. Говорим:

sudo aptitude install hunspell-ru

… и русские слова больше не выделяются красным. Если, конечно, в них нет ошибок.

5. Почему Си не является подмножеством C++

Программа выводит «C», если собрать ее с помощью gcc, и «C++», если с помощью g++:

#include <stdio.h>

int main ( ) {
printf ( «%s n » , ( sizeof ( ‘a’ ) == sizeof ( char ) ) ? «C++» : «C» ) ;
return 0 ;
}

via @konung .

6. Перенаправление stdout в два пайпа

Следующая команда считает количество строк в файле и сжимает его в один проход:

cat test.c | tee > ( wc -l >& 2 ) | gzip > test.gz

via @truecrux .

7. Еще один скрипт для создания скриншотов

Делаем скриншот экрана, заливаем его на radikal.ru, открываем в pixlr.com, удаляем с radikal.ru:

#!/usr/bin/env perl

use strict ;
use warnings ;

`scrot /tmp/new-screenshot.png` ;
my $rslt = `radikal-upload /tmp/new-screenshot.png` ;
die if $? ;

my ( $img ) = $rslt =~ /Image:s(.*)/ ;
my ( $del ) = $rslt =~ /Delete:s(.*)/ ;

`chromium-browser http://pixlr.com/editor/?image=$img` ;

sleep 30 ;
`$del` ;

Скрипт radikal-upload вы найдете в конце 10-го выпуске мини-заметок .

8. Увеличиваем количество рабочих столов в i3

По-умолчанию в оконном менеджере i3 доступно всего-навсего десять рабочих столов. Дописываем в ~/.i3/config:

bindsym $mod+y workspace 11
bindsym $mod+u workspace 12
bindsym $mod+i workspace 13
bindsym $mod+o workspace 14
bindsym $mod+p workspace 15

bindsym $mod+Shift+Y move container to workspace 11
bindsym $mod+Shift+U move container to workspace 12
bindsym $mod+Shift+I move container to workspace 13
bindsym $mod+Shift+O move container to workspace 14
bindsym $mod+Shift+P move container to workspace 15

Жмем Win+Shift+R. Теперь рабочих столов стало пятнадцать!

9. Алиасы в SSH

Прописываем в ~/.ssh/config:

Host user.dev
Hostname user.dev.example.com
User user
ForwardAgent yes

Говорим ssh user.dev . Это будет полностью аналогично более длинной команде ssh -A user @ user.dev.example.com .

10. Синхронизация фильтров в Claws Mail

Все фильтры хранятся в файле ~/.claws-mail/matcherrc. Просто копируем его с машины на машину.

Дополнение: Мини заметки — выпуск 13, полностью посвященный Linux

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

1 месяц ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

1 месяц ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

1 месяц ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

1 месяц ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

1 месяц ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

1 месяц ago