Search
Write a publication
Pull to refresh
23
0
Send message

Оффлайновые карты всего мира

Reading time2 min
Views6.2K
MapsWithMe У меня давно была мечта написать карты. Удобные карты, которым не нужен доступ в Интернет, с актуальными данными, быстрые и работающие на любом устройстве. После работы инженером в Google Maps эта мечта только усилилась и в какой то момент переросла в конкретные действия.

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

Сколько дают денег стартапам?

Reading time3 min
Views14K
300 — 350 миллионов долларов были инвестированы в стартапы в России в 2010 году (по оценке президента группы Qiwi Андрея Романенко). 
Какие именно проекты интересуют инвесторов? На сайте startuppoint.ru собраны проекты, которые получили инвестиции. 
  • Actio.tv — решение для создания интерактивного видео.  Инвестор — президент группы компаний ХедХантер Юрий Вировец, $ 100 000 за 3%. 
  • b-152.ru — решение для подготовки документации по защите персональных данных. Инвестор Олег Михальский. Сумма сделки не разглашается. 
  • EasyFinanсe — онлайн-сервис для ведения домашней бухгалтерии. Инвестор Addventure. Сумма сделки не разглашается.
  • Futuruti — социальный тотализатор. ИД С-Медиа. Сумма сделки не разглашается.
  • InSales — платформа для создания Интернет-магазинов. Инвестор — фонд AddVenture, $ 50 000.
  • Loginza — сервис аутентификации через учетные записи распространенных сайтов. Инвестор Яндекс. Сумма сделки $ 150 000.
  • Toozla — мобильные аудио путеводители. Инвестор TwinsInvestments. Сумма сделки $ 500 000.
  • Turometr — туристический социальный сервис. Инвестор TwinsInvestments. Сумма сделки $ 500 000.
  • Yaya — интернет-газета бесплатных объвлений. Инвестор Экстра-М. Сумма сделки не разглашается.
  • ВебВизор — инструмент для исследования юзабилити сайта. Инвестор Яндекс. Сумма сделки $ 500 000.
  • Дал Слово — социальный сервис контроля обещаний чиновников. Инвестор — Леонид Волков. Сумма сделки не разглашается.
  • Минибанда.ру — социальная сеть для родителей. Инвестор Addventure. Сумма сделки $ 50 000.
  • Таймлайнер — инструмент для организации клиентопотока. Частный инвестор — Леонид Волков. не разглашается.
  • Пробки из окна — веб-камеры он-лайн с видом на дороги. Частный инвестор. Сумма сделки $ 100 000. 


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

История создания fermer.mobi

Reading time3 min
Views3.5K
Хочу рассказать вам, как я создал браузерную онлайн игру для мобильных устройств, которая на текущий момент:
— занимает 3-е место в рейтинге waplog.net (это самый крупный счетчик рувапа);
— 4-е место в мобильных одноклассниках (m.odnoklassniki.ru);
— аудитория игры ~300 тысяч хостов в сутки;
— онлайн днем ~12 тысяч;
— количество регистраций уже приближается к 500 тысячам.

Эта история, на мой взгляд, интересна тем, что:
— игру создал, запустил и раскрутил я один, без инвесторов, без партнеров;
— я никогда не был менеджером, бизнесменом, маркетологом, я программист;
— помимо денег на содержание моей семьи я вложил в раскрутку всего 50 тысяч рублей.

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

Выбор технологии для разработки браузерных игр

Reading time4 min
Views12K

Описание задачи


В связи с сложившейся ситуацией с поддержкой (а точнее ее отсутствием) технологии Flash на iOS, меня попросили проверить возможность реализации игр с богатой графикой на “чистых” браузерных технологиях. Честно говоря, Flash далеко не самая моя любимая платформа (так как является закрытым продуктом Adobe, а не open source), что лишь добавило мне мотивации показать, что возможны хорошие результаты и без нее...
Читать дальше →

Дневник репатриантов: как мы подняли 1 млн. $ инвестиций за шесть недель (и отдали менее 15%)

Reading time5 min
Views4.3K
На UpStartConf – секции о рынке инвестиций и стартапов в рамках РИФа-2011 основатели Островок.ру рассказывали о том, как привлечь в Рунет мировых инвесторов.

Эксперты, инвесторы и IT-предприниматели Рунета сошлись в едином мнении, что на российском интернет-рынке нет публичных кейсов стартапов, нет обучения для начинающих веб-предпринимателей, что неблаготворно влияет на рынок. В этом посте репатрианты Кирилл Махаринский и Сергей Фаге презентуют кейс по привлечению инвестиций на примере проекта Островок.ру
Читать дальше →

Jooq — «LINQ» для Java, типобезопасный построитель SQL запросов в Java коде

Reading time5 min
Views26K
Недавно, в поисках золотой середины между JDBC и ORM, я натолкнулся на интересную open source библиотеку (лицензия Apache Software License), с помощью которой можно строить SQL прямо в Java-коде достаточно удобно и безопасно. Библиотека называется Jooq. Jooq включает в себя генератор кода, который парсит структуру вашей базы данных и создает необходимые Java-классы. На деле получается примерно такой код:

Integer taskId = sqlFactory.select(ID).from(TASK).where(STATUS.equal(TaskStatus.QUEUED)).
    orderBy(LAST_UPDATED).limit(1).fetchOne(ID);


Как видите, конструирование запроса и его выполнение для простых типов занимает одну строку. Немного о jooq:

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

Создание py2exe сборок с модулями Python, содержащими сторонние файлы

Reading time6 min
Views11K
Для краткости, введем обозначение «нестандартные» — под этим термином будем далее подразумевать такие модули, которые содержат в себе файлы, отличные от *.py. К примеру это могут быть библиотеки (*.pyd), картинки, иконки, и т.д.

Первая проблема состоит в том, что практически все сборщики бинарных «дистрибутивов» python-приложений, такие как py2exe, bbfreeze, cx_Freeze, и другие, забирают из таких модулей только *.py файлы. Вторая проблема возникает со сложными namespace-модулями, такими как ETS — часто сборщик не может правильно разобрать все их внутренние зависимости.

Конкретно в моем случае камнями преткновения оказались все модули ETS (mayavi, chaco, и т.д.), m2crypto, vtk, h5py, matplotlib и несколько других (вообще, как выяснилось, таких модулей очень много).

Я попробовал протестировать разные сборщики и поначалу остановился на cx_Freeze, т.к. он единственный умеет более-менее правильно импортировать ETS «из коробки». Однако, его оказалось недостаточно: он не смог справиться с другими нестандартными модулями, а также по ряду других причин (к примеру, мне так и не удалось скрыть окно консоли, поставить кастомную иконку, и пр.). Конечно, там есть механизм «рецептов» (совсем не документированный), который даже работает, к примеру, для matplotlib, но хотелось более универсального и простого решения, чем писать подобный рецепт под каждый модуль.

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

Django проект PR Hero: что внутри и полученный опыт

Reading time4 min
Views5.9K

Я хочу продолжить хорошую традицию:
и рассказать об удачных решениях, примененных в Django проекте PR-Hero.

Я призываю всех поступать так же и делиться своим опытом :) Объясню почему. В нашей команде каждое удачное решение или приложение из одного проекта обязательно использовалось в следующем. Проекты развивались и становились все лучше и лучше.

А что, если делиться опытом не внутри отдела, а целым сообществом российских джангистов?

что же внутри?!

Как Ларри Пейдж изучал Java

Reading time2 min
Views3.6K
Нынешний руководитель Google Ларри Пейдж во времена студенческой юности не был выдающимся программистом. Стивен Леви рассказывает об истории создания программ Backrub и PageRank в своей книге "In the Plex" (цитаты: 1, 2, там же ссылка на первую часть книги, которая лежит в открытом доступе).

Пейдж никак не мог добиться нормальной работы краулера и индексатора из-за большого количества багов в коде и ещё по причине использования нового и нестабильного языка Java. Система всё время падала и не годилась для реальной работы. В архивах ньюс-группы comp.lang.java за 1996 год сохранились вопросы Пейджа. Он пытается выяснить у знающих людей, как назначить User-Agent для заголовка HTTP.
Читать дальше →

True Java Elastic Cloud @ JavaOne — закрытый beta-test

Reading time3 min
Views1.1K
Java Elastic Cloud Как и все русскоязычные разработчики на языке Java, мы с интересом ждем конференцию JavaOne, которая будет проходить 12 апреля в Москве. Для нас это мероприятие будет знаковым, т.к. к этому дню мы подготовили beta-версию Jelastic — эластичного облачного решения для Java.
Для кого предназначен Jelatic на данном этапе тестирования: для Java разработчиков использующих Tomcat и MySQL, желающих в один клик деплоить свои приложения в эластичное облачное окружение.

Важными отличительными особенностями Jelastic относительно конкурентов является наличие вертикального масштабирования.
Читать дальше →

Nginx + uWSGI + Django, один из вариантов запуска

Reading time4 min
Views34K
Статья описывает один из способов развертывания Django-проектов, в связке Nginx + uWSGI на Unix-подобных операционных системах. Тестирование, а так же дальнейшая рабочая эксплуатация производилась на FreeBSD, однако на Linux процесс будет схож, за исключением некоторых незначительных моментов.
Читать дальше →

«Рейтинг Рунета» опубликовал список ТОП-100 SEO-компаний 2010 года

Reading time2 min
Views5.3K
Итоги рейтинга SEO-компаний за 2010 год появились на проекте «Рейтинг Рунета» 6 апреля. Состав лидеров рейтинга изменился, часть фаворитов прошлого года утратила свои позиции, а их места в таблице заняли новые участники.

В 2010 году рейтинг SEO-компаний был расширен в два раза — с 50 до 100 строчек. Этот шаг обеспечил большую репрезентативность проекту и позволил сделать более широкий выбор партнеров для поискового продвижения сайта.

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

Как выбрать VPS хостинг

Reading time4 min
Views24K
Неприятности начались с того момента, когда мой любимый американский хостер вдруг перенес мой многолетний аккаунт на новый сервер и установил хитрый лимит на память php для всего аккаунта. И вроде бы memory_limit 90M на первый взгляд достаточно для любого сайта, но этот лимит действует на весь аккаунт в целом. Т.е. сайты, расположенные на одном аккаунте, начинают «душить» друг друга. Начались проблемы с форумом phpbb посещаемостью всего 2000 уников в сутки. При превышении лимита памяти сервер отдавал 500 ошибку.

Опытные люди, не читая далее, сразу скажут, что предложила мне техподдержка: конечно же переход на их VPS. Для отечественного хостинга это обычное дело, но от буржуев я такое услышал впервые. Выход в таком случае один — переход на другой хостинг, ибо с «террористами переговоров не ведут» да и 15$ за их 300Mb VPS мне показалось несколько дороговато.

Выбрал Open VZ VPS в России 768Mb за ~500 рублей. Все поставил, вроде работает. Но тут черт меня дернул перед сменой DNS проверить нагрузку с помощью loadimpact.com и меня накрыл тихий ужас: при одновременном доступе к сайту 50 посетителей страницы грузились по 60 секунд.
Читать дальше →

Встреча Клуба Инноваторов в Петербурге (медицина и IT в медицине)

Reading time2 min
Views642
26 марта в Санкт-Петербурге в засекреченном зале – на Биржевой линии, д. 4 – состоится 18 встреча Клуба Инноваторов.

В субботний полдень мы обсудим последние тенденции в области инновационных технологий в здравоохранении и применении IT в медицине.
Читать дальше →

Отладка REST-сервиса на коленке — готовое решение

Reading time1 min
Views5.6K
В процессе писания REST-сервиса уткнулся в странную проблему — не нашел приличного инструмента для отладки jsonp ответа от сервера.
За пол-дня накидал приемлемый вариант — одна html страница, которую можно хоть прямо с диска загрузить и кучка чужих js-либ, чтобы вся эта красота работала.
Выглядит примерно так:



Все бобро выложено на github, если кому-то нужно — пожалуйста!

Disclaimer: может оказаться полезным в случае если вам нужен кросс-платформенный и кросс-браузерный нативный «ajax-клиент имитатор» для кросс-доменных запросов с малым потреблением памяти и наглядным вводом и выводом ответа сервера.

Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

Reading time20 min
Views317K
Идеальная вёрсткаВы PM. Как узнать – готова ли вёрстка к реальному использованию?
Вы заказчик. Как убедиться, что работа выполнена качественно?
Как оценить качество вёрстки?

Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

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

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

Итак что же это за список?

Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.

История обновлений:
  • 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
  • 2015/08/10: актуализирован список исключений для CSSLint
  • 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
  • 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
  • 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
  • 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
  • 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
  • 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
  • 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
  • 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.


Далее с примерами - как проверить html, даже если вы ничего не понимаете в вёрстке.

Кеширование в Spring Framework 3.1

Reading time3 min
Views30K
Я могу ошибаться, но мне кажется что всем хорошо известный Spring Framework достиг своей вершины к версии 2.5 (когда внедрили активное использование аннотаций) и дальше идет по сути дела «полировка» — даже major-релиз 3.0 не сильно отличается от 2.5. Тоже самое можно сказать и про грядущий 3.1 — небольшие улучшения, фишечки — но не более того. Однако одна «фишечка» в 3.1 показалась мне особенно интересной — это кеширование.
image
Читать дальше →

Использование Deferred объектов в jQuery 1.5

Reading time6 min
Views37K
Deferred объекты появились в jQuery 1.5. Они позволяют отделить логику, которая зависит от результатов выполнения действия от самого действия. Для JavaScript Deferred объекты не новы, они уже были в MochiKit и Dojo, но с изменениями логики jQuery ajax от Julian Aubourg, внедрение Deferred объектов было неминуемо. С Deferred объектами несколько callback могут быть связаны с результатом задачи и любые из них могут быть привязаны к действию даже после начала его выполнения. Выполняемая задача может быть асинхронна, но не обязательно.

Deferred объекты теперь встроены в $.ajax() таким образом вы будете получать их автоматически. Обработчики теперь могут быть связаны с результатом следующим образом:
// $.get, ajax запрос, он асинхронный по умолчанию
var req = $.get('foo.htm')
   .success(function( response ){
      // что-нибудь делаем с ответом
   })
   .error(function(){
      // делаем что-нибудь если запрос провалился
   });
 
// это выполнится перед тем как $.get() будет выполнено
doSomethingAwesome();
 
// Делаем что-то ещё перед завершением запроса
req.success(function( response ){
   // делаем  что-то ещё с ответом
   // он будет выполнен когда запрос завершится, а если запрос завершен, то будет вызван немедленно
   // если запрос уже был выполнен
});

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

Как справляться с запланированной недоступностью веб-сайта

Reading time2 min
Views11K
Томер Хонен и Каспар Шимански, Команда качества поиска, Дублин

Нас часто спрашивают, может ли недоступность сайта во время сканирования Googlebot’ом плохо сказаться на видимостЬ сайта в результатах поиска Google. Иногда сайт бывает недоступен по техническим причинам, например когда он закрыт на обслуживание или редизайн. Подобные ситуации, не обозначенные должным способом, могут негативно повлиять на репутацию сайта. Мы не можем гарантировать индексирование или ранжирование, но существуют методы, которые позволяют справляться с запланированным простоем веб-сайта без отрицательного действия на его видимость в результатах поиска.

Например, при запросе страницы сайта вместо возврата кода статуса HTTP 404 (Не найдено) или показа ошибки на веб-странице с кодом статуса 200 (OK), лучше всего возвратить код статуса 503 (Сервис недоступен), который сообщает поисковику, что простой временный. Более того, это позволяет веб-мастерам предоставлять посетителям и ботам информацию о том, когда веб-сайт восстановит свою работу.

Если известны продолжительность простоя в секундах или предположительные дата и время завершения простоя, то они могут быть указаны в поле заголовка Retry-After, используемом гуглботом для определения подходящего момента переиндексации URL.

Ответ сервера кодом состояния 503 может быть хорошим решением и в других ситуациях. Хорошей практикой считается возвращать код состояния 503 «Сервис недоступен» для ошибок сервера, недоступности сайта, перерасхода трафика или страниц-заглушек (в том числе и «Сайт закрыт на реконструкцию»). На случай запланированных простоев сервера, таких как ремонт аппаратного обеспечения, стоит иметь отдельный сервер, который бы возвращал код 503.

Тем не менее, важно не относиться к коду статуса 503 как к постоянному решению проблемы: продолжительная выдача 503 может рассматриваться как знак, что сервер стал постоянно недоступен, в результате чего мы можем удалить URL из индекса Google.

header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Retry-After: Sat, 8 Oct 2011 18:27:00 GMT');

Так может выглядеть информация в header-e при использовании PHP, если вы настроите ответ 503 (Сервис недоступен).

Подобно тому, как можно сделать страницы 404 более полезными для пользователей, следует также правильно настроить сообщения 503, объясняющие пользователям текущую ситуацию и предоставляющие им информацию о том, когда сайт снова будет доступен.

Дополнительная информация о кодах состояния HTTP предоставлена на странице RFC 2616.

Двадцатка лучших веб-шрифтов

Reading time9 min
Views779K
Top 20 Fonts

Сейчас самое время повышать уровень дизайна своих работ с помощью веб-шрифтов


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

Свобода использования веб-шрифтов вне безопасного списка на всех ведущих ОС стала возможной, по большому счету, благодаря трем основным, почти одновременным технологическим факторам: широко распространенной поддержке правила @font-face в браузерах; появлению таких «шрифтохранилищ» как Typekit и Fontdeck; создание нового формата шрифтов — архивированного файла шрифта WOFF.

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

Information

Rating
Does not participate
Registered
Activity