Как стать автором
Обновить
196
0
Михаил Бахтерев @mikhanoid

ИММ УрО РАН

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

О ненависти к С++

Время на прочтение12 мин
Количество просмотров63K
С++ or not C++, C++ или Java/Python/Ruby? Как часто вы задаёте или слышите подобные вопросы? Не хотелось бы поднимать очередной холивар — по моему мнению, умные люди давно должны были бы прийти к выводу, что при выборе языка нет той серебряной пули, которая бы поставила окончательную точку, — у каждого языка есть свои плюсы и минусы и чаще всего проблемы в прокладке между клавиатурой и стулом.

Читать дальше →
Всего голосов 112: ↑87 и ↓25+62
Комментарии180

Silverlight + Augmented reality + Shaders

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

Я люблю работать с Silverlight, и вот недавно натолкнулся на Дополненную реальность с использованием Silverlight. Про неё и на Хабре уже писали, и в блогах довольно много написано, но я всё же немного повторюсь. Сама идея дополненной реальности интересна, но я хотел использовать её как-то необычно. И вот недавно руки дошли до изучения пиксельных шейдеров. Стало интересно попробовать соединить это вместе.

Если интересно, что из этого получилось, то Добро пожаловать под кат:
Читать дальше →
Всего голосов 52: ↑37 и ↓15+22
Комментарии14

Как выглядит китайская клавиатура

Время на прочтение8 мин
Количество просмотров389K
Вы, вероятно, представляли ее себе как целый орган — грандиозное сооружение длиной в пару метров с сотнями и тысячами клавиш. На самом деле, большинство китайцев используют обычную клавиатуру с латинской раскладкой QWERTY. Но как с помощью нее можно набрать такое несметное количество различных иероглифов? Мы попросили рассказать об этом нашу сотрудницу Юлию Дрейзис. Ее с Китаем связывают и давняя любовь, и работа.

История вопроса: печатные машинки


За несколько тысяч лет хитроумные китайцы успели довести количество иероглифов до 50000 с хвостиком. И хотя число нужных в повседневной жизни знаков не измеряется десятками тысяч, все равно, как ни крути, стандартный набор старой типографии — 9000 литер.

Долгое время набор осуществлялся по принципу «на каждый иероглиф — отдельный печатный элемент». Поэтому работать приходилось с машинками-монстрами вроде такой:

image
Печатная машинка фирмы «Шуангэ», 1947 год (принцип действия придуман японцем Киота Сугимото в 1915 году).

Читать дальше →
Всего голосов 242: ↑237 и ↓5+232
Комментарии213

Введение в OCaml: Типы данных и сопоставление [3]

Время на прочтение8 мин
Количество просмотров5K
[прим. пер.: продолжение перевода. первая часть, вторая часть]

Связные списки


В OCaml, так же как в Perl, есть встроенная на уровне языка поддержка списков. Все элементы списка должны быть одного типа. Для определения типа используется выражение:

[1; 2; 3]

Обратите внимание: точка с запятой, а не запятая.

[] означает пустой список.

У списка есть голова (первый элемент) и хвост (остальные элементы, кроме головы). Голова — элемент. Хвост — список. В вышеприведённом примере голова — целое число 1, а хвост — список [2; 3].

Альтернативной формой записи является использование оператора конструирования (cons) в форме head :: tail. Нижеприведённые строки полностью эквивалентны друг другу.

[1; 2; 3]
1 :: [2; 3]
1 :: 2 :: [3]
1 :: 2 :: 3 :: []

Зачем мы упомянули оператор конструирования? Он полезен когда мы начинаем сопоставление с образцом для списков, мы обсудим это чуть позже.

Тип данных для связного списка


Тип данных для связного списка целых будет int list; общий тип для связного списка объектов типа foo будет foo list.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии14

Touchscreen от Nintendo DS и Arduino

Время на прочтение2 мин
Количество просмотров10K
Внезапно заказал себе маленький тачскринчик от Nintendo DS и захотелось его подключить к Arduino, о том что же получилось…
touchscreen nds

Читать дальше →
Всего голосов 69: ↑64 и ↓5+59
Комментарии86

Русская морфология, основанная на памяти

Время на прочтение3 мин
Количество просмотров5.2K
Один из перспективных подходов в машинном обучении базируется на запоминании уже разобранных примеров и поиске похожего образца. Например, у нас уже есть коллекция расшифрованных аудиозаписей, и если появляется новый звуковой файл, мы ищем похожий образец и на его основе строим распознавание. Рассмотрим, как базируясь на этом принципе, можно построить морфологию русского языка.
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии37

Опубликован весь архив Computer Science клуб при ПОМИ РАН

Время на прочтение2 мин
Количество просмотров6.2K
Добрый день!

Как представитель проекта Лекториум рад сообщить — мы опубликовали весь архив Computer Science клуба.
Кроме того, почти год назад мы организовали запись всех лекций на хорошие камеры и микрофоны.
А в этом году планируем подключить вебинары.


Большинство лекций читается на русском языке. Все записи снабжены презентациями и описаниями.

UPD. Кратко. Старые лекции в плохом качестве, а новые с 2010 года с хорошим звуком и в 720p.
UPD 2 Расширили канал, видео грузится теперь без проблем.

Под катом перечень курсов и несколько вопросов касательно вебинаров.
Читать дальше →
Всего голосов 231: ↑227 и ↓4+223
Комментарии78

Опубликовано доказательство P ≠ NP?

Время на прочтение1 мин
Количество просмотров22K
Vinay Deolalikar разослал некоторым ученым свое доказательство, что класс сложности P ≠ NP.

Само доказательство на ~100 страницах.

Можно почитать более или менее адекватный комментарий на ycombinator.

Добавить нечего, читаем и/или ждем мнений специалистов в этой области.

P.S. На всякий случай, ссылка о том, что такое NP и P. (спасибо, SMiX)
Всего голосов 311: ↑294 и ↓17+277
Комментарии127

Стэнфордский видео-курс по языкам программирования

Время на прочтение1 мин
Количество просмотров6.1K
Стэнфордский курс по основам языков программирования выложен на YouTube.



27 лекций минут по 20 каждая ведут стэнфордский преподаватель Джерри Кейн (экс-Стэнфорд, нынче Facebook), последняя лекция по Haskell преподается Сашей Рашем (Facebook). Рассматриваются концепции и основы C (куда ж без него), ассемблера, C++, Scheme, Python и Haskell.
Всего голосов 87: ↑82 и ↓5+77
Комментарии64

Порядок разрешения методов в Python

Время на прочтение15 мин
Количество просмотров181K
В этой заметке рассматривается алгоритм MRO С3 и некоторые специфические проблемы множественного наследования. Хотя и алгоритм и проблемы не ограничиваются рамками одного языка, я акцентировал своё внимание на Питоне. В конце приведён список полезных ссылок по данной теме.
Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии12

Слушаем вызовы функций в Javascript

Время на прочтение12 мин
Количество просмотров10K
Многие знают о механизме Event-Dispatcher-Listener'ов, реализованному во многих языках программирования. Я же создам подобный механизм не для Event'ов, а для любого метода объекта JavaScript — Object.
Я не претендую на оригинальность, нет. Основная цель статьи — рассмотреть интересные механизмы прототипирования в JavaScript, создание декораторов и, собственно, постараться хоть немного раскрыть мощь и гибкость это чудесного языка, который так часто обижают и недооценивают.

UPD1: краткое содержание:
1. Создание декоратора на JavaScript
2. Создание механизма Function call listener с помощью декораторов

UPD2: от 09.06.2009
В конце статьи я добавил раздел Update: Decorator Mark II. В нём — исправления и улучшения (я не перекраивал всю статью из-за этого)

Итак, первый (и, надеюсь, не последний) рецепт в моей поваренной книге JavaScript.
Перейти к рецепту
Всего голосов 112: ↑107 и ↓5+102
Комментарии37
12 ...
14

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Зарегистрирован
Активность

Специализация

Backend Developer, Научный сотрудник
Applied math
System Programming
Machine learning
Compilers
Scheme
C
Assembler
Linux
Clojure
Haskell