Pull to refresh
10
0
grinka @grinka

User

Send message

Как подготовиться к собеседованию в Google и не пройти его. Дважды

Reading time15 min
Views129K


Заголовок статьи звучит как epic fail, но на самом деле все не так однозначно. Да и в общем и целом эта история закончилась весьма позитивно, хоть и не в Google. Но это уже тема для другой статьи. В этой же статье я расскажу о трех вещах: каким образом проходил мой процесс подготовки, каким образом проходили интервью в Google и почему же на мой взгляд все не так однозначно, как может показаться.
Кому интересно, прошу под кат.
Total votes 178: ↑174 and ↓4+170
Comments457

Коды Рида-Соломона. Часть 1 — теория простым языком

Reading time8 min
Views52K
Добрый день! Меня зовут Максим, в YADRO, кроме всего прочего, я занимаюсь разработкой подсистемы, отвечающей за надежное хранение данных. Готовлю небольшой цикл статей про коды Рида-Соломона — теоретическую основу, практическую реализацию, применяемые на практике программные и аппаратные оптимизации. На Хабре и в остальной сети есть хорошие статьи по вопросам этой области — но по ним сложно разобраться, если ты новичок в теме. В этой статье я попытаюсь дать понятное введение в коды Рида-Соломона, а в следующих выпусках напишу, как все это запрограммировать.



Читать дальше →
Total votes 50: ↑50 and ↓0+50
Comments31

Коды Рида-Соломона. Часть 2 — арифметика полей Галуа

Reading time7 min
Views25K
Здравствуйте, друзья! В прошлый раз мы с вами начали говорить о том, как коды Рида-Соломона помогают обеспечивать необходимый уровень надежности хранения данных. Сегодня остановимся немного подробнее на арифметике полей Галуа, которая используется в расчётах.



Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments5

Объясняем современный JavaScript динозавру

Reading time15 min
Views264K


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

Total votes 174: ↑171 and ↓3+168
Comments505

Знай сложности алгоритмов

Reading time2 min
Views992K
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Total votes 312: ↑296 and ↓16+280
Comments99

Негативный фидбек — эффективное SEO

Reading time3 min
Views1.4K
Интересную тему подняли журналисты NY Times. Они провели журналистское расследование насчёт интернет-магазина DecorMyEyes.com, который продаёт очки дизайнерских моделей, и обнаружили невероятную вещь. Оказывается, владельцы этого магазина делают всё возможное, чтобы люди оставляли максимальное количество негативных отзывов о магазине. В большом количестве таких отзывов несложно убедиться, просто запустив поиск по названию магазина в Google.

Казалось бы, зачем магазин создаёт себе негативный пиар? Зачем они специально грубят покупателям и выставляют им дополнительные счета за услуги, балансируя на грани закона? Зачем врать об отсутствии товара и нарушать сроки доставки? Ответ простой. За счёт большого количества входящих ссылок с различных форумов сайт магазина находится на первых местах в поисковой выдаче. Например, по запросу [Christian Audigier glasses] они на пятом месте, сразу после официального сайта Кристиана Одигера — известного французского дизайнера очков.
Читать дальше →
Total votes 68: ↑57 and ↓11+46
Comments57

Запоздалый фоторепортаж с Е3 expo 2010

Reading time4 min
Views783
DSC_0048

Удивлен, что на Хабре за 3 недели так и не появился нормальный обзор с E3. В основном отдельные новости на тему приставок и Portal 2. Видимо все потому, что нет ответственного, как в случае с обзорами новомодных железяк ;-) Что ж, придется мне отчитаться. Точнее отписаться.

Далее вас ждет небольшой обзор стендов, выставочный fun, и немного инсайда.

Смело кликайте на ссылку. Текста будет мало, а фотографии и интересной информации много. Фотографии кликабельны и почты все доступны в оригинальном разрешении.
Понеслась!
Total votes 122: ↑96 and ↓26+70
Comments62

10 юзабилити-преступлений, которых вы не должны совершать

Reading time2 min
Views4.4K
На стадии дизайна и разработки мы должны учитывать прописные истины и основные концепции для улучшения юзабилити сайта. В этой статье описываются классические, но непростительные ошибки в области веб-дизайна и способы их решения.

Преступление #1: В формах метки не связаны с полями ввода


crime1
Использование атрибута «for» позволит пользователям кликать по метке, для выбора соответствующего поля формы. Это особенно важно для чекбоксов и радиокнопок — увеличить область клика.
Читать дальше →
Total votes 325: ↑289 and ↓36+253
Comments160

Ключевые компоненты бесшумного компьютера. Новинки тихих корпусов, блоков питания и процессорных кулеров в 2009 году

Reading time5 min
Views31K
Antec_resize.jpgСегодня очередная статья из серии мини-обзоров. На этот раз речь пойдет об эргономике и о такой важной ее составляющей, как минимизация шума, издаваемого компьютером.

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

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

Начнем с корпусов (внутри 1.5 Мб картинок).
Читать дальше →
Total votes 81: ↑76 and ↓5+71
Comments59

Ускорение воспроизведения HD-видео

Reading time2 min
Views14K
Однажды на моём нетбуке (Acer Aspire One 110) я не смог нормально посмотреть видео по причине тормозов (аниме в 720p). После чего последовало разбирательство на тему, как же это можно исправить, результат которого читайте здесь.
Читать дальше →
Total votes 80: ↑74 and ↓6+68
Comments104

Бесплатная замена могучим Alcohol, Nero и другим программам для виртуальных дисков

Reading time1 min
Views10K
В российские школы 2 года назад прислали замечательный комплект полезнейших (большей частью) программ «Мультимедийная библиотека». Чего там только не было: и полезный известный софт типа Photoshop и Corel Draw, и куча учебно-тестирующего.

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

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

Вышли из положения просто: программа для виртуальных CD и все в порядке. Однако триальный период кончился, а проверяющие органы (прокуратура и минобразования, ведь с преступностью в стране покончено, да и в системе образования все идеально) не дремлют.
Читать дальше →
Total votes 71: ↑52 and ↓19+33
Comments108

Решение проблемы с Seagate Barracuda 7200.11, ES.2 и DiamondMax 22

Reading time2 min
Views170K
Seagate сегодня выложил прошивку, устраняющую недавние проблемы с жесткими дисками серии 7200.11, ES.2 и DiamondMax 22.

Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments139

Я давно хотел открыть свою страницу на vkontakte.ru

Reading time3 min
Views2.4K
и наконец я смогу это сделать! теоретически…

итак, основная идея — использовать данные моего профайла на сайте vkontakte.ru при формировании моей домашней страницы (она естественно не требует никакой аутентификации и видна всему интернету — в это и заключается смысл «открывания профайла»). сделать это я планирую используя API, который недавно открыли для разработки социальных сетей и клиентских приложений на основе vkontakte.ru (userapi.com).

зачем это мне? всё просто — у меня пока нет блога и домашней странички тоже нет, но иногда я пишу заметки vkontakte.ru и хочу шарить их ещё и с теми кто предпочитает блоги и xml-ленты (я и сам предпочитаю гугл reader) + с теми, кто ещё не знает меня и возможно и никогда не узнает, если гугл и яндес не будут знать… + в моём профиле достаточно информации, которую я не хочу скрывать, но и копипастить на свой сайт при изменении не хочу

+меня можно будет комментить с openid и вообще доздраствует open social :)

UPD
я зарегистрировал свой «проект» на userapi.com и получил id проекта — при авторизации необходимо указывать это идентификатор — это сделано для того чтобы я имел возможность авторизоваться используя только свой номер на сайте (он указывается при регистрации проекта).

дальше я попробовал авторизоваться как написано в документации и ввёл в строку браузера:
login.userapi.com/auth?login=force&site=[MY_PROJECT_ID]&email=[MY_EMAIL]&pass=[MY_PASSWORD]
сервер перенаправил меня сайт моего проекта #sid=сгенерированный идентификатор сессии
«странный механизм» — подумал я — «но работает и какая разница как я получу этот идентификатор»

затем я попробовал получить доступ к данны (из примеров в документации) — передаёшь идентификатор сессии и другие параметры запроса, а в ответ получаешь данные — работает :)

дальше я написал маленький код, чтобы чуть-чуть приблизиться к своей задумке:
from httplib import HTTPConnection
from urllib import urlencode
import re

site = [MY_PROJECT_ID]
email = [MY_EMAIL]
password = [MY_PASSWORD]

id = 389606

auth_conn = HTTPConnection("login.userapi.com")
auth_conn.request("GET", "/auth?"+urlencode({"login": "force",
"site":site,
"email": email,
"pass":password,}))
auth_resp = auth_conn.getresponse()
location = auth_resp.getheader("location")
auth_conn.close()

sid = re.compile("\w+$").search(location).group()

conn = HTTPConnection("userapi.com")
conn.request("GET", "/data?"+urlencode({"act": "activity",
"from": 0,
"to": 10,
"id": id,
"sid": sid,}))
resp = conn.getresponse()
data = resp.read()

print data

conn.close()

всё заработало и я решил перенести это дело на хостинг, чтобы быстренько сделать свой сайт на django :) и что я вижу? не могу подключиться к серверу!!! я смотрю в код, пробую wget, потом lynx — тоже самое! проверяю соединение с другими хостами — всё работает, копипую скрипт на другой хостинг — опять не работает :) прошу исполнить мой скрипт друга — работает… и тут я понимаю хостеры тупа забанены!!! зачем?

смотрим в документацию и размышляем… api написан с учетом того, чтобы работать через AJAX (в большинства запросов передаётся имя колбэка и «странная» авторизация сделана по тем же причинам). хостеров видимо забанели чтобы не возможности напрямую «сливать» данные и как защиту от нарушений пользовательского соглашения, предполагая что разработка проектов сторонних будет вестись таким образом что запросы к userapi.com будут идти напрямую от пользователя минуя сервер проекта т.е. сторонний проект по суте предоставлял бы только интерфейс…

по-моему, очень достаточно дурацкая защита… никто не мешает воровать пользовательские данные, а главное пароли с помощью того же AJAX (только вставлять код-воришку не всегда, чтобы втереться в доверие)… почему было не сделать авторизацию так как она реализована в openid?! странно…

в итоге, думаю, не проблема найти «чистенький» хостинг, но может это была дурацкая идея? и vkontakte.ru не мой выбор?
Total votes 51: ↑8 and ↓43-35
Comments7

3 лучших SEO совета 2008 года

Reading time3 min
Views2K

SEO совет #1: Сделайте Google Alerts вашим личным интернет шпионом.


Google Alerts это отличный способ позволить крупнейшей в мире поисковой системе стать вашим личным шпионом в интернете. Этот способ позволит поисковой оптимизации инсайдерской информации выйти на совершенно новый уровень.

Вот выдержка прямо из Google:
"Google Alerts оповещает вас по эл. почте об обновлении соответствующих результатов (веб, новости и т.д.) на основе выбора вашего запроса или темы."
Читать дальше →
Total votes 20: ↑12 and ↓8+4
Comments5

Разрабатываем свой Sidebar Gadget

Reading time7 min
Views21K
image
Как часто вы пользуетесь гаджетами боковой панели Windows? А хотелось бы написать свой? Не простой гаджет «Hello World», а действительно полезный, который помог бы оптимизировать затраты времени на определенный кусок работы. Тогда давайте рассмотрим случай, когда вам нужно мониторить нагрузку 10-20 серверов.
Читать дальше →
Total votes 83: ↑73 and ↓10+63
Comments35

Создаем мероприятия в Google Calendar голосом с мобильного телефона.

Reading time1 min
Views5.5K
Теперь в ситуациях, когда нет интернета под рукой, можно заносить новые мероприятие в Google Календарь простым звонком с телефона.

Как это работает:
Читать дальше →
Total votes 57: ↑52 and ↓5+47
Comments83

Десять маленьких программ, без которых неуютно жить

Reading time5 min
Views8.1K
Заменяем диспетчер задач
Управляем автозагрузкой и следим за состоянием системы
Устанавливаем переключение раскладки
Создаем виртуальные рабочие столы
Сохраняем все заметки в одно место, не задумываясь ни о чем, кроме текста
Ускоряем навигацию по винчестеру
Ставим плагины к проводнику Windows и радуемся
Легко и быстро удаляем папки-файлы «занятые другими процессами»
Копируем и перемещаем быстрее и качественнее
Перестаем парится с кодировками, заменив блокнот

и как мы это сделаем?
Total votes 180: ↑139 and ↓41+98
Comments306

Десять советов как написать (чуть) менее ужасное резюме

Reading time19 min
Views20K

«Цель: получить работу в IBM»
— пишет какой-то идиот-соискатель в Amazon.com.




ВНИМАНИЕ: это мое собственное, *персональное*, мнение, не Google, не Amazon или кого-либо еще. Я думаю вы обнаружите, что большинство рекрутеров, оценивающих анкеты в технических компаниях — особенно в технических компаниях, которые производят собственное программное обеспечение сами, такие как Yahoo!, Ebay, Amazon.com, Microsoft или Google — в целом, согласятся со многим из перечисленного. Но опытные рекрутеры расходятся во мнениях касательно многих мелких деталей, и, в конце-концов, это всего лишь мое собственное мнение. Эти советы не гарантируют получения Вами сколь-нибудь лучших результатов. Возможно, у вас будет другой опыт. Не используйте эти советы в ванной или стоя в луже. Не стучите по стеклу, это раздражает советы. Советы не кормить! И т.д.

Читать дальше →
Total votes 101: ↑81 and ↓20+61
Comments101

Information

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