Обновить
0
0
Александр@rypy

Пользователь

Отправить сообщение

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

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



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

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

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

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

Как поднять свой уровень в искусстве программирования. План из шести шагов

Время на прочтение2 мин
Охват и читатели21K

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение4 мин
Охват и читатели17K

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


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

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

Время на прочтение2 мин
Охват и читатели275K
Всем доброго времени суток!

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

Время на прочтение1 мин
Охват и читатели62K
Наверное, некоторые знают такую штуку, но думаю, далеко не все.

Как мы все знаем, адрес 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

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение4 мин
Охват и читатели60K
image

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

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

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

Время на прочтение3 мин
Охват и читатели34K
Речь пойдет об извещениях которые показываю практически все приложения от Rhythmbox до сетевых подключений. Хотелось иметь возможность показывать в таком виде собственные и поэтому я взял бубен и начал капать )

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность