Pull to refresh
42
0
Винокуров Роман @Chaos_Code

User

Send message

Как LinkedIn делает локализации на 19 языков за 1 ночь

Reading time5 min
Views24K
“Я хочу, чтобы после того, как программист добавил новую строчку в интерфейс, она сама перевелась на 19 языков и сама положила себя в SVN и была готова к релизу утром” — это мечта любого разработчика, вкусившего запретный плод локализации продукта на иностранные языки. В Alconost мы помогаем если не исполнить эту мечту, то хотя бы приблизиться к ней. Да, решение, похожее на описанное в статье существует не только для разработчиков LinkedIn, но и для простых смертных.

О том, как процесс построен в LinkedIn — в этой статье (внимание — Java).



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

Переводим с программистского на русский

Reading time6 min
Views37K
Как вы думаете, кто лучше всего знает продукт? PM, или может быть DM? Аналитик? Интерфейс-дизайнер? Ответ на все эти вопросы, скорее всего, будет «нет». По крайней мере, в случае большого проекта. Почему?

Попробуем рассмотреть подробнее:

Главный. Он описывает концепт. Говорит: «Хочу, чтобы тут было синим, а эта кнопка всё уменьшала. А вот здесь, чтобы как в Windows 8 | iOS | в том приложении | лучше, чем у конкурента (ненужное зачеркнуть). И, очевидно, оно должно уметь делать всё красным и подкладывать квадратики».
Читать дальше →

Mozilla официально выпустила Open Badges 1.0 — открытый стандарт сертификатов для онлайнового обучения

Reading time2 min
Views12K


Идея, лежащая в основе Open Badges настолько же проста, насколько масштабна — объединить любые учебные программы, курсы и уроки, доступные в интернете, с помощью открытого стандарта значков, которые выдаются участникам по окончании курса. Другими словами, Open Badges — это мини-дипломы стандартного образца, которые можно разместить у себя в профилях соцсетей и профессиональных сообществ, на персональном сайте или в резюме.

Выпускать значки может любая организация, значимость и «крутизна» каждого значка определяется лишь авторитетом того, кто его выдал. Это может быть и маленькая компания, и огромный университет. Сейчас в списке участников уже 600 организаций, среди которых Смитсоновский музей американского искусства, Департамент образования Нью-Йорка, университет Иллинойса. О своих планах присоединиться к инфраструктуре Open Badges уже заявили Microsoft, NASA, Pixar и другие.

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

Google выложила руководства для начинающих SEO-оптимизаторов

Reading time1 min
Views73K
В блоге для веб-мастеров инженеры Google подготовили и выложили два руководства разной степени сложности для тех, кто еще не знаком с базовыми методами оптимизации под поисковую машину Google.

Надо сразу сказать, что первое руководство действительно для новичков — профессионалы вряд ли обнаружат там нечто секретное и таинственное. Любопытно только то, что в Google не поленились и подготовили соответствующий одностраничный PDF-документ сразу в 13 языковых редакциях, включая и русский (английская версия). При этом документ (А4) выглядит визуально привлекательно и информативно, так что его можно распечатать и повесить в офисе, если вдруг возникнет необходимость в напоминании банальностей.

Второй документ более серьезного уровня и уже только на английском языке. Он довольно подробно и с примерами описывает различные «best practices» вроде создания уникальных заголовков веб-страниц, заполнения мета-тегов или улучшения структуры URL. Забрать документ можно отсюда.
Источник

Редактор цветовых схем для SublimeText 2

Reading time1 min
Views17K
В середине октября 2012 года Allen Bargi (aziz) обратил своё внимание на Angular.js и работу новых HTML5 API-интерфейсов для работы с файлами в Chrome. Эксперимент затянулся и разросся в замечательный проект — TMTheme Editor. Являясь on-line приложением, редактор TMTheme позволяет создавать и редактировать визуальные темы для популярного нынче SublimeText, так же поддерживается совместимый по темам Textmate и другие редакторы.

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

Чем может грозить точка в конце доменного имени

Reading time4 min
Views98K
Существует такое понятие, как корневой домен, соответственно, в конце каждого домена есть точка. Возможно, вы и не подозреваете, что ваш сайт доступен по доменному имени с точкой в конце (domain.zone.), так как браузеры позволяют обращаться к сайтам, как с точкой в конце домена, так и без неё.
Читать дальше →

Так что это за «грозная» точка на конце доменного имени?

Reading time3 min
Views47K
Так что это за «грозная» точка на конце доменного имени? — возник у некоторых вопрос, после недавнего поста.
Кто не знает и хочет узнать — добро пожаловать под хабракат — смахнём пыль с RFC четвертьвековой давности и проведём маленькое собственное расследование.
Читать дальше →

Более 500 000 пользователей Google Reader перешли на Feedly за два дня

Reading time1 min
Views54K
На сайте Feedly зарегистрировалось более 500 тыс. пользователей в последние 48 часов. Это абсолютный рекорд за всю историю развития сервиса. Владельцы портала с радостью принимают новых юзеров и приветствуют каждого.

Главными задачами Feedly на ближайшие 30 дней являются: 1) обеспечить бесперебойную работу сервиса; 2) прислушиваться к советам пришедших пользователей относительно новых функций; 3) добавлять новые функции каждую неделю. По крайней мере, такие задачи разработчики Feedly поставили перед собой. Чтобы обслужить возросшую аудиторию, пропускную способонсть каналов с хостинга уже увеличили в 10 раз.

Закрытие Google Reader приведёт к тому, что посещаемость многих сайтов упадёт 1 июля 2013 года, но у оставшихся пользователей появится более удобный и функциональный RSS-агрегатор.

Social-feed — социальный плагин jQuery

Reading time2 min
Views19K

Потребность

При разработке веб-приложений очень часто возникает необходимость отображения постов пользователя или сообщества из социальных сетей. У социальных сетей есть свои виджеты, которые подключаются через iframe, со своим внешним видом и стилем. Что если нам нужно отображать посты одновременно из нескольких социальных сетей с возможнстью изменения дизайна отображения? Если это пара twitter и facebook, то существует несколько плагинов, выполняющих эту задачу. Принимая во внимание, что популярность социальной сети Вконтакте на территории СНГ очень высока, то есть необходимость плагина поддерживающего и эту сеть.
Читать дальше →

Page Visibility API и побочный эффект предотрисовки страниц

Reading time1 min
Views5.1K

Сперва, небольшой эксперимент


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

Далее интересные скриншоты и подробности

intro.js — пошаговое руководство для веб-страницы

Reading time1 min
Views52K


Эта маленькая библиотека позволяет очень просто создать пошаговое введение для сайта или приложения. Достаточно добавить атрибуты data-intro и data-step с описанием и номером шага соответственно к нужным элементам страницы. Вот так:

<a href='http://google.com/' data-intro='Hello step one!' data-step='1'></a>
Читать дальше →

Нужна идея на миллион баксов? Придумай или укради ее!

Reading time4 min
Views54K


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

Тебе сейчас 20-25 и тебя прет от кучи идей чего можно сделать. Это классно. Я серьезно.Когда вы фонтанируете идеями — вы фартовый. Однако, как показывает практика сами идеи довольно мало стоят.
Читать дальше →

Почему стоит изучить Clojure?

Reading time17 min
Views150K

Что такое хороший язык программирования? Какими качествами и характеристиками он должен обладать? Ответ дать сложно. Вот одно из возможных определений: хороший ЯП должен хорошо решать возложенные на него задачи. Ведь ЯП — лишь инструмент в руках программиста. А инструмент обязан помогать нам в работе. В конце концов, это же и есть причина его создания. Разные ЯП стараются решать разные проблемы (с переменным успехом). Цель, которая ставилась при проектировании Clojure — сделать написанные нами программы простыми. И, как следствие, ускорить их создание, тестирование. А главное, уменьшить время на их понимание, изменение и сопровождение.
Читать дальше →

Безопасность приложения: это почти просто

Reading time18 min
Views39K
simple science

— Дай мне справку, что моя программа безопасна.

— Нет проблем! А что ты для этого делал?

— Э… Ну… Это… Ничего…

— А почему ты тогда думаешь, что она безопасна?

— Ну, ты проверь!

— Нет проблем! Все удовольствие будет стоить X0000 долларов.

— ?!

О статье


В этой статье я рассказываю о некоторых практиках создания безопасного программного обеспечения.

Первая ее часть посвящена безопасному программированию.

С одной стороны, методы безопасного программирования известны. Накоплен опыт их использования, написано много литературы.

С другой стороны, применяют их не очень часто. Для многих программистов и менеджеров проекта они остаются не очень понятной экзотикой.

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

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

Внимание! Статья большая и подразумевает внимательное прочтение.

Подтверждаю свою готовность внимательно прочитать многабукаф

Google намерен унифицировать все коммуникационные сервисы в один — Google Babble

Reading time1 min
Views24K

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

Ссылаясь на, как принято говорить в таких случаях, надежные источники, обозреватели geek.com утверждают, что Google Talk, Voice, Messenger, Hangout из Google+, Chat for Drive collaboration (к счастью, Gmail останется просто почтой) будут объединены в один сервис Google Babble, который будет унифицировать коммуникационные возможности их всех, и при этом будет работать на основных мобильных платформах, включая Blackberry и Windows Phone.

Вообще, волна слухов вокруг Google относительно политики своих сервисов довольно касается и ряда других служб. Вчера стало известно, что поисковый гигант, по всей видимости, намерен стать конкурентом Evernote, тайно выкатив на обозрение Google Keep. Также оказалось, что теперь Google Talk не принимает в контакт-лист запросы на добавление, отправленные с других Jabber-серверов, по поводу чего Фонд свободного программного обеспечения выразил определенное беспокойство даже с учётом того, что, возможно, эта блокировка вызвана борьбой со спамом.
Источник

Идеальная вакансия для разработчика. Как оценить?

Reading time3 min
Views24K
Не секрет, что спрос на разработчиков постоянно растет. Вместе с ним растут зарплаты и компании буквально «охотятся» на классных специалистов. Поэтому каждый более-менее стоящий разработчик постоянно получает множество предложений о смене работы, даже если он не стремится ее сменить. Все вакансии разные и тяжело понять какое предложение лучше, а какое хуже. Я поделюсь своей «магической формулой», которую я использую уже долгое время. Кому любопытно, прошу под кат.
Читать дальше →

Эмуляция хвостовой рекурсии в JavaScript

Reading time6 min
Views28K
Если кто-то ещё не знает, что такое хвостовая рекурсия, вот простой пример метода, складывающего в лоб натуральные числа от 1 до n (n≥0):
function add(n,acc) {
  if(n===0) return acc;
  return add(n-1,acc+n);
}

Изначально функция вызывается с параметром acc=0. В случае, если n не равно нулю, метод вызывает сам себя с другими параметрами и возвращает результат. Компилятор (или интерпретатор, или виртуальная машина) могут понять, что текущий вызов функции в стеке уже не нужен, стереть его и заменить следующим вызовом. Таким образом, рекурсия не приводит к разрастанию стека. Строго говоря, хвостовой вызов не обязан обращаться к текущей функции: вызов любой другой тоже может быть хвостовым. Главное условие: вызов функции и возврат её результата должны быть последними действиями в текущей функции. К примеру, в такой реализации метода хвостовой рекурсии нет, так как после вызова происходит ещё сложение:
function add(n) {
  if(n===0) return 0;
  return n+add(n-1);
}

По ряду причин хвостовая рекурсия в JavaScript не поддерживается (обсуждение на эту тему есть на StackOverflow). Поэтому вызов вроде add(100000,0) завершится исключением. На Хабре предпринимались попытки решить эту проблему через setTimeout, но это выглядит не очень честно и не очень красиво. Более изящное решение для языка Python было предложено с использованием «трамплина». Похожий подход для JavaScript рассмотрен здесь. Но мне захотелось, чтобы работало быстро и чтобы функцию можно было записать прямо как в примере выше. Посмотрим, что можно сделать.
Читать дальше →

За что HTML-верстальщики так не любят веб-дизайнеров

Reading time4 min
Views117K
За время своей работы верстальщиком, мне довелось иметь дело с кучей разных макетов как от новичков дизайна (или порой просто левых людей), так и до профессионалов. И за это время я успел набрать приличную выборку наиболее типичных багов в макетах, которых не в состоянии избежать даже маститые специалисты. Сразу оговорюсь — в некоторых организациях есть внутренние «требования к дизайн-макетам», и по идее, при несоответствии дизайна этим требованиям, он должен без вопросов отправляться на доработку, но реалии таковы, что зачастую проще самому внести нужные правки, чем гонять документ туда-сюда по трекеру. Но даже в этих «требованиях» упомянуты далеко не все очевидно возможные «косяки». Постараюсь привести наиболее популярные и универсальные (без личностной привязки). Да, кстати, все баги привожу под использование фотошопных psd — ну уж де-факто это стандарт в веб-макетах. Да и не попадались мне ещё макеты в векторе (и надо сказать, слава богу).
Читать дальше →

Почему Google думает, что пользователям понравится Google Currents вместо Google Reader?

Reading time3 min
Views41K
Достаточно слез пролито, петиций подписано, недобрых слов про «Гугл» сказано и альтернатив предложено после новости о скором закрытии Google Reader.



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

as a company we’re pouring all of our energy into fewer products. We think that kind of focus will make for a better user experience.


На чем же в Google сконцентрировали усилия?

WebKit для разработчиков

Reading time8 min
Views144K


Для многих из нас, разработчиков, WebKit — черный ящик. Мы бросаем в него HTML, CSS, JS и кучу изображений, и WebKit, как-то… магически, выдает нам веб-страницу, которая выглядит и работает хорошо.
Но на самом деле, как говорит мой коллега Илья Григорик:
Веб-кит не является черным ящиком. Это — белый ящик. И не просто белый, но и открытый ящик.
Так-что, давайте попробуем разобраться в некоторых вещах:

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity