Search
Write a publication
Pull to refresh
2
0
Садовников Антон Петрович @Siddthartha

Developer

Send message

Gimpbox — Однооконный Gimp

Reading time1 min
Views3.6K


Сегодня я хотел бы рассказать Вам о замечательном дополнении для Gimp'а под названием Gimpbox.

Многим уже порядком поднадоел многооконный режим Gimp'a и пока все в ожидании стабильного релиза 2.8 где разработчики обещали сделать возможность выбора между многооконным и однооконным режимом, китайские разработчики подумали как можно решить эту проблему малой кровью и сделали дополнение Gimpbox, смысл которого заключается в том что бы объединить все окна Gimp'а в одно окно как это сделано например в Adobe Photoshop, Paint.net и других редакторах.

Gimpbox является frontendом для Gimp'а, т.е. он будет работать только с уже установленным Gimp'ом.

Под катом инструкция по установки.
Читать дальше →

«Живые графы» — выращивание графов на клеточных автоматах с примерами на Silverlight

Level of difficultyEasy
Reading time15 min
Views15K
UPD. 2025. The demo of Graph Unfolding Cellular Automata (GUCA) has been re-implemented in TypeScript: https://github.com/roma-goodok/guca

Введение


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

Да и простого любопытствующего обывателя, не отягощённого подробностями органической химии, подобные вопросы не обходят стороной.

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

живой граф

Такой предельно упрощённой и наглядной моделью могут оказаться «Живые графы» — конечные автоматы на графе, каждый узел которого содержит некое исполняющее устройство (автомат) с конечным числом состояний и с набором примитивных правил, управляющих созданием или изменением новых связей между узлами.

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

Алгоритм Флойда — Уоршелла

Reading time6 min
Views181K
Алгоритм Флойда — Уоршелла — алгоритм для нахождения кратчайших расстояний между всеми вершинами взвешенного графа без циклов с отрицательными весами с использованием метода динамического программирования. Это базовый алгоритм, так что тем кто его знает — можно дальше не читать.

Этот алгоритм был одновременно опубликован в статьях Роберта Флойда (Robert Floyd) и Стивена Уоршелла (Stephen Warshall) в 1962 г., хотя в 1959 г. Бернард Рой (Bernard Roy) опубликовал практически такой же алгоритм, но это осталось незамеченным.
Читать дальше →

Фонетический поиск

Reading time4 min
Views16K
Пару лет назад была задача написать для одного из сайтов такой поиск, который бы распознавал опечатки и предлагал бы исправленные запросы. Было перепробовано несколько вариантов, об одном из которых я и хотел тут написать. Поиск на основе звучания слов может стирать языковые границы, поскольку имена собственные на разных языках созвучны. Например, ищешь «Арнольд Шварцнеггер» на русском — находишь «Arnold Schwarzenegger» на английском, или ищешь «Michael Jordan» — находишь «Майкл Джордан», или ищешь «Чак Норрис» — и вдруг он сам тебя находит. Помимо поиска созвучных слов этот метод нивелирует большое количество опечаток. А то че-то задолбала попса, надо больше про инсайд…

...больше про инсайд

Ubuntu — Фейс-контроль для входа в систему

Reading time2 min
Views6.6K
На OMG! Ubuntu! привели простую инструкцию, как можно прикрутить изображение с камеры для входа в систему. Безопасность данной реализации ещё ожидает своего исследователя, тут же будет дан небольшой перевод заметки и комментарии.

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

Использование коэффициента Танимото для поиска людей с одинаковыми предпочтениями

Reading time3 min
Views13K
Решая упражнения к книге «Программируем коллективный разум», я решил поделиться реализацией одного из алгоритмов упомянутого в этой книге (Глава 2 — Упражнение 1).

Исходные условия следующие: пусть мы имеем словарь с оценками критиков:

critics={'Lisa Rose'{'Superman Returns'3.5'You, Me and Dupree'2.5'The Night Listener'3.0}
           'Gene Seymour'
{'Superman Returns'5.0'The Night Listener'3.5'You, Me and Dupree'3.5}}

Чем выше оценка, тем больше нравится фильм.
Надо вычислить: насколько схожи интересы критиков для того, например, чтобы можно было на основе оценок одного рекомендовать фильмы другому?

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

Для Ubuntu создается интерфейс, реагирующий на движения пользователя по web-камере

Reading time2 min
Views2.3K
Данный топик является переводом поста в дизайнерском блоге Canonical.

Введение


С входом на рынок таких продуктов, как Nintendo Wii, iPhone Apple и Microsoft Kinect, разработчики наконец начали понимать, что есть несколько способов, которыми человек может управлять компьютером помимо клавиатур, мышей и сенсорных экранов. В наши дни есть много альтернатив, очевидно основанных на аппаратных датчиках, и основное различие — зависимость от программного обеспечения. В решениях для продуктов, основанных на машинном зрении (как Microsoft Kinect), полагаются на арт-программное обеспечение, чтобы проанализировать изображения, полученные одной или более камерами.
Если Вам интересна техническая сторона этого, мы рекомендуем взглянуть на следующие проекты проектам: Arduino и OpenFrameworks.
Читать дальше →

Компиляция. 3: бизон

Reading time13 min
Views50K
Это единственный пост в серии, в центре внимания которого — старообрядный сишный бизон, так надоевший некоторым. Тем, кто пишет не на Си, пост всё равно должен быть интересен, потому что похожие по принципу работы генераторы LR-парсеров существуют для очень многих языков. Тех же, кто идеологически не приемлет LR-парсеры, мне сегодня привлечь нечем.

Далее в посте:

  1. Компиляция грамматики
  2. Двухступенчатый парсер
  3. Что у него внутри?
  4. Конфликты в грамматике
  5. Как это работает?
Читать дальше →

Ещё 10 уловок для защиты Wordpress'a

Reading time6 min
Views67K

На сегодняшний день Wordpress как никогда популярен. Блоги, мини-сайты, а то и целые порталы — всё это строится на основе такого удобного движка-конструктора как Wordpress. Но за удобностью и лёгкостью освоения кроются, прежде всего, вопросы, связанные с безопасностью вашего сайта. Большая распространённость — большее внимание злоумышленников.

В этой статье описаны десять простых уловок, которые позволят сделать ваш сайт на Wordpress’e ещё более защищённым и позволят спокойнее спать по ночам.
Читать дальше →

Первая стабильная версия OCR-системы Cuneiform Linux

Reading time1 min
Views3.7K
Юсси Пакканен сообщил о выходе версии 1.0 системы оптического распознавания текстов Cuneiform Linux. В новой версии удалён некоторый код сомнительного лицензионного происхождения и исправлено множество ошибок.

Код Cuneiform Linux распространяется под упрощённой лицензией BSD и основан на коде системы CuneiForm, который был открыт компанией Cognitive Technologies в 2008 году.

Скачать можно здесь: launchpad.net/cuneiform-linux/+download (инструкции по установке и использованию можно прочитать в топике «Распознаем текст с помощью cuneiform»).

Распознаем текст с помощью cuneiform

Reading time2 min
Views30K
Поступила задача наладить автоматическое распознание текста с фотографий, т.е. пользователь при загрузке фотогографии на сервер, получает еще и распознанный с нее текст. Сказано — сделано. Было найдено хорошее бесплатное консольное решение — cuneiform.
Читать дальше →

Мечта параноика или Еще раз о шифровании

Reading time7 min
Views101K
В свете последних событий с torrents.ru и активизации государственных группировокорганов по борьбе с пиратством, думаю многие задумались как же обезопасить себя или свой сервер на случай если придут нежданные «гости». Вот и мне подвернулась задача защитить локальный медиасервер от посягательств, проведя пару дней за гугленнием и чтением мануалов/howto — мне удалось это реализовать. Скажу сразу, статей по шифрованию очень много, но в основном они рассчитаны на шифрование только определенных разделов, либо устарели/содержат много ошибок.

ЦЕЛИ:

  1. Весь винт(винты) должны быть надежно зашифрованы
  2. На винтах не должно быть абсолютно никакой разбивки, так как будто это новый(или стертый) винт
  3. ОС должна стоять на зашифрованных разделах
  4. Должна быть возможность увеличения дискового пространства, путем добавления новых винтов
  5. Загрузка системы без ввода ключа от шифрованных данных

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

Tank — твой робот на Arduino

Reading time8 min
Views40K
Запрограммируем робота на основе Arduino.
Начну с теории и описания всего того, что нам пригодится.

image

Напомню Arduino – это аппаратная вычислительная платформа, основными компонентам которой являются простая плата ввода/вывода и среда разработки на языке Processing/Wiring. Документация на аппаратную часть и программный код опубликованы под лицензией «copyleft» но разработчики выразили желание, чтобы название «Arduino» было торговой маркой для официального продукта и не использовалось для производных работ без разрешения. В документе об использовании названия Arduino подчеркивается, что проект открыт для всех желающих.

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

RE2 — новая библиотека регулярных выражений

Reading time1 min
Views5.9K
Вчера Google выпустил новую библиотеку регулярных выражений — RE2. Библиотека написана на C++.

Существует два подхода к реализации регулярных выражений: недетерминированные конечные автоматы (NFA) и детерминированные конечные автоматы (DFA). Первый механизм регулярных выражений используется, например, в Perl, Python, Ruby и .NET. К сожалению, в этом случае время работы программы может расти экспоненциально, а также может неограниченно расти использование стека. Такое поведение оказалось неприемлемым для таких проектов Google, как Code Search, Sawzall и Bigtable, поэтому программисты компании написали библиотеку на основе детерминированных конечных автоматов. RE2 гарантирует линейную скорость выполнения поиска и ограниченное использование стека. DFA также используется, например, в lex и egrep. В отличие от большинства подобных реализаций RE2 поддерживает почти все основные возможности PCRE.

Библиотека распространяется под BSD лицензией.

UPD: Убрал Tcl из примеров NFA, сейчас там используются DFA.

Vuurmuur — боевые коты на страже вашей сети

Reading time2 min
Views15K
image

Vuurmuur — за таким «кошачьим» именем скрывается довольно мощная GUI надстройка для iptables. Основным отличием от других iptables-надстроек является наличие консольного интерфейса написанного на Ncurses. Поэтому администрирование всё также легко возможно посредством SSH или консоли. Vuurmuur умеет работать с шейпингом, поддерживает функции мониторинга трафика, ведёт отдельные логи, прекрасно работает как на 2.4 так и на 2.6 ядрах и даже «говорит» на русском.

Буквы, картинки, мультики...

Новая верстка страницы результатов поиска

Reading time2 min
Views5.3K

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


Что же нового


Благодаря концепции независимых блоков, поддержка и разработка страницы с результатами поиска стали проще. Те, кто был на наших субботниках, посвященных верстке, или смотрел записи (1, 2), слушал наши доклады на других конференциях — знают, насколько это удобно.

Мы пошли дальше, развивая эту идею до концепции Абсолютно Независимых Блоков, что позволяет писать очень эффективный с точки зрения производительности CSS. Один элемент — одно правило.


Тут лирико-техническое отступление: дело в том, что браузеры читают CSS-правила справа-налево. Например, если у вас написано правило .b-my-block .title a {color: #f00;}, то браузер сначала выберет все элементы на странице, потом выберет все , у которых есть элемент-предок с классом title, потом только те , у которых элемент-предок с классом title, у которого есть элемент-предок с классом b-my-block.

Поэтому мы приняли решение, и вся новая верстка в Яндексе делается с АНБ. Правило выше должно быть записано как: .b-my-block__title__a. Двойное подчеркивание — признак того, что это элемент блока. Подробнее в клубе Блок, Элемент, Модификатор.


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


Однако если вы уже посмотрели код страницы, то заметили, что никаких длинных классов нет: мы сокращаем все уникальные длинные имена классов до буквенных сокращений вида . Такая замена происходит на всех уровнях: статическая верстка, стили, шаблоны и скрипты.

Делаем мы это с помощью маленькой утилиты jeanny, специально написанной верстальщиком поиска.


При изменении или добавлении элементов на странице существующая таблица замен сохраняется. Таким образом, закешированные стили не затрагиваются.


Отдельно про стили. Мы разделили весь CSS на ядро, которое подключается внешним файлом и кешируется, и опциональные элементы: различные колдунщики, спецсниппеты. Стили таких элементов подключаются inline в HTML-код страницы.


В результате


  • мы получили удобную в поддержке верстку, уменьшили в два раза размер CSS (было 22Кб, стало 12Кб),
  • уменьшили время отрисовки страницы, особенно это заметно в IE6/7, где скорость увеличилась более чем на 100%.

Впереди много планов и экспериментов. Следите за новостями.


<verstka/>.

Создание круговых панорам (flash)

Reading time5 min
Views142K
Как сделать панорамное фото с трехмерным обзором


Вертеть головой — потянув мышкой, или курсорами ← →, приближение/удаление — колесиком мышки.

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

Вообще, сделать панорамное фото (в т.ч. круговую панораму) совсем не сложно.
При минимальном навыке на всё уйдет минут 10.

Перечислю всё, что нам понадобится:
Читать дальше →

HyperGraphDB — база данных на основе графов

Reading time3 min
Views8.7K


Наверное, не многие знают о существовании такого типа баз данных, как базы данных на основе графов (graph db). Ранее в NOSQL среде была распространена всего одна система такого плана — Neo4j. Сегодня же к нам прибыло еще 2 — Infogrid и HyperGraphDB. О последнем и пойдет речь.

Как описывают сами создатели свою систему:

«HyperGraphDB — это расширяемая, портативная, распределенная, встраиваемая система общего назначения со свободным (open-source) механизмом хранения данных. Эта система разработана специально для проектов использующих возможности искусственного интеллекта и семантического вэба и может использоваться как встраиваемая, объектно-ориентированная база данных для проектов любого масштаба.»

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

Рисуем координаты на карте с помощью PHP + GDLib

Reading time2 min
Views8.7K
Так сложилось что по долгу своей службы я занимаюсь гео-поиском. И зачастую мне нужно показать на карте координаты пользователей, для того чтобы сделать какие-либо анализы. Для этой цели я, до определенного времени, успешно использовал Google Maps, пока, однажды, мне не понадобилось нанести на карту не много не мало 16 млн. координат.

Как я это сделал?
Читать дальше →

Information

Rating
Does not participate
Location
Луганск, Луганская обл., Украина
Date of birth
Registered
Activity

Specialization

Specialist
Lead
From 10,800 $
PHP
OOP
Docker
Rust
Linux
Asynchronous programming
MQTT
Geoinformation systems
Machine learning
Computer Science