Pull to refresh
6
0
slayerhabr @slayerhabr

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

Send message

Интернет картография с открытым исходным кодом

Reading time7 min
Views9.1K
Здравствуйте. Я продолжаю серию статей, про картографирование в интернете с использованием набора программного обеспечения с открытым исходным кодом MapBox, от компании Development Seed.

Предыдущие части:
  1. Обзор студии
  2. Введение в TileMill
  3. Расширенные возможности

Сегодня я рассмотрю:
  • Высокопроизводительный тайловый сервер TileStream
  • Легковесные картографические библиотеки Modest Maps и LeafLet
  • Использование TileStream вместе с картографической библиотекой OpenLayers
  • Использование расширенных возможностей TileMill с помощью библиотеки Wax


Интересно? Приглашаю под кат.
Читать дальше →

Замыкания и объекты JavaScript. Переизобретаем интерпретатор

Reading time12 min
Views25K
Обычно концепции или парадигмы программирования объясняют либо описательно — «разжёвывая» новые идеи простыми словами, либо метафорически — уподобляя их хорошо знакомым аудитории предметам и понятиям. Но ни первый, ни второй способ не дает такого точного и полного представления о предмете, как взгляд с точки зрения низкоуровневой реализации.

Когда в изучении языка доходишь до нетривиальных вещей, бывает полезно сместить уровень абстракции, чтобы понять, как на самом деле всё устроено. Ведь, по большому счету, любые конструкции языков сколь угодно высокого уровня сводятся к старому доброму машинному коду. Писать в объектно-ориентированном или функциональном стиле можно и на чистом C, и даже на ассемблере. Грубо говоря, любой высокоуровневый язык — это зафиксированный на уровне компилятора или интерпретатора набор синтаксических карамелек и шоколадок. Повышение уровня абстракции позволяет писать более сложные программы с меньшими усилиями, но вот понять в начале пути, что конкретно имеется в виду под наследованием или замыканием, как это всё работает и почему, гораздо легче, разобравшись, каким образом всё это реализовано.

JavaScript, как никакой другой язык, нуждается в именно таком объяснении. Функциональная природа, скрытая за Си-подобным синтаксисом, и непривычная прототипная модель наследования поначалу сильно сбивают с толку. Давайте мысленно понизим уровень JavaScript до простого процедурного, наподобие Си. Отталкиваясь от этого «недоязыка», переизобретем функциональное и объектно-ориентированное программирование.
Читать дальше →

TameJS — приручаем асинхронное программирование

Reading time3 min
Views2.5K

Что такое TameJS ?


TameJS — это расширение Javascript, которое делает событийное/асинхронное программирование более простым и элегантным. Его очень просто использовать с nodejs или другими v8-проектами.
Читать дальше →

Хитрости и трюки при использовании Wine

Reading time5 min
Views240K
image

Всем привет!
Прочел статью про «Все тонкости настройки Wine», оказалось, что там далеко не все тонкости. Поэтому написал этот пост как дополнение тому.

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

Фриланс и вывод денег: личный опыт

Reading time4 min
Views105K
Добрый день, жители хабра! Я занимаюсь фрилансом (хотя это слово не очень люблю) на протяжении последних четырёх лет. В этом небольшом топике мне хотелось бы рассказать о различных способах вывода заработанных непосильным трудом денежных средств. Для начала стоит сказать о том, как именно организована моя работа. Я использую всего два варианта – oDesk и работа напрямую. С клиентами из России работать ещё не доводилось, так что о таких знакомых вариантах вывода денег, как WebMoney и Яндекс.Деньги речь идти не будет.

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

Создание одностраничного ajax-приложения с поддержкой History API (и без нее)

Reading time4 min
Views52K
Судя по комментариям в этой статье, создание веб-приложений с возможностью аякс-навигации является интересной для сообщества темой и пока еще немногие сталкивались с подобной задачей. Я расскажу о ее решении с помощью небольшой библиотеки под названием jQuery-Pjax (либо моего форка ее).

Моя мотивация: в проекте нужно было реализовать mp3-плеер, играющий независимо от навигации на сайте. Далее потребовалось добавить поддержку браузеров без pushState — и я сделал форк библиотеки.

Основные особенности

  • навигация по сайту и обработка форм без полной перезагрузки страниц
  • чистые url, доступные для прямого доступа
  • поддержка #!/hash для устаревших браузеров (добавлено в моей версии)
  • работа с кнопками «назад» и вперед» для современных браузеров
  • а теперь и для старых — благодаря benalman.com/projects/jquery-hashchange-plugin
  • похоже, есть проблемы с ИЕ7 (спасибо Nc_Soft) (тем более, большое спасибо за участие Nc_Soft) и, возможно, opera 11.5 (пока не могу подтвердить, но нахожу крайне удивительным из-за dev.opera.com/articles/view/introducing-the-html5-history-api) — сообщение artishok — проверено и работает на сборке 1074 (not_ice)
  • imsamurai (https://github.com/imsamurai) предложил улучшения библиотеки (и я радостью слил изменения): встроенная функция для отправки форм, улучшения работы с хешами и более развитая система триггеров. (у imsamurai, к сожалению, нет аккаунта на хабре — будем рады помощи)

Ссылки


Принцип работы Pjax

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

Полезные занятия для программиста

Reading time2 min
Views13K
Многие наверняка ищут такие занятия, которые были бы как приятными для самого человека, так и полезными в плане развития некоторых навыков. Для программистов, да и вообще людей с сидячей работой, эти занятия должны быть своими.

1) Жонглирование.

Жонглирование — прекрасная вещь, полезная как для здоровья, так и для души. Какая польза может быть от жонглирования?
Для начала это хорошее упражнение для глаз, снимающее с них напряжение, что немаловажно, учитывая постоянную работу за компьютером. Затем, это физическая нагрузка(пусть и небольшая) как на руки, так и на ноги(в начале придется постоянно нагибаться, чтобы поднимать падающие снаряды). Ну и в конце концов это моральное удовлетворение от того, что у вас получается манипулировать предметами в воздухе. Жонглирование не требует никаких приспособлений. Достаточно трех(для начала двух) предметов такой формы, чтобы удобно было ловить и подкидывать вверх, желательно не слишком легких, но и не тяжелых.
Читать дальше →

Консольный cucumber и capybara при помощи Selenium и Hudson

Reading time4 min
Views4.3K
В наши дни разработчики ПО не могут прожить без их любимых тестовых фреймворков. Но вот чего разрабочики не хотят — так это обеспечивать постоянный запуск этих тестов. Также, команды разработчиков не хотят тратить время на доведение результатов теста до всех.

Появляется все больше и больше полезных приложений, библиотек и плагинов, которые частично облегчают головную боль, возникающую в ходе попыток сделать тесты полезными для всей команды. Примерами прекрасных инструментов, которые есть в нашем распоряжении, могут быть Hudson для непрерывной интеграции, Cucumber для интеграционных тестов и Selenium для автоматизированного тестирования веб-приложений в реальном браузере. Но организация совместной работы всего этого требует все больше и больше настроек и конфигураций на сборочном сервере.

Наша цель — задокументировать шаги, требуемые для преодоления встречающихся препятствий на пути к запуску полного набора тестов Cucumber со сценариями на Selenium на сборочном сервере Hudson.
Читать дальше →

Пользователи открытых свободных географических карт (да и не только их) получили возможность использовать многочисленные открытые свободные значки

Reading time1 min
Views3.1K
Перед вами — одна из тех блогозаписей, которая стала бы топиком-ссылкою, кабы предмет её можно было адекватно и немногословно передать словами. Однако не тут-то было: это надо видеть. Глядите же, вот как выглядят разноцветные значки из коллекции «Map Icons Collection», которую создал автор по имени Nicolas Mollet и которую он раздаёт по лицензии Creative Commons 3.0 BY-SA:

[скриншот карты]

Эту иллюстрацию я взял из блога ШТОСМ, и на ней значки представлены на карте Google, судя по виду — однако же нетрудно думать, что наибольшая выгода от их появления заключена именно в возможности сочетать эти значки с OpenStreetMap и тем добиваться лицензионной чистоты картографической демонстрации, не теряя в качестве.

А вот другие достоинства:
  • Значки многочисленны: их более полутысячи, хотя некоторые варианты отличаются только цветом. Их каталог на сайте организован по категориям и подкатегориям. Все значки одной категории (если не перекрашены пользователем) имеют один и тот же цвет.
     
  • Цвет внутренности значка может быть выбран свободно. Кроме того, пользователь может выбирать из семи различных стилей оформления внутренней части значка и внешнего контура, основывающихся на этом цвете:

    [скриншот]
     
  • Набор значков каждого стиля можно скачать в ZIP-архиве, хотя внутри значки лежат простой кучею, а не по категориям.
Читать дальше →

Проектирование — не дизайн

Reading time3 min
Views11K
Что такое проектирование и что такое дизайн

Несмотря на то, что с английского слово design переводится как проектирование, в русскоязычных странах «дизайн» принял устойчивый смысл именно графического оформления.



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

Пишем одностраничный клиент на javascript

Reading time5 min
Views48K
Данная статья является вольным переводом. Оригинал тут.

Введение


Думаю, ни для кого не секрет, что клиентские приложения в современных веб-сервисах становится все сложнее и количество JS кода в них растет. До недавнего времени архитектура клиентской части, как правило, разрабатывалась с нуля и была специфична для каждого проекта. Не удивительно что приходилось снова и снова сталкиваться с типичными задачами.
К MVC-фреймворкам на серверной стороне все уже привыкли, но JS код на клиенте часто бывает плохо структурирован.

Предлагаю ознакомиться с решением на базе backbone.js, underscore.js и jQuery, которое поможет решить эту проблему.

Постановка задачи


Каким бы мы хотели видеть наше приложение? Вот основные моменты, которые мне кажутся важными:
  1. Должен быть удобный способ описать модели нашей предметной области.
  2. Любые изменения в модели должны немедленно отражаться в пользовательском интерфейсе, если модель в нем представлена каким-либо образом.
  3. Понятная и легко-поддерживаемая структуризация кода в стиле MVC.


Попробуем решить эти задачи на примере простого приложения «Каталог фильмов».
Поехали!

Пример использования KnockoutJS

Reading time9 min
Views17K
День добрый, хабрасообщество!В статье будет рассмотрен процесс создания web-страницы редактирования списка пользователей. Готовый пример можно забрать тут. Статья является не обзорной, а приближенной к реальным боевым действиям, потому настоятельно рекомендую ознакомиться с простым примером.
Мне интересны детали

Видео с конференции RailsClub'Moscow (30 апреля 2011г.)

Reading time1 min
Views1.2K
1. Галинский Дмитрий «Генерация PDF и ODF»
В лекции идёт речь об инструментах для генерации отчётов, счетов и форм для печати в формате PDF. Лектор рассматривает преимущества и недостатки разных инструментов, приводит примеры их использования.

2. Руденко Андрей «Эффективное %s с ZMQ»
ZMQ — что, как и зачем оно вам надо.

3. Моисеев Сергей «Пакетная обработка в RoR»
Пакетная обработка, на примере Сервиса по массовой обработке большого количества книг. Книги из Pdf в SWF, с поддержкой выделения и копирования из полученных книг текста. Очень часто книги были в виде картинок, вставленных в pdf, только для того чтобы соблюсти последовательность страниц.
Система из программ print2flash (для печати нескольких книг сразу). Всё под win окружением.

4. Бараблин Михаил «Rvm и наши серверы»
Как работать с Ruby, gem и не болеть.

5. Лазурейкис Павел «Интеграция RoR-приложений с социальными сетями»
Виджеты для Вконтакта, использование OmniAuth, Devise+OmniAuth

6. Карпунин Дмитрий «Front-end Rails-приложений»
Front-end Rails-приложений основанный на БЭМ (Блок, Элемент, Модификатор), семантическая вёрстка, IE6, Применение БЭМ на практике, Структура стилей.

Приятного просмотра.
Читать дальше →

База GeoIP – страны и города, июнь 2011 (+скрипт обновления)

Reading time3 min
Views12K
Вышла в свет обновленная версия русскоязычной базы данных стран и городов. Основные изменения:
— за счёт новой базы ipgeobase.ru повысилась точность определения городов Украины
— из бесплатной версии базы geobaza.ru исчезли города, поэтому точность определения городов других стран СНГ понизилась
— добавлен скрипт, с помощью которого вы можете самостоятельно обновлять базу (без добавления новых городов и стран)
— таблицы net_ru_2 и net_su удалены из базы, изменены примеры запросов
Результат этой работы доступен для свободного скачивания.
Читать дальше →

Лучшие шрифты для программирования

Reading time4 min
Views249K
Статья написана в 2009 году, и с тех пор многое изменилось, в том числе появились некоторые альтернативные шрифты для программирования, например, Anonymous Pro.

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

Я выкладываю список из десяти моноширинных шрифтов, готовых к использованию. Некоторые из них идут в комплекте с современными операционными системами, но большинство можно бесплатно скачать из интернета. Отдельные, в том числе Consolas, являются частью коммерческого ПО.
Читать дальше →

Влияние внутренней оптимизации на успешное продвижение сайта в поисковых системах. Часть 1

Reading time7 min
Views16K
Данная статья рассказывает о том, как важно проводить комплексную внутреннюю оптимизацию сайта и что нужно сделать для того, чтобы обеспечить успешное продвижение веб-ресурсов в поисковых системах. Выполненная в соответствие со всеми требованиями поисковиков оптимизация будет являться гарантом хорошей видимости сайта в результатах поиска и, как следствие, стабильного потока целевых посетителей.

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

Rails 3.1: Release Candidate

Reading time4 min
Views693
Сегодня вышел первый релиз-кандидат RoR 3.1, к чему в оффициальном блоге написали обзорную статью о ключевых нововведениях в предстоящей версии. Чтобы познакомить вас с нововведениями, перевожу с пояснительными комментариями для тех, кто ничего об этом не слышал. Далее в тексте курсивом мои примечания.


Как я (DHH — прим. переводчика) и обещал на RailsConf, мы наконец готовы выпустить Rails 3.1: Release Candidate. Это фантастически захватывающий релиз. В нём появилось две новых киллер-фичи и намного больше просто потрясающих улучшений. Для начала киллер-фичи:
Читать дальше →

Применение Event-driven модели в веб-приложении

Reading time6 min
Views12K
Взаимодействие частей приложения друг с другом — важная часть архитектуры любой программы.
И существует немало паттернов для их реализации. Я бы хотел на примере веб-приложения показать применение одного из них, а именно — Event-driven модели.
Она хорошо известна любому frontend-разработчику — всякий раз, работая с событиями DOM, вы используете эту модель. Давайте попробуем построить на ней не маленькое веб-приложение — файловый менеджер.

Продолжим под катом

Жизнь кирпичей. Почему расстановка приоритетов — ключевой элемент планирования

Reading time4 min
Views4.4K
Это попытка на картинках порассуждать, почему проекты так сложно выпускать в срок, и как задание приоритетов может улучшить ситуацию.


Итак, мы принимаемся за разработку проекта. Уже определены цели и общие очертания проекта, но пока совершенно ничего не известно про его реализацию. Какие задачи придется решать? Какие потребуются ресурсы? Неясно.

На этом этапе проект для нас — осязаемое, но все еще довольно бесформенное облако.


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

Цветной man или как разукрасить вывод echo

Reading time8 min
Views115K
Когда пишешь даже минимальный скриптик, часто используешь echo — подсказки.
Согласитесь "цветной man" ведь намного приятнее читать, так почему бы не раскрасить вывод echo?
это достаточно легко.
Итак…

Задача:
Раскрасить текстовую строку выводимую на экран через команду echo
т.е. раскрасить эти самые подсказки
Читать дальше →

Information

Rating
Does not participate
Location
Артек, Украина, Украина
Date of birth
Registered
Activity