Python заметки

  • Python.org – основной сайт. Тут можно скачать актуальный python на windows/linux/mac os, посмотреть документацию
  • Гвидо ван Россум – творец языка. По сути аналог Линус Торвальдса для Linux.
  • Python – the second best language for everything. И это действительно так, включая новые-модные devops, AI, BigData, autotests.


Читать дальше “Python заметки”

Поднимаем FTP сервер на CentOS 7

Пошаговый гайд, аналог статьи про TFTP

0) Отключаем SELinux если раньше это не сделали и перезагружаем сервер (если уверены что он нам не нужен или не умеем с ним работать). Если без отключения для заливки файлов должны помочь строки “setsebool -P ftp_home_dir on” и “setsebool -P allow_ftpd_full_access on”

sudo vi /etc/selinux/config
SELINUX=disabled
1) Устанавливаем сервер, кладем в папку по умолчанию /var/ftp необходимые файлы
sudo yum -y install vsftpd
cp test_file /var/ftp/
2) Добавляем сервис FTP как разрешенный в файрволл и перезагружаем его (мягко для применения правил без разрыва существующих коннектов)
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
3) Запускаем FTP сервис, смотрим его состояние, добавляем сервис в автозагрузку
sudo systemctl start vsftpd
sudo systemctl status vsftpd
sudo systemctl enable vsftpd
4) Проверяем работу сервиса через обычный браузер
ftp://192.168.1.22/

Удаление

sudo firewall-cmd --permanent --remove-service=ftp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
sudo yum -y remove vsftpd

Ruby HTTP get/post

Simple get

Простая функция для отправки http get.

def get(request)
request = CGI::escape(request)
uri = URI("http://#{$server}/#{request}")
Net::HTTP.get(uri)
end

Get with header

Пример запроса с header. Обращаю внимание, что в старой версии ruby 1.9.3 обязательно нужно к uri применить метод .request_uri, в новых не обязательно.

Читать дальше “Ruby HTTP get/post”

Linux: использование yum в CentOS (обновление, установка, удаление приложений)

Аналог статьи про Ubuntu, Gentoo.

CentOS работает с .rpm пакетами (так же как и RHEL, Fedora, Suse, Mandriva). 

Вот тут есть очень хорошая шапаргалка. Ниже только самое используемое, остальное проще взять оттуда.

Обновление всех приложений (сразу и обновляем данные из репозиториев о пакетах и ставим эти пакеты)

sudo yum update

Обновление конкретного приложения

sudo yum update certbot

Список всех приложений

sudo yum list installed

Список установленных приложений

sudo yum list installed

Поиск приложения

yum search python36

Просмотр информации о приложении

yum info python36u-pip

Удаление ненужных приложений

sudo yum autoremove

Удаление конкретного приложения

sudo yum -y remove vsftpd
Проблемы

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

Читать дальше “Linux: использование yum в CentOS (обновление, установка, удаление приложений)”

Заметки по MacBook и MacOS

  • Заклеил логотип Apple на ноуте крутым стикером Omne tulit punctum, qui miscuit utile dulci. Ноут прекрасный и я его всем рекомендую, но конкретно эта реклама Apple из моего кармана мне не нравится.
  • Если залипают клавиши на клавиатуре butterfly – возьмите трубку пылесоса и под полным напором прочистите клавиши.


Читать дальше “Заметки по MacBook и MacOS”

Ruby: генератор списка выходных на год

Простейший генератор списка выходных на год.

Что можно кастомизировать (жирным в коде):

  • В переменной cur_date указываем дату отчета
  • В счетчике можно подкрутить количество дней с 365 до любого количества
  • Строку вывода можно заменить генерацией INSERT в какую то SQL таблицу (закоменчено)
#bin/generate_vacation_list.rb

require 'time'

cur_date = Date.new(2019,1,1)
counter = 0
while counter < 365
 puts "#{cur_date}" if cur_date.saturday?


Читать дальше “Ruby: генератор списка выходных на год”

Отзыв HP spectre x360 16гб RAM 512гб SSD

Брал топовый Spectre x360 13-ae003ur с 16гб RAM, 1024гб SSD и разрешением UHD 3840×2160. Очень хотел convertible и выбирал его довольно тщательно, полагался во многом на оценку топовых блогеров – Spectre x360 признавался во многих обзорах уже два года лучшим с точки зрения цены-качества convertible.


Читать дальше “Отзыв HP spectre x360 16гб RAM 512гб SSD”

Ruby: работа с текстом

 String Class

Индексы

Строка в ruby является объектом класса String.  По индексу строки, по аналогии с индексом массива, можно извлекать, изменять и удалять данные из строки. Причем обращения по индексу идет через те же квадратные скобки, что и для массива.

Обращаясь к строке можно извлечь например первые 6 элементов или последний символ на основе индекса строки, по типу того, как мы извлекаем элементы array:

str[start, lenght]
str[0,6] - извлекаем первые 6 элементов, где 0 - первый символ, 6 - сколько символов от первого
str[7..10] - извлекаем с 7го по 10ый символы используя range
str[-1] - извлекаем последний символ из строки
str[-6,6] - извлекаем с конца строки шесть последний символов
str[-6..-1] - извлекаем с конца строки шесть последний символов используя range

Кроме получения данных по индексу можно эти данные и менять/удалять/добавлять:

str[0,6] = "new_first_6_char" - заменяем первые 6 элементов на новые
str[0,6] = "" - удаляем
str[16,0] = "the end" - добавляем в конец строки данные (16 символ последний)
str[-1,0] = "the end" - добавляем в конец строки данные (более корректный способ)
Методы

Почти все в ruby является объектом.

Читать дальше “Ruby: работа с текстом”

Установка и использование Dante в качестве сервера Socks5 на Ubuntu 16

В свете огромной вероятности блокировки telegram в ближайшее время возник вопрос в установке и использовании Dante в качестве сервера Socks5 на Ubuntu 16.

Большая часть инфы нагло взята из офф. доки и отсюда.

Не забываем про теорию

Proxy – может использоваться по разному, например для логгирования клиентских запросов в компании, ограничения доступа (хех) или наоборот, обхода ограничения, блокировки определенного контента.

Читать дальше “Установка и использование Dante в качестве сервера Socks5 на Ubuntu 16”

Ruby: работа с ФС (файлами и папками)

ФАЙЛЫ

дока

Прежде всего нужно обозначить, что закрытие файла крайне необходимый процесс:
1) открытый файл может быть заблокирован файловой системой для других скриптов
2) при открытии создается file descriptor, их количество ограничено файловой системой, хотя и обычно значение ограничения довольно большое
3) могут произойти race conditions, когда несколько процессов пытаются прочитать/записать один и тот же ресурс (в данном случае файл) в один момент времени

Чтение и вывод

# вывод контента (первой строки)
File.open("test.txt") do |file| # открытие файла
 puts file.gets # вывод контента (первой строки)
end # автоматическое закрытие по завершению метода Open, про необходимость закрытия теория выше

# Вывод всех строк
File.open("test.txt").each do |line|
 puts line
end

# Кладем строки файла в array, где каждая новая строка является отдельным элементом массива.


Читать дальше “Ruby: работа с ФС (файлами и папками)”