Маленькое предисловие - достаточно давно запланировал обновить себе телефон, и даже в середине августа сделал к этому шаг - заказал из Гонконга. Но спасибо нашей почте "Почте России", во время растоможки телефон просто напросто украли, отправив обратно пустую коробку. Продавец говорит у него это уже пятая кража за последние 2 месяца из России.
Я очень долго выбирал - остановился на двух моделях - Sony Xperia L & Galaxy S3 mini. По железу они оба примерно одинаковы, но у сони, к сожалению, экран 4.3", а я очень ненавижу большие экраны. Решающим было то, что в SGS3mini amoled экран - как следствие плохое качество, отсутствие белого цвета, а так же классный дизайн от Сони - визуально Самсунг заметно проигрывает.
Quick notes
Quickie posts when I’m lazy
livemocha: позор
Я на протяжении четырёх лет пользовался с переменным успехом когда-то замечательным сервисом, со смешной транслитерацией на русский: <a href=\"http://livemocha.com/\">livemocha.com. Это была социальная сеть для изучения языка - носители языка выполняли задания, созданные изучаемого носителями языка и на оборот. Получается такого сообщество, в котором люди друг друга учили, проверяя задания, давая комментарии.
Было несколько типов заданий:
- созданные специалистами livemocha - на изучение слов, фраз, проверяется автоматически сайтом
- текстовые и голосовые - носители языка проверяют выполненные вами задания, давая оценку и комментарии
- собственные - некоторые носители языка создавали тексты(стихи, рассказы) которые нужно было озвучить, прочитать, в некоторых подставить свои слова или фразы, или дать развернутый ответ. Опять же проверяли носители языка.
nodejs: Отправка файла REST-запросом
Отправка файла и полей с данными как REST запрос из nodejs сервера на coffeescript
По началу кажется простой задачей - на stackoverflow активно рекомендуют модуль request, он правда классный. Гнётся во все стороны.. но..
- На сайте есть пример как отправить файл, но не бинарный, а текстовый. И почему то если натравить запрос с таким "файлом" опять же ноде(другому серверу) он не видится как файл
- Гуглить любые проблемы связанные с модулем крайне затруднительно - автор решил не задумываться и дал незамысловатое название, благодаря чему гуглится все, что угодно, только не то нужно.
Текущие проекты
В бложик пишу не часто, а если и пишу - обычно рефлексирую на определённые тематики или посвящаю посты решению конкретных технических проблем.
В действительности эти посты являются отголосками моей повседневной деятельности - работой над стартапами eZWay и Loocker, значительно реже - по фрилансу. Причем пишу не самое интересное или актуальное, а по настроению и остаточному впечатлению после решения задачи.
На момент поста оба стартапа запущенны, есть пользователи. Находимся в стадии проверки гипотиз, ощупывания рынка.
Каждый проект заслуживает не то, чтобы отдельного поста - скорее блога. Начнем с краткого описания :)
ruX mind: о подкастах
В начале 2012 года я открыл для себя удивительный формат - подкасты. Не сказать, чтоб я про это услышал впервые, но все руки не доходили попробовать. Казалось, что когда идешь по улице или едешь в транспорте - может быть только музыка и иногда радио (в основном bfm).
Знакомый посоветовал начать слушать с Радио-Т. Это было настоящим открытием.
Информация по дороге
Подкасты сами по себе так или иначе существовали и раньше, в виде записанных кусков радиопрограмм и "голосовых заметок", абсолютно ничего нового. Просто включаешь запись - и слушаешь, как обычное радио.
Coursera: Model Thinking
Два месяца назад я взял свой первый класс на курсере: model thinking.
Model Thinking организован University of Michigan. Лектор - проф. Scott E. Page
Курс направлен на то, чтоб лучше понимать мир вокруг, размышлять более открыто, уметь собирать и обрабатывать данные для принятия разумных решений.
Для меня это был новый опыт: я раньше проходил онлайн курсы, но никогда не учавствовал в таком формате. Еженедельно открываются новые видео лекции (коих в сумме было 20 секций, в каждой в среднем по 4-5 кусочка по 10минут). После просмотра лекций нужно сдавать quiz. Причем в срок - иначе баллы будут дисконтироваться. Опаздал на 1 сутки - получай на 10% меньше. Давалось три попытки, если хочется передалать quiz, чтоб получить больший бал.
ruX’s mind: деньги вместе с ценностью
Слушая 200 выпуск \"Рунетологии\", в котором Максим рассказывал о своих успехах, жизни и проектах, сильно зацепила одна фраза.
В начале появился проект calend.ru - энциклопедия праздников, где просто была идея элементарная охватить максимум поисковых запросов вокруг праздников, которые коммерчески в общем мало окученны, за них мало кто бьётся
Play Framework: локализация Date.since()
Play framework позволяет в шаблонах groovy использовать extension functions - т.е прицеплять методы на ходу к объектам.
В частности в play имеет расширение экземпляров класса Date - since(), который возвращает сколько времени прошло от указанной даты. Например "13 minutes ago"
С since() все хорошо, пока не требуется интернационализация. Если переопределить соответствующие ключи в файлах перевода, то для русского он возвращает нечто вроде 3 дняs назад. Другими словами этот метод не может отображать количество пройденного времени на любом языке, кроме английского.
HTC Desire: съел всё место
Внезапно, у меня опять кончилось место в телефоне.
Пошёл по известной дорожке:
- Удалить старые приложения
- Почистить кэш (твиттера, например)
- Recorvery -> Wipe dalvik cache
Но в этот раз не помогло. Снёс кучу нечасто используемых приложений: через 30 минут снова стало свободно 0.5Mb.
Место кончилось на столько, что даже телефон не открывался, как и многие приложения.
Стандартная утилита не показывала каких-либо сверх-тяжелого софта (я рассчитывал где-то на 40+мб)
Напомню, что у меня HTC Desire с Runnymede AIO V6.0.4.3, прошивка стоит около 14 месяцев
Android: запуск дефолтного ланчера
Есть неочевидная ситуация: вы пишете лаунчер лончер или что-то его заменяющее, отдебажили, всё работало. Конечно же, вы поставили его как програму по умолчанию и теперь он стартует вместо дефолтого. И вдруг, вылезает некая бага, которая начинает крушить, бомбить ронять телефон, перезапуская приложение. Перезапустится, конечно же, то, что упало, а упал лончер. И он снова падает. Development mode в продакшене отключён. Ну вы поняли.
На самом деле бывают ситуации ещё хуже, например, для vendor lock-in приложений, которые вообще скрывают, что они работают под андроид.
Предвкушая первую мысль как вернуть дефолтный лончер: вызвать в приложении finish(). Чёрт, это же домашний экран %)