Pull to refresh
15
0
Elle Solomina @ElleSolomina

Senior C++ developer,

Send message

Компьютеры быстры, но вы этого не знаете

Reading time5 min
Views34K

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

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

Смотрели ли вы эти видео?

  1. Сравнение размера Вселенной в 3D
  2. Измеряем богатство Джеффа Безоса в рисе

Второе нравится мне больше всего. Ежедневно я съедаю по чашке риса, так что измеряю состояние Джеффа не только наглядно, но и своим желудком.

Совсем недавно я внёс несколько оптимизаций в код, что помогло мне интуитивно понять, насколько быстро может работать компьютер. И я решил, что этим нужно поделиться.
Читать дальше →
Total votes 84: ↑80 and ↓4+76
Comments232

Как я узнал о тайных услугах Мегафона

Reading time3 min
Views125K
Добрый день всем!

Началось всё с того, что поздно вечером мне позвонила девушка из Мегафона и пролепетала что-то про скидочные купоны-талоны, которые появятся в моём личном кабинете. Мол, это просто партнерская программа и она не хочет, чтобы я пропустил такую прекрасную возможность.
Читать дальше →
Total votes 192: ↑179 and ↓13+166
Comments293

Как мы ржавели. История внедрения и обучения

Reading time12 min
Views35K

Все говорили – переходи на rust! Начинай пользоваться самым-самым языком, который самый любимый язык на stackoverflow и всё такое.

Я тяжело вздохнул и огляделся. Ну опять двадцать-пять. Ладно, давайте разбираться, как правильно покрывать всё ржавчиной.

Профессионально я программирую уже 17 лет. В далёкие-предалёкие времена я начал изучать программирование с x86 Assembly. Такой жестокий подход к изучению компьютера дал мне глубокое понимание того как работает процессор и что делают другие языки программирования. Учить новые языки для меня никогда не было проблемой. Я их просто учил. C, C++, шарпы, ГО, тысячи разных скриптов и фреймворков. Чего уж там, ещё один язык, можно и выучить.

Ага.

Только вот не с этой ржавой развалюхой. Я просидел две недели над официальным руководством, пялился в VSCode и не мог выдавить из себя больше чем fn main() {}. Ну какого же чёрта? Я просто закрыл глаза, открыл руководство на рандомной странице и начал его читать. И прикол в том, что я понял о чём там говориться. И тут до меня дошло… Руководство написано наизнанку. Начало и конец ничуть не лучше чем в Мементо Кристофера Нолана. Они как-то умудрились запутать в общем-то нормальное руководство. После этого всё пошло получше.

Ржавые шестерёнки заскрипели и начали крутиться. Программа пошла-поехала. Если хотите знать как я внедрил rust в продакшин, как я ему научился и что из этого вышло – добро пожаловать под кат. Реальные люди, коммиты, примеры и никаких todo-list и хеллоу-ворлдов.

Ржаветь так ржаветь.
Total votes 142: ↑138 and ↓4+134
Comments315

Как избавиться от прокрастинации до того, как она разрушит вашу карьеру

Reading time9 min
Views87K

Прокрастинацию принято считать разновидностью лени и ерундой, а эффективным лекарством от нее грозный окрик: «Соберись, тряпка!» На деле прокрастинация — опасная проблема, сродни зависимости, которая вызывает много вины и стыда, и способна со временем разрушить личность. Почему она так опасна, редко лечится попыткой «взять себя в руки» и как ее одолеть?

Читать далее
Total votes 69: ↑63 and ↓6+57
Comments96

Яндекс выложил в опенсорс бету фреймворка userver

Reading time10 min
Views74K
Сегодня мы анонсируем выход в опенсорс фреймворка userver для создания высоконагруженных приложений. Для нас это важный способ поделиться опытом в разработке микросервисов, который мы накопили. Вот ссылка на Гитхаб-репозиторий c исходным кодом, документацией, примерами, шаблоном для создания своих сервисов (с настроенным CI, сборкой и тестовым окружением) и сервисом динамических конфигов. Всё это опубликовано под лицензией Apache 2.0.



🐙userver позволяет быстро создавать эффективные микросервисы на языке C++ и уже много лет активно используется в Яндекс Go, Еде, Лавке, Доставке, Маркете, финтехе и других проектах. Вот из каких требований мы исходили в процессе разработки:

  • Простота. Стажёр или студент, приходя к нам, может уже через неделю написать и отправить в продакшен новый микросервис.
  • Надёжность. Многие ошибки, в том числе и связанные с многопоточностью, можно поймать на этапе компиляции. Кроме того, фреймворк даёт подсказки по исправлению проблем.
  • Полнота. В userver есть всё необходимое для тестирования, работы с разными базами данных, кеширования, логирования, трейсинга, распределённых блокировок, работы с JSON, BSON, YAML, изменения параметров сервиса на лету и так далее.

Сейчас я расскажу о том, как возникла идея userver, как фреймворк развивался, в каких задачах его сейчас используют и почему именно выход в опенсорс был логичным следующим шагом. А затем приведу пример написания нового микросервиса.
Читать дальше →
Total votes 177: ↑173 and ↓4+169
Comments142

Обход блокировок РКН с помощью DNSTap и BGP

Reading time10 min
Views58K


Тема довольно изъезжена, знаю. К примеру, есть отличная статья, но там рассматривается только IP-часть блоклиста. Мы же добавим еще и домены.


В связи с тем, что суды и РКН блокируют всё направо и налево, а провайдеры усиленно пытаются не попасть под штрафы, выписанные "Ревизорро" — сопутствующие потери от блокировок довольно велики. Да и среди "правомерно" заблокированных сайтов много полезных (привет, rutracker)


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


В этой заметке я не буду расписывать базовые сетевые вещи по шагам, а опишу общие принципы как можно реализовать эту схему. Так что знания как работает сеть вообще и в Linux в частности — must have.

Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments42

Никогда такого не было и вот опять. Почему нужно использовать self-hosted VPN. Релиз Amnezia

Reading time11 min
Views154K
Вот и пришло время для релиза VPN-клиента, родившегося благодаря хакатону DemHack, и выращенного при поддержке РосКомСвободы, PrivacyAccelerator и Теплицы социальных технологий.

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

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

image
Читать дальше →
Total votes 130: ↑128 and ↓2+126
Comments168

Мультисенсорный беспроводной датчик с E-Ink дисплеем

Reading time4 min
Views10K
Приветствую всех читателей Хабра и особенно читателей раздела «DIY или Сделай сам»! В сегодняшней статье я расскажу о своем очередном DIY проекте из серии устройств с дисплеями на электронных чернилах(e-ink). Устройство о котором пойдет речь это беспроводной мультисенсорный датчик с e-paper дисплеем 2.13 дюймов. На датчик можно установить сенсор температуры и влажности SHT21, HTU21D, SI7021, сенсор температуры влажности и давления BME280, сенсор атмосферного давления BMP280, сенсор освещенности MAX44009. Датчик работает от одной батарейки CR2450. Но ничего не мешает напаять на датчик держатель под батарейки CR2430 или CR2477.


Total votes 54: ↑54 and ↓0+54
Comments19

Тёплый ламповый свет

Reading time4 min
Views142K
Ночь. Компьютер. Интернет.
Три часа, а сна всё нет.

Если вам знакомо состояние, когда засидевшись за компьютером допоздна, вы не ощущаете усталости и не хотите спать, этот пост для вас. В нём попробуем ответить на два классических вопроса: «кто виноват?» и «что делать?».

Мы стали меньше спать


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

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

Недосыпание может спровоцировать болезни сердца и нервной системы. Человек, спящий менее 7 часов, теряет до 30% иммунных клеток, защищающих организм. Последствиями недосыпания могут стать проблемы со зрением, раздражительность, депрессия. Увеличивается вероятность возникновения сахарного диабета, онкологических заболеваний.
Читать дальше →
Total votes 94: ↑85 and ↓9+76
Comments69

Mozilla — прекрасная IT-компания, которую мы теряем

Reading time8 min
Views93K


Когда разнеслась новость о том, что Mozilla начинает волну сокращений – уже вторую за текущий год – реакция последовала незамедлительно. От внимания разработчиков не ускользнуло, что компания уже срезала весь корпоративный жирок и теперь кромсает живые мышцы. Она распустила команду, которая занималась защитой от угроз. Она «сократила издержки» на инструменты для разработчиков – раздел, пользовавшийся большой популярностью. Она урезала команду Servo, которая работала над браузерным движком нового поколения на базе Rust. Она стёрла с лица земли команду MDN. В общем и целом, две волны сокращений суммарно унесли почти треть сотрудников.

Учитывая, что программисты составляют значительную часть весьма скромной пользовательской базы Mozilla, усечение инструментов для разработчиков представляется особенно недальновидным решением, которое разочарует самых преданных пользователей. Однако люди, мало знакомые с историей компании, скорее всего, примут ситуацию за очередной пример того, как игрок не сумел пробиться на конкурентном рынке, делая ставку на нишевые возможности. В конце концов, флагманский продукт компании, браузер Firefox, уже много лет не претендует на лидерство на рынке. Значит, это просто процесс вымирания очередного динозавра, что же ещё?
Читать дальше →
Total votes 168: ↑168 and ↓0+168
Comments484

std::atomic. Модель памяти C++ в примерах

Reading time11 min
Views109K

Для написания эффективных и корректных многопоточных приложений очень важно знать какие существуют механизмы синхронизации памяти между потоками исполнения, какие гарантии предоставляют элементы многопоточного программирования, такие как мьютекс, join потока и другие. Особенно это касается модели памяти C++, которая была создана сложной таковой, чтобы обеспечивать оптимальный многопоточный код под множество архитектур процессоров. Кстати, язык программирования Rust, будучи построенным на LLVM, использует модель памяти такую же, как в C++. Поэтому материал в этой статье будет полезен программистам на обоих языках. Но все примеры будут на языке C++. Я буду рассказывать про std::atomic, std::memory_order и на каких трех слонах стоят атомики.

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

Sound Keeper — предотвращает «засыпание» цифровых аудио-выходов SPDIF или HDMI

Reading time2 min
Views18K
Если вы когда-нибудь пользовались цифровыми аудио-выходами (SPDIF или HDMI), наверняка вы сталкивались с проблемой, когда во время тишины акустика «засыпала», после чего начало следующего звука обрезалось из-за того, что акустике нужно время на «пробуждение» и инициализацию после сна. Это сильно раздражает. Если у вас никогда не было такой проблемы — значит вам повезло с драйвером. Если же проблема имеет место — она решается непрерывным воспроизведением абсолютной тишины. Костыль, но это единственный доступный способ заставить драйвер не выключать цифровой аудио-выход.

Ранее для этих целей существовала одна программа с названием SPDIF Keep Alive. Но на мой взгляд она слишком тяжёлая для решения такой простой задачи: требует наличия фреймворка .NET, расходует слишком много памяти и процессорного времени. Поэтому я написал на C++ новую программу для решения проблемы.

Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments40

Как грамотно развернуть Wi-Fi в отеле: типовые вопросы и решения

Reading time8 min
Views73K
Интернет теперь — настолько важная часть жизни человека, что отсутствие доступа к сети в ресторане или гостинице вполне может стать поводом для отказа от услуг соответствующих организаций. Поговорим об особенностях развертывания Wi-Fi-сетей в здании отелей, важных параметрах, а также об аппаратной составляющей.
 

Total votes 46: ↑46 and ↓0+46
Comments61

Бесшовный Wi-Fi-роуминг: теория на практике

Reading time9 min
Views97K
Разбираемся с технологиями роуминга (Handover, Band steering, IEEE 802.11k, r, v) и проводим пару наглядных экспериментов, демонстрирующих их работу на практике.


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

Роуминг в сетях WiFi — 802.11i/r/k/v/OKC, что нам действительно нужно и как это распознать

Reading time10 min
Views74K
Когда речь заходит о роуминге, под этим понятием обычно скрывается два различных процесса. В мире сотовых сетей, который пришёл к нам раньше, под роумингом подразумевается способность работать в «чужой» сети, а вовсе не бесшовная миграция между базовыми станциями (handover). Незаметное перемещение между БС сотовой сети настолько естественно, что о нём вообще мало вспоминают.

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

Далее следует описание существующих технологий роуминга и способы их выявления на незнакомом оборудовании, предполагается, что читатель знаком с базовыми принципами работы WiFi.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments18

Все полезные материалы по Wi-Fi в одном месте

Reading time7 min
Views48K

image


Никак не можете найти ту самую ссылку на цветовые профили для Wireshark? Забыли, на каком сайте видели удобную стойку для Site Survey? Какой адаптер подходит для Packet Capture на Windows? Закладка с таблицей модуляций осталась в другом браузере?


Мы тоже от этого устали.


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

Пусть всё будет в одном месте
Total votes 32: ↑32 and ↓0+32
Comments25

Умирает ли RuTracker? Анализируем раздачи

Reading time14 min
Views235K

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


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


У вас есть свой бизнес? Или может… хотя, не важно. Сам процесс добычи данных бесконечен и увлекателен. И даже просто хорошо покопавшись в интернете можно найти себе поле для деятельности.


Вот, что мы имеем сегодня – Неофициальная XML-база раздач сайта RuTracker.ORG. База обновляется раз в полгода и содержит в себе информацию о всех раздачах за историю существования данного торрент-трекера.


Что она может рассказать владельцам рутрекера? А непосредственным пособникам пиратства в интернете? Или обычному юзеру, увлекающемуся аниме, например?

Читать дальше →
Total votes 191: ↑187 and ↓4+183
Comments296

Выбираем канал для точки доступа Wi-Fi. Исчерпывающее руководство

Reading time9 min
Views289K
2,4 ГГц — это плохо. 5 ГГц — это хорошо. 6 ГГц — это ещё лучше, но послезавтра. Все это знают, кого я тут учу, в самом деле. Всё это хорошо, только делать-то что, когда ты такой, как умный, открываешь какой-нибудь Wi-Fi Explorer, а там сатанизм и этажерки, как на скриншоте?



Шаг первый — поплакать. Шаг второй — нырнуть под кат. Вопрос простой, а ответ — нет.
Когда это нас останавливало?
Total votes 111: ↑110 and ↓1+109
Comments234

Мегафон продолжает вмешиваться в мой HTTP-трафик в 2020 году, отправлять рекламу, даже после получения запретов на это

Reading time7 min
Views81K
Недавний пост «Вы видели людей, которые пользуются мобильными контент-подписками?» опять всколыхнул внутреннее недовольство отношением Мегафона ко мне и я решил рассказать про свою «войну» с зелёно-фиолетовым оператором и попытками оградиться от рекламы и вмешивания в мой HTTP-трафик.

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

Мотивация от оператора:
При заключении между нами договора, в нём был пункт, что Вы согласны на получение рекламы при использовании наших услуг.
Вместо выполнения Федерального Закона «О Рекламе», статья 18, п. 1, при обращениях к оператору с требованием прекратить распространять рекламу в мой адрес:
Рекламораспространитель обязан немедленно прекратить распространение рекламы в адрес лица, обратившегося к нему с таким требованием.
Мегафон подключает дополнительные услуги «отказа от рекламы» (у меня их с десяток), которые иногда не работают, и реклама продолжает приходить.



Например, после скриншота выше, сегодня получил очередную зелёно-фиолетовую рекламу.
Считаю что такого рода вещи должны предаваться гласности, так как дело не в том, что «проблема» решится (хотя до сих пор не решилась) для одного абонента, а в том что этот опыт поможет многим. Ведь по всем проблемным запросам смм Мегафона уводит клиента в личное общение и решений проблем не остаётся в паблике. Попробую это исправить.
С подписками, как оказалось, разобраться проще всего. Расскажу под катом про свой опыт и с ними, и с вмешательством в HTTP-трафик:

  • почему вы видите сайты с подписками, даже если кликнули по объявлению в выдаче Google,
  • размышления, много ли мобильные подписки приносят денег оператору,
  • как Мегафон вмешивается в HTTP-трафик,
  • про рекламу, от которой вы не можете отказаться,
  • чеклист того что можно сделать, для минимизации рекламы, подписок и вмешательств в HTTP-трафик.
Total votes 238: ↑235 and ↓3+232
Comments288
1
23 ...

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

Software Developer, Embedded Software Engineer
Senior
From 4,000 €
Git
Linux
C++
Software development
Qt
Python
English