Search
Write a publication
Pull to refresh
180
0
spmbt @spmbt

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

Send message

«Рамблер-Карты» перезапущены в новом качестве

Reading time2 min
Views16K
Сегодня мы представляем beta-версию обновленных «Рамблер-Карт». Это первый сервис, который перезапускается в новой концепции и в новом фирменном стиле «Рамблера».

Объем предоставляемых данных делает «Рамблер-Карты» даже в beta-версии самыми подробными в рунете. Сервис дает детальную картографическую информацию о 2 000 населенных пунктов, с точностью до улиц и домов. Такого покрытия нет ни у кого на рынке. Основа сервиса – города с населением более 100 000 человек. Карты многих таких городов пользователи впервые увидят в Интернете.



Актуальная информация о пробках предоставляется для 86 городов Европейской части России – это также самое широкое покрытие в рунете.
Читать дальше →

Карты Payoneer — не только для фрилансеров

Reading time2 min
Views24K
Нам было исключительно приятно получить столь тёплый приём на Хабре на прошлой неделе. После множества комментариев, вызванных нашей ознакомительной статьёй, мы поняли, насколько активно аудитория Хабра использует карты Payoneer. В большинстве своём это технари-фрилансеры работающие на таких мировых биржах фриланса, как oDesk, Elance, GetAFreelancer и других, но у нас есть немало других компаний-партнёров из других сфер деятельности, производящих выплаты своим удалённым работникам, используя наш сервис. Об этих дополнительных отраслях мы и раскажем сегодня. На закуску обещаем небольшой сюрприз.
Читать дальше →

Миллион пользователей описывают мир вместе с Wikimapia

Reading time2 min
Views11K
В данный момент Wikimapia является одним из самых успешных российских стартапов мирового уровня — из более чем миллиона зарегистрированных пользователей больше 90% иностранные, и, кстати говоря, многие зарубежные страны описаны пользователями сервиса лучше, полнее и точнее, чем Россия.

В конце 2010 года коммерческий проект Wikimapia.org — картографический сервис, основанный Евгением Савельевым и Александром Корякиным в 2006 году — преодолел отметку в 1 миллион пользователей и перешел на свободную лицензию Creative Commons CC-BY-NC-SA 3.0 Unported.


Предложения о продаже проекта
По словам Евгения Савельева, основателям проекта неоднократно поступали предложения о его продаже за сумму от $8 тысяч до нескольких миллионов, однако продажа проекта пока не входит в их планы, но в будущем этого исключить нельзя.
Читать дальше →

Изучай Хаскель ради добра! Аппликативные функторы

Reading time37 min
Views10K
Совсем недавно издательство No Starch Press подготовило и выпустило печатное издание замечательного учебника Learn You a Haskell for Great Good! (онлайн-версия), написанного Miran Lipovača.

Я хочу представить вам самый актуальный перевод главы 11 Аппликативные функторы, оригиналом для которого послужило именно издание от No Starch Press, адаптированное для печати.
Читать дальше →

JavaScript-библиотеки для работы с SVG

Reading time1 min
Views20K
Наиболее популярными библиотеками для работы с SVG на JavaScript являются Raphael, Jquery.SVG, SVGWeb. Есть немного более профильные библиотеки, которые используют SVG для решения узких задач: карты, данные и манипулирование объектами.

В общем, под катом краткий обзор библиотек, с которыми мне пришлось немного поработать.

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

Ещё раз о «Mercurial против Git» (с картинками)

Reading time3 min
Views61K
Некоторое время назад я опубликовал очень многословное сочинение, где пытался объяснить, почему Git серьёзно поломан, и почему всем следует вместо этого пользоваться Mercurial, до тех пор, пока разработчки Git его не починят. Ну ладно, я был не настолько груб, но близок к этому.

Народ на Reddit жаловался, что мой технический язык слишком путанный, особенно потому что я придумывал новую терминологию в попытках доказательства своих положений. Они потребовали графы, с узлами, рёбрами, кружочками, стрелочками и всем прочим. Тогда я промучал графический редактор несколько часов и получил два графа, приведённые ниже, которыми я надеюсь обрисовать проблему.

Ниже я нарисовал упрощёный граф истории репозитория Git с тремя созданными ветками: «master», «release» и «topic». До того, как энтузиасты Git начнут ругаться, что я исхитрился показать нереально плохой случай запутанности истории, позвольте мне заверить вас, что это на самом деле ещё упрощённый пример. У меня есть доступ к реальному репозиторию Git, где создано шесть рабочих веток релизов, около сорока рабочих тематических веток и несколько сотен ранее существовавших веток, которые уже удалены с центрального сервера.
Читать дальше →

Масштабируемые JavaScript приложения

Reading time22 min
Views40K
Более месяца назад в статье FAQ по JavaScript: задавайте вопросы был задан вопрос «Подскажите примеры хорошего подхода организации JS кода к сайту на достаточно высоком уровне. Как можно узнать подробнее практики реализации например gmail?».

Пришло время ответить на данный вопрос. Я немного затянул т.к. хотел рассказать доклад на одноименную тему на Я.Субботнике. Доклад был очень коротким многие важные моменты пришлось выкинуть. Статья — более-менее полная версия.

Эта статья о том, как сделать крупное веб-приложение расширяемым и поддерживаемым: архитектура, подходы, правила.
Читать дальше →

Мобильная веб разработка

Reading time6 min
Views11K
В настоящее время, всё больше и больше людей используют электронные устройства для упрощения своей жизни. Использование громоздких ПК плавно перетекло в ноутбуки, а теперь и в смартфоны. Крупные компании, как Apple, Dell и Microsoft хотят получить часть рынка смартфонов: ожидается, что к концу 2011 года, мировые продажи смартфонов побьют мировые продажи ПК.

image

Именно поэтому мобильная веб разработка очень актуальна сейчас. Продажи смартфонов растут каждый день и это говорит о необходимости повышенного внимания к интерфейсам для мобильных устройств. Как удовлетворить все запросы от пользователей, которые становятся все более и более требовательными? Как сделать так, чтобы люди могли смотреть сайт, как на Full HD монитор, так и на мобильном телефоне?
У веб-разработчиков всегда были проблемы с кросс-браузерностью. Теперь у них есть еще одна головная боль: кросс-платформенность, потому что Android приложение никогда не будет работать на iPhone и наоборот.
Целью данной статьи является рассмотрение проблем веб-разработчиков, в связи с появлением смартфонов, предложение пути их решения и показ эффективного решения на практике, изпользуя фреймворк Sencha Touch. Основная проблема заключается в том, что все больше и больше людей используют и хотят использовать интернет на своих мобильных устройствах, но не все сайты готовы предоставить эту услугу.
Читать дальше →

Новый Javascript фреймворк основаный на Scriptographer

Reading time2 min
Views2.6K

Создан Юргом Лени и Джонатаном Пакей, Paper.js является фреймворком сценариев векторной графики с открытым исходным кодом, который работает поверх HTML5 Canvas. Он предлагает чистый Scenegraph / DOM и много ярких функций, для создания и работы с векторной графикой и кривыми Безье.

Paper.js основана на и в значительной степени совместимы с Scriptographer, средой сценариев для Adobe Illustrator, первоначально разрабатывающаяся Юргом и Джонатананом более чем 10 лет.
Читать дальше →

Node.js для начинающих

Reading time1 min
Views41K
NodeBeginner.ru — перевод на русский язык учебника по Node.js для начинающих «The Node Beginner Book» автора Manuel Kiessling.

Учебник предназначен для разработчиков с опытом работы с каким-либо объектно-ориентированным языком, немного знакомых с JavaScript и полных новичков в Node.js. Оригинал ещё находится в процессе написания, законченно около 90%. Перевод будет соответственно обновляться.

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

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

Введение


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

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

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


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


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

10 способов улучшить свои навыки программирования

Reading time4 min
Views89K

1. Выучить новый язык программирования


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

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

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

Введение в HTML5 History API

Reading time4 min
Views242K
До появления HTML5 единственное, что мы не могли контролировать и управлять (без перезагрузки контента или хаков с location.hash) — это история одного таба. С появлением HTML5 history API все изменилось — теперь мы можем гулять по истории (раньше тоже могли), добавлять элементы в историю, реагировать на переходы по истории и другие полезности. В этой статье мы рассмотрим HTML5 History API и напишем простой пример, иллюстрирующий его возможности.

Основные понятия и синтаксис


History API опирается на один DOM интерфейс — объект History. Каждый таб имеет уникальный объект History, который находится в window.history. History имеет несколько методов, событий и свойств, которыми мы можем управлять из JavaScript. Каждая страница таба(Document object) представляет собой объект коллекции History. Каждый элемент истории состоит из URL и/или объекта состояния (state object), может иметь заголовок (title), Document object, данные форм, позиция скролла и другую информацию, связанную со страницей.

Основные методы объекта History:
  1. window.history.length: Количество записей в текущей сессии истории
  2. window.history.state: Возвращает текущий объект истории
  3. window.history.go(n): Метод, позволяющий гулять по истории. В качестве аргумента передается смещение, относительно текущей позиции. Если передан 0, то будет обновлена текущая страница. Если индекс выходит за пределы истории, то ничего не произойдет.
  4. window.history.back(): Метод, идентичный вызову go(-1)
  5. window.history.forward(): Метод, идентичный вызову go(1)
  6. window.history.pushState(data, title [, url]): Добавляет элемент истории.
  7. window.history.replaceState(data, title [, url]): Обновляет текущий элемент истории
Читать дальше →

Женщины и игры. Ключевые моменты

Reading time6 min
Views17K
Голая баба. Шутка :)Основной характеристикой игрового продукта является охват аудитории, чем он больше, тем больше потенциальная возможность получить высокие прибыли. Долгое время игровой аудиторией были мужчины, но время идёт и теперь взоры разработчиков игр направлены на перспективную женскую аудиторию.

В этой статье я расскажу о своих наблюдениях и исследованиях женской психологии применительно к играм, будут выделены ключевые моменты и опровергнуты некоторые предубеждения.
Читать дальше →

MBR для флешки своими руками или как сделать из одного устройства три

Reading time8 min
Views114K
Мое почтение читающему!
Топик мог бы получиться просто катастрофически огромным, поэтому перейдем сразу к делу. Впереди вас ждет рассказ, о том, как можно одну флешку сделать одновременно загрузочной как для ОС семейства Windows, так и *nix, а также сделать из нее live-usb. Заранее прошу прощения за жаргон, не сторонник, но так короче.

Аннотация


Как-то пришлось много раз подряд устанавливать на одну и ту же машину кучу разных операционных систем, как от товарищей господ из Майкрософт, так и любимых всеми нами *nix`ов. При этом инсталляторы вновь устанавливаемых ОСей периодически терли загрузчики ранее установленных, так что приходилось их восстанавливать вручную, загружаясь с live-usb. Но самое ужасное, что при всем при этом под рукой была всего одна флешка (и еще 15 компьютеров правда, но толку от них было мало, так как разбирать их по причинам гарантии в надежде на лишний жесткий диск было нельзя). Флешка к счастью была большого объема. Вот тут-то и возникла идея сделать из одной флешки две, а лучше три (хотя можно и 4) разных девайса.

Немного теории


Как сделать из одной флешки несколько с целью последующей установки на нее одновременно нескольких установщиков ОС и еще live-операционки? Ответ очевиден — сделать на флешке несколько разделов!
Читать дальше →

Итераторы и генераторы на основе функций

Reading time6 min
Views5.1K
Поддержка итераторов и генераторов в качестве языковых конструкций появилась в javascript только в версии 1.7, и об использовании этих чудесных вещей в браузерах еще долго можно будет только мечтать. Однако использовать итераторы и генераторы в виде паттернов проектирования в javascript можно уже сейчас, и более того, делать это достаточно легко, а иногда даже приятно :)
Добро пожаловать под кат

Cвязывание данных в JavaScript-приложениях: автороутинг событий

Reading time7 min
Views3.4K
Привет Хабр! В этой статье я рассмотрю один из вариантов построения архитектуры клиент-серверного веб-приложения с точки зрения связывания данных. Этот вариант не претендует на оригинальность, но лично мне позволил значительно сократить время на разработку, а также оптимизировать время загрузки.
Читать дальше →

Фонетические алгоритмы

Reading time9 min
Views47K
Фонетические алгоритмы сопоставляют двум словам со схожим произношением одинаковые коды, что позволяет осуществлять сравнение и индексацию множества таких слов на основе их фонетического сходства.

Часто довольно трудно найти в базе нетипичную фамилию, например:
— Леха, поищи в нашей базе Адольфа Швардсенеггера,
Шворцинегира? Нет такого!
В этом случае использование фонетических алгоритмов (особенно в сочетании с алгоритмами нечеткого сопоставления) может значительно упростить задачу.

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

В этой статье я рассмотрю наиболее известные алгоритмы, такие как Soundex, Daitch-Mokotoff Soundex, NYSIIS, Metaphone, Double Metaphone, русский Metaphone, Caverphone.
Читать дальше →

Iterators & Generators

Reading time12 min
Views20K
Обработка элементов коллекции/массива обычная и частая операция. В JavaScript есть несколько способов обхода коллекции начиная с простого for(;;) и for a in b

var divs = document.querySelectorAll('div');
for (var i = 0, c = divs.length; i < c; i++) {
    console.log(divs[i].innerHTML);
}

var obj = {a: 1, b: 2, c: 3};
for (var i in obj) {
    console.log(i, obj[i]);
}

У объекта Array есть методы обхода всех элементов map(), filter()
var numbers = [1, 2, 3, 4, 5];
var doubled = numbers.map(function (item) {
    return item * 2;
});
console.log(doubled);

В Firefox есть "заполнитель массива" (Array comprehensions)
var numbers = [1, 2, 3, 4];
var doubled = [i * 2 for each (i in numbers)];
console.log(doubled); // [2, 4, 6, 8]

Итераторы и Генераторы появились в JavaScript 1.7 (по версии Mozilla) они есть пока в Firefox 2+ (в статье будет упомянут способ как их можно «эмулировать» почти во всех браузерах с костылем) Итераторы и Генераторы вносят механизм, позволяющий управлять поведением for in и инкапсулировать процесс получения следующего элемента в списке объектов.

Часто для обхода и обработки элементов массива мы пишем большие конструкции, часто копипастим их части. Задача Генераторов и Итераторов усовершенствовать этот процесс, добавив синтаксический сахар.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity