Pull to refresh
53
0

Разработчик под Android, перешедший на Rust

Send message

vPass 2 — простой и удобный генератор безопасных паролей на Javascript

Reading time3 min
Views17K
Привет,

я потихоньку сделал версию 2 своего «потустороннего» проекта — vPass. Если интересно, вот тут в комментах интересное обсуждение первой версии.

image

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

vPass берет Ваш мастер-пароль (например, `my_password`) и, как правило, домен текушего сайта (например, `http://accounts.google.com` становится `google`) и создает набор из 12 букв, цифр и символов (например, `0EQu$MwEm?Qt`).

Вот 30-секундный демо-ролик...

Как сделать простой UPS для NAS

Level of difficultyMedium
Reading time11 min
Views28K

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

Рассмотрим вариант дизайна такого UPS, который можно разместить внутри корпуса для тех NAS, которые для работы требуют только одного напряжения питания 12В.

Всё ещё хочешь собрать UPS?

Как рисовать красивые соединения с помощью SVG

Level of difficultyMedium
Reading time5 min
Views15K

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

Читать далее

Большие данные мертвы. Это нужно принять

Level of difficultyMedium
Reading time17 min
Views75K

Уже более десяти лет тот факт, что люди с трудом извлекают из своих данных полезную информацию, сбрасывают на чересчур большой размер этих данных. «Объем собираемой информации слишком велик для ваших хилых систем», — такой нам ставили диагноз. А лекарство, соответственно, заключалось в том, чтобы купить какую‑нибудь новую причудливую технологию, которая сможет работать в больших масштабах. Конечно, после того, как целевая группа по Big Data покупала новые инструменты и мигрировала с устаревших систем, компании снова обнаруживали, что у них по‑прежнему возникают проблемы с пониманием своих данных.

В результате постепенно некоторые начинали понимать, что размер данных вообще не был проблемой.

Мир в 2023 году выглядит иначе, чем когда зазвенели первые тревожные звоночки по поводу Big Data. Катаклизм обработки информации, который все предсказывали, не состоялся. Объемы данных, возможно, немного возросли, но возможности аппаратного обеспечения росли еще быстрее. Поставщики услуг все еще продвигают свои возможности масштабирования, но люди, которые сталкиваются с ними на практике, начинают задаваться вопросом, как они вообще связаны с их реальными проблемами.

А дальше будет и того интереснее.

Читать далее

Заблуждения программистов относительно времени

Reading time3 min
Views92K
За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

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

Пишем расширение Chrome, которое ворует вообще всё

Reading time10 min
Views28K

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

Мы добьёмся двух целей:

  • Исследуем грани возможного для расширений Chrome
  • Продемонстрируем, что вы подвержены опасности, если не будете аккуратны с тем, что устанавливаете.

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

Юпитер – главный обвиняемый в деле о вымирании динозавров

Level of difficultyMedium
Reading time7 min
Views24K

На КДПВ вы можете видеть модель кратера Чикшулуб — одного из древнейших ударных кратеров диаметром 180 км. Падение метеорита (кстати, попробуйте в десктопной версии Google поискать «метеорит») в это место океана, где глубина была небольшой, вызвало массовое вымирание на Земле. Кратер Поль на Марсе мог образоваться сходным образом 3,4 млрд лет назад. Скорее всего, два этих события были вызваны воздействием на крупный астероид массивной планеты – и вряд ли это могли быть простые случайности...

Одна из самых страшных угроз жизни на Земле – столкновение с крупным космическим телом. Будь то астероид, комета, какой-нибудь ещё межзвёздный странник – если у него будет достаточно энергии, если он будет хотя бы несколько километров в диаметре – такое столкновение может вызывать массовое вымирание или даже стерилизовать живую планету, закончив цепочку жизни, развивавшуюся миллиарды лет. Подобные столкновения происходят по всей Вселенной и даже в Солнечной системе постоянно. Одно из самых знаменитых случилось около 65 млн лет назад – на Землю упал крупный астероид, вызвавший 5-е массовое вымирание с момента кембрийского взрыва (мел-палеогеновое вымирание или «K-T вымирание») и очистивший землю от 70% всех видов, включая всех нептичьих динозавров.
Читать дальше →

Js, трюки, наблюдения, бенчмарки и как Лиса уничтожает Хром. Я протестировал всё, что вам было лень

Reading time4 min
Views26K
Картинка, конечно, стронгли анрилейтед

Разные трюки я тестировал на Google Chrome 107.0.5304.107 и Mozilla Firefox 107.0 на Windows 10.

Чтобы результаты всегда были железно воспроизводимыми, я отключил все С-State’ы, ядра зафиксировал на 5 ГГц.

У меня 9900К, это Coffee Lake c AVX256, какие оптимизации применит Jit для вашего процессора — я не знаю, результат на вашем компьютере может отличаться от моего, в т.ч. из-за микроархитектуры процессора.

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

Выйди и зайди правильно

Reading time8 min
Views55K

Управлять программистами в ИТ-компании – дело особое. Не сказать, что сильно сложное. Совру, если назову простым. Особое.

Книжек, статей, курсов создано великое множество. Что-то помогает, у кого-то получилось. Собственно, промахнуться с оценкой сложно – отрасль ведь не просто существует, но и весьма активно развивается. Даже в нашей деревне. Значит, как-то, кое-как, с горем пополам, но управление программистами не только возможно, но и получается.

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

Регулярно ИТ-бизнес думает-думает, решает-решает, плюнет, да и снова попробует старый добрый метод: нанять успешного руководителя из другой сферы. Производство, строительство, торговля – ну суть. Оттуда много кандидатов, у них подтверждённый опыт, зачастую – MBA, и они такие прям чёткие всегда! Знают, чего хотят, на что способны, чего им нужно.

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

Много раз пытался объяснить, помочь – и начинающим руководителям-варягам, и тем, кто их тащит в ИТ. Никто, разумеется, не слушал. Ну да я уже привык, поэтому сижу себе помалкиваю.

Однако, тут такая история вышла: в ИТ-компанию собралась устроиться некто Ира, хорошая знакомая моего хорошего знакомого. Он, как мог, пытался её отговорить, но не преуспел, т.к. сам работает программистом, и руководителем никогда не был.

Попросил меня. Я предложил формат статьи – и моё мнение услышит, и ваше. В конце концов, вполне возможно, я не прав, как это обычно случается (если верить вашим комментариям).

Итак, погнали. Буду писать, как бы лично обращаясь к Ирине.

Читать далее

YAML из Ада

Reading time9 min
Views81K

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

Данный пост является нытьём и он более субъективен, чем мои обычные статьи.
Читать дальше →

Темная тема = шрифтовой ад

Reading time2 min
Views15K

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

Читать далее

Независимые онлайн-сервисы: философия свободного интернета и истории его администраторов

Reading time30 min
Views9.4K

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

Здесь не будет технических спецификаций и команд для копипасты в терминал, только истории людей (в том числе значительных персон даркнета). Что может быть лучше, чтобы увидеть источник жизни независимого интернета, как не личные убеждения и истории администраторов свободных интернет-ресурсов?

Читать далее

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

Reading time23 min
Views241K

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

Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.

Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все). 

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

И хорошо видно, как эта способность в широких массах студентов заметно плавно падает. Причем не только в нашей стране. Придуман даже специальный термин: «цифровое слабоумие» ("digital dementia") — снижение когнитивных способностей, достаточно серьезное, чтобы повлиять на повседневную деятельность человека. 

Кому интересно как теряют мозг студенты масштабы бедствия и что с этим делать — добро пожаловать под кат!

Читать далее

Почему Билл Гейтс сделал себя сам. Развенчиваем мифы о всемогущей матери

Reading time11 min
Views21K

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

Но всё это – полная ерунда. Сегодня поведаю вам о том, почему Билл Гейтс сделал себя сам, что предшествовало его работе с IBM, и почему его мать, при всем уважении к ней, была неспособна повлиять на его судьбу так, как это представляют в своих влажных мечтах многие наши соотечественники.

Пора разобраться с этим недоразумением раз и навсегда.

Читать далее

Работа с графикой на языке Rust

Reading time19 min
Views15K

Всем привет! Меня зовут Саша и я backend разработчик. Нет, не на rust. Но раст мой любимый язык и недавно я задался целью портировать движок онлайн игры, написанный на C++. Первый месяц ушел на то, чтобы разобраться с бинарными ассетами, их чтением и управлением. Но статья будет не об этом, а о WGPU.

Читать далее

Децентрализованный поиск для свободного веба

Reading time12 min
Views11K

Возможно ли создать поисковую систему, которую тяжело подвергнуть цензуре, влиянию и блокировке?

Говоря техническим языком, возможно ли выполнять полнотекстовый поиск не имея удаленного сервера, удобным для пользователя способом, одновременно храня поисковый индекс в peer-to-peer системе и имея возможность быстро обновлять поисковый индекс?

Да, это возможно!

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

Читать далее

Как написать лучший пост на Хабре. 7 ответов, 7 советов

Reading time9 min
Views16K

1-го января в 6 утра воскресенья мне пришла мысль поделиться с Хабра-сообществом о том, как писать статьи на Хабр, чтобы они попадали в Лучшее. За сутки, за неделю, месяц, и если вы сможете взломать 3000 паролей или сделать комикс в духе Фриланс vs. Офис, то и в лучшее за все время!


Кто я такой чтобы не пить советовать? — Спросите вы. Не вдаваясь в фаллометрию, я просто люблю писать про IT, а зарабатываю на жизнь разработкой на .NET. За что Microsoft (хотя не только за это), выдал мне ачивку MVP и это мотивирует писать дальше.


А официально, началось все с Хабрахабра в 2011-ом году. Когда я, задолбавшийся разбирать индусские С++-вермишелины, отрапортовал в песочницу пост про избыточность С++. При этом не сильно рассчитывая на фидбек или инвайт, а что называется — просто выговориться. Каково было мое удивление, когда через пару дней мне прилетел не один, а 3 инвайта. Сам пост взлетел в топ Хабра получив 275 плюсов и висит в “С++ / Лучшее” до сих пор.


Так я встал на путь любительского IT-блоггерства. Потом были попытки создать свои тематические блоги про мобильную разработку, стартапы и IT-бизнес. Но времени постоянно постить и PR-ить блог не было, соответственно и трафика тоже полтора человека в день. Поэтому продолжал постить туда, где уже есть аудитория. Был посты на Цукерберг Позвонит (VC.ru), AIN.ua, Geektimes.ru, где-то еще писал, как пить дать. В  общей сложности у меня более 50-ти публикаций на тему IT.


Поэтому считаю уполномоченным расшарить советы, которые помогут вам писать качественный контент и получать бóльший фидбек от читателей. Будь то рейтинг, карма, избранное и просмотры. И как итог: ↑реальная карма, ↑общий вклад в IT-сообщество, ↑популярность, ↑авторитет, ↑трафик на ваш сайт.

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

Как мы себя обманываем, только бы продолжать пользоваться Golang

Reading time21 min
Views80K

За два года с тех пор, как я опубликовал статью I want off Mr Golang's Wild Ride, она вновь и вновь всплывала на Reddit, Lobste.rs, на HackerNews и в других местах.

Всякий раз дискуссия выходит к одним и тем же ответам:

Go!

Раздувание кода стало астрономическим

Reading time5 min
Views98K

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

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

… но по сути, речь идёт о том, что нужно зарегистрировать несколько файлов, считать их, загрузить, а затем закрыть соединение и записать в файл лога, всё ли прошло успешно, а если нет, то что именно случилось. В этом нет ничего сложного, и даже я писал с нуля подобный код при помощи Wininet API и PHP на сервере, общающемся с моей базой данных MySQL. Наверно, моя система была не такой надёжной, как системы уровня энтерпрайза, однако поддерживала сотни тысяч загруженных файлов, их верификацию, скачивание и логирование. Наверно, это работа для одного кодера на две-три недели?

Специальный инструмент загрузки на сервер, которым я пользуюсь сегодня, суммарно имеет 230 МБ клиентских файлов и задействует 2,7 тысяч файлов для управления этим процессом.
Читать дальше →

Участившиеся атаки на сервер

Reading time10 min
Views13K

Вопрос безопасности сервера с каждым днём становятся всё более актуальней, а обеспечение их безопасности — всё сложнее. После 28 мая 2022 г. участились кибер атаки в том числе на малый и средний бизнес. Эта напасть не обошла стороной и Красноярск. За месяц пострадало 4 клиента нашей небольшой компании. У всех четверых, при посещении сайта, появлялся видео ролик с антивоенными призывами. Из них трое настраивали свой сервер сами и сказать как их взломали я не могу поскольку не владею объективной информацией. По четвёртому точно знаю что он попался на фишинг и передал злоумышленнику доступ по ssh.

Читать далее

Information

Rating
9,240-th
Location
Bratislava, Bratislava, Словакия
Date of birth
Registered
Activity