Архив за 30 июня 2013 - 2

Магические константы в коде — зло. Строковые константы в коде — еще большее зло.
И вроде бы от них никуда не денешься, они повсюду:

1) При загрузке объектов из xib-ов:

MyView* view = [[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] lastObject];

MyViewController* controller = [MyViewController initWithNibName:@"MyViewController" bundle:nil];

2) При работе с CoreData:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"MyCoreDataClass" inManagedObjectContext:moc]];
[request setSortDescriptors:@[ [[NSSortDescriptor alloc] initWithKey:@"someProperty" ascending:NO] ]];

3) Если вы используете KVO, то строки появляются и тут:

[self addObserver:someObservedObject 
       forKeyPath:@"someProperty"
          options:(NSKeyValueObservingOptionNew |  NSKeyValueObservingOptionOld) 
          context:nil];

4) Ну и KVC:

NSInteger maxValue = [[arrayOfMyClassObjects valueForKeyPath:@"@max.someProperty"] intValue];

5) Но даже если CoreData вы предпочитаете работу с SQLite напраямую, xib-ами вы брезгуете, то вот такой код вам должен быть знаком:

[self.tableView dequeueReusableCellWithIdentifier:@"MyTableViewCell"];

6) Ну и когда Apple представила миру Storyboard — это было замечательно, если-бы не одно но:

[self performSegueWithIdentifier:@"MySegue" sender:nil]

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:( id )sender {
   if ( [segue.identifier isEqual:@"MySegue"] );
}

Вы видите проблему? Она состоит в том, что компилятор никак не проверяет содержимое строк, поскольку не знает (да и не может в принципе знать), что в них содержится. И если вы опечатаетесь или измените значение соответствующих полей в xcdatamodel / xib / storyboard / переименуете property, то ошибка вылезет не на стадии компиляции, а в рантайме, и отловить и исправить ее будет дольше и дороже.
Так что-же можно сделать?Читать полностью »

image
Привет, QHabr.

Сегодня хотел бы рассказать вам про адъ, который кроется за сборкой Qt 5.1 приложения для андрюши на Mac OS X. Чтобы никто их хабралюдей ни в коем случае не попал туда на 7-8 часов, я решил сделать подробный step-by-step гайд. Ну что, приступим к делу.

Совсем недавно, Qt Project анонсировал Qt 5.1 RC1. Это пока достаточно рабочий свежак, но с неплохими нововведениями. Одно из них — поддержка кросс-компиляции Android. Замечательно, не так ли? Они даже любязно предоставили нам сборку кьюта под android… для Linux. Но как же быть тем, кто использует Mac, или куда более ущербный Windows для разработки? А ничего, собирайте сами.

Но сборка последнего Qt из Git, с нужными параметрами под маком, не говоря о Windows — это адъ. Сегодня я помогу вам спасти свои души!
Читать полностью »

image
Google Reader закроют в понедельник, и весь интернет в печали, кроме меня, мне не грустно, я не буду скучать.
Я довольно активно пользовался Google Reader, практически каждый день. Это был один из ключевых компонентов, в арсенале моих приложений. Reader позволял мне держать руку на пульсе интернета. Это был мой способ быть в курсе всего, что происходит в сети. Для тех, кто следит за техническими новостями, иметь такой ресурс как Google Reader — очень важно. Нет, стоп. Было. Было очень важно.
Читать полностью »

Эта неделя богата на интересные события – вышел набор Android-разработчика Beacon Mountain от Intel, Unity объявил о поддержке Xbox One и Windows Phone 8, стал доступным для скачивания бесплатный движок Project Anarchy. Кроме того нам рассказали (дважды) как попасть в Топ App Store, поведали о достижениях одной инди-игры в Google Play, продолжили цикл статей о разработке мобильного дизайна – сейчас на примере iOS и Windows Phone. Ну а самая моя любимая новость – Microsoft выпустит Age of Empires на iOS и Android!

imageЧитать полностью »

в 8:24, , рубрики: game development, mySQLgame, sql, метки:

Устали от однообразных браузерных игр, которые представляют собой лишь разные интерфейсы к базам данных? Встречайте mySQLgame — игру, которая представляет собой только базу данных.
image
Ощутите переполняющее чувство радости того, что вы вставляете свою собственную строку в таблицу «rows»!

При разумном выборе SQL-запросов вы вскоре получите трех- или даже четырехзначное число в одном из полей своей строки! На этот случай знайте: в игре идет самая настоящая война. В новых запросах вы сможете использовать эти числа для вычитания из строк других игроков — при этом номера в вашей собственной строке станут еще выше!
Читать полностью »

Old Games.RU Remix Contest 2013


Не знаю, как так вышло, но буквально вчера я узнал, что мой любимый сайт Old-Games.RU проводит конкурс ремиксов музыки из старых-добрых* игр, да не просто проводит — а уже перешёл из стадии «принимает работы» в «голосуем за результаты»! Голосование ведётся до 1го июля (включительно?), так что время на то, что бы выбрать понравившуюся композицию ещё есть.
* — доброта игр есть величина субъективная, и надеюсь, здесь обсуждаться не будет
Читать полностью »

Google работает над собственной игровой консолью

Несмотря на то, что слухи ещё официально не подтвердились, думаю хабросообществу эта новость будет интересна, тем более что её осветил заслуживающий доверия Wall Street Journal.

Читать полностью »

На сегодняшний день мобильные устройства со встроенным проектором на ОС Android, как у смартфона Samsung Galaxy Beam, почти не встречаются на рынке. Компания Smart Devices решила выпустить своё решение. В США стал доступен к продаже планшет со встроенным проектором SmartQ U7.

SmartQ U7 и SmartQ U7H

Читать полностью »

Нужна помощь! Пришла с работы, внешний жесткий диск (wd my book studio 2tb) перестал работать!
Компьютер (MAC OS X 10.6.8) был включен, кроме этого был подключен еще 1 внешний жесткий диск, с ним все в порядке.
У Этого, проблемного жесткого диска горит внутри лампа, и он немного гудит, но компьютер его не видит.
Пробовала через поиск файлов, их компьютер не находит.
На жестком диске почти готовый документальныйй фильм. Осталось перевести на английский! Очень важная работа!
Искала помощь в гугле, нашла, что проблема не только у меня,
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js