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

Сайт Pudn был закрыт

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

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

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

Ура! Исходники Андроида опять доступны

Время на прочтение2 мин
Количество просмотров4.7K
Буквально пару минут назад в гуглогруппе android-building появилось сообщение о переезде репозитория c kernel.org новый сервер. Исходники android 4.0 обещают выложить чуть позже.

Читать дальше →
Всего голосов 77: ↑59 и ↓18+41
Комментарии56

Наболевшее об исходном коде объектов БД

Время на прочтение3 мин
Количество просмотров5.4K
Представьте такую ситуацию: команда разработчиков работает над программой. При этом исходный код приложения нигде не хранится. Каждый программист с помощью специального декомпилятора выгружает нужный код из бинарника, работает с ним, а потом вновь собирает и отдает на дальнейшую разаработку коллегам.
Как вы думаете, это нормальная ситуация? Думаю, что нет.
Но почему-то такой подход довольно часто применяется при разработке приложений БД.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии29

Исключительная красота исходного кода Doom 3

Время на прочтение14 мин
Количество просмотров219K
image

Сегодня вас ждет рассказ об исходном коде Doom 3 и о том, насколько он красив.
Да, красив. Позвольте мне объясниться.
Читать дальше →
Всего голосов 281: ↑256 и ↓25+231
Комментарии245

Изучаем дерево исходников Windows 10: от телеметрии до open source

Время на прочтение8 мин
Количество просмотров48K
image

Насколько бы закрытым ни было программное обеспечение Microsoft, информации о своем внутреннем устройстве оно выдает предостаточно. К примеру, экспорт функций из библиотеки по именам дает представление о ее интерфейсах. В свободном доступе есть и отладочные символы, которые повсеместно используются для диагностики ошибок в ОС. Однако на руках у нас все равно имеются только скомпилированные бинарные модули. Становится интересно: а какими они были до компиляции? Давайте попробуем разобраться, как вытащить побольше информации об исходных кодах, не делая ничего незаконного.
Читать дальше →
Всего голосов 62: ↑61 и ↓1+60
Комментарии36

Как сделать правильную раскраску кода на «Хабре» и почему это так сложно

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


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

В моем случае сохранить разметку было особенно важно, поскольку статья представляла собой описание работы над кодом. Чтобы решить проблему, я создал инструмент, позволяющий перенести подсветку кода в выбранной схеме из IDEA в статью на «Хабре». Я расскажу о процессе создания инструмента и об особенностях его использования.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии7

Топ 25 инструментов DevOps 2021

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


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


В ходе опроса, проведенного аналитическим отделом Harvard Business Review, 48% респондентов заявили, что их компания полностью полагается на DevOps в контексте повышения эффективности. А более 80% представителей индустрии программного обеспечения заявили, что DevOps значительно повышает ценность их работы в том или ином виде.


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


2021 год станет важным годом для раскрытия потенциала DevOps. Он охватывает как команды разработчиков, Ops, IT и отделы обеспечения безопасности, так и различные этапы разработки программного обеспечения. Именно поэтому для каждой сферы существует множество инструментов на любой вкус и цвет.


Давайте подробно рассмотрим наиболее выдающиеся инструменты DevOps, доступные на рынке в настоящее время, с учетом важных категорий жизненного цикла CI/CD.

Читать дальше →
Всего голосов 26: ↑12 и ↓14-2
Комментарии7

CVE 2022-0847: Исследование уязвимости Dirty Pipe

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

Предисловие

Данная статья является переводом англоязычного исследования, посвященного
разбору уязвимости Dirty Pipe и непосредственно эксплоита, позволяющего ею
воспользоваться для локального повышения привилегий.

Оригинал

Введение

Уязвимость Dirty Pipe была обнаружена в ядре Linux исследователем Максом
Келлерманном(Max Kellermann) и описана им здесь. Несмотря на то, что статья
Келлерманна - отличный ресурс, содержащий всю необходимую информацию для
понимания ошибки ядра, все таки она предполагает некоторое знакомство с ядром
Linux.

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

TypeScript: разбираем исходный код Radash

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


Привет, друзья!


Radash — это современная альтернатива Lodash, библиотека, предоставляющая набор часто используемых утилит (вспомогательных функций), реализованных на TypeScript. В данной статье мы вместе с вами разберем исходный код нескольких наиболее интересных утилит.


Репозиторий с кодом библиотеки находится здесь.


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


Для тех, кому интересно, вот большая коллекция сниппетов JavaScript.


Начнем с чего-нибудь попроще.

Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии14

SourceBuddy динамически компилирует исходный код Java

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

Через два месяца после первого коммита в октябре 2022 года Питер Верхас, старший архитектор EPAM Systems, выпустил версию 2.0.0 SourceBuddy, новой утилиты, которая компилирует динамически исходный код Java, заданный в строке или файле, в файл класса. 

Утилит SourceBuddy требует Java 17 и представляет собой упрощенный фасад для компилятора javac, который обеспечивает ту же функциональность.

Версия 2.0.0 поддерживает комбинацию скрытых и нескрытых классов во время компиляции и выполнения. Кроме того, был упрощен API, включая критические изменения, такие как изменение метода loadHidden() на метод hidden(), поэтому и выпущен новый основной релиз. Полный обзор изменений для каждой версии доступен в документации по выпускам на GitHub.

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

Ruby Cross Reference

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


Ruby, как известно, просто выглядит, но сложно работает. В особенности это относится к официальному интерпретатору, Ruby MRI: документация на многие детали реализации, например, на байткод или GC, отсутствует даже на японском.

Я попытался упростить исследование кода, открыв сайт Ruby Cross Reference по мотивам LXR. Кроме MRI, проиндекированы еще JRuby и Rubinius.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии16

Как устроен jQuery: изучаем исходники

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

jQuery однозначно стал стандартом в индустрии веб-дева. Есть много отличных js-фреймворков, которые заслуживают внимания, но jQuery поразил всех своей лёгкостью, изящностью, магией. Люди пишут с использованием jQuery, люди пишут плагины для jQuery, люди даже пишут статьи про jQuery, но мало кто знает (особенно из новичков), КАК устроен jQuery.

В этой статье проведем небольшой экскурс во внутренности этого фреймворка и разберем, что внутри.
Статья рассчитана на базовые знания Javascript. Задумайтесь и, если вы знаете, как написать клон jQuery, то, скорее всего, вы тут не найдёте ничего нового. Остальным — добро пожаловать под кат

Читать дальше →
Всего голосов 212: ↑200 и ↓12+188
Комментарии40

По следам бага и немного о событиях MotionEvent в Android

Время на прочтение5 мин
Количество просмотров20K
Думаю, многие из нас писали код вида:

    @Override
    public boolean onTouch(View view, MotionEvent event) {
        final float x = event.getX();
        final float y = event.getY();
        // использование x и y...
        return false;
    }

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

Год назад я с друзьями разрабатывал приложение, где очень многое упиралось в обработку касаний. Однажды, загрузив новые исходники из репозитория и собрав приложение, я обнаружил, что вертикальная координата касания определяется неверно. Просматривая последние коммиты команды, я наткнулся на интересную строку, где внезапно от y-координаты отнималось 100. То есть, что-то вроде «y -= 100;», причем, это число не было вынесено как константа и вообще было непонятно почему именно 100. На мой очевидный вопрос я получил ответ «Ну, мы опытным путем определили, что в этом месте y-координата всегда на 100 (пикселей) больше, чем должна быть». Здесь, конечно, стоило бы перечитать документацию по обработке касаний и, просмотрев код проекта, найти ошибку, но я решил пойти более интересным путем – проследить по исходникам Android за MotionEvent от его получения до утилизации.

Если я смог кого-то заинтриговать историей в стиле «По следам полосатого бага» — добро пожаловать под кат.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии7

Как я одной кнопкой шарил разные данные в Android приложении

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


Как-то раз передо мной встала задача добавить экспорт в календарь к уже написанному экспорту обычных текстовых данных через ShareActionProvider кнопку. Сходу нашлись несколько вариантов, каждый из которых мне по каким-либо причинам не подходил.
Раскопать очень много кода
Всего голосов 17: ↑15 и ↓2+13
Комментарии4

Iosevka — ещё один шрифт для кодинга

Время на прочтение1 мин
Количество просмотров21K
Не совсем уже новость, но появился новый шрифт для программеров — Iosevka. Появляться он начал ещё осенью, но на Хабре упоминаний пока не было.



Iosevka — стройный моноширинный шрифт, вдохновлённый такими шрифтами, как Pragmata Pro, M+ и PF DIN Mono. Имеются варианты как с засечками, так и без, начертания с разными степенями жирности. Кириллица есть, само собой. Шрифт генерируется полностью из открытого исходного кода (при участии Node.js), путём настройки можно изменить начертание некторых знаков (таких как «a», «g», «l» и других).
Читать дальше →
Всего голосов 26: ↑12 и ↓14-2
Комментарии27

CodeRainbow: интерактивное изучение и документирование кода

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


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

У меня в процессе такой работы всегда остро ощущалась необходимость некоего инструмента, специально заточенного для облегчения процесса быстрого погружения в большие объемы незнакомого кода. Со временем появлялись все новые интересные задумки в разных областях, и все они требовали изучения больших объемов чужого кода. Децентрализованные сети, криптовалюты, компиляторы, операционные системы — все это большие проекты, требующие изучения значительных объемов кода. В какой-то момент я решил: надо просто взять и сделать этот специальный инструмент. В этой статье я представляю вашему вниманию то, что получилось в результате.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии8

Humble Weekly Sale и исходные коды Uplink, Darwinia, Multiwinia, Defcon за 1 цент

Время на прочтение1 мин
Количество просмотров10K
Сегодня Humble Bundle решил порадовать новой распродажей игр от компании Introversion Software.
В списке присутствуют:
  • DEFCON
  • Darwinia
  • Multiwinia
  • Uplink
  • Voxel Tech Demo
  • City Generator Tech Demo

Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии12

Как компания D-Link предоставляет исходные коды прошивок

Время на прочтение3 мин
Количество просмотров42K
Приветствую хабрчане!

У меня на работе есть несколько стареньких маршрутизаторов D-Link DI-524UP H/W Ver.: A1, выпускавшихся в 2005-2006 годах и доставшихся мне по наследству от прошлого админа. Понятно, что эти устройства отслужили свое, устарели как морально, так и физически и давно лежат на полке, но меня подкупило то, что у этой модели есть USB порт, и в основу прошивки положена операционная система Linux.
Читать дальше →
Всего голосов 80: ↑74 и ↓6+68
Комментарии43

Input — новый шрифт для программирования

Время на прочтение1 мин
Количество просмотров99K
Компания Font Bureau разработала новое семейство шрифтов Input, важнейшим из которых в данном случае для нас является шрифт Input Mono. Кириллица присутствует. Для персонального использования шрифты бесплатны.

Читать дальше →
Всего голосов 81: ↑72 и ↓9+63
Комментарии142

Как сохранить оригинальную расцветку вашего кода из Visual Studio в публикации на Хабрахабр. Сравниваем расцветки. Опрос

Время на прочтение22 мин
Количество просмотров11K
Привет, хабраюзер! В этом посте я расскажу, как можно сделать свой код на Хабре более «живым» благодаря простому способу сохранения его оригинальной цветовой схемы. А также предлагаю сравнить различные варианты расцветки кода.
Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии9
1