Search
Write a publication
Pull to refresh
19
0
Андрей Смачёв @Biga

User

Send message

pymorphy2

Reading time16 min
Views85K
В далеком 2009 году на хабре уже была статья "Кузявые ли бутявки.." про pymorphy — морфологический анализатор для русского языка на Python (штуковину, которая умеет склонять слова, сообщать информацию о части речи, падеже и т.д.)

В 2012м я начал потихоньку делать pymorphy2 (github, bitbucket) — думаю, самое время представить эту библиотеку тут: pymorphy2 может работать в сотни раз быстрее, чем pymorphy (втч без использования C/C++ расширений) и при этом требовать меньше памяти; там лучше словари, лучше качество разбора, лучше поддержка буквы ё, проще установка и более «честный» API. Из негатива — не все возможности pymorphy сейчас реализованы в pymorphy2.

Эта статья о том, как pymorphy2 создавался (иногда с довольно скучными техническими подробностями), и сколько глупостей я при этом наделал; если хочется просто все попробовать, то можно почитать документацию.

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

Создание виртуальной волны

Reading time7 min
Views60K


Как всем известно, 71% поверхности Земли занимает вода. К сожалению или к счастью, корректно изобразить океан умеют единицы. Иван Айвазовский вошел в учебники живописи благодаря одним только морским пейзажам. В компьютерных играх все еще сложнее. Когда-то море в них обозначали скоплением синих пикселей, раскрашенных белыми квадратами пены. Со временем виртуальные моря стали больше похожи на снимки из отпуска, научились качать волну и покрываться рябью, в которой иногда даже отражались очертания парусников. Но они оставались самостоятельной стихией: натолкнувшись на берег, волна превращалась в незамысловатые угловатые полигоны. Настоящий прибой логично взаимодействует с пляжем, увлажняет песок и с шуршанием откатывается назад. Такого правдоподобия удалось добиться только в современных играх. В том числе в нашем Skyforge. И хоть в основные события будут разворачиваться на суше, игроки попадут и на тропические острова, и в шумные порты. Вода будет постоянно рядом. Ее «правильный» облик будет играть большую роль. И воссоздание морской стихии – серьезная математическая задача. Расскажу об этапах ее реализации.
Читать дальше →

TW520 — наручные часы и телефон в одном лице

Reading time4 min
Views57K
Вряд ли кто-то станет спорить, что сотовый телефон очень и очень многим заменяет часы. Я сейчас говорю не про часы как элемент статуса, не про дорогие, элитные модели. А про обычный инструмент, который показывает время. Телефоны используются так часто, что носить с собой (вернее, на себе) еще один предмет зачастую оказывается излишним. Часы на руке стали более редки, чем мобильный телефон в кармане, с этой тенденцией не поспоришь.

image

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

Многорукие бандиты: введение и алгоритм UCB1

Reading time5 min
Views56K
Это первый пост из блога Surfingbird, который я выношу в общие хабы алгоритмов и искусственного интеллекта; честно говоря, раньше просто не догадался. Если интересно, заходите к нам, чтобы прочесть предыдущие тексты, – я не знаю, что произойдёт, если просто добавить новые хабы к постам несколькомесячной давности.

Краткое содержание предыдущих серий о рекомендательных системах:

В этот раз начинаем новую тему – о многоруких бандитах. Бандиты – это самая простая, но от этого только более важная постановка задачи в так называемом обучении с подкреплением


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

Игры для программистов

Reading time3 min
Views134K
Должен признаться, что я плохой программист. Я не люблю настраивать Maven и писать конфигурации для Spring Framework. Я не знаю в деталях, как работает JVM (да и в общих чертах представляю это себе довольно смутно). Я плохо понимаю паттерны проектирования, а любая новая технология вводит меня в уныние. И тем не менее, я люблю программировать.

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

Минуточку внимания.

Я не стану говорить о Robot Battle и тому подобных вещах. Вот не стану и всё. Возможно, я странный человек, но мне не нравится иметь дело с чем-то, хоть отдалённо напоминающим реальную физику. Интересующиеся могут почитать об этой игре здесь, а статья немного о другом.

Так о чём же статья?

Символьная регрессия

Reading time8 min
Views42K
При решении задач с применением методов машинного обучения, как правило, мы выбираем наиболее подходящий алгоритм в контексте задачи, а также способ настройки его параметров.

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

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

Правильный стул для ежедневной работы за компьютером

Reading time5 min
Views870K
Золотой Остап и его стулВопрос о столах поднимался несколько раз (раз, два).

Однако, на чем же мы сидим перед столом?

Стул — не менее важная часть рабочего места любого человека, много времени работающего за компьютером в течение дня.

Все мы работаем с компьютером и порой не замечаем, на чем же мы сидим.

Оказывается наши санитарные правила и нормы (СанПиН 2.2.2/2.4.1340-03) достаточно хорошо описывают удобный эргономичный стул для работы взрослых за компьютером!

А какой стул правильный?
Читать дальше →

Хабраконвертер

Reading time1 min
Views1.4K
В связи с тем, что пишу статьи в гугл-доксах (все-таки визуально видеть форматирование мне сподручнее), а перегонять из гугл-доксов в хабраразметку несколько затратно, запилил онлайн ковертер из «rich-text» (Google Docs, Word и т.д.) в хабраразметку: habraconverter.meta4.info

Хабраконвертер поддерживает:
  • Простое форматирование (заголовки, жирный/италик/перечекнутый/подчеркнутый, надстрочный, подстрочный)
  • Исправление кавычек
  • Ссылки
  • Списки
  • Таблицы
  • Картинки (при копировании из Google Docs, align не учитывается)
  • Горизонтальная линия
  • Исходный код (через форматирование текста шрифтом Courier New)
Читать дальше →

Анализ Code Coverage для iOS и OS X проектов (xCode 4.4)

Reading time5 min
Views7.8K

Предисловие


Этот топик не ставит своей целью рассказать о code coverage, и о том, нужно это средство или нет. Также, не будет подниматься вопрос о целесообразности тестов в iOS проектах (положим, что они все-таки кому-то нужы, а значит есть).

Мотивация


Очень удобно, когда средства для профилирования/анализа встроены в IDE. История С code coverage в xCode не совсем безоблачная: во времена xCode 3.x и GCC все было просто и нужные ссылки и флаги компилятора гуглились на раз. C приходом xCode 4.1 все стало немного сложнее ввиду использования LLVM-GCC, приходилось идти на некоторые ухищрения (вплоть до сборки LLVM своими руками). А в 4.3 библиотеку libprofile_rt переместили в другую директорию, что тоже вызвало немало проблем.
Читать дальше →

Ночной вид с международной космической станции

Reading time1 min
Views13K
Если вы нуждаетесь в напоминании, что мир действительно красивый, — это удивительное видео собранное фотографом Кнайтом Майерсом для вас.



Майерс говорит, что каждая фотография в видео была взята из международной космической станции. Впечатляющие визуальные эффекты сопровождаются музыкой Джона Мерфи.

Устройтесь поудобнее, расслабьтесь и наслаждайтесь красотой нашей планеты.

P.S. Смотреть лучше всего в полноэкранном режиме.

Человек вывел виртуальную девушку в реальный мир

Reading time1 min
Views7.5K
Ладно. Итак. Об этом у меня буквально нет слов, но раз уж я блоггер и здесь информационный сайт, то постараюсь.

Используя кинектоподобное устройство Xtion PRO от ASUS и некие видеоочки, парню удалось пойти на свидание с Мику Хацунэ полностью виртуальною японскою поп-звездою.

Она идёт с ним на игровую площадку и отзывается на поглаживания по голове, А ТАКЖЕ И КОГДА ОН СТУЧИТ ЕЙ по голове.

Я не шучу. Смотрите сами. К концу видеозаписи (около 3:08) всё становится ещё неделикатнее.



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

[с сайта io9]

SkypeKit вылечен от жадности

Reading time6 min
Views18K
image

Вниманием!
Не пользуйтесь этим скайпкитом!
После этой истории
habrahabr.ru/post/142805 скайп начал банить ВСЕ аккаунты запущенные на одном айпи вместе с этим скайпкитом.



Есть такая замечательная штука как Skypekit. В двух словах это полноценный Skype без GUI, обёртку для которого предполагается написать самому.

Теоретически на основе Skypekit можно было бы:
  • Создавать полноценные Skype-клиенты под все платформы
  • Добавить поддержку Skype в мультипротокольные клиенты
  • Запускать Skype на сервере для интеграции с SIP/Flash

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

Но благодаря целебному воздействию реверс-инжиниринга этот недуг удалось вылечить.

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

Перцептрон Розенблатта — что забыто и придумано историей?

Reading time4 min
Views28K
На хабре — уже есть несколько статей про искусственные нейронные сети. Но чаще говорят о т.н. многослойном перцептроне и алгоритме обратного распространения ошибки. А знаете те ли Вы что эта вариация ничем не лучше элементарного перцептрона Розенблатта?

Например, вот в этом переводе Что такое искусственные нейронные сети? мы можем увидеть, что о перцептроне Розенблатта пишут такое:

Демонстрация персептона Розенблатта показала, что простые сети из таких нейронов могут обучаться на примерах, известных в определенных областях. Позже, Минский и Паперт доказали, что простые пресептоны могут решать только очень узкий класс линейно сепарабельных задач, после чего активность изучения ИНС уменьшилась. Тем не менее, метод обратного распространения ошибки обучения, который может облегчить задачу обучения сложных нейронных сетей на примерах, показал, что эти проблемы могут быть и не сепарабельными.


Причем это встречается на разный лад в различных статьях, книгах и даже учебниках.

Но это, наверно, самая великая реклама в области ИИ. А в науке это называется фальсификация.

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

Распределенные эволюционные вычисления

Reading time1 min
Views5.5K


Одна из моих любимых тем в программировании – эволюционные вычисления и генетические алгоритмы в частности. Пару лет назад я поднимал эту (в целом уже заезженную) тему на Хабре, но сейчас глядя на то видео немного стыдно – слишком уж туманно и сумбурно было объяснение.

Сегодня я постараюсь объяснить генетические алгоритмы проще и нагляднее, а заодно рассказать вкратце о прототипе очень простого JavaScript-фреймворка для распределенных генетических вычислений degas.js. В двух словах – degas.js запускает генетический алгоритм в виде «треда» в браузере клиента используя web workers и обменивается информацией о полученных в ходе эволюции индивидуумах с сервером и другими клиентами с помощью web sockets. Сервер использует node.js.

Degas.js пока в супер-зародышевом состоянии, функционал еще примитивен, а код некрасив, но если кто-то захочет присоединиться к разработке – было бы здорово.

Наголовный компьютер под управлением Linux — собери сам!

Reading time5 min
Views9.2K
В данной статье речь пойдет о самодельном наголовном компьютере с трудновыговариваемым названием WXHMD, созданном парижским умельцем по имени Паскаль. Это одноплатный компьютер (computer-on-module) Gumstix Overo Fire, укрепленный на наголовном дисплее Vuzix VR920. В итоге получилось устройство, дающее стереоскопическое изображение 640x480, имеющее аудиовход и аудиовыход, 3D-сенсоры наклона (3D tilt sensor), 3D магнитный компас, процессор TI OMAP3530 @ 600 MHz, ОС Linux, WiFi, Bluetooth. Питание — 1 ампер @ 3.7 вольт. Вес — 180 граммов.
Читать дальше →

Хранение иерархических данных в плоском виде

Reading time3 min
Views7.9K
На примере хранения дерева комментариев.

Многие наверняка сталкивались с проблемой хранения комментариев, по крайней мере задумывались об этом. Очевидным решением «в лоб» является ссылка на родительский комментарий и, как следствие, рекурсивные вызовы при необходимости отобразить дерево. Современные СУБД поддерживают иерархические запросы, но мне кажется, что это просто перенос проблемы за пределы области видимости, может быть я не прав. В любом случае я писал для Google Application Engine, там разговора об иерархических запросах не идёт вообще.

Мне очень не нравилась перспектива рекурсии и множество мелких запросов к базе, поэтому я стал изобретать какой-то способ получить все комментарии одним простым запросом. И такой способ я довольно быстро «изобрёл». Опросил нескольких знакомых, оказалось, что мало кто на эту тему задумывался, поэтому возьму на себя смелость описать что именно я реализовал.

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

Робот «Inchworm» на базе Arduino Nano

Reading time3 min
Views17K
Настал год поступления в ВУЗ, и я задумался о проекте, который можно было бы представить на приВУЗовских конференциях, чтобы не париться по-поводу пресловутого ЕГЭ и олимпиад. Поговорив со своим учителем инфы, покапавшись на YouTube, решил собрать гусеницеподобного робота.

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

Вот что получилось в итоге:

image

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

Инструкция-шпаргалка для начинающих

Reading time2 min
Views134K
Если в один прекрасный момент вам ударило в голову желание насадить разумное, доброе, вечное, и пересадить всех с SVN на GIT, сразу встают три проблемы:
  • Объяснить зачем это нужно разработчикам и руководству
  • Ввести в обиход новую схему работы с кодом
  • Научить ничего не подозревающих девелоперов новым техникам
Читать дальше →

iPhone разработка: Интегрируем In-App Purchases

Reading time8 min
Views88K
In-App Purchases — это простой и удобный механизм для организации продаж своих приложений или дополнительных фич непосредственно из своего приложения. In-App Purchases легко встраивается и открывает для Вас новый канал продаж. Взаимодействие с App Store осуществляется с помощью StoreKit.framework, который поставляется вместе с SDK, начиная с версии 3.0.
Читать дальше →

Namecoin: защищённая DNS на базе P2P-вычислений

Reading time2 min
Views10K
DNS-система Namecoin основана на концепции онлайновой криптовалюты Bitcoin. Здесь защита пары домен/DNS обеспечивается методом распределённого вычисления хэша, так что никто не сможет изъять ваш домен, как это недавно случилось с множеством торрент-трекеров и покерных сайтов (точнее, для изъятия домена требуются вычислительные ресурсы, несопоставимые с важностью задачи).

Кроме того, стимулом для создания этой системы стали известные сбои в работе DNS, которая вообще считается ненадёжной системой и уязвимой для подмены кэша.

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

Information

Rating
4,251-st
Location
Вологда, Вологодская обл., Россия
Date of birth
Registered
Activity