Pull to refresh
34
0
Василий Е @bazilxp

DevOps

Send message

Раздача научного софта. Бесплатно

Reading time6 min
Views67K

Так уж получилось, что до того, как стать физиком, я хотел быть программистом. Не сложилось, но тяга писать программки не прошла. Как результат — за 15 лет работы в науке, было написано приличное количество разнообразного прикладного софта. Конечно, большая часть была совершенно одноразовой, и мотивацией для ее написания была фраза из мультика — «лучше день потерять, потом за пять минут долететь». Но некоторые вещи оказались долгоиграющими, пошли «в народ», кое-что даже продается. Для продажи этого «кое-чего» даже был создан сайт, ориентированный на «заграницу», но это было сделано больше ради эксперимента, а не с целью заработать какие-то реальные деньги, тем более что софт по большей части очень специфический, и спрос на него не велик. Но хватит о коммерции.

Я бы хотел совершенно безвозмездно поделиться частью своих наработок (тем, что не очень стыдно показать) с хабрасообществом, в надежде, что они могут оказаться полезными для молодых (и не очень) ученых, аспирантов и студентов, и кто-то сможет использовать их в своей работе. Вашему вниманию предлагается следующее (в порядке возрастания специфичности):
  • SciRef — менеджер цитирований.
  • AFM Vision — удобная визуализация данных атомно-силовой микроскопии.
  • Raman 2D — построение карты распределения интенсивности Рамановского излучения.
  • X-Ray Calc — симуляция рентгеновской дифракции тонких пленок.

Подробное описание возможностей, скриншоты (много) и ссылки — под катом.
Читать дальше
Total votes 147: ↑146 and ↓1+145
Comments36

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

Reading time12 min
Views45K

Содержание:


1. Поиск и анализ цветового пространства оптимального для построения выделяющихся объектов на заданном классе изображений
2. Определение доминирующих признаков классификации и разработка математической модели изображений мимики"
3. Синтез оптимального алгоритма распознавания мимики
4. Реализация и апробация алгоритма распознавания мимики
5. Создание тестовой базы данных изображений губ пользователей в различных состояниях для увеличения точности работы системы
6. Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода
7. Поиск оптимальной системы аудио распознавания речи с закрытым исходным кодом, но имеющими открытые API, для возможности интеграции
8. Эксперимент интеграции видео расширения в систему аудио-распознавания речи с протоколом испытаний

Вместо введения


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

image

Цели:


Определить наиболее оптимальную аудио-систему распознавания речи (речевой движок) на базе открытого исходного кода (Open Source), которую можно интегрировать в разрабатываемую систему видео-определения движения губ пользователя.

Задачи:


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

Введение


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

Типы лицензий


Большинство современных продуктов имеют два самых распространенных типа лицензий:
• Проприетарный (собственнический) тип, когда продукт является частной собственностью авторов и правообладателей и не удовлетворяющий критериям свободного ПО (наличия открытого программного кода недостаточно). Правообладатель проприетарного ПО сохраняет за собой монополию на его использование, копирование и модификацию, полностью или в существенных моментах. Обычно полуприетарным называют любое несвободное ПО, включая полусвободное.
• Свободные лицензии (open-source software) — программное обеспечение с открытым исходным кодом. Исходный код таких программ доступен для просмотра, изучения и изменения, что позволяет пользователю принять участие в доработке самой открытой программы, использовать код для создания новых программ и исправления в них ошибок — через заимствование исходного кода, если это позволяет совместимость лицензий, или через изучение использованных алгоритмов, структур данных, технологий, методик и интерфейсов (поскольку исходный код может существенно дополнять документацию, а при отсутствии таковой сам служит документацией).

Среди рассматриваемых систем распознавания речи с открытым исходным кодом нам встретились 2 вида сублицензий BSD и GPL. Рассмотрим их более подробно
Читать дальше →
Total votes 46: ↑37 and ↓9+28
Comments18

История спецэффектов в кинематографе

Reading time10 min
Views151K


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

Что первично в кино — сюжет или игра актёров? Спецэффекты или мастерство оператора-постановщика? Безусловно, все эти составляющие крайне важны. Но, всё же, некоторые фильмы стали знамениты именно благодаря использованным спецэффектам. И пусть сегодня некоторые из них выглядят обыденно, а некоторые наивно, в своё время они стали вехами в кинематографе. Конечно, вообще таких фильмов было много. Но мало кто может похвастаться спецэффектами, исключительно благодаря которым стало возможно рассказать задуманную историю. Такими спецэффектами, которые не просто вызывали вау-эффект, а действительно брали за душу. Которые заставляли сопереживать главному герою, проникаться ситуациями, в которых он оказывался. Давайте вспомним о некоторых из таких знаковых фильмов.
Читать дальше →
Total votes 123: ↑118 and ↓5+113
Comments64

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

Reading time6 min
Views131K
Эти приемы были описаны во внутреннем проекте компании Google «Testing on the Toilet» (Тестируем в туалете — распространение листовок в туалетах, что бы напоминать разработчикам о тестах).
В данной статье они были пересмотрены и дополнены.
Читать дальше →
Total votes 181: ↑175 and ↓6+169
Comments67

Wasted Dreams. Краткая инструкция по запуску

Reading time4 min
Views25K
Вчера уважаемый Weilard опубликовал прекрасный пост про игру Wasted Dreams.
Описание получилось настолько красочным, что мне (думаю, и многим другим) захотелось посмотреть на игру. К сожалению, в оригинальной статье отсутствует последовательность шагов по запуску игры в эмуляторе.

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

Добро пожаловать под кат за подробностями запуска Wasted Dreams на Вашем компьютере!
Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments23

Самая сложная игра всех времён

Reading time3 min
Views198K

Robot Odyssey

Нью-йоркский программист Дэвид Ауэрбах (David Auerbach) вспоминает компьютерную игру, для прохождения которой ему понадобилось 13 лет и которая определила его будущее как программиста.
Читать дальше →
Total votes 202: ↑178 and ↓24+154
Comments110

10 главных выводов, которые я сделал за Год Изучения Продуктивности

Reading time9 min
Views192K
Предисловие переводчика: В мире написано столько книг по личной эффективности и тайм-менеджменту, что берясь за этот перевод я безусловно задавал себе вопрос: «А есть ли здесь вообще что-то новое, ради чего эту статью стоит переводить, и главное читать»? Сначала мне казалось, что я ответил на этот вопрос «да», однако реальность оказалась несколько сложнее. 

Сейчас я думаю, что сказать что-то новое человеку, который прочитал хотя бы 2-3 книги по тайм-менеджменту и личной эффективности практически невозможно. Однако существует огромная пропасть между тему, что люди знают, и тем, что люди делают. Поэтому если у вас уже есть какой-то багаж знаний по личной эффективности, я советую вместо вопроса «это что-то, чего я не знаю?» задавать другие вопросы:

1. Согласен ли я с написанным?
2. Если да, поступаю ли я так?
3. Если нет, почему и что я могу сделать чтобы начать поступать правильно? 

Уверен, так статья принесет вам гораздо больше пользы.

Должен сказать, что я с огромным удовольствиям ходил по ссылкам в этой статье, особенно по тем, которые описывают эксперименты Криса (такие как переключение между 90-часовой и 20-часовой рабочими неделями). Поэтому я принял решение сохранить все эти ссылки в переведенной статье.

Также хотел бы сделать замечание для любителей красивого русского языка. Я довольно долго думал, менять ли «продуктивность»  на более близкие родному уху «производительность» и «личную эффективность», но в итоге решил оставить всё как есть – главным образом из-за невозможности использования одного и того же слова в разных контекстах.

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

Приятного чтения!
Читать дальше →
Total votes 79: ↑70 and ↓9+61
Comments68

Кузявые ли бутявки, т.е. пишем морфологический анализатор на Python

Reading time8 min
Views54K
Морфологический анализатор для русского языка — это что-то заумное? Программа, которая приводит слово к начальной форме, определяет падеж, находит словоформы — непонятно, как и подступиться? А на самом деле все не так и сложно. В статье — как я писал аналог mystem, lemmatizer и phpmorphy на Python, и что из этого получилось.
Читать дальше →
Total votes 115: ↑109 and ↓6+103
Comments44

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

Reading time9 min
Views301K


Есть несколько вопросов, которые встают перед фрилансерами, использующими кредитки или карты-рассрочки перед выездом за границу. Один из важнейших — это средство хранения денег и платежей. Карты русских банков по ряду причин становятся неудобны при длительном пребывании за границей — например, в случае утери, блокировки и необходимости восстановления. Или, например, при необходимости завести новый счёт в другой валюте — не полетишь же специально в Россию за этим? В последнее время добавились и политические риски. Но в итоге всё сводится к вопросу чисто логистическому: как получить банковскую карту, находясь за пределами родной страны.
Читать дальше →
Total votes 94: ↑88 and ↓6+82
Comments174

Секрет древней игры го. Почему компьютер до сих пор не обыграл человека?

Reading time5 min
Views161K

Реми Кулом (слева) с компьютерной программой Crazy Stone против гроссмейстера Норимото Ёды

В 1994 году компьютер обыграл чемпиона мира по шашкам, в 1997 году — по шахматам. Сегодня компьютеры превосходят людей абсолютно во всех популярных играх с полной информацией, кроме одной — го.

У классической игры с 2500-летней историей очень простые правила, но компьютерные программы даже близко не могут подобраться к победе над лучшими гроссмейстерами, пишет Wired.
Читать дальше →
Total votes 199: ↑175 and ↓24+151
Comments232

Как я писал Pacman’a и что из этого получилось. Часть 2

Reading time8 min
Views44K

Здравствуй, хабр! Во второй части статьи я продолжу рассказ о том, как я писал клон игры Pacman. Первую часть можно почитать здесь.
С момента, когда я последний раз работал над пакманом прошло порядка трех недель. Прошла большая часть сессии, стало немного больше времени и я решил продолжить. В этот момент появилось желание доделать игру до состояния, когда ее можно будет выложить в Google Play Market, хотя в самом начале разработки я об этом даже не помышлял. Кроме того, доделывание до играбельного состояния – неплохая тренировка. Где-то я слышал, что игры (да и вообще приложения) стоит доделывать.
Напомню, что разработка игры велась с использованием Android NDK (С++) и OpenGL ES 2.0.

Читать дальше →
Total votes 98: ↑95 and ↓3+92
Comments19

Как я писал Футболоид под iOS

Reading time15 min
Views41K
Приветствую достопочтеннейших Хабралюдей!


Не так давно, во время поиска новой работы, я получил очень интересное тестовое задание от ZeptoLab: написать за пару рабочих дней арканоид под iOS без использования сторонних библиотек типа Cocos2d/Box2d и т.п., то есть, на «чистом» OpenGL, что показалось мне весьма интересным. Кстати, об этом задании на Хабре уже писали, и даже устраивали разбор полётов. Итак, я бросил вызов судьбе и взялся за геймдев впервые после школьных упражнений с васиком в графическом режиме!

Уточню, что некоторые знания OpenGL у меня уже были, но весьма и весьма поверхностные. Можно сказать, что их не было ну почти совсем, я просто знал, что такое вьюпорт и что бывают какие-то там спрайты, что существуют матрицы преобразования… Так что данная статья могла бы быть озаглавлена "Как написать простую игру под iOS на чистом OpenGL, не зная его", но это слишком уж длинно.

В общем, если Вам интересно, как я это сделал за ~10 часов разработки и ~2 часа чтения, прошу под кат. (осторожно! много кода! мало картинок! ссылка на гитхаб и расслабляющее видео в конце!)
Поехали
Total votes 89: ↑69 and ↓20+49
Comments25

День рождения PAC-MAN

Reading time2 min
Views16K
Сегодня Pac-Man`у 34 года.



22 мая 1980 года в Японии вышла в свет игра Pac-Man.

— 6 место в списке пятидесяти лучших персонажей компьютерных игр по версии книги рекордов Гиннесса;
— 255 уровней;
— рекорд: 3 333 360 очков (для этого Билли Митчелу в 1999 году потребовалось 6 часов. Он собрал все точки, все энерджайзеры, все фрукты, съел всех привидений на всех 255 уровнях.) Архив статьи Wired.

Поиграть можно вот здесь.

Под катом я выложил немного материала для фана и пару видео и статей для более глубокого погружения в тему
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments13

Интервью: как С# и C++ помогают заработать на фондовом рынке

Reading time7 min
Views60K
Одним из самых популярных топиков в нашем блоге стал рассказ о Джесси Сполдинге — парне, который заработал $500к на фондовом рынке, применив свои познания в программировании и понимание основ фондового рынка (часть 1, часть 2). В комментариях к этим текстам некоторые хабрапользователи выражали свое сомнение в реалистичности такого сценария в нашей стране. Также слышались фразы вроде «ну он раньше работал в этой сфере».

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

Примечание: Андрей Горьковенко раньше работал программистом в ITinvest. В частности, он трудился над проектом торгового терминала SmartX (история его создания описана в отдельном хабратопике). Позднее он создал универсальную механическую торговую систему, с помощью которой можно реализовывать различные стратегии торговли на фондовом рынке. Эта разработка приносит ему основной доход, который превышает среднюю зарплату разработчика в Москве.

Андрей, привет! Расскажи, как ты вообще оказался связан с фондовым рынком?

В 2007 году я ушел с четвертого курса Воронежского военного института радиоэлектроники и начал искать работу. Поскольку я всегда увлекался программированием, и, как мне казалось, обладал определенными навыками в этой области, то рассматривал соответствующие вакансии. Так получилось, что мне предложили место в местном воронежском отделении одного из крупнейших российских брокеров.
Читать дальше →
Total votes 61: ↑37 and ↓24+13
Comments22

(Само)идентификация процессоров. Часть вторая. Волосатый CPUID

Reading time11 min
Views50K
В первой части я рассказал о необходимости идентификации расширений, присутствующих на конкретном процессоре. Это нужно для того, чтобы исполняющийся код (операционная система, компилятор или пользовательское приложение) смог надёжно определить, какие возможности аппаратуры он может задействовать. Также в предыдущей статье я сравнил несколько популярных архитектур центральных процессоров общего назначения. Возможности по идентификации между ними сильно разнятся: некоторые предоставляют полную информацию о расширениях ISA, тогда как другие ограничиваются парой чисел для различения вендора и ревизии.
В этой части я расскажу об одной инструкции архитектуры Intel IA-32 — CPUID, введённой специально для перечисления декларируемых процессором расширений. Немного о том, что было до её появления, что она умеет сообщать, какие неожиданности могут поджидать и какой софт позволяет интерпретировать её вывод.


Источник изображения: [1]
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments18

Выжимаем максимум из DDMS

Reading time6 min
Views35K
DDMS (Dalvik Debug Monitor Server) — безумно полезный инструмент для отладки приложений, который идет в комплекте с Android SDK, о котором почему-то особо и не сказано на хабре, впрочем как и в примерах google он представлен в очень скромном виде. Я бы хотел раскрыть его возможности и показать на что он способен. Вкратце:
  • изучать информацию о работающих потоках;
  • анализировать heap на количество свободной и занятой памяти;
  • анализировать какие объекты чаще создаются, их размер и другое (Allocation tracker);
  • находить проблемные участки кода, которые долго работают и требуют оптимизации (Method profiling). Это я советую знать всем.

Об этих вещах будет рассказано в рамках данной статьи. И для справки, менее интересное, что довольно тривиально и о чем НЕ будет рассказано в рамках данной статьи:
  • работать с файловой системой эмулятора или устройства;
  • находить информацию об ошибках (привет LogCat);
  • эмулировать звонки/смс/местоположение;
  • использовать инструмент Network Statistics.


Если заинтересовались, прошу под кат.
Total votes 34: ↑34 and ↓0+34
Comments6

Кросскомпиляция библиотек под iOS, делаем это правильно

Reading time4 min
Views11K
Во время разработки большого проекта наступает такой момент, когда надо встроить в приложение библиотеку из мира open source с подходящей лицензией. Например, вам захотелось ускорить декодирование картинок, или понадобился sqlite3 с fts4, или нужны какие-то плюшки из libicu, которых нету в системной libicucore.

Для этого библиотеку, которая понадобилась, нужно будет собрать для 5 архитектур: armv7, armv7s, arm64, i386, x86_64. С кросскомпиляцией есть много подводных камней, на которые не хотелось бы наткнуться, когда есть уже проверенные решения. В этом коротком посте я расскажу об автоматизации сборки библиотек на примере protobuf и sqlite3.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments4

Mail.Ru Group объявляет о старте программы поиска уязвимостей

Reading time4 min
Views31K
Мы уверены, что обратная связь — один из главных способов делать сервисы не только удобнее, но и безопаснее. Если хочешь, чтобы защита была по-настоящему эффективной, — дай проверить ее на прочность исследователям.

Mail.Ru Group объявляет о старте программы поиска уязвимостей: теперь мы будем выплачивать награды за обнаружение проблем в безопасности наших проектов. Программа будет реализовываться вместе с одним из самых авторитетных в мире хакерских коммьюнити HackerOne.



Читать дальше →
Total votes 107: ↑90 and ↓17+73
Comments45

Кто живет в соцсетях?

Reading time8 min
Views75K

Как бы ни гремели скандалы про PRISM, про персональные данные и их утечки, социальные сети так и манят поведать о себе всё: какие котята нравятся, с кем ты дружишь и почему с утра такой не выспавшийся.
Целая энциклопедия о поведении большинства интернет-активной публики лежит совсем рядом, и мне всегда хотелось её пощупать. С одной стороны, эти данные лежат вроде бы в открытом доступе, но просто взять и проанализировать их не так легко — всё слишком неструктурировано и разрозненно. К тому же, насколько я знаю, пригодных для машинного анализа наборов данных о соцсетях практически не существует. А для России — так и подавно.
Выбора не оставалось, и пришлось, зловеще хохоча по ночам, писать простеньких пауков для соцсетей ВКонтакте, Одноклассники, МойМир и русского сегмента Фейсбук, которые за несколько месяцев неспешно собрали более или менее статистически-корректный семпл данных. Собиралась только та информация, которую люди сами о себе рассказали. А рассказали они много.

О том, что удалось выудить из таких данных, и пойдет рассказ.
Читать дальше →
Total votes 131: ↑124 and ↓7+117
Comments115

QLiveBittorrent — консольный bittorrent клиент для просмотра файлов до скачивания

Reading time5 min
Views34K
Ровно месяц назад была опубликована статья LiveDC — Быстрый доступ к p2p файлам. Смысл ее в том, что Erty_Hackward написал DC-клиент с возможностью просмотра файлов до их окончательной загрузки. С его помощью можно, например, смотреть фильмы спустя пару минут после начала закачки, перематывать их, смотреть с любого момента. А можно извлечь нужный файл из большого архива, не перекачивая целый архив.

Мне очень понравилась идея этой программы. Но она написана на C#. А хотелось бы использовать ее в линуксе. Поэтому с разрешения автора я с большим удовольствием взялся за создание аналогичной программы для линукса. В результате получился консольный битторрент клиент QLiveBittorrent.


Читать дальше →
Total votes 146: ↑141 and ↓5+136
Comments91

Information

Rating
Does not participate
Location
Chengdu, Sichuan, Китай
Registered
Activity