Author Archive

Programming Book Giveaway!

So, what better way to get rolling into 2012 than learn something new from a good programming book? Why, nothing at all, that’s what. And courtesy of the great folk over at Packt Publishing, here we have four choices for you, and a dead simple way to get whichever one of them you like: just tweet the message of your choice with the link provided to the book’s page, and this weekend we’ll do a search, first tweet we find with each link wins! So without further ado, here are your choices:

#1: Cocos2d for iPhone 1 Game Development Cookbook

4002EXP_Cocos2d for iPhone Game Development Cookbook.jpg.png

Tweet this: I’d like to read this book on cocos2d! http://is.gd/uMGIcA

#2: Unreal Development Kit Game Programming with UnrealScript: Beginner’s Guide

1925EXP_UDK Game Programming with UnrealScript Beginner's Guide.jpg.png

Tweet this: I’d like to read this book on UnrealScript! http://is.gd/D59QkK

#3: Android 3.0 Animations: Beginner’s Guide

5283EXP_Android 3.jpg.png

Tweet this: I’d like to read this book on Android animations! http://is.gd/T0g0Wi

#4: XNA 4.0 Game Development by Example: Beginner’s Guide – Visual Basic Edition

2403EXP_XNA 4.0 Game Developement by Example.jpg.png

Tweet this: I’d like to read this book on XNA4 game development! http://is.gd/R42Uoa

And if you don’t so happen to be a lucky winner, fear not, you can still get your hands on any of these for a little quid pro quo, that being to post a review on your blog and Amazon and the like: just drop a line to Shaveer Irani of Packt with the subject “book name- review request copy” to join our Distinguished Fraternity Of Review Writers!

Continue Reading →
0

iBooks Author EULA

So the latest Apple-related brouhaha for those who like to get their knickers in a twist to be all knicker-twisted about is the EULA attached to iBooks Author, as no doubt you’ve heard. Normally we’d just snicker at the lachrymose lamentations of those who profess that strings attached to something given away for free is somehow unprecedentedly evil, but there is a particularly interesting bit in Jeff Lamarche’s display of common sense in punditry here:

How I Learned to Stop Worrying and Love the iBooks Author EULA

… Let’s say, for giggles, that “book stealing” was Apple’s intent, and such an intent was found to be both legal and the actual intent of the contract, and Apple decided to exercise those rights to steal my books. You know what? Even with all that, it’s still a hell of a lot better deal than I’ve ever gotten from a traditional publisher. Apple is offering 70% of the sale price to me. The most favorable contract I’ve ever gotten from a publisher starts at 12% of the net price the publisher gets from the distributor, wholesaler, or retailer (which is half or less of the retail price). That percentage does slowly escalate up to 20% if I sell a ton of books, but if I publish a new edition of an existing book, the escalators go back down to 12% and I have to start all over. To put this in more concrete terms, if I were to sell a book in the iBooks Store for $9.99, I would get $6.99 per book sold, which is about four times what I get when one of my current $39.99 books sells, and I’d get that money months sooner. Oh, and guess what? I don’t own those books published through a traditional publisher, either. My publisher can even have someone else update the book and can continue to use my name to promote it, even if I don’t like the revisions or think the update sucks…

Wow! We were vaguely aware that writing books was for most people a pretty low return endeavour, but we had no idea that terms were on the order of a twentieth of the cover price. That rather puts all the huffing and puffing from excitable quarters into its proper context, doesn’t it now?

UPDATES :

A rather more amusing take on the huffing and puffing types: In Favour Of iBook Author

Lots of thought-provoking iBooks Ideas from @mattgemmell!

Continue Reading →
0

Snippet: Locale Listing

Ever wonder just what those annoyingly obtuse NSLocale codes are? Here’s the snippet to print them out:

- (void)logAllLocales
{
   NSLocale *curentLocale = [NSLocale currentLocale];
   NSArray *locales = [[NSLocale availableLocaleIdentifiers] sortedArrayUsingSelector:@selector(compare:)];
   for (NSString *locale in locales)
      NSLog(@"locale '%@' is: %@'", locale, [curentLocale displayNameForKey:NSLocaleIdentifier value:locale]);
}

And here is your comprehensive list of just what shows up on an iPad 2 with 5.0.1. And comprehensive indeed it is!

  1. ‘af’ is: Afrikaans’
  2. ‘af_NA’ is: Afrikaans (Namibia)’
  3. ‘af_ZA’ is: Afrikaans (South Africa)’
  4. ‘agq’ is: Aghem’
  5. ‘agq_CM’ is: Aghem (Cameroon)’
  6. ‘ak’ is: Akan’
  7. ‘ak_GH’ is: Akan (Ghana)’
  8. ‘am’ is: Amharic’
  9. ‘am_ET’ is: Amharic (Ethiopia)’
  10. ‘ar’ is: Arabic’
  11. ‘ar_AE’ is: Arabic (United Arab Emirates)’
  12. ‘ar_BH’ is: Arabic (Bahrain)’
  13. ‘ar_DZ’ is: Arabic (Algeria)’
  14. ‘ar_EG’ is: Arabic (Egypt)’
  15. ‘ar_IQ’ is: Arabic (Iraq)’
  16. ‘ar_JO’ is: Arabic (Jordan)’
  17. ‘ar_KW’ is: Arabic (Kuwait)’
  18. ‘ar_LB’ is: Arabic (Lebanon)’
  19. ‘ar_LY’ is: Arabic (Libya)’
  20. ‘ar_MA’ is: Arabic (Morocco)’
  21. ‘ar_OM’ is: Arabic (Oman)’
  22. ‘ar_QA’ is: Arabic (Qatar)’
  23. ‘ar_SA’ is: Arabic (Saudi Arabia)’
  24. ‘ar_SD’ is: Arabic (Sudan)’
  25. ‘ar_SY’ is: Arabic (Syria)’
  26. ‘ar_TN’ is: Arabic (Tunisia)’
  27. ‘ar_YE’ is: Arabic (Yemen)’
  28. ‘as’ is: Assamese’
  29. ‘as_IN’ is: Assamese (India)’
  30. ‘asa’ is: Asu’
  31. ‘asa_TZ’ is: Asu (Tanzania)’
  32. ‘az’ is: Azerbaijani’
  33. ‘az_Cyrl’ is: Azerbaijani (Cyrillic)’
  34. ‘az_Cyrl_AZ’ is: Azerbaijani (Cyrillic, Azerbaijan)’
  35. ‘az_Latn’ is: Azerbaijani (Latin)’
  36. ‘az_Latn_AZ’ is: Azerbaijani (Latin, Azerbaijan)’
  37. ‘bas’ is: Basaa’
  38. ‘bas_CM’ is: Basaa (Cameroon)’
  39. ‘be’ is: Belarusian’
  40. ‘be_BY’ is: Belarusian (Belarus)’
  41. ‘bem’ is: Bemba’
  42. ‘bem_ZM’ is: Bemba (Zambia)’
  43. ‘bez’ is: Bena’
  44. ‘bez_TZ’ is: Bena (Tanzania)’
  45. ‘bg’ is: Bulgarian’
  46. ‘bg_BG’ is: Bulgarian (Bulgaria)’
  47. ‘bm’ is: Bambara’
  48. ‘bm_ML’ is: Bambara (Mali)’
  49. ‘bn’ is: Bengali’
  50. ‘bn_BD’ is: Bengali (Bangladesh)’
  51. ‘bn_IN’ is: Bengali (India)’
  52. ‘bo’ is: Tibetan’
  53. ‘bo_CN’ is: Tibetan (China)’
  54. ‘bo_IN’ is: Tibetan (India)’
  55. ‘br’ is: Breton’
  56. ‘br_FR’ is: Breton (France)’
  57. ‘brx’ is: Bodo’
  58. ‘brx_IN’ is: Bodo (India)’
  59. ‘bs’ is: Bosnian’
  60. ‘bs_BA’ is: Bosnian (Bosnia and Herzegovina)’
  61. ‘ca’ is: Catalan’
  62. ‘ca_ES’ is: Catalan (Spain)’
  63. ‘cgg’ is: Chiga’
  64. ‘cgg_UG’ is: Chiga (Uganda)’
  65. ‘chr’ is: Cherokee’
  66. ‘chr_US’ is: Cherokee (United States)’
  67. ‘cs’ is: Czech’
  68. ‘cs_CZ’ is: Czech (Czech Republic)’
  69. ‘cy’ is: Welsh’
  70. ‘cy_GB’ is: Welsh (United Kingdom)’
  71. ‘da’ is: Danish’
  72. ‘da_DK’ is: Danish (Denmark)’
  73. ‘dav’ is: Taita’
  74. ‘dav_KE’ is: Taita (Kenya)’
  75. ‘de’ is: German’
  76. ‘de_AT’ is: German (Austria)’
  77. ‘de_BE’ is: German (Belgium)’
  78. ‘de_CH’ is: German (Switzerland)’
  79. ‘de_DE’ is: German (Germany)’
  80. ‘de_LI’ is: German (Liechtenstein)’
  81. ‘de_LU’ is: German (Luxembourg)’
  82. ‘dje’ is: Zarma’
  83. ‘dje_NE’ is: Zarma (Niger)’
  84. ‘dua’ is: Duala’
  85. ‘dua_CM’ is: Duala (Cameroon)’
  86. ‘dyo’ is: Jola-Fonyi’
  87. ‘dyo_SN’ is: Jola-Fonyi (Senegal)’
  88. ‘ebu’ is: Embu’
  89. ‘ebu_KE’ is: Embu (Kenya)’
  90. ‘ee’ is: Ewe’
  91. ‘ee_GH’ is: Ewe (Ghana)’
  92. ‘ee_TG’ is: Ewe (Togo)’
  93. ‘el’ is: Greek’
  94. ‘el_CY’ is: Greek (Cyprus)’
  95. ‘el_GR’ is: Greek (Greece)’
  96. ‘en’ is: English’
  97. ‘en_AS’ is: English (American Samoa)’
  98. ‘en_AU’ is: English (Australia)’
  99. ‘en_BB’ is: English (Barbados)’
  100. ‘en_BE’ is: English (Belgium)’
  101. ‘en_BM’ is: English (Bermuda)’
  102. ‘en_BW’ is: English (Botswana)’
  103. ‘en_BZ’ is: English (Belize)’
  104. ‘en_CA’ is: English (Canada)’
  105. ‘en_GB’ is: English (United Kingdom)’
  106. ‘en_GU’ is: English (Guam)’
  107. ‘en_GY’ is: English (Guyana)’
  108. ‘en_HK’ is: English (Hong Kong SAR China)’
  109. ‘en_IE’ is: English (Ireland)’
  110. ‘en_IN’ is: English (India)’
  111. ‘en_JM’ is: English (Jamaica)’
  112. ‘en_MH’ is: English (Marshall Islands)’
  113. ‘en_MP’ is: English (Northern Mariana Islands)’
  114. ‘en_MT’ is: English (Malta)’
  115. ‘en_MU’ is: English (Mauritius)’
  116. ‘en_NA’ is: English (Namibia)’
  117. ‘en_NZ’ is: English (New Zealand)’
  118. ‘en_PH’ is: English (Philippines)’
  119. ‘en_PK’ is: English (Pakistan)’
  120. ‘en_SG’ is: English (Singapore)’
  121. ‘en_TT’ is: English (Trinidad and Tobago)’
  122. ‘en_UM’ is: English (U.S. Minor Outlying Islands)’
  123. ‘en_US’ is: English (United States)’
  124. ‘en_US_POSIX’ is: English (United States, Computer)’
  125. ‘en_VI’ is: English (U.S. Virgin Islands)’
  126. ‘en_ZA’ is: English (South Africa)’
  127. ‘en_ZW’ is: English (Zimbabwe)’
  128. ‘eo’ is: Esperanto’
  129. ‘es’ is: Spanish’
  130. ‘es_419′ is: Spanish (Latin America)’
  131. ‘es_AR’ is: Spanish (Argentina)’
  132. ‘es_BO’ is: Spanish (Bolivia)’
  133. ‘es_CL’ is: Spanish (Chile)’
  134. ‘es_CO’ is: Spanish (Colombia)’
  135. ‘es_CR’ is: Spanish (Costa Rica)’
  136. ‘es_DO’ is: Spanish (Dominican Republic)’
  137. ‘es_EC’ is: Spanish (Ecuador)’
  138. ‘es_ES’ is: Spanish (Spain)’
  139. ‘es_GQ’ is: Spanish (Equatorial Guinea)’
  140. ‘es_GT’ is: Spanish (Guatemala)’
  141. ‘es_HN’ is: Spanish (Honduras)’
  142. ‘es_MX’ is: Spanish (Mexico)’
  143. ‘es_NI’ is: Spanish (Nicaragua)’
  144. ‘es_PA’ is: Spanish (Panama)’
  145. ‘es_PE’ is: Spanish (Peru)’
  146. ‘es_PR’ is: Spanish (Puerto Rico)’
  147. ‘es_PY’ is: Spanish (Paraguay)’
  148. ‘es_SV’ is: Spanish (El Salvador)’
  149. ‘es_US’ is: Spanish (United States)’
  150. ‘es_UY’ is: Spanish (Uruguay)’
  151. ‘es_VE’ is: Spanish (Venezuela)’
  152. ‘et’ is: Estonian’
  153. ‘et_EE’ is: Estonian (Estonia)’
  154. ‘eu’ is: Basque’
  155. ‘eu_ES’ is: Basque (Spain)’
  156. ‘ewo’ is: Ewondo’
  157. ‘ewo_CM’ is: Ewondo (Cameroon)’
  158. ‘fa’ is: Persian’
  159. ‘fa_AF’ is: Persian (Afghanistan)’
  160. ‘fa_IR’ is: Persian (Iran)’
  161. ‘ff’ is: Fulah’
  162. ‘ff_SN’ is: Fulah (Senegal)’
  163. ‘fi’ is: Finnish’
  164. ‘fi_FI’ is: Finnish (Finland)’
  165. ‘fil’ is: Filipino’
  166. ‘fil_PH’ is: Filipino (Philippines)’
  167. ‘fo’ is: Faroese’
  168. ‘fo_FO’ is: Faroese (Faroe Islands)’
  169. ‘fr’ is: French’
  170. ‘fr_BE’ is: French (Belgium)’
  171. ‘fr_BF’ is: French (Burkina Faso)’
  172. ‘fr_BI’ is: French (Burundi)’
  173. ‘fr_BJ’ is: French (Benin)’
  174. ‘fr_BL’ is: French (Saint Barthélemy)’
  175. ‘fr_CA’ is: French (Canada)’
  176. ‘fr_CD’ is: French (Congo – Kinshasa)’
  177. ‘fr_CF’ is: French (Central African Republic)’
  178. ‘fr_CG’ is: French (Congo – Brazzaville)’
  179. ‘fr_CH’ is: French (Switzerland)’
  180. ‘fr_CI’ is: French (Côte d’Ivoire)’
  181. ‘fr_CM’ is: French (Cameroon)’
  182. ‘fr_DJ’ is: French (Djibouti)’
  183. ‘fr_FR’ is: French (France)’
  184. ‘fr_GA’ is: French (Gabon)’
  185. ‘fr_GF’ is: French (French Guiana)’
  186. ‘fr_GN’ is: French (Guinea)’
  187. ‘fr_GP’ is: French (Guadeloupe)’
  188. ‘fr_GQ’ is: French (Equatorial Guinea)’
  189. ‘fr_KM’ is: French (Comoros)’
  190. ‘fr_LU’ is: French (Luxembourg)’
  191. ‘fr_MC’ is: French (Monaco)’
  192. ‘fr_MF’ is: French (Saint Martin)’
  193. ‘fr_MG’ is: French (Madagascar)’
  194. ‘fr_ML’ is: French (Mali)’
  195. ‘fr_MQ’ is: French (Martinique)’
  196. ‘fr_NE’ is: French (Niger)’
  197. ‘fr_RE’ is: French (Réunion)’
  198. ‘fr_RW’ is: French (Rwanda)’
  199. ‘fr_SN’ is: French (Senegal)’
  200. ‘fr_TD’ is: French (Chad)’
  201. ‘fr_TG’ is: French (Togo)’
  202. ‘fr_YT’ is: French (Mayotte)’
  203. ‘ga’ is: Irish’
  204. ‘ga_IE’ is: Irish (Ireland)’
  205. ‘gl’ is: Galician’
  206. ‘gl_ES’ is: Galician (Spain)’
  207. ‘gsw’ is: Swiss German’
  208. ‘gsw_CH’ is: Swiss German (Switzerland)’
  209. ‘gu’ is: Gujarati’
  210. ‘gu_IN’ is: Gujarati (India)’
  211. ‘guz’ is: Gusii’
  212. ‘guz_KE’ is: Gusii (Kenya)’
  213. ‘gv’ is: Manx’
  214. ‘gv_GB’ is: Manx (United Kingdom)’
  215. ‘ha’ is: Hausa’
  216. ‘ha_Latn’ is: Hausa (Latin)’
  217. ‘ha_Latn_GH’ is: Hausa (Latin, Ghana)’
  218. ‘ha_Latn_NE’ is: Hausa (Latin, Niger)’
  219. ‘ha_Latn_NG’ is: Hausa (Latin, Nigeria)’
  220. ‘haw’ is: Hawaiian’
  221. ‘haw_US’ is: Hawaiian (United States)’
  222. ‘he’ is: Hebrew’
  223. ‘he_IL’ is: Hebrew (Israel)’
  224. ‘hi’ is: Hindi’
  225. ‘hi_IN’ is: Hindi (India)’
  226. ‘hr’ is: Croatian’
  227. ‘hr_HR’ is: Croatian (Croatia)’
  228. ‘hu’ is: Hungarian’
  229. ‘hu_HU’ is: Hungarian (Hungary)’
  230. ‘hy’ is: Armenian’
  231. ‘hy_AM’ is: Armenian (Armenia)’
  232. ‘id’ is: Indonesian’
  233. ‘id_ID’ is: Indonesian (Indonesia)’
  234. ‘ig’ is: Igbo’
  235. ‘ig_NG’ is: Igbo (Nigeria)’
  236. ‘ii’ is: Sichuan Yi’
  237. ‘ii_CN’ is: Sichuan Yi (China)’
  238. ‘is’ is: Icelandic’
  239. ‘is_IS’ is: Icelandic (Iceland)’
  240. ‘it’ is: Italian’
  241. ‘it_CH’ is: Italian (Switzerland)’
  242. ‘it_IT’ is: Italian (Italy)’
  243. ‘ja’ is: Japanese’
  244. ‘ja_JP’ is: Japanese (Japan)’
  245. ‘jmc’ is: Machame’
  246. ‘jmc_TZ’ is: Machame (Tanzania)’
  247. ‘ka’ is: Georgian’
  248. ‘ka_GE’ is: Georgian (Georgia)’
  249. ‘kab’ is: Kabyle’
  250. ‘kab_DZ’ is: Kabyle (Algeria)’
  251. ‘kam’ is: Kamba’
  252. ‘kam_KE’ is: Kamba (Kenya)’
  253. ‘kde’ is: Makonde’
  254. ‘kde_TZ’ is: Makonde (Tanzania)’
  255. ‘kea’ is: Kabuverdianu’
  256. ‘kea_CV’ is: Kabuverdianu (Cape Verde)’
  257. ‘khq’ is: Koyra Chiini’
  258. ‘khq_ML’ is: Koyra Chiini (Mali)’
  259. ‘ki’ is: Kikuyu’
  260. ‘ki_KE’ is: Kikuyu (Kenya)’
  261. ‘kk’ is: Kazakh’
  262. ‘kk_Cyrl’ is: Kazakh (Cyrillic)’
  263. ‘kk_Cyrl_KZ’ is: Kazakh (Cyrillic, Kazakhstan)’
  264. ‘kl’ is: Kalaallisut’
  265. ‘kl_GL’ is: Kalaallisut (Greenland)’
  266. ‘kln’ is: Kalenjin’
  267. ‘kln_KE’ is: Kalenjin (Kenya)’
  268. ‘km’ is: Khmer’
  269. ‘km_KH’ is: Khmer (Cambodia)’
  270. ‘kn’ is: Kannada’
  271. ‘kn_IN’ is: Kannada (India)’
  272. ‘ko’ is: Korean’
  273. ‘ko_KR’ is: Korean (South Korea)’
  274. ‘kok’ is: Konkani’
  275. ‘kok_IN’ is: Konkani (India)’
  276. ‘ksb’ is: Shambala’
  277. ‘ksb_TZ’ is: Shambala (Tanzania)’
  278. ‘ksf’ is: Bafia’
  279. ‘ksf_CM’ is: Bafia (Cameroon)’
  280. ‘kw’ is: Cornish’
  281. ‘kw_GB’ is: Cornish (United Kingdom)’
  282. ‘lag’ is: Langi’
  283. ‘lag_TZ’ is: Langi (Tanzania)’
  284. ‘lg’ is: Ganda’
  285. ‘lg_UG’ is: Ganda (Uganda)’
  286. ‘ln’ is: Lingala’
  287. ‘ln_CD’ is: Lingala (Congo – Kinshasa)’
  288. ‘ln_CG’ is: Lingala (Congo – Brazzaville)’
  289. ‘lt’ is: Lithuanian’
  290. ‘lt_LT’ is: Lithuanian (Lithuania)’
  291. ‘lu’ is: Luba-Katanga’
  292. ‘lu_CD’ is: Luba-Katanga (Congo – Kinshasa)’
  293. ‘luo’ is: Luo’
  294. ‘luo_KE’ is: Luo (Kenya)’
  295. ‘luy’ is: Luyia’
  296. ‘luy_KE’ is: Luyia (Kenya)’
  297. ‘lv’ is: Latvian’
  298. ‘lv_LV’ is: Latvian (Latvia)’
  299. ‘mas’ is: Masai’
  300. ‘mas_KE’ is: Masai (Kenya)’
  301. ‘mas_TZ’ is: Masai (Tanzania)’
  302. ‘mer’ is: Meru’
  303. ‘mer_KE’ is: Meru (Kenya)’
  304. ‘mfe’ is: Morisyen’
  305. ‘mfe_MU’ is: Morisyen (Mauritius)’
  306. ‘mg’ is: Malagasy’
  307. ‘mg_MG’ is: Malagasy (Madagascar)’
  308. ‘mgh’ is: Makhuwa-Meetto’
  309. ‘mgh_MZ’ is: Makhuwa-Meetto (Mozambique)’
  310. ‘mk’ is: Macedonian’
  311. ‘mk_MK’ is: Macedonian (Macedonia)’
  312. ‘ml’ is: Malayalam’
  313. ‘ml_IN’ is: Malayalam (India)’
  314. ‘mr’ is: Marathi’
  315. ‘mr_IN’ is: Marathi (India)’
  316. ‘ms’ is: Malay’
  317. ‘ms_BN’ is: Malay (Brunei)’
  318. ‘ms_MY’ is: Malay (Malaysia)’
  319. ‘mt’ is: Maltese’
  320. ‘mt_MT’ is: Maltese (Malta)’
  321. ‘mua’ is: Mundang’
  322. ‘mua_CM’ is: Mundang (Cameroon)’
  323. ‘my’ is: Burmese’
  324. ‘my_MM’ is: Burmese (Myanmar [Burma])’
  325. ‘naq’ is: Nama’
  326. ‘naq_NA’ is: Nama (Namibia)’
  327. ‘nb’ is: Norwegian Bokmål’
  328. ‘nb_NO’ is: Norwegian Bokmål (Norway)’
  329. ‘nd’ is: North Ndebele’
  330. ‘nd_ZW’ is: North Ndebele (Zimbabwe)’
  331. ‘ne’ is: Nepali’
  332. ‘ne_IN’ is: Nepali (India)’
  333. ‘ne_NP’ is: Nepali (Nepal)’
  334. ‘nl’ is: Dutch’
  335. ‘nl_AW’ is: Dutch (Aruba)’
  336. ‘nl_BE’ is: Dutch (Belgium)’
  337. ‘nl_NL’ is: Dutch (Netherlands)’
  338. ‘nmg’ is: Kwasio’
  339. ‘nmg_CM’ is: Kwasio (Cameroon)’
  340. ‘nn’ is: Norwegian Nynorsk’
  341. ‘nn_NO’ is: Norwegian Nynorsk (Norway)’
  342. ‘nus’ is: Nuer’
  343. ‘nus_SD’ is: Nuer (Sudan)’
  344. ‘nyn’ is: Nyankole’
  345. ‘nyn_UG’ is: Nyankole (Uganda)’
  346. ‘om’ is: Oromo’
  347. ‘om_ET’ is: Oromo (Ethiopia)’
  348. ‘om_KE’ is: Oromo (Kenya)’
  349. ‘or’ is: Oriya’
  350. ‘or_IN’ is: Oriya (India)’
  351. ‘pa’ is: Punjabi’
  352. ‘pa_Arab’ is: Punjabi (Arabic)’
  353. ‘pa_Arab_PK’ is: Punjabi (Arabic, Pakistan)’
  354. ‘pa_Guru’ is: Punjabi (Gurmukhi)’
  355. ‘pa_Guru_IN’ is: Punjabi (Gurmukhi, India)’
  356. ‘pl’ is: Polish’
  357. ‘pl_PL’ is: Polish (Poland)’
  358. ‘ps’ is: Pashto’
  359. ‘ps_AF’ is: Pashto (Afghanistan)’
  360. ‘pt’ is: Portuguese’
  361. ‘pt_AO’ is: Portuguese (Angola)’
  362. ‘pt_BR’ is: Portuguese (Brazil)’
  363. ‘pt_GW’ is: Portuguese (Guinea-Bissau)’
  364. ‘pt_MZ’ is: Portuguese (Mozambique)’
  365. ‘pt_PT’ is: Portuguese (Portugal)’
  366. ‘pt_ST’ is: Portuguese (São Tomé and Príncipe)’
  367. ‘rm’ is: Romansh’
  368. ‘rm_CH’ is: Romansh (Switzerland)’
  369. ‘rn’ is: Rundi’
  370. ‘rn_BI’ is: Rundi (Burundi)’
  371. ‘ro’ is: Romanian’
  372. ‘ro_MD’ is: Romanian (Moldova)’
  373. ‘ro_RO’ is: Romanian (Romania)’
  374. ‘rof’ is: Rombo’
  375. ‘rof_TZ’ is: Rombo (Tanzania)’
  376. ‘ru’ is: Russian’
  377. ‘ru_MD’ is: Russian (Moldova)’
  378. ‘ru_RU’ is: Russian (Russia)’
  379. ‘ru_UA’ is: Russian (Ukraine)’
  380. ‘rw’ is: Kinyarwanda’
  381. ‘rw_RW’ is: Kinyarwanda (Rwanda)’
  382. ‘rwk’ is: Rwa’
  383. ‘rwk_TZ’ is: Rwa (Tanzania)’
  384. ‘saq’ is: Samburu’
  385. ‘saq_KE’ is: Samburu (Kenya)’
  386. ‘sbp’ is: Sangu’
  387. ‘sbp_TZ’ is: Sangu (Tanzania)’
  388. ‘seh’ is: Sena’
  389. ‘seh_MZ’ is: Sena (Mozambique)’
  390. ‘ses’ is: Koyraboro Senni’
  391. ‘ses_ML’ is: Koyraboro Senni (Mali)’
  392. ‘sg’ is: Sango’
  393. ‘sg_CF’ is: Sango (Central African Republic)’
  394. ‘shi’ is: Tachelhit’
  395. ‘shi_Latn’ is: Tachelhit (Latin)’
  396. ‘shi_Latn_MA’ is: Tachelhit (Latin, Morocco)’
  397. ‘shi_Tfng’ is: Tachelhit (Tifinagh)’
  398. ‘shi_Tfng_MA’ is: Tachelhit (Tifinagh, Morocco)’
  399. ‘si’ is: Sinhala’
  400. ‘si_LK’ is: Sinhala (Sri Lanka)’
  401. ‘sk’ is: Slovak’
  402. ‘sk_SK’ is: Slovak (Slovakia)’
  403. ‘sl’ is: Slovenian’
  404. ‘sl_SI’ is: Slovenian (Slovenia)’
  405. ‘sn’ is: Shona’
  406. ‘sn_ZW’ is: Shona (Zimbabwe)’
  407. ‘so’ is: Somali’
  408. ‘so_DJ’ is: Somali (Djibouti)’
  409. ‘so_ET’ is: Somali (Ethiopia)’
  410. ‘so_KE’ is: Somali (Kenya)’
  411. ‘so_SO’ is: Somali (Somalia)’
  412. ‘sq’ is: Albanian’
  413. ‘sq_AL’ is: Albanian (Albania)’
  414. ‘sr’ is: Serbian’
  415. ‘sr_Cyrl’ is: Serbian (Cyrillic)’
  416. ‘sr_Cyrl_BA’ is: Serbian (Cyrillic, Bosnia and Herzegovina)’
  417. ‘sr_Cyrl_ME’ is: Serbian (Cyrillic, Montenegro)’
  418. ‘sr_Cyrl_RS’ is: Serbian (Cyrillic, Serbia)’
  419. ‘sr_Latn’ is: Serbian (Latin)’
  420. ‘sr_Latn_BA’ is: Serbian (Latin, Bosnia and Herzegovina)’
  421. ‘sr_Latn_ME’ is: Serbian (Latin, Montenegro)’
  422. ‘sr_Latn_RS’ is: Serbian (Latin, Serbia)’
  423. ‘sv’ is: Swedish’
  424. ‘sv_FI’ is: Swedish (Finland)’
  425. ‘sv_SE’ is: Swedish (Sweden)’
  426. ‘sw’ is: Swahili’
  427. ‘sw_KE’ is: Swahili (Kenya)’
  428. ‘sw_TZ’ is: Swahili (Tanzania)’
  429. ‘swc’ is: Congo Swahili’
  430. ‘swc_CD’ is: Congo Swahili (Congo – Kinshasa)’
  431. ‘ta’ is: Tamil’
  432. ‘ta_IN’ is: Tamil (India)’
  433. ‘ta_LK’ is: Tamil (Sri Lanka)’
  434. ‘te’ is: Telugu’
  435. ‘te_IN’ is: Telugu (India)’
  436. ‘teo’ is: Teso’
  437. ‘teo_KE’ is: Teso (Kenya)’
  438. ‘teo_UG’ is: Teso (Uganda)’
  439. ‘th’ is: Thai’
  440. ‘th_TH’ is: Thai (Thailand)’
  441. ‘ti’ is: Tigrinya’
  442. ‘ti_ER’ is: Tigrinya (Eritrea)’
  443. ‘ti_ET’ is: Tigrinya (Ethiopia)’
  444. ‘to’ is: Tonga’
  445. ‘to_TO’ is: Tonga (Tonga)’
  446. ‘tr’ is: Turkish’
  447. ‘tr_TR’ is: Turkish (Turkey)’
  448. ‘twq’ is: Tasawaq’
  449. ‘twq_NE’ is: Tasawaq (Niger)’
  450. ‘tzm’ is: Central Morocco Tamazight’
  451. ‘tzm_Latn’ is: Central Morocco Tamazight (Latin)’
  452. ‘tzm_Latn_MA’ is: Central Morocco Tamazight (Latin, Morocco)’
  453. ‘uk’ is: Ukrainian’
  454. ‘uk_UA’ is: Ukrainian (Ukraine)’
  455. ‘ur’ is: Urdu’
  456. ‘ur_IN’ is: Urdu (India)’
  457. ‘ur_PK’ is: Urdu (Pakistan)’
  458. ‘uz’ is: Uzbek’
  459. ‘uz_Arab’ is: Uzbek (Arabic)’
  460. ‘uz_Arab_AF’ is: Uzbek (Arabic, Afghanistan)’
  461. ‘uz_Cyrl’ is: Uzbek (Cyrillic)’
  462. ‘uz_Cyrl_UZ’ is: Uzbek (Cyrillic, Uzbekistan)’
  463. ‘uz_Latn’ is: Uzbek (Latin)’
  464. ‘uz_Latn_UZ’ is: Uzbek (Latin, Uzbekistan)’
  465. ‘vai’ is: Vai’
  466. ‘vai_Latn’ is: Vai (Latin)’
  467. ‘vai_Latn_LR’ is: Vai (Latin, Liberia)’
  468. ‘vai_Vaii’ is: Vai (Vai)’
  469. ‘vai_Vaii_LR’ is: Vai (Vai, Liberia)’
  470. ‘vi’ is: Vietnamese’
  471. ‘vi_VN’ is: Vietnamese (Vietnam)’
  472. ‘vun’ is: Vunjo’
  473. ‘vun_TZ’ is: Vunjo (Tanzania)’
  474. ‘xog’ is: Soga’
  475. ‘xog_UG’ is: Soga (Uganda)’
  476. ‘yav’ is: Yangben’
  477. ‘yav_CM’ is: Yangben (Cameroon)’
  478. ‘yo’ is: Yoruba’
  479. ‘yo_NG’ is: Yoruba (Nigeria)’
  480. ‘zh’ is: Chinese’
  481. ‘zh_Hans’ is: Chinese (Simplified)’
  482. ‘zh_Hans_CN’ is: Chinese (Simplified, China)’
  483. ‘zh_Hans_HK’ is: Chinese (Simplified, Hong Kong SAR China)’
  484. ‘zh_Hans_MO’ is: Chinese (Simplified, Macau SAR China)’
  485. ‘zh_Hans_SG’ is: Chinese (Simplified, Singapore)’
  486. ‘zh_Hant’ is: Chinese (Traditional)’
  487. ‘zh_Hant_HK’ is: Chinese (Traditional, Hong Kong SAR China)’
  488. ‘zh_Hant_MO’ is: Chinese (Traditional, Macau SAR China)’
  489. ‘zh_Hant_TW’ is: Chinese (Traditional, Taiwan)’
  490. ‘zu’ is: Zulu’
  491. ‘zu_ZA’ is: Zulu (South Africa)’

Continue Reading →
1

Roundup: Analytics

So the latest add to the Wenderlich tutorial empire is a post on adding analytics to your games,

Game Analytics 101

… using yet another analytics service we hadn’t heard of before but does look interesting: Playtomic!

The Playtomic APIs drop right into your game and are so easy novice developers implement it without hassle. The APIs are available for Flash games using ActionScript 3 or ActionScript 2, for HTML5 games using JavaScript (like the awesome ImpactJS), for iPhone/iPod/iPad games using Objective C, and for web/mobile games built on Unity3d, Android games using Java or C# (Mono for Android), and C++ games…

That does sound like a pretty solid choice for the multiplatform game developer, indeed. And their SDK comes as source, which is always a nice feature too.

This looks like a good place to do a bit of a roundup of current major contenders in that analytics space, since it’s been quite a while since our last one. Quite a while indeed.

Localytics that we mentioned recently still looks like what we’d call our first choice for an iOS only app.

Flurry just seems to keep on growing and adding features.

Google Analytics seems to win friends here and there. And hey, it did top this list of Best Real Time Analytic Tools.

Apsalar looks like a definitely interesting contender:

The principle of re-engagement is what Apsalar is pinning its product offering on. It calls the environment it works in “mobile engagement management” (MEM) and is similar to what analytics company Flurry, likely Apsalar’s closest competitor, does with its analytics and AppCircle Re-Engagement tool. Localytics uses its data to help premium publishers push notifications to readers. Socialize and BeInToo have engagement layers based on social and gamification layers. To a certain extent, Apsalar is playing in all of these realms…

This Quora question lists some more you might want to look into.

And if you’re still on the “so what does this all do for me exactly?” side of things, might want to check out

Wooga: Building a Successful Social Game by Combining Metrics With Emotion

Making Better Decisions Based On Tracking Data

Any other of the plethora of analytic tools out there that you think compelling enough to merit in depth evaluation for an iOS project, Dear Reader? Or have any strikingly postive/negative experiences with any of these to report?

Continue Reading →
0

Dependency Graphing

Here’s a little script to help you delight in/be horrified by your program structure:

nst / objc_dep

…So how do we achieve loose coupling in our own code? Well, at first, we need to get a better idea on the current coupling. Let us define class dependancy: class A depends on B iff class A imports class B header. With such a definition, we can draw a graph of dependancies between classes by considering the Objective-C #import directives in each class. We assume here that the files are named according to the classes they contain.

I wrote objc_dep.py, a Python script which extracts imports from Objective-C source code. The output can then be displayed in GraphViz or OmniGraffle. You can then see an oriented graph of dependancies between classes…

687474703a2f2f736572696f742e63682f626c6f672f706963732f6f626a635f6465702f6c617267657270726f6a6563742e706e67.png

Just the thing to hopelessly confuse those documentation-insisting project managers!

h/t: @jomtwi,@myell0w, maniacdev!  

Continue Reading →
0

CeedMath + CeedGL

Here’s a couple of new libraries that look worth keeping an eye on for your hardcore computational needs:

rsebbe / CeedMath

CeedMath is a library for doing computer graphics math on Mac and iPhone, although it could be ported to other environment easily.

CeedMath is about computation with vectors and matrices, as well as boxes, rays, quaternions, and other CG types. It was designed to be easy to use and understand, and at the same time small and efficient.

CeedMath has simple data structures and operates easily with other formats. It is implemented in C with a form of template that allows a single implementation for both float and double types. That makes it possible to use it as is in Obj-C code…

rsebbe / CeedGL

CeedGL is a library that encapsulates OpenGL objects into Objective-C objects. It does not attempt to force a coding style or to define a specific scene graph, but instead aims at making it easier to work with OpenGL from Objective-C.

Modern OpenGL (ES 2.0, Desktop 3.0) defines a number of “objects”, that is, vertex buffers, textures, shaders, programs, framebuffers, etc. that are typically represented by handles (integers). CeedGL proposes to model all these and their relationships with each other as actual Objective-C objects and associated methods. This in turn makes it easier to store and manipulate GL data in your app structure.

CeedGL also defines the concept of “draw command” which ties together vertex buffers, textures, shaders to provide reusable drawing primitives. It also makes it easier to access uniforms and attributes in shaders…

h/t: @rsebbe!

Continue Reading →
0

Autorenewable Warning

Good article here on the problems with using autorenewable IAP subscriptions:

The limited world of auto-renewable subscriptions

We’d particularly like to draw your attention to this bit, what happened after he decided to implement them:

… So I sucked it up and submitted 4.0 with the auto-renewing subscription and the complex server-side code to support it.

It was rejected. I was told via phone about an apparently unwritten rule that I was violating: auto-renewing subscriptions can only be used for apps that deliver “new content” during each renewal period, like magazines. Charging a monthly price for an ongoing service is not allowed.

This Stack Overflow member got it in writing

… Reading between the lines on my rejection call, and seeing it codified more clearly here, it’s obvious that only traditional-style media publishing apps can use auto-renewable subscriptions. They were created solely for the existing newspaper and magazine industry, not web services…

We had one of these rejections happen on one of our projects a little while ago too; “ad-free game play” crosses the unwritten line quite firmly, it seems. That one we had thought was pushing it a bit so we’d found it a mild surprise but not terribly shocking it got rejected; but if you can’t use autorenewables for something that involves ongoing server costs either, well that’s rather more of a design concern, isn’t it?

At the very least, if you’re planning something that’s built around autorenewing revenue, you should carefully read the above links for other people’s experiences, and make sure you have a Plan B ready if Apple in their wisdom decides you’re not playing right!

Continue Reading →
0

DoorwayTransition

This is a stylish looking slide+zoom reveal transition to spice up your view navigation a bit:

mkftr / DoorwayTransition

door1.gif

Easy to integrate too – grab the sample and check it out!

h/t: iOS Developer Tips!

Continue Reading →
0

FourSquare v2 API

Just in case you ever need to put FourSquare support into your apps using the latest OAuth2 API, here’s a new library to help you out with that:

baztokyo / foursquare-ios-api

  • Simple, small and easy to use
  • Authentication using Safari
  • Asynchronous requests support
  • Open source BSD license

Handy if you need it!

h/t: ManiacDev!

Continue Reading →
1

CHCSVParser

This looks like just the thing for your caveman vintage data format dealings:

CHCSVParser

A CHCSVParser works very similarly to an NSXMLParser, in that it synchronously parses the data and invokes delegate callback methods to let you know that it has found a field, or has finished reading a line, or has encountered a syntax error.

A CHCSVParser can be created in one of three ways:

  1. With a path to a file
  2. With the contents of an NSString
  3. With an NSInputStream

CHCSVParser can be configured to parse other “character-seperated” file formats, such as “TSV” (tab-seperated). You can change the delimiter of the parser prior to beginning parsing. The delimiter can only be one character in length, and cannot be any newline character, #, “, or \…

Writing and various conveniences also included.

And just in case it actually doesn’t handle whatever you throw at it, previously we’ve found the cocoadev ReadWriteCSVAndTSV page of valuable assistance with this kind of problem.

Continue Reading →
0
Page 5 of 99 «...34567...»