Pull to refresh
2
0.2
Send message

Пример простого версионирования записей PostgreSQL

Reading time2 min
Views13K
Когда то видел реализацию «истории записей» — версионирования, на стороне программы, работающей с SQL базой. Перед изменением записи, из базы получалась старая версия, записывалась в XML и полученная строка XML записывалась в отдельную таблицу версий.

Изначально, в своей программе планировал версионирование сделать когда нибудь потом, какой то срочной необходимости не было. Помню, было желание где-то использовать тип данных jsonb, как только додумался до простой и лаконичной реализации версионирования на стороне SQL, не сделать не смог. Всего лишь одна таблица версий с 5 колонками и одна триггерная функция в 3 строчки кода.

Для описания реализации одной таблицы версий мало, поэтому придется описать еще несколько таблиц для примера.

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

Пример таблицы пользователей:

image

Последние два поля на картинке, нужны для таблицы версий, также их можно назвать «автор версии» и «дата версии», но, при желании, можно обойтись без них.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments20

Как мы перевозим дата-центры (сложности миграции ЦОДов в средней полосе)

Reading time7 min
Views33K

Результат переезда и объединения двух серверных и телекоммуникационной из офиса

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

Я лично участвовал в 7 переездах, а наша команда перетащила уже точно свыше 30 больших объектов. Поэтому мы знаем толк в извращениях.

Переезд ИТ-оборудования отличается от классического переезда тем, что нельзя просто взять и перенести всё в другую точку за вечер субботы. Проблема в том, что ИТ-сервисы нужны круглосуточно и без простоев. Плюс масса нюансов по временной и новой сетевой инфраструктуре, по перевозке жёстких дисков в старых серверах и вытаскиванию двухтонных систем хранения данных краном из окон офиса, где после заезда поставили двери и постелили ковролин.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments6

Делаем сервер своими руками

Reading time4 min
Views289K


Предисловие


Несколько лет разрабатывали с другом проект, для которого в конечном итоге понадобился сервер. И мы задумались: как реализовать нашу идею?
Для начала позвонили местному интернет-провайдеру, чтобы узнать расценки стоимости размещения своего сервера в дата центре. Узнали, оказалось, что стоимость размещения зависит от количества юнитов, из которых состоит сервер. И для себе решили, что для нас идеальным вариантов будет размещения сервера размером в 1U.
Читать дальше →
Total votes 160: ↑140 and ↓20+120
Comments116

Особенности анализа CRM систем в ресторанном бизнесе

Reading time4 min
Views5.3K
По сей день, многие аналитики и ведущие маркетологи в ресторанном сегменте не перестают уделять внимание особенностям интернет-маркетинга, как основной инструмент работы с CRM. Мы же предлагаем взглянуть по-новому на технологии, которые уже активно вытесняют так называемый маркетинговый email «спам».
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments8

Маленький ноутбук для системного администратора

Reading time16 min
Views139K


Я системный администратор, и мне нужен маленький лёгкий ноутбук, который всегда будет под рукой. И в рабочее время, и когда я отдыхаю за тридевять земель.

К сожалению, мой рабочий Thinkpad x200 слишком тяжёл и громоздок для постоянного ношения, а ничего кардинально лучшего не нашлось. Вообще, маленькие ноутбуки в последнее время скатились к подражанию МакБук Эйру — нечто тонкое, блестящее, с минимумом портов, с функциональностью, принесенной в жертву стилю. Такой ноутбук годится только на то, чтобы ставить лайки в фейсбуке, но никак не для работы.

Не найдя ничего достойного, я задумался о том, каким-бы получился ноутбук, если-бы его разрабатывали, думая не о маркетинге, а о потребностях реальных пользователей. Например, системных администраторов. Раздумий набралось на целую статью.
Читать дальше →
Total votes 210: ↑204 and ↓6+198
Comments357

Зачем выставлять в Интернет интерфейс управления или атака на Cisco Smart Install

Reading time5 min
Views25K
Недавно Cisco узнала о некоторых хакерских группировках, которые выбрали своими мишенями коммутаторы Cisco, используя при этом проблему неправильного использования протокола в Cisco Smart Install Client. Несколько инцидентов в разных странах, в том числе некоторые из которых касаются критической инфраструктуры, оказались связаны с неправильным использованием протокола Smart Install. Некоторые эксперты считают, что ряд этих атак связан с хакерами, стоящими на службе государства. В результате мы занимаем активную позицию и призываем клиентов, снова, к оценке рисков и применению доступных методов нейтрализации рисков.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments69

Осторожнее с копипастом: фингерпринтинг текста непечатаемыми символами

Reading time4 min
Views61K
Не хотите читать? Посмотрите демо.

Символы нулевой ширины — это непечатаемые управляющие символы, которые не отображаются большинством приложений. Н​апример, в э​то пред​ложение я вст​авил де​сять про​​белов н​улевой ширины, вы эт​о замет​или? (Подсказка: вставьте предложение в Diff Checker, чтобы увидеть местоположение символов!). Эти символы можно использовать как уникальные «отпечатки» текста для идентификации пользователей.


Безусловно, он может здесь быть. И вы никогда не догадаетесь

Зачем?


Ну, изначальная причина не слишком интересна. Несколько лет назад я с командой участвовали в соревнованиях по различным видеоиграм. У команды была приватная страничка для важных объявлений, среди прочего. Но в итоге эти объявления стали репостить в других местах, с издевательствами над командой, раскрывая конфиденциальную информацию и командную тактику.
Читать дальше →
Total votes 101: ↑101 and ↓0+101
Comments106

Шаблон проектирования “минисценарий с проверкой противоречий”

Reading time11 min
Views6K
В данной статье я расскажу о собственных наработках, которые я опробовал на практике, чтобы внести больше ясности в разработку и эксплуатацию кода.

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

image

В организации, где я работаю, автоматизируют бизнес процессы, и обычно это связано с ведением базы данных. У нас принято работать по канонам, — сначала проводить бизнес анализ, составлять умное ТЗ, писать код, проводить тестирование и много всякой деятельности при дефиците времени. Первичная мотивация, вроде разумная, — “давайте будем разделять обязанности”, “давайте будем делать так, чтобы было безопасно” и тд и тп. Все эти приемы менеджмента с восторгом преподают на различных курсах, обещая много хайпа и охмурянта. Надеюсь, что читатель уже знаком с некоторыми модными словами, которые зачастую ни потрогать, ни налить нельзя. Но вопрос не об них, а о том, как программисту жить с ними.

Далее постараюсь объяснить, в чем разница между “бизнес логикой” и “строгой логикой”, на которую почему-то многие не обращают достаточного внимания. В результате оголтелого использования бизнес логики страдает просто логика, за которую боролись и математики и философы сотни лет. А когда страдает настоящая логика, то вместе с этим страдают сначала исполнители-технари, которые от безысходности могут начать лепить несуразное, чтобы лишь бы начальники отвязались. А потом бумерангом страдания возвращаются на источник “ярких супер бизнес идей”, заставляя их придумывать другие еще более “яркие супер бизнес идеи” или в конце концов надевать накладную бороду и темные очки, чтобы больше никто не узнавал на улице и не показывал пальцем.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments21

Скрипт нагрузочного тестирования для проверки соответствия текущих параметров каналов связи заявленным

Reading time6 min
Views13K

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


В организациях, использующих арендованные у операторов связи каналы передачи данных VPN/Интернет для построения корпоративной филиальной сети, рано или поздно может возникнуть ситуация, когда внезапно выясняется, что каналы до некоторых удаленных подразделений не соответствуют заявленным требованиям по полосе пропускания, либо при незначительной загрузке каналов появляются потери, влияющие на качество работы сетевых сервисов.

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

Скрипт удаления универсальных приложений Магазина Windows

Reading time5 min
Views28K
Пришло время выложить из закромов очередной скрипт для системных администраторов. Заготовки для работы с пакетами обновлений и компонентами системы выкладывались в предыдущих статьях. Сегодня Я поделюсь готовым решением, которое можно без доработок применять в работе. Как известно, компания Microsoft решила последовать примеру Google и открыла свой маркет приложений, под названием Магазин Windows. В дистрибутивах ОС начиная c Windows 8 появились приложения нового типа (формат файлов распространения — AppX), которые являются универсальными и должны запускаться на всех устройствах под Windows. Среди предустановленных универсальных приложений лично Я не нашел ничего полезного, поэтому и написал скрипт, который удаляет их все.
Читать дальше →
Total votes 31: ↑25 and ↓6+19
Comments80

Удаление/восстановление Metro-приложений в Windows 10

Reading time14 min
Views188K


Как бы не было много сторонников старых версий ОС, все же пришла пора переходить на Windows 10. В связи с этим предлагаю разобраться с предустановлеными Metro-приложениями. Согласитесь, мало кто будет использовать абсолютно все приложения, которые навязывает нам корпорация. Ведь большинство из них просто занимают место, а кого-то вообще раздражают. В этой статье я поделюсь с вами способом, которым можно «почистить» систему от именно таких — ненужных — приложений на Windows 10.
Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments17

Let's Encrypt: получение сертификата по шагам

Reading time4 min
Views463K
В данной статье будет описан реальный способ получения сертификата от Let's Encrypt в ручном режиме для его дальнейшей установки на веб-сервер Windows (IIS/Microsoft Azure) или Linux (полностью ручной режим). Из-за отсутствия официального клиента под Windows для генерации сертификата будет использоваться дистрибутив Linux.



Данная статья обновляется с создана для тех, кто хочет управлять процессом создания сертификата в полностью ручном режиме. В статье пошаговая инструкция процесса, чтобы вы уже смогли оперативно создать и начать пользоваться своим сертификатом.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments49

CoffeeMiner: взлом WiFi для внедрения криптомайнера в HTML-страницы

Reading time7 min
Views30K
Предупреждение: эта статья и проект имеют исключительно образовательные цели.

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

Цель этой статьи — объяснить, как провести атаку MITM (человек посередине) для внедрения определённого JavaScript-кода в страницы HTML, чтобы заставить все устройства, подключённые к WiFi, майнить криптовалюту для злоумышленника.

Задача состоит в создании скрипта, который проводит автономную атаку в сети WiFi. Это то, что мы назвали CoffeeMiner, поскольку атаки такого типа можно проводить в кафе.
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments15

Советский HI-FI и его создатели: ленинградский High End от ведущего «корабела» ЦНИИ «Морфизприбор»

Reading time7 min
Views63K
Первым постом в цикле о советской аудиоэлектронике стала публикация об усилителе “Бриг 001”. Общепринято считать, что именно с этого устройства начинался советский HI-FI. Усилитель был разработан в Ленинградском ЦНИИ “Морфизприбор”, в статье его создателем был назван Анатолий Лихницкий. Интересно, что впоследствии в этом учреждении было создано множество других разработок, которые стали бестселлерами отечественного hi-fi. В числе прочих: виниловый проигрыватель “Корвет 003”, серия предусилителей и усилителей с аналогичным названием, акустические системы и др.



В первой статье, было уделено ничтожно мало внимания ведущему инженеру Морфизприбора Владимиру Ратаеву, который сделал внушительный вклад в разработку “Брига 001” и других устройств ЦНИИ. Следует отметить, что этот человек на ряду с Лихницким, Шушуриным, Макарчуком, Левицким, Свиридовым и др. может считаться одним из отцов советского хайфая. Стоит также отметить, что в отношении первого «Брига» Лихницкий был в большей степени идеологом и организатором направления, а Ратаев разрабатывал конкретные технические решения.

Судьба инженера сложилась удачно. После распада СССР Ратаев продолжил разработку профессиональной усилительной аппаратуры для концертных площадок и студий. Сегодня он является технических директором, пожалуй, единственного предприятия, которое создаёт такую технику в России.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments52

FAQ по теме интеграции с ЕСИА

Reading time7 min
Views50K


Изменения в законодательстве, начинающие действовать с начала 2018 года и включающие в себя самые разнообразные области нашей с вами жизнедеятельности (закон о мессенджерах, о телемедицине и т.д.) объединяет одно – все большее проникновение информационных сервисов в нашу жизнь. Естественным является факт, что как и в реальной жизни, для получения человеком какой-либо услуги ему требуется пройти идентификацию. В офф-лайновой жизни средством авторизации является паспорт гражданина, а в он-лайн сфере таковым средством правительство решило признать ЕСИА — единая система идентификации и аутентификации.

Вот о ней и хотелось бы поговорить. Это ознакомительная статья, можно сказать ликбез. Для знакомства людей, которые еще не знают, что при необходимости можно использовать ЕСИА у себя в проектах и идти в ногу со временем вместе с государством. И так, что же это за зверь и как его рассматривает правительство.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments13

Умная «Квартира»

Reading time7 min
Views65K
Всем привет! Наконец-таки подошел к концу капитальный ремонт в квартире, и в связи с этим хочу поделиться с Вами, реализованным проектом «Умной квартиры» с базовыми возможностями управления освещением, подогревом теплых полов, контроля температуры и влажности помещений, и прочими плюшками. Описательная часть будет выполнена в виде мануала (так проще излагать что ли).

image
Читать, если интересно!
Total votes 42: ↑40 and ↓2+38
Comments91

API BIM-системы Renga

Reading time6 min
Views6.7K
Всем привет! В этой статье я расскажу об API BIM-системы Renga. О самой системе можно почитать тут, здесь же можно запросить версию для некоммерческого использования. Если вкратце, то Renga это трехмерная система автоматизированного проектирования в архитектуре и строительстве. В ней проектировщик/архитектор/конструктор работает с информационной моделью здания, получает ассоциативные чертежи, спецификации, в общем, создает проект.



Зачем нужно API CAD-системы


Сначала, как водится, немного водички.

Разработка расширений для CAD систем довольно распространена, поскольку в любом проектировании существуют различные направления, разделы и стандарты оформления проектной документации, которые требуют разной узкоспециализированной функциональности. Кроме того существуют задачи интеграции с программами расчета, визуализации, документооборота и многими другими. Выход — создание подключаемых модулей, расширяющих функциональность системы.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments5

Эксплуатация зданий: что будет, если один раз подойти с умом

Reading time7 min
Views18K
Карточка оборудования на модели здания — к ней прикреплены работы, затраты по единице железа, все документы (договоры, гарантия и пр.), инструкции и регламенты.

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

И все расчёты дальше идут лесом. Звучит дико, но так почти на каждом объекте.

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

Естественно, BIM-приложения дают много и в том случае, если здание уже построено и надо эксплуатировать рациональнее. Да, бывает, что модели нет (а иногда даже и простой 2D-документации), но все эти проблемы решаемы. Мы же в будущем, чёрт побери, тут всё продумано!
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments7

BIM: как мы строим строителей на стройке

Reading time6 min
Views78K
По нашей примерной оценке, основанной на 20-летней практике, на земляных работах можно «потерять» до 50-60 % бюджета. На железобетоне и отделке точно 30 %. На ошибках перезаказа при коллизиях стоимость инженерки увеличивается примерно на 10 %. Именно по этой простой причине, когда «злой заказчик» внедряет BIM-модель здания, со всех сторон начинаются дикие крики и стоны.

BIM-контроль сейчас будет на всех госзаказах по новому нормативу, поэтому крики и стоны будут особенно эпичны.


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

Что такое BIM-модель? Это трёхмерная модель здания, где все системы состыкованы и увязаны в одном едином плане. Поставили розетку в комнате — в общей смете тут же появилась новая розетка и соответствующий метраж кабеля. Погрешность такой модели по материалам — 2 %. На бумаге обычно берут запас 15 %, и излишки этого запаса отчаянно «теряются».

Давайте лучше покажу примеры, чем буду рассказывать.
Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments88

Советский HI-FI и его создатели: путешествие «Брига» «капитана» Лихницкого

Reading time9 min
Views50K
Этот пост является пилотным в цикле публикаций о культовой аппаратуре в советской аудиотехнике. Мы сравнительно давно обещали этот цикл, но как-то «не доходили руки». В серию статей войдут несколько УМЗЧ, виниловых проигрывателей, акустических систем высокой верности воспроизведения. Иными словами, писать буду про устройства, которые оставили след в истории СССР, а для многих стали символами эпохи. Я постараюсь не обойти стороной историю создания этих девайсов, а также некоторые значимые моменты в биографии их создателей.



Полагаю, будет справедливо первую публикацию посвятить усилителю «Бриг» и его создателям Анатолию Лихницкому и Алле Каляевой, как первопроходцам серийного HI-FI в СССР. Признаюсь, что не редко я иронизирую по поводу маргинальных взглядов Лихницкого на звук и некоторые аспекты схемотехники, о которых этот человек много писал в конце жизни, что никак не умаляет его заслуг как инженера и организатора работ по созданию первого советского HI-FI УМЗЧ. Следует также отметить существенный вклад в создание усилителя инженера Николая Слесарева и дизайнера Владимира Ратаева.
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments76

Information

Rating
2,200-th
Registered
Activity