Search
Write a publication
Pull to refresh
42
0
Владимир Павлов @yajon

User

Send message

Пишем своего бота для Google AI Challenge. Быстрый старт

Reading time6 min
Views5.4K


Совсем скоро стартует Google AI Challenge Ants. Два дня назад уже был анонс на хабре про это состязание:
http://habrahabr.ru/blogs/sport_programming/130457/
. Для тех, у кого есть желание поучаствовать или хотя бы просто узнать поподробнее, как это делается, я написал этот «Быстрый Старт».
Из статьи вы узнаете как запустить у себя на машине игру, написать своего первого бота и запустить две копии бороться друг против друга.
Читать дальше →

Объединение javascript файлов

Reading time4 min
Views40K
Эпоха тёплого лампового WEB 1.0 давно прошла, и в последнее время мы имеем дело со страницами, которые кишат так называемой динамичностью. Динамичность может быть обеспечена при помощи JavaScript, VbScript и плагинами вроде Java, Flash, Silverlight. В этой статье я хочу затронуть одну из возможных оптимизаций web-сайта — объединение всех javascript файлов в один.

Зачем?


Основных причин две:
  1. Повышение скорости загрузки страницы.
  2. Снижение нагрузки на сервер.

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

Касательно снижения нагрузки на сервер — всё сложнее. Снижение числа запросов в любом случае улучшает ситуацию, но вот насколько — я сказать затрудняюсь, т.к. я не админ. Я полагаю, что для снижения нагрузки можно найти массу более простых и действенных решений. Возможно, это, так называемая, экономия спичек на фоне пожара. Но в качестве побочного эффекта — сгодится.
Читать дальше →

Английский для айтишника? Легко!

Reading time2 min
Views183K
Эта тема не относится к IT напрямую, но все знают, что без нее никуда. К сожалению, далеко не у всех есть возможность изучать английский с преподавателями. Ну что ж, попробуем заняться этим дома и с максимальной отдачей!
Читать дальше →

Официальная презентация языка Google Dart

Reading time3 min
Views6K
Сегодня компания Google официально представила новый язык структурного веб-программирования Dart, который позволит создавать быстрые и высокопроизводительные веб-приложения. При всей своей простоте для написания маленьких скриптов, с помощью Dart можно будет создавать и сложные модульные веб-приложения, использовать библиотеки, дебаггеры, редакторы кода и другой инструментарий.

На официальном сайте представлен технический обзор языка (перевод на русский от azproduction), спецификации (PDF), список библиотек.

Как объяснялось во внутренней переписке компании, Dart позиционируется в качестве замены/альтернативы Javascript, страдающего от «фундаментальных» изъянов, которые невозможно исправить путём эволюционного развития.
Читать дальше →

Ubuntu в техническом вузе

Reading time5 min
Views39K
Хотел бы рассказать об опыте использования Linux'a в целом и Ubuntu в частности в учебном процессе технического вуза — Ивановская государственная текстильная академия для студентов направления подготовки — «Моделирование и исследование в организационно-технических системах».
Читать дальше →

Daily Sales — агрегатор скидочных предложений от китайских интернет-магазинов

Reading time1 min
Views1.4K

Где-то с полгода назад я сильно подсел на китайские товары — куча клевых гаджетов, большей частью абсолютно бесполезных, но из-за этого не менее желанных, делают мою жизнь (и работников почты, к которым я уже хожу чуть ли не каждую неделю) ярче, антресоли захламленней, а соседи просто в шоке от некоторых вещей +)

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

Сегментация изображения

Reading time5 min
Views95K

Сегментация изображения


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

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

Сжатие изображений с использованием вейвлет

Reading time11 min
Views27K
Вейвлетное сжатие — общее название класса методов кодирования изображений, использующих двумерное вейвлет-разложение кодируемого изображения. Обычно подразумевается сжатие с потерей качества. В статье не будет приведено сложных математических формул, всю теорию можно почитать по ссылкам внизу статьи. Здесь только практика!

Отличие от JPEG


Алгоритм JPEG, в отличие от вейвлетного, сжимает по отдельности каждый блок исходного изображения размером 8 на 8 пикселов. В результате при высоких степенях сжатия на восстановленном изображении может быть заметна блочная структура. При вейвлетном сжатии такой проблемы не возникает, но могут появляться искажения другого типа, имеющие вид «призрачной» ряби вблизи резких границ.
Считается, что такие артефакты в среднем меньше бросаются в глаза наблюдателю, чем «квадратики», создаваемые JPEG.

Пример


Для примера сильно сожмем одно и тоже изображение приблизительно до одного размера:

В начале с использованием JPEG:
7959 байт
(7959 байт)

затем алгоритмом вейвлетного сжатия JPEG 2000:
7813 байт
(7813 байт)

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

Shortики месяц спустя, или как же на самом деле выглядит Хабраэффект

Reading time5 min
Views3.2K
The Intro



Прошел ровно месяц с того дня, как мы представили на Хабре проект «Шортики» — короткие и смешные. За месяц своего существования, сайт превратился из случайной поделки в крупный развлекательный ресурс с большой посещаемостью, требующий ежедневного обновления. Однако в прошлом посте я кое-что не упомянул…

Сайт «Shortики» появился за пару дней до поста на Хабр. Сайт не раскручивался никаким образом, для него не покупалась реклама, я почти никому о нем не рассказывал. Единственное упоминание о сайте в сети — было на Хабре. Цель эксперимента была в том, чтобы выяснить, какое же влияние имеет пресловутый Хабраэффект на сайт. Причем не только непосредственное влияние (переходы из поста), а долгосрочное, косвенное влияние — эффект сарафанного радио, ссылки, упоминания в СМИ и прочее. Забегая вперед, скажу что эксперимент удался — под катом любопытных ожидает статистика, графики и много другой интересной информации о явлении, называемом Хабраэффектом.

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

Скромное руководство по прохождению интервью: часть 1

Reading time5 min
Views30K
Пост подготовлен с целью помочь программистам при подготовке к собеседованиям по программированию. Здесь рассматриваются все основные темы, которые, как минимум, желательно знать перед собеседованием. Использован собственный опыт, опыт и рассказы коллег, специализированная литература.
Некоторые рассмотренные здесь темы могут вообще не пригодиться некоторым программистам, а могут и быть обязательными, решать вам. Мой совет – старайтесь как можно больше изучать темы/разделы/аспекты указанные здесь.
И так, в качестве обязательных знаний:
  • Структуры данных
  • Алгоритмы и «концепции»
  • Язык программирования

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

Полезные инструменты, туториалы и ресурсы

Reading time4 min
Views16K
Созданый Райаном Далем в 2009 году, Node.js — относительно новая технология, завоевавшая в последнее время большую популярность среди веб-разработчиков. Однако, до сих пор не каждый знает, что на самом деле Node.js это серверная JavaScript среда, использующая асинхронную событийную модель. Что это означает? Все просто: это среда, которая предназначена для написания масштабируемых, высокопроизводительных приложений. Почти как Ruby’s Event Machine или Python’s Twisted, но гораздо глубже — JavaScript реализовывает цикл событий, на уровне самого языка, а не как отдельная библиотека.



И это еще не все: то, что действительно круто в Node.js — это тысячи модулей, доступных для любых целей, а также активниешее сообщество этого молодого проекта. В этом обзоре вы найдете самые полезные ресурсы по Node.js, от просто удобных инструментов и подробных руководств, до углубленных статей и ресурсов о этой перспективной технологии. Используете ли вы Node.js? Поделитесь опытом в комментариях к этотому посту!

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

Секрет объектно-ориентированной разработки в Rails

Reading time10 min
Views2.7K
Сегодня мы предоставим вашему вниманию перевод поста Стива Клабника (Steve Klabnik), известного разработчика, приверженца Ruby, одного из победителей Ruby Hero Award этого года. Что это за награда? Она присуждается победителями прошлого года тем участникам сообщества, которые наиболее проявили себя: создали значимый обучающий контент, разработали плагины и гемы, участвовали в проектах с открытым кодом. Такая награда была создана для того, чтобы отметить наиболее проявивших себя людей и дать им признание, которое они заслуживают.
Пообщаться со Стивом можно будет на конференции в Киеве RubyC 5-6 ноября этого года.


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

Мне кажется, эти люди также считают эту вещь уникальной. Это не когда люди, не умеющие писать хороший код, стараются, но все равно получается плохо. Это как флаг, сигнал. Теперь, когда я вижу, как кто-то внедряет эту вещь, я сразу думаю: «он шарит». Возможно, я слишком сильно доверяю своему чувству, но эта продвинутая техника разработки предлагает множество взаимосвязанных преимуществ вашим Rails приложениям, легко применима и ускоряет тестирование на порядок или больше. К сожалению, для многих начинающих Rails разработчиков это неочевидно, но я хотел бы, чтобы вы писали код лучше и вот я здесь, чтобы, с вашего позволения, «раскрыть секрет» и поделиться этой мощной техникой с вами.

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

Jelastic PaaS — major update: horizontal scaling, Java 7, Jetty, HTTPS

Reading time3 min
Views1.6K
Java Elastic Cloud Platform

Спешу поделиться большими новостями про большое обновление Jelastic — облачной платформы для Java приложений. Последний релиз действительно большой. В нем были добавлены долгожданные
Читать дальше →

10 примеров меню для web страниц

Reading time1 min
Views19K
image Эти способы не являются ноу-хау или чем-то в этом духе. Тем не менее, они могут помочь начинающим дизайнерам и web технологам в реализации задуманных ими идей. Каждый из предложенных вариантов можно обыграть по-своему.

Проверял лично и убедился в том, что исправно работает под следующими браузерами:

IE7+, Opera 10.5+, FF 3.6+, Chrome 12+ (linux), Chrome 13+ (windows), Safari 5+(win) исходя из личного опыта, предполагаю о том, что работать исправно будет во всех свежих версиях Safari, FireFox, Opera и Chrome.

С помощью CSS можно построить вот такие вот симпатичные варианты:


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

Twitter бот на C#

Reading time3 min
Views8.3K


Здравствуйте, уважаемые пользователи Хабрахабра.
В этой статье я хочу рассказать вам об очень простом и полезном боте для Twitter, который поможет контролировать состояние Windows-сервера (Занятое место на дисках, процент загрузки CPU, RAM).

Предисловие


Я работаю системным администратором на одном консервном заводе. Так как фирма не профильная, приходится быть администратором и программистом в одном лице.
Причина создания этого бота — быстро заканчивающееся место на жестком диске сервера из-за ежедневных резервных копий баз 1С.
Я долго размышлял о возможных вариантах подобного контроля и пришёл к выводу, что Твиттер самое удобное решение для этого. Итак, от слова к делу.
Читать дальше →

Как присоединить свой Ruby-проект к Travis и приготовить Мартини за 15 минут

Reading time3 min
Views2.7K
image
Налицо тенденция, что каждый проект на Ruby присоединяется к Travis. Travis — очень простая, опенсурсная система непрерывной интеграции. Нам обычно лень подключать все свои проекты к автоматическому тестированию билдов. Travis позволяет сделать это за считанные минуты.

Это пошаговая инструкция, как присоединить свой проект к Travis и приготовить вкуснейший коктейль с Мартини примерно за 15 минут. Следует заметить, что на приготовление Мартини уйдет минут пять, так что часть про Travis займет 10 минут вашей жизни.

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

Что такое генетический алгоритм?

Reading time1 min
Views24K
В рамках проекта Computer Science Student сегодня я постараюсь дать короткое наглядное объяснение: что такое генетический алгоритм? В самой простой и общей формулировке для решения самой простой задачи. Исходные коды решения (код не самый качественный, потому что писался на скорую руку; но код и не важен в этом курсе) и текст самих заданий доступен на CS-Student Wiki.

Первая часть


Вторая часть — под катом.
Читать дальше →

Титаны. Стив Джобс (перевод)

Reading time1 min
Views1.7K
Несколько недель назад американский телеканал CNBC продемонстрировал фильм из своего документального цикла «Титаны», посвященный главе компании Apple Стиву Джобсу. Эти фильмы рассказывают о жизни выдающихся людей, изменивших мир. И конечно же, этот список был бы неполным, если бы в нем не было создателя Mac, iPod, iPhone, iPad и множества других полезных вещей. Русская озвучка подготовлена сайтом — AppleInsider.ru



Еще 2 части под катом.
Читать дальше →

Кодирование видео для веб-проектов

Reading time7 min
Views28K
image
Доброго времени суток.
Многим web-программистам рано или поздно нужно работать с видео. Такая задача возникла и у меня.
В Интернете есть много статей на форумах и блогах, как на русскоязычных, так и на зарубежных сайтах. Но, проделавши, так же как и предлагалось в инструкциях — результата ожидаемого не дало. Что и послужило поводом для этой статьи. Думаю, она поможет таким же как и я многим начинающим.
Читать дальше →

Начинаем работу с jPCT — бесплатным 3d движком для Java

Reading time8 min
Views26K
jPCT — 3d движок для Java позволяющий использовать OpenGL и Software рендеры, разрабатывать 3d приложения для десктопа, интернет и Android. Так давайте попробуем его в действии написав на нем небольшую игру.
image
Читать дальше →

Information

Rating
Does not participate
Location
Ярославль, Ярославская обл., Россия
Registered
Activity