Pull to refresh
0
0
Send message

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

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

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

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

Reading time8 min
Views69K
Ты – эффективный менеджер. Я – программист. Ты умудрился стать моим начальником. Я занимаюсь автоматизацией нашего сраного завода. Ты делаешь вид, что руководишь этим процессом.

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

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

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

Reading time10 min
Views55K
image

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

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

Reading time2 min
Views44K


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


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

Total votes 68: ↑54 and ↓14+40
Comments256

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

Reading time20 min
Views38K


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


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


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

Читать дальше →
Total votes 41: ↑41 and ↓0+41
Comments36

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

Reading time3 min
Views5.9K
image

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

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

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

Reading time3 min
Views52K

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

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

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

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

Reading time3 min
Views9.2K


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

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

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

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

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

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

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

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

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments2

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

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

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

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

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

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

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

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

image
Читать дальше →
Total votes 90: ↑89 and ↓1+88
Comments39

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

Reading time6 min
Views21K
image

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

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

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

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

Reading time7 min
Views14K

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


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


Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments15

Вышел Blazor 0.9.0

Reading time2 min
Views6.5K

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


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


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

Blazor survey


Будем рады увидеть ваши отзывы!
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments19

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

Reading time44 min
Views17K

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

Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments6

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

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

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



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

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

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

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

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

Reading time7 min
Views78K

UPD. Часть 2


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

Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments10

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

Reading time4 min
Views16K


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

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

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

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

Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments14

Information

Rating
Does not participate
Registered
Activity