Как стать автором
Обновить
-10
0.1
Копилов Александр @Kopilov

Аналитик-разработчик

Отправить сообщение

Wireshark для всех. Лайфхаки на каждый день

Время на прочтение7 мин
Количество просмотров106K

Пакет с сертификатами от Хабра

Wireshark — очень известная программа для захвата и анализа сетевого трафика, незаменимый инструмент хакера, сетевого инженера, программиста, специалиста по безопасности. Да вообще любого любознательного человека, который хочет детально изучить трафик со своего или чужого мобильного телефона, фитнес-браслета, телевизора.
Читать дальше →
Всего голосов 44: ↑42 и ↓2+52
Комментарии16

Антипаттерны деплоя в Kubernetes. Часть 2

Время на прочтение7 мин
Количество просмотров8K

Перед вами вторая часть руководства по антипаттернам деплоя в Kubernetes.

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

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

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

Читать далее
Всего голосов 12: ↑11 и ↓1+12
Комментарии4

Как я монетизировал гнездо аистов

Время на прочтение6 мин
Количество просмотров31K

Аисты жили в нашей деревне давно. Пока работал, было не до них, но всегда хотелось посмотреть на их жизнь сверху.

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

Читать далее
Всего голосов 178: ↑177 и ↓1+243
Комментарии73

Разукрашиваем вывод в консоли: теория и практика

Время на прочтение5 мин
Количество просмотров68K


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

Читать дальше →
Всего голосов 32: ↑31 и ↓1+40
Комментарии20

Рейтинг лучших бесплатных программ для 3D-моделирования (для начинающих) на весну 2021 года

Время на прочтение8 мин
Количество просмотров169K

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

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

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

Читать далее
Всего голосов 15: ↑12 и ↓3+17
Комментарии26

Почему следует избегать использования JPA/Hibernate в продакшене

Время на прочтение11 мин
Количество просмотров33K

JPA безусловно самая распространённая технология работы с базами данных на платформе Java. Но она же и наименее пригодна для разработки быстрых и поддерживаемых систем. В этой статье я расскажу почему JPA лучше не использовать в продакшене и что можно использовать вместо неё.

Читать далее
Всего голосов 25: ↑19 и ↓6+16
Комментарии32

Что не так с вашей консольной программой?

Время на прочтение9 мин
Количество просмотров11K

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

Но как часто мы обсуждаем наши повседневные инструменты с точки зрения читабельности, хотя пишем под web и каждый день используем консольные утилиты? Сегодня Андрей Светлов расскажет, что со всем этим делать, и чем он пользуется для консолей. Помимо того, что Андрей  CPython Core developer и понемногу развивает Python, в свободное от работы время он эксперт по asyncio, со-автор aiohttp, yarl, multidict и прочим популярным библиотекам.

Читать далее
Всего голосов 39: ↑34 и ↓5+39
Комментарии18

Трудности и «глюки», возникающие у новичков в программе Blender, и как их преодолеть

Время на прочтение3 мин
Количество просмотров67K

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

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии13

Собеседование на позицию Data Scientist: 20 типичных вопросов

Время на прочтение7 мин
Количество просмотров51K

Проверка знаний на собеседованиях — обычная практика. И мы сейчас не о глупых «Где вы видите себя через 5 лет?», а о нормальных вопросах по специальности. Специально к старту нового потока курса Data Scientist, в этой статье мы собрали топ-20 вопросов, которые задают дата-сайентистам, чтобы проверить их уровень знаний. Все это реальные вопросы на реальных собеседованиях в российских компаниях. Но нас попросили не упоминать названия, чтобы не давать соискателям лишнего преимущества. Некоторые вопросы простые, другие — посложнее. Не будем затягивать, поехали.

Читать далее
Всего голосов 13: ↑10 и ↓3+10
Комментарии4

Персональный интернет-архив без боли

Время на прочтение4 мин
Количество просмотров15K


Каждый веб-разработчик, да и многие пользователи рано или поздно сталкиваются с Internet Archive и необходимостью сохранить или восстановить вид важного им сайта в определённое время. С каждым годом всё очевиднее, что поговорка «интернет помнит всё» ошибочна — форумы закрываются, старые сайты тихо исчезают, информация пропадает без следа (вот хорошая статья по теме). При этом пока не существует общепринятого способа на лету сохранять важный контент без лишних телодвижений (представьте, что будет с серверами archive.org, если, скажем, в следующем обновлении Chrome будет при загрузке страницы отправлять адрес на архивацию). Спасение утопающих — дело рук самих утопающих, поэтому в этой статье мы разберём инструмент, позволяющий не просто сохранять нужные сайты, но и встраивать этот процесс в повседневную работу.
Всего голосов 34: ↑34 и ↓0+34
Комментарии2

Julia+R: преимущества интеграции

Время на прочтение9 мин
Количество просмотров3K

R – стабильный, удобный, имеет прекрасную экосистему. Один из признанных лидеров в области анализа и визуализации данных и, наверное, лучший инструмент для статистических исследований. Julia тоже удобна, весьма стройна и при этом ещё и быстра. Она ещё очень молода, не имеет такого количества пакетов и пользователей, но скорость работы впечатляет. Особенно по сравнению с R. Оба языка активно используются для анализа данных и машинного обучения. Что же выбрать?

И обязательно ли что-то выбирать?
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

NVMe Namespaces: возможности и подводные камни

Время на прочтение14 мин
Количество просмотров26K

Уверен, многие слышали про NVM Express, или просто NVMe. Изначально для меня это были просто быстрые диски. Потом я осознал, что это интерфейс для подключения этих дисков. Затем стал понимать NVMe как протокол для передачи данных по PCIe-шине. И не просто протокол, а протокол, разработанный специально для твердотельных накопителей!

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

Так что же такое NVMe? Рассмотрим подробнее.
Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Комментарии40

Как подключить содержимое любых файлов для использования в коде C / C++

Время на прочтение5 мин
Количество просмотров24K

Задача состояла в подключении файлов: HTML, JS, CSS; без специальной подготовки. Так же неудобно подключать бинарные файлы (например картинки) конвертируя их в HEX. Так как не хотелось конвертировать в HEX или разделять на строки, искал способ подключения файла в адресное пространство программы.

Читать дальше →
Всего голосов 58: ↑57 и ↓1+82
Комментарии33

Project Loom: Современная маcштабируемая многопоточность для платформы Java

Время на прочтение27 мин
Количество просмотров26K


Эффективное использование многочисленных ядер современных процессоров — сложная, но всё более важная задача. Java была одним из первых языков программирования со встроенной поддержкой concurrency. Ее concurrency-модель, основанная на нативных тредах, хорошо масштабируется для тысяч параллельно выполняющихся стримов, но оказывается слишком тяжеловесной для современного реактивного программирования с сотнями тысяч параллельных потоков.


Ответ на эту проблему — Project Loom. Он определяет и реализует в Java новые легковесные параллельные примитивы.


Алан Бейтман, руководитель проекта OpenJDK Core Libraries Project, потратил большую часть последних лет на проектирование Loom таким образом, чтобы он естественно и органично вписывался в богатый набор существующих библиотек Java и парадигм программирования. Об этом он и рассказал на Joker 2020. Под катом — запись с английскими и русскими субтитрами и перевод его доклада.

Всего голосов 33: ↑33 и ↓0+33
Комментарии32

Кроссплатформенный мультиплеер на Godot без боли

Время на прочтение8 мин
Количество просмотров12K

Недавно я начала заниматься разработкой игр на Godot и столкнулась с проблемой - мне понадобилась возможность реализовать мультиплеер с независимым сервером, при этом ещё и с возможностью игры из браузера. В Godot уже есть разные варианты реализации мультиплеера - но для ускорения разработки и во избежание ошибок при ручной сериализации/десериализации я решила попробовать связать клиент на Godot и сервер на Kotlin через вебсокеты и описывать их взаимодействие в формате protobuf.

Всех, кому интересна эта тема, прошу под кат.

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

Управление несколькими JDK в Mac OS, Linux и Windows WSL2

Время на прочтение4 мин
Количество просмотров19K
И снова здравствуйте. В преддверии старта курса «Разработчик Java» подготовили для вас перевод интересной статьи.





Если вам, как и мне, приходится одновременно работать с несколькими проектами (как с легаси, так и с современными), а возможно, вы разрабатываете какую-то библиотеку или утилиту для пользователей с разными версиями Java, то вы поймете проблему с переключением между разными JDK.



В наши дни установка, управление и переключение между JDK при разработке становится непростой задачей, потому что большое количество разработчиков все еще работает с Java 8, хотя многие уже переходят на Java 11. Эта проблема может быть решена разными способами. В этой статье мы рассмотрим некоторые из них.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+12
Комментарии6

Вся мощь IntelliJ IDEA на примере одного языка (в картинках)

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

Однако, одна из проблем такого подхода заключается в том, что это значительно удорожает и замедляет сам процесс разработки. Что если всего этого нет? Тогда на помощь приходит IDE, благодаря которой можно изучить текущую логику по “голому” коду.

Когда мы разрабатывали платформу lsFusion со встроенным языком, то у нас было несколько вариантов. Либо изобретать велосипед, и писать с нуля свою собственную IDE, как сделал в свое время 1С, или реализовать плагин к уже существующей. Мы пошли по второму пути, и в этой статье я покажу, что получилось.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии10

Использование алгоритма Прима для генерации соединённых друг с другом пещер

Время на прочтение4 мин
Количество просмотров14K


Я решил объяснить один из алгоритмов генерации карты, используемых в моей игре In the House of Silence. Главное преимущество этого способа заключается в том, что в отличие от других алгоритмов, он никаким образом не может сгенерировать карту с разделёнными частями.

Генерация идеального лабиринта



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

Для понятности я привёл псевдокод, описывающий алгоритм Прима. Будет довольно просто приспособить его под любой язык программирования.
Читать дальше →
Всего голосов 50: ↑50 и ↓0+50
Комментарии5

Как удалить «неудаляемые» приложения со смартфона

Время на прочтение5 мин
Количество просмотров261K


Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →
Всего голосов 156: ↑145 и ↓11+168
Комментарии203

Лучшие практики при написании безопасного Dockerfile

Время на прочтение9 мин
Количество просмотров31K

В данной статье мы рассмотрим небезопасные варианты написания собственного Dockerfile, а также лучшие практики, включая работу с секретами и встраивание инструментов статического анализа. Тем не менее для написания безопасного Dockerfile наличия документа с лучшими практиками мало. В первую очередь требуется организовать культуру написания кода. К ней, например, относятся формализация и контроль процесса использования сторонних компонентов, организация собственных Software Bill-of-Materials (SBOM), выстраивание принципов при написании собственных базовых образов, согласованное использование безопасных функций, и так далее. В данном случае отправной точкой для организации процессов может служить модель оценки зрелости BSIMM. Однако в этой статьей пойдет речь именно о технических аспектах.

Читать далее
Всего голосов 64: ↑62 и ↓2+73
Комментарии20

Информация

В рейтинге
3 567-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность