You are viewing masterden

Tired of ads? Upgrade to paid account and never see ads again!
masterden says [entries|archive|friends|userinfo]
masterden

[ website | программирование ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Нашли блокер. [May. 30th, 2015|12:55 am]
masterden
[Tags|, , , ]

Сидим (вот прямо сейчас) в Ложке, готовим очередной 1.0.2 релиз шашечек. Вроде, всё готово. Начали придумывать, какими ещё способами можно выжать воду из камня, то есть уменьшить размер APK. Вспомнили, что у нас есть картинка 8х4 пикселя с палитрой покраски вариантов ходов. Похихикали, что можно сжать её в 8-ми битный PNG... Палитру %) Сжать 8) Палитренным сжатием. Ну а херли, почему б и нет. Полночь же. Пожали. Инструмент кроме бОльшего размера картинки выдал, что 31 различный цвет... Стоять 8) 31 цвет? В палитре на 32 цвета. Потыкали пипеткой в гимп. И правда, наш дизайнер вставил в палитру два одинаковых цвета. Хорошо посмеялись и завели на него баг. PROFIT!!
linkpost comment

... тот в цирке не смеётся. [May. 25th, 2015|10:22 pm]
masterden
[Tags|, , ]
[music |Def Leppard - Deliver Me | Powered by Last.fm]

Оригинал взят у droids_life в ... тот в цирке не смеётся.

Им там заняться что ли не чем? То вот это: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4173.pdf
Долго с поцонами думали, где Трупак нашёл такое забористое? Товарищ тут даже тему толкнул: "Если всё-таки соберутся вводить, то нужно прямо в компилятор встроить список людей (не больше 100 человек), которым можно это использовать. Остальным выдавать compilation error".

А теперь ещё и Чен порадовал новостью: http://blogs.msdn.com/b/oldnewthing/archive/2015/05/25/10616865.aspx. Тушите свет.
link2 comments|post comment

Первый старт в сезоне. [May. 19th, 2015|08:35 am]
masterden
[Tags|, ]

Скатался тут в воскресенье в Бердск. Принял участие в кросс-кантри спринте. Приехал не последним :D Так-то похвастать нечем. Зато потусил неплохо.

linkpost comment

android.util.Logcat. [May. 19th, 2015|01:09 am]
masterden
[music |Bon Jovi - I Want To Be Loved | Powered by Last.fm]

Оригинал взят у droids_life в android.util.Logcat.

Довольно частый анти-паттерн, встречающийся в промышленном коде для андроида - это использование сырого android.util.Log. Уже несколько раз видел ситуацию:

Менеджер: ну что? через час релиз! вроде всё сделали…
Программист: полюбас!
Менеджер: а что у нас по логам? не сливаем ли в логкат пароли пользователей?
Программист: ай-ай-ай, надо править!

На эту тему даже в android.developer.blog была статья, мол, народ, не сливайте в лог конфиденциальную информацию, лог доступен всем приложениям и может произойти слив. Но программисты клали известно что на это дело и гуголу было проще прикрыть лавочку: начиная с версии 4.1 (Jelly Bean) андроида приложение может прочитать только свой логкат. Согласно статистике гугла на май 2015 года 11% андроидов подвержены этой проблеме. Нефиговое количество аппаратов, если вспомнить заявления корпорации добра об активации более миллиарда устройств на этой ОС (понятно, что "живых" устройств меньше - тут важен порядок величины).

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

В результате появляются стрёмные обёртки над классом Log, флажки раскиданные по коду и тому подобные костыли. Спрашиваю человека, джависта с опытом: "Какого чёрта пользовал голый android.util.Log? Ответ: "А не знаю, во всех примерах от гугла было и не думая хуйнул так".

При этом в самом андроиде аж с версии 1.0 поставляется java.util.Logger, к которому LogCatHandler* пишется за пять минут и покрывает с головой все надобности: уровни журналирования, иерархичность с наследованием параметров, запись выхлопа в несколько мест. Последняя штука сильно пригождается, так как кроме логката бывает интересно пописать ещё и в файл. На халяву получается функционал отправки журнала при обратной связи (кнопка => intent "написать мыло" к которому сразу пришпилен файлик). Только тут надо не облажаться и делать файл циклическим буфером, что б не образовались случайно гигабайты логов : ) Ну и при запуске намерения не забыть, что программ для его обработки может и не быть на устройстве (какой-нить голый cyanogenmod без приложений от гугла).

Печалит то, что такие мэтры разработки, как JetBrains (да и сам гугол дурацкими примерами) пропогандируют этот сырой логкат. Даже обёртки пишут, что б его проще было юзать: http://blog.jetbrains.com/kotlin/2015/05/advanced-features-of-anko/ . Поцоны! Не те проблемы решаете : )

К примеру, реальная задачка из жизни - телеметрия навигации по экранам и нажатия кнопок в какой-нить Google Analytics. В готовом приложении на десятка три-четыре экранов. Причём, не через синтаксический сахар, а что б автоматом вообще без правок в коде приложения. Кстати, можно подсосать к той же инфраструктуре java.util.Logger.

*LogCatHandler и отправка файла мылом...Collapse )
linkpost comment

Реквием по android developer blog. [May. 19th, 2015|01:09 am]
masterden
[music |Bon Jovi - I Want To Be Loved | Powered by Last.fm]

Оригинал взят у droids_life в Реквием по android developer blog.

Раньше android.developer.blog был первоклассным источником знаний. Публиковались статьи по оптимизации, давались дельные советы по безопасности приложений, освещалась мотивация (может и стрёмная) различных архитектурных решений. Он действительно был developer blog. На одной из Google IO Reto Meier, в числе типичных ошибок андроид-программистов даже назвыл "не читание android developer blog". И на тот момент это было верно. Сейчас же ресурс мёртв. Превратился в новостную ленту с капитанскимси статьями, годными скорее всяким маркетологам и школьникам. В старых записях даже начали пропадать картинки (холст сгнил, что ли? %) Но, не смотря на такое уныние, которое касается не только блога, но и самой конференции IO, я по прежнему сильно рекомендую к прочтению всё ещё актуальные статьи до 2011 года. Там много познавательного:

Много ссылок обязательных к прочтению для андроид-программистов...Collapse )
linkpost comment

Второй семестр по .NET закончился. [May. 18th, 2015|11:53 pm]
masterden
[Tags|, ]
[music |Bon Jovi - These Open Arms | Powered by Last.fm]

Уф, можно выдохнуть. Сегодня окучил последнего двоечника. Довольно сложно людей в последнем семестре четвёртого курса заставить что-то делать. ФИТовцы, то нормально затащили. На четвёрки сдали WebDAV-серверы. А вот ВКИшники не умеют в сжатые сроки выдавать нормальный код. Итог: трое с ФИТа получили четвёрки, оба ВКИшника - тройки.
Народу сильно поуменьшилось, так как на бюрократическом уровне курс - это два отдельных спецкурса. Часть студентов ушла из неосиляторских соображений, другие из-за выбора других предметов не могли ходить на пары ко мне. Самое весёлое - это люди, которые пришли на вторую часть без прохождения первой %) Хорошо хоть Быстров как-то обстряпал, что б они ко мне не ходили. Бегству двоечников был дико рад: в принципе не представлял, как им объяснять реактивное программирование, когда они переменные не умеют называть человечески. Оставшиеся, к моему удивлению, очень туго понимали идею асинхронного ввода-вывода и операторов async/await в C#. Вскрылось это уже после окончания официальных пар (на четвёртом курсе летняя сессия на месяц раньше из-за дипломов) из-за чего пришлось обзванивать народ и по телефону каждому объяснять тему. Поскольку проблемы коснулись даже передовиков, думаю, есть тут и мои промахи. Подрихтую, как условия задач, так и акценты на занятиях. Но и можно видеть, что концепт они до этого нигде не щупали. Все пытались так или иначе наплодить нитей или попихать задач в их пул. Интересно, что никто не взялся делать WebDAV-клиент. Сегодняшний бедолага даже сказал, что он показался ему сложнее сервера. По-моему, гонит.

Сдача задач через BitBucket удалась. Дальше только так. Модульные тесты не очень хорошо зашли: народ их приделывал уже в самом конце сдачи. В следующий раз сделаю акцент в лекциях на том, что польза от них будет, если хотя бы вместе с кодом параллельно делать, а не "подгонять под ответ". Ну и проверять буду жёстче их (тестов) работоспособность.

Как и в прошлый раз был приглашённый докладчик из ЦФТ. На следующий год планирую снова подписать Антоху и ещё веду переговоры с парой человек из серьёзных контор.
link3 comments|post comment

Катим шашки. [May. 11th, 2015|11:42 am]
masterden
[Tags|, ]
[music |Sirenia - Serpent | Powered by Last.fm]

Меньше, чем за две недели подготовили новый релиз шашек. 32 комита и куча исправленного.

Уменьшили размер файла игры с 30.6 до 18.5 мегабайт. Повыправляли всяких багов в вёрстке интерфейса. На игровом экране теперь дублируются кнопки из меню: рестарт, отмена хода, вызов настроек приложения. Миха запилил показ причины ничьей в диалог об окончании игры и улучшил алгоритм её (ничьи) определения. Ну и невидимых глазу ошибок выкосили. Планируем в том же режиме, раз в две недели, продолжать улучшать игру.

https://play.google.com/store/apps/details?id=com.piggybank.checkers
linkpost comment

Поддавки. [May. 9th, 2015|12:32 am]
masterden
[Tags|, ]
[music |Kamelot - Here's to the Fall | Powered by Last.fm]

В контексте выхода шашек от Piggybank =) Миха Дьяков тут нарыл занятный материал, утверждающий, что в русские поддавки у белых есть выигрышная стратегия: http://damira.nm.ru/st14.htm
linkpost comment

Стандартны именования и мультиплатформенный код. [May. 8th, 2015|11:25 pm]
masterden
[Tags|]
[music |Kamelot - Beautiful Apocalypse - Instrumental | Powered by Last.fm]

Оригинал взят у droids_life в Стандартны именования и мультиплатформенный код.

Интересный случай тут произошёл. iOS-ник в общий для нескольких проектов репозиторий запихнул enum один из элементов которого назывался S_OK. А на windows у нас людей сидит не очень много. И где-то пол дня не замечали, что сборка поломалась: S_OK там макрос.

P.S. Вообще, каким местом нужно было думать, что б элемент перечисления назвать S_OK? Даже, если забыть про тараканов windows, имя крайне дурацкое. Ну кто имена с S_ начинает? =)
linkpost comment

Привет из детского сада. [May. 1st, 2015|10:32 pm]
masterden
[Tags|]

Обалдеть! Поцоны (именно поцоны, девушки не оценят, скорее всего), зацените, что в "торце" в игромире продают!


Если у кого будут повторные вкладыши, готов поменяться. Эх, жалко, что только turbo. Сразу вспомнились bombimbom, power, boomer, и ещё куча другого.
link1 comment|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]