Как стать автором
Обновить
0
Карма
0
Рейтинг

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

  • Подписчики
  • Подписки
  • Публикации
  • Комментарии

Игры Микропроцессорные или набери 100000 и увидишь мультик

Старое железо
Многие из нас в детстве играли в Электронику серии ИМ и не только. Но не многие из нас даже представляют на сколько разнообразны были эти игры.



Читать дальше →
Всего голосов 56: ↑44 и ↓12 +32
Просмотры 5.3K
Комментарии 60

Википедия переходит на P2P-видео

Краудсорсинг
В техническом блоге Википедии опубликовано сообщение о том, что с нынешнего момента все видеоролики на сайтах Wikimedia поддерживают доставку через торренты.

Каждый пользователь может установить в браузере расширение Swarmplayer (пока только под Firefox, скоро будет под IE) — и с этого момента любое видео Wikimedia будет поступать ему в браузер не напрямую с сайта, а через P2P-сеть таких же клиентов. Это позволит значительно снизить нагрузку на серверы Wikimedia.

Swarmplayer 2.0 работает с библиотекой Kaltura HTML5 (aka mwEmbed) и сервисом url2torrent.net.
Читать дальше →
Всего голосов 49: ↑47 и ↓2 +45
Просмотры 1.6K
Комментарии 36

Структура и интерпретация компьютерных программ

Софт
image
Перевод второй лекции Джеральда Сассмана
«Процедуры и процессы: подстановочная модель.»

Эти лекции были прочитаны 25 лет назад сотрудникам HP, но на самом деле это тот легендарный вводный курс 6.001, который читался в MIT в 1980 году. С тех пор эти лекции sine qua none во всем мире программирования. Хотелось бы чтобы каждый программист посмотрел этот курс, ничего не учит абстрактному мышлению лучше, чем SICP.
Приятного просмотра на ночь глядя.
Читать дальше →
Всего голосов 75: ↑75 и ↓0 +75
Просмотры 6.4K
Комментарии 37

SICP теперь по-русски

Программирование *
image

Удивительно, что до сих пор никому еще не пришла в голову идея перевести эти легендарные лекции на русский язык.

В качестве эксперимента выкладываю перевод первой из 20 лекций. Если это получит должный отклик, буду переводить дальше.
Читать дальше →
Всего голосов 97: ↑92 и ↓5 +87
Просмотры 37K
Комментарии 61

Механическая клавиатура (с кликом)

Компьютерное железо
Buckling Springs
Однажды в студеную зимнюю пору лошадку прибили ушами к забору ой… Ну да, прибили мою рабочую лошадку — клавиатуру cherry с механическим кликом, путешествующую со мной с начала 90-х годов. Пришлось курить гугл на предмет современной механической клавиатуры с кликом. Увидев результаты, был, мягко говоря, удивлен — оказывается, в 21 веке механические клавиатуры не рулят :( Есть клавиатуры, похожие на пульт управления шаттлом, есть плоские, толстые, с подсветкой и без, резиновые, раскладывающиеся, вообщем, какие угодно, но не старые добрые механические клавиатуры. Это заговор, подумал я и решил разобраться что к чему B-)

Интересно, о чем это он
Всего голосов 76: ↑68 и ↓8 +60
Просмотры 25K
Комментарии 165

Neoware CA2

Компьютерное железо
В продолжение моих изысканий с eBox-2300SX и тонкими клиентами я хочу рассказать еще об одном устройстве, пригодном для роли домашнего сервера/сидбокса/NAS'а — называйте как вам угодно :)
Встречайте — Neoware CA2.

image

Читать дальше →
Всего голосов 49: ↑47 и ↓2 +45
Просмотры 10K
Комментарии 35

Моделирование большого количества взаимодействующих друг с другом частиц

Алгоритмы *
Из песочницы
Tutorial
Рассмотрим ситуацию, когда необходимо обрабатывать столкновения между объектами. Как вы в этом случае поступите? Вероятно, самым простым решением будет проверить каждый объект с каждым другим объектом. И это правильное решение, и все будет замечательно до тех пор пока объектов не много. Как только их станет порядка нескольких тысяч, вы заметите, что все стало как-то медленно работать. А если частиц несколько десятков тысяч или сотен? Тогда все замрет. Вот здесь уже интересно, на какие хитрости и оптимизации вы пойдете, чтобы решить такую проблему.

Для простоты, будем рассматривать 2D случай, частицы круглые, радиус частиц у всех одинаковый.

Содержание


1. Обзор алгоритмов
1.1. Полный перебор
1.2. Sweep & Prune
1.3. Регулярная сеть
2. Некоторые оптимизации
2.1. Sweep & Prune
2.2. Регулярная сеть
3. Сравнение скорости выполнения
4. Приложение (программа и исходный код)
5. Заключение

Читать дальше →
Всего голосов 147: ↑145 и ↓2 +143
Просмотры 27K
Комментарии 45

Язык программирования D — продолжение 2

Программирование *
Доброго всем времени суток!
Сегодня я продолжаю рассказ о замечательном языке программирования D.
В своих прошлых статьях я вел рассказ о мультипарадигменности и метапрограммировании в D.
К тому же не могу не отметить замечательную статью Volfram, в которой он продолжил тему метапрограммирования, рекомендую.
За окном праздники, люди отдыхают, празднуют, радуются, потому не хочу нагружать вас тяжелой информацией и речь сегодня поведу на несложную, но от того не менее приятную тему: перегрузка операторов.
Вы можете сказать, что это вообще мелочи и не очень-то и интересно, но как раз в D перегрузка операторов является немаловажной частью дизайна языка и, что еще важнее, я смогу показать несколько примеров использования CTFE (Compile-time function evaluation), о котором была речь в предыдущей статье. Не зря же я им так восхищался, верно?
В добавок, тема перегрузки операторов в D затрагивает много связанных с ней немаловажных концепций, которые в свою очередь я раскрою в статье.
Итак, кому интересно — добро пожаловать под кат.

Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Просмотры 2.8K
Комментарии 18

Метод Виолы-Джонса (Viola-Jones) как основа для распознавания лиц

Алгоритмы *
Хотя метод был разработан и представлен в 2001 году Полом Виолой и Майклом Джонсом [1, 2], он до сих пор на момент написания моего поста является основополагающим для поиска объектов на изображении в реальном времени [2]. По следам топика хабраюзера Indalo о данном методе, я попытался сам написать программу, которая распознает эмоцию на моём лице, но, к сожалению, не увидел на Хабре недостающей теории и описания работы некоторых алгоритмов, кроме указания их названий. Я решил собрать всё воедино, в одном месте. Сразу скажу, что свою программу успешно написал по данным алгоритмам. Как получилось рассказать о них ниже, решать Вам, уважаемые Хабрачитатели!
Добро пожаловать под кат!
Всего голосов 123: ↑121 и ↓2 +119
Просмотры 162K
Комментарии 17

То, чего вы не ждали от калькулятора. Пасьянс на bc

*nix *
Tutorial
Невинные развлечения с bash больше не кажутся мне чем-то особенным. В качестве своей следующей цели для экспериментов я выбрала GNU bc — консольный калькулятор и скриптовый математический язык программирования в одной коробке. Эта статья наверняка будет полезна всем линуксоидам и юниксоидам, не очень тесно знакомым с bc.



Итак, короткое введение в программирование на bc, кавай и нэки пасьянс на чистом bc и поэтессы.
Всё это можно найти под катом.
Всего голосов 112: ↑109 и ↓3 +106
Просмотры 6.4K
Комментарии 27

Решение задачи «Яндекс интернет математика — 2011». Определение визуальной схожести изображений

Обработка изображений *Математика *
В апреле-мае 2011 года компания Яндекс проводила очередной тур конкурса Яндекс интернет математика. Тема тура: «Определение визуальной схожести изображений».
Я публиковал новость про объявление победителей и обещал в скором времени описать решение поставленной задачи нашей командой — LookLikeIt, которая заняла 12-е место в финальном рейтинге.

И вот, не совсем скорое время наступило!
Читать дальше →
Всего голосов 89: ↑86 и ↓3 +83
Просмотры 15K
Комментарии 14

Бинаризация (практика часть ?)

Обработка изображений *
Моя статья о бинаризации

Применение на практике



Как просили реализовать часть методов о которых я писал. Что не сделаешь ради интереса и людей.

Начну с малого и простого:
Реализовал
  • Бинаризация с нижним порогом
  • Бинаризации с верхним порогом
  • Бинаризация с двойным ограничением
  • Метод Отса (Оцу)
  • Метод Янни (Яни)
  • Метод среднего
Читать дальше →
Всего голосов 35: ↑30 и ↓5 +25
Просмотры 21K
Комментарии 16

Алгоритмы отсечения

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

Этот пост посвящён разбору нескольких алгоритмов, направленных на одну и ту же задачу, задачу отсечения отрезков. При генерации изображений могут получаться фигуры произвольной формы и размеров. Зачастую мониторы не могут отобразить сгенерированные изображения целиком. Также иногда возникают ситуации, когда необходимо задать область изображения на экране и выводить изображения только внутри этой области. Для решения этих задач и придуманы алгоритмы отсечения.
Читать дальше →
Всего голосов 57: ↑54 и ↓3 +51
Просмотры 44K
Комментарии 10

Несколько подробностей о функции main

Настройка Linux *
Из песочницы
Однажды заинтересовался, содержимым стека функции main процесса в linux. Провел некоторые изыскания и теперь представляю вам результат.

Варианты описания функции main:
1. int main()
2. int main(int argc, char **argv)
3. int main(int argc, char **argv, char **env)
4. int main(int argc, char **argv, char **env, ElfW(auxv_t) auxv[])
5. int main(int argc, char **argv, char **env, char **apple)

argc — число параметров
argv — нуль-терминальный массив указателей на строки параметров командной строки
env — нуль-терминальный массив указателей на строки переменных окружения. Каждая строка в формате ИМЯ=ЗНАЧЕНИЕ
auxv — массив вспомогательных значение (доступно только для PowerPC [1])
apple — путь к исполняемому файлу (в MacOS и Darwin [2])
Вспомогательный вектор — массив с различной дополнительной информацией, такой как эффективный идентификатор пользователя, признак setuid бита, размер страницы памяти и т.п.

Далее о том как получить массив вспомогательных значений для i386 и x86_64, а также об остальном содержимом «сегмента» стека.
Читать дальше →
Всего голосов 87: ↑82 и ↓5 +77
Просмотры 15K
Комментарии 8

Неблокируемая очередь сообщений для двух потоков

Алгоритмы *
Из песочницы
Несколько лет назад, при работе над своим небольшим игровым проектом, у меня возникла необходимость реализовать передачу сообщений от одного потока другому. В ходе поисков вариантов решения появилась идея реализовать неблокируемую очередь.

Подробности под катом.
Читать дальше →
Всего голосов 38: ↑26 и ↓12 +14
Просмотры 4K
Комментарии 34

Дерево ван Эмде Боаса

Алгоритмы *
Всем доброго времени суток!

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

Дерево ван Эмде Боаса (van Emde Boas tree) — ассоциативный массив, который позволяет хранить целые числа в диапазоне [0; U), где U = 2k, проще говоря, числа, состоящие не более чем из k бит. Казалось бы, зачем нужно еще какое-то дерево, да еще позволяющее хранить только целые числа, когда существует множество различных сбалансриованных двоичных деревьев поиска, позволяющих выполнять операции вставки, удаления и прочие за O(log n), где n — количество элементов в дереве?

Главная особенность этой структуры — выполнение всех операций за время O(log(log(U))) независимо от количества хранящихся в ней элементов.

Что же там еще есть такого вкусного?
Всего голосов 192: ↑190 и ↓2 +188
Просмотры 16K
Комментарии 39

Базовые алгоритмы нахождения кратчайших путей во взвешенных графах

Алгоритмы *
Из песочницы
Наверняка многим из гейм-девелоперов (или просто людям, увлекающимися програмировагнием) будет интересно услышать эти четыре важнейших алгоритма, решающих задачи о кратчайших путях.

Сформулируем определения и задачу.
Графом будем называть несколько точек (вершин), некоторые пары которых соединены отрезками (рёбрами). Граф связный, если от каждой вершины можно дойти до любой другой по этим отрезкам. Циклом назовём какой-то путь по рёбрам графа, начинающегося и заканчивающегося в одной и той же вершине. И ещё граф называется взвешенным, если каждому ребру соответствует какое-то число (вес). Не может быть двух рёбер, соединяющих одни и те же вершины.
Каждый из алгоритмов будет решать какую-то задачу о кратчайших путях на взвешенном связном. Кратчайший путь из одной вершины в другую — это такой путь по рёбрам, что сумма весов рёбер, по которым мы прошли будет минимальна.
Для ясности приведу пример такой задачи в реальной жизни. Пусть, в стране есть несколько городов и дорог, соединяющих эти города. При этом у каждой дороги есть длина. Вы хотите попасть из одного города в другой, проехав как можно меньший путь.
Читать дальше →
Всего голосов 79: ↑71 и ↓8 +63
Просмотры 206K
Комментарии 31

Сравнение изображений и генерация картинки отличий на Ruby

Обработка изображений *
Перевод
Наверняка вы видели новые режимы просмотра изображений, которые Github выкатил в прошлом месяце. Это действительно изящный способ показать разницу между двумя версиями картинки. В этой статье я попробую объяснить, как можно просто сравнивать изображения с помощью только Ruby и ChunkyPNG.
Читать дальше →
Всего голосов 33: ↑31 и ↓2 +29
Просмотры 27K
Комментарии 9

Есть к чему стремиться, %username%

DIY или Сделай сам


Японское усердие, усидчивость и инженерная направленность мозгов способны на многое.
В профиле youtube-юзера denha есть ещё много завораживающих видео, welcome!
Всего голосов 140: ↑122 и ↓18 +104
Просмотры 926
Комментарии 70

Кластеризация палитры изображения и сжатие в формате PNG

Алгоритмы *
Из песочницы

Аннотация


В данной статье читателю предлагается опыт разработки алгоритма сжатия изображения, хранящегося в формате PNG. Сжатие осуществляется за счет квантования палитры с использованием классификатора К–внутригрупповых средних. Приводится исходный код алгоритма, написанный на языке Java. Указываются проблемы и дальнейшие пути улучшения алгоритма.
Читать дальше →
Всего голосов 47: ↑46 и ↓1 +45
Просмотры 12K
Комментарии 38
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Работает в
Дата рождения
Зарегистрирован
Активность