Search
Write a publication
Pull to refresh
2
0
Send message

Кратко с реализацией о AES 128 ECB

Reading time5 min
Views11K

Если вбить в яндекс 'aes 128 ecb mode', найдутся хорошие статьи ребят на "хабре": раз и два — толковые и одновременно слишком подробные.


Рассказ об алгоритме в картинках находится здесь (который также можно найти по ссылкам в одной из статей ребят выше).


Кратко об алгоритме: 1) создаем объект с 16-байтным state и массивом 16-байтных ключей; 2) пишем примитивы для объекта (они же трансформации); 3) запускаем n раз (где n — кол-во раундов). Все трансформации делаем симметричными — для зашифровки и расшифровки одновременно. Расшифровка в терминах алгоритма — это зашифровка наоборот.


Структура:


using byte_t = unsigned char;
struct aes128 {
  aes128(const std::string& text, const std::string& cipher, bool decrypt = false)
    : state({begin(text), end(text)}), keys({{begin(cipher), end(cipher)}}), decrypt(decrypt) {}
  aes128() = default;
  aes128(const aes128&) = default;

  std::vector<byte_t> state;
  std::vector<std::vector<byte_t>> keys;
  bool decrypt;
}
Читать дальше →

Интернет для дачника. Добываем максимальную скорость в сетях 4G. Часть 2. Выбор внешней антенны

Reading time6 min
Views175K
Недавно я проводил сравнительное тестирование LTE роутеров и вполне ожидаемо оказалось, что производительность и чувствительность радиомодулей у них существенно отличается. Когда же я подключил к роутерам антенну, прирост скорости увеличился кратно. Это натолкнуло меня на мысль провести сравнительное тестирование антенн, которые позволят не просто обеспечить связь в частном доме, но и сделать ее не хуже, чем в городской квартире, с подключением по кабелю. Ну а чем закончилось это тестирование можно узнать ниже. Традиционно, для желающих смотреть, а не читать, сделал видеоролик.

Метод самостоятельного определения времени отклика LCD экрана монитора или телевизора

Reading time15 min
Views117K
«Кто нам мешает, тот нам поможет»
к/ф «Кавказская пленница»


Преамбула


Время отклика LCD экрана является одной из важнейших характеристик монитора и телевизора. От него зависит, насколько хорошо данный монитор подходит, например, для компьютерных игр или просмотра видео. Если время отклика слишком большое, то на экране за движущимися высококонтрастными объектами будут оставаться видимые глазом артефакты, воспринимаемые как «призраки» или «тени», мешающие просмотру. Но, в отличие от большинства других технических характеристик, время отклика трудно измерить. А ведь это могло бы быть очень полезно, например при приобретении нового монитора или телевизора, а также при их настройке.

С другими техническими параметрами все более-менее понятно и очевидно. Например, размеры экрана при желании можно измерить рулеткой или линейкой. Разрешение экрана и размер пикселя тоже можно «пощупать», разглядывая экран с близкого расстояния. Многие параметры (например, яркость и контрастность экрана, глубина черного, равномерность засветки, отображение градиентов, резкость, углы обзора, гамма и так далее) можно проверить с помощью специальных тестовых программ начиная от простейших утилиток типа «Nokia Test», и до программ для комплексной настройки, проверки и сравнения, например «LCD Vs_mon».

Но, к сожалению, время отклика LCD экрана так просто посмотреть и «пощупать» не получается, и остается ориентироваться на значения, указываемые изготовителем в паспорте или рекламном буклете. Но тут тоже все довольно запутано. Существуют разные понятия времени отклика: GtG (grey to grey, от серого к серому), BtW (black to white, от черного к белому), BtB или BWB (black-white-black, с чёрного на белый и обратно). К тому же каждый изготовитель измеряет время отклика монитора по собственной методике, некоторые из них для уменьшения времени отклика используют технологию разгона Overdrive, и поэтому прямое сравнение мониторов или телевизоров разных марок друг с другом может быть некорректным.

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

Можно ли как-то это сделать?

В принципе конечно можно, но…
Читать дальше →

Тест для проверки цветового разрешения монитора или телевизора при подключении к компьютеру по цифровому видеоинтерфейсу

Reading time7 min
Views171K
«Кто нам мешает, тот нам поможет»
к/ф «Кавказская пленница»


Телевизор в качестве монитора?


В последние годы все более популярным становится использование телевизора в качестве домашнего компьютерного монитора.
И действительно — если еще несколько лет назад типичным для компьютерных мониторов Full HD разрешением (1920x1080) могли похвастаться лишь телевизоры с диагональю 40" и более, слишком большие для настольного монитора, то сейчас нетрудно найти телевизор с Full HD разрешением и с вполне «мониторной» диагональю 32" и меньше. Соответственно и размер пикселя при этом получается близким к «типовому» для настольных мониторов 0,28 мм ± 10% (ну, может быть чуть больше). А если кому-то такой пиксель покажется великоват, то с появлением доступных по цене бытовых телевизоров с разрешением 4k Ultra HD (3840x2160) размер пикселя вполне может конкурировать и с Retina.
К тому же широко распространенные в бытовых телевизорах IPS матрицы по компьютерным меркам считаются весьма «продвинутыми», и ими обычно оснащаются весьма дорогие «профессиональные» мониторы.
Казалось бы вот оно, идеальное решение для экономного домашнего пользователя — купить на грош пятаков небольшой (по телевизионным меркам) относительно недорогой 26"-37" бытовой телевизор с Full HD или Ultra HD разрешением, и в результате получить «компьютерный монитор» с большим (по компьютерным меркам) «профессиональным» IPS дисплеем, который к тому же без дополнительных вложений может быть использован и по прямому «телевизионному» назначению (что для дома тоже немаловажно!).
Однако иной раз результатом такого приобретения становится полное разочарование: компьютерная картинка на экране телевизора оказывается намного хуже, чем на простеньком старом мониторе, вместо которого этот телевизор собственно и приобретался.
Причин этого может быть множество, начиная от несоответствия разрешения соединяющего компьютер с телевизором видеоинтерфейса разрешению телевизионной матрицы, способности телевизора выводить картинку «пиксель-в-пиксель», настроек видеокарты (в частности, Overscan), настроек самого телевизора (например, резкости), проблем с кабелем, и так далее.
В данной статье мы рассмотрим только одну из возможных причин, а именно способность видеоинтерфейса, которым подключен телевизор или монитор к компьютеру, передать полное цветовое разрешение 4:4:4.

Для начала собственно тест:



Если на экране Вам отчетливо видна появляющаяся надпись 4:4:4, и лишь слегка угадывается 4:2:2, то значит видеоинтерфейс компьютер-монитор передает полное цветовое разрешение, и на этом собственно можно закончить тест и чтение статьи.
Тем же, кому интересно, как действует этот тест, а также тем, кто видит 4:2:2 и не видит 4:4:4 (или видит примерно одинаково и 4:4:4, и 4:2:2), и при этом хочет попробовать исправить ситуацию добро пожаловать под кат
Читать дальше →

В этой статье слишком много воды

Reading time9 min
Views41K
«Мы начинаем разработку новой игры, и нам нужна классная вода. Такую сможешь?»


, — cпросили меня. «Да не вопрос! Конечно, смогу», — ответил я, но голос предательски задрожал. «А, еще и на Unity?», — и мне стало понятно, что впереди очень много работы.
Читать дальше →

Теперь хороших разрабов меряют по просмотрам и подписчикам — и это плохо

Reading time6 min
Views84K


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

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

Вот только почти все статьи не про разработку — в них нытье про мою депрессию. Я-то рад, что мне больше не надо никому ничего доказывать. Но вы что, с ума сошли котировать разрабов за такую чушь? Я думаю, сошли, и вижу тревожные симптомы этого везде.
Читать дальше →

Performance tuning and troubleshooting баз данных в наши дни

Reading time5 min
Views5.3K
К сожалению, сейчас роль специалистов по Performance tuning и troubleshooting баз данных урезается только до последнего — troubleshooting'a: практически всегда к специалистам обращаются, только когда проблемы уже достигли критической точки, и их нужно решить «еще вчера». Да и то хорошо, если обратятся, а не отсрочат проблему покупкой еще более дорогого и мощного «железа» без детального аудита производительности и нагрузочных тестов. Ведь достаточно часто бывают разочарования: закупили оборудования на сумму в 2-5 раз дороже, а по производительности выиграли лишь 30-40%, весь прирост от которого через несколько месяцев съедается либо увеличением числа пользователей, либо экспоненциальным ростом данных, вкупе с усложением логики.

И сейчас, во времена когда активно растет количество архитекторов, тестеров и DevOps инженеров, а разработчики Java Core оптимизируют даже работу со строками, медленно, но верно наступает пора и оптимизаторов баз данных. СУБД с каждым релизом становятся настолько умнее и сложнее, что изучение как документированных, так и недокументированных нюансов и оптимизаций требует огромного количества времени. Ежемесячно выходит огромное количество статей и проводятся крупные конференции посвященные Oracle. Простите за банальную аналогию, но в этой ситуации, когда администраторы баз данных становятся подобными пилотам самолетов с бесчисленным количеством тумблеров, кнопочек, лампочек и экранов, уже неприлично нагружать их еще и тонкостями оптимизации производительности.
Читать дальше →

Глубокое обучение с подкреплением: пинг-понг по сырым пикселям

Reading time24 min
Views16K
Это давно назревшая статья об обучении с подкреплением Reinforcement Learning (RL). RL – крутая тема!

Вы, возможно, знаете, что компьютеры теперь могут автоматически учиться играть в игры ATARI (получая на вход сырые игровые пиксели!). Они бьют чемпионов мира в игру Го, виртуальные четвероногие учатся бегать и прыгать, а роботы учатся выполнять сложные задачи манипуляции, которые бросают вызов явному программированию. Оказывается, что все эти достижения не обходятся без RL. Я также заинтересовался RL в течение прошлого года: я работал с книгой Ричарда Саттона (прим.пер.: ссылка заменена), читал курс Дэвида Сильвера, смотрел лекции Джона Шульмана, написал библиотеку RL на Javascript, летом проходил практику в DeepMind, работая в группе DeepRL, и совсем недавно — в разработке OpenAI Gym, – нового инструментария RL. Так что я, конечно, был на этой волне, по крайней мере, год, но до сих пор не удосужился написать заметку о том, почему RL имеет большое значение, о чем он, как все это развивается.


Примеры использования Deep Q-Learning. Слева направо: нейросеть играет в ATARI, нейросеть играет в AlphaGo, робот складывает Лего, виртуальный четвероногий бегает по виртуальным препятствиям.
Читать дальше →

Как написать сопроводительное письмо при поиске работы в США: 7 советов

Reading time7 min
Views14K


На протяжение многих лет в США была распроcтранена практика требовать претендентов на различные вакансии не только резюме, но еще и сопроводительное письмо (cover letter). В последние годы важность этого аспекта начала снижаться – уже в 2016 году сопроводительные письма требовали только около 30% работодателей. Это нетрудно объяснить – у HR-специалистов, проводящий первоначальный скрининг, обычно слишком мало времени, чтобы читать письма, на анализ самих резюме по статистике уходит всего несколько секунд.

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

Я нашла интересный пост о том, как сегодня следует подходить к написанию cover letter при поиске работы в США, и подготовила его адаптированный перевод.
Читать дальше →

Немного технической лирики о C++ Tools от JetBrains, и при чем тут единороги

Reading time4 min
Views9.2K
Начну не с моего типичного “Привет, Хабр! У нас тут очередной крутой релиз”, а с “Привет, меня зовут Настя, я ПММ в JetBrains и я отвечаю за наши инструменты для C++”. Или нет, попробую еще раз, вот так: “Привет, пишет вам C++ разработчик с 8-летним стажем, который 5 лет назад нашел-таки себе применение в любимой и знакомой компании мечты – JetBrains, а потом в сутках внезапно закончились часы, а идеи всё прут”.

Нет, это не традиционный пост о поисках кандидатов на вакансию. Я попытаюсь рассказать про то, почему инструментов для C++ у нас несколько и какие есть идеи и планы у нас на их счет, а еще почему вы не забудете C++, если перестанете писать на нем как разработчик, а станете PMM-ом (спойлер, если вы не член комитета стандартизации языка C++, то у вас большие шансы узнать язык даже лучше). А если после этого вам захочется поучаствовать в этом в роли PMM-а, то я буду рада вашим резюме на anastasia.kazakova@jetbrains.com.
Читать дальше →

Руководство для чайников: создание цепочек DevOps с помощью инструментов с открытым исходным кодом

Reading time6 min
Views37K


Создание первой цепочки DevOps за пять шагов для новичков.


DevOps стал панацеей для слишком медленных, разобщенных и прочих проблемных процессов разработки. Но нужны минимальные познания в DevOps. Здесь будет рассмотрены такие понятия, как цепочка DevOps и как создать ее за пять шагов. Это не полное руководство, а только “рыба”, которую можно расширять. Начнем с истории.


Мое знакомство с DevOps


Когда-то я работал с облаками в Citi Group и разрабатывал веб-приложение IaaS, чтобы управлять облачной инфраструктурой Citi, но мне всегда было интересно, как можно оптимизировать цепочку разработки и улучшить культуру среди разработчиков. Грег Лавендер, наш техдиректор по облачной архитектуре и инфраструктуре, посоветовал мне книгу Проект «Феникс». Она прекрасно объясняет принципы DevOps, при этом читается, как роман.

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

Как разобрать сетевой протокол мобильной MMORPG

Reading time7 min
Views25K
За годы игры в одну мобильную ММОRPG у меня накопился некоторый опыт по ее реверс-инжинирингу, которым я хотел бы поделиться в цикле статей. Примерные темы:

  1. Разбор формата сообщений между сервером и клиентом.
  2. Написание прослушивающего приложения для просмотра трафика игры в удобном виде.
  3. Перехват трафика и его модификация при помощи не-HTTP прокси-сервера.
  4. Первые шаги к собственному («пиратскому») серверу.

В данной статье я рассмотрю разбор формата сообщений между сервером и клиентом. Заинтересовавшихся прошу под кат.
Читать дальше →

Лучше день потерять

Reading time20 min
Views15K
В инвестировании есть понятие «Плохо сейчас — хорошо потом». Инвестор регулярно отщипывает 10, 20% или даже 30% своего заработка на будущее. Эти деньги он инвестирует в облигации, акции, ОФЗ, ETF — кто во что горазд. Сейчас, в моменте, инвестор отбирает у себя свой заработок, лишает себя каких-то благ, чтобы в будущем, на горизонте в 10-20 лет, получить пользу от инвестиций. Прибыль в будущем покроет сегодняшние лишения. Примерно такую же стратегию исповедует Алексей Охрименко (obenjiro), но применительно к разработке — лучше день потерять, а потом за 5 минут полететь.


Источник

На Frontend Conf 2018 Алексей рассказал, как потеряв кучу времени сейчас, в конечном счете его сэкономить потом. Этот доклад не о чувстве скуки и не о том, как бороться с монотонными и рутинными задачами, а о том как потратить время по максимуму — сколько есть, все потратить, и посмотреть, что из этого получится. В расшифровке доклада опыт написания инструментов для отладки, тестирования, оптимизации, скафолдинга и валидации под разные проекты. Бонусом Алексей расскажет о ряде уже существующих инструментов и о пользе, которую они приносят. Давайте выяснять, надо ли вообще на это тратить время.

О докладчике: Алексей Охрименко — разработчик в Avito Frontend Architecture, где немного улучшает жизнь миллионов людей. Ведет подкаст «5 min Angular», а в свободное ото сна и подкаста время организует Angular Meetup вместе с ребятами из Тинькофф, и выступает с огромным количеством разных и спорных докладов.

Кондиционер айтишника. Часть I

Reading time6 min
Views62K
Пенни, все становится лучше, когда есть bluetooth © Шелдон, TBBT

Домик хотя и "тестовый", но все старались делать максимально правильно — хорошее утепление, приличные стеклопакеты и т.п.

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

Мы предвидели такой вариант развития событий и заранее подготовились к установке кондиционера: проложили все необходимые магистрали на этапе стройки.
Читать дальше →

«Умный дом» — переосмысление

Reading time10 min
Views59K
На Хабре уже было несколько публикаций о том, как айтишники строят себе дома и что из этого получается.

Хочу поделиться своим опытом («тестовый проект»).

Постройка собственного дома (особенно, если еще и своими силами) — крайне объемный кусок информации, поэтому я свое повествование буду вести больше про ИТ-системы (мы же все-таки сейчас на Хабре, а не на ФХ, хотя там тема тоже есть).
Читать дальше →

Ликбез по памяти: какой она бывает, и что нам это дает

Reading time6 min
Views27K
Хорошая память — неоспоримое преимущество для студентов и тот навык, который уж точно пригодится в жизни — вне зависимости от того, какими были ваши учебные дисциплины.

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


Как я покупал волоконный лазерный маркер в России + нюансы выбора аппаратов для гравировки и маркировки в 2018 году

Reading time3 min
Views31K
Всем привет! Хочу немного рассказать своем опыте выбора волоконного лазерного гравера-маркера для нужд своего бизнеса по гравировке.


Начну с того что в станках, тем более лазерных я ничего не понимал до 2018 года. Все заказы которые получал от клиентов — выполнял силами нескольких типографий, у них большой парк оборудования и в том числе лазерные маркеры граверы с диодной накачкой. В сентябре 2018 года, я понял что пора расширять бизнес (тем более тарифы у этих типографий существенно росли) и подбив финансы решил что пора купить свой станок для гравировки.
Читать дальше →

Вейвлет — анализ.Часть 1

Reading time10 min
Views44K

Введение


Рассмотрим дискретное вейвлет – преобразования (DWT), реализованное в библиотеке PyWavelets PyWavelets 1.0.3. PyWavelets — это бесплатное программное обеспечение с открытым исходным кодом, выпущенное по лицензии MIT.

При обработке данных на компьютере может выполняться дискретизированная версия непрерывного вейвлет-преобразования, основы которого описаны в моей предыдущей статье. Однако, задание дискретных значений параметров (a,b) вейвлетов с произвольным шагом Δa и Δb требует большого числа вычислений.

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

Дискретное вейвлет – преобразование (DWT), реализованное в библиотеке PyWavelets, обеспечивает достаточно информации как для анализа сигнала, так и для его синтеза, являясь вместе с тем экономным по числу операций и по требуемой памяти.

Когда нужно использовать вейвлет-преобразование вместо преобразования Фурье


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

Схемы электрические. Типы схем

Reading time4 min
Views666K
КДПВ


Привет Хабр!
Чаще в статьях приводят вместо электрических схем красочные картинки, из-за этого возникают споры в комментариях.
В связи с этим, решил написать небольшую статью-ликбез по типам электрических схем, классифицируемых в Единой системе конструкторской документации (ЕСКД).
Читать дальше →

Часть 5. Карьера программиста. Middle. Кризис. Первый релиз

Reading time8 min
Views24K
Продолжение рассказа «Карьера программиста».

2008-ой год. Глобальный экономический кризис. Казалось бы, при чем тут фрилансер-одиночка из глубокой провинции? Оказалось, что даже мелкий бизнес и стартапы на Западе, также обнищали. А это были мои непосредственные и потенциальные клиенты. Ко всему прочему, я наконец защитил диплом специалиста в университете и других занятий, кроме как фрилансить — у меня не оставалось. До кучи, я расстался со своим первым клиентом, который приносил постоянный доход. И следом за ним, рухнули и мои отношения с потенциально будущей женой. Все как в том анекдоте.
Наступила “черная полоса”, в тот момент, когда должна была наступить пора возможностей и роста. Пора, когда амбициозные молодые люди рвутся строить карьеру и впахивают за пятерых, молниеносно получая повышение. У меня было все наоборот.

Один на один, с фриланс-биржей oDesk и редкими заказами, протекала моя жизнь. Я по-прежнему жил с родителями, хотя мог позволить себе жить отдельно. Но жить одному мне не понравилось. Поэтому мамкины борщи и папкины сто грамм, скрашивали серые будни.
Когда-никогда я встречался со старыми друзьями из универа, поговорить за жизнь, да поделиться новостями. Компания СКС из третьей части этого рассказа сделала pivot и перекочевала во фриланс. Теперь Илон и Ален, также как и я, просиживали штаны дома у компа, добывая деньги для существования. Вот так мы и жили: без целей, перспектив и возможностей. Внутри меня все бунтовало, я категорически был несогласен с происходящим. Это был system error в моей голове.

Первой попыткой что-то изменить, был масштабный по замыслу веб-сервис.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity