Спасибо, удобно. В свое время тоже столкнулся с проблемой, но скрипты писать не стал, а нашел вот что: ticons.fokkezb.nl — все сводится к загрузке одной большой иконки, на выходе получаем архив со всеми размерами и для iOS и для Android. Еще больше радует то, что проект открыт под лицензией Apache — при желании можно и дополнить и локально копию запустить :)
Вы так говорите исходя из того, что у вас опыт работы с олимпиадниками, или потому что статья зацепила?
Набросать работающий код за несколько часов не парясь о его поддержке — это одно.
Разбираться в энтерпрайзе, legacy-коде, ловить баги — это совершенно другое.
Думаю, что по факту хорошего в такой монополии — мало. Выбора практически нет, iOS или Android (я знаю и про WP, BB, Firefox OS и т.д., но какая у них доля?), остальные платформы постепенно агонизируют. Хотелось бы иметь больше сильных участников рынка, хотелось бы иметь выбор и разнообразие устройств, хотелось бы флагманы с уникальными фишками. В целом против Android'а ничего не имею, но то, что из него делают большинство производителей — мне совершенно не нравится. Не нужны мне эти лаунчеры, не нужна куча рекламного мусора, нужна система, которой можно пользоваться и не думать о том, куда же делась половина от 3 гб (черт, цифра на самом деле дикая) оперативной памяти сразу после запуска.
Интересно, но слишком сумбурно. Начинаете действительно с «мифов», а потом резко прыгаете к объяснению порядка загрузки.
Потом снова описание того, как пользоваться apt-get. Если я не знаю apt-get, вряд ли мне нужно знать процесс загрузки Linux.
Если же я знаю процесс загрузки Linux, то на зачем мне элементарные команды apt?
Из-за этого половина статьи уместна на Geektimes, а половину было бы интересно более подробно почитать на Хабре.
Светлая тема, занимаюсь разработкой под iOS в Xcode. Темные не комфортны совершенно, единственная, которая более-менее нравится — дефолтная в Sublime Text. Зрение в норме. Ночью проблем от светлой темы — никаких. Топик следовало бы назвать «какой стиль тем используете», подсветка синтаксиса — это несколько другое.
3.5", все же, маловат. Попробуйте 4 дюйма — как в iPhone 5, в руке лежит лучше четвертого, а на экран влазит намного больше полезной информации (особенно когда показана клавиатура — на четверке она вместе с navigation bar занимают больше половины дисплея).
Сейчас пользуюсь iPhone 6 (4.7") — в целом, уже великоват. Но когда попробовал на пятерке после него набрать текст — клавиши показались очень уж мелкими.
Так что 4" — золотая середина, в руке лежит идеально, в кармане тоже. Если не трогать аппараты с более крупной диагональю — клавиатура вполне себе ок :)
Жесть. Когда смотришь видео про игру в Breakout и видишь, как ИИ целенаправленно загоняет мяч в щель между блоками и краем игрового поля, чтобы набить очки, действительно становится не по себе. С одной стороны — восторг от того, что в будущем точно так же будет делаться куча вещей, с которыми ИИ справится значительно лучше и точнее человека, а с другой — холодок по спине, ведь вместо блоков могут быть люди, а вместо шарика — луч лазера (или что там у роботов Скайнета было) :)
Если честно, статья не «об одном способе выстрелить себе в ногу», а рассказывает о том, как:
купить дробовик, проверить его, зарядить, тщательно прицелиться и выстрелить в ногу.
Менять значение указателя на объект по смещению в расчете на то, что по этому адресу реально хранится строка
(а не какая-нибудь служебная информация типа той же кодировки) — это очень странно.
Задача достаточно простая, как и решение. Взять от апи данные порциями, проверить условия, вывести нужное.
Формат даты рождения проверяете немного нестандартно, но если знать, что больше ничего придти не может — почему бы и нет.
Можно было использовать или DateTime::createFromFormat или регулярное выражение.
Отлично, спасибо. Скакать между двумя сайтами неимоверно задолбало, а теперь еще и третий нарисовался.
Лучше по старинке — сам разберусь, что мне в одной общей ленте интересно, а что — нет.
Век живи — век учись. За три года умудрился ни разу не попробовать сохранить кастомный объект, только десериализованные JSON'ы да свои массивы и словари. Спасибо!
Да, FMDB очень упрощает работу с SQLite, тут не поспоришь. До его появления использовал сишные функции, вроде и не очень сложно, но время лишнее тратилось.
Насчет детекта обновлений приложения — я в своем проекте использовал что-то подобное:
if ([[NSUserDefaults standardUserDefaults] valueForKey:@"appVersion"]==nil)
{
[[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:1] forKey:@"appVersion"];
// ...
// устанавливаем остальные параметры
// ...
[[NSUserDefaults standardUserDefaults] synchronize];
}
else
{
int app_version = [[NSUserDefaults standardUserDefaults] valueForKey:@"appVersion"];
// далее можно проверить, отличается ли текущая версия от пользовательской app_version и, например, добавить в настройки новые поля
}
Во время обновления на устройствах новая база затирает старую и все довольны
— я правильно понимаю, что речь идет просто о файле в bundle вашего приложения? Если так, и если он обновляется только при обновлении приложения целиком (версии 1.0 => 1.1, например), то в NSUserDefaults вообще нет нужды. Другой разговор если у вас данные можно обновить через интернет — тогда есть смысл держать актуальную версию, и выбор между NSUserDefaults и SQLite зависит от структуры самих данных.
Пример: различные NSArray и NSDictionary отлично пишутся в NSUserDefaults (который для программиста и выглядит как key-value хранилище), ну а SQLite он и есть SQLite — его стезя это SELECT, ORDER BY, WHERE и т.д.
Ну и последнее: присмотритесь к JSON, легкочитаемый формат, без проблем сериализуется в Foundation классы.
Набросать работающий код за несколько часов не парясь о его поддержке — это одно.
Разбираться в энтерпрайзе, legacy-коде, ловить баги — это совершенно другое.
А что сложного найти его в продаже? Их производство никто не прекращал. Беглый поиск выдает кучу магазинов.
Надеюсь, в в процессе теста это было поправлено?
Ну и про то, что
я бы добавил «неоптимизированных» перед «программ на ассемблере» — статья это отлично показала :)
По теме: было бы очень интересно посмотреть, сколько же осознанных процентов скачиваний у каждого браузера :)
Потом снова описание того, как пользоваться apt-get. Если я не знаю apt-get, вряд ли мне нужно знать процесс загрузки Linux.
Если же я знаю процесс загрузки Linux, то на зачем мне элементарные команды apt?
Из-за этого половина статьи уместна на Geektimes, а половину было бы интересно более подробно почитать на Хабре.
Сейчас пользуюсь iPhone 6 (4.7") — в целом, уже великоват. Но когда попробовал на пятерке после него набрать текст — клавиши показались очень уж мелкими.
Так что 4" — золотая середина, в руке лежит идеально, в кармане тоже. Если не трогать аппараты с более крупной диагональю — клавиатура вполне себе ок :)
купить дробовик, проверить его, зарядить, тщательно прицелиться и выстрелить в ногу.
Менять значение указателя на объект по смещению в расчете на то, что по этому адресу реально хранится строка
(а не какая-нибудь служебная информация типа той же кодировки) — это очень странно.
Формат даты рождения проверяете немного нестандартно, но если знать, что больше ничего придти не может — почему бы и нет.
Можно было использовать или DateTime::createFromFormat или регулярное выражение.
Неправильно смотрите возраст.
возвращает количество полных лет, округленное функцией floor вниз.
То есть, например, если человеку 25 лет и 6 месяцев (25.5) — в $age будет 25.
Следовательно, вашу проверку
$age не пройдет, и ваш скрипт выведет всех людей старше 26.
PS. Группа-то как называется, habr или все-таки samsung? ;)
Лучше по старинке — сам разберусь, что мне в одной общей ленте интересно, а что — нет.
Насчет детекта обновлений приложения — я в своем проекте использовал что-то подобное:
— я правильно понимаю, что речь идет просто о файле в bundle вашего приложения? Если так, и если он обновляется только при обновлении приложения целиком (версии 1.0 => 1.1, например), то в NSUserDefaults вообще нет нужды. Другой разговор если у вас данные можно обновить через интернет — тогда есть смысл держать актуальную версию, и выбор между NSUserDefaults и SQLite зависит от структуры самих данных.
Пример: различные NSArray и NSDictionary отлично пишутся в NSUserDefaults (который для программиста и выглядит как key-value хранилище), ну а SQLite он и есть SQLite — его стезя это SELECT, ORDER BY, WHERE и т.д.
Ну и последнее: присмотритесь к JSON, легкочитаемый формат, без проблем сериализуется в Foundation классы.