Pull to refresh
7
0
Денис @choodo

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

Send message

Настраиваем CI/CD с GitHub Actions и werf: инструкция для новичков

Level of difficultyEasy
Reading time12 min
Views11K

В этой статье мы рассмотрим, как настроить пайплайн CI/CD в GitHub: подготовим репозиторий, зальём туда приложение, создадим файлы конфигурации GitHub Actions, в которых опишем, как собирать наше приложение и деплоить его в кластер Kubernetes, развёрнутый под управлением Deckhouse Kubernetes Platform. Деплоить будем с помощью Open Source CLI-утилиты werf. Она помогает организовать полный цикл доставки приложений в Kubernetes и рассматривает Git как единый источник истины для состояния развёрнутого приложения. Статья рассчитана на тех, кто только начинает свой путь в мире облаков и кластеризации.

Читать далее
Total votes 22: ↑21 and ↓1+26
Comments2

Страх и ненависть в HeadHunter'е, или как искать работу в 2024 году: 10 простых советов

Level of difficultyEasy
Reading time4 min
Views35K

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

Читать далее
Total votes 43: ↑11 and ↓32-19
Comments74

Почему работодатель хочет, чтобы вы были ИП

Reading time7 min
Views65K

Представим сферическую ситуацию в вакууме. Вы никогда до этого не были предпринимателем, только работали по найму. У вас на руках два оффера. Оба по 100 000 руб. на руки, оба на плюс-минус одинаковых условиях. Офис, 5 дней в неделю по 8 часов. Но один работодатель хочет заключить с вами трудовой договор, а другой предлагает вам оформиться как ИП.

Для начала зададимся вопросом, почему работодатель предлагает оформить отношения с вами как с ИП, а не берёт в штат? Если кратко, то работодателю так проще и дешевле. Почему? Давайте разберёмся.

Читать далее
Total votes 117: ↑105 and ↓12+117
Comments268

Apache vs Nginx: практический взгляд

Reading time12 min
Views367K
Apache vs Nginx

Введение


Apache и Nginx — 2 самых широко распространенных веб-сервера с открытым исходным кодом в мире. Вместе они обслуживают более 50% трафика во всем интернете. Оба решения способны работать с разнообразными рабочими нагрузками и взаимодействовать с другими приложениями для реализации полного веб-стека.

Несмотря на то, что у Apache и Nginx много схожих качеств, их нельзя рассматривать как полностью взаимозаменямые решения. Каждый из них имеет собственные преимущества и важно понимать какой веб-сервер выбрать в какой ситуации. В этой статье описано то, как каждый из этих веб-серверов ведет себя при различных условиях.
Читать дальше →
Total votes 89: ↑69 and ↓20+49
Comments184

Частное мнение о том, как «вкатиться» в IT

Level of difficultyEasy
Reading time10 min
Views44K

Я давний читатель HABR‑а (кажется, с 2011 года), хотя читатель пассивный: даже не был зарегистрирован. Мне казалось, что сотрясать воздух занятие достаточно бессмысленное, а сказать что‑то новое мне особо и нечего. Но последние пару лет на HABR‑е появляется все больше и больше статей, которые условно можно охарактеризовать фразой «как вкатиться в IT». Возможно, я необъективен, но меня не покидает ощущение, что почти все статьи по этой тематике похожи друг на друга. Не дословно, конечно, но общим направлением мысли. Очень редко встречаются статьи где есть конкретика; все больше общие избитые банальные рецепты, которые, надо признать — чересчур универсальны и не могут служить руководством. Особенно
для тех, кто живет в провинции, где нет серьезных разработчиков и где, увы, негде получить необходимый опыт. Можно я расскажу о себе? Мой опыт не универсален, но это реальный опыт. Я не строю иллюзий, что это кому‑то пригодится, но если кого‑то хотя бы подбодрит — уже неплохо.

Чтобы не мусолить и не создавать ненужной интриги, скажу сразу: мне 62 года. Профессиональный стаж программиста 37 лет (с 1987 года). Вероятно, половина
читателей HABR‑а младше 37 лет, с чем я их искренно поздравляю — у вас еще много времени. Образование — высшее техническое (с углубленным изучением
математики). По основной специальности, правда, работал не долго.

Компьютеров в те годы было немного. Да, были «Синклеры», «БК» и еще целый ряд других. Народ вовсю паял свои машины, но у меня руки всегда росли не из того места, так что это увлечение прошло мимо. Тем не менее, мне повезло: КБ, где я работал по распределению, получило машину СМ-4 (клон PDP-11).

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

Читать далее
Total votes 227: ↑225 and ↓2+259
Comments102

PSR Стандарты

Reading time15 min
Views140K
PHP-FIG

PSR — Чуть больше, чем стиль оформления кода.

Как показала практика, многие PHP-разработчики знакомы с аббревиатурой PSR. Однако большинство все еще ограничены знанием, что PSR это стандарт оформления кода.

Ребята из PHP-FIG (PHP Framework Interop Group), группа концепций совместимости PHP, которые занимаются развитием PSR (PHP Standards Recommendations) шагнули далеко вперед. Поэтому давайте разберемся, что из себя представляет PSR…

Читать дальше →
Total votes 25: ↑24 and ↓1+31
Comments39

Wubuntu: Linux с интерфейсом Windows 11 и возможностью запускать «виндовый» софт. А ещё и Windows 95

Reading time3 min
Views57K

Дистрибутивов Linux достаточно много — на любой запрос, вероятно, можно найти подходящий вариант. Не так давно появился ещё один дистрибутив, который внешне является почти полной копией Windows 11. Также он способен запускать Windows-программы и работает на относительно старых компьютерах и ноутбуках. Называется он Wubuntu, и подробности о нём — под катом.

Читать далее
Total votes 49: ↑39 and ↓10+42
Comments86

Как перестать «ходить на дырку» на даче и не надышаться миазмами

Level of difficultyEasy
Reading time5 min
Views73K

Эта статья адресована тем, кто сам занимается строительством канализации на даче.

Миллионы дач в России ранее были оборудованы туалетами типа "сортир с выгребной ямой". С этого многие начинали и многие этим и закончили. Но по мере продвижения ИИ в массы и вообще развития технологий, многие задумались о том, что душ доме на даче это хорошо. А также нормальный тубзик. В котором можно нормально гнездится и почитать газету в интернете, Хабр или что-то еще полезное, а не напряженно ждать вцепится ли в тебя рой мух или нет. Опять же эстетика сортира уже устарела.

Читать далее
Total votes 124: ↑91 and ↓33+81
Comments225

Новая схема SQL Join-ов

Reading time1 min
Views13K

Учу SQL и понимаю, что схема Join-ов основанная на пересекающихся кругах не корректна. Результатом джойнов всегда идет увеличение таблицы в ширь. А по схеме с кругами площадь кругов почти везде не увеличивается. И также круговая схема не показывает заполнение NULL-ами при LEFT и RIGHT джойнах. Предлагаю схему на прямоугольниках, где закрашенный красный это результирующие данные в таблице после джойнов, черный это заполнение NULL-ами. Серые прямоугольники оставлены просто для наглядности и ничего не означают.

Читать далее
Total votes 45: ↑30 and ↓15+19
Comments29

Самые популярные структуры данных

Reading time9 min
Views24K
Что такое структура данных?
Проще говоря, структура данных — это контейнер, в котором хранятся данные в определенной компоновке (формате, или способе организации их в памяти). Эта «компоновка» позволяет структуре данных быть эффективной в одних операциях и неэффективной в других. Ваша цель — понять структуры данных, чтобы вы могли выбрать структуру данных, наиболее оптимальную для рассматриваемой проблемы.

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

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

Конвертация скрипта Bash в код С# для отправки СМС через usb модем HUAWEI E3372

Reading time6 min
Views30K
Несколько моих проектов отправляют СМС и в последнее время после обновлений сервера, а может и ряда других причин, отправка СМС стала почти невозможной.

Старенький USB модем HUAWEI (марку не буду разглашать) перестал стабильно висеть на одном COM порту и временами переподключался на другие порты, совсем отключался и терял антенну.

Да и ситуация с библиотекой GSMComm была непонятной и болезненной.
GSMComm — это пакет для телефонов GSM, в основном для выполнения задач, связанных с SMS.
www.nuget.org/packages/GSMComm последня версия 1.21.1 от 10.10.2015 года.
Поиск по интерент показал, что есть возможность использовать встроенный функционал WEB API новых модемов HUAWEI, более эффективно, чем старый подход с AT командами реализованный в GSMComm.

Выяснилось, что есть прекрасный usb модем HUAWEI E3372, который почти хакерским способом способен отправлять СМС как из скрипта (Curl + Bash), так и из кода (Python, Perl), и, как я предположил, из C#.

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

В общем, опираясь на найденный материал, не гарантирующий работу кода с момедом, был приобретен HUAWEI E3372.
Читать дальше →
Total votes 3: ↑1 and ↓2-1
Comments8

Практическое использование шаблона Стратегия

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

Как же правильно изучать шаблоны проектирования? Есть два подхода: скучный и доходчивый (Нравится моя классификация?). Скучный подход подразумевает академическое изучение списка паттернов с использованием абстрактных примеров. Лично я предпочитаю, противоположный – доходчивый подход, когда постановка задачи на относительно высоком уровне формулировки позволяет выбрать шаблоны проектирования. Хотя вы можете комбинировать оба подхода.

Итак, поехали?
Читать дальше →
Total votes 6: ↑3 and ↓3+2
Comments8

Исповедь Битрикс хейтера

Reading time47 min
Views173K
Что-то много развелось в последнее время статей про минусы битрикса, и их опровержений. Раз уж пошла такая пьянка, то и я добавлю свои 5 копеек.
В комментариях к статьям писали, что не хватает конкретики, примеров, более глубокого обзора.

Данная статья — попытка этот обзор написать. Хотя нет, это скорее пост ненависти и боли (может даже немного нытья). Это такой расширенный вариант поста про минусы от pistol. Я постараюсь описать большинство тех вещей, которые раздражают именно меня и моих коллег в Битриксе. Постараюсь собрать в одном посте все те минусы, которые доставляют ежедневно очень много боли. Под конец я постараюсь сделать выводы.

Кто я такой? Да в общем-то, обычный разработчик. Работаю с битриксом с ноября 2010 года (5.5 лет). Работаю только с битриксом, не сделал ни одного коммерческого проекта на других CMS, не использовал фреймворки в создании сайтов. По роду деятельности я занимаюсь в основном интернет-магазинами, их созданием, поддержкой и развитием.
Читать дальше →
Total votes 122: ↑111 and ↓11+100
Comments180

Бэкдоры в наших смартфонах живут уже 20 лет. И это не последние подарки от государства

Reading time7 min
Views86K

Оборудование для фальшивой базовой станции 4G/LTE, источник

Иногда складывается впечатление, что основная угроза безопасности граждан исходит от государственных спецслужб. Эти не размениваются на мелочи. Их интересует взлом не с одного сайта, а всего трафика в интернете. Прослушка не отдельного человека, а сразу всех. Спецслужбы неоднократно пытались внедрить бэкдоры в алгоритмы публичной криптографии (см. генератор «случайных» чисел Dual EC DRBG с бэкдором АНБ). Прослушка произвольного гражданина в любой стране, на любом устройстве — голубая мечта «Большого брата».

Несколько лет назад вскрылись факты, что ЦРУ давно внедрилось в швейцарскую компанию Crypto AG, крупнейшего мирового производителя криптооборудования. Сейчас ФСБ навязывает российским гражданам отечественную криптографию, где тоже подозревают наличие бэкдора на уровне алгоритма.

Ещё одна интересная история — с алгоритмами шифрования GPRS, которые до сих пор поддерживаются в большинстве телефонов, включая Apple iPhone, Samsung Galaxy S9, Huawei P9 Lite, OnePlus 6T и многие другие.
Total votes 50: ↑46 and ↓4+62
Comments76

Как выдавать бесплатные SSL сертификаты с помощью certbot, Nginx и Docker

Level of difficultyMedium
Reading time5 min
Views26K

Всем привет! Одна из моих рутинных задач - это подъем новых проектов и микросервисов в облаках. Для этого практически всегда нужны домены и поддомены с наличием SSL сертификата. У меня выработался подход, с помощью которого я автоматизировал процесс выдачи сертификатов с помощью certbot. О чём и хочу рассказать.

Читать далее
Total votes 18: ↑15 and ↓3+12
Comments27

Телефония «дёшево и сердито»

Level of difficultyMedium
Reading time3 min
Views6.8K

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

Связь между двумя телефонами по схеме «точка-точка»

Самый простой вариант – связать напрямую два ip-телефона. Для того, чтобы все получилось, необходимо соблюдение всего лишь двух условий:

ip-телефон(ы) (либо FXS-шлюзы) должен поддерживать режим работы без регистрации. Эта особенность обычно обозначена в описании устройства или можно самому выяснить в документации.

оба устройства (ip-телефоны/шлюзы) должны находиться в одной сети или каким-либо другим образом «видеть» друг друга по ip-сети.

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

Дети лезут в сети: как обезопасить самых маленьких

Level of difficultyEasy
Reading time6 min
Views19K

Мои школьные годы пришлись на времена, когда всяческие наказания детей были если не нормой, то «пустяками, делом житейским». Обычно влетало за оценки и хулиганство, реже — за курение. И вот, в один из дней мы устроили в классе бойкот учителю по черчению и подписали созданную против него петицию (на секунду, повод был весомым: он пнул кошку и вышвырнул её за дверь). Через пару дней учителя заменили, а одна девочка с очень строгими родителями пришла в школу только спустя три дня. Оказалось, все эти дни она была заперта дома и много стояла в углу. Повод был сумасбродным: за то что оставила на петиции ФИО и подпись. С тех пор прошло почти 25 лет, и сегодня повод не кажется сумасбродным, а прозорливость отца девочки, учинившего наказание, впечатляет. 

День защиты персональных данных — время не только обсудить взрослые темы, но и поговорить о детях. Как-никак, это наши личные бреши в безопасности (причём не только кибер).

Читать далее
Total votes 39: ↑32 and ↓7+38
Comments100

SMTP как открытая дверь для фишинга. Популярный недостаток почтовых серверов и меры предосторожности

Level of difficultyEasy
Reading time7 min
Views7.4K

Описанное в данной статье имеет строго ознакомительный характер. Автор не несет ответственности за возможный ущерб при неправильном использовании представленной информации, а также за неправильное ее восприятие или трактовку. Цель статьи — повышение осведомленности в части информационной безопасности.

Немного вводной информации

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

Open Relay – SMTP сервер, поддерживающий соединения без авторизации от любого устройства для отправки электронной корреспонденции. Очевидно, что данный недостаток представляет собой серьезную угрозу для безопасности электронной почты и инфраструктуры в целом.

Более подробно об истории с открытым перенаправлением можно прочитать здесь - https://practical365.com/what-is-an-open-relay. Ну а мы двинемся дальше.

Общий подход к тестированию smtp

Порт 25/tcp является основным каналом связи для передачи электронной почты по протоколу SMTP. Небрежное отношение к конфигурации почтовых серверов делает систему уязвимой к различным видам деструктивного воздействия. Конечно же, у этого могут быть серьезные последствия, начиная от несанкционированной рассылки спама и заканчивая проведением таргетированных атак на инфраструктуру и компрометацией узла.

Обратившись к популярным методичкам по наступательной безопасности (например, Hacktricks - https://book.hacktricks.xyz/network-services-pentesting/pentesting-smtp), можно сделать вывод, что специалисты выделяют несколько контрольных точек:

Читать далее
Total votes 6: ↑1 and ↓5-4
Comments7

Сети для самых маленьких. Часть нулевая. Планирование

Reading time7 min
Views2.1M
Это первая статья из серии «Сети для самых маленьких». Мы с товарищем thegluck долго думали с чего начать: маршрутизация, VLAN'ы, настройка оборудования.
В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.

Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.

Схема сети

Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
Читать дальше →
Total votes 104: ↑100 and ↓4+96
Comments134

Information

Rating
Does not participate
Location
Оренбург, Оренбургская обл., Россия
Registered
Activity