Pull to refresh
-2
0
Send message

Почему вам стоит отказаться от использования timestamp в PostgreSQL

Reading time10 min
Views66K

Не секрет, что работа с часовыми поясами — боль, и многие разработчики объяснимо стараются ее избегать. Тем более что в каждом языке программирования / СУБД работа с часовыми поясами реализована по-разному.

Среди тех, кто работает с PostgreSQL, есть очень распространенное заблуждение про типы данных timestamp (который также именуется timestamp without time zone) и timestamptz (или timestamp with time zone). Вкратце его можно сформулировать так:

Мне не нужен тип timestamp with time zone, т.к. у меня все находится в одном часовом поясе — и сервер, и клиенты.

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

Читать далее
Total votes 81: ↑78 and ↓3+90
Comments136

Приходите к нам на завод, у нас тяжело

Reading time10 min
Views139K
Короче, ИТ на заводе — это вам не романтика, особенно в нашем цифровом направлении.

Между «давайте этим займёмся» и «о, смотрите, какая гламурная ML-модель» лежит очень много того, про что не рассказывают. Сейчас расскажу.

Вначале у нас была банда энтузиастов из разных подразделений: несколько человек из ИТ, АСУТП, технологи со знанием статистики — чтобы смотреть с разных углов и видеть всё в целом, насколько это возможно. Начали с оценки перспектив. Они были необъятные — наше производство размером с небольшой город. Стали формироваться подразделения и направления: кто-то пошёл собирать роботов, кто-то в видеоаналитику, кто-то в лайтовый анализ данных, кто-то в самый хардкор — в дата-сатанизм. Работы у нас всегда больше, чем рук.

И на каждой из этих дорожек нас поджидали свои чудеса и сюрпризы.

Вот, к примеру, видеоаналитика:

  • Мы поняли, что ML в 50% задач не нужны. Нужна, например, камера, которая по цвету определяет, где есть железка, и смотрит её геометрию в реальности. Всё. Или другая камера, которая следит, чтобы в нужной зоне ничего не шевелилось.
  • Всё это прекрасно до первого солнечного зайчика. ML отлично показывают себя там, где вам лень строить крышу или ставить прожектор над конвейером.
  • У нас была идея, что мы можем сами в нейросети. Чуть не написали свой сервис для распознавания номеров вагонов. Казалось, делов-то на 20 минут, а у подрядчика это стоит 25 копеек за фото. Сделали свой, сферические вагоны в вакууме он определял хорошо. Потом приехало вот это:

image

А потом внезапно пошёл дождь. Знаете что? Вагоны под дождём становятся мокрыми. Это было неожиданно. Ещё они бывают после снега, битые, немытые, обновлённые криворукими малярами и ПРОЧИЕ. И в солнечных зайчиках тоже.

Мы накалывались на получении данных (кто сказал, что прошивка станка без костылей?), на роботизации, инфраструктуре, связи, на всём. Мы облазили весь завод, испачкались в солидоле, мазуте и масле. Но стали делать то, что должны, — оптимизировать мир.
Читать дальше →
Total votes 228: ↑224 and ↓4+268
Comments278

Капибара, Новый Старый Пикабу

Reading time8 min
Views72K

Пикабу долгое время было уютным уголком для обмена историями, опытом, творчеством, мнениями и эмоциями. Однако ряд нововведений, таких как отмена баянометра, изменение алгоритмов и скрытие отрицательных оценок, привели к потере духа оригинального портала. Многие из нас, пришедшие туда в молодости и теперь ставшие взрослыми, почувствовали, что наши ценности и мнения игнорируются. В ответ на это, мы, группа энтузиастов, создали "Капибару" – проект, который стремится сохранить лучшие стороны Пикабу, предоставляя пространство где пользователи сами решают какой контент "годный" и какой контент хотят видеть в своей ленте.

Читать далее
Total votes 146: ↑139 and ↓7+166
Comments225

FreeIPA vs Samba AD

Level of difficultyEasy
Reading time12 min
Views19K

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

Сегодня нужно заменить большое количество программных продуктов, а времени совсем мало, поэтому приходится расставлять приоритеты и начинать с самого важного. Так, одним из стратегических направлений «Группы Астра» стала разработка службы каталога, которая должна заменить Microsoft Active Directory и стать сердцем обновленной ИТ-инфраструктуры российских предприятий. В нашем продукте мы объединили службу каталога FreeIPA с системой конфигурирования SaltStack и дополнили решение набором наиболее востребованных сервисов, таких как репозиторий программного обеспечения Reprepro, файловый сервер Samba, общий доступ к принтерам CUPS, динамическая настройка хостов ISC DHCP, установка ОС по сети TFTP HPA, мониторинг Zabbix и Grafana, журналирование syslog-ng.

Продукт ALD Pro (Astra Linux Directory Pro) быстро развивается, и с даты первого релиза было опубликовано уже несколько сотен улучшений, что позволило стать лидером на рынке доменных решений. У нас уже сотни инсталляций по всей стране, и с каждым днем их становится все больше. Но некоторых пользователей очень интересует вопрос, почему в качестве основы для службы каталога мы выбрали все-таки FreeIPA, а не Samba AD, и в этой статье поделимся нашими соображениями. Уверены, что информация окажется полезной не только нашим заказчикам, но и пользователям ванильных FreeIPA и Samba AD.

Читать далее
Total votes 16: ↑12 and ↓4+12
Comments32

Стилер из торрентов: как скачивание пиратской программы привело к заражению сотен тысяч пользователей

Reading time4 min
Views6.7K

В конце лета 2023 года наш SOC с помощью системы мониторинга событий ИБ MaxPatrol SIEM зафиксировал аномальную сетевую активность. После этого привлекли нас, команду по расследованию инцидентов (PT CSIRT). Как выяснилось, пользователь одной из российских компаний был скомпрометирован достаточно простым, но неизвестным ранее вредоносным ПО. Мы не обнаружили ни следов фишинга, ни взлома внешнего контура, ни применение других техник — пострадавший всего лишь установил программу, скачанную через торрент.

Вредоносная программа собирала информацию о компьютере жертвы, устанавливала RMS (программу для удаленного управления) и майнер XMRig, архивировала содержимое пользовательской папки Телеграма (tdata) — и это лишь наиболее деструктивные действия. ВПО отправляло собранную информацию в телеграм-бот, который выступал в роли контрольного сервера.

Нашей команде удалось установить более 250 000 зараженных устройств в 164 странах (большинство жертв — обычные пользователи, которые скачивают нелегальные программы с сайтов на свои домашние компьютеры) и определить вероятного автора вредоноса, который мы назвали autoit stealer.

Читать расследование
Total votes 11: ↑9 and ↓2+9
Comments14

Vue.js 3 — шаблоны проектирования и лучшие практики

Level of difficultyMedium
Reading time2 min
Views12K

Предлагается перевод книги Vue.js 3 Design Patterns and Best Practices автора Pablo Garaguso.

Книга вышла в мае 2023 года, написана очень компетентно, оперирует современными технологиями и стандартами. Материал книги будет полезен разработчикам не только Vue, но и других фронтенд фреймворков.

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments2

Как сделать интерактивную карту с маршрутами на Python

Reading time7 min
Views31K

Распространённая задача программистов в работе с геопространственными данными — отобразить маршруты между различными точками. Решением, которое может понадобиться в разработке веб-сайта, делимся к старту курса по Fullstack-разработке на Python.

Читать далее
Total votes 11: ↑10 and ↓1+10
Comments5

Как наладить поиск адреса по координатам (и где взять нужный справочник)

Reading time10 min
Views41K


Весной мы добавили в API DaData.ru фичу «Обратное геокодирование», она же «Адрес по координатам». Название намекает: метод принимает геокоординаты и отдает данные об адресе.

Солидный продукт с той же функциональностью предлагает «Яндекс» — он называется «Геокодер». Но сервис «Яндекса» бесплатен только для открытых некоммерческих проектов. Стандартный же тариф — от 120 000 ₽ в год — подходит не всем.

Мы подумали — если сделать бесплатную или недорогую альтернативу «Геокодеру», разработчики наверняка скажут спасибо. И сделали. В статье расскажу, как устроен «Адрес по координатам»: как мы наладили поиск, собрали справочник и упаковали в готовый метод.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments33

Небольшой тест нескольких БД при работе с многими таблицами

Level of difficultyEasy
Reading time4 min
Views6.4K

Я новичок в работе с базами данных и для их изучения (а заодно для изучения Питона) начал небольшой пет-проект. В процессе оказалось, что в моей многопользовательской системе запросы к БД всегда касаются только одного пользователя. «Отлично!» подумал я, «раздам каждому пользователю по табличке и сэкономлю ресурсы сервера на индексации!». Конечно сначала я почитал литературу и подобных решений в ней не нашел. Потом сходил на один из популярных ресурсов и там мне объяснили, что так делать нельзя. Но почему – никто объяснить не смог (или возможно не захотел). Поэтому я решил сделать небольшой тест на самых популярных БД – проверить что будет на самом деле.

Читать далее
Total votes 16: ↑5 and ↓11-5
Comments46

[Конспект админа] Как подружиться с DHCP и не бояться APIPA

Reading time10 min
Views109K


Сервис, выдающий IP-адреса устройствам в локальной сети, кажется одним из самых простых и всем знакомых. Тем не менее у моих младших коллег до сих пор временами всплывают вопросы вроде «компьютер что-то получает какой-то странный адрес», а появление второго DHCP-сервера в одном сетевом сегменте вызывает некоторый трепет или проблемы в работе сети.


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


Немного теории и решения интересных и не очень практических задач — под катом.

Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments26

PostgreSQL и временные таблицы

Level of difficultyMedium
Reading time9 min
Views33K

Мы много лет уже используем в качестве основной базы данных PostgreSQL. За это время он зарекомендовал себя быстрой и надежной СУБД. Однако, есть в PostgreSQL одна проблема, с которой приходится сталкиваться достаточно часто. К сожалению, реализация логики временных таблиц в нем имеет ряд недостатков, которые отрицательно сказываются на производительности системы.

Одним из свидетельств наличия проблемы является то, что для временных таблиц в Postgres Pro была добавлена специальная функция fasttrun, а в Postgres Pro Enterprise существенно доработана работа с ними (см. пункт 4). 

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

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

Читать далее
Total votes 43: ↑42 and ↓1+49
Comments45

Assembler для Windows в Visual Studio

Reading time12 min
Views25K

В этой статье я покажу как написать приложение для windows на ассемблере. В качестве IDE будет привычная многим Visual Studio 2019 со своими привычными плюшками - подсветка кода, отладка и привычный просмотр локальных переменных и регистров. Собирать приложение будет MASM, а значит, у нас будут и масмовские плюшки. Это будет полноценное оконное приложение с меню, иконкой, отрисовкой, выводом текста и обработкой мыши с клавиатурой.

Читать далее
Total votes 74: ↑74 and ↓0+74
Comments86

Мой подход к ведению семейного бюджета

Reading time3 min
Views5.9K

Всем привет! Я, как и многие на этом сайте, задумывался над ведением семейного бюджета.

Проблематика

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

Решение

Идея решения такая: парсить выписки различных банков, которыми пользуется семья, а все операции заносить в какое-то хранилище данных. В качестве хранилища данных был выбран elastic в том числе и потому, что у него есть удобный и довольно простой в использовании интерфейс – kibana. В итоге, схема выглядит так:

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments24

WebSocket. Краткий экскурс в пентест ping-pong протокола

Level of difficultyMedium
Reading time12 min
Views14K

"Краткость - сестра таланта" - именно так сказал Антон Павлович Чехов, и теперь говорю я. Сегодня, завтра и до конца дней habr-а речь пойдет о WebSocket-ах: "Что это?", "Как работает?" и главное - "Как это взламывать?" (в целях этичного хакинга конечно). Начнем с простого и будем идти к более сложному, пробираясь через тернии к звёздам.

Приятного чтения
Total votes 19: ↑19 and ↓0+19
Comments0

Истории из жизни вредоносов: Отражающая DLL инъекция

Level of difficultyMedium
Reading time5 min
Views3.6K

В предыдущих двух статьях, посвященных различным способам инъекций dll, мы использовали методы инжектирования, требующие в том или ином виде использовать файлы на машине жертвы, содержащие полезную нагрузку. Здесь у нас, а точнее у потенциального злоумышленника могут возникнуть некоторые трудности, связанные с обходом средств защиты. Так или иначе, но файл необходимо каким-то образом доставить на атакуемую машину. В случае с использованием флешки файл с полезной нагрузкой может обнаружить хостовый антивирус. Если мы будем использовать электронную почту для пересылки, то здесь может вмешаться антивирус на почтовом сервере, аналогично, при пересылке файла через файловую шару, может помешать антивирус для файловых серверов. Так или иначе, при работе с файлами всегда есть риск, что средства защиты могут нас обнаружить еще до того, как наш файл начнет свою активность.  

В этой статье речь пойдет об использовании отражающих dll инъекций (reflective dll injection), которые позволяют в определенной степени спрятаться от средств защиты на этапе закрепления на машине жертвы.

Читать далее
Total votes 12: ↑10 and ↓2+11
Comments1

Что такое оценка эффективности в мире IaaS, или как мы обезопасили облако на базе VMware

Reading time10 min
Views1.8K

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

Для чего это вообще нужно, какие требования выдвигаются к провайдеру? А самое главное: что по итогу получает клиент? Пора разобраться в этих вопросах.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments4

Windows — причина медленного интернета

Level of difficultyEasy
Reading time4 min
Views109K

Если вы столкнулись с «особой» проблемой медленного интернета и никакие танцы с бубном вам не помогают, то это статья для вас.

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

В этой статье я поделюсь своим «интересным» опытом, как я искал решение проблемы и о том, что Windows можно починить и не переустанавливать.

Читать далее
Total votes 138: ↑132 and ↓6+155
Comments316

Релиз Bun 1.0 (новый runtime для JavaScript )

Level of difficultyEasy
Reading time12 min
Views36K

Представляем Bun версии 1.0.

Bun — это быстрый и универсальный набор инструментов для запуска, сборки, тестирования и отладки JavaScript и TypeScript кода (от одного файла до fullstack-приложения). Сегодня Bun стабилен и готов к продакшену.

Читать далее
Total votes 74: ↑71 and ↓3+83
Comments118

Автоматизированный сбор информации о сроке годности сертификатов в Криптопро

Level of difficultyMedium
Reading time4 min
Views2.8K

Привет, Хабр! Недавно делал одну интересную задачу, связанную с актуализацией просроченных сертификатов (открытых ключей), используемых для подписания и шифрования файлов при помощи Криптопро 5. Решил поделиться опытом. Возможно, это поможет сэкономить время при решении похожей задачи или будет просто интересным чтивом для вас.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments6

Information

Rating
Does not participate
Registered
Activity