Search
Write a publication
Pull to refresh
0
0
Send message

Работа с Google Fusion Tables — JS и PHP

Reading time7 min
Views14K
Summary: Возникла задача — создать высоконагруженное веб-приложение при крайне ограниченных ресурсах сервера.
В качестве хранилища данных был выбран Fusion Tables от Google.
Что описано в статье: работа с Fusion Tables из
а) Javascript — только выборка данных;
б) PHP (Zend Framework) — выборка, добавление и обновление;
в) пользовательский интерфейс от Google — создание таблиц и представлений.
Чего нет в статье:
а) нагрузочного тестирования;
б) подробного описания приложения — упор делается именно на использование Fusion Tables в своих PHP+Js проектах.

У компании Google есть большое количество различных продуктов. — без банальностей.
Только ленивый веб-программист не использовал в своих проектах карты от Google. Просто вставляется, красиво выглядит, не грузит собственный сервер, удобный, хорошо документированный (по крайней мере для v.2) API, высокая по крайней мере, не низкая скорость работы — плюсы есть. «Возможно, FT тоже будет приятным» — подумал я. Правда, не проверял. И вот результат.
Читать дальше →

Атака на отказ в обслуживании методом slow HTTP POST

Reading time5 min
Views42K
Доброго времени суток, уважаемые хабровчане!
Я хочу рассказать вам об относительно новом и интересном, на мой взгляд, механизме атаки на отказ в обслуживании — Slow HTTP POST.
Поиск показал отсутствие на хабре информации по теме, что несколько удивило меня, и я решил восполнить это досадное упущение. Тема не нова, но, как показали мои небольшие исследования, более чем актуальна. Забегая вперед, скажу, что полученные мной результаты позволяют говорить о существовании широко доступной технологии, позволяющей с одного компьютера с небольшим каналом «укладывать» небольшие и средние сайты, а при использовании нескольких машин с повсеместно распространенным сейчас скоростным доступом в Интернет причинить немало проблем и более серьезным проектам. Всех заинтересовавшихся покорнейше прошу пожаловать под хабракат.
Читать дальше →

Геолокационный сервис inmile.com

Reading time2 min
Views1K
Проект InMile.com — определяет местоположение пользователей, размещает их на карте и дает возможность общаться. Не только с друзьями, но с совершенно незнакомыми людьми, находящимися рядом.

inmile.com

В наши дни глобализация достигла невероятных вершин — мы можем подружиться с людьми с Нью-Йорка, прочитать, что думает журналист из Камбоджи о землетрясении в Японии уже через секунду после того, как он опубликовал текст.

Но! Вы знаете тех, кто рядом с вами? Кто живет в соседнем дворе (и вы не выросли в этом районе), кто учится в одном здании, кто работает в соседнем офисном корпусе, кто обедает в одной кафешке с разницей в два часа? Как зовут симпатиную девушку случайно увиденную из окна? Кто наклеил обкусанное яблоко/пингвина на детскую коляску своего чада?

С помощью InMile.com вы сможете познакомиться с этими людьми. В своем роде, это аналог локальных чатов, которые делают (делали) небольшие провайдеры.
Читать дальше →

Как не выстрелить себе в ногу

Reading time5 min
Views5.7K
Без использования unit-тестов и TDD очень легко выстрелить себе в ногу. С тестами и TDD сделать это намного сложнее, но если у вас получится, вы останетесь без ноги.

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

В этой статье я постараюсь объяснить о чем, собственно, разговор. Для чего нужно TDD и как его аккуратно использовать.

Что такое TDD в двух словах? — это написание разработчиком тестов до реализации функциональности.
По совету Роя Ошерова разобьем вопрос применимости TDD на два:

  • Зачем писать тесты?
  • Зачем писать тесты до реализации?

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

Ведение периодических сведений в информационных системах

Reading time5 min
Views6.6K
Все разработчики информационных систем сталкиваются с периодической информацией, т.е. данными изменяющимися во времени. Например:
— Цены на товары
— Курсы валют
— Должности
и т.п. Также, одна периодическая информация меняется часто, другая — редко. К редко меняющейся информации можно отнести, например:
— Фамилия и имя
— Адрес проживания
— Статус семьи
Так вот, в большинстве случаев, нет необходимости хранить историю изменения этой редко меняющейся информации, т.к. никто и никогда не будет строить отчет задним числом, чтобы в нем отображалась эта информация, действующая на дату отчета.
В таких случаях достаточно хранить просто факт изменения информации, предыдущее значение и дату изменения — это понадобиться в самых редких случаях.

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

Яндекс.Погода «в миниатюре»

Reading time1 min
Views20K

Погода – одна из тем, которые интересны любому человеку каждый день. Однажды у нас возникла идея – сообщать коллегам по офису о погоде. Так, чтобы это было максимально лаконично, информативно и понятно.
 
Вскоре после этого мы сделали небольшой внутренний сервис:


Сервис так понравился нашей команде, что мы решили поделиться им с вами.

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

Color.com как доказательство пузыря

Reading time2 min
Views794
Кажется, мы действительно находимся внутри второго пузыря доткомов. Все признаки налицо: завышенная оценка стартапов при том, что о доходах и прибыли уже не говорят, увеличение числа сделок, шумиха в прессе, стоимость красивых доменов опять зашкаливает и, наконец, последнее — все хотят поучаствовать. Достаточно посмотреть на количество различных конференций для «стартапщиков», куда народ валит толпами.

Весьма наглядное доказательство того, что мы внутри пузыря, появилось прямо сегодня. Сегодня в магазинах App Store и Android Market начала распространяться программка Color. Сегодня же стало известно, что этот стартап получил от венчурных фондов Sequoia Capital, Bain Capital и Silicon Valley Bank инвестиции в размере $41 млн. Ещё до запуска.

Этот стартап соответствует почти всем признакам пузыря, перечисленным в первом абзаце.
Читать дальше →

Как правильно читать объявления в Си

Reading time7 min
Views47K
Даже совсем зеленые программисты на Си, не испытывают проблем с чтением таких объявлений:
int foo[5]; // foo массив из 5 элементов типа int
char *foo; // foo указатель на char
double foo(); // foo функция возвращающая значение типа double

Но как только объявления становятся немного сложнее, проблематично точно сказать что это. Например:
char *(*(**foo[][8])())[];

Как же научиться их читать?

10 фактов про леммингов, о которых вы даже не подозревали

Reading time3 min
Views18K
Жизнь — дерьмовая штука. По крайней мере, так считают многие «взрослые» люди, с которыми мне довелось общаться. Они постоянно жалуются на свою работу, неудовлетворительные отношения и раздолбаев-детей, которые никак не хотят становиться такими, какими хотят их видеть родители. Жизнь для этих людей — это бесконечная карусель разочарований, неприятностей и несбывшихся надежд. Они встают рано утром с больной головой, заливают в рот пару литров кофе и едут на работу в состоянии, которому позавидовали бы самые отъявленные зомби. Они ненавидят свою работу и считают, что их занятия бессмысленны и никому не нужны. Но, не смотря на это, они с упорством леммингов продолжают делать эту работу, день за днём, год за годом. Они продираются сквозь собственную жизнь, надеясь, что всласть поживут потом, когда отработают 10-20-30 лет. Так вот, это всё херня. Когда вам будет пятьдесят, вы настолько устанете от такой жизни, что единственным вашим желанием будет лечь и сдохнуть. Да и здоровье будет уже не то, потому что вы слили его, занимаясь всякой ерундой, до которой вам даже не было дела. Так что, когда вы выйдете на пенсию, вы не поедете в Африку охотиться на львов, потому что солнце плохо сказывается на вашем давлении. Вы также не поедете на Северный полюс, потому что у вас артрит и холод — не лучшее для него лекарство. Южный полюс отпадает ещё и потому, что вы недолюбливаете пингвинов, что неудивительно, учитывая ваш 30-летний стаж работы сисадмином. Так что же вам остаётся? Поездки на дачу и вечера в уютной компании телевизора, вот что. Прожив 30 лет в постоянной борьбе с самим собой, у вас просто не останется сил на то, чтобы оторвать задницу от дивана.
Читать дальше →

Университет Kimball: 10 основных правил многомерного моделирования

Reading time7 min
Views17K

Марги Росс (Margy Ross) — Президент Kimball Group.

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

Студенты, посещающие лекции Kimball Group по многомерному моделированию, попросили у меня список «заповедей Kimball» для многомерного моделирования. Воздержимся от использования религиозной терминологии. Поэтому, нижеследующее, добытое методом проб и ошибок, назовём не слишком строгими рекомендациями и правилами «как-ничего-не-сломать».
Читать дальше →

TeamLab: храните и редактируйте документы прямо на корпоративном портале

Reading time2 min
Views8.4K
В прошлый раз мы поведали вам историю создания и развития TeamLab — платформы для организации совместной работы и общения. С того момента произошли некоторые существенные изменения в функционале системы, о чем сегодня мы хотели бы вам рассказать.
Читать дальше →

Размышления о привязке «Войти через...» к одному аккаунту

Reading time5 min
Views19K
Постановка проблемы

Некоторое время назад по долгу службы работы, встал на обсуждение вопрос «А нужно ли делать на новом проекте авторизацию через сторонние сервисы?». Мозг, взбудораженный красивыми всплывающими окошками, виджетами и прочими украшательствами, призывно требующими «Войди через меня!», конечно же обеими руками был за, да и современные вебдванольные (а то и, тьфу тьфу, вебтринольные, быть может?) тенденции развития крупных порталов, как бы, намекают. Однако, я не зря сказал, что началось всё с обсуждения, ибо, где есть споры, там есть и камни преткновения. Такой камень мы нашли и здесь.

Предположим, на сайте имеется красивая панелька, как, например, у логинзы, или просто отдельные виджеты авторизации, например, через контакт, твиттер, фейсбук и иже с ними. Легко войти на сайт? Безусловно. Но при этом, если человек войдет сразу со всех этих аккаунтов (одновременно или нет, не суть), для системы это будут разные люди, а следовательно, клоны одного и того же человека, учётной записи которого, быть может, и вовсе нету на сайте.

Казалось бы, какая разница, регистрировать аккаунт на сайте, или входить через внешние ресурсы?
Читать дальше →

Licenzero: порно детектед

Reading time3 min
Views18K
Licenzero У нас великолепная работа — нам платят за просмотр порнографических роликов. Ну а серьезнее, мы работаем в R&D отделе компании Inventos, которая занимается автоматической фильтрацией веб-контента: модерация, защита авторских прав и т. д. Перед нами была поставлена задача — построить систему для автоматического выявления роликов порнографического содержания. Здесь мы расскажем, как мы решали поставленную задачу.
Читать дальше →

Набег на Саранск: как за одни выходные сделать карту целого города

Reading time1 min
Views2.6K
Неделю назад я упоминал о том, что участники OpenStreetMap впервые устроили «online mapping party» и нарисовали по спутниковым снимкам Bing за одни выходные карту Саранска, столицы Мордовии. Теперь подведём итоги.

Помимо юмористического отчёта (очень рекомендую) и серьёзного отчёта, также был сделан хороший видеоролик о прошедшем мероприятии (спасибо trolleway). На нём виден процесс улучшения карты города, карта-«пирог», где были отмечены зоны ответственности участников, координационная страница, сравнение панорамных фотографий города и трёхмерной картинки на основе данных OpenStreetMap (это выглядит очень эффектно), а также запись работы навигатора. И это всё под хорошую музыку. Смотреть всем:



А затевалось всё это рисование, чтобы помочь сайту мониторинга транспорта bus13.ru, который неожиданно стал использовать карту OpenStreetMap в то время когда она была ещё не очень хорошей. Сайт обнаружил OldIvantey, а предложил нарисовать город osmisto. В итоге мероприятие оказалось не просто помощью bus13.ru, но и хорошей проверкой сил сообщества OpenStreetMap и успехом в рисовании целого города.

Я так понимаю, местные жители от такого были в радостном шоке и теперь уже несколько человек из Саранска (ЖенDos, SVE, x15, p3omat, MIR, TemikNT, JOHN, Nickolay, ArtCore) присоединилось к сообществу OpenStreetMap и они стали отмечать баги, которые допустили понае… «набежавшие» участники, и отмечать POI.

Ещё раз сравнить карту можно здесь: было, стало.

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

Что такое проектирование сайта и почему его нужно делать

Reading time5 min
Views79K
Проектирование — этот, возможно, ключевой этап создания интернет-сайта, отвечает нам на следующие вопросы:
  1. Каковы наши цели — зачем мы делаем сайт? Как мы реализуем поставленные цели?
  2. Как сайт будет выглядеть и работать?
Читать дальше →

Как создать свой сайт с нуля с помощью Orchard CMS. Часть 1. Введение в Orchard CMS

Reading time7 min
Views15K

О проекте


Проект Orchard CMS был анонсирован в марте 2010 года с выпуском первой бета-версии проекта. Создатели Orchard CMS поставили перед собой цель построить систему управления контентом на новом успешном фреймворке ASP.NET MVC, которая соответствовала бы следующим требованиям:
  • открытый бесплатный и свободный проект, зависящий от запросов сообщества;
  • быстрый движок с модульной архитектурой и всеми необходимыми средствами CMS;
  • общедоступная онлайн-галерея модулей, тем и других компонентов расширения от сообщества;
  • высокое качество типографики, внимание к компоновке и разметке страниц;
  • упор на создание удобной и функциональной панели администрирования;
  • быстрое развертывание системы на рабочем месте и легкая публикация на сервер.
Система управления контентом Orchard является проектом с открытым исходным кодом, который написан на ASP.NET MVC. Orchard является частью галереи ASP.NET-проектов с открытым исходным кодом некоммерческого фонда Outercurve Foundation.

clip_image002

Рис.1.1. Внешний вид Orchard CMS по умолчанию

Первоначально Orchard и его исходные коды лицензировались на основе свободной лицензии MS-PL, но недавно, с выходом первой публичной версии, проект сменил лицензию на более простую и распространенную New BSD License.

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

http_handlersocket_json_module

Reading time3 min
Views1.8K
О назначении модуля можно догодаться из названия. О HandlerSocket говорят много и на разных языках (в основном на японском, английском и последнее время немного на русском).
Модуль NGX_HTTP_HANDLERSOCKET_JSON_MODULE обращается к данным MySQL через протокол HandlerSocket и отдает данные в формате JSON. Область применения AJAX.
Исходники

О конфигурации, особенностях и ограничениях можно почиать ниже.
Читать дальше →

Архитектура и платформа проекта Одноклассники

Reading time10 min
Views120K

Архитектура и платформа проекта Одноклассники


В этом посте расскажем о накопленном за 5 лет опыте по поддержанию высоконагруженного проекта. Надеемся, что коллегам-разработчикам будет интересно узнать, что и как мы делаем, какие проблемы и трудности у нас возникают и как мы справляемся с ними.

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

Применение алгоритмов нечеткого поиска в PHP

Reading time7 min
Views31K
Вдохновленный топиками о нечетком поиске и фонетических алгоритмах, захотел попытаться реализовать нечто подобное похожее на гугловское «Возможно, вы имели в виду: ...» средствами PHP.

Для исправления опечаток в словах понадобится:
Расстояние Левенштейна (или расстояние Дамерау-Левенштейна — разница будет незначительной) — levenshtein()
Metaphonemetaphone()
Алгоритм Оливера — similar_text()
База русских слов (с падежами, учетом времен и т.д.).
Читать дальше →

HTML5 как победа научного материализма

Reading time15 min
Views6.3K
Стандарт HTML5 уже почти готов к использованию. Где-то все еще идут жаркие споры по конкретным секциям DOM, видеокодекам, анимации и прочим 3D, но основа HTML5 — его синтаксис, атрибуты и теги — уже устаканились. Эти разделы стандарта не меняются уже многие месяцы; окончательно и по факту их зафиксируют релизы IE9 и FF4, после чего какие-либо их изменения в рамках пятой версии станут невозможны.
Так как костыли для старых версий IE уже созданы и обкатаны, то уже совсем-совсем скоро, начиная новый проект, можно будет открыть свой любимый редактор и, не скрывая наслаждения, написать

<!doctype html>

Сначала, конечно, html5 появится скорее в бложиках энтузиастов, чем на серьезных сайтах, но — вот увидите — через несколько лет в каждой региональной газете появятся объявления типа «ремонт и настройка ПК, заправка принтеров, 1С, сайты на HTML5».

В IT, как и в других областях техники, спецификации бывают хорошие, как у Страуструпа, а бывают плохие и даже отвратительные, как спецификация ECMAScript. По моему скромному мнению, спецификация HTML5 обещает стать воистину великой, просто-таки образцовой вершиной этого бюрократического жанра.
Пролистывая на выходных свежую версию черновика стандарта (от 5-ого марта), я в очередной раз не мог не восхититься изящностью принятых решений и филигранной точностью формулировок родившейся в тяжелых муках спецификации.

Эта статья о том, почему стандарт html5 получился именно такой, и что на самом деле скрывается за его внешне обтекаемыми формулировками.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity