Pull to refresh
-22
0
Send message

Пожалуйста, прекратите писать shell-скрипты

Reading time5 min
Views79K

Когда вы автоматизируете какую-либо задачу, например, упаковываете свое приложение для Docker, то часто сталкиваетесь с написанием shell-скриптов. У вас может быть bash-скрипт для управления процессом упаковки и другой скрипт в качестве точки входа в контейнер. По мере возрастающей сложности при упаковке меняется и ваш shell-скрипт.

Все работает хорошо.

И вот однажды shell-скрипт совершает что-то совсем неправильное.

Тогда вы осознаете свою ошибку: bash, и вообще shell-скрипты, в основном, по умолчанию не работают. Если с самого начала не проявить особую осторожность, любой shell-скрипт достигнув определенного уровня сложности почти гарантированно будет глючным... а доработка функций корректности будет довольно затруднительна.

Читать далее
Total votes 94: ↑70 and ↓24+68
Comments251

Экспериментальная разработка эксплойта для Use-After-Free

Reading time11 min
Views6.6K

Пошаговая реализация эксплойта для уязвимости CVE-2021-23134, включая описание используемых для этого инструментов. Это мой первый опыт разработки эксплойта для ядра – так что здесь вы вполне можете заметить некоторые ошибки, за которые я заранее извиняюсь.
Читать дальше →
Total votes 26: ↑25 and ↓1+40
Comments1

Реальный Windows. Пишем realtime под окошками

Reading time11 min
Views15K

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

Читать далее
Total votes 69: ↑68 and ↓1+79
Comments142

Детройт: как мировая моторная столица дошла до банкротства

Reading time19 min
Views67K
Слева район Highland Park, территория штата Мичиган, справа – территория Детройта. Источник: Johnny Miller

Мировая моторная столица (Motown), родина американского среднего класса, арсенал демократии — как только не называли Детройт на пике могущества в 1950-е гг., когда его население достигло 1,85 млн человек. Сегодня же оно едва дотягивает до 640 тыс. и продолжает сокращаться. Что произошло? Однозначного ответа нет, но причин одновременно несколько. Здесь и расовое противостояние, ошибки городского планирования, большая политика, ослабление конкурентоспособности американских автоконцернов, их бегство из-за роста социальной нагрузки после победы профсоюзов. Да и много ещё чего, что в комплексе привело в 2013 г. к крупнейшему в истории США муниципальному банкротству.

Но обо всём по порядку.
Читать дальше →
Total votes 148: ↑144 and ↓4+181
Comments488

Разбираемся в особенностях строения мозга врановых

Reading time4 min
Views23K

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

Проблема заключалась в следующем: поскольку исследования психики базировались в первую очередь на матчасти хомосапиенсов (по очевидным причинам), во вторую на приматах (как близких родственниках), а в третью – на млекопитающих в целом, долгое время самоочевидной вещью считался тот факт, что за ВНД отвечает неокортекс. Нет неокортекса – нет ВНД. А поскольку неокортекс отсутствует у птиц как явление, вопрос птичьего интеллекта закрыли, толком не открыв. Архитектура ЦП не позволяет. Точка.

Читать далее
Total votes 106: ↑99 and ↓7+116
Comments90

Как я потеряла 1 миллион рублей на Wildberries из-за своей ошибки

Reading time8 min
Views102K
Вспоминать до сих пор страшно. У меня волосы просто на всех местах седели. У нас есть гель для ультразвуковой чистки и лосьон для ультразвуковой чистки. УЗ-чистка лица — это популярная аппаратная методика очищения кожи, когда звуковой волной отшелушиваются ороговевшие частицы эпидермиса, что убирает тусклый цвет кожи. Средства для аппаратной косметологии очень требовательны к стабильности среды и ещё куче параметров, и у нас это одни из самых популярных продуктов. Так вот, у них одинаковые красные этикетки.

По требованию WB каждый флакон в дополнение к заводской упаковке заворачивается на нашем складе в пупырчатую плёнку. Для этого склад вскрывает коробки, доупаковывает флаконы, затем клеит на пупырку штрихкод WB, и он не связан со штрихкодом флакона. Затем снова собирает коробки. Вот на этой стадии кладовщик перепутал штрихкоды.



Дальше эта партия ушла на Wildberries.

Отозвать товар из маркетплейса обычно очень дорого, часто проще заказать утилизацию. Но нас ни то, ни другое не устраивало по цене, поэтому мы придумали поставить на свой же товар максимальную скидку 90 % и выкупить всё самим через розничный интерфейс. Речь шла примерно про 1 500 флаконов.

Единственное, чего мы не учли, — это алгоритмов маркетплейса, где сразу поняли, что этот товар надо мгновенно отрекомендовать максимальному количеству людей.
Читать дальше →
Total votes 155: ↑133 and ↓22+150
Comments214

Спуфинг подкрался незаметно, хоть виден был издалека

Reading time4 min
Views28K
image

Спутниковые системы навигации (ГНСС) решают две задачи — определение пространственных координат и синхронизация времени. И не очевидно, какая из них является более важной. Если подделку координат можно обнаружить своими глазами, то подделку времени, не имея собственных атомных часов, заметить непросто.

То, что GPS уязвим перед спуфингом, было очевидно всем и давно. Но лет 15 назад считалось, что для проведения такой атаки требуется очень дорогое железо, например симуляторы Spirent стоимостью более $100 000. Появление «любительских» SDR за 100$ все поменяло. Теперь стоимость атаки упала до стоимости дешевого HackRF One. На GitHub 680 форков для генерации сигналов GPS. На youtube полно инструкций как запустить свой спуфер (даже запустить с помощью USB to VGA адаптера за $5).
Читать дальше →
Total votes 29: ↑22 and ↓7+24
Comments51

Как украсть деньги с бесконтактной карты и Apple Pay

Reading time24 min
Views271K
Как украсть деньги с бесконтактной карты из кармана? Насколько безопасен PayPass и Apple Pay?

В статье разбираются популярные мифы и сценарии мошенничества с бесконтактными системами оплаты на примере настоящего POS-терминала, карт PayPass/payWave и телефонов с функцией Google Pay/Apple Pay.

Рассматриваемые темы:

  • Можно ли НА САМОМ ДЕЛЕ украсть деньги, прислонившись POS-терминалом к карману? — мы попытаемся полностью воспроизвести этот сценарий мошенничества от начала до конца, с использованием настоящего POS-терминала и платежных карт в реальных условиях.
  • В чем разница между физическими и виртуальными картами Apple Pay? — как происходит связывание физической карты и токена Apple Pay, и почему Apple Pay во много раз безопаснее обычной карты.
  • Используем аппаратный NFC-сниффер (ISO 14443A) — воспользуемся устройством HydraNFC для перехвата данных между POS-терминалом и картой. Рассмотрим, какие конфиденциальные данные можно извлечь из перехваченного трафика.
  • Разбираем протокол EMV — какими данными обменивается карта с POS-терминалом, используемый формат запросов, механизмы защиты от мошенничества и replay-атак.
  • Исследуем операции без карты (CNP, MO/TO) — в каких случаях на самом деле(!) можно украсть деньги с карты, имея только реквизиты, считанные бесконтактно, а в каких нельзя.

Внимание!

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

Материалы в статье представлены исключительно в ознакомительных целях. Все сцены демонстрации мошенничества инсценированы и выполнены с согласия участвующих в них лиц. Все списанные деньги с карт были возвращены их владельцам. Воровство денег с карт является уголовным преступлением и преследуется по закону.
Total votes 329: ↑323 and ↓6+317
Comments394

Оформляем README-файл профиля на GitHub

Reading time14 min
Views208K

Летом 2020 года GitHub позволила пользователям создавать персональные README-файлы и с их помощью кастомизировать свои профили. Сама платформа при создании подобного файла предлагает уже готовый шаблон, в который можно вписать свои данные. Но о какой кастомизации может идти речь, если у всех будут одинаково оформленные профили? За почти два года сообщество придумало множество различных способов выделиться и особенно оформить свою страницу на GitHub.

Читать далее
Total votes 62: ↑60 and ↓2+73
Comments25

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

Reading time15 min
Views22K

Попытаемся сделать зарядник 300 Вт с КПД 99% из тех деталей которые еще остались в стоках интернет-продавцов. Продумаем архитектуру. Cоздадим схему. Проведем симуляцию в LTSpice и Microcap. Научимся технологии оптимизации в симуляторе. Найдем применение методу Monte Carlo. Посмотрим на трассировку. Попробуем сравнительно новую фишку Altium Designer - PDN Analyzer.

Читать далее
Total votes 76: ↑75 and ↓1+96
Comments69

Swift. Class && Struct (классы и структуры) ч.1

Reading time14 min
Views13K

Обычно, в учебных пособиях, книгах и прочих источниках информации, class'ы объясняют примерно так «class это - описание объекта, а объект это экземпляр класса и бла бла бла», в принципе, это частично отражает суть конструкции, но называть class в рамках языка Swift, описанием объекта, будет не совсем корректно т.к. он же еще и представляет собой тип данных и вообще можно использовать классы как независимые, самодостаточные сущности, которые не требуют инициализации. Поэтому начинать со слов «Возьмем объект животного, пускай это будет кот...» я конечно же не буде. И вообще, давайте не будем о "сложном" т.к. материал рассчитан все же на новичков, а новички могут и не знать, что такое, эти ваши объекты и инициализации. В общем я считаю подобное (я про формулировку) не достаточно информативным, поэтому будем разбирать все на примерах с переходом от простого к более сложному. Попутно к ознакомлению с классами, мы будем так же рассматривать и другие возможности языка, но обо всем по порядку.

Наслаждаться чтивом
Total votes 4: ↑4 and ↓0+4
Comments6

Big O нотация в Swift

Reading time3 min
Views13K

Данная статья поможет начинающим iOS разработчикам разобраться в производительности алгоритмов в Swift.

Обозначение Big O нотация (или просто Big O) — это способ оценки относительной производительности структуры данных или алгоритма, обычно по двум осям: времени и пространству.

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

Оптимизация рендера в iOS: frame buffer, Render Server, FPS, CPU vs GPU

Reading time8 min
Views19K

Render Loop крутится — кадры мутятся

Доброго времени суток, уважаемые читатели. Здесь я начинаю свой цикл статей о работе с графикой в iOS.

В моих планах разобраться с работой базовых механик отрисовки и углубиться к таким вещам как AVFoundation, Metal.

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

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

Простой интерактивный поп-ап для iOS — туториал по SwiftUI

Reading time5 min
Views5.5K

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

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

Моя первая NFT-коллекция на Solidity + Hardhat — «Сизифов Труд»

Reading time6 min
Views27K

На момент написания статьи я работаю Frontend-разработчиком в VK (Delivery Club) на Vue и плавно перехожу на iOS-разработку. Уже около 4 лет считаю себя поверхностно приближенным к сфере крипты: участвовал в разработке P2P-платформы (BTC-обменника), изучал основы и идеологию, инвестировал, терял деньги на фьючерсах — все, как надо.

Однажды, по интернету стала расходиться новость о том, что 12-летний мальчик заработал ~$350,000 на коллекции программно-сгенерированных китов, состоящей из 3350 уникальных айтемов.

Так мне пришла мысль внести свою лепту. К тому же, как показывает практика, это потенциальный способ заработка в наше время :)

Читать далее
Total votes 32: ↑28 and ↓4+28
Comments50

Почему вообще ломаются импланты (и почему именно они такие дорогие)

Reading time9 min
Views21K

Так выглядит подготовка к имплантации, проектируем поверх модели конкретного пациента.

Имплант сам по себе очень и очень дешёвый. Это просто металлическая трубка, снаружи у неё — резьба для крепления внутри кости, а внутри — резьба для крепления коронки. По сути, это слот для искусственного зуба или другой конструкции. В целом крепить можно и на правильно забитый кусок канцелярской скрепки, но тогда риски неоправданно увеличатся. Дорогим имплант делают технология изготовления этой самой трубки, которая становится прочнее, инструментарий для установки в комплекте и набор запчастей. Потому что импланты надо поддерживать 30–40 лет, потому что обычно даётся пожизненная гарантия. Попробуйте представить проект с такой гарантией и поддержкой, и вы примерно поймёте, как формируется цена на железку. Остальное — операция, то есть примерно квадратичное увеличение цены за каждый уменьшенный процент серьёзных осложнений за счёт квалификации хирурга и используемого оборудования.

Мы принципиально не используем импланты noname включая всех российских производителей. До наработки ими имени осталось лет так 5–10 по разным оценкам. Сломаться, конечно, может любой, но у производителей с репутацией это случается сильно реже. Но всё равно есть шансы через пять, семь или даже 30 лет после остеоинтеграции получить поломку, особенно если вам под видом обычного хорошего импланта поставили «пиратский».
Читать дальше →
Total votes 39: ↑35 and ↓4+38
Comments24

Как инженеру выбрать работу

Reading time18 min
Views14K

Даже на текущем рынке кандидата, каждая смена работы — это серьезное решение, инвестиция нескольких лет жизни или — неприятная строчка в резюме, причина для неудобных вопросов вроде «А почему вы ушли из компании X, проработав там немногим более года?».

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

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

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

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

Читать далее
Total votes 27: ↑26 and ↓1+29
Comments23

Лазерный станок: Россия vs Китай

Reading time9 min
Views13K

В наши дни благодаря интернету можно найти любое лазерное оборудование для бизнеса. Привлекательная рекламная картинка заманивает потенциального покупателя на сайт, но всегда ли грамотный маркетинг и хорошие отзывы гарантируют, что товар точно подойдет вам?  Дорого = качественно? Дёшево = плохо? На что же обращать внимание при выборе лазерного станка? Давайте разберемся.

Читать далее
Total votes 14: ↑10 and ↓4+13
Comments54

Постоянный ток в доме. Риски, которые никто не замечает

Reading time5 min
Views96K

Постоянный ток с каждым днём завоёвывает всё новые рубежи в каждом доме. К кому то он приходит со светодиодными лентами, кому то с DIY и Arduino. Время идёт, и вот уже вчерашние любители без страха и упрёка начинают делать мощные аккумуляторные сборки и запитывать бытовую технику напрямую от солнечных панелей. За кадром остаётся главный нюанс - безопасности. Ведь токи и напряжения выросли вместе с игрушками, а о последствиях почти никто не задумывается.

Читать далее
Total votes 148: ↑140 and ↓8+179
Comments545

Как своими руками сделать WiFi камеру слежения (ESP32-CAM)

Reading time6 min
Views88K

К старту курса по разработке на С++ рассказываем, как самостоятельно собрать IP-камеру с обнаружением движения. За подробностями приглашаем под кат, где вы найдёте много фотографий и видео на Youtube-канале автора, за которым наблюдают более 30 000 человек.

Читать далее
Total votes 14: ↑10 and ↓4+8
Comments35
1
23 ...

Information

Rating
Does not participate
Registered
Activity