понедельник, 8 августа 2016 г.

WSL на Windows 10

Решил и я пощупать сие чудо с выходом Anniversary Edition для Windows 10. Судя по отзывам, народ вполне доволен. Некоторые даже попробовали собирать там программы и них вполне компилируется без малейших проблем. Также народ и вовсе рапортует о запуске приложений, предназначенных для X.Org.

Мне же лично в текущем виде его явно не хватит. После того, как улеглись первые восторги ("О, тут есть Bash, Vim и Ansible!"), пощупал его на предмет чего-то более осмысленного. И тут меня ждало разочарование. Поскольку это всё-таки не виртуальная машина, а прослойка - поддерживаются не все возможности и вызовы API ядра. В частности, нет наличия поддержки ряда вещей. К примеру, /proc/net/ поддерживает на текущий момент только минимальный набор для работы стека TCP/IP внутри окружения WSL. Присутствует только базовая поддержка таблицы сокетов и интерфейса netlink. Даже то, что уже есть явно реализовано не до конца. Например, при попытке выполнить что-то средствами утилит ip, вываливается ошибка в SO_SNDBUF. Поддержки /proc/net/dev пока нет (и будет ли?). А без этого утилиты из пакета net-tools, вроде того же netstat попросту не работают, как и софт плотно использующий сокеты. А это любое сетевое серверное приложение, как минимум.

Ещё один минус, который напрямую к WSL не относится, но есть. Это отсутствие вменяемого эмулятора терминала. Работать в стандартной оболочке несколько проблемно. С ConEmu стало повеселее, но победить баг с нерабочими клавишами некоторыми пока не получается.

Впрочем, это пока что бета. А для беты тут всё очень даже хорошо. Посмотрим, что будет в будущем. Но в целом, затея очень хорошая.

среда, 27 июля 2016 г.

Сакральное Знание: pgpool

Геноссе gunslinger2 сегодня роскошное подкинул.

Если в таске Ansible написать backend_port{{ hostvars[host]['nodenumber']-1 }} = '5432' вместо backend_port{{ hostvars[host]['nodenumber']-1 }} = 5432 вы поймаете дивный месседж в логах вида:

2016-07-27 14:16:21: pid 14246: DETAIL: bind on "/var/run/postgresql/.s.PGPOOLWD_CMD.9000" failed with reason: "Address already in use"

Но самое прикольное вовсе не это. У вас вместе с этим будет валиться с сегфолтом дочерний(!) процесс watchdog самого pgpool:

Jul 27 13:41:00 localhost kernel: [ 3648.050867] pgpool[12264]: segfault at fffffffffffffff0 ip 0000000000458433 sp 00007ffe523e24a8 error 5 in pgpool[400000+134000]
Jul 27 13:41:00 localhost pgpool: 2016-07-27 13:41:00: pid 12260: WARNING: watchdog child process with pid: 12264 was terminated by segmentation fault


Это при том, что watchdog нужен для мониторинга соседних pgpool'ов, а не самой СУБД PostgreSQL. А отличия всего лишь в обрамлении кавычками номера порта. Причём дело не в Ansible даже. Это поведение воспроизводится если указать номер порта в кавычках в самом конфигурационном файле pgpool. Сдаётся нам, что автор сего поделия тот ещё наркоман.

понедельник, 25 июля 2016 г.

Слушайте старших — плохого не посоветуют!

Когда мне говорили, что device mapper реально бажен — не верил. Сегодня представился случай увидеть собственными глазами такую картину:

Наше счастье, блочные устройства без резиновых бабLVM собраны и отдельными устройствами, бо это кусок нормальной промышленной СХД. Так что потери данных не случилось. Но fstab слегка переписал.

суббота, 16 июля 2016 г.

Kindle Paperwhite Gen 7

На серию Paperwhite достаточно давно облизывался по ТТХ, но останавливал тот факт, что там чисто сенсорный экран и нет аппаратных кнопок. Но будучи в Дубае, решил плюнуть и всё-таки попробовать, раз уж мне премию внезапно прислали. Тем более, что Kindle Voyage, который мне хотелось куда больше, зверски дорог. Нет, я могу отвалить без напряга такую сумму, просто для устройства предназначенного для чтения книг, такая сумма всё же перебор.

Поначалу несколько расстроили пара багов в прошивке, что были при покупке книжки. А именно: не совсем точно учитывал количество книг в коллекции и была выпилена фича «последняя открытая книга», что редкостно напрягло при том количестве книг, что у меня залито. К счастью, через сутки после покупки пришла новая версия фирмвари, где обе этих проблемы были устранены.

А теперь о впечатлениях. Первое, что бросается в глаза - прошивка сильно эволюционировала по сравнению с той, что установлена в Kindle 3. Настроечная часть стала заметно удобнее и проще. Управление продуманное, осваиваешься с устройством моментально. Третий Kindle в некотрых моментах всё же был не совсем интуитивен. Тут же прошивку довели просто до блеска практически. Реально, придраться почти не к чему.
Начиная с ранних Paperwhite, нет нужды покупать версию устройства под конкретный язык или возиться с перепрошивкой. Язык устройства теперь выбирается при первом включении устройства. При желании, эти настройки можно изменить. Меня лично английский язык интерфейса не напрягает, в общем-то, но есть люди которым это важно.
Что касается настроек. Сама настройка стала проще, как уже писал выше, но самих настроек стало больше вместе с тем. В частности, появился гораздо больший выбор гарнитур шрифтов для чтения, а также и настроек отступов и полей. Есть возможность некоторой кастомизации главного (aka «домашнего») экрана. Добавилась поддержка сервиса Goodreads, коим я лично пользуюсь и достаточно активно. Если устройством пользуются дети — есть «родительский» доступ. Что лично особенно понравилось — есть удобный поиск, которого мне очень не хватало. Искать можно по названиям, авторам. Стало проще осуществлять навигацию внутри книг. Появились разлиные словари (в том числе доступ к Википедии), стало больше возможностей для тех, кто изучает какой-либо язык. Да-да, можно включить словарь для незнакомых слов в той книге, что читаете. Доступ в магазин Amazon упростился донельзя. Вплоть до того, что он рекомендации прямо на домашнем экране показывает. Кстати, В Amazon относительно недавно появились русскоязычные книги. Что не может не радовать.
Из прочего — устройство стало намного быстрее (гигагерцовый процессор внутри тому способствует). Единственный момент, когда читалка может немного подлагивать — при очень большом обновлении книг или при использовании виртуальной клавиатуры. В остальном интерфейс отзывается мгновенно.
Теперь самое важное. Ради чего Kindle и покупают, собственно. Экран бесподобен. Даже в сравнении с третьекиндлом видно, что экран стал гораздо констрастнее, а буквы ощутимо чётче из-за более высокого разрешения. На первый взгляд вроде не очень заметно, но можно просто положить обе читалки рядом. При чтении в транспорте это начинаешь замечать по тому факту, что читается заметно легче и буквы в движении меньше «смазываются». Встроенная подсветка ровная по всей площади экрана. Если сравнивать с дешёвыми читалками — разница ещё больше. Вплоть до того, что при взгляде на экран какого Pocketbook возникает ощущение, что буквы «расплываются» до откровенно неприятного ощущения в глазах. Причём спецом достал старую-старую читалку жены для сравнения.

Их небольших минусов лично для меня — отсутствие аппаратных кнопок «Домой» и боковых кнопок для перелистывания. Когда едешь в транспорте, весьма несложно ненароком попасть по экрану и перелистнуть страницу или выделить текст из-за тряски. Ну и на мой взгляд, несколько неудобно реализовано перелистывание вперёд в левой части экрана. Также до сих пор программисты Kindle не могут реализовать reflow для файлов pdf. Что, вообще-то, очень большое упущение. Фичреквест на тему посылал в Amazon ещё четыре года назад, но воз и ныне там. В остальном, пожалуй всё.
Из фич, которых очень хочется увидеть — возможность загрузки в «облако» уже имеющихся на Kindle книг со всеми заметками, примечаниями и т.п., если они были загружены на устройство вручную. Как следствие этого — синхронизация состояния устройств серии Kindle и автоматический перенос библиотеки со старого устройства на новое. Сейчас это реализовано очень половинчато. Причём хрен бы с конвертацией, на крайний случай всегда есть Calibre.

Как-то так. Спрашивайте ваши вопросы.

четверг, 14 июля 2016 г.

Ещё один геймпад для MegaDrive

Решил попробовать заказать ещё один геймпад, который как раз приехал сегодня. На сей раз, типа, от Sega. Если коротко — говно. Ретробитовские сделаны качественнее.

no title

no title

суббота, 25 июня 2016 г.

Олдфажим снова, пополняем коллекцию

Прихватил очередную парочку игр с AliExpress в лице Pitfall: The Mayan Adventure и Gods. Из клонов, которые хотел бы иметь «в железе», практически всё купил. Сейчас в планах таки купить себе оригиналы, которые шли с встроенной памятью для сейвов. Ну и если удастся придушить жабу, купить оригинальные беспроводные геймпады от Sega MD. Ибо жаба там не просто «ква», а скачет по мне не переставая.

Между делом заказал себе геймпад от Retrobit, который уже успел придти и я его даже помацал. Да, до оригиналов ему далеко, но ощутимо получше китайщины у нас продающейся. Особенно порадовал нормальный D-Pad там, который корректно нажимается по всем углам, что файтингах полезно. Посмотрим, насколько долго он ещё проживёт.

суббота, 11 июня 2016 г.

Server. The Shit & Sticks Edition v.2

Поскольку предыдущий сервер проработал крайне недолго по причине своей крайней дряхлости и ушатанности, спешно пришлось ввести в строй новый. С запчастями проблем не возникло, всё и так уже валялось дома по большей части. Разве что материнскую плату всё-таки пришлось покупать. Ну и перетащил всё в новый корпус, наконец-то.
В качестве процессора вместо не самого удачного Pentium 4 был взят Intel Core Quad Q9400 на ядре Yorkfield. А раз памяти мне отдали с избытком, поставил туда 4Гб. В качестве системы завтра установлю Clear OS 7, базирующуюся на CentOS 7, между делом сменив платформу на x86_64 вместо i686. Программный RAID0 благополучно переехал на новое железо. Достаточно было поставить mdadm.conf на место и поправить конфигурационый файл.

В планах стоит приобрести вменяемый RAID-контроллер с работающим BBU и поддержкой RAID6, а там уже переехать на полноценную серверную мать с Xeon на борту. Но это сильно нескоро. Штатный кулер под Socket 775 сменю на что-нибудь поприличнее чуть попозже в ближайшие пару месяцев. Советы по оным принимаются, разумеется.

Из прочих мелочей — надо бы прикупить домен себе и заиметь SSL-сертификат.

среда, 8 июня 2016 г.

Установка Keycloak + интеграция Keycloak с PostgreSQL

Поскольку официальный reference guide по нему откровенно врёт и делается всё вообще не так, пришлось методом проб и ошибок вместе коллегами разбираться, как оно реально настраивается. В итоге мой коллега сначала по моим советам, собственным граблям и совету другого коллеги, нарисовал следующую howto по развёртыванию. Передаю ему слово:

0. Подключаем репозиторий с последней стабильной версией PostgreSQL и устанавливаем jdbc-драйвер для нужного нам дистрибутива. Для CentOS 7 это будет: yum -y install postgresql94-jdbc.noarch

1. Ставим постгрес примерно с таким конфигом:

listen_addresses = '*'
max_connections = 100
shared_buffers = 128MB
dynamic_shared_memory_type = posix
log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 0
log_line_prefix = '< %m >'
log_timezone = 'W-SU'
datestyle = 'iso, mdy'
timezone = 'W-SU'
lc_messages = 'en_US.UTF-8'
lc_monetary = 'en_US.UTF-8'
lc_numeric = 'en_US.UTF-8'
lc_time = 'en_US.UTF-8'
default_text_search_config = 'pg_catalog.english'

При необходимости правим pg_hba.conf, чтобы разрешить доступ с других хостов (по умолчанию - только localhost).

2. Создаем в постгресе пользователя keycloak и одноименную базу:

createuser -l -P keycloak
createdb -O keycloak keycloak

... и проверяем доступ к ней:

psql -h 127.0.0.1 -d keycloak -U keycloak -W

3. Качаем свежий релиз keycloak с http://keycloak.jboss.org/downloads.html,
разворачиваем его в /opt, после чего запускаем

(/opt/keycloak/bin/standalone.sh < /dev/null >& /var/log/keycloak.log &) &

4. Создаем пользователя admin:

/opt/keycloak/bin/add-user-keycloak.sh -r master -u admin -p ваш_пароль

5. Запускаем /opt/keycloak/bin/jboss-cli.sh и говорим ему
connect

module add --name=org.postgres --resources=/usr/share/java/postgresql94-jdbc.jar --dependencies=javax.api,javax.transaction.api

/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)

data-source add --jndi-name=java:/PostGreKeyCloakDS --name=PostgrePool --connection-url=jdbc:postgresql://localhost/keycloak --driver-name=postgres --user-name=keycloak --password=PostGreKeyCloak
6. Лезем в файл

vi /opt/keycloak/standalone/configuration/standalone.xml

Проверяем секцию datasource для поцгреса - должно быть примерно так:


При необходимости там же редактируем interface name="public" в секции .

Потом лезем в файл

vi /opt/keycloak/standalone/configuration/keycloak-server.json

Проверяем секцию connectionsJpa:



7. Перезапускаем /opt/keycloak/bin/standalone.sh

четверг, 19 мая 2016 г.

Хотел высказаться по поводу нашумевшего

…но уважаемая l2tp уже всё хорошо сформулировала. От себя добавлю, что я сам отчасти жертва вот такого влезания в личные границы. Сначала потому, что делил комнату с сестрой, затем когда был вот этим самым подростком. А теперь помножьте это на небольшой город населением под сто тысяч человек, где все друг-друга знают если не напрямую, так через друзей-знакомых. Вы получите перманентную жопоболь от бесконечных вопросов родителей «А почему ты общаешься X?», «Что за стопиццот девушек были с тобой? Ты с кем-то уже встречаешься?» до откровенного и прилюдного обсуждения всего этого при соседях, друзьях, знакомых. После этого удивляться тому, что мне категорически не хотелось общаться с родителями после съезда в самостоятельную жизнь не стоит, ага. Звонок даже раз в полгода для меня — много. Отпустило меня более-менее не так давно. Хотя меня всё равно крепко передёргивает, когда берут мои вещи, даже несмотря на то, что спрашивают разрешения.

Справедливости ради. Если бы не это, у меня, пожалуй, отличные родители, давшие мне очень многое.

пятница, 13 мая 2016 г.

Проапгрейдил принтер

…теперь проблемы, что в память принтера больше не влезет сколько-нибудь большой многостраничный документ больше нет. Мелочиться не стал, купил максимально ёмкую планку на 256 мегабайт.

RAM.jpg