Обновить
1
0

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

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

Таблицы сопряженности: лог-линейные модели и Марковские сети

Время на прочтение7 мин
Охват и читатели17K
В предыдущей части публикации был рассмотрен метод факторизации неотрицательных матриц в качестве снижения размерности и визуализации таблиц сопряженности. В этой части будет проведен статистический анализ полученных диаграмм с использованием лог-линейных моделей. Напомню, примеры демонстрируются для complex survey данных — стратифицированных, кластеризованных и взвешенных выборок. Это обстоятельство предполагает применение специальных методов оценки и выбора моделей. Для визуализации полученных результатов применяются Марковские сети — удобный инструмент графического представления взаимодействия факторов лог-линейных моделей.



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

Внедрение веб консолей в jvm процесс на примере SonarQube

Время на прочтение5 мин
Охват и читатели12K
По аналогии с примером из этой статьи, вы сможете внедрить консоль hawtio в свое jvm приложение без его пересборки и перекомпиляции. А также в случае с DEV/QA хостами внедрить в java процесс SQL веб консоль из проекта H2


Скринкасты, описание процесса и краткий обзор компонент...

Сложности сборки Python3 + Qt5 приложений под Windows

Время на прочтение4 мин
Охват и читатели51K
Недавно потребовалось мне сделать небольшую прогу под Windows. Раньше мне не доводилось разрабатывать под нее.
Сама программа несложная, написалась относительно быстро. Намного больше времени отъела сборка ее под винду. Понятно, что выбранные инструменты (Python3 + Qt5) не родные, а универстальные, но что потребуется столько времени затратить на сборку, я не предполагал.
Соответственно, хочется поделиться практикой, может кому еще придется стучаться лбом в эту стену.
Под катом выстраданная инструкция как легко собирать PyQt5 приложения в single-file.exe не требующий инсталлятора.
Читать дальше →

Генераторы непрерывно распределенных случайных величин

Время на прочтение15 мин
Охват и читатели128K
Генератор случайных чисел во многом подобен сексу: когда он хорош — это прекрасно, когда он плох, все равно приятно (Джордж Марсалья, 1984)

Популярность стохастических алгоритмов все растет. Многие из них базируются на генерации большого количества различных случайных величин. Далеко не всегда равномерно распределенных. Здесь я попытался собрать информацию о быстрых и точных генераторах случайных величин с известными распределениями. Задачи могут быть разными, разными могут быть и критерии. Кому-то важно время генерации, кому-то — точность, кому-то — криптоустойчивость, кому-то — скорость сходимости. Лично я исходил из предположения, что мы имеем некий базовый генератор, возвращающий псевдослучайное целое число, равномерно распределенное от 0 до некого RAND_MAX

unsigned long long BasicRandGenerator() {
    unsigned long long randomVariable;
    // some magic here
    ...
    return randomVariable;
}

и что этот генератор достаточно быстрый. Я имею ввиду, что дешевле сгенерировать с десяток случайных чисел, нежели чем посчитать логарифм или возвести в степень одно из них. Это могут быть стандартные генераторы: std::rand(), rand в MATLAB, Java.util.Random и т.д. Но имейте ввиду, что подобные генераторы редко подходят для серьезной работы. Зачастую они проваливают разные статистические тесты. А также, помните, что вы полностью зависите от них и лучше использовать свой собственный генератор, чтобы иметь представление о его работе.

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


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

Равномерное распределение





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

Витая архитектура

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

Перевод поста Кристофера Карлсона (Christopher Carlson) "Twisted Architecture".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе.


Я не ставил перед собой задачу скрутить Херст-тауэр (Hearst Tower) Нормана Фостера в ленту Мёбиуса и отправить его в космос, или заставить его Мэри-Экс танцевать танго с самим собой, просто я увлекся. Это один из профессиональных рисков работы с Mathematica.

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


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

Xonix на Javascript с картинками

Время на прочтение27 мин
Охват и читатели18K
Xonix — популярная игра времен DOS, клон видеоигры Qix.

На Javascript Xonix уже был портирован несколько раз. Лучшая и наиболее приближенная к оригиналу из существующих реализаций на сегодняшний день, пожалуй, вот эта. Ее я поначалу пытался приспособить для своей реализации/модификации… Но, к сожалению, код даже после деобфускации так и не стал понятным (во всяком случае для меня). К тому же, насколько я смог понять, код там местами не совсем эффективен, либо вовсе устаревший. Так что пришлось все писать с нуля.

В результате у меня получился такой вот «свой» Xonix, с картинками и ответами.

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

Про Бурали-Форти, Пуанкаре и то самое определение единицы

Время на прочтение11 мин
Охват и читатели87K
Если вы, уважаемый мой читатель, имеете обыкновение проводить много времени в интернете, вы наверняка уже видели эту картинку с цитатой:

image

Наверняка также вы задавались вопросом: что, чёрт подери, здесь написано? Формула из этой цитаты интересна тем, что у человека, имеющего высшее математическое образование, этот вопрос возникает столь же неумолимо, как и у любознательного семиклассника. У нелюбознательных семиклассников несколько иной круг интересов, выходящий за рамки данной статьи; однако даже они не откажут себе в удовольствии похихикать над «этими чокнутыми ботаниками», или как оно там формулируется на современном молодёжном сленге.

В нижеследующем тексте я раскрою перед вами тайну этого загадочного сочетания символов. Пожалуйте под кат, однако помните поучительную историю о любопытной Варваре, которой на базаре рассказали про парадокс Банаха-Тарского, отчего она сошла с ума, разрезала себе нос на конечное количество частей и склеила из них рогатую сферу Александера.
N.B. Я предупреждал.

Веб-приложения на Clojure

Время на прочтение6 мин
Охват и читатели25K
На Хабре не так уж и много статей о Clojure, и это печально, намерен это исправить. Ниже я расскажу об отличном на мой субъективный взгляд инструменте — языке программирования Clojure и его библиотеках для создания веб-приложений.
Читать дальше →

Генерация музыки в реальном времени

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


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

Генерация и решение лабиринта с помощью метода поиска в глубину по графу

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

В этой статье речь пойдет о самом простом в реализации алгоритме генерации «идеального» лабиринта и его применении для поиска пути.

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

Заинтересовавшихся — прошу под кат.
Читать дальше →

Анализ тональности в социальных медиа на русском языке при помощи RussianSentimentAnalyzer API

Время на прочтение2 мин
Охват и читатели11K
В этом посте я покажу, как воспользоваться API анализа тональности в социальных медиа на русском языке. Одной из отличительных фич системы является возможность определять тональность по отношению к заданному объекту мониторинга. Проиллюстрирую на примере:

Мне нравится телефон X, но телефон Y ужасен.

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

Дайджест новостей игровой индустрии

Время на прочтение6 мин
Охват и читатели15K
Конец июня — самое время погрузиться в прохладные воды новостей геймдева: ознакомиться с самыми жаркими ААА-новинками и прокачаться в разработке игр.

Подробнее

300 потрясающих бесплатных сервисов

Время на прочтение11 мин
Охват и читатели1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

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

Автоматизированное создание диаграмм в xkcd-стиле: из серьёзного в забавное

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

Перевод поста Виталия Каурова "Automating xkcd Diagrams: Transforming Serious to Funny".
Скачать файл, содержащий текст статьи, интерактивные модели и весь код, приведенный в статье, можно здесь.
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.

Утром в понедельник я наткнулся на интересный вопрос, опубликованный в Mathematica Stack Exchange, с нехитрым заголовком — "создание графиков в xkcd-стиле". Из-за популярности веб-комиксов xkcd Рэндалла Манро (Randall Munroe), я ожидал, что люди добавят себе несколько закладок этой страницы и с десяток up-vote. Тогда я ещё не знал, как всё обернётся. Сложно предсказать вирусность какого-то мема, однако если удалось создать такой, то весьма здорово наблюдать, как растёт его популярность и как он распространяется в интернете. Через два дня этот пост имел уже более 100 тысяч просмотров, двести up-vote и 150 закладок; стали возникать ответы и схожие посты в других разделах Stack Exchange, в Twitter разразился небольшой ураган по этому поводу, появлялись обсуждения в Hacker News и reddit. Тут я приведу оригинал поста Amatya с примером изображения в xkcd-стиле:

«Я получил электронное письмо, на которое я захотел ответить с графиком в xkcd-стиле, но я не мог справиться с этим. Всё, что я рисовал, выглядело как надо, однако я не мог придумать такой команды для Plot Legends, чтобы сделать фрагменты текста плавающими. Может, есть какие-то идеи, как можно было бы создать графики в xkcd-стиле? Когда всё выглядит рисованным от руки и неточным. Думаю, рисование таких странных кривых в Mathematica должно быть трудным в реализации.»

Walking back to my front door at night

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

Тестирование в Java. JUnit

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

Сегодня все большую популярность приобретает test-driven development(TDD), техника разработки ПО, при которой сначала пишется тест на определенный функционал, а затем пишется реализация этого функционала. На практике все, конечно же, не настолько идеально, но в результате код не только написан и протестирован, но тесты как бы неявно задают требования к функционалу, а также показывают пример использования этого функционала.

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

Ну и начну с, пожалуй, самого известного, а потому и самого используемого фреймворка для тестирования — JUnit. Используется он в двух вариантах JUnit 3 и JUnit 4. Рассмотрю обе версии, так как в старых проектах до сих пор используется 3-я, которая поддерживает Java 1.4.

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

Практические советы по верстке бланков заявлений в ЛаТеХе

Время на прочтение3 мин
Охват и читатели29K
Несколько полезных приемов для любителей LaTeX'а, желающих сверстать бланк какого-нибудь заявления. Будем для примера верстать форму претензии к Почте России (её «официальный» вариант можно, если повезёт, скачать с сайта Почты России). Всю верстку от первой и до последней буквы объяснять не будем, предполагая, что читатель с основами ЛаТеХа знаком. Рассмотрим специфические рецепты верстки «линеек» где нужно вписать пропущенные слова, чекбоксов с метками, подписей мелким шрифтом снизу текста и линий разной толщины и прерывистости.

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

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

10 вещей, которых вы не знали о Java

Время на прочтение8 мин
Охват и читатели107K
Итак, вы работаете на Java с самого её появления? Вы помните те дни, когда она называлась «Oak», когда про ООП говорили на каждом углу, когда сиплюсплюсники думали, что у Java нет шансов, а апплеты считались крутой штукой?

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

Пишем поисковый плагин для Elasticsearch

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

Ёжик во фрактальном тумане

Время на прочтение5 мин
Охват и читатели48K
Эта статья — последняя из серии моих хабрастатей о фракталах. В хабрастатье «Рисуем картинки с помощью кривой Гильберта» рассказывалось о котёнке по имени Гав, в хабрастатье «Кош на комплексной плоскости» — о перетекании фракталами в горизонт, в хабрастатье «Ночь фракталов» — об алгоритме времени убегания. В этой статье пойдёт речь о ёжике в тумане и, конечно же, о коте.



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

Поиск самых длинных цепочек слов в русском языке с помощью языка Wolfram Language (Mathematica)

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

Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~5 МБ).

Введение


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

Предположим, что у нас есть несколько последовательных метаграмм, скажем:

мнение-мление-тление-трение-прение-поение-роение-рдение-бдение-биение

они образуют цепь метаграмм, или цепочку слов.

Отсюда проистекает игра под названием цепь слов (word ladder), которую придумал в далеком 1879 году Льюис Кэрролл.

Ясно, что далеко не для каждого начального слова может быть составлена такого рода цепь, а некоторые слова, по-видимому, должны порождать довольно длинные цепи.

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

Информация

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