Как стать автором
Обновить

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

Как работает протокол X11 на самом нижнем уровне

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 150

X11 это тот механизм на чем работает весь графический интерфейс Unix подобных ОС.


Но мало кто знает как он работает на самом деле. Потому что с годами он оброс слоями и слоями библиотек, которые стремятся скрыть саму сущность протокола.


А протокол в своей сути прекрасен. Он лаконичен и почти совершен.


В Интернете есть полная документация по протоколу. Но дело в том, что эта документация большая, написана не совсем ясным языком и по сути представляет просто спецификация. Важные моменты никак не обозначены, а как использовать тоже оставлено на фантазии читателя.


А все книги и статьи по использованию X11 описывают это через библиотеки прокладки типа XLib и XCB, и даже, что хуже, GTK или Qt.


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


Как бы то ни было, если кому-то интересно как все работает на самом деле, пожалуйста под кат.

Читать дальше →
Рейтинг 0
Комментарии 0

Новости

Пишем веб-приложение вместе с ChatGPT и Stable Diffusion

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 479

Всем привет! Ни для кого не секрет, что ChatGPT 4, получившая развитие в прошлом году, уже активно внедряется в обиход разработчиков. Во время новогодних каникул я решил испытать новинку, и попробовать разработать совместно с ботом небольшое веб-приложение на базе Angular 17. Что из этого вышло, читайте далее.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 2

6 шагов для поиска российских и зарубежных клиентов на LinkedIn

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 212

Это Бренды на коне. LinkedIn — известная во всём мире платформа для делового общения, её преимущество в том, что она даёт реально уникальные возможности для поиска клиентов и партнеров. В русскоязычном пространстве эта платформа не так популярна, тем не менее, там обитает очень полезная для нетворкинга аудитория, в том числе зарубежная. Еще одно преимущество: эту площадку пока не постигла участь других соцсетей, которые заполонила реклама курсов и наставничеств. Сейчас это деловая площадка, где пользователи могут обучаться и налаживать бизнес-связи.

Читать далее
Всего голосов 4: ↑0 и ↓4 -4
Комментарии 1

15 отличных подкастов про стартапы и развитие ИТ-проектов на русском языке

Время на прочтение 9 мин
Количество просмотров 1.1K

Лайфхаки, живой опыт и ошибки, скрытые возможности на разных рынках, а еще новые идеи для развития своего продукта – все это вы найдете в свежих подкастах из подборки.  

Читать далее
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 1

Мой первый прототип поискового движка

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1.3K

Я реализовал первый прототип собственного механизма поиска, который сокращённо назвал PSE (Personal Search Engine). Создал я его с помощью трёх скриптов Bash, возложив всю основную работу на sqlite3, wget и PageFind.

Браузер Firefox вместе с Newsboat сохраняют полезную информацию в базах данных SQLite. В moz_places.sqlite содержатся все посещённые URL-адреса и адреса закладок (то есть moz_bookmarks.sqlite базы данных SQLite). У меня получилось около 2000 закладок. Это меньше, чем я предполагал, так как многие оказались нерабочими из-за битых ссылок.

Нерабочие URL-адреса страниц сильно замедляют процесс сбора, так как wget приходится ожидать истечения различных таймаутов (например, DNS, ответа сервера, время скачивания). URL-адреса из «истории» составили бы интересную коллекцию для сбора, но тут не обойтись без списка исключений (например, нет смысла сохранять запросы к поисковым системам, веб-почте, онлайн-магазинам). Изучение этого вопроса я отложу до следующего прототипа.
Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Комментарии 6

Туристический микродомик

Время на прочтение 3 мин
Количество просмотров 1.5K

Я занимаюсь разработкой и производством диктофонов для безопасности Edic-mini, но в голову часто приходят мысли о других полезных устройствах, которые мне были бы интересны, но их нет (или я не нашел) на рынке. Я решил оформлять мысли о таких устройствах в виде статей на Хабре, чтобы получить обратную связь от умных людей и, возможно, найти заинтересованных партнеров в их разработке и производстве.  Идеи должны работать, а не пылиться в голове. 

Итак, очередная идея: туристический микродомик.

нулевая идея: Гирокарт за 1000р  

первая идея:  Камерофон-кирпич ,

вторая идея: Простое устройство для облегчения запуска двигателя автомобиля на морозе.  

третья  идея: Туристический электросамокат 

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 20

Технические задания на собеседовании QA Junior+

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 1.2K

Привет, Хабр! Меня зовут Иван, я в тестировании более 2-х лет. Начинал свой путь с курса Яндекс Практикума (подробнее в тг канале). Продолжаем разбирать вопросы и технические задания на собеседовании QA manual. Перед прочтением этой статьи рекомендую ознакомиться с моей предыдущей работой Какие вопросы я задаю на собеседовании QA Junior+

3. Протестировать карандаш для различных видов тестирования.

Для начала необходимо спросить "Есть ли требования к карандашу?" Если вы пропустите этот вопрос и приступите к тестированию, то считай вы провалили задание.

- Требований нет.

1 шаг. Исследовательское тестирование на основе косвенных требований.

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

✏️ Форма влияет на функционал и на удобство использования. Круглый скатится со стола, с гранями не должен "резать" руку, три грани слишком крупно и подойдет не для всех пользователей. Есть ли ластик на карандаше и выполняет он свою прямую функцию?

✏️ Цвет не влияет на функционал (говорим не про цвет графита, а про визуальную часть). Цвет не должен нести лишнюю информацию, кроме как визуального акцента или бренда компании;

✏️ Запах не должен быть специфичным;

Протестировать карандаш
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 0

Частые и не очень грабли ООП проектирования на Java

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1.4K

За многолетнюю карьеру и до сих пор, мне довольно часто приходится сталкиваться с типичными "болячками" разного уровня программистов, и как показал мой опыт, описанные ниже кейсы встречаются довольно часто, почти во всех проектах. Да, возможно мне не повезло, и именно мне приходится лицезреть повторяющиеся из раза в раз приемы, которые в результате приводят к плохо поддерживаемому коду. Т. е. такой код действительно работает, и выполняет поставленную задачу, однако обладает определенной связностью, так что даже сам автор тратит уйму времени на его поддержку. В этой статье я постараюсь разобрать часть из них. Цель - поделиться своим опытом, а так же получить обратную связь от уважаемой аудитории.

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 7

5000 TON, 100 ТГ-премиум, геймификация и розыгрыш. Как Дуров в свой крипто-Кошелёк под Новый год новых юзеров зазывал

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 987

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

• 17 000 "победителей";
• 170 000$ пополнений;
• 35 000 подписок на канал.

Расследование: как они это сделали, что интересного под капотом и почему нужно брать такой пример на карандаш.

Читать далее
Всего голосов 4: ↑1 и ↓3 -2
Комментарии 2

Водяной мостик Ab initio

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 975

На Новый Год Дед Мороз подарил младшей дочке электрофорную машину (электростатический генератор Уимсхёрста). Они в 7 классе как раз закончили проходить электростатические явления. Мы тут же воспользовались подарком и провели с дочкой ряд интересных опытов, начиная от электростатического взаимодействия заряженных султанчиков, изготовленных из ёлочной мишуры, задувании пламени свечи «ветром» коронного разряда с кончика иглы, до исследования электропроводности пламени миниатюрной газовой горелки («турбо-зажигалки»).

Наиболее сложный для проведения в домашних условиях и красивый опыт мы с дочкой засняли на видео.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 2

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

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 859

Всем привет! Меня зовут Алексей Гмитрон, я фулстек-разработчик и наставник на курсе «Фронтенд-разработчик» в Практикуме. Довольно долгое время я разрабатываю интерфейсы, а ещё дольше — пользуюсь ими. 

В этом году я много путешествовал, поэтому нередко заполнял формы с анкетами на разные визы — в них бывало по 30—40 полей. Когда что-то шло не так, часто сайты не давали никакой обратной связи. Иногда они сбрасывали всё, что я заполнял в течение часа, если одно из полей невалидно. 

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

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

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 2

Вестник Midjourney: новая документация, генерация фрагментов и тюнер стилей

Время на прочтение 6 мин
Количество просмотров 777

В начале 2023 года я рассказывал о четвертой версии Midjourney, а затем — о альфа-доступе к пятой. Сейчас актуальная версия — 5.2, а недавно вышла альфа шестой.

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

Под катом рассказываю о нововведениях и различиях между релиз- и альфа-версией. Конечно, с иллюстрациями. Если формат окажется интересным, протестирую шестую Midjourney и напишу о ней в Академии Selectel. Подробности под катом!
Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Комментарии 2

Зелёная энергетика: последняя надежда или большой обман?

Время на прочтение 9 мин
Количество просмотров 5.4K

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

И всё бы хорошо, но красивая картинка не всегда соответствует действительности. Разберёмся, почему из-за высокого спроса на батареи портится питьевая вода в Андах, а мода на солнечные батареи создала токсичные свалки. И почему не всегда она такая зелёная эта зелёная энергетика.

Читать далее
Всего голосов 22: ↑14 и ↓8 +6
Комментарии 136

Ближайшие события

DevX: ориентированный на разработчиков подход к измерению и повышению производительности

Время на прочтение 5 мин
Количество просмотров 698

Привет, Хабр! Меня зовут Олег Хромов, в МТС я руковожу центром «Управление разработкой». В статье расскажу, как мы оцениваем производительность IT-специалистов. Универсальные методы работают плохо, поэтому мы пришли к специально адаптированному для IT подходу под названием DevX. Именно его я и советую применять.

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

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 2

Как я наконец осуществил мечту заняться разработкой игр

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 5.1K

Начало 2024 года. У меня на руках демка игры, над которой я работал последние полгода. Ещё год назад я занимался разработкой мобильных приложений и сидел на хорошей зарплате, а сейчас я безработный инди-разработчик! Но как так вышло?

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 11

Рабочее место мечты

Время на прочтение 7 мин
Количество просмотров 6.6K

Всем привет!

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

Итак, давайте разбираться!

Читать далее
Всего голосов 23: ↑17 и ↓6 +11
Комментарии 24

Dead by Daylight: мультиплеерный ужас или кровавый Super Smash Bros

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 977
image

Хоррор-игры за последние десять лет пережили некий ренессанс — популярность отдельных инди-проектов вкупе с возникновением таких явлений как «стриминг» и «летсплеи» вернули жанр на рельсы, дав толчок как мейнстримным ААА-проектам, так и независимым работам.

Мультиплеерным хоррором никого не удивишь: все хотя бы раз играли с друзьями в кооперативные Left 4 Dead, Killing Floor или CoD Zombies. Другое дело соревновательная игра, которая называет себя ужастиком. Какие правила надо придумать и как сбалансировать стороны, чтобы никто не чувствовал себя приниженным, и всё ещё вызывать страх у игроков? Ответ дадут канадцы из Behaviour Interactive, создавшие уникальный проект, который уже почти 8 лет является одной из самых популярных онлайн-игр и отдаёт дань уважения всей культуре хорроров.
Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 1

ChatGPT — это смешно. Самые безграмотные мифы про интернет-журналистов и копирайтеров

Время на прочтение 7 мин
Количество просмотров 1.8K

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

А здесь хочу развеять популярные мифы про интернет-журналистов и копирайтеров.

Читать далее
Всего голосов 12: ↑6 и ↓6 0
Комментарии 16

Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 2.9K
image


Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Комментарии 19

Jenkins: оптимизируя динамический пайплайн → распределённая сборка компонентов ОС

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 931


В процессе улучшения подходов к менеджменту зависимостей компонентов нашей Операционной Системы появилась необходимость перейти от монолитной статической сборочной системы на основе CI/CD инструментов к динамическому распределённому подходу с порождением сотен и тысяч автономных задач. Как выяснилось в процессе, это не самый радужный сценарий использования систем автоматизации, но вполне достижимый.


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


Также частично раскроем информацию о том, как мы выполняем распределённую сборку дистрибутивов.


Ожидается много текста и примеров кода.

Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 8