Про нейронные сети, как один из инструментов решения трудноформализуемых задач уже было сказано достаточно много. И здесь, на хабре, было показано, как эти сети применять для распознавания изображений, применительно к задаче взлома капчи. Однако, типов нейросетей существует довольно много. И так ли хороша классическая полносвязная нейронная сеть (ПНС) для задачи распознавания (классификации) изображений?
Богдан Франковский @Ferromanread-only
Пользователь
Серьезный разговор о VLC #2
5 min
32KВ продолжении темы "Серьезный разговор о VLC"
Под катом:
1. VLC Extended (самые приятные мелочи которые просто радуют)
4. Отправляем данные о музыке в свой профиль на LAST.FM (Аудиоскробблинг)
5. Запуск VLC без GUI интерфейса (Для и по просьбе любителей mPlayer)
— Просмотр/конвертация/сохранение видео с Youtube.
… и небольшой хинт для мучеников с Прокси на Windows. ну и пара ответов на частые вопросы, которые задавались с момента прошлой публикации.
Под катом:
1. VLC Extended (самые приятные мелочи которые просто радуют)
- VLC Wall (Просмотр одного видео на 2...81 (теоретически 9801) мониторах)
- Играем в Puzzle из видео который смотрим :)
- Делаем свою онлайн Радиостанцию.
4. Отправляем данные о музыке в свой профиль на LAST.FM (Аудиоскробблинг)
5. Запуск VLC без GUI интерфейса (Для и по просьбе любителей mPlayer)
— Просмотр/конвертация/сохранение видео с Youtube.
… и небольшой хинт для мучеников с Прокси на Windows. ну и пара ответов на частые вопросы, которые задавались с момента прошлой публикации.
+71
Серьезный разговор о VLC
6 min
128KПод катом:
1. Небольшое введение в медиаплеер/сервер VLC.
2. Удаленное управление VLC.
2.1. VLC в качестве Пульта ДУ (iPhone/iPod Touch\КПК)
3. Одиночное/пакетное конвертирование/кодирование видео в VLC (на примере кодирования видео для iPod/iPhone)
1. Небольшое введение в медиаплеер/сервер VLC.
2. Удаленное управление VLC.
2.1. VLC в качестве Пульта ДУ (iPhone/iPod Touch\КПК)
3. Одиночное/пакетное конвертирование/кодирование видео в VLC (на примере кодирования видео для iPod/iPhone)
+103
О тестировании web-приложений
7 min
13KТестирование софта это процесс, участвующий во всех жизненных циклах его разработки, который занимается проверкой и планированием требований продукта, подготовкой и проведением изменений в разрабатываемой системе. Как следствие — находятся несоответсвия требованиям и ошибки, оцениваются инструменты которые были использованы.
А если отвлечься и рассматривать системно, то роль тестера на самом деле лежит в каждом человеке. Если смотреть на проект как на человека, то роли
Quality Assurance часто считается синонимом тестирования, но на самом деле это методика предотвращения ошибок, а не их поиска и исправления. Качество в этом смысле — характеристика сделанного продукта.
Формально говоря, тестер должен проверять даже техническое задание, план проекта и анализ на логичность и понятность, а не только код и интерфейс программы. Тестирование как независимая дисциплина в общем потоке разработки ПО появилась в начале девяностых, когда стали более важны аудитория (клиенты), качество и время разработки.
Важность тестирования ПО особенно важна в критических системах. К примеру аппарат по лучевой терапии Therac (1985) облучил смертельной дозой радиации 6 человек из-за отсутсвия проверки состояния агрегата в коде и валидации. Или марсоход в 1999 году принёс убыток в 125 млн долларов из-за непродуманности единой системы измерения между коммандами разработчиков. И даже в Эстонии при электронных выборах были проблемы из-за плохого нагрузочного тестирования.
Основные принципы тестирования воплощены в небольшом документе ISTQB и в книге «Foundations of software testing».
Вся «прелесть» специальности тестера в том что как правило для этого не нужны большие познания в программировании и люди далёкие от web-строительства могут себя попробовать в этой роли.
А если отвлечься и рассматривать системно, то роль тестера на самом деле лежит в каждом человеке. Если смотреть на проект как на человека, то роли
- управляющего проектом это позвоночник и вегетативная нервная система
- программисты это скелет и моторика
- аналитики это органы чувств
- тестеры это совесть
Quality Assurance часто считается синонимом тестирования, но на самом деле это методика предотвращения ошибок, а не их поиска и исправления. Качество в этом смысле — характеристика сделанного продукта.
Формально говоря, тестер должен проверять даже техническое задание, план проекта и анализ на логичность и понятность, а не только код и интерфейс программы. Тестирование как независимая дисциплина в общем потоке разработки ПО появилась в начале девяностых, когда стали более важны аудитория (клиенты), качество и время разработки.
Важность тестирования ПО особенно важна в критических системах. К примеру аппарат по лучевой терапии Therac (1985) облучил смертельной дозой радиации 6 человек из-за отсутсвия проверки состояния агрегата в коде и валидации. Или марсоход в 1999 году принёс убыток в 125 млн долларов из-за непродуманности единой системы измерения между коммандами разработчиков. И даже в Эстонии при электронных выборах были проблемы из-за плохого нагрузочного тестирования.
Основные принципы тестирования воплощены в небольшом документе ISTQB и в книге «Foundations of software testing».
Вся «прелесть» специальности тестера в том что как правило для этого не нужны большие познания в программировании и люди далёкие от web-строительства могут себя попробовать в этой роли.
+15
Написание базового wave-робота на python'e
6 min
4.5KПо лету мне достался инвайт в гугльвейв песочницу. Но в этой самой песочнице было очень много народу, все волны были публичными, и мой бедный нетбук только с большим скрипом переваривал всю эту активность, так что, немного поигравшись, на сендбокс я забил :)
И вот недавно мой аккаунт в сендбоксе превратился в аккаунт в лайвпревью, и я, разослав инвайты тем, до кого добрался, и ожидая, пока хоть кто-то из знакомых их получит, сел разбираться с роботским апи.
+50
Однорукий повар? Запросто!
1 min
3.3KНамазать масло на хлеб, разрезать яблоко, открыть банку простокваши – все это очень просто, если у тебя две хватательных конечности? А если меньше? The One-Hand Kitchen Equipment – набор кухонных приспособлений, призванный помочь инвалидам так же ловко справляться с едой, как это делают их парнорукие собратья. Дизайнер — Gabriele Meldaikyte.
+32
Распознавание изображений. Алгоритм Eigenface
6 min
67KВведение
Я продолжаю серию статей посвящённую тематике pattern recognition, computer vision и machine learning. Сегодня я вам представляю обзор алгоритма, который носит название eigenface.
В основе алгоритма лежит использование фундаментальных статистических характеристик: средних (мат. ожидание) и ковариационной матрицы; использование метода главных компонент. Мы также коснёмся таких понятий линейной алгебры, как собственные значения (eigenvalues) и собственные вектора (eigenvectors) (wiki: ru, eng). И вдобавок, поработаем в многомерном пространстве.
Как бы страшно всё это не звучало, данный алгоритм, пожалуй, является одним из самых простых рассмотренных мною, его реализация не превышает нескольких десятков строк, в тоже время он показывает неплохие результаты в ряде задач.
+122
Подготовка ваших приложений Inferno к standalone установке
4 min
2.6KTutorial
Итак, вы написали некое приложение на Limbo, и хотите установить его на другую машину, или распространять через интернет. Скорее всего, там где будет устанавливаться это приложение OS Inferno не установлена. Это горько, но более чем вероятно. :) Что же делать? Обучать пользователей вашего приложения устанавливать и настраивать у себя OS Inferno? Включать полную инсталляцию Inferno (до 250 MB) в архив с каждым вашим приложением? Нет, всё гораздо проще!
Давайте посмотрим, как можно урезать Inferno до минимума, необходимого для работы вашего приложения. Для этого надо разобраться, что происходит при запуске
Давайте посмотрим, как можно урезать Inferno до минимума, необходимого для работы вашего приложения. Для этого надо разобраться, что происходит при запуске
emu
— как загружается OS Inferno.+20
Как подобрать цвет для оформления своей работы
1 min
3.2KЭдвард Тафти в Envisioning Information упоминает об одном способе выбора цветовой палитры для оформления. Он говорит, что очень хорошо использовать цвета окружающего нас мира. Человеку должны быть приятны те сочетания цветов, которые окружают его в природной приятной обстановке в солнечный день.
Решив попрактиковаться, я взял несколько своих мыльничных фотографий, потыкал в них пипеткой и покрасил получившимися цветами маленький бессмыссленный шаблон.
Вот погожий зимний пейзаж
Под катом еще фотографии, а если вам интересен Тафти, у меня на сайте есть ссылки на его книги и примеры из них.
Решив попрактиковаться, я взял несколько своих мыльничных фотографий, потыкал в них пипеткой и покрасил получившимися цветами маленький бессмыссленный шаблон.
Вот погожий зимний пейзаж
Под катом еще фотографии, а если вам интересен Тафти, у меня на сайте есть ссылки на его книги и примеры из них.
+76
Генератор резиновой вёрстки
1 min
1.5KНаходится по адресу http://myfreeweb.ru/markup_maker.php он.
С помощью этого простого сервиса ты можешь быстро создать себе резиновый xhtml-макет c базовой разметкой, основу для сайта. Пока только двухколоночные, но скоро к нам завезут поддержку трёхколоночных.
Базовая разметка — значит только блоки и их расположение. Всякие закругления и прочие красивости делайте сами ;) Вёрстка, кстати, валидная. XHTML 1.1, CSS 2.1.
Просто выбираешь сторону и ширину боковой панели и размеры шапки/подвала. Получаешь zip-архив с html и css.
Пользуйтесь с удовольствием ;) Написан на PHP 4.
P.S. Главное предназначение — экономия времени, поэтому и «Я умный».
С помощью этого простого сервиса ты можешь быстро создать себе резиновый xhtml-макет c базовой разметкой, основу для сайта. Пока только двухколоночные, но скоро к нам завезут поддержку трёхколоночных.
Базовая разметка — значит только блоки и их расположение. Всякие закругления и прочие красивости делайте сами ;) Вёрстка, кстати, валидная. XHTML 1.1, CSS 2.1.
Просто выбираешь сторону и ширину боковой панели и размеры шапки/подвала. Получаешь zip-архив с html и css.
Пользуйтесь с удовольствием ;) Написан на PHP 4.
P.S. Главное предназначение — экономия времени, поэтому и «Я умный».
+41
Google Scholar без платных ссылок
1 min
1.2KСервис Google Scholar удобен для поиска научных статей на английском (и прочих) языках. Для полноценной научной работы просто необходим.
Но есть в нем небольшая особенность, которая в российских условиях становится серьезной помехой, это — выдача ссылок на платные ресурсы. Например, по запросу: suffix sorting вся верхушка — платная.
В европейских/американских университетах при наличии подписок проблемы нет. А для нас, увы.
На сайте «Хаос. Нелинейная динамика» сделан метапоисковик PDF Science Search, который фильтрует такие ссылки, а заодно и недействительные ссылки, а также гарантированно дает ссылки на полные документы, а не аннотации.
Да, еще этот метапоисковик ищет по Яндексу и Рамблеру.
Но есть в нем небольшая особенность, которая в российских условиях становится серьезной помехой, это — выдача ссылок на платные ресурсы. Например, по запросу: suffix sorting вся верхушка — платная.
В европейских/американских университетах при наличии подписок проблемы нет. А для нас, увы.
На сайте «Хаос. Нелинейная динамика» сделан метапоисковик PDF Science Search, который фильтрует такие ссылки, а заодно и недействительные ссылки, а также гарантированно дает ссылки на полные документы, а не аннотации.
Да, еще этот метапоисковик ищет по Яндексу и Рамблеру.
+25
YouTube EDU — обучающие видеоматериалы из колледжей и университетов
1 min
3.6K26 марта 2009 года на youtube открыли раздел YouTube EDU, в котором собраны лучшие обучающие видеоматериалы (в основном — лекции и обучающие материалы из колледжей и университетов).
Среди лидеров просмотров: MIT, Stanford University, индийские универститеты.
Представлены целые курсы в виде плей-листов: курс линейной алгебры, введение в биологию, принципы цифровых коммуникаций и многие другие.
Информации становится более чем достаточно, чтобы изучать всё что угодно. Остаётся только вопрос мотивации.
Upd. Еще один подобный ресурс — academicearth.org (Женя Теплов, спасибо!)
Upd2. University of Washington, Engineering & Computer Science (YasonBy, спасибо!)
+76
Модели искусственной жизни. Часть 2
4 min
4.3KПо просьбами хабравчан продолжение части 1
+43
Модели искусственной жизни. Часть 1
5 min
8.9KСразу к делу. К чему может привести изучение ИЖ? Как практически применить знания, полученные в данной области? Учёные, работающие по этому направлению, говорят, что их исследования направлены именно на практические приложения, такие как подвижные роботы, медицина, нанотехнология, искусственный интеллект, и даже исследования социальных и экономических систем. Но в истории искусственной жизни было довольно много споров и противоречий. Многие скептики критикуют некоторые работы по искусственной жизни, называя их «наукой без фактов». Однако последние публикации по искусственной жизни свидетельствуют о том, что технологии, используемые для моделирования искусственной жизни, признаются научным сообществом, по крайней мере, для изучения эволюции.
Основной проблемой ИЖ является создание вычислительных систем и моделей, действующих на базе биологических и эволюционных принципов. Проще говоря, это «мир, созданный человеком». Но до определённого времени работа в данной области ограничивалась лишь теоретическими исследованиями свойств жизни. А моделирование — лишь построением отдельных частей биологических систем, таких, например, как адаптивное поведение или эволюция. Но в последнее время, во многом благодаря развитию нанотехнологий и молекулярной биологии, а также благодаря возросшему пониманию назначения отдельных генов и способов их взаимодействия и появлению средств манипуляции отдельными молекулами, развивается новое направление ИЖ, направленное на создание новых, искусственно синтезированных биологических форм, что требует философского обоснования ИЖ и, как минимум, определения понятия «жизнь» (что же вообще понимать под этим словом). Сегодня сторонники данного направления говорят, что они исследуют более общие формы жизни, чем те, которые существуют на Земле.
Основной проблемой ИЖ является создание вычислительных систем и моделей, действующих на базе биологических и эволюционных принципов. Проще говоря, это «мир, созданный человеком». Но до определённого времени работа в данной области ограничивалась лишь теоретическими исследованиями свойств жизни. А моделирование — лишь построением отдельных частей биологических систем, таких, например, как адаптивное поведение или эволюция. Но в последнее время, во многом благодаря развитию нанотехнологий и молекулярной биологии, а также благодаря возросшему пониманию назначения отдельных генов и способов их взаимодействия и появлению средств манипуляции отдельными молекулами, развивается новое направление ИЖ, направленное на создание новых, искусственно синтезированных биологических форм, что требует философского обоснования ИЖ и, как минимум, определения понятия «жизнь» (что же вообще понимать под этим словом). Сегодня сторонники данного направления говорят, что они исследуют более общие формы жизни, чем те, которые существуют на Земле.
+58
Как научить ИИ делать продуманные ошибки
3 min
1.8KРазработчики компьютерных игр подняли интересную тему для обсуждения: как повысить реалистичность искусственного интеллекта, который действует безошибочно. Проблема в том, что во многих компьютерных играх правильный ход или решение просчитывается слишком просто для мощнейших процессоров современных ПК. Например, в виртуальном бильярде компьютер никогда не ошибается и всегда рассчитывает идеальную траекторию шара. Такая же плачевная ситуация в шахматах.
Самый простой способ оглупить ИИ — граничить его вычислительные ресурсы. Конечно, программа сразу станет играть хуже. Для того же бильярда есть следующий вариант: добавлять к удару по правильной траектории случайную погрешность. Но проблема в том, что это снижает реализм игры. В этом случае компьютер начинает делать слишком глупые ошибки. Такие глупые, каких человек никогда бы не сделал.
Другими словами, обычное ухудшение качества игры ИИ не является достаточно реалистичным. Оно не доставляет удовольствия игроку.
Из этого положения есть один выход. Нужно сделать так, чтобы компьютер играл в полную силу, но при этом сдавал игру. Как в спорте — ряд мелких, на первый взгляд, случайных просчётов, которые ведут к проигрышу или значительно увеличивают шансы противника. То есть ИИ должен делать умные, продуманные ошибки.
Самый простой способ оглупить ИИ — граничить его вычислительные ресурсы. Конечно, программа сразу станет играть хуже. Для того же бильярда есть следующий вариант: добавлять к удару по правильной траектории случайную погрешность. Но проблема в том, что это снижает реализм игры. В этом случае компьютер начинает делать слишком глупые ошибки. Такие глупые, каких человек никогда бы не сделал.
Другими словами, обычное ухудшение качества игры ИИ не является достаточно реалистичным. Оно не доставляет удовольствия игроку.
Из этого положения есть один выход. Нужно сделать так, чтобы компьютер играл в полную силу, но при этом сдавал игру. Как в спорте — ряд мелких, на первый взгляд, случайных просчётов, которые ведут к проигрышу или значительно увеличивают шансы противника. То есть ИИ должен делать умные, продуманные ошибки.
+88
Издание собственной книги: от А до Я
7 min
3.1KПосле заметки о выходе книги «Разгони свой сайт» ко мне обратились с просьбой осветить процесс публикации собственного издания. Не скажу, что описанные ниже действия были простыми и очевидными: в ходе возникло масса вопросов, на которые я с трудом мог ответить самостоятельно, поэтому приходилось искать совета буквально везде.
Начинать надо прежде всего с того, чтобы иметь четкий замысел книги и время на ее написание. В моем случае мне очень помог тот факт, что на момент написания весь материал был уже фактически собран, и мне нужно было только его скомпоновать, перепроверить и уточнить.
Если у вас нет четкого плана изложения материала, то лучше вообще не начинать сам процесс написания. В таком случае он может стать долгим, мучительным, а результат совершенно не удовлетворит потенциальных читателей.
Предыстория
Начинать надо прежде всего с того, чтобы иметь четкий замысел книги и время на ее написание. В моем случае мне очень помог тот факт, что на момент написания весь материал был уже фактически собран, и мне нужно было только его скомпоновать, перепроверить и уточнить.
Если у вас нет четкого плана изложения материала, то лучше вообще не начинать сам процесс написания. В таком случае он может стать долгим, мучительным, а результат совершенно не удовлетворит потенциальных читателей.
+86
Шифрование с использованием PGP
4 min
12KИногда сталкиваешься с ситуацией, когда в довольно большом предприятии совершенно не понимают (или не хотят понимать) зачем необходимо шифрование данных, каналов связи, почтовой переписки. Такая ситуация имеет место и на моей работе. Разрубить этот гордиев узел помогла ситуация со странной утерей данных клиент-банка.
Сейчас в несколько этапов проходит обучение коллектива азам работы с программой gpg. Решение использовать для шифрования почтовой переписки, файлов утилиту GnuPG принято из-за ее доступности в различных дистрибутивах Linux. Вы спросите — чего Linux делает в предприятии. Я отвечу так — в следствии упорной 3-х месячной работы сеть из порядка 200 пк была с 90%-ым успехом переведена на linux, о чем я возможно расскажу немного позже.
+12
Мышь, которая притворяется ручкой
1 min
2.2KВ дизайне компьютерной мыши трудно придумать нечто концептуально новое. Но японцам это удалось. Специалисты по эргономике из японской компании Elecom породили на свет мышку особой формы, которая помогает вашим пальцам принять положение, привычное для хвата обычной шариковой ручки (ну хотя бы приблизить пальцы к этому положению). На иллюстрации сравнивается положение пальцев при хвате обычной ручки и новой мыши Scope Node M-SN1UL.
Инженеры специально вынесли одну кнопку вперёд и опустили её ниже, чтобы указательный палец опустился вниз, а средний палец отодвинулся назад. Слева на мышке утолщение, чтобы и большой палец тоже отодвинулся. Считается, что такое положение пальцев более привычно человеку, умеющему писать от руки. Соответственно, работать с такой мышкой проще и удобнее, а рука меньше устаёт.
Инженеры специально вынесли одну кнопку вперёд и опустили её ниже, чтобы указательный палец опустился вниз, а средний палец отодвинулся назад. Слева на мышке утолщение, чтобы и большой палец тоже отодвинулся. Считается, что такое положение пальцев более привычно человеку, умеющему писать от руки. Соответственно, работать с такой мышкой проще и удобнее, а рука меньше устаёт.
+22
uimge — консольная утилита для заливки на хостинги.
3 min
573Решил поделиться своей небольшой и скромной разработкой.
А именно — консольная утилита для пакетной заливки или интеграции в различные скрипты по UNIX way.
И еще она может работать как модуль для python.
Хелп к программе:
А именно — консольная утилита для пакетной заливки или интеграции в различные скрипты по UNIX way.
И еще она может работать как модуль для python.
Хелп к программе:
Usage: python uimge.py [-r|-u|-i|-o|-v|-s] картинка
Options:
--version show program's version number and exit
-h, --help show this help message and exit
Основные опции:
-r, --radikal Залить на radikal.ru
-u, --funkyimg Залить на funkyimg.com
-i, --ipicture Залить на ipicture.ru
-o, --opicture Залить на opicture.ru
-v, --savepic Залить на savepic.ru
-s, --smages Залить на smages.com
+12
Limbo
5 min
5.7KПоскольку меня Inferno привлекает именно как среда разработки, то помимо архитектуры самой системы немалое значение имеет язык программирования.
По большому счёту мне давным давно пофиг, на каком языке писать (я программирую с 1989 года, и за это время перепробовал кучу языков). Но… всё таки на одних языках работать приятнее, чем на других — и здесь дело не в том, что одни языки лучше других, а в том, что для разных стилей мышления лучше подходят разные языки.
Переход от Perl к Limbo — очень контрастный. Языки совершенно разные: Perl — не типизированный вообще, Limbo — сильно типизированный; в Perl нет нормальной поддержки нитей и асинхронности приходится добиваться через мультиплексирование, Limbo — чуть ли не вынуждает писать именно многопоточные программы (если вы смотрели презентацию Роба Пайка, то там был прикольный пример с многопоточным поиском простых чисел); etc. И, тем не менее, Limbo мне очень понравился и писать работающий код я на нём начал практически сразу.
Я уже не очень хорошо помню C, но попробую описать Limbo именно в плане отличий от C — думаю, так будет проще для большей части аудитории (и ни слова про PHP! :)).
По большому счёту мне давным давно пофиг, на каком языке писать (я программирую с 1989 года, и за это время перепробовал кучу языков). Но… всё таки на одних языках работать приятнее, чем на других — и здесь дело не в том, что одни языки лучше других, а в том, что для разных стилей мышления лучше подходят разные языки.
Переход от Perl к Limbo — очень контрастный. Языки совершенно разные: Perl — не типизированный вообще, Limbo — сильно типизированный; в Perl нет нормальной поддержки нитей и асинхронности приходится добиваться через мультиплексирование, Limbo — чуть ли не вынуждает писать именно многопоточные программы (если вы смотрели презентацию Роба Пайка, то там был прикольный пример с многопоточным поиском простых чисел); etc. И, тем не менее, Limbo мне очень понравился и писать работающий код я на нём начал практически сразу.
Я уже не очень хорошо помню C, но попробую описать Limbo именно в плане отличий от C — думаю, так будет проще для большей части аудитории (и ни слова про PHP! :)).
+26
Information
- Rating
- Does not participate
- Location
- Львов, Львовская обл., Украина
- Date of birth
- Registered
- Activity