Pull to refresh
0
0
Александр @rypy

User

Send message

Алгоритм сортировки Timsort

Reading time6 min
Views162K
Timsort, в отличии от всяких там «пузырьков» и «вставок», штука относительно новая — изобретен был в 2002 году Тимом Петерсом (в честь него и назван). С тех пор он уже стал стандартным алгоритмом сортировки в Python, OpenJDK 7 и Android JDK 1.5. А чтобы понять почему — достаточно взглянуть на вот эту табличку из Википедии.



Среди, на первый взгляд, огромного выбора в таблице есть всего 7 адекватных алгоритмов (со сложностью O(n logn) в среднем и худшем случае), среди которых только 2 могут похвастаться стабильностью и сложностью O(n) в лучшем случае. Один из этих двух — это давно и хорошо всем известная «Сортировка с помощью двоичного дерева». А вот второй как-раз таки Timsort.

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

Линейная алгебра для разработчиков игр

Reading time19 min
Views796K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →

Интересные вопросы о программировании

Reading time1 min
Views9.8K
На сайте programmers.stackexchange.com люди задают различного рода вопросы, связанные с программированием и не только. Вот, на мой взгляд, наиболее интересные(ответы, правда, на английском).
Читать дальше →

PVS-Studio научился следить за тем, как вы программируете

Reading time4 min
Views1.4K
PVS-Studio on-the-fly
В PVS-Studio появился режим работы, который поможет максимально рано выявлять ошибки и опечатки. Анализатор запускается сразу после компиляции файлов и если что-то не так, покраснеет от стыда за ваш код. Фича доступна на данный момент только для пользователей Visual Studio 2010.
Читать дальше →

Парикмахер, лицензии Creative Commons — лекарство от РАО

Reading time6 min
Views10K
Так… надеюсь, я ничего не перепутал в этой статье. На всякий случай предупреждаю, я не юрист и ничего не гарантирую, так что юристы могут меня поправить.
Парикмахеров могут заставить отказаться от привычки слушать музыкальное радио во время работы: Российское авторское общество (РАО) отсудило 80 000 руб. у владельца нижегородской парикмахерской и грозит аналогичными исками другим парикмахерским, салонам красоты, химчисткам и даже маршруткам, если они не согласятся платить.

Суд Автозаводского района Нижнего Новгорода 23 мая удовлетворил иск Волго-Вятского филиала РАО к салону-парикмахерской № 100 о взыскании 80 000 руб. в пользу российских авторов пяти песен, сообщил «Ведомостям» юрисконсульт Сергей Чекмарев. В ходе проверки 26 февраля сотрудники РАО зафиксировали, что в салоне звучало радио «Дача». «Публичное воспроизведение музыки в коммерческих целях без выплаты денежной компенсации авторам песен — нарушение авторского права», — пояснил Чекмарев.

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

«Пока договор с нами эти организации еще не заключили, а нарушают авторское законодательство на каждом шагу», — возмущается директор Волго-Вятского филиала РАО Максим Королев. Ранее Королев говорил о планах РАО брать деньги с владельцев маршрутных такси.
Читать дальше →

Память наше все!

Reading time4 min
Views17K

Память наше всё!


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

I2P — Проект Невидимый Интернет

Reading time2 min
Views274K
Всем доброго времени суток!

С недавних пор организации по защите авторских прав и «отделы К» многих стран начали вести весьма агрессивную политику против анонимности в сети и пиратства. Особо показательны истории с torrents.ru и ifolder.ru.

Подробнее об интернет-цензуре можно почитать в Википедии.

Чтобы оградить пользователя и хостера от «вредного» влияния государства и частных компаний была создана сеть I2P. Что же это такое и как подключиться к I2P — читаем под катом.

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

Расширение функциональности готовых программ

Reading time11 min
Views43K
В мире ПО существует огромное количество программ, забытых своими разработчиками. Хорошо, когда уже есть хорошая альтернатива. А если ее нет? В программе может катастрофически не хватать каких-то мелочей, некоторые досадные ошибки могут годами доставлять массу неудобств пользователям, а на новых версиях ОС программа и вовсе может отказаться работать. Далеко не всегда имеются исходные коды, чтобы привести программу в порядок. Если программа простая — не составит труда за короткий срок создать альтернативу. Но если программа большая и сложная, что же делать в таком случае? Не всегда рационально тратить время и деньги на разработку полного аналога, ведь расширить в разумных рамках функциональность и исправить большинство ошибок можно уже в готовом исполняемом файле.
В этой статье будут продемонстрированы методики модификации исполняемых файлов на примере расширения функциональности легендарной игры Age of Empires II (стратегия реального времени).
Читать дальше →

Строим систему мышления

Reading time6 min
Views7.8K
В связи с дискуссией, возникшей в хабратопике, я хотел бы немножко поговорить о системах мышления, свободе и числе 42.

Чего ви пагите?



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

Данное мнение, на мой взгляд, ошибочно.
Давайте разберемся!

Тренировка памяти

Reading time3 min
Views46K
Вы когда-нибудь задумывались, насколько важна память для человека и конкретно для вас? Что можно достичь, с помощью хорошей памяти? А давайте прикинем прямо сейчас!? Для начала я думаю, стоит вспомнить образование и работу: прочитали книгу за несколько дней и все запомнили, экзамены за вечер на 5, язык программирования за месяц… можно продолжать долго.

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

Альтернативный способ записи IP-адресов

Reading time1 min
Views61K
Наверное, некоторые знают такую штуку, но думаю, далеко не все.

Как мы все знаем, адрес IPv4 представляет собой 32-битное число. Традиционно IP-адрес записывается в виде 4-х октетов, разделенных точкой, в десятичной системе счисления. Например: 77.88.21.8.
Однако существуют и другие, менее распространенные варианты записи.

Во-первых, каждый из 4-х октетов можно записать в восьмеричной или шестнадцатеричной системах счисления:
77.88.21.8 = 0x4d.0x58.0x15.0x8 = 0115.0130.025.010, или даже можно смешивать 77.88.0x15.010.

Во-вторых, адрес можно записывать в виде числа:
77 * 2563 + 88 * 2562 + 21 * 2561 + 8 * 256О = 1297618184.
Аналогично п.1 это число можно записывать в восьмеричной и шестнадцатеричной системах счисления: 1297618184 = 011526012410 = 0x4D581508.

Честно говоря, не нашел RFC, в котором описываются эти форматы, но это работает везде: в браузере, команде ping и т.д. Попробуйте сами.

Почти нативный Direct3D в VirtualBox

Reading time3 min
Views46K
Совсем недавно обновилась замечательная виртуальная машина с открытым исходным кодом от InnoTek/Sun/Oracle (нужное подчеркнуть) — среди прочих фишек в VirtualBox 3.0 была заявлена более или менее внятная поддержка DirectX 8/9 на уровне драйвера виртуального графического адаптера в гостевой Windows-машине. По хорошему, это должно было означать что сбылась мечта идиота геймера: можно гонять в любые win-игрушки не осуществляя рандомных подпрыгиваний с бубном и высушенной куриной лапкой. На деле все естественно оказалось не так просто, под катом предлагается микро-howto, позволяющее запускать в виртуальной машине DirectX-игрушки

UPD: Спасибо за карму, перенес в блог Linux для всех
Читать дальше →

Расширения для Firebug

Reading time2 min
Views4.1K
Последнее время появляется все больше и больше различных дополнений для Firebug'a. Решил сделать краткое описание для этих плагинов.
Здесь были описаны только 4 плагина.
Постараюсь описать все известные плагины для Firebug'a
Статья на украинском языке
Читать дальше →

Парсер математических выражений

Reading time5 min
Views48K
Спасибо всем! Статья набрала необходимое число плюсов и автор к нам присоединяется! Вот и он: elw00d
Представляю вниманию товарищей-дотнетчиков библиотечку собственного написания, с помощью которой можно легко обращаться с несложными математическими функциями, переводя их из строковой формы инфиксной записи в обработанное представление, составленное в постфиксной нотации, и обратно. Для чего это может понадобиться?

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

25 самых опасных ошибок в программировании

Reading time8 min
Views2.9K
Всем привет.
Под катом — перевод статьи Джеффа Атвуда, в которой он приводит список 25 наиболее опасных ошибок в программировании от Common Weakness Enumeration со своими комментариями.

Сразу хочу сказать. Большинство ошибок, перечисленных там — общеизвестны и многим набили оскому. Несмотря на это, мы продолжаем вновь и вновь наступать на те же грабли. И я в том числе.
Однако, поехали

Тривиальные задачи по вёрстке

Reading time4 min
Views60K
image

Начинаю вести серию статей Это статья про вёрстку html css js, начинаю с самого простого, потом планирую описать более сложные вещи и всякие тонкости и этим видимо так и закончил

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

Собственные уведомления (notify) в Gnome

Reading time3 min
Views34K
Речь пойдет об извещениях которые показываю практически все приложения от Rhythmbox до сетевых подключений. Хотелось иметь возможность показывать в таком виде собственные и поэтому я взял бубен и начал капать )

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

Information

Rating
Does not participate
Registered
Activity