Ну скажем, если я буду нанимать человека в компанию и увижу в его профиле сертификат от Coursera, особенно если он по теме работы, это прибавит ему «балов» в моем мнении о нем
Разделяю ваше мнение по поводу сертификации. Они полезны только в тех компаниях, куда нормальные разработчики ни за какие деньги не сунутся, имхо :)
Есть у нас в универе один препод с over9000 сертификатами от Microsoft и т.д., но стоит его спросить о чем то реальном, так он так плавать начинает, что аж самому неловко становится от того что спросил это :)
Мне нравится Java за её жёсткую стандартизованность. Спецификация определяет практически все тонкости с очень большой тонкостью. А значит — изучив эти тонкости один раз — вы сможете работать с ними везде.
Хехе :)
А на самом деле, я даже рад, что не во всех вопросах правильно ответил
Действительно, есть такая проблема. В целом, вот как я вижу ее решение:
После редактирования кода, к которому есть комментарий, достаточно подсветить комментарий, чтобы разработчик обратил на него внимание и исправил при необходимости.
Можно интеллекта прибавить такой проверке, анализировать изменения кода и все такое, но суть в том, чтобы разработчик обратил внимание и перечитал комментарий, ведь как правило мы просто изменяем код, и переходим к другому куску.
Писал это команде идеи и решарпера, но они отказались имплементить эту фичу :(
Это потому что он мало кому интересен, как разработчикам, так и заказчикам, да и самой Microsoft похоже тоже. Если вам нужна аргументация, она в комментариях о которых я уже упомянул. Вот такие дела :(
Хотя сам, скорее всего, скоро напишу статью про свой супер-крутой (ыы :) загрузчик изображений JetImageLoader с кешированием в памяти и сторадже, есть на гитхабе и NuGet: https://github.com/artem-zinnatullin/jet-image-loader
Со скриншотами вы вообще больную тему подняли… Я бы руки оторвал тому, кто делал их загрузку и управление в Marketplace.
Сбрасывает последнюю выбранную директорию при загрузке, просто поменять порядок скриншотов нельзя, надо удалить и загрузить заново, загрузка одного скриншота блочит весь ui… Это реально боль. Не знаю как оно в AppStore, но Google Play по сравнению с Marketplace просто небо и земля.
+ Информация о крешах в Marketplace ооочень удобно сделана, прямо офигеть, отдаётся вроде xls файл, который Open Office не понимает, пришлось в Google Drive закинуть, а там ни стектрейса, ни полезной инфы, только имя класса (или что-такое в котором был эксепшн, пишу с телефона, могу ошибаться), причём в моём случае это был какой-то класс из .NET Framework. То есть эта информация вообще никак не помогает найти и устранить проблему. Похоже, придётся в Application класе ловить необработанные исключения и отправлять себе на сервер.
Windows Store работает только в IE, это вообще бред. У меня Marketplace работает в хроме. Согласен, публикация в магазин для телефонов происходит стабильно 5 дней, а вот в Windows Store у меня за день проверяли.
У меня в Google Chrome не завелось на двух машинах с windows 8.1, плагин сильверлайта не установился, а разбираться с этим просто уже не было желания. В самом IE Marketplace бывает зависает на этапе создания обновления, приходится перезапускать вкладку
Я не отрицаю, что у вас все ок, прекрасно, но у меня проблемы с Marketplace есть и я о них написал. Возможно, я погорячился с фразой «работает только в IE»
Я извиняюсь, наболело просто, а тут вроде wp разработчики собрались, можно и поплакаться…
Забыл сказать про самый ад — это Windows Phone Marketplace:
Нормально работает только в IE
На самом деле глючит даже в самом IE
Даже бета билд публикуется в течение 2х часов, очень блин круто, когда тестировщик ждет из за этого
Публичные билды публикуются в течение 5ти дней! У них блин и так на платформе приложений не хватает, но нет, надо еще и паблишинг усложнить, достать разработчиков не только скудным SDK, тупой IDE, но еще и стором своим. Ты блин стараешься им помочь, но палки в колеса вставляют как могут ребята
Как то раз мы хотели разрешить публикацию только в нескольких странах, а там список почти 200 элементов, есть кнопка выбрать все, а снять все нет! Ручками, ага… я уж думал скрипт написать
Если тут есть представители Microsoft, связанные с windows phone, откликнитесь пожалуйста, нам есть о чем поговорить
Это да… Вообще весь SDK попахивает недоделками. Очень многих стандартных классов из .NET Framework просто нет, порой это добивает…
Позиция Microsoft по поводу MVVM вообще радует, сами толкают его, а при этом UI компоненты достаточно скудно его поддерживают, элементарно тап обработать через ICommand — надо написать свой UI элемент, очень часто приходится события из UI прокидывать во ViewModel используя страницу как посредник, очень запарывает… + никаких тебе базовых компонентов для MVVM, я свои делал..., MVVMLight не прижился
В ListBox нет футеров/хедеров, сделать список с несколькими типами элементов очень муторно… В общем, когда встает задача поработать с более менее сложным UI в windows phone, я сразу начинаю думать о костылях, которые придется придумать в этот раз.
Для навигации на другие страницы из ViewModel пришлось написать свой NavigationHelper, чтобы не прокидывать во ViewModel инстанс NavigationService.
В стек навигации приложения вообще не влезть, сколько страниц там лежит не узнать, только если считать их самому, что собственно и пришлось сделать.
То что работа с сетью через HttpWebRequest намерено оставлена только асинхронная — это просто финиш… Я конечно понимаю зачем, чтобы всякие криворукие разработчики не дергали сеть из UI потока, но блин, когда у тебя архитектурно запросы к api это несколько слоев логики, как правило асинхронность добавляют в самом верхнем слоее, чтобы не тащить за собой коллбеки по всем слоям, но тут тебя блин заставляют это делать…
Радости такая разработка особо не приносит, учитывая что Visual Studio без решарпера умна как пробка, ничего почти не подсказывает (блин, не IDE, а редактор с хорошим дебаггером), особенно когда эти злополучные биндинги строк пишешь, хоть вешайся блин, вот пример:
это даже не до конца влезло блин, после андроидового "@string/bla_bla" печально смотреть
В целом, статья копирует документацию, но спасибо, что поделились своим опытом :)
Могу добавить приемчик для смены языка в рантайме: ссылка на гист, если что не понятно, спрашивайте, поясню.
Суть такая: Класс LocalizedStrings должен реализовать INotifyPropertyChanged, тогда все стандартные биндинги будут подписаны на изменения его свойств, нам остается только корректно обработать переключение культуры UI потока, перезагрузить ресурсы с нужной локалью и уведомить об этом слушателей + сохранить выбранный язык, при его отсутсвии загружать наиболее подходящий из доступных, либо дефолтный.
В общем, вся прелесть в том, что разметку, в которой используется биндинг ресурсов менять не нужно! Все будет работать автоматически :)
Применил в приложении PayStore, можете зайти в настройки и увидеть переключалку языка, при выборе языка он мгновенно применится по всему приложению без перезапусков и всего такого
Единственное, что мне не нравится в btsync (кроме закрытых исходников), это отсутсвие дополнительной защиты папки паролем кроме ее уникального хеша.
Я конечно понимаю, что подобрать хеш реальной папки очень сложно и все такое, но как-то пугает, что тупым рандомным перебором кто-то может подключится к моим инстансам btsync и получить доступ к файлам, btsync к тому же никак не ограничивает новые подключения и вроде не уведомляет о них.
Это как если бы у вас была защита только по случайному логину в системе, без пароля.
Еще с ART заметил, что дебаг приложений стал оооочень медленным, проверял на нексус4 и нексус7, то есть приложение могло около 30 секунд только запускаться, бывало, что брейкпоинты проскакивались, ужас в общем. Пришлось переключиться обратно на далвик, но нестабильности в работе приложений вообще не было.
Самый простой вариант — если плеер не поддерживается, пишите мне на почту (есть в Google Play). Я его разберу и посмотрю, можно ли что-то сделать.
К сожалению, в андроиде нет четкой документации по событиям о проигрывании музыки, все шлют их как хотят или вовсе не шлют.
Часть плееров вообще отправляют события так, что они приходят от имени стандартного плеера, если ваш плеер делает так, он будет работать. Вот такие дела.
В любом случае, о проблемах пишите на artem.zinnatullin@gmail.com, я отвечу :)
Если что, не пытайтесь залогинится использую почту, last.fm принимает только юзернейм в качестве логина, добавлю в приложение предупреждение об этом, извините
В моем скробблере не надо настраивать разные плееры, все поддерживающиеся подхватятся сами. Функционально можно отключать/включать поддержку определенного плеера, мне нужно просто сделать ui для управления этими настройками.
Если у вас есть какие-то предложения — буду рад, разработка в процессе, адекватные предложения будут реализованы довольно быстро :)
Всё тлен…
Есть у нас в универе один препод с over9000 сертификатами от Microsoft и т.д., но стоит его спросить о чем то реальном, так он так плавать начинает, что аж самому неловко становится от того что спросил это :)
Хехе :)
А на самом деле, я даже рад, что не во всех вопросах правильно ответил
Действительно, есть такая проблема. В целом, вот как я вижу ее решение:
После редактирования кода, к которому есть комментарий, достаточно подсветить комментарий, чтобы разработчик обратил на него внимание и исправил при необходимости.
Можно интеллекта прибавить такой проверке, анализировать изменения кода и все такое, но суть в том, чтобы разработчик обратил внимание и перечитал комментарий, ведь как правило мы просто изменяем код, и переходим к другому куску.
Писал это команде идеи и решарпера, но они отказались имплементить эту фичу :(
Это потому что он мало кому интересен, как разработчикам, так и заказчикам, да и самой Microsoft похоже тоже. Если вам нужна аргументация, она в комментариях о которых я уже упомянул. Вот такие дела :(
Хотя сам, скорее всего, скоро напишу статью про свой супер-крутой (ыы :) загрузчик изображений JetImageLoader с кешированием в памяти и сторадже, есть на гитхабе и NuGet: https://github.com/artem-zinnatullin/jet-image-loader
Сбрасывает последнюю выбранную директорию при загрузке, просто поменять порядок скриншотов нельзя, надо удалить и загрузить заново, загрузка одного скриншота блочит весь ui… Это реально боль. Не знаю как оно в AppStore, но Google Play по сравнению с Marketplace просто небо и земля.
+ Информация о крешах в Marketplace ооочень удобно сделана, прямо офигеть, отдаётся вроде xls файл, который Open Office не понимает, пришлось в Google Drive закинуть, а там ни стектрейса, ни полезной инфы, только имя класса (или что-такое в котором был эксепшн, пишу с телефона, могу ошибаться), причём в моём случае это был какой-то класс из .NET Framework. То есть эта информация вообще никак не помогает найти и устранить проблему. Похоже, придётся в Application класе ловить необработанные исключения и отправлять себе на сервер.
У меня в Google Chrome не завелось на двух машинах с windows 8.1, плагин сильверлайта не установился, а разбираться с этим просто уже не было желания. В самом IE Marketplace бывает зависает на этапе создания обновления, приходится перезапускать вкладку
Я не отрицаю, что у вас все ок, прекрасно, но у меня проблемы с Marketplace есть и я о них написал. Возможно, я погорячился с фразой «работает только в IE»
Забыл сказать про самый ад — это Windows Phone Marketplace:
Если тут есть представители Microsoft, связанные с windows phone, откликнитесь пожалуйста, нам есть о чем поговорить
Позиция Microsoft по поводу MVVM вообще радует, сами толкают его, а при этом UI компоненты достаточно скудно его поддерживают, элементарно тап обработать через ICommand — надо написать свой UI элемент, очень часто приходится события из UI прокидывать во ViewModel используя страницу как посредник, очень запарывает… + никаких тебе базовых компонентов для MVVM, я свои делал..., MVVMLight не прижился
В ListBox нет футеров/хедеров, сделать список с несколькими типами элементов очень муторно… В общем, когда встает задача поработать с более менее сложным UI в windows phone, я сразу начинаю думать о костылях, которые придется придумать в этот раз.
Для навигации на другие страницы из ViewModel пришлось написать свой NavigationHelper, чтобы не прокидывать во ViewModel инстанс NavigationService.
В стек навигации приложения вообще не влезть, сколько страниц там лежит не узнать, только если считать их самому, что собственно и пришлось сделать.
То что работа с сетью через HttpWebRequest намерено оставлена только асинхронная — это просто финиш… Я конечно понимаю зачем, чтобы всякие криворукие разработчики не дергали сеть из UI потока, но блин, когда у тебя архитектурно запросы к api это несколько слоев логики, как правило асинхронность добавляют в самом верхнем слоее, чтобы не тащить за собой коллбеки по всем слоям, но тут тебя блин заставляют это делать…
Радости такая разработка особо не приносит, учитывая что Visual Studio без решарпера умна как пробка, ничего почти не подсказывает (блин, не IDE, а редактор с хорошим дебаггером), особенно когда эти злополучные биндинги строк пишешь, хоть вешайся блин, вот пример:
это даже не до конца влезло блин, после андроидового "@string/bla_bla" печально смотреть
Могу добавить приемчик для смены языка в рантайме: ссылка на гист, если что не понятно, спрашивайте, поясню.
Суть такая: Класс LocalizedStrings должен реализовать INotifyPropertyChanged, тогда все стандартные биндинги будут подписаны на изменения его свойств, нам остается только корректно обработать переключение культуры UI потока, перезагрузить ресурсы с нужной локалью и уведомить об этом слушателей + сохранить выбранный язык, при его отсутсвии загружать наиболее подходящий из доступных, либо дефолтный.
В общем, вся прелесть в том, что разметку, в которой используется биндинг ресурсов менять не нужно! Все будет работать автоматически :)
Применил в приложении PayStore, можете зайти в настройки и увидеть переключалку языка, при выборе языка он мгновенно применится по всему приложению без перезапусков и всего такого
Я конечно понимаю, что подобрать хеш реальной папки очень сложно и все такое, но как-то пугает, что тупым рандомным перебором кто-то может подключится к моим инстансам btsync и получить доступ к файлам, btsync к тому же никак не ограничивает новые подключения и вроде не уведомляет о них.
Это как если бы у вас была защита только по случайному логину в системе, без пароля.
Никто больше такого не замечал?
К сожалению, в андроиде нет четкой документации по событиям о проигрывании музыки, все шлют их как хотят или вовсе не шлют.
Часть плееров вообще отправляют события так, что они приходят от имени стандартного плеера, если ваш плеер делает так, он будет работать. Вот такие дела.
В любом случае, о проблемах пишите на artem.zinnatullin@gmail.com, я отвечу :)
В моем скробблере не надо настраивать разные плееры, все поддерживающиеся подхватятся сами. Функционально можно отключать/включать поддержку определенного плеера, мне нужно просто сделать ui для управления этими настройками.
Если у вас есть какие-то предложения — буду рад, разработка в процессе, адекватные предложения будут реализованы довольно быстро :)
А теперь честный ответ: У Simple Last.FM Scrobbler есть фатальный недостаток, а я же все таки разработчик, как я мог без своего велосипеда :D