Привет Хабр! Давно не писал. Да это и понятно. Защита диссертации, получение PhD, а сейчас ещё и активный поиск работы — всё это занимает очень много драгоценного времени. Но разговор сегодня пойдёт не о том. Хотелось бы поделиться с Вами, уважаемые хабралюди, ресурсами и описанием процесса подготовки к телефонному техническому интервью с Гуглом, первый технический этап которого я уже прошёл, и теперь готовлюсь ко второму, который будет в пятницу.
Илья @jvIlya
Пользователь
Регистрируем торговую марку в США
3 мин
32KТуториал
Вопрос этот, прямо скажем, волнует не каждого. Но если вы планируете серьёзно выходить на рынок США, то этот вопрос обязательно возникнет. Минусов или проблем от регистрации торговой марки нет, но это стоит некоторых денег. Зато после регистрации, можно будет писать на сайте и в рекламной продукции — МояМарка ®. Это добавит вашему продукту/услуге некоторой солидности.
Ранее на хабре был топик по патентам. Я же раскажу о регистрации торговой марки, как всегда на своём опыте.
+88
Вкратце о лицензиях Open Source
6 мин
13KМногие разработчики и дизайнеры хотят опубликовать свои работы в виде открытых проектов. Они хотят иметь возможность делиться своим кодом. Сообщество open-source с каждым днём всё прочнее стоит на ногах. Открытые программы существуют для любых видов задач, каких вы только можете себе вообразить. А многие веб-разработчики используют свободное ПО как фундамент для своей работы (WordPress, Drupal и многие другие CMS открыты, свободны и бесплатны).
Но ситуация такова, что лицензий open-source существует великое множество, и подчас нелегко понять что на самом деле они означают. Какие права получают разработчики, когда выбирают ту или иную открытую лицензию? Попробуем хотя бы в общих чертах разобраться.
Но ситуация такова, что лицензий open-source существует великое множество, и подчас нелегко понять что на самом деле они означают. Какие права получают разработчики, когда выбирают ту или иную открытую лицензию? Попробуем хотя бы в общих чертах разобраться.
+42
интересные задачи на собеседовании
1 мин
3.8Kпривет. был на собеседовании в одной известной компании и решал 4 задачи на логику, которые и хочу здесь опубликовать. не знаю, насколько этично писать название конторы, хотя контора слишком известная, чтобы ее называть :) )
задачи такие:
1. На языке 'Гуси' одного африканского племени словами записаны следующие числа. Язык — настоящий, реально действующий.
57 emerongo etano na itano na ibere
82 emerongo etano na etato na ibere
230 amagana abere na emerongo etato
308 amagana atato na itano na itato
705 amagana atano na abere na itano
Напишите на этом языке 28 и 837.
2. Из шахматной доски 8x8 клеточек вырезали нижнюю левую и верхнюю правую клеточки. Можно ли покрыть эту шахматную доску (с учетом вырезов) паркетом размером 2x1 клеточку. Паркетины не могут перекрывать друг друга и выступать за пределы шахматной доски. Ответ нужно ясно доказать.
3. Можно ли заказать набор из семи таких гирь, чтобы ими можно было взвесить любой слиток золота весом от 1 грамма до 1 килограмма? Слиток золота весит целое число грамм, гири можно класть на обе чаши весов.
(примечание мое: текст не дословный, но смысл передал я думаю ): т.е. сколько бы ни весил слиток золота в пределах от 1 до 1000г, нужно, чтобы с помощью этого набора гирь можно было узнать его точный вес)
4. У человека есть цепь из семи последовательных звеньев, и он хочет заселиться в гостиницу на неделю. Хозяин гостиницы требует плату в размере 1 кольцо из цепи за 1 день, но при условии, что каждый день у хозяина должно быть столько колец, сколько клиент прожил дней в гостинице. Может ли человек заселиться в гостиницу, если он согласен сделать только один разрез в цепи колец?
на все — 1 час.
задачи такие:
1. На языке 'Гуси' одного африканского племени словами записаны следующие числа. Язык — настоящий, реально действующий.
57 emerongo etano na itano na ibere
82 emerongo etano na etato na ibere
230 amagana abere na emerongo etato
308 amagana atato na itano na itato
705 amagana atano na abere na itano
Напишите на этом языке 28 и 837.
2. Из шахматной доски 8x8 клеточек вырезали нижнюю левую и верхнюю правую клеточки. Можно ли покрыть эту шахматную доску (с учетом вырезов) паркетом размером 2x1 клеточку. Паркетины не могут перекрывать друг друга и выступать за пределы шахматной доски. Ответ нужно ясно доказать.
3. Можно ли заказать набор из семи таких гирь, чтобы ими можно было взвесить любой слиток золота весом от 1 грамма до 1 килограмма? Слиток золота весит целое число грамм, гири можно класть на обе чаши весов.
(примечание мое: текст не дословный, но смысл передал я думаю ): т.е. сколько бы ни весил слиток золота в пределах от 1 до 1000г, нужно, чтобы с помощью этого набора гирь можно было узнать его точный вес)
4. У человека есть цепь из семи последовательных звеньев, и он хочет заселиться в гостиницу на неделю. Хозяин гостиницы требует плату в размере 1 кольцо из цепи за 1 день, но при условии, что каждый день у хозяина должно быть столько колец, сколько клиент прожил дней в гостинице. Может ли человек заселиться в гостиницу, если он согласен сделать только один разрез в цепи колец?
на все — 1 час.
+19
Советы по конфиденциальности в Живой ленте Google
1 мин
887Поскольку стали возникать вопросы о проблемах конфиденциальности Живой ленты (Google Buzz), вот краткая инструкция на этот счет.
1. Первым делом закройте от публичного доступа список своих подписок и подписчиков. Это делается в личном аккаунте (http://www.google.com/profiles/me/editprofile?edit=t#about), галочка «Отображать список моих подписок и подписчиков». По умолчанию эта галочка включена, что позволяет любому желающему увидеть ваш список контактов — теоретически это может быть вся ваша адресная книга. Снимите эту галочку.
2. Отпишитесь от всех малознакомых личностей, от кого вы не хотите получать обновления. Для этого зайдите в «Подписки» (не «Подписчики»!) и нажмите «Удалить» напротив таких людей.
3. Чтобы ваши обновления не могли читать те, кого вы не хотите видеть в своей аудитории, есть два способа. Первый, наиболее брутальный: просто заблокируйте неугодных подписчиков. Для этого зайдите в «Подписчики» (не «Подписки»!) и нажмите «Удалить» напротив таких людей. Второй способ более грамотный — распределить контакты по группам («Друзья», «Коллеги», «Семья», можете создать другие группы). Это делается в разделе «Контакты» Gmail. Затем, когда будете ставить обновление, задайте ему ограниченный доступ и пометьте галочкой те группы, которые смогут его увидеть. Контакты из неотмеченных групп это обновление не увидят.
Обновление. Оказывается, первый пункт можно выполнить проще. Внизу диалога «Подписчики» есть галочка «Показывать в моём профиле списки пользователей, подписчиком которых я являюсь, и пользователей, которые являются моими подписчиками». Снимите её и нажмите «Готово».
1. Первым делом закройте от публичного доступа список своих подписок и подписчиков. Это делается в личном аккаунте (http://www.google.com/profiles/me/editprofile?edit=t#about), галочка «Отображать список моих подписок и подписчиков». По умолчанию эта галочка включена, что позволяет любому желающему увидеть ваш список контактов — теоретически это может быть вся ваша адресная книга. Снимите эту галочку.
2. Отпишитесь от всех малознакомых личностей, от кого вы не хотите получать обновления. Для этого зайдите в «Подписки» (не «Подписчики»!) и нажмите «Удалить» напротив таких людей.
3. Чтобы ваши обновления не могли читать те, кого вы не хотите видеть в своей аудитории, есть два способа. Первый, наиболее брутальный: просто заблокируйте неугодных подписчиков. Для этого зайдите в «Подписчики» (не «Подписки»!) и нажмите «Удалить» напротив таких людей. Второй способ более грамотный — распределить контакты по группам («Друзья», «Коллеги», «Семья», можете создать другие группы). Это делается в разделе «Контакты» Gmail. Затем, когда будете ставить обновление, задайте ему ограниченный доступ и пометьте галочкой те группы, которые смогут его увидеть. Контакты из неотмеченных групп это обновление не увидят.
Обновление. Оказывается, первый пункт можно выполнить проще. Внизу диалога «Подписчики» есть галочка «Показывать в моём профиле списки пользователей, подписчиком которых я являюсь, и пользователей, которые являются моими подписчиками». Снимите её и нажмите «Готово».
+54
Горькая правда о ведении корпоративных блогов
8 мин
1.3KГорькая правда о ведении корпоративных блогов
Многие компании ведут корпоративные блоги, копируя туда пресс-релизы, удаляют комментарии или вовсе запрещают комментировать; и им кажется, что они всё делают правильно, ведь посетители приходят и, наверное, читают. Но на самом деле не всё так просто. Давно наткнулся на интересную статью Поля Боага «10 Harsh Truths About Corporate Blogging» — статья полностью выражает моё мнение по вопросу корпоративных блогов. Решил перевести, и вот буквально вчера мы её перевели, чем спешу с вами поделиться.
+34
Удержание баланса между функциональностью и совместимостью при разработке приложения
22 мин
5KПеревод
Разработчики приложений для Android, ориентирующиеся при разработке на все вышедшие устройства, наверняка знакомы с этой схемой:
На 1 июля 2010 года это было статистикой запущенных версий Android. С выходом новых версий Android разработчики стали задумываться: добавить в приложение новые функции, предоставленные новой версией, либо сделать его доступным на как можно большем количестве устройств.
Опытные разработчики уже удостоверились, что эти два варианта являются взаимоисключающими, и сохранение баланса между ними может быть болезненным. В этой статье я покажу вам, что это не так.
+57
Многопоточность — как средство повышения эффективности
10 мин
9.3KПеревод
Хорошей практикой в создании быстро реагирующего приложения является уверенность, что ваш пользовательский интерфейс требует минимального времени для обработки. Каждое потенциально долгое действие, которое может повесить Ваше приложение, нужно вывести в отдельный поток. Типичными примерами таких действий являются сетевые операции, которые несут в себе непредсказуемые задержки. Пользователи могут мириться с небольшими паузами, особенно, если вы информируете их о прогрессе, а вот застывшее на месте приложение не дает им выбора, кроме как закрыть его.
В этом уроке мы создадим загрузчик картинок, который иллюстрирует данную ситуацию. Мы будем заполнять ListView пиктограммами изображений, загруженных из сети. Созданный асинхронный процесс, загружающий изображения в фоновом режиме, будет ускорять наше приложение.
В этом уроке мы создадим загрузчик картинок, который иллюстрирует данную ситуацию. Мы будем заполнять ListView пиктограммами изображений, загруженных из сети. Созданный асинхронный процесс, загружающий изображения в фоновом режиме, будет ускорять наше приложение.
+34
Разработка под Android, грабли большие и не очень
4 мин
47KНиже я попробую описать ряд неприятных особенностей с которыми может столкнуться разработчик для платформы Android. Не все они являются особенностью именно операционной системы Android, но так или иначе шансы встретиться с ними есть.
+91
Преемник Blapkmarket'а — Warket
2 мин
3.2KПо примеру Apple, Google решила встроить в Android Market и не прогадала, ведь всякому нравится, когда не приходится искать свежий софт, бегая как бешеная собака по сайтам произодителям, как это делает большинство пользователей к примеру WM или Symbian. Однако не ясно по каким причинам Google, одними почитаемый, другими презираемый, а третьими используемый, отказал России и некоторому количеству стран в возможносит купить приложения за деньги, оставив в списке только бесплатные приложения.
+40
Разработка приложений под электронную книгу Barnes&Noble Nook
9 мин
3.4KВведение
Недавно мы (mynook.ru, первый пост, второй пост) открыли свой профиль на reformal.ru, где нас начали спрашивать как самому писать приложения под нук, а так же просили выложить исходники FBReader'а.
Все исходники вы теперь можете найти на гуглокоде, а вот насчет первого я постараюсь сейчас рассказать.
Большое спасибо отличному дизайнеру nilov за то что помог мне оформить картинками этот пост, за то, как он хорошо передизайнил иконки и за непосредственно перевод Nook'а.
На кого расчитано
Я предполагаю, что человек, который будет читать дальше знает азы разработки под андроид (если быть точнее, то под 1.5) и соответственно прошу не задавать вопросов про азы андроида и уж тем более не обсуждать то, как купить нук в россии/украине/etc…
+63
Разработка и модификация прошивки для Android телефонов. Часть 2
9 мин
65KВ первой части мы научились перепаковывать официальную прошивку из формата RUU в формат пакета обновлений, что дало нам возможность использовать созданную нами прошивку, не опасаясь затирания модифицированного раздела восстановления (recovery rom). И тем временем, пока HTC воюет с хорошими ресурсами, мы продолжим изучать и улучшать прошивку.
В предыдущей части, хоть мы и создали прошивку, которая загружается и работает как часы, мы бы хотели расширить базовый функционал оной. Одним из самых востребованных расширений является поддержка работы с правами суперпользователя (root). Также сюда можно отнести интегрирование busybox. Кроме того, мы научимся запускать произвольные скрипты при старте системы и адаптируем ramdisk под свои нужды.
busybox — это набор консольных unix утилит, ориентированный на малый размер и производительность, что так актуально для мобильных систем. Вместе с системой android поставляется свой набор утилит — toolbox, который предоставляет минимально необходимых функционал для системы, и как следствие более простой в количественном и функциональном плане. Наличие busybox в системе, с одной стороны, позволит нам, как разработчикам, чувствовать себя более комфортно при удаленной работе на устройстве, с другой, позволит писать сложные скрипты, и, например, реализовать механизм запуска собственных скриптов при загрузке, используя run-parts. Также стоит учитывать, что для некоторых android приложений (особенно те, которые используют root) наличие busybox — обязательно.
В предыдущей части, хоть мы и создали прошивку, которая загружается и работает как часы, мы бы хотели расширить базовый функционал оной. Одним из самых востребованных расширений является поддержка работы с правами суперпользователя (root). Также сюда можно отнести интегрирование busybox. Кроме того, мы научимся запускать произвольные скрипты при старте системы и адаптируем ramdisk под свои нужды.
Busybox
busybox — это набор консольных unix утилит, ориентированный на малый размер и производительность, что так актуально для мобильных систем. Вместе с системой android поставляется свой набор утилит — toolbox, который предоставляет минимально необходимых функционал для системы, и как следствие более простой в количественном и функциональном плане. Наличие busybox в системе, с одной стороны, позволит нам, как разработчикам, чувствовать себя более комфортно при удаленной работе на устройстве, с другой, позволит писать сложные скрипты, и, например, реализовать механизм запуска собственных скриптов при загрузке, используя run-parts. Также стоит учитывать, что для некоторых android приложений (особенно те, которые используют root) наличие busybox — обязательно.
+48
Монетизация Android приложения — работа над ошибками
2 мин
5.7KВсем привет!
Видел тут на хабре статейки об успешной монетизации android приложения (через поиск легко найдете). Вот решил поделиться своим опытом, скорее отрицательным, чем успешным.
Сильно на идее не заморачивался. Выбрал, как мне казалось достаточно нужную тему — учет карманных расходов. Название приложению дал вполне логичное — Cashlogger.
Исследовал данное направление и посмотрел, что предлагают конкуренты — понял. Нужно делать удобный интерфейс, чтобы пользователю не приходилось бегать из в стороны в сторону для записи расходов. То есть, все должно быть под рукой и занимать минимальное время для создания записи. Плюс ко всему, сделанные записи должны быть наглядными, чтобы пользователь мог легко проанализировать на что ушли деньги. Еще один важный критерий — это привлекательный интерфейс пользователя. Вот, что должно было принести успех компании.
На реализацию убил достаточно много времени. Чуть больше 2-х месяцев и это при учете 8 часов в день. Почему так долго? Много ненужной возни было из-за не знания платформы. Много вещей приходилось переделывать, иногда даже больше чем 2 раза. Столкнулся с 2-мя сложными проблемами:
1. Не знал как реализовать показ только месяца и года;
2. Графики (отчеты) в ScrollView не отрисовывались, если графики выходили за границы экрана;
По 1-му пункту пришлось написать свой компонент (см. результат на картинке). Хотя, позже нашел как сделали тоже самое со стандартными компонентами, но я уже не стал узнавать как.
Видел тут на хабре статейки об успешной монетизации android приложения (через поиск легко найдете). Вот решил поделиться своим опытом, скорее отрицательным, чем успешным.
Идея приложения
Сильно на идее не заморачивался. Выбрал, как мне казалось достаточно нужную тему — учет карманных расходов. Название приложению дал вполне логичное — Cashlogger.
Исследовал данное направление и посмотрел, что предлагают конкуренты — понял. Нужно делать удобный интерфейс, чтобы пользователю не приходилось бегать из в стороны в сторону для записи расходов. То есть, все должно быть под рукой и занимать минимальное время для создания записи. Плюс ко всему, сделанные записи должны быть наглядными, чтобы пользователь мог легко проанализировать на что ушли деньги. Еще один важный критерий — это привлекательный интерфейс пользователя. Вот, что должно было принести успех компании.
Реализация
На реализацию убил достаточно много времени. Чуть больше 2-х месяцев и это при учете 8 часов в день. Почему так долго? Много ненужной возни было из-за не знания платформы. Много вещей приходилось переделывать, иногда даже больше чем 2 раза. Столкнулся с 2-мя сложными проблемами:
1. Не знал как реализовать показ только месяца и года;
2. Графики (отчеты) в ScrollView не отрисовывались, если графики выходили за границы экрана;
По 1-му пункту пришлось написать свой компонент (см. результат на картинке). Хотя, позже нашел как сделали тоже самое со стандартными компонентами, но я уже не стал узнавать как.
+30
Пишем виджет ХабраКарма ex-CarmaWidget для Android
17 мин
32KВчера я таки обновил CarmaWidget, виджет, который отображает вашу карму на рабочем столе смартфона. Сегодня я расскажу о том, как написать виджет.
Принцип таков:
Принцип таков:
- Класс — настройки для виджета, который запускается при добавлении последнего на рабочий стол.
- Класс — провайдер информации для виджета, в котором живут все таймеры.
- База данных — для хранения информации о пользователе.
- Два layout'а — для виджета и настройщика.
+37
Как достичь профессионального вида с помощью цвета
9 мин
11KПеревод
Что заставляет дизайн выглядеть скоординированным, спланированным и профессиональным? Ответ: 'цвет'.
Далеко не каждый проект нуждается в использовании мягкого корпоративного синего цвета для того, чтобы выглядеть профессионально. Планирование цвета означает создание структуры, которая бы описывала, какие использовать цвета и как их использовать. Цвет — самый неподдающийся элемент дизайна. «Хороший» цвет жестко связан с такими неуловимыми вещами как личный вкус и интуиция, и, в то же время, с технической позиции с калибровкой монитора и контрастом.
Но цвет просто необходим для контента. Если Вы уделите вебсайту достаточно времени для его совершенства, то читатели вероятно уделят достаточно времени его просмотру. Хороший выбор цвета сделает это возможным.
В этой статье мы будем делать обзор некоторых методик, чтобы достигнуть красивого сочетания цвета для Ваших проектов в сети.
+140
Плюсы и минусы лицензий открытого ПО
5 мин
35KСвободное программное обеспечение — широкий спектр программных решений, в которых права пользователя («свободы») на неограниченные установку, запуск, а также свободное использование, изучение, распространение и изменение (совершенствование) программ защищены юридически авторскими правами при помощи свободных лицензий.
Характеристики лицензий:
1. Apache Software License
2. Лицензия BSD
3. GNU General Public License
4. Лицензии MIT
5. Mozilla Public License
6. Консорциум Всемирной паутины
Характеристики лицензий:
1. Apache Software License
2. Лицензия BSD
3. GNU General Public License
4. Лицензии MIT
5. Mozilla Public License
6. Консорциум Всемирной паутины
+63
Tips and Tricks по программированию на Android
5 мин
7.2KЛетом друг подкинул пару заказов по разработке для Android. Первое это streaming проигрыватель видео для одного французского телевидения, второе — простенькая игрушка.
Во время разработки (мой первый опыт разработки на Android и на Java), я уяснил несколько правил, которые нужно соблюдать для корректной и устойчивой работы программ, которыми хочу поделится…
+59
Как я нанимаю программистов
4 мин
10KПеревод
Есть три вопроса, ответ на которые надо знать, когда нанимаешь на работу программиста:
1) Он умный?
2) Способен ли он выполнять работу?
3) Смогу ли я с ним работать?
Кто-то умный но не способный выполнять работу может быть хорошим другом, но не сотрудником. Можно обсудить с ним какие-то проблемы, пока он прохлаждается на своей собственной работе.
Тот, кто способен выполнять работу но не умён – неэффективен. Неумные люди выполняют работу путём грубой силы. Работа с такими людьми движется медленно и обычно раздражает.
С тем, с кем я не смогу работать – я не смогу работать.
1) Он умный?
2) Способен ли он выполнять работу?
3) Смогу ли я с ним работать?
Кто-то умный но не способный выполнять работу может быть хорошим другом, но не сотрудником. Можно обсудить с ним какие-то проблемы, пока он прохлаждается на своей собственной работе.
Тот, кто способен выполнять работу но не умён – неэффективен. Неумные люди выполняют работу путём грубой силы. Работа с такими людьми движется медленно и обычно раздражает.
С тем, с кем я не смогу работать – я не смогу работать.
Под катом продолжение статьи Аарона Шварца. Я бы предпочёл чтобы меня собеседовали таким образом, чем быть изучаемым девочкой-сотрудницей ОК, которая не отличает http от mp3.
+88
Руководство для дизайнера по DPI
27 мин
321KЭто руководство — начальный материал о кросс-DPI и кроссплатформенном дизайне для начинающих и средних дизайнеров, желающих узнать о нем с самого начала или получить больше знаний. Без сложных математических и непонятных диаграмм, только непосредственные объяснения, упорядоченные в небольших разделах, для понимания и применения их непосредственно к вашей дизайнерской работе.
Автор — Sebastien Gabriel.
Я не знаю всего, так что, если по вашему мнению я где то ошибаюсь или вам нужно уточнить что-то, либо у вас есть предложения или вопросы для улучшения данного руководства, отправьте письмо (на англ) на sgabriel.contact@gmail.com. Вы также можете найти на меня Twitter, G+ или Facebook.
+84
Быстрое создание графических ресурсов от mdpi до xxhdpi
1 мин
18KЧасто ли вам приходилось изменять размер графики для разных разрешений устройств. В моем случае это происходило часто, и для этого я нашел решение. Подкатом видео как это делать.
+6
Информация
- В рейтинге
- Не участвует
- Откуда
- Россия
- Зарегистрирован
- Активность