Search
Write a publication
Pull to refresh
46
0.7
Send message

Не наживайтесь на ошибках клиентов

Reading time2 min
Views37K
Хочу поделиться двумя примерами того, как западные компании уважительно относятся к деньгам клиентов и не стараются их оставить себе в случае очевидных ошибок клиентов. Этого очень не хватает русским компаниям, особенно сотовым операторам, которые дошли уже до того, что при неправильном вводе USSD-команды показывают «анекдот» и списывают от 30 рублей.
Читать дальше →

Как молодым специалистам устроиться в IT-компанию

Reading time6 min
Views63K
image

Как-то раз коллеги из отдела HR i-Free обратились ко мне с просьбой написать небольшую статью для молодых специалистов, которые стремятся устроиться в IT-компанию. Причины, побудившие их это сделать в целом понятны, в компании основным нанимателем молодых специалистов является отдел под моим управлением, мы берем только что закончивших вуз ребят (а иногда и студентов последних курсов), и у нас они проходят некий курс «молодого бойца».
Естественно, я не претендую на объективность, а лишь хочу дать несколько советов для тех, кто хочет начать свой путь с работы в IT-компании. Статья выражает сугубо моё мнение о том, как нанимать молодого специалиста, и очень надеюсь, что кому-то из студентов старших курсов сей краткий опус поможет в будущей карьере.
В общем, тех, кому интересно, прошу под кат.
Подробности

Никогда не проверяйте e-mail адреса по стандартам RFC

Reading time7 min
Views185K
Множество сайтов требуют от пользователя ввода адреса электронной почты, и мы, как крутые и щепетильные разработчики, всегда стремимся проверять формат введенных адресов строго по стандартам RFC. Благодаря этому наши приложения и сайты проверяют формат e-mail корректно и не имеют проблем с юзабилити, а мы сладко спим, потому что уверены, что все работает как надо.
Ага, как бы не так!

Быстрый интерфейс: почему сервис должен летать?

Reading time3 min
Views33K
В рамках одного из моих проектов, я провел небольшое исследование — как медленный интерфейс влияет на поведение пользователя?

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

Эксперимент проводился довольно просто, по принципу A/B тестирования. Аудитория A работала с сервисом «быстро», так как они и работает. А у аудитории B при отдаче каждой страницы был сделан sleep на 700 миллисекунд.
Читать дальше →

013.jpg или Принцессы не какают

Reading time20 min
Views255K
Вот уже совсем скоро конец света, дорогие мои айтишнички. Чтобы вы не боялись закрывать сегодня глазки, я расскажу вам добрую сказочку. О том, что даже после самого тёмного кончика светика, после самого дремучего апокалипсика, когда даже электрончики откажутся строем ходить по проводкам, для вас, дорогие айтишнички найдётся работёнка… Принцессы? Принцессы будут. И драконы тоже. Какая ж сказка без принцесс и драконов? Так что не боимся, закрываем глазоньки и слушаем волшебную сказочку...
image
— Именем Князя Питерского, давайте сюда декларацию. Что везем? Откуда?
— Из Новосибирска. 256 мегабайт сертифицированных данных для Интернета Его Высокопревосходительства. Научные, метеорологические, новости, деловая и частная корреспонденция, — доложила я, зная, что таможня шутить не любит.
— Открывайте, посмотрим.
— Что, все 256 мегабайт смотреть будете?
Открывайте, разберемся...

Indie Cindy

Reading time5 min
Views17K
image
Далекое лето 2004 года, июнь. Я – проездом в Воронеже; из рук весь день не выпускается свежий выпуск журнала Game.EXE, а в память врезается случайно увиденная стойка с пиратскими дисками, сплошь заставленная коробками с Half-Life 2, к которой кто-то заботливо (и явно на скорую руку) нарисовал серую обложку, не забыв прилепить сверху старую добрую лямбду. Тогда я еще не знаю ни о том, что это всего лишь бета-версия, ни о том, что с этой игрой мы встретимся по-настоящему лишь в декабре… И совсем ничего не знаю о Steam, который сразу после релиза Half-Life 2 будут материть, кажется, все, кто только может – и не в последнюю очередь за то, что подключение к Интернету найдется далеко не у каждого, а код для только что купленной игры рискует быть уже сворованным кем-то прямо из коробки в магазине.


Пройдет десять лет. Их не переживут ни Game.EXE, ни, по большому счету, компакт-диски. А вот Steam… Steam преодолеет «пропасть», победит все детские болезни и станет большим. Сначала, он шаг за шагом станет платформой де-факто для распространения «больших» игр, а затем – еще и путевкой в будущее для инди-разработчиков – уже благодаря сервису Greenlight. Но не стал ли Steam Greenlight для инди их же могилой? Ведь всего лишь за первые четыре месяца 2014 года в Steam пропустили столько же игр, сколько их появилось в нем за весь 2013 год (если не верите, то вот вам забавный и пугающий график).

Про Half-Life 3 говорить пока бесполезно, — сейчас Valve и Гейба Ньюэлла лично интересует в первую очередь Steam, — а сама игра, по последним слухам, только-только тронулась и находится на стадии концепт-артов. Поэтому мы поговорим про Steam энд инди.
Читать дальше →

Взламываем D-Link DSP-W215 Smart Plug: Опять, снова, еще раз

Reading time4 min
Views25K
image

В предыдущих сериях:
  1. Взламываем D-Link DSP-W215 Smart Plug
  2. Взламываем D-Link DSP-W215 Smart Plug. Снова
  3. Взламываем D-Link DSP-W215 Smart Plug. Снова и опять


До сих пор, все найденные в DSP-W215 уязвимости могли быть выполнены только из LAN, ну, если вы не глупец и не открыли доступ к Smart Plug из интернета.
Типичным способом атаки устройств со встроенным веб-сервером, доступным только из внутренней сети, типа того, что у DSP-W215 — через CSRF. Проблема этого метода в том, что любой веб-браузер будет кодировать (urlencode) передаваемые данные, например, адрес возврата, но до этого момента мы использовали уязвимости, которые не декодируют (urldecode) наши данные (уязвимость в функции replace_special_char, которую мы эксплуатировали в предыдущей статье, декодирует только ограниченный набор ASCII-символов).

Бинарный файл my_cgi.cgi, который является основной уязвимой целью, содержит функцию-декодировщик «decode», которая декодирует POST-данные. Этой функции передается два аргумента: указатель на закодированные данные и указатель на буфер, где хранятся раскодированные данные:
void decode(char *encode_buf, char *decode_buf);


Эта функция просто проходит циклом по всем байтам в encode_buf и раскодирует или копирует их в decode_buf:
image
Читать дальше →

Многоязычный Badoo: «трудности перевода»

Reading time10 min
Views27K


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

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

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

Добавь газку: +200% производительности

Reading time6 min
Views20K
Привет, Хабр.

В прошлый раз я рассказывал тебе, как мы написали Raw конвертер на JavaScript, а ты сказал мне, что он работает медленно. Сегодня я хочу рассказать о том, как мы ускорили наш raw.pics.io почти в 3 раза. Я не буду постить простыни кода с описанием каждого шага, постараюсь рассказать в общем виде о подходах к оптимизации, которые мы использовали. Также я решил не писать о доступе к DOM, уменьшении количества HTTP-запросов, склеивании и минификации файлов, опциях сжатия на сервере и т.д. Все это техническая работа
Читать дальше →

История появления Амперки

Reading time18 min
Views72K

Хабраридерам, привет!

У блога нашей компании вскоре истекает оплаченный период. Мы определённо до его конца не успеем подготовить какой-нибудь интересный и небанальный материал о DIY-электронике. Поэтому, пользуясь случаем, расскажу лучше о том, как появилась Амперка, и как мы пришли к тому, что имеем сейчас и почему мы вечно ничего не успеваем.

Итак, если вам интересна история появления одного малого бизнеса, прошу под кат.

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

Ладар Левисон рассказал, как его заставили закрыть Lavabit

Reading time3 min
Views89K
Владелец защищённого сервиса электронной почты Lavabit Ладар Левисон наконец-то сообщил подробности судебного процесса, в результате которого почтовый сервис пришлось закрыть в августе прошлого года.

Lavabit — анонимный почтовый сервис, которым пользовался Эдвард Сноуден, находясь в Шереметьево летом прошлого года. Сервис поддерживал шифрование почты в браузере перед отправкой, так что архив хранился в надёжно зашифрованном виде. Левисон получил судебное предписание выдать ключи TLS, отказался выполнить распоряжение, уничтожил ключи и стёр файлы. Перед закрытием в Lavabit было зарегистрировано около 410 тыс. почтовых аккаунтов.

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

Как мы не заработали миллион на приложении для iPhone

Reading time5 min
Views61K

Эта статья о самых главных ошибках четырех backend разработчиков, которые решили заработать денег на приложении для iPhone не имея никакого опыта в разработке мобильных приложений и тем более их продвижении.

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

Ошибка #1 — Идея


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

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

[видео] Как поставить человека на место: 10 реальных вопросов про давление в переговорах

Reading time2 min
Views229K
Видео про 8 способов противостояния формуле нужды оказалось неожиданно популярным, набрав 8,000 просмотров за два дня. Мы решили продолжить тему.

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

Мы отобрали 10 самых любопытных, на наш взгляд, вопросов в этой теме и снова заперли в студии Дмитрия Коткина, руководителя Санкт-Петербургской школы переговорщиков ШиП и нашего хорошего друга, чтобы он рассказал, что конкретно делать:



10 реальных ситуаций, которые удалось осветить — под катом:

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

Типограф Муравьёва опубликован на GitHub

Reading time1 min
Views33K


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

Велком: https://github.com/emuravjev/mdash

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

Noisli: онлайн-генератор фоновых шумов, помогающих сконцентрироваться

Reading time1 min
Views182K


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

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

Насколько можно доверять социологическим исследованиям?

Reading time4 min
Views25K
СтатистикаПоводом написания этой статьи послужило это исследование, которое обсуждалось ранее.
С моим высшим техническим образованием и любовью к точным наукам и особенно к математике, я ценю и уважаю те теории, которые применимы в жизни и дают практическую пользу (вопреки распространенному мнению, что теория относительности отношения к повседневной жизни не имеет, стоит изучить теорию GPS-систем и стрельбу ракетами в масштабах целой планеты). Давайте с этой точки зрения посмотрим на такую часть статистики как социологические опросы. Сейчас они очень модны.
Постараемся посмотреть на это глазами далекого от формул человека.
Поговорим о математике без математики!

О начинающих разработчиках и принципах работы с ними

Reading time7 min
Views141K
image

За последние десять лет через меня прошло много начинающих разработчиков. Да и чего греха таить, я тоже когда-то был начинающим разработчиком. За это время я получил тысячи вопросов а-ля “как стать разработчиком”, а также просьб взять людей к себе на практику. К сожалению, даже под чутким руководством более опытных специалистов, далеко не каждому хватает сил и мотивации перейти на качественно новый уровень. Статистика — вещь упрямая: количество “пытающихся” и “достигающих успеха” распределяется согласно принципу Парето, т.е. 20/80, где из десяти человек максимум двоим удается пройти первоначальное испытание. Остальные отваливаются по дороге или процесс обучения у них растягивается на долгие годы. И все же, каким должен быть начинающих разработчик, какими навыками и знаниями он должен обладать? Об этом и пойдет речь в статье.

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

Выжать все соки или используем Raspberry pi на всю катушку

Reading time11 min
Views266K
Всем привет!

Долой унылые речи о том, что это мой первый пост и все такое. Пожалуй лучше я расскажу о том, как выжать все соки из маленькой малютки под названием Raspberry PI (далее RPI), ценой $ 35. Я уверен на 146,6% что здесь уже были посты подобного рода, и этот пост не претендует на твердую пять. Скорее это просто вступительное слово о том: «Как я занял себя делом на пару унылых вечеров». Собственно мы получим в итоге Raspberry PI который можно использовать:
  1. как домашний web-сервер (если ты какой-нибудь PHP-разработчик, и тебе не чуждо веселье);
  2. как мультимедийную приставку с популярным XBMC Media Center (или супер-пупер-крутую-шняжку к телевизору за скромные 1800$);
  3. и как ночную торрент качалку, с web-интерфейсом (для ленивых);

Для тех кому стало интересно прошу под кат (Внимание! Трафик).
Читать дальше →

Два проекта массового онлайн-сотрудничества

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

Начну я пожалуй с рассказа о проекте CAPTCHA. Этот проект знаком не только специалистам IT, но и каждому пользователю интернета. Он всех раздражает, но без него наша жизнь была бы ужасна. Кол-во спама было бы в разы больше. Но именно такой раздражающий всех проект как CAPTCHA подтолкнул Луиса фон Ана из университета Карнеги — Меллон к созданию проекта reCAPTCHA. Этот проект также нес в себе функцию защиты от ботов. Добавилась одна составляющая, невидимая для обычных пользователей — помощь в оцифровке текстов книг. Теперь при вводе текста с картинки, пользователю предлагается ввести два слова. Первое уже известно системе, а второе слово системе неизвестно и она не способна его распознать программой распознавания текста. Второе слово берется из источника, требующего распознавания (например, книги). Проверка и прохождение «капчи» осуществляется по тому слову, которое известно системе. Неизвестное слово вводить необязательно, так как результат закрепляется на основе статистики, а не ответа одного пользователя, что позволяет выбрать верный вариант. В сентябре 2009 года reCAPTCHA была приобретена компанией Google. А весной 2012 года Google запустил эксперимент по распознаванию изображений из Google Maps и Google Street View с помощью сервиса reCAPTCHA.

Продолжение читайте под катом.
Читать дальше →

Обращение не ASCII-строки

Reading time3 min
Views18K
Если вы знаете, что такое ICU, то, вероятно, вы не узнаете из этого поста ничего нового.

    Порой приходится слышать от товарищей, что на собеседовании их просили написать код, который бы обращал строку. И даже в Cracking the Coding Interview это второй вопрос в тестах. Однако, правильное, с моей точки зрения, решение выходит далеко за рамки библиотечного вызова или одного цикла while.
Читать дальше →

Information

Rating
2,722-nd
Location
Niedersachsen, Германия
Registered
Activity