Как стать автором
Обновить
1
0.1

Пользователь

Отправить сообщение

Поймай меня, если сможешь. Версия менеджера

Время на прочтение8 мин
Количество просмотров63K
Ты – программист. Я – эффективный менеджер. Ну, ты так считаешь. Может, даже статью про меня напишешь, наберешь кучу плюсов – тема-то благодатная. В статье обязательно слово «эффективный» в кавычки поставишь.

Я уже не работаю в вашей компании. Решил рассказать тебе, как всё было на самом деле. Скоро эта история тебе аукнется, что меня очень расстраивает, но будет лучше, если ты обо всём узнаешь от меня.
Читать дальше →
Всего голосов 190: ↑145 и ↓45+100
Комментарии215

Поймай меня, если сможешь

Время на прочтение8 мин
Количество просмотров69K
Ты – эффективный менеджер. Я – программист. Ты умудрился стать моим начальником. Я занимаюсь автоматизацией нашего сраного завода. Ты делаешь вид, что руководишь этим процессом.

Я был на твоем собеседовании. Не на основном, а на кроссе. Я слышал, как ты рассказывал, что сам когда-то был программистом. Потом какими-то проектами внедрения руководил. Был очень успешным. Но за каким-то [фиг]ом пришел в нашу дыру.

Ты утверждаешь, что знаешь об автоматизации все. Ты называешь себя властителем душ программистов. Говоришь, что они у тебя танцуют, как кобра под дудочку.
Что ж. Проверим.
Читать дальше →
Всего голосов 199: ↑141 и ↓58+83
Комментарии214

«Мыши плакали и кололись..» Импортозамещение на практике. Часть 4 (теоретическая, завершающая). Системы и сервисы

Время на прочтение10 мин
Количество просмотров56K
image

Поговорив в прошлых статьях о вариантах, «отечественных» гипервизорах и «отечественных» Операционных Системах, продолжим сбор информации о необходимых системах и сервисах, которые на этих ОСях можно развернуть.
Читать дальше →
Всего голосов 52: ↑50 и ↓2+48
Комментарии81

«Матрице» 20 лет: как Вачовски сделали киберпанк, определивший повестку для целого поколения

Время на прочтение2 мин
Количество просмотров44K


На днях фильму «Матрица» исполнилось 20 лет. Офигеть, не правда ли?


По этому случаю WIRED сделал лонгрид на основе книги о сестрах (тогда еще братьях) Вачовски, из которого можно узнать много нового о карьере режиссеров-сценаристов до и во время создания культового фильма.

Всего голосов 68: ↑54 и ↓14+40
Комментарии256

Умеренный Hardening для Firefox

Время на прочтение20 мин
Количество просмотров38K


Современный веб состоит из множества разных технологий, которые предоставляют самые разные возможности… но ещё и создают немалое количество угроз. Современные браузеры давно стали самыми сложными приложениями на компе, обогнав по сложности даже ядро ОС (в Firefox в несколько раз больше строк кода, чем в ядре Linux или офисных пакетах). Мы проводим в браузере большую часть своего времени, так что не удивительно, что браузер находится под прицелом: его постоянно пытаются взломать, использовать в ботнете, пытаются украсть из него наши данные, прослушать его трафик, отслеживать посещаемые нами сайты и наши действия на этих сайтах.


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


Тем не менее, для усиления защиты браузера можно много чего сделать.

Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии36

На файлообменниках появился Edge Browser с Chromium

Время на прочтение3 мин
Количество просмотров5.9K
image

На прошедших выходных в сеть утек базирующийся на Chromium билд Edge Browser. Таким образом, пользователи получили возможность опробовать новый браузер в работе. Те, кто уже сделали это, утверждают, что сейчас Edge выглядит и работает почти так же, как и Chrome, при этом функциональность этих веб-обозревателей также практически одинакова.

Корпорация Microsoft не слишком активно делилась информацией о своем новом браузере, но благодаря утечкам данных о нем стало известно гораздо больше. Ну а теперь, с появлением на файлообменниках и самого билда, стало ясно, как браузер выглядит.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Нейросеть от Nvidia превращает простейшие наброски в красивые пейзажи

Время на прочтение3 мин
Количество просмотров53K

Водопад курильщика и водопад здорового человека

Все мы знаем, как нарисовать сову. Нужно сначала нарисовать овал, потом еще окружность, ну а потом — получается шикарная сова. Конечно, это шутка, причем очень старая, но инженеры Nvidia постарались сделать так, чтобы фантазия стала реальностью.

Новая разработка, которая называется GauGAN, создает шикарные пейзажи из очень простых набросков (действительно простых — окружности, линии и все). Конечно, в основе этой разработки лежат современные технологии — а именно генеративные состязательные нейросети.
Всего голосов 42: ↑40 и ↓2+38
Комментарии18

Epic Games раздаёт разработчикам $100 млн

Время на прочтение3 мин
Количество просмотров9.3K


Аттракцион невиданной щедрости устроила компания Epic Games, объявив о раздаче грантов на рекордную сумму $100 млн. На безвозмездное финансирование по программе Epic MegaGrants могут претендовать разработчики, цифровые художники, студенты, преподаватели, школы и т. д. Формально даже необязательно использовать набор инструментов Unreal Engine 4, достаточно участвовать в 3D-проектах open source.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии9

Rutoken, OpenSSL и локальный УЦ для подписи сообщений

Время на прочтение6 мин
Количество просмотров4.8K
Некоторое время назад возникла необходимость в рамках проекта ограничить одновременное число компьютеров, имеющих доступ к web-приложению, работающему в рамках локальной сети заказчика.

Решение использовать аппаратные USB-токены для идентификации компьютера пришло само собой. Выбор остановился на Рутокен ЭЦП: работает без драйверов, для работы в Web-приложении необходим лишь плагин для браузера, выпускаемый разработчиком. Поскольку токен должен идентифицировать компьютер, а не пользователя, работа с ним должна быть полностью «прозрачной»: если он есть, то система просто молча работает, не задавая пользователю лишних вопросов.

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

Возникает необходимость создания своего Удостоверяющего Центра (УЦ) для обмена подписанными сообщениями, а точнее, для передачи подписанных сообщений с клиента на сервер. Клиентские сертификаты должны быть расположены на USB-токенах в контейнерах закрытых ключей, а проверка подписи должна выполняться на сервере средствами OpenSSL

Итак, задача: установка и настройка на Linux-сервере УЦ. Развертывание клиентских сертификатов, идентифицирующих компьютеры, на USB-токенах.

Для её решения понадобятся:

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

Оптимизация производительности apache2

Время на прочтение2 мин
Количество просмотров12K
Многие используют apache2 в качестве веб-сервера. Однако мало кто задумывается об оптимизации его производительности, что прямо пропорционально сказывается на скорости загрузки страниц сайта, скорости обработки скриптов (в частности php), а также на росте нагрузки на ЦП и увеличении объёма используемой ОЗУ.

Таким образом, следующий мануал, должен помочь начинающим (и не только) пользователям.
Все нижеприведённые примеры использовались на Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.
Читать дальше →
Всего голосов 18: ↑11 и ↓7+4
Комментарии5

Как одно изменение конфигурации PostgreSQL улучшило производительность медленных запросов в 50 раз

Время на прочтение3 мин
Количество просмотров44K
Здравствуйте, хабровчане! Предлагаю вашему вниманию перевод статьи «How a single PostgreSQL config change improved slow query performance by 50x» автора Pavan Patibandla. Она очень сильно мне помогла улучшить производительность PostgreSQL.

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

Отслеживая задержку на разных уровнях, мы поняли, что одному конкретному запросу PostgreSQL потребовалось 20 секунд для завершения. Для нас это стало неожиданностью, так как обе таблицы имеют индексы в соединяемом столбце.

Медленный запрос

image
Читать дальше →
Всего голосов 90: ↑89 и ↓1+88
Комментарии39

Как сделать код-ревью быстрее и эффективнее

Время на прочтение6 мин
Количество просмотров21K
image

Как обычно происходит код-ревью? Вы отправляете пул-реквест, получаете обратную связь, вносите исправления, отправляете фиксы на повторный ревью, затем получаете одобрение, и происходит мерж. Звучит просто, но на деле процесс ревью бывает очень трудоемким.

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

Получается, что чем объемнее пул-реквест, тем меньше пользы будет от его проверки.
Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Комментарии24

Больше возможностей с паттернами в C# 8.0

Время на прочтение7 мин
Количество просмотров15K

Совсем недавно вышла Visual Studio 2019 Preview 2. И вместе с ней пара дополнительных функций C# 8.0 готовы к тому, чтобы вы их опробовали. В основном речь идет о сопоставлении с образцом, хотя в конце я коснусь и некоторых других новостей и изменений.


Эта статья на английском


Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии15

Вышел Blazor 0.9.0

Время на прочтение2 мин
Количество просмотров6.6K

Blazor 0.9.0 уже доступен! Этот релиз добавляет в Blazor улучшения компонентов Razor в .NET Core 3.0 Preview 3.


Новые улучшения Razor Component теперь доступны для приложений Blazor:


  • Улучшена обработка событий
  • Формы и валидация

Blazor survey


Будем рады увидеть ваши отзывы!
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии19

Подборка полезностей для программиста под Linux

Время на прочтение44 мин
Количество просмотров17K

Думаю, у каждого программиста есть набор любимых утилит, трюков и знаний. Некоторые он даже использует в работе. Скорее всего, у разных программистов они различаются. Значит, пришло время поделиться. Сегодня я расскажу о своей подборке того, что, вероятно, известно не настолько широко, как оно того заслуживает. Речь пойдёт преимущественно про платформу GNU/Linux.

Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии6

Типичные ошибки при работе с PostgreSQL. Часть 1

Время на прочтение7 мин
Количество просмотров33K
Чуть более месяца назад в Москве состоялась крупнейшая конференция постгресового сообщества PGConf.Russia 2019, собравшая в МГУ свыше 700 человек. Мы решили выложить видео и расшифровку лучших докладов. Выступление Ивана Фролкова с разбором типичных ошибок при работе с PostgreSQL было отмечено лучшим на конференции, поэтому мы начнем с него.

Для удобства мы разбили расшифровку на две части. В этой статье речь пойдет о непоследовательном именовании, о constraints, о том, где лучше сосредоточить логику — в базе или в приложении. Во второй части будут разобраны обработка ошибок, конкурентный доступ, неотменяемые операции, CTE и JSON.



В нашей компании я занимаюсь поддержкой клиентов по вопросам, связанным с приложениями, то есть помогаю в случаях проблем с соединениями, с оптимизацией запросов и прочими подобными вещами. Насмотрелся я приложений самых разных. Чего я только не видел! Может быть даже больше, чем хотелось бы. Часть из того, что я буду рассказывать, относится не только к PostgreSQL, а к любой базе, но кое-что прежде всего к PostgreSQL.

Главный вывод, который я смог сделать из того, что я видел, довольно неожиданный: фактически любое приложение при должной настойчивости можно заставить работать. Был замечательный проект (я не могу упоминать все компании, с которыми мы работали), в котором еще более замечательное приложение создавало таблицы миллионами. Выглядело это так: в понедельник система работает неплохо, а уже в пятницу она практически не работает. На выходные дни запускают VACUUM FULL, и в понедельник она опять работает хорошо. Оказывается, над PostgreSQL можно вот так издеваться, и всё это довольно долго будет жить и работать. Другой товарищ сделал странную вещь: у него всё было построено на триггерах, процедур не было вообще. То есть большую часть таблиц трогать нельзя, сделать что-либо не получалось, но и эта база жила.
Читать дальше →
Всего голосов 56: ↑56 и ↓0+56
Комментарии39

Система электронного документооборота «Визирь»

Время на прочтение7 мин
Количество просмотров12K
Эту статью надо было написать ровно 10 лет назад. Сделать это нужно было бы ради рекламы, или точнее, пиара разработанной мною системы документооборота «Визирь», которой на тот момент хотелось заниматься, развивать и продавать. Сейчас-то уже поздно, но мне захотелось это сделать ради того чтобы поставить для себя эту галочку (ну нравится мне всё до конца доделывать), и кроме того, возможно, это даже принесет кому-то какую-то пользу. Дальше – под катом…
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии14

Готовим полнотекстовый поиск в Postgres. Часть 1

Время на прочтение7 мин
Количество просмотров84K

UPD. Часть 2


Эта статья — первая из небольшой серии статей о том, как оптимально настроить полнотекстовый поиск в PostgreSQL. Мне пришлось недавно решать подобную задачу на работе — и я был очень удивлен отсутствию хоть сколько-нибудь вменяемых материалов по этому поводу. Мой опыт борьбы под катом.

Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии10

Gotify — open source проект по доставке уведомлений и отправке сообщений на сервер

Время на прочтение4 мин
Количество просмотров17K


Для тех, кто администрирует серверы и/или веб-проекты остро стоит вопрос информированности о том, что же происходит с их «подопечными». На рынке существует масса решений об оповещении о сбоях, состоянии соединения и прочих параметрах, в том числе и с помощью СМС. Речь о MRTG, Twilio, F-Droid, сервисах Google и многих-многих других. Вот только проблема в том, что большинство из этих решений весьма узко специализированы, а повлиять на их функции не представляется возможным. MRTG отдаст информацию о трафике и соединении, Google пришлет СМС. Кое-какую свободу дает Twilio в плане написания скриптов на JavaScript под свои нужды, но простите, это же коммерческий проект. То есть «давай, плати бабло или проваливай».

Так вот, в этом семействе инструментов у нас есть open source пополнение: Gotify — простой клиент-серверный проект для получения и отправки пуш-уведомлений и команд, в том числе и через Android-приложение. И о нем определенно стоит рассказать чуть подробнее, думаю, это пригодится для тех, кто искал нечто похожее и при этом бесплатное, но в итоге завел собственный pet-project. Вполне возможно, эта публикация сэкономит пару сотен часов вашего времени.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии3

Статья про то, как CommVault делает бэкап PostgreSQL

Время на прочтение6 мин
Количество просмотров9.1K
В данной статье мы рассмотрим наш опыт использования CommVault для резервного копирования PostgreSQL. Для этого разберем небольшую часть одного из наших прошлых проектов, где мы настраивали резервное копирование БД PostgreSQL у клиента.

Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Комментарии14

Информация

В рейтинге
3 306-й
Зарегистрирован
Активность