Василий @PyroRed
Пользователь
10 min
Предлагаем вашему вниманию несколько хороших книг, вышедших в разных издательствах в 2011 году. Мы купили эти книги, прочитали их и предлагаем вам конспект-выжимку идей из каждой.
«Бойтесь алгоритмов, которые управляют вашей жизнью»
5 min
3.7KTranslation
Перевод интервью с Кевином Слэвином (Kevin Slavin), разработчиком игр из Нью-Йорка, сооснователем компании Area/Code (теперь Zynga NY). Он ведёт курс компьютинга и дизайна в Нью-Йоркском университете, а в июле прочитал лекцию на конференции TED на тему алгоритмизации жизни (видеозапись лекции). Интервью опубликовано в журнале New Scientist (выпуск 2826 от 22.08.2011).
Вы заявляете, что нашей жизнью управляют алгоритмы. Каким образом?
Просто говоря, алгоритм — это набор инструкций, которые компьютер использует для принятия решения. Это как невидимые правила, которые описывают почти всё происходящее вокруг. Цены на товары в магазине, стоимость фильмов в прокате, облик вашего автомобиля — всё это можно отследить вплоть до исходного алгоритма. Семьдесят процентов транзакций на американском фондовом рынке алгоритмизировано, то есть выполняется автоматически компьютерными алгоритмами.
Вы заявляете, что нашей жизнью управляют алгоритмы. Каким образом?
Просто говоря, алгоритм — это набор инструкций, которые компьютер использует для принятия решения. Это как невидимые правила, которые описывают почти всё происходящее вокруг. Цены на товары в магазине, стоимость фильмов в прокате, облик вашего автомобиля — всё это можно отследить вплоть до исходного алгоритма. Семьдесят процентов транзакций на американском фондовом рынке алгоритмизировано, то есть выполняется автоматически компьютерными алгоритмами.
+37
Токены vs Пароли
4 min
98KПост навеян недавней темой про токены, в комментариях к которой царила некоторая неразбериха. Я сделал вывод, что многие не до конца понимают или даже вообще не понимают, что такое токен, с чем его едят и чем токен не является. Желание расставить все точки над i привело к написанию нижеследующего текста. Далее речь пойдет именно о USB-токенах, которые можно подключать к компьютеру, давать команды и получать результаты их выполнения. Приступим.
+29
Введение в многомерный анализ
12 min
175KНекоторое время назад мне довелось организовывать новую группу разработки, которая должна была заняться развитием OLAP и BI продуктов в дружеской софтверной компании. А так как группа была собрана из свежих выпускников ВУЗов, то мне пришлось написать «краткий курс молодого бойца» для того чтобы максимально доступно дать начальные понятия об OLAP людям, которые ни разу с ним не сталкивались, но уже имели опыт программирования и работы с БД.
Выкладываю теперь это Введение в Общественное Достояние.
В статье несколько смешиваются понятия OLAP, Business Intelligence, и Data Warehouse, но и в жизни часто сложно понять, где проходит граница. А уж в реальных проектах, так и подавно, все они ходят рядом. Поэтому прошу не судить строго.
+59
Написание макроса-бота для браузерной игры
8 min
53KВведение
Не так давно на Google+ появились игры. Прочитав топик об этом, я решил во что нибудь поиграть. Выбор пал на игру Diamond Dash. Через некоторое время игры программист во мне заговорил, что однотипные действия нужно автоматизировать. И вот что из этого вышло…

*Примечание: «руками» даже опытному игроку сложно набрать больше 400к
Раньше я никогда не сталкивался с задачами работы с экраном и мышкой. После непродолжительного гугления было решено для решения использовать язык макросов AutoIt.
Под катом вы найдете краткое описание игры, мой способ распознавания поля, алгоритм определения точки нажатия, и некоторое количество оптимизаций. А так же ссылку на github-репозиторий скрипта.
UPD Добавлено видео работы скрипта.
+160
90% людей не знают про Ctrl+F
2 min
111KДэн Рассел в компании Google занимает должность «поискового антрополога» и проводит различные исследования, как люди используют поисковые сайты. Некоторые результаты этих исследований кажутся просто невероятными. Например, по словам Рассела, 90% людей не умеют использовать Ctrl+F (Cmd+F) при поиске информации на странице: «Это проверено на выборке в несколько тысяч человек. Я лично проводил эти исследования и могу рассказать, как часто сидел у кого-нибудь дома и смотрел, как он листает длинный документ в поисках информации. В конце концов я говорил: “Позвольте показать один маленький фокус”, после чего обычно человек изумлялся: “Не могу поверить, что я раньше столько времени тратил впустую”».
+76
13 бесплатных курсов Стэнфордского университета
2 min
72KНедавно анонсированный бесплатный онлайн-курс Стэнфорда по основам искусственного интеллекта вызвал настоящий ажиотаж у публики. Заявки на регистрацию подали уже 81 966 человек. Оно и понятно: курс ведут Питер Норвиг и Себастьян Тран — настоящие звёзды. Первый раньше работал в НАСА и написал учебник по ИИ, а второй разрабатывает лучшие в мире роботизированные автомобили (для Google).
Очевидно, что качественное образование через интернет нужно людям и становится всё популярнее. Поэтому перед началом учебного года есть смысл напомнить список 13-ти бесплатных учебных курсов Stanford Engineering. В отличие от лекций Норвига и Трана, это не онлайновые, а старые курсы. В свободный доступ уже выложены видеозаписи всех лекций от первой до последней, PDF'ы с заданиями и другие материалы, но здесь нельзя задать вопрос преподавателю.
Очевидно, что качественное образование через интернет нужно людям и становится всё популярнее. Поэтому перед началом учебного года есть смысл напомнить список 13-ти бесплатных учебных курсов Stanford Engineering. В отличие от лекций Норвига и Трана, это не онлайновые, а старые курсы. В свободный доступ уже выложены видеозаписи всех лекций от первой до последней, PDF'ы с заданиями и другие материалы, но здесь нельзя задать вопрос преподавателю.
+98
Ещё один физический движок на JavaScript
1 min
5.6KНа Google Code появился ещё один порт известного физического движка Box2D на JS — box2dweb (по ссылке есть демо). Автор говорит, что уже существует портированная версия Box2dJs, но она давно не обновлялась, так что приходится импортировать большое количество JS-библиотек в каждый проект.
Кроме двух упомянутых, на сегодня список библиотек физики на JavaScript выглядит так:
github.com/thinkpixellab/box2d — обработанный компилятором Closure Compiler порт Box2D на JS
code.google.com/p/bulletjs — порт фрагментов Java-библиотеки JBullet (http://jbullet.advel.cz/)
github.com/supereggbert/JigLibJS — порт JigLib на JS
github.com/hapticdata/toxiclibsjs — порт Toxiclibs VerletPhysics на JS
github.com/kripken/ammo.js — порт Bullet на JS
Кроме двух упомянутых, на сегодня список библиотек физики на JavaScript выглядит так:
github.com/thinkpixellab/box2d — обработанный компилятором Closure Compiler порт Box2D на JS
code.google.com/p/bulletjs — порт фрагментов Java-библиотеки JBullet (http://jbullet.advel.cz/)
github.com/supereggbert/JigLibJS — порт JigLib на JS
github.com/hapticdata/toxiclibsjs — порт Toxiclibs VerletPhysics на JS
github.com/kripken/ammo.js — порт Bullet на JS
+26
Практика прохождения собеседований или как я переехал в столицу
4 min
20KПривет, %хаброюзер%!
Сегодня я поделюсь с вами своим опытом прохождения собеседований на вакансии PHP-программиста в«белокаменной»Москве.
Сегодня я поделюсь с вами своим опытом прохождения собеседований на вакансии PHP-программиста в
+59
Дайджест вакансий: Санкт-Петербург
2 min
25KПо многочисленным просьбам мы слегка меняем формат еженедельного дайджеста. Теперь с геотаргетингом! :)

Внутри, как всегда, много фотографий интересных офисов СПб.

Внутри, как всегда, много фотографий интересных офисов СПб.
+7
KnockoutJS: Ajax grid view с нуля в 40 строк
8 min
14KВ последнее время на Хабре все больше упоминаний о KnockoutJS, и я не останусь в стороне от этого тренда.
Сегодня я расскажу о том как сделать своими руками Ajax Grid View с фильтрацией и переходом по страницам написав, при этом, совсем немного кода.
Начиная писать эту статью я чувствовал себя несколько неловко, да и сейчас ощущение не ушло. Все дело в том, что сама библиотека простая, паттерн MVVM простой, и рассказывать я буду простые вещи. Я уверен, что в ближайшее время Knockout получит достаточно большое распространение. А неловко мне от того, что уже через год-дугой кто-то наткнувшись на эту статью будет обескуражен простотой изложенного материала. Примерно так, как любой из вас сейчас, открывший статью о jQuery от 2007 года.
Кто не испугался предполагаемого баяна, милости прошу под хабракат.
Сегодня я расскажу о том как сделать своими руками Ajax Grid View с фильтрацией и переходом по страницам написав, при этом, совсем немного кода.
Начиная писать эту статью я чувствовал себя несколько неловко, да и сейчас ощущение не ушло. Все дело в том, что сама библиотека простая, паттерн MVVM простой, и рассказывать я буду простые вещи. Я уверен, что в ближайшее время Knockout получит достаточно большое распространение. А неловко мне от того, что уже через год-дугой кто-то наткнувшись на эту статью будет обескуражен простотой изложенного материала. Примерно так, как любой из вас сейчас, открывший статью о jQuery от 2007 года.
Кто не испугался предполагаемого баяна, милости прошу под хабракат.
+33
Ликбез по уязвимостям в веб-приложениях, а также самые частые ошибки разработчиков
7 min
40K
Эта статья — продолжение цикла статей по информационной безопасности в веб-приложениях (и не только).
Вообще думал написать о «белом ящике», но я решил что нужно сначала ликвидировать возможные пробелы у целевой аудитории (в основном веб-разработчики) в этой области.
Может многие и все знают, о чем я пишу в статье, но я попытаюсь разбавлять ее практическими примерами и занятным опытом.
Планирую, что это статья — предпоследняя. После данный цикл будет повторен, только в более сложном варианте, с бОльшим углублением в данную тему. Надеюсь меня хватит на это, и вообще, что есть смысл об этом писать.
Как обычно — ответственность за все полученные знания только на читателе :)
+129
HotMilk — библиотека для удобной организации шаблонов Mustache
7 min
3.3KПост в продолжение недели^W месяца JavaScript на Хабре.
После статьи о разработке одностраничного веб-приложения занёс в закладки либу ICanHaz с целью потерзать и чуть допилить её, как руки дойдут. И, как водится, отложил в долгий ящик.
И вот, простудившись аккурат перед прошлыми выходными и, соответственно, нежданно получив два свободных дня за компом, я вернулся к этой затее. В итоге вместо косметического допиливания получился свой скромный велосипед с мотором.
Напомню, что ICanHaz — это простой способ чуть-чуть организовать шаблоны Mustache, используемые javascript'ом в браузере. Рендеринг шаблонов с помощью этой библиотеки сводится к простому вызову функции. Ещё она избавляет от необходимости экранировать половину шаблона, т.к. его текст можно писать прямо в HTML-теге <script>
После статьи о разработке одностраничного веб-приложения занёс в закладки либу ICanHaz с целью потерзать и чуть допилить её, как руки дойдут. И, как водится, отложил в долгий ящик.
И вот, простудившись аккурат перед прошлыми выходными и, соответственно, нежданно получив два свободных дня за компом, я вернулся к этой затее. В итоге вместо косметического допиливания получился свой скромный велосипед с мотором.
Напомню, что ICanHaz — это простой способ чуть-чуть организовать шаблоны Mustache, используемые javascript'ом в браузере. Рендеринг шаблонов с помощью этой библиотеки сводится к простому вызову функции. Ещё она избавляет от необходимости экранировать половину шаблона, т.к. его текст можно писать прямо в HTML-теге <script>
+16
Замыкания и объекты JavaScript. Переизобретаем интерпретатор
12 min
25KTutorial

Когда в изучении языка доходишь до нетривиальных вещей, бывает полезно сместить уровень абстракции, чтобы понять, как на самом деле всё устроено. Ведь, по большому счету, любые конструкции языков сколь угодно высокого уровня сводятся к старому доброму машинному коду. Писать в объектно-ориентированном или функциональном стиле можно и на чистом C, и даже на ассемблере. Грубо говоря, любой высокоуровневый язык — это зафиксированный на уровне компилятора или интерпретатора набор синтаксических карамелек и шоколадок. Повышение уровня абстракции позволяет писать более сложные программы с меньшими усилиями, но вот понять в начале пути, что конкретно имеется в виду под наследованием или замыканием, как это всё работает и почему, гораздо легче, разобравшись, каким образом всё это реализовано.
JavaScript, как никакой другой язык, нуждается в именно таком объяснении. Функциональная природа, скрытая за Си-подобным синтаксисом, и непривычная прототипная модель наследования поначалу сильно сбивают с толку. Давайте мысленно понизим уровень JavaScript до простого процедурного, наподобие Си. Отталкиваясь от этого «недоязыка», переизобретем функциональное и объектно-ориентированное программирование.
+112
Обзор бесплатных инструментов для аудита web-ресурсов и не только
4 min
40K
Вопрос безопасности всегда будет актуальным, особенно в Сети. По этому, чтобы в один
Под катом — краткий обзор и типовые примеры использования бесплатных утилит, которые помогут (а точнее уже во всю помогают)
У статьи довольно низкий порог вхождения для понимания и использования, по этому, надеюсь, придется по душе многим. Раскрывается лишь базовый функционал программ.
+159
Как сделать один сайт для всех устройств (Responsive Web Design)
3 min
292KВчера была опубликована хорошая статья «Веб-дизайн. Каждому устройству свое представление». Несмотря на неплохие размышления, к сожалению, вывод в ней довольно глупый. А именно:
«Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление.»
Во-первых, никто не сможет предугадать, какими устройствами будут пользоваться ваши посетители. Нужно ориентироваться не на устройства, а на разрешения.

Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).
Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».
«Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление.»
Почему это глупо
Во-первых, никто не сможет предугадать, какими устройствами будут пользоваться ваши посетители. Нужно ориентироваться не на устройства, а на разрешения.

Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).
Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».
Как сделать один сайт для всех устройств
+137
Обзор e-Learning трекеров (часть II)
3 min
12KВ век всеобщей компьютеризации образование становится все доступнее. Онлайн можно посмотреть лекции именитых профессоров, поучаствовать в вебинарах, получить образование в Оксфорде или Кембридже. В этом топике я хотел бы коснуться образовательных трекеров, предоставляющих на бесплатной основе подчас неоценимые материалы. BitMe.org, BitSpyder.net, LearnBits.me, Elbitz.net уже подробно рассмотрены. Итак, новые участники обзора:
+46
Виджет выпадающих списков Chosen: реализуем динамическое добавление позиций
8 min
18KПо мотивам топика Chosen: сделай выпадающие списки более дружественными.
Довольно симпатичный виджет, иногда даже может быть полезен (допустим когда есть определенные требования к дизайну). Но в данный момент виджет не позволят добавлять позиции динамически, что возмутило товарища alexsrdk, да и меня тоже :) Сейчас попробуем это дело исправить.
Довольно симпатичный виджет, иногда даже может быть полезен (допустим когда есть определенные требования к дизайну). Но в данный момент виджет не позволят добавлять позиции динамически, что возмутило товарища alexsrdk, да и меня тоже :) Сейчас попробуем это дело исправить.
+65
KnockoutJS: Фильтрация списков на лету
6 min
11KВ минувшую субботу я имел честь читать доклад о MVVM и KnockoutJS на .NET Saturday в Днепорпетровске.
Доклад был достаточно тепло встречен публикой и у многих появились интересные вопросы,
которые не были раскрыты во время самого доклада.
Собственно говоря, я решил написать публичные ответы на некоторые из них на Хабре.
Сегодня я отвечу на вопрос о template-binding. «Как быть, если мне надо отобразить не все записи, а только подходящие определённым условиям».
Ответ находится под хабракатом.
Доклад был достаточно тепло встречен публикой и у многих появились интересные вопросы,
которые не были раскрыты во время самого доклада.
Собственно говоря, я решил написать публичные ответы на некоторые из них на Хабре.
Сегодня я отвечу на вопрос о template-binding. «Как быть, если мне надо отобразить не все записи, а только подходящие определённым условиям».
Ответ находится под хабракатом.
+29
Imperavi: удобный и действительно красивый JS WYSIWYG редактор
1 min
22KВ продолжение темы о красивой и удобной JS визуализации (http://habrahabr.ru/blogs/javascript/124899/) хочу рассказать вам о WYSIWYG редакторе, на который сегодня случайно наткнулся.
Вы наверное часто используете различные WYSIWYG редакторы в ваших проектах. Я их тоже часто использую, так уж получается, что они очень нравятсясекретаршам и т.д. нашим пользователям.
Таких редакторов существуют десятки, но все они мне почему-то не нравилисись: то выглядит уж очень топорно, то работает совершенно криво. В конце концов я остановился на TinyMCE. Он хоть и ужасен на вид, но рабоет стабильно.
И вот сегодня я совершенно случано наткнулся на редактор, который мне полностью подходит:
Имя этому чуду – Imperavi.
Попробуйте сами и думаю, что вам понравится.
Скриншот:

UPD
Более новая версия редактора: http://imperavi.ru/redactor/.
Вы наверное часто используете различные WYSIWYG редакторы в ваших проектах. Я их тоже часто использую, так уж получается, что они очень нравятся
Таких редакторов существуют десятки, но все они мне почему-то не нравилисись: то выглядит уж очень топорно, то работает совершенно криво. В конце концов я остановился на TinyMCE. Он хоть и ужасен на вид, но рабоет стабильно.
И вот сегодня я совершенно случано наткнулся на редактор, который мне полностью подходит:
- работает стабильно
- выглядит очень стильно
- написан на jQuery
Имя этому чуду – Imperavi.
Попробуйте сами и думаю, что вам понравится.
Скриншот:

UPD
Более новая версия редактора: http://imperavi.ru/redactor/.
+100
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity