Pull to refresh
1
0
Виталий Ф. @FuN_ViT

программист, синьор-помидор :)

Send message

Когда обманули во всем: изучаем фейковый планшет, которым забиты маркетплейсы

Reading time10 min
Views201K

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

Детали под катом.

Читать далее
Total votes 449: ↑447 and ↓2+520
Comments416

RabbitMQ против Kafka: два разных подхода к обмену сообщениями

Reading time18 min
Views328K

В прошлых двух статьях мы рассказывали об IIoT — индустриальном интернете вещей — строили архитектуру, чтобы принимать данные от сенсоров, паяли сами сенсоры. Краеугольным камнем архитектур IIoT да и вообще любых архитектур работающих с BigData является потоковая обработка данных. В ее основе лежит концепция передачи сообщений и очередей. Стандартом работы с рассылкой сообщений сейчас стала Apache Kafka. Однако, для того, чтобы разобраться в ее преимуществах (и понять ее недостатки) было бы хорошо разобраться в основах работы систем очередей в целом, механизмах их работы, шаблонах использования и основной функциональности.



Мы нашли отличную серию статей, которая сравнивает функциональность Apache Kafka и другого (незаслуженно игнорируемого) гиганта среди систем очередей — RabbitMQ. Эту серию статей мы перевели, снабдили своими комментариями и дополнили. Хотя серия и написана в декабре 2017 года, мир систем обмена сообщениями (и особенно Apache Kafka) меняется так быстро, что уже к лету 2018-го года некоторые вещи изменились.

Читать дальше →
Total votes 87: ↑82 and ↓5+77
Comments42

Lua конфигурация Neovim для разработки на Go

Reading time10 min
Views25K

В процессе знакомства с Neovim было прочитано много статей, конфигураций на Github, было просмотрено огромное количество роликов на Youtube на тему настройки, но в большинстве случаев приходилось донастраивать все под себя. В этой статье я расскажу как я настроил Neovim для разработки на Go, используя только Lua плагины и init.lua.

Читать далее
Total votes 12: ↑10 and ↓2+9
Comments13

Go gamedev: низкоуровневое API рисования в Ebitengine

Level of difficultyMedium
Reading time9 min
Views2.6K

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


Функция DrawTriangles казалась не очень понятной человеку, который привык к концепции "есть спрайт — можно рисовать".


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


Давайте разбираться, что это за треугольники и с чем их едят.


Читать дальше →
Total votes 10: ↑10 and ↓0+13
Comments4

Go Channels Internals

Reading time12 min
Views26K
На Go можно реализовать тысячи goroutine одновременно без больших требований к железу. При этом горутины могут легко и просто обмениваться данными между собой и синхронизироваться с помощью каналов. Но как устроены каналы внутри? Об этом написано не так уж много, а в условиях многопоточки и асинхронного кода хорошо бы не просто работать с каналами, а понимать, как их использовать более практично и эффективно.

Егор Гришечко, старший разработчик в Insolar, разрабатывает блокчейн для b2b сегмента (по сути, стартап), и у команды как раз большая многопоточка и много асинхронного кода. Егор не только разобрался на практике, как работают каналы, что это такое и как они вообще устроены внутри. Он еще рассказал о каналах внутри команды, а потом, увидев интерес, поделился на конференции Golang Conf 2019.

Сегодня мы публикуем расшифровку его доклада.


Читать дальше →
Total votes 30: ↑29 and ↓1+40
Comments2

Трюк с XOR для собеседований и не только

Reading time8 min
Views120K


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

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

Дан массив из n — 1 целых чисел, находящихся в интервале от 1 до n. Все числа встречаются только один раз, за исключением одного числа, которого нет. Найдите отсутствующее число.

Разумеется, существует множество прямолинейных способов решения этой задачи, однако есть и довольно неожиданный, в котором применяется XOR.
Читать дальше →
Total votes 76: ↑70 and ↓6+80
Comments104

Protobuf и buf: блеск, нищета и импортозамещение

Reading time11 min
Views7.7K

Если для компиляции proto-файлов вы всё ещё используете protoc, самое время перестать и перейти на buf. Разберём, как это сделать и почему это необходимо. Также рассмотрим проблемы доступа к buf.build.

Меня зовут Эдгар Сипки, я Go-разработчик в Ozon Fintech. buf — мощная утилита для линтинга протофайлов, проверки обратной совместимости API, генерации кода и валидации запросов. Однако, из-за санкций она недоступна в России. Поэтому я расскажу, как мы разрабатывали собственное решение в рамках импортозамещения.

Читать далее
Total votes 19: ↑17 and ↓2+17
Comments11

RKN Alert — база Роскомнадзора у вас в браузере

Reading time4 min
Views27K
Как и все, я пользуюсь одним из простых способов обхода блокировок, коих сейчас море. Все сайты открываются без проблем и тормозов. Но с недавних пор (2 недели назад) у меня встал вопрос: а какие сайты на самом деле заблокированы из тех, что открываются, а какие нет? Каждый сайт проверять вручную на официальном сайте РКН — не вариант, хоть это и самый надёжный способ. Естественно, я пошёл гуглить подходящие инструменты, но к великому удивлению ничего не нашёл.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments46

Уже не программист, но еще не менеджер

Level of difficultyEasy
Reading time5 min
Views12K

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

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

Читать далее
Total votes 27: ↑25 and ↓2+25
Comments19

USB MIDI-контроллер на Arduino

Reading time4 min
Views102K
image

В очередной раз играя на гитаре и управляя звуком через Peavey ReValver и прочие Amplitube, задумался о приобретении MIDI-контроллера. Фирменные устройства, вроде Guitar Rig Kontrol 3, стоят около 13 000 рублей, и обладают только напольным исполнением. То есть оперативно менять положения нескольких регуляторов весьма проблематично.

Различные контроллеры DJ направленности выглядели интереснее за счет обилия фейдеров и энкодеров. Решено было совместить приятное с полезным и сделать MIDI-контроллер самому.
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments49

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficultyMedium
Reading time15 min
Views296K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Total votes 273: ↑272 and ↓1+323
Comments353

Перевод трактата по демонологии при помощи GPT-4 и Claude

Level of difficultyEasy
Reading time10 min
Views4.4K

Вряд ли кто-то будет спорить, что инструменты ИИ вроде GPT-4, как минимум интересны и забавны. Но насколько они практичны?

Могут ли они помочь нам сделать что-то действительно полезное... например, перевести 1200-страничную книгу о демонах, написанную малоизвестным теологом-иезуитом XVI века?

Давайте проверим!

Читать далее
Total votes 24: ↑23 and ↓1+23
Comments5

Тестирование 1С в российских облаках: Cloud, Yandex Cloud, МТС, Selectel, VK Cloud

Reading time6 min
Views4.9K

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

Читать далее
Total votes 5: ↑3 and ↓2+1
Comments15

Разгоняем бэкап. Лекция Яндекса

Reading time9 min
Views18K
Несколько ближайших лекций будут по мотивам первого Я.Субботника по базам данных, который состоялся весной. Сначала на Я.Субботнике выступил разработчик Андрей Бородин. Он рассказал о WAL-G — простом и эффективном инструменте для резервного копирования PostgreSQL в облако, а также об алгоритмах и технологиях, которые позволяют WAL-G создавать бэкапы быстрее. Главная особенность WAL-G — дельта-бэкапы. Из лекции вы узнаете об их реализации и о том, как поддержка этой технологии развивается в PostgreSQL.


— Привет! Я разработчик в Яндексе из Екатеринбурга. К технологиям быстрого бэкапа. Бэкапом мы занимаемся довольно давно, были доклады Владимира Бородина и Евгения Дюкова о том, как мы исследуем и что разрабатываем, чтобы хранить данные безопасно, надежно, удобно и эффективно. Эта серия посвящена последним наработкам в указанной области.

Поговорим про бэкапы в PostgreSQL в принципе. Стандартная утилита для переноса данных — pg_dump — определяется как консольная утилита, создающая файл с логическим представлением ваших данных.
Total votes 38: ↑37 and ↓1+36
Comments0

Kotlin/Golang работа в двух языках

Reading time17 min
Views11K

Так уж получилось, что у нас в компании используются разные стеки и языки. И в частности у нас есть большое подразделение, основным стеком которого является JVM с Kotlin в качестве языка разработки (вместо ванильной Java, на бэкенде). Но при этом этому же отделу регулярно приходится использовать в работе GoLang.

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

Читать далее
Total votes 15: ↑13 and ↓2+14
Comments12

Apache Pulsar как основа для системы очередей

Reading time13 min
Views20K

Меня зовут Агалецкий Павел, я старший инженер в команде Архитектуры. Эта статья про новую для нас в Авито технологию — Apache Pulsar и построение системы очередей, Queues as a Service, на её основе.

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

Бардак в main, стандартизация и uber.fx. Как сделать структуру кода понятнее для всех

Reading time20 min
Views14K
Привет, Хабр! Меня зовут Данила Проценко. Я — Lead Software Architect в «Лаборатории Касперского», занимаюсь архитектурой микросервисов и монолитов на Go.

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

image
Читать дальше →
Total votes 16: ↑15 and ↓1+21
Comments18

НУЦ сурка

Reading time6 min
Views22K

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

Последние месяцы регулярно получаю уведомления с Хабра, что мою майскую статью упомянули в публикации, посвященной очередному этапу обилечивания россиян «надежными» «суверенными сертификатами». Также регулярно комментирую эту тему для СМИ и почти всегда сталкиваюсь с выпадением собеседника в BSOD. Казалось бы, вот все факты, вот официальные документы и прочие «пруфы», но поверить в услышанное все равно невозможно: федеральный орган исполнительной власти не первый месяц открыто нарушает закон, раздает филькины грамоты для «защиты» важнейших сайтов и… ничего.

Давайте и вам расскажу эту историю: как Минцифры не имея на то полномочий «создало» т.н. «национальный удостоверяющий центр», да не один раз, как несуществующий УЦ выпускает «государственные» TLS-сертификаты, и как вся эта деятельность проходит по разделу перехода на отечественную криптографию, а не превышения должностных полномочий, а то и чего похуже.

Итак, на сайте Минцифры сообщается, что сертификаты выдает Национальный удостоверяющий центр. Сервис по выдаче сертификатов безопасности работает с марта 2022 года на портале Госуслуг. Однако «Портал государственных услуг Российской Федерации», утверждает, что российский сертификат безопасности для интернет-сайтов, заверенный «российским корневым сертификатом» предоставляется самим Минцифры. Да и сертификате указано, что его выпустило «The Ministry of Digital Development and Communications», а не какой-то «национальный удостоверяющий центр».

Читать далее
Total votes 96: ↑83 and ↓13+89
Comments56

Несколько советов по работе с CORS для начинающих разработчиков

Reading time8 min
Views90K

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

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

Читать далее
Total votes 13: ↑12 and ↓1+12
Comments2
1
23 ...

Information

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