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

Как стать автором

Все подряд

Clickhouse. Расширение кластера

Администрирование баз данных *Big Data *
Из песочницы

Всем привет! Я хотел бы поделиться своим опытом по расширению высоконагруженного кластера ClickHouse, немного о том как работает репликация и шардирование.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 141
Комментарии 1

Тестируем собственную батарейку для Django с pytest и tox

Python *Django *
Из песочницы
Перевод

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 168
Комментарии 0

Python service layer: основы оформления бизнес-логики на примере Django-приложений

Python *Django *
Из песочницы

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

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

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

На самом деле, изложенный далее текст относится не только к Django-проектам. Разрабатывая веб-приложения, используя другие инструменты, вроде Flask, люди используют те же концепции веб-разработки, причём часто именно в таком же виде, как они реализованы, в Django - views, request-response объекты, middlewares, модели, формы.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 860
Комментарии 1

Непопулярный pwsh

PowerShell *
Из песочницы

Несмотря на уже довольно давно пройденный рубеж одной операционной системы, PowerShell (далее просто pwsh) по-прежнему не занимает топовых позиций среди прочих языков, что, впрочем, нисколько не смущает киберпреступность. Первый зловред был написан ещё во времена первого поколения могучего шелла, затем были различного рода постэксплуатационные "фреймворки" для скомпрометированных систем, ну а там уж и анекдотов насочиняли. В смысле, была понаписана масса ненужного в информационном плане барахла вроде tips of day или how to do. Иными словами, информационная безопасность в контексте pwsh грозила перерасти в некий stand up, если бы не внезапно для многих случившаяся кроссплатформенность, на которой-то и споткнулись ряд проектов, не говоря уже о матёрых скриптописателях. Как ни странно, но в большинстве статей посвящённых расследованию инцидентов компрометации систем посредством pwsh используется пятая версия последнего. Между тем малварь, написанная на pwsh, существует и под Linux, и под MacOS, что великодушно игнорируется некоторыми ИБ экспертами, - винить во всём Microsoft уже не столько необходимо, сколько вошло в привычку.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 858
Комментарии 1

Актуален ли еще Solid?

Программирование *Проектирование и рефакторинг *
Из песочницы
Перевод

Перевод статьи Роберта Мартина

Недавно я получил письмо:

В течение многих лет проверка понимания принципов SOLID было стандартной частью нашей процедуры приема на работу. Предполагалось, что кандидаты хорошо знакомы с этими принципами. Однако в последнее время один из наших менеджеров, который больше не занимается программированием, усомнился в том, что это разумно. Его аргументы заключались в том, что принцип открытости-закрытости (open–closed principle) больше не очень важен, потому что большая часть кода, который мы пишем, не содержится в больших монолитах, а внесение изменений в небольшие микросервисы безопасно и легко. Принцип подстановки Лисков (Liskov substitution principle) давно устарел, потому что мы не уделяем столько внимания наследованию, как 20 лет назад. Я думаю, нам следует рассмотреть позицию Дэна Норта по SOLID: «Просто напишите простой код».

В ответ я написал следующее письмо:

Принципы SOLID остаются актуальными и сегодня, как и в 90-е годы (и даже до этого). Это потому, что программное обеспечение не сильно изменилось за все эти годы. Оно не сильно изменилось даже с 1945 года, когда Тьюринг написал первые строчки кода для электронного компьютера. Программное обеспечение по-прежнему представляет собой операторы if, циклы while и операторы присваивания - последовательность, выбор и итерацию.

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

Читать далее
Всего голосов 8: ↑4 и ↓4 0
Просмотры 3K
Комментарии 8

Правила «идеального программиста»

Карьера в IT-индустрии
Из песочницы

Когда меня спрашивают про мой опыт работы программистом, в частности про время потраченное от первого, до последнего рабочего куска кода, я привык отвечать — «От пары лет, до пары месяцев». До текущего момента этот ответ был довольно странный, но имеющий право на жизнь, ибо может показаться, что полученный опыт работы «IT-шником-одиночкой» (кем я и был до недавнего времени) не в IT компании довольно сложно применить к боевой разработке и в расчет к опыту профессиональной деятельности применяться не должен. Но это не так. Недавно мне довелось перечитать один из бестселлеров трилогии дядюшки Боба -«Идеальный программист» и сквозь призму времени, довольно странного опыта и изученного материала я готов обозначить, пожалуй, главные навыки, которые должен иметь, либо развивать «Идеальный программист». Данный список является несколько абстрактным, что делает его применимым не только для разработки, но и для других сфер.

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Просмотры 2.2K
Комментарии 4

Что должен, но не знает про конкуренцию в PostgreSQL каждый разработчик?

Разработка веб-сайтов *PostgreSQL *SQL *
Из песочницы

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

Читать далее
Всего голосов 19: ↑18 и ↓1 +17
Просмотры 3.4K
Комментарии 2

Во все порты: одна карта и три картридера

Компьютерное железо Накопители
Из песочницы

Казалось бы, выбор картридера очевидным образом влияет на скорость карт памяти: модели с интерфейсом USB 3.x всегда быстрее их предков с USB 2.0, но все ли картридеры USB 3.x одинаково шустрые? Есть ли для них смысл в USB 3.2 Gen 2 (10 Гбит/с), или же это заведомый overkill и маркетинговый шум?

Мне захотелось проверить это на примере работы microSDXC Transcend 340S на 256 ГБ (TS256GUSD340S) с тремя разными картридерами. Для чистоты эксперимента выбрал ридеры той же фирмы (благо, их часто закупают). Ниже привожу результаты тестов, но для начала опишу основные условия их проведения.

Материнка: Asus Maximus VIII Hero (старая, но всё ещё добрая);
Камень: Core i7-7700K на частоте 4500 МГц (45x100x4+HT);
Оперативка: 2 планки по 8 Гб Kingston HyperX DDR4-3466 в двухканальном режиме;
Два твердотельника по полтерабайта: WD Black SN750 (под систему) + TS512GSSD452K (хранилка);
Б/п: SSR-750TR (он же Seasonic Prime TX-750).
Картридеры: Transcend HUB5C, RDF9K2 и RDF5
Операционка: 64-разрядная Win 7 с последними обновками (ESU).

скорее читать дальше!
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 2.5K
Комментарии 3

Небольшая автоматизация небольшого производства

Высокая производительность *Схемотехника *Электроника для начинающих
Из песочницы

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

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 4.5K
Комментарии 9

К-распределение плотности вероятности. Единорог среди всех распределений

Анализ и проектирование систем *Алгоритмы *Математика *Разработка систем связи *
Из песочницы

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 2.4K
Комментарии 0

Как  делали онлайн карту объектов культурного наследия

Визуализация данных
Из песочницы

В нашем рассказе речь пойдет про то, как мы реализовывали проект “Сохраним наследие” и делали онлайн карту памятников истории и культуры historymap.online. Это небольшая обзорная статья про наш проект. Она не содержит каких либо решений только общую концепцию. В дальнейшем планируем более детально описать этапы работ. 

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 1.2K
Комментарии 17

Создание унифицированного UI без мам, пап и кредитов

Блог компании Wargaming JavaScript *HTML *VueJS *
Из песочницы

Всем привет! Меня зовут Артём и я разработчик в команде Operations & Support Tools. Наша команда занимается разработкой софта для взаимодействия поддержки с пользователями, с целью решения любых возникших у пользователей проблем.

В прошлый раз один из моих коллег рассказывал, как реализовано взаимодействие сервисов у нас в Платформе. Те, кто пропустили эту статью, могут найти её по ссылке. Сегодня я хочу рассказать про приложение, которое раскрыло возможности Contract API с новой стороны. Знакомьтесь, Contract UI.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 627
Комментарии 0

Ещё одна автоматизация сталинки

Программирование *Умный дом DIY или Сделай сам
Из песочницы

Очередная статья c теорией и практикой на тему домашней автоматизации...

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

В ней будет отображено как текущее состояние дел, так и немного истории. Конкретного финиша нет: совершенствовать можно почти до бесконечности. 

Рассчитываю как поделиться идеями и опытом, так и набраться критики и предложений. 

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 12K
Комментарии 31

iPadOS в стиле Windows 95

Интерфейсы *
Из песочницы

Я решил нарисовать интерфейс, который объединяет стиль Windows 95 и логику управления из IPadOS. До меня (по крайней мере, я не встречал подобных концептов).

Как в оригинальном айпаде, сверху находятся часы, трей и индикаторы Wi-Fi. Снизу находится док, где слева расположены, закрепленные в док, приложения, а справа - запущенные приложения (которые не закреплены в док). По центру сетка приложений и виджетов.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 3.1K
Комментарии 12

Основы работы с PostgreSQL в Docker

PostgreSQL *SQL *
Из песочницы

В данной статье рассматриваются некоторые особенности начала работы с СУБД PostgreSQL в Docker, которые могут быть полезны читателю, если он только начинает познавать искусство работы с контейнерами. Написать сие произведение меня побудило отсутствие статей, которые полностью покрывают базовые вещи в начале работы с PostgreSQL в Docker. В этой статье мы не будем подробно рассматривать принципы работы PostgreSQL, однако напишем несколько базовых запросов для того, чтобы протестировать работу контейнера.

Читать далее
Всего голосов 12: ↑5 и ↓7 -2
Просмотры 5.7K
Комментарии 22

Аудио-графическое шифрование или как звук в картинку спрятать

Python *DIY или Сделай сам
Из песочницы

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

Читать далее
Всего голосов 10: ↑6 и ↓4 +2
Просмотры 3.9K
Комментарии 16

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

SaaS / S+S *Интернет-маркетинг Облачные сервисы
Из песочницы

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

Переходите и узнайте кто лучший
Всего голосов 9: ↑3 и ↓6 -3
Просмотры 1K
Комментарии 1

Разрыв между производством и потреблением данных

Data Engineering *
Из песочницы
Перевод

Думаю, многие согласятся, что современный русский язык находится под постоянным давлением со стороны английского в части заимствований. Мы уже обыденно произносим и понимаем фразу типа «когда юзер пытался залогиниться через АДэ, в браузере что-то заглючило, надо винду ребутнуть, наверное». Так получается короче, быстрее, но, кажется, это может плохо кончиться в итоге. Эллочка-людоедка, новояз Оруэлла и бейсик-инглиш Огдена, ю ноу. Корень проблемы в корнях. И мы теряем корни в буквальном смысле слова. Свои корни теряем, а чужие нам не позволяют правильно понимать смысл слов. Поясню на примере.

О чём говорят люди, когда обсуждают Data Governance и Data Management на русском? Давайте разбираться.

Есть в английском два слова примерно об одном и том же: «governance» и «management». При этом «governance» однокоренное с «government» (правительство). Аналогично, в русском языке есть два самых употребляемых слова на эту тему: «управление» и «руководство». При этом, «управление» — однокоренное со словом «правительство». Кроме того, слово «management» восходит к латинскому «manus» (рука), а «руководство» прямо содержит в себе корень слова «рука».

С точки зрения корней, логично переводить «governance» как «управление» (отсылка к «правительству»), а «management» как «руководство» (отсылка к «руке»).

А с точки зрения взаиморастворения культур не всё так однозначно, ибо у них есть «data management» и отдельно «data governance», и всем понятно, что это разные вещи. Там люди чётко понимают, что «governance» выше, чем «management». А у нас редкий человек объяснит, чем «управление» отличается от «руководства». Вот и получается, что использовать Data Governance и Data Management в русском очень трудно, особенно так, чтобы тебя поняли.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 984
Комментарии 4

Дюна, Дюночка, Дюна́…

Интернет-маркетинг Читальный зал Социальные сети и сообщества Научная фантастика
Из песочницы

В последние две недели я наблюдаю в Рунете некую истерию вокруг новой экранизации «Дюны»: одни хвалят, другие ругают, а третьи оставляют сдержанные отзывы. Сейчас о «Дюне» не пишет только ленивый. Ну вот и я решил вставить свои 5 копеек.

Читать далее
Всего голосов 50: ↑32 и ↓18 +14
Просмотры 28K
Комментарии 108

Code Review – зачем и как использовать в команде?

Программирование *IT-стандарты *
Из песочницы

В статье рассказывается про процесс Code Review, подходы к реализации, как использовать в команде и на что обращать внимание во время Code Review.

Code Review - это процесс проверки и анализа кода задачи разработчиком перед ее релизом. CR (Code Review) выполняется не тем человеком, который делал задачу, а другими членами команды. Результатом CR является обратная связь по выполненной задаче: необходимость внести правки, либо готовность задачи к последующему тестированию и релизу.

Читать далее
Всего голосов 15: ↑9 и ↓6 +3
Просмотры 3K
Комментарии 29