vitus_wagner: My photo 2005 (Default)
Сегодня вот напоролись на ситуацию, когда добавление ключевого слова в SQL приводит к тому, что постгрес перестает собираться НЕКОТОРЫМи компиляторами.
(разработчики, есественно, немедленно начинают ныть: "А, это винда, она неправильная" Ну и что, что неправильная, работать-то под ней надо).

Но дело оказалось не в винде.
А в том, что на каждое ключевое слово в постгресе создает значение типа enum.
(причем это происходит где-то в недрах ecpg. Ни разу ее видел живьем челвовека, который бы писал на Embedded в C SQL).
А ключевое слово было INFINITY. А в языке C есть макрос INFINITY. А у микрософта есть привычка включать все инклюды какие попало. Вот math.h и попал. А в gcc и clang, видимо, он туда, где определялся этот enum, не включался.

Диагностика от того, что посреди определения enum препроцессор раскрыл какой-то макрос, естественно, крайне невнятная. А файл, при компиляции которого эта ошибка происходит, еще и генерируемый.
vitus_wagner: My photo 2005 (Default)
Тут у супруги опять сломался ноутбук. Что она с ними делает, не знаю, но дольше двух лет они не живут. То есть понятно, что она постоянно лежит на кровати с ноутбуком на пузе, и постоянно таскает его с места на место не закрыв. Но почему от этого уже не у первого ноутбука вырывается из корпуса левая петля, соединяющая его с монитором - непонятно.

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

Раньше я все время покупал ей самые бюджетные из ноутов для офисной работы. По принципу - меньше 3d, меньше глюков. Сейчас это что-то типа ASUS XN541 за 19 тысяч рублей.

Но теперь она увлеклась во-первых World of Warcraft, во-вторых изготовлением видеоклипов.
Поэтому относительно приличный GPU нужен и FullHD экран не помешает. Ну и объем памяти, процессор и так далее желательно побольше в рамках заявленных бюджетных ограничений. Насколько я понимаю, в наше время игровой ноутбук это процессор не ниже Intel Core I5 или AMD FX. Кстати как погляжу у всех ноутбуков в этом сегменте видеокарта стоит NVidia GeForce. Это что, AMD/ATI с игрового рынка совсем выжили?

Вопрос в том, на продукцию каких фирм стоит обратить внимание. До сих пор я пользовался изделиями либо IBM/Lenovo, либо Asus. (сломавшийся ноут, кстати, Lenovo Ideopad. И графика у него была хуже чем у моего столь же бюджетного Lenovo Thinkpad E545 который покупался в декабре 2014 по принципу "а, доллар растет, а тут за 20000 ноутбук с красной пимочкой посреди клавиатуры, достали эти уродские тачпады).

Опыт примерно 15-20 летней давности имевшийся у меня с изделиями Toshiba (и ими же, перекрашенными в цвета HP) резко отрицательный. Они тормозили вдвое сильнее, чем IBM за те же деньги.

Вот думаю, разглядывая прайс-листы, что лучше - преодолеть предубеждение к HP и взять HP Pavillion Power 15,
попытать счастья с Dell Inspiron или остаться верным Asus и взять ZenBook Pro K501?

Там в соотвествующем ценовом сегменте еще бегают Acer и MSI, но, боюсь что к этим брендам я преодолеть предубеждение не сумею.
vitus_wagner: My photo 2005 (Default)
Вот понадобилось мне выяснить кто и когда переводил мне деньги на сбербанковскую карточку за последний год.
Выяснилось что в выписке, которую присылают на Е-Мейл чуть ли не с точнотью до адреса пишут где я платил или снимал деньги, но не пишут - от кого получен перевод.

СМС присылают, а задним числом не пишут.

А телефон я в этом году менял. И вообще я имею привычку банковские СМС периодически тереть, чтобы места не занимали. Но выяснилось, что тру я их все же реже, чем запускаю бэкап.

В результате не удалось найти только две СМС, полученные мной на тупофон, который я носил когда аккумулятор у старого смартфона совсем сдох.

Сижу теперь и думаю - а то, что у меня mp3-шки от Call Recorder-а не бэкапятся, это бага или фича?
vitus_wagner: My photo 2005 (Default)
Прихожу с утра в контору, а там на столе у PR-менеджера лежит стопка бубнов.
Не таких как у Миши Шурутова на этой фотографии (там вообще бубен для высоконагруженного кластера на десяток терабайт), но вполне функциональных.



Думаю, с чего бы это, залезаю в ленту, а оказывается, сегодня день сисадмина. С чем всех и поздравляю!

GNU Ring

Jul. 25th, 2017 11:17 am
vitus_wagner: My photo 2005 (Default)
Попробовал поставить себе GNU Ring - это такой мессенджер с поддержкой аудио-видео, у которого вообще нет никаких центральных серверов, а для поиска пользователей используется блокчейн и OpenDHT.

В отличие от ToX там предусмотрена штатная возможнсоть подключения к аккаунту нескольких устройств. У меня, правда, не получилось - андроидный Ring после импорта туда аккаунта, созданного на десктопе, стал падать.

Попробовать с кем-то пообщаться пока не получилось потому что не с кем. Не знаю никого, кто бы из знакомых имел там аккаунт.
vitus_wagner: My photo 2005 (Default)
Подкинули ссылку на проект http://www.nncpgo.org (см тажке статью на хабре.

Подкинули под соусом "это же почти чеширнет". Нет, не чеширнет, и рядом не стояло (и ровно поэтому есть надежда что окажется более жизнеспособным).

Автор проекта ищет противодействие некоторым из тех угроз, противодействовать которым я планировал в проекте "Чеширнет". Я исходил из того, что любая угроза исходящая от злонамеренного государства или корпорации является частным случаем более широкого класса угроз, противодействие которым вообще говоря не является незаконным и нечестным. Например, я считаю что лучшее средство против криптолокера - своевременный бэкап, так как он позволяет рассматривать атаку криптолокера, деструктивного трояна и т.д. как частный случай проблемы "неисправность жесткого диска или файловой системы на нем", куда попадают также и аппаратные сбои и поломки файловой системы при сбое питания. Неважно что испортило тебе файлы. Переформатировал диск, залил файлы с бэкапа и работаешь дальше,

Аналогичным образом я в чеширнете рассматривал проблему блокирования информации на государственных серверах или файрволлах как частный случай нарушения сетевой коннективити. И предполагал переход от прямого получения информации с некоего ее "источника" на получение ее от ближайшего доступного узла у которого она откуда-то взялась. То есть там была цель - исключить понятие сеанса связи вообще. Даже если есть личные сообщения, они отличаются от публичных только тем, что никто кроме адресата не может их прочитать. А распоh-hлзаются они по всем узлам точно так же, как и новости, пока не будут получены адресатом.

Плюс еще тотальная псевдонимность, за которую больше всего проект ругали. Хотя это минимальный уровень защиты от попыток прищучить того, кто распространяет неодобряемый кем-то сильным контент.

Автор NNCP так далеко не заходит. Он предполагает сохранение парадигмы "передачи файлов" и "сообщений", требуюущих установления чего-то типа канала. Только у него этот канал может быть не реалтаймовым (флоппинетом).

Предполагается что отправитель и адресат знают друг друга на уровне "прописали себе в файлы конфигурации ключи друг друга".

При этом про UUCP автор знает (в статье на хабре упоминал), но похоже не слишком интересовался тем как это работало, что такое UUCP maps и что умела uucp кроме доставки почты и ньюсов. То есть что-то я не уверен, что в том виде как оно написано, оно масштабируется за пределы небольшой тусовки друзей.

Почему-то он также отказался от туннелирования через ssh, хотя наряду с флоппинетом и прямыми TCP-соединениями это было бы полезной дополнительной возможностью, позволяющей иногда добитаться до внутренностей иначе недоступных сетей.

Зато это у него уже работает как транспорт для электронной почты.

Но вообще, похоже сама идея "отправить файл" порочна. Она не даст возможности построить полноценную сеть.
Если уходить от чеширнетовской парадигмы "любая информация должна быть скопирована всем, кому не жалко ее хранить", то нужна система вида publish-request. Вроде фидошных FREQ. В принципе, предлагаемая автором идея хранения зеркал сайтов в виде архивов сюда вполне ложится.
vitus_wagner: My photo 2005 (Default)
Тут вот [personal profile] nataraj рассказывает о своем опыте приобретения коммерческих сертификатов для https сайтов.

Все потому что источников бесплатных сертификатов кроме letsencrypt.org не осталось, а letsencrypt он не доверяет. Я тоже этому сайту не доверяю, но, увы в наше время играет роль не то, кому доверяешь ты, а то, кому доверяют производители браузеров.

Поэтому я использую letsencrypt. В качестве клиента я использую acme-tiny, которую обвязал своими скриптами с тем, чтобы процесс был полностью автоматизирован и сертификаты перевыпускались автоматически.

Соответсвенно есть три скрипта - первый работает от рута, и генерирует новые приватные ключи и CSR. Почему от рута, потому что он должен записать новые ключи с теми же правами доступа, какие имеют старые, рабочие.
Этот скрипт не читает ничего кроме своего конфига и действующих сертификатов, поэтому заботиться об его секьютрности нужно не слишком.

Второй - от специального непривилегированного юзера и выполняет собственно взаимодействие с letsencrypt.
Можно было бы в контейнер какой засунутЬ, но я счел это лишним. acme-tiny я доверяю, потому что я ее читал. (там всего 200 строк на питоне).

Третий - опять от рута, его задача ввести в эксплуатацию выпущенные сертификаты, т.е. перезаписать приватные ключи и сертификаты в тех файлах, на которые указывает конфигурация различных сервисов и перезапустить эти сервисы.

Скрипты можно посмотреть здесь.
vitus_wagner: My photo 2005 (Default)
https://eprint.iacr.org/2017/351.pdf

Я конечно, считаю что все изделья Бернштейна относятся к категории "может это не практично, согласитесь - эстетично" и не понимаю тех, кто держит qmail в продакшне, да и основная претензия к tox у меня такова - почему они DJB-шную криптобиблиотеку используют, но тем не менее штука забаваная.
vitus_wagner: My photo 2005 (Default)
Написать на питноновском unittest такие тесты, чтобы в их код было страшно заглядывать, это надо постараться.
Но некоторым товарищам это удается.

Например, вместо

with self.assertRaisesRegexp(SomeException,'сообщение об ошибке'):
    do_something()


пишут:

try:
   do_something()
   # we need to die here because exception is what we expect
   exit(1)
except SomeException as e:
   self.assertEqual(True,'сообщение об ошибке' in e.message)



При этом это те же самые люди которые громко кричали что использовать перловый unit-test фреймворк Test::More (и его постгресовые расширения) это некошерно потому что перл это бяка и вообще. Ну если вы настаиваете на использовании какого-нибудь инструмента, так хоть выучите его!
vitus_wagner: My photo 2005 (Default)
Тут Шнайер пишет, что появилась технология. котрпя позволяет по примерно минуте звучания определить ключевые характеристики голоса человека и его успешно имитировать.

Его, конечно, волнуют security implication, описанные еще в русских сказках, где кузнец выковывал (forge) волку тоненький голосок, чтобы пройти аутентификацию при входе в домик козы.

А меня больше волнуют художественные приложения. Этак если это дело пойдет, следующее поколение TTS плагинов будет пьесы в лицах зачитывать.
vitus_wagner: My photo 2005 (Default)
Еще прошлой осенью, когда я разорвал контракт с "Мегафоном", симка которого у меня использовалась в деревенском модеме, я решил что попробую Tele-2. Потому что представление о том, как работают в нашей местности Билайн и МТС у меня есть по телефонам. Хреново работают, могли бы лучше.

В отпуск я приехал с билайновской симкой, которая была куплена для Бужаниново. Но утверждается что работает по всей России. Правда, я ее втыкал не в родной модем. Разбираться как работает в дополопной точке доступа WL500Gold новомодный 4G модем в котором если не памяти, то флэш-диска точно больше, чем в той точке доступа, мне было лень. Тем более что 4G покрытия вроде ни у кого из операторов нет все равно, а мегафоновсий модем я давно разлочил.

Эксперимент в течение трех дней подтвердил что билайн в качестве интернет-провайдера в этих краях не пригоден. Коннект постоянно терял даже скайп. Ну нет так нет, В конце концов эта симка не для этой местности покупалась.

Сегодня поехали в Селижарово и я стал пытаться купить симку Теле2. Оказалось, что это не так просто. Офиса Теле2 на том месте, где я привык его видеть, и где его показывают до сих пор Яндекс-Карты (Карла Маркса 14) уже нет.

Глазастый ребенок разглядел рекламу Теле-2 на одном магазине, мимо которого мы проезжали на машине (торговый дом на углу центральной площади). Мы остановились и туда зашли. Нам сказали что здесь больше не продают теле-2, идите в кафе "Молодежное". Пошли в кафе. Там тоже реклама висит чин по чину и даже корытце для денег с логотипом Теле-2. Но контракты не продают, говоярт "запретили это нам". Кто и зачем - не уточняют.

Нвконец, когда установились у фонтана, я решил заглянуть в имеющиеся здесь две точки по торговле чем-то электронным - магазинчик электротоваров "фаворит" и киоск "СПутниковое телевидение" (который как-то крайне редко удается увидеть открытым. но сегодня, в будний день он как раз работал). И вот в киоске-то вожделенная симка нашлась.

Теперь вот сижу в интернете через нее. Вроде ничего работает. Яндексовский тест показывает 2 мегабита в секунду входящих и 100кбит/c исходящих. Хотя для скайпа 100кбит исходящих пожалуй мало.
vitus_wagner: My photo 2005 (Default)
https://www.debian.org/News/2017/20170425

Ранние IP-протоколы, возникшие с интернетом, отличались избыточной сложностью.
Недаром в названии протокола SMTP, фактически первого из следующей генерации, буква S означает Simple. Кроме того они предназначены для сети, где нет никого злонамеренного.
Интернет 80-х был "сетью друзей" в куда большей степени, чем позднейшее Фидо.

В принципе, большая часть тех протоколов уже мертвы. Часть - потому что нет таких задач, никто сейчас и не в курсе про то, что такое протокол ident или файл .plan, используемый в протоколе finger.

Фактически мертв и telnet. Хотя я еще помню времена, когда клиент telnet использовался как универсальный тестовый клиент для всех текстовых протоколов, его уже давно вытеснил netcat.

Только ftp еще хоть как-то шевелился. Несмотря на безумно замороченную конструкцию с двумя сокетами, путаницу ascii/binary active/passive он как-то по инерции продолжал сущестовать.

Но видимо его время наконец пришло. Если уж весьма консервативный проект Debian отключает доступ к своим ресурсам по ftp, оставляя только http.
vitus_wagner: My photo 2005 (Default)


Или еще о кофе и клавиатуре.
vitus_wagner: My photo 2005 (Default)
Почему-то злые дуровцы в очередном релизе Telegram Desktop поменяли раскладку файлов, в которые оно пишет.

Раньше у меня телеграм пускался

firejail --profile /etc/firejail/telegram.profile --private-home=.TelegramDesktop  /usr/local/lib/Telgram/Telegram


и все работало. Потому что не дам я некту, своих файлов из ${HOME}, хоть он дерись.

После апгрейда - работать перестало - при каждом запуске заново просит ввести код из SMS-ки.

Создал каталог .telegram-home, передвинул ~/.TelgramDesktop туда, запустил

firejail --profile /etc/firejail/telegram.profile --private-=.telegram-home  /usr/local/lib/Telgram/Telegram


Заработало. Но выяснилось что в .telegram-home оно создало не только .TelgramDesktop

Оно теперь еще .local/share/TelegramDesktop создает, и, похоже, в нем все и держит.

Но вообще, похоже, надо сильнее эту гадость от системы изолировать. Примерно как я skype изолирую.
vitus_wagner: My photo 2005 (Default)
Не успели Ирин ноутбук починить, как мой сдох. Блин, только-только успел привести в порядок смартфон.
vitus_wagner: My photo 2005 (Default)
https://www.theregister.co.uk/2017/04/06/canonical_cuts_jobs_with_unity_bullet/

https://www.theregister.co.uk/2017/04/05/ubuntu_euthanizes_unity/

Unity отменили, Ubuntu phone отменили, сокращают от 30 до 60 процентов сотрудников, причем в первую очередь режут отделы разработки продукты, инвестиции в них медленнее окупаются, а сохраняют поддержку и сейлзов - то что приносит в компанию быстрые деньги.

Интересно, дистрибутивы-то они по прежнему раз в полгода клепать будут или как?

А то убунта замечательно держала нашу релизную группу в тонусе - каждые полгода нужно по всей цепочке от pgbuildfarm до выходного тестирования заводить новые виртуалки, править spec-и, но самое главное - не забывать ВЫКИДЫВАТЬ из всего этого хозяйства снятые с поддержки релизы.

И сисадмины у нас в компании очень Trusty Tahr любят. Что, теперь их всех на Stretch переучивать?

В общем, мучивший всех вопрос "Как будет называть убунта свои дистрибутивы, когда латинский алфавит кончится (а кончится он уже с тем релизом, который в этом месяце)" похоже, разрешится несколько неожиданным образом.

Тэг rip пока не ставлю, может еще побарахтается.
vitus_wagner: My photo 2005 (Default)
Мы строили, строили и наконец построили
Мультимастер-кластер, адаптивное планирование запросов, нормальный декларативный синтаксис партиционирования.
vitus_wagner: My photo 2005 (Default)
Подумавши некоторое время над концепцией семантической локальности я пришел к в некотором смысле противоположной концепции "общего контекста коммуникации".

То есть меня в общем довольно давно волновал вопрос, почему за 40 лет не появилось языка программирования, который был бы shell лучше чем unix shell. То есть более высокоуровневый, с меньшим порогом вхождения. позволяющий легко формулировать сложные концепции.

Почему-то все попытки "улучшить" shell вели в строго противоположном направлении "давайте напихаем туда более низкоуровневых конструкций, массивов, объектов с методами, типизации". Да, эти конструкции, которые вполне себе высокоуровневы если смотреть с уровня ассемблера, даже портабельного, на уровне шелла - глубокие потроха, которые не надо выворачивать наружу.

Подумав, я пришел к выводу что

1. На этом уровне как часть языка нужно рассматривать не только команды и аргументы, но и форматы потоков, которыми эти команды обмениваются.

2. Должна быть некая система умолчаний. Сейчас в шелле контекст выполнения состоит пожалуй, из имени текущей директории (и. соответственно относительных путей). Ну с некоторой натяжкой - еще и списка фоновых задач из него запущенных - %1 меняет свое значение по ходу выполнения.

В более низкоуровневых языках программирования, которые являются аналогом письменной речи, система контекстов куда более развита. Начиная с let в Lisp-е и with в Pascal, и кончая развесистыми системами алиасов при импорте модулей в Python и Go. Где-то в промежутке namespaces в C++ и присваивание glob references в Perl. В общем придумано много способов сказать "сегодня это слово у нас значит то-то". Но это именно способы, характерные для письменной речи, причем даже скорее для научных и юридических текстов, а не для художественных и не для частной переписки.

А шелл это именно аналог устной речи. В естественных языках умолчаний и контекстной зависимости в устной речи гораздо больше чем в письменной. А вот в интерактивном взаимодействии человека с программой или программ между собой (опять же - шелловская сессия это не диалог человека с компьютером. Это целая тусовка - человек, шелл и куча программ, и они все общаются между собой в разных сочетаниях).

(три дня эту мысль думал, а все равно непричесанная какая-то. Или я поторопился и надо было еще сутки подумать?)
vitus_wagner: My photo 2005 (Default)
http://esr.ibiblio.org/?p=7421

Раймонд умный пост написал по поводу концепций, которые лежат под Unix way. Я эту мысль про семантическую локальность три дня думать буду.
vitus_wagner: My photo 2005 (Default)
Про то как сделать, чтобы начинающие программисты лучше работали:

https://ask.slashdot.org/story/17/03/11/197257/ask-slashdot-how-do-you-make-novice-programmers-more-professional



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

The problem is that our industry, unlike every other single industry except acting and modeling (and note neither are known for "intelligence") worship at the altar of youth. I don't know the number of people I've encountered who tell me that by being older, my experience is worthless since all the stuff I've learned has become obsolete. This, despite the fact that the dominant operating systems used in most systems is based on an operating system that is nearly 50 years old, the "new" features being added to many "modern" languages are really concepts from languages that are between 50 and 60 years old or older, and most of the concepts we bandy about as cutting edge were developed from 20 to 50 years ago. It also doesn't help that the youth whose accomplishments we worship usually get concepts wrong. I don't know the number of times I've seen someone claim code was refactored along some new-fangled "improvement" over an "outdated" design pattern who wrote objects that bare no resemblance to the pattern they claim to be following. And when I indicate that the "massive view controller" problem often represents a misunderstanding as to what constitutes a model and what constitutes a view, I'm told that I have no idea what I'm talking aboutâ"despite having more experience than the critic has been alive, and despite graduating from Caltechâ"meaning I'm probably not a complete idiot.) Our industry is rife with arrogance, and often the arrogance of the young and inexperienced. Our industry seems to value "cowboys" despite doing everything it can (with the management technique "flavor of the month") to stop "cowboys." Our industry is agist, sexist, one where the blind leads the blind, and seminal works attempting to understand the problem of development go ignored.


Поняли, господа программисты, с кем нас сравнивают - даже не с водопроводчиками или дворниками - с актеришками и фотомоделями.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

October 2017

S M T W T F S
123 456 7
89 101112 1314
1516 1718192021
22232425262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 17th, 2017 10:04 pm
Powered by Dreamwidth Studios