Pull to refresh

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

Reading time 2 min
Views 5.6K
Open source *

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

Читать далее
Total votes 15: ↑14 and ↓1 +13
Comments 5

Ruby Cross Reference

Reading time 1 min
Views 985
Ruby *


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

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

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

Reading time 6 min
Views 57K
jQuery *

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

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

Читать дальше →
Total votes 212: ↑200 and ↓12 +188
Comments 40

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

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

Читать дальше →
Total votes 77: ↑59 and ↓18 +41
Comments 56

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

Reading time 3 min
Views 5K
Oracle *
Sandbox
Представьте такую ситуацию: команда разработчиков работает над программой. При этом исходный код приложения нигде не хранится. Каждый программист с помощью специального декомпилятора выгружает нужный код из бинарника, работает с ним, а потом вновь собирает и отдает на дальнейшую разаработку коллегам.
Как вы думаете, это нормальная ситуация? Думаю, что нет.
Но почему-то такой подход довольно часто применяется при разработке приложений БД.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 29

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

Reading time 14 min
Views 217K
Programming *C++ *Game development *
Recovery mode
Translation
image

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

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

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

Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Comments 12

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

Reading time 5 min
Views 19K
Open source *Development of mobile applications *Development for Android *
Думаю, многие из нас писали код вида:

    @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 от его получения до утилизации.

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

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

Reading time 3 min
Views 42K
Information Security *
Приветствую хабрчане!

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

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

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

Читать дальше →
Total votes 81: ↑72 and ↓9 +63
Comments 142

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

Reading time 22 min
Views 11K
Visual Studio *C# *
Привет, хабраюзер! В этом посте я расскажу, как можно сделать свой код на Хабре более «живым» благодаря простому способу сохранения его оригинальной цветовой схемы. А также предлагаю сравнить различные варианты расцветки кода.
Читать дальше →
Total votes 14: ↑9 and ↓5 +4
Comments 9

Моноширинные шрифты с программистскими лигатурами

Reading time 2 min
Views 52K
Typography *
Программисты любят псевдографику. В любом языке полно составных знаков: ->, <=, ++, :=. По смыслу это один символ, но составленный из нескольких более простых. Мозгу требуются дополнительные усилия на то, чтобы считать и объединять такие конструкции на лету. Когда-нибудь, возможно, всех спасет Юникод, где символов хватит на сто языков вперед — если придумают удобный способ ввода и отомрет всё легаси. Но пока нам приходится читать и писать код в ASCII.

Казалось бы, дело швах. Но в апреле 2014 года Ian Tuomi придумал изящный выход: заменять часто встречающиеся последовательности лигатурами. Моноширинность при этом не ломается (если сделать ширину лигатуры кратной количеству символов, в нее входящих), код тоже не портится (лигатуры — чисто визуальная фича). Зато можно вместо -> нарисовать настоящую стрелочку. Это сильно облегчает мозгу сканирование и токенизацию кода: там, где по смыслу один символ, теперь и нарисован один символ. Самое главное, что это работает с любым, даже уже написанным кодом.
Читать дальше →
Total votes 84: ↑77 and ↓7 +70
Comments 167

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

Reading time 9 min
Views 10K
Java *Development for Android *
Sandbox


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

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

Reading time 1 min
Views 19K
Typography *
Не совсем уже новость, но появился новый шрифт для программеров — Iosevka. Появляться он начал ещё осенью, но на Хабре упоминаний пока не было.



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

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

Reading time 8 min
Views 46K
Positive Technologies corporate blog Information Security *Open source *Reverse engineering *
image

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

Декомпиляция RNC ProPack длиной в 5 лет

Reading time 6 min
Views 8.2K
Reverse engineering *

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



В данном материале я расскажу Вам, как на протяжении нескольких лет занимался реверсом 46 КБ (кажется — всего то!) исполняемого файла от AmigaOS, узнал много нового для себя, испробовал множество разных технологий, и, в итоге, добился своего — превратил декомпилированный Motorola M68000 ассемблерный код в C-шный код, которым может воспользоваться любой желающий.

Читать дальше →
Total votes 30: ↑29 and ↓1 +28
Comments 1

Еще одна реализация регистронезависимого поиска по кириллическим символам в SQLite

Reading time 4 min
Views 3.5K
C *SQLite *
Tutorial
Sandbox
Доброго времени суток, Хабровчане!

Проблема поиска по русским символам в SQLite давно уже стала притчей во языцех, причины ее появления довольно подробно описаны здесь. Впрочем, есть довольно распространенные решения данной проблемы, самым популярным из которых является подключение ICU, библиотеки, с помощью которой можно реализовать полноценный поиск по Unicode. Но мне хотелось более короткого в плане кода решения чтобы в результате поиск был:

  • регистронезависимым;
  • по русским и английским символам;
  • игнорирование символа ё/Ё при поиске;
  • быстрым;
  • использовал встроенный NOCASE collation.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Comments 0

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

Reading time 9 min
Views 4K
Self Promo


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

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

PVS-Studio Visits Apache Hive

Reading time 12 min
Views 1.1K
PVS-Studio corporate blog Information Security *Open source *Java *Big Data *
Рисунок 1

For the past ten years, the open-source movement has been one of the key drivers of the IT industry's development, and its crucial component. The role of open-source projects is becoming more and more prominent not only in terms of quantity but also in terms of quality, which changes the very concept of how they are positioned on the IT market in general. Our courageous PVS-Studio team is not sitting idly and is taking an active part in strengthening the presence of open-source software by finding hidden bugs in the enormous depths of codebases and offering free license options to the authors of such projects. This article is just another piece of that activity! Today we are going to talk about Apache Hive. I've got the report — and there are things worth looking at.
Read more →
Total votes 23: ↑20 and ↓3 +17
Comments 0

PVS-Studio в гостях у Apache Hive

Reading time 12 min
Views 3.2K
PVS-Studio corporate blog Information Security *Open source *Java *Big Data *
Рисунок 1

Последние десять лет движение open source является одним из ключевых факторов развития IT-отрасли и важной ее составной частью. Роль и место open source не только усиливается в виде роста количественных показателей, но происходит и изменение его качественного позиционирования на IT-рынке в целом. Не сидя сложа руки, бравая команда PVS-Studio активно способствует закреплению позиций open source проектов, находя затаившиеся баги в огромных толщах кодовых баз и предлагая для таких проектов бесплатные лицензии. Эта статья не исключение! Сегодня речь пойдет об Apache Hive! Отчет получен — есть на что посмотреть!
Читать дальше →
Total votes 37: ↑32 and ↓5 +27
Comments 1
1