Ruby: работа в командной строке с ruby -e

Ruby можно вызывать из shell используя опцию -e, не указывая файл с кодом, а прямо из командной строки. По сути вызов irb из консоли. Очень крутая штука. Если строк несколько – то делить их нужно через “;”.

~$ ruby -e 'puts 1+1'
2
~$ ruby -e 'puts 1+1;puts 1+2'
2
3

Так же Ruby в командной режиме может использоваться по аналогии с pipeline с опцией -n – берем STDIN как входящий поток для кода и применяем его для каждой строки STDIN, пока их не останется (аналог bash while read | do).

Читать дальше

Review курса Google на Coursera

Very useful course, thanks Google and the Coursera! Really good job.

My brief summary:

IT Automation: It’s not that scary!

General knowlege – super useful concepts, ideas, experiences and best practices

Ruby – I love this language, “coding is a feature of IT” with such languages

Git – fantastic and very useful, began to use immediately after passing the week

Chef – a little lame with bash scripts.

Читать дальше

Ruby: специальные символы

#{} – string enterpolation

! – методы заканчивающиеся на ! замещают результат оперируемой переменной (gsub!)

!! – конвертация значения в boolean (true/false)

def is_ip?(ip)
!!IPAddr.new(ip) rescue false
end

? – методы заканчивающиеся на ? генерируют (обычно) boolean результат (include?)

Читать дальше

Ruby: работа с сетью (библиотеки/гемы IPAddr, net-ping, net-snmp)

Ruby ip addr class
Используя стандартную библиотеку Ruby IPaddr можно работать с IP (как IPv4, так и IPv6) адресами – проверка формата, генерация array на основе Ip/mask, проверка относится ли хост к сети. Очень удобно.

Метод для проверки формата полагается на rescue создания объекта в классе IPaddr.



Читать дальше

Кодировки (artlebedev, iconv, coding)

Чаще всего помогает

  • https://www.artlebedev.ru/decoder/
  • iconv
  • ruby or python
  • json encode/decode

Ruby

Пример изменения кодировки windows default для кириллицы на UTF-8 с использованием ruby

str.force_encoding("Windows-1251").encode("UTF-8")

“str”.encode(“windows-1251”) # кодируем в 1251

“str”.encode(“windows-1251”, invalid: :replace, undef: :replace, replace: ‘?’) # кодируем в 1251, символы которые не можем раскодировать замещаем на указанные

json

Кодировка после json_encode без unescape.

Читать дальше

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

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


Читать дальше

PDF

 

СЖАТИЕ
  1. https://www.ilovepdf.com/ – хороший сервис, использовал для сжатия 13-страничного документа в виде скана под сервис с ограничением в 4МБ. Ужал с 6MB до 1.8MB с хорошим качеством (причем выбор оптимального, а не максимального по сжатию алгоритма)!
Редактирование
  1. Sejda PDF – онлайн сервис.


Читать дальше

Ruby: работа с массивами

Iteration
each_with_index – из названия понятно, что полезно когда нужен элемент массива и его индекс)
Удаление из массива элементов
.drop(1) – удалить первый элемент (если указать 10 – первые 10 элементов)
a.delete(‘test’) – удалить по значению
arr[0..-3] – удалить последние два элемента
Элемент по ID
В Ruby, как, в принципе, и в PHP,  можно натравить метод какой-то на массив и элемент массива получить в одной строке.


Читать дальше