Search
Write a publication
Pull to refresh
17
0
Айван @AivanF

Программный Инженер, Разработчик, Аналитик

Send message

Законы программирования

Reading time20 min
Views60K

Законы, теории, принципы и закономерности, полезные для разработчиков


Введение


Перевод репозитория github.com/dwmkerr/hacker-laws

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

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

Законы


Закон Амдала


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

Инфографика средствами Excel и PowerPoint

Reading time16 min
Views40K
«Какой толк в книге, — подумала Алиса, — если в ней нет ни картинок, ни разговоров?»
Льюис Кэрролл, «Алиса в Стране чудес»

Всем привет!

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

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

Я работаю преподавателем и руководителем группы разработки учебных материалов в учебном центре «Сетевая Академия ЛАНИТ» более 10 лет и, когда провожу разработанный нами курс по инфографике, то обычно начинаю так: «Наш курс не для дизайнеров, а для тех сотрудников, которым нужно научиться правильно применять доступные средства для быстрого и качественного представления данных».

И в статье будет не про космические корабли, бороздящие просторы вселенной, а про кастрюли…

Источник
Читать дальше →

IT-эмиграция в Новую Зеландию

Reading time6 min
Views68K

Это очередная статья про IT-эмиграцию, но про Новую Зеландию пока информации не было.


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


Почему стоит здесь жить


Типичная Новая Зеландия

Читать дальше →

Packer, Terraform и Ansible: деплой кластера Kubernetes за час

Reading time16 min
Views24K


Привет, меня зовут Андрей Щукин, я помогаю крупным компаниям мигрировать сервисы и системы в Облако КРОК. Вместе с коллегами из компании Southbridge, которая проводит в учебном центре «Слёрм» курсы по Kubernetes, мы недавно провели вебинар для наших заказчиков.

Я решил взять материалы отличной лекции Павла Селиванова и написать пост для тех, кто ещё только начинает работать с инструментами provisioning’а облаков и не знает, с чего начать. Поэтому я расскажу про стек технологий, которые используются у нас в обучении и продакшене Облака КРОК. Поговорим о современных подходах к управлению инфраструктурой, про связку компонентов Packer, Terraform и Ansible, а также про инструмент Kubeadm, с помощью которого мы будем производить установку.

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

Не давайте имён курам
Печёные пирожки полезнее жареных
Начинаем печь. Packer
Terraform — инфраструктура как код
Запуск Terraform
Структура кластера Kubernetes
Kubeadm
Репозиторий со всеми файлами
Читать дальше →

Машинное обучение в Unity: учим МО-агентов перепрыгивать через стены

Reading time5 min
Views19K
За последние несколько лет в обучении с подкреплением (reinforcement learning, RL) произошли серьезные прорывы: от первого успешного его использования в обучении по сырым пикселям до обучения Open AI роборуки, ― и для дальнейшего прогресса становятся необходимы все более сложные среды, в чем на помощь приходит Unity.

Инструмент Unity ML-Agents ― это новый плагин в игровом движке Unity, позволяющий использовать Unity как конструктор среды для обучения МО-агентов.

От игры в футбол до ходьбы, прыжков со стен и обучения ИИ собаки игре с палкой, Unity ML-Agents Toolkit предоставляет широкий спектр условий для тренировки агентов.

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

image

Читать дальше →

Как я заработал 1 000 000 $ без опыта и связей, а потом потратил их, чтобы сделать свой переводчик

Reading time20 min
Views137K

Как все начиналось


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

Когда у меня в очередной раз закончились деньги, наступил кризис. Я не смог найти работу, ситуация стала критической. Пришло время посмотреть на все вещи трезвым взглядом. Нужно было честно признаться себе, что я не знаю, какие ниши выбрать для бизнеса. Создавать проекты, которые просто нравятся, — путь в никуда.
Читать дальше →

Захват всех доменов .io с помощью таргетированной регистрации

Reading time7 min
Views16K
В предыдущей статье мы обсуждали захват доменных расширений .na, .co.ao и .it.ao разными хитростями с DNS. Сейчас рассмотрим угрозу компрометации домена верхнего уровня (TLD) и как нужно действовать злоумышленнику, чтобы достичь поставленной цели. Одним из довольно простых методов видится регистрация доменного имени одного из авторитативных серверов имён этой TLD. Поскольку в TLD авторитативные серверы могут размещаться на произвольных доменах, то есть вероятность зарегистрировать такой домен, воспользовавшись ошибкой из-за неправильной конфигурации, истечения срока действия или других ошибок. Затем этот сервер можно использовать для выдачи новых DNS-записей в целой доменной зоне.

Приведу здесь соответствующую цитату из предыдущей статьи:

Такой вариант казался верной дорогой к победе, так что я потратил много времени на разработку инструментария для проверки ошибок этого типа. По сути, этот процесс состоит в записи всех хостов серверов имён для данного домена — и проверке, когда истечёт срок регистрации какого-нибудь из корневых доменов и он станет доступен для регистрации. Основная проблема в том, что многие регистраторы не говорят, что домен полностью свободен, пока вы реально не попробуете его купить. Кроме того, было несколько случаев, когда у сервера заканчивался срок регистрации, но по какой-то причине домен был недоступен для регистрации, хотя не был помечен как зарезервированный. В результате такого сканирования удалось зафиксировать много перехватов доменов в закрытых зонах (.gov, .edu, .int и др.), но не самих TLD.

Как выяснилось, такой способ не только подходит для атаки TLD, но в реальности привёл к крупнейшему захвату TLD на сегодняшний день.
Читать дальше →

Что не так с Raspberry Pi

Reading time8 min
Views193K


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

Постараюсь рассказать о некоторых вопросах, с которыми я столкнулся лично, а также о некоторых типичных проблемах, которые чаще всего появятся у людей, ничего не подозревающих об этом. И, наконец, почему я не рекомендую Pi для некоторых приложений, в частности, NAS-услуг, таких как NextCloudPi и Open Media Vault. Надеюсь, это сэкономит мне время, чтобы не повторять всё это на форумах.
Читать дальше →

Монады как паттерн переиспользования кода

Reading time24 min
Views75K


В предыдущей статье мы обсуждали, почему функциональное программирование это совсем не то, что распиарено, и что оно совершенно не противоречит ООП, так, что даже сам "Дядя Боб" пишет про хороший ФП дизайн порождающий хороший ООП дизайн программы (и наоборот).


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


Но ведь в интернете буквально сотни статей про ФП и монады, зачем писать еще одну?


Дело в том, что все их (по крайней мере те что я читал) можно поделить условно на две категории: с одной стороны это статьи где вам объяснят что монада это моноид в категории эндофункторов, и что если монада T над неким топосом имеет правый сопряжённый, то категория T-алгебр над этой монадой — топос. На другой стороне располагаются статьи, где вам рассказывают, что монады — это коробки, в которых живут собачки, кошечки, и вот они из одних коробок перепрыгивают в другие, размножаются, исчезают… В итоге за горой аналогий понять что-то содержательное решительно невозможно.


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


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

Читать дальше →

Хельсинки: город счастья и уюта

Reading time8 min
Views55K


Финляндия — это Нокия, сауны, хоккей, лыжи, тяжёлый металл, Angry Birds. И ещё самые счастливые люди на планете на 2018 по WHR (это, скорее, экономические показатели, чем желание радостно смотреть ковёр всё время).

Краткая история: сначала была просто земля с местными народами, потом территория вошла в состав Швеции надолго, в 1809 году перешла в состав Российской Империи (но получила нехилую независимость, даже собственная марка ходила), а сразу после прихода большевиков ко власти стала отдельной страной с разрешения Ленина. То есть жители некогда части Империи пропустили весь сюжет с девяностыми и с СССР. Точнее, видели часть его в перекрестье снайперского прицела во время войн 39-44 годов.

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

Начнём с того, что это самый безопасный город мира на случай ядерной войны. Потому что лет 60 назад тут начали с азартом копать туннели и выкопали почти второй подземный город в скале.
Читать дальше →

(Почти) Автогенерация цветов

Reading time2 min
Views3K
Приближалось восьмое марта, у меня была реализация автоматизированной отрисовки поверхностей сплайнами — почему бы не написать статью с цветами.

Получилось примерно так:



Под катом будет еще, берегите трафик.
Читать дальше →

Почему Мистер Робот — лучший сериал про IT-индустрию

Reading time12 min
Views126K
Доброго времени суток, уважаемые читатели Хабра!

23 декабря 2019 года в свет вышла заключительная серия одного из самых популярных сериалов про IT — Мистер Робот. Посмотрев сериал до конца, я твёрдо решил написать статью о сериале на Хабре. Выход этой статьи приурочен к моему юбилею на портале. Моя первая статья появилась ровно 2 года назад.

Disclaimer


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

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

Что же, давайте приступим к разбору сериала.
Осторожно! Спойлеры.


Читать дальше →

Когда я слышу слова «нейросеть восстановила», я лезу проверять бэкапы

Reading time11 min
Views83K
Кроме того что я айтишник, я ещё и историк техники, и именно этим обусловлена моя реакция на новости об очередных достижениях в области цифровых технологий. Месяц назад я принял решение начать писать книжку для людей далёких от IT и близких к историческим исследованиям и источникам («Цифровое источниковедение — специфические проблемы» — пишется на сайтах книжных черновиков ), в которой расскажу им о том, чем для них обернулось развитие цифровых технологий.

Через пару дней после этого по интернету пронеслась новость « «Прибытие поезда» улучшили с помощью нейросетей — фильм 1896 года теперь можно посмотреть в 4K и 60 кадрах в секунду », и это хороший повод рассказать айтишникам о том же самом.

Исходного фильма «Прибытие поезда» у меня нет, поэтому в качестве тестовых образцов я использовал современные фотографии (уменьшенные или обесцвеченные) + фото из 1930-х (предположительно)

Когда я слышу слова «нейросеть восстановила», я лезу проверять бэкапы
Читать дальше →

Ламповая катушка Теслы

Reading time11 min
Views32K
Хомяки приветствуют вас, друзья.

Сегодняшний пост будет посвящен высокому напряжению. Ламповый трансформатор Тесла является самой тихой конструкцией из всех существующих вариантов. Тут, в качестве генератора высокочастотных колебаний используется мощный пентод ГК-71, благодаря которому можно получать красивые, достаточно длинные разряды в воздухе. В ходе данной работы рассмотрим основные элементы конструкции, узнаем секреты по настройки схемы и визуализируем сигнал с высоковольтной обмотки на экран советского осциллографа. Дальнейшая работа будет заключаться в компактном размещении всех элементов в одном корпусе. В общем всё как вы любите. Простота, надежность и небольшая стоимость делает данную катушку доступной каждому, кто захочет её собрать.



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

Пушка Гаусса

Reading time7 min
Views101K
Хомяки приветствуют обитателей третьей от солнца планеты.

Сегодняшний пост пойдет о создании электромагнитной Пушки Гаусса. В процессе разберем как настроить систему и произведём некоторые расчеты по эффективности. Так как это пушка, выглядеть она должна соответственно. Нарисуем будущий эскиз, а затем попробуем воплотить его в жизнь, собрав корпус из подручного мебельного материала. Снаряды сделаем бронебойные, из гвоздей. Для сравнения проверим на пробиваемость пневматический пистолет и узнаем, какая пуля таит в себе наибольший потенциал.



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

Скорострельность такого устройства зависит от мощности преобразователя. Чем он будет мощней, тем быстрей сможет заряжать сборку конденсаторов.
Читать дальше →

Полный кошмар: USB-C и Thunderbolt 3

Reading time7 min
Views379K
Купили ли вы уже себе новый MacBook или MacBook Pro? А может, Google Pixel? Вы находитесь на пороге путаницы, благодаря этим новым портам «USB-C». Этот простецкий на вид порт таит в себе вселенскую путаницу, и благословенная обратная совместимость использует различные кабели для различных задач. Покупателям придётся очень аккуратно выбирать себе кабель!



USB Type-C: порты и протоколы


Порты USB Type-C распространились достаточно широко, Google начал использовать их на своих компьютерах и телефонах Pixel и Nexus, Apple применяет их на 12" MacBook, а теперь ещё и на новых MacBook Pro. Это физическая спецификация для 24-контактного двустороннего штекера и соответствующих кабелей. В этой статье я буду называть этот физический кабель и порт «USB-C», как наиболее часто используемый термин. Google сообщает, что этот порт называют «USB-C» 21 миллион раз, «USB C» 12 миллионов раз, а правильно, «USB Type-C», всего 8,5 миллионов раз.
Читать дальше →

Как в ЦРУ десятилетиями читали зашифрованную переписку союзников и противников

Reading time33 min
Views79K

Более полувека правительства всех стран доверяли единственной компании сокрытие переписки, которую вели их шпионы, солдаты и дипломаты




Эта компания, Crypto AG, первого своего успеха добилась, заключив во время Второй Мировой войны контракт на создание кодирующих машин для пехоты армии США. Как следует заработав на этом, она на десятилетия стала доминирующим производителем шифровального оборудования, и шла на переднем крае технологий, переходя от механических шестерней к электронным схемам, и, наконец, к кремниевым чипам и программному обеспечению.

Эта швейцарская фирма заработала миллионы долларов, продавая оборудование в более чем 120 стран, не только в XX, но и в XXI веке. Среди её клиентов были правительство Ирана, военные хунты Латинской Америки, обладатели ядерного оружия и соперники Индия и Пакистан, и даже Ватикан.

Однако все эти клиенты не подозревали, что ЦРУ в рамках совершенно секретного партнёрства с западногерманской разведкой тайно владела Crypto. Эти разведывательные агентства подправляли устройства компании так, что легко могли взламывать коды, используемые странами для обмена зашифрованными сообщениями.

И теперь этот договор, длившийся несколько десятилетий, вместе с другими тщательно охраняемыми секретами Холодной войны, принадлежавшими обширной истории операций ЦРУ, был раскрыт благодаря материалам, полученным газетой The Washington Post и немецким СМИ ZDF.

Заметки о жизни в США

Reading time12 min
Views136K

image


Недавно в корпоративном блоге Parallels выходила статья, где приводились размеры оплаты труда разработчиков на западе со словами "в любом случае российские зарплаты пока не дотягивают до европейских". Частое столкновение с тем, как люди очень выборочно сравнивают условия жизни поросенка Петра и тех, кто не уехал, побудили поделиться некоторыми наблюдениями о жизни в США изнутри. Цель данного поста — подтолкнуть подходить к вопросу комплексно и делать сравнение яблок с яблоками, а не точечно сравнивать то, что выгодно, и закрывать глаза на остальные важные аспекты. Если вам покажется, что в данной статье есть иные подтексты — прошу списать это на то, что "чукча — не писатель" и по возможности игнорировать их.

Читать дальше →

Разбираем идеальный кейс фишинга при аренде квартиры

Reading time5 min
Views46K
Недавно я стал жертвой (к счастью, неудачной) фишинговой атаки. Несколько недель назад я бродил по сайтам Craigslist и Zillow: я хотел арендовать жилье в районе залива Сан-Франциско.
Мое внимание привлекли симпатичные фото одного местечка, и мне захотелось связаться с арендодателями и узнать о нем поподробнее. Несмотря на мой опыт в качестве специалиста по безопасности, я не понимал, что со мной общаются мошенники, вплоть до третьего письма! Ниже я подробно расскажу разберу кейс вместе со скриншотами и тревожными звоночками.

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



Читать дальше →

Как правильно раздавать котят

Reading time1 min
Views97K

Раздача котят по DHCP


  1. Привязать к котёнку поводок
  2. Запустить котёнка в толпу
  3. Когда хозяин будет найден, он сам отвяжет котёнка от поводка.

Раздача котят по HTTPS


— Вам нужен котёнок?
— А у него есть родословная и сертификат о прививках?
— Есть, вот, смотрите. А у вас паспорт, кстати, не просрочен?
— Нет, он просто молдавский. А это точно котёнок?
— А что?
— А почему у него в родословной немецкая овчарка?

Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity