Pull to refresh
396
187
Алексей Костенков @Erwinmal

Рептилоид

Send message

Жизнь в Норвегии: 6 лет спустя

Reading time11 min
Views59K

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

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

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

Читать далее

Упрощаем «простой» ELF

Level of difficultyMedium
Reading time13 min
Views8.2K

Давайте-ка напишем простую программу для Linux. Насколько трудной она может быть? Только тут надо учесть, что простота противоположна сложности, но не трудности*, и создать нечто простое на удивление трудно. А что останется, если избавиться от сложности стандартной библиотеки, всех современных средств безопасности, отладочной информации и механизмов обработки ошибок?
Читать дальше →

Почему свободного времени всё меньше, если производительность труда растёт?

Level of difficultyEasy
Reading time8 min
Views58K


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

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

Как видим, этого не произошло.
Читать дальше →

Превращаем Android-смартфон в USB-клавиатуру, мышь и флешку

Level of difficultyHard
Reading time29 min
Views36K

Android-смартфон при подключении к компьютеру через USB может выглядеть как медиаустройство, модем или хранилище файлов. В этой статье мы научимся делать из него USB-клавиатуру, мышь и флешку.
Читать дальше →

Секретная китайская плата: контроллер стиральной машины

Level of difficultyEasy
Reading time8 min
Views43K


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

Сегодня мы будем собирать почти настоящую плату управления стиральной машины и изучать алгоритмы её работы.

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

KORG в кармане

Level of difficultyEasy
Reading time7 min
Views9.4K
image

Игровые консоли могут издавать звуки? Звуки могут меняться, если в игре происходят разные действия? Могут. Так, стоп! Но ведь это уже основа для создания музыкального софта для консолей. «Ни слова больше!», — слова не мальчика, но композитора, который стоит за созданием портативных версий KORG для Nintendo.
Читать дальше →

Четыре способа оптимизации ПО

Level of difficultyMedium
Reading time13 min
Views17K

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

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 2

Level of difficultyMedium
Reading time8 min
Views7.3K

Я продолжаю рассказывать, как HTML и CSS могут улучшить или ухудшить доступность интерфейсов. В своём рассказе я использую свой опыт и моего незрячего знакомого Ильи.


В этой статье будет: атрибут autofocus и его нюансы, паттерн «Skip-link» и идея Ильи об использовании его на практике, проблема использования одинаковых ссылок для одной новости, что не так с кнопкой «Наверх» и как вы спрятали список от скринридеров.


Давайте начнём!

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

Как Rust меняет мышление разработчика

Level of difficultyEasy
Reading time9 min
Views50K
Я страшно ненавижу C++. Обычно я люблю программирование, но каждый проект, с которым я имел дело на C++, ощущался как монотонная рутина. В январе 2023 года я пошёл по пути изучения Rust, поэтому теперь могу сказать, что знаю язык системного программирования, который действительно люблю использовать.

Первый стабильный релиз Rust появился в 2015 году, и каждый год, начиная с 2016, он признаётся в Stack Overflow’s Annual Developer Survey самым любимым языком (в 2023 году эта категория называется «обожаемый»). Почему же разработчики, ощутившие вкус Rust, не могут отказаться от его использования? Похоже, в мире прогремевших наследников C/C++ репутация растёт только у Rust. Как же этот язык, появившийся на сцене меньше десятка лет назад, стал настолько популярным?

Ржавый красный краб Феррис по версии Midjourney

Кривая обучения оказалась крутой. Я нашёл многое, что мне нравится в Rust, но постоянно попадал в его ловушки. Однако в конечном счёте именно препятствия и проблемы, с которыми столкнулся, я научился любить больше всего.

Я начну историю с разговора о том, что легко полюбить — со среды Rust, управления пакетами и документации. Затем я расскажу о системе типов и типажах (trait). Далее я поведаю о тех возможностях тестирования и test driven development, которые становятся возможными благодаря Rust. Наконец, мы обсудим самую запутанную и сбивающую с толку часть — одержимость Rust тем, кто какой переменной владеет.
Читать дальше →

Войны битов

Level of difficultyEasy
Reading time37 min
Views15K

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

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

Будем заниматься странными вещами: подсчётом бит в игровых приставках и попытками найти в этом занятии какой-то глубокий смысл. Открывайте форточки, будет душно!
Читать дальше →

«Окей, бумер» — как шутеры в ретро-стилистике потеряли самобытность

Level of difficultyEasy
Reading time8 min
Views15K

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

Как и почему я писал для Флиппера на Си-с-классами

Level of difficultyMedium
Reading time8 min
Views12K
Мой Флиппер дошёл до меня больше полугода назад, но что-то под него написать я собрался только сейчас. Его API рассчитаны на язык С — а у меня с ним опыта не очень много. Но проблем с тулингом не возникло — у Флиппера есть своя система сборки, которая скачала мне нужный тулчейн и сгенерировала настройки для IDE.

А для написания кода я решил использовать всё же не C, а C++ — точнее, даже «Си-с-классами». На мой взгляд, затуманенный языками более высокого уровня, такой подход получился удобнее, чем писать на чистом C. Результат можно увидеть в моём репозитории, а в этой статье я попытаюсь описать, какие конкретные фичи языка я использовал, и как именно они мне помогли.

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

Как зловредные приложения могут скрывать работу с буфером обмена в Android 14

Level of difficultyMedium
Reading time8 min
Views7.5K

Вы когда-нибудь копировали в буфер обмена уязвимую информацию, например, пароли, номера кредитных карт, сообщения или личные данные? Если да, эти данные могут оставаться в буфере устройства достаточно длительное время. Доверяете ли вы буферу обмена и приложениям, получающим доступ к этим данным? В этой статье мы изучим Android Clipboard Manager и продемонстрируем необходимость более качественной защиты копируемых данных.
Читать дальше →

Управление Linux-сервером — самая ценная инвестиция

Level of difficultyEasy
Reading time6 min
Views80K

В эпоху облаков настройка Linux-сервера своими руками кажется неким вымирающим искусством. Для непосвящённого человека даже bash-скрипты выглядят как заклинания, а коллеги проникаются уважением к сисадмину, как древние индейцы к своему шаману…

Сейчас это «древнее искусство» вновь стало актуальным. История идёт по кругу — всё старое возвращается в новом виде. Запуск сервера на своём хостинге стал хорошей альтернативой облакам. Этому есть ряд причин, которые мы не будем подробно разбирать, только повторим вкратце: безопасность, свобода, контроль над своими данными, экономия финансов.
Читать дальше →

Пишем графический ASCII-калькулятор с помощью стандартной библиотеки Си

Level of difficultyHard
Reading time17 min
Views16K

Программа calculator.c родилась как школьный проект в рамках Student Innovation Scholarship. Сперва я решил написать простой инструмент для построения графиков функций с помощью символов ASCII, но после завершения первого прототипа понял, что задача намного сложнее, чем предполагалось. Вернувшись к проекту год спустя, я увидел, что в нём есть много неочевидных нюансов. Поэтому предлагаю разобрать весь процесс разработки моего графического калькулятора с нуля.


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

Электромагнетизм и некоторые интересные явления и процессы

Level of difficultyEasy
Reading time12 min
Views18K
Картинка Freepik

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

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

Sovietwave и Sovietpunk: как романтика несбывшегося переплавила ностальгию по СССР в новый жанр? Часть 1

Level of difficultyEasy
Reading time7 min
Views31K

Выход «Atomic Heart» не просто стал громким событием в истории российского геймдева — он наиболее отчётливо отразил любопытную культурную тенденцию последней дюжины лет. С начала 2010-х футуристические образы и сюжеты в подчёркнуто советском стиле стали всё чаще встречаться в Рунете в самых разных формах. Особенно ярко это стало проявляться ближе к концу десятилетия с массовым распространением музыки в стиле ретровейва — российским ответвлением которого стал стилизованный под мелодии и ритмы советской эстрады Sovietwave. Ну а сейчас советский ретрофутуризм уже можно назвать мейнстримом, даже не особенно прибегая к совам и глобусам. Он выражает ностальгию по положительным чертам и характерным деталям советской эпохи, но с начала 90-х годов эта ностальгия успела сильно измениться. Что же с ней случилось?
Читать дальше →

Недооценённый принцип квантового мира, без которого жизнь была бы невозможной

Level of difficultyMedium
Reading time8 min
Views21K


О каких законах, принципах и свойствах квантового мира обычно вспоминают люди, думая о физике элементарных частиц?

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

Говоря более формально, принцип неопределённости представляет собой одно из множества математических неравенств, накладывающих фундаментальное ограничение на произведение точности некоторых связанных пар измерений квантовой системы, таких как положение, x, и импульс, p. Такие парные переменные называются дополнительными или канонически сопряжёнными переменными. Принцип неопределённости, впервые введённый в 1927 году немецким физиком Вернером Гейзенбергом, утверждает, что чем точнее определено положение частицы, тем менее точно можно предсказать её импульс, исходя из начальных условий, и наоборот.
Читать дальше →

Как эффективно добавлять документацию при разработке продукта?

Level of difficultyEasy
Reading time7 min
Views12K

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

Кейпад для управления умным домом — проект выходного дня

Level of difficultyEasy
Reading time8 min
Views21K

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

О сборке и настройке макрокейпада можно почитать далее в статье.
Читать дальше →
1
23 ...

Information

Rating
34-th
Works in
Registered
Activity