Reprinted from TidBITS by permission; reuse governed by Creative Commons license BY-NC-ND 3.0. TidBITS has offered years of thoughtful commentary on Apple and Internet topics. For free email subscriptions and access to the entire TidBITS archive, visit http://www.tidbits.com/ #[1]About TidBITS [2]Search All TidBITS Content [3]TidBITS Issue Archive [4]TidBITS Articles Feed [5]TidBITS Full Comments Feed [6]Comment Feed for This Article Logged In! To log in, enter your info below. [7]Close Email ____________________ Password ____________________ (Log In) Log In [8]Need a new password? [9]Need to create an account? Visit Submitted by Back Thanks for submitting your tip! All submissions are moderated by an editor before appearing online. We've reset the form so you can enter another tip. Or you can close the tip submission box. [10]Close TipBITS Submission Please submit only technical tips that will help other TidBITS readers better use their Macs, iPhones, iPads, and related software and hardware. All product announcements should be sent to [11]releases@tidbits.com. Tip title* ____________________ Your tip* ________________________________________ ________________________________________ ________________________________________ URL ____________________ Enter the URL to a Web page that supports your tip. Linked text ____________________ Enter the name of the page linked above. Your name* ____________________ Your email* ____________________ * indicates required fields To help us avoid automated posts and spam, please enter the words below. Preview Your Tip Send Us Your Tip! When you submit a tip, you give us permission to use it. Read [12]our terms for more details. All submissions are reviewed before publication. Our terms: By submitting a tip, you agree to assign TidBITS Publishing Inc., a non-exclusive, worldwide, perpetual license to reproduce, publish, and distribute your tip in connection with the TidBITS Web site and associated products in any media. You agree that you created the content you submitted, and that you have the right to assign us this license. You give us permission to use your name, but your email address won't be publicly displayed or shared. We review all submissions before publication, and reserve the right to select which submissions we feel are appropriate for our readers and to edit those we publish. [13]Close ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ [14]Close Thanks for submitting a comment! Please check your email for a link that, when clicked, will verify that you're a real person and cause your comment to appear immediately. [15]Close Post a Comment In reply to " " Your comment __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ Remaining characters: 0 Your name ____________________ Your email ____________________ Post Comment Our terms: We reserve the right to edit or delete any comment, so please post thoughtfully. We use your email address only to send you a one-time verification message confirming that you posted this comment. We also store your address to allow you to verify using other Web browsers in the future. For more info, see our [16]privacy policy. [17]Close [18]TidBITS: Apple News for the Rest of Us * ________ [go_search_button.gif]-Submit Click for Advanced Search * Get TidBITS via... * [19]Email Email subscription options * [20]RSS Subscribe via RSS * [21]Podcast Subscribe to the postcast * [22]Twitter Get Article Updates via Twitter * [23]Facebook Go to the TidBITS Page at Facebook * [24]iOS App Download the free app for iPhone, iPad, and iPod touch * [25]My Account Click to show or hide the contents of this section. * [26]Log In * [27]Create Account * [28]Subscriptions * [29]Take Control * [30]Account Info * [31]Logout * [32]About Accounts * [33]Member Benefits * [34]TidBITS Home * [35]Sections Click to show or hide the contents of this section. * [36]Business Apps * [37]Entertainment * [38]External Links * [39]Home Macs * [40]Inside TidBITS * [41]iPhone iPad iPod * [42]Just for Fun * [43]Macs & Mac OS X * [44]Media Creation * [45]Networking * [46]Opinion * [47]Problem Solving * [48]Safe Computing * [49]Tech News * [50]Watchlist * [51]Staff Click to show or hide the contents of this section. * [52]Adam Engst * [53]Tonya Engst * [54]Jeff Carlson * [55]Glenn Fleishman * [56]Joe Kissell * [57]Mark H. Anbinder * [58]Matt Neuburg * [59]Rich Mogull * [60]Michael Cohen * [61]Agen Schmitz * [62]Weekly Issues Click to show or hide the contents of this section. * Issue # ____________________ [go_search_button_blk.gif]-Submit * [63]#1143, 24 Sep 12 * [64]#1142, 17 Sep 12 * [65]#1141, 10 Sep 12 * [66]#1140, 27 Aug 12 * [67]#1139, 20 Aug 12 * [68]#1138, 13 Aug 12 * [69]#1137, 06 Aug 12 * [70]#1136, 30 Jul 12 * [71]#1135, 23 Jul 12 * [72]Back Issues * [73]About TidBITS Click to show or hide the contents of this section. * [74]About Us * [75]Advertise * [76]Contact * [77]Copyright * [78]Privacy * * [79]TidBITS Members * [80]Das Keyboard * [81]Smile * [82]Noteboom * [83]Intego * [84]CrashPlan * [85]ScanSnap * [86]Bare Bones Thoughtful, detailed coverage of the Mac, iPhone, and iPad, plus the best-selling [87]Take Control ebooks. Pick an apple! [88][memberapple_red_16x16.png] [memberapple_yellow_16x16.png] [memberapple_orange_16x16.png] [memberapple_green_16x16.png] [memberapple_rainbow_16x16.png] [89]Become a TidBITS member! * [90]Which iPhone 5 Lets You Roam Where You Want? * [91]iPhone 5: Taller, Faster, and More Pixels * [92]iPhone 5 Reviews Appear * [93]With 10.8.2, Mountain Lion Saves Even Better * [94]Facebook Integration Comes to Mountain Lion * [95]Use Your iPhone's Number with Messages in OS X 10.8.2 Mountain Lion * [96]Passbook's Best Is (Probably) Yet to Come * [97]OS X 10.8.2 Eases Notification Center, Messages Frustrations * [98]Going In Depth on Mountain Lion's Notifications * [99]Does Apple's Podcasts App Suck Cellular Data? * [100]Apple Redesigns iPod touch, iPod nano, and iTunes [101]TidBITS Watchlist * [102]iBank 4.6 * [103]Growl 2.0 * [104]Parallels Desktop 8.0.18101 * [105]KeyCue 6.3 * [106]SpamSieve 2.9.5 * [107]Typinator 5.2 * [108]Microsoft Office 2011 14.2.4 and 2008 12.3.4 * [109]Security Update 2012-004 (Snow Leopard) * [110]Mac OS X 10.7.5 Lion Server * [111]EFI and SMC Updates for MacBook Pro and MacBook Air Beware Country-Specific iTunes Stores If you buy an iPhone, iPod touch, or iPad, and you happen to be a user of the iTunes Store in more than one country, take note which country's store you're viewing in iTunes when you plug in the device for the first time. This will be the country the device will register with, and you will be forever barred from purchasing or even updating free apps from anywhere else. The only way out is to delete everything on the device and do a full restore. Visit [112]Eolake's Blog [113]Link to this tip Submitted by Eolake Stobblehouse [114]Share your own tip! | [115]Search TipBITS ____________________ [116]Search [117]Close To help us avoid automated posts and misuse of our site, please enter the words below. [118]Close Submit Gerberding Thanks for your interest in forwarding this article via email! Please fill in your email address and that of the recipient below. You can also include a short message. [119]Close Send to* ____________________ Your email* ____________________ Your name* ____________________ Your message ________________________________________ ________________________________________ ________________________________________ * indicates required fields To help us avoid automated attempts to spam recipients, please enter the words below. Forward This Article! [120]iPhone iPad iPod [121]| 25 Sep 2012 [122]| [123]Print Printer-Friendly Version of This Article | [124]Comment (0) How iOS 6 Will Affect Developers ' and You Send Article to a Friend [125]Tweet If you've been vacationing on the far side of the moon, you may be unaware that Apple released a mess of hardware and software last week, including iOS 6. If you're back on Earth and you haven't installed iOS 6 by now, you've doubtless noticed your iOS device (assuming that it's of fairly recent vintage) trying to gain your attention by badging various icons and generally nagging you to upgrade your system software. At the same time, numerous apps have already been revised for compatibility with iOS 6, and this process can be expected to continue for a while. The excitement is palpable. For me, though, the exciting part of a new iOS release isn't the visible system-level changes and built-in apps. iPad finally gets a clock? It's about time. (Ha ha.) Customizable photo streams? Whatever. Facebook integration? Gag me with a spoon. Siri can launch apps? Should have done this all along. And if Apple feels like jumping the shark by throwing the Google Mobile Maps service out the window in favor of [126]its own maps, that's fine. To me, the fun of iOS is programming it. iOS is a wonderful platform to program; that's why I wrote a book about it ('[127]Programming iOS 5'). What interests me about a new iOS release is what it lets developers do. And you should care about this too, because what developers can do affects what they'll build into apps when writing or rewriting them to adopt iOS 6 features. And that, in turn, affects what you will see and what you'll be able to do. Almost a year ago (see '[128]How iOS 5 Will Affect Developers ' and You,' 17 October 2011), I described certain aspects of the then newly released iOS 5 from a developer's point of view, and made some predictions (which turned out to be extraordinarily accurate and prescient) about how these would affect what users would see on the screens of their iOS devices. This article attempts to do the same for iOS 6. As in my earlier article, I stress that there's nothing here you couldn't deduce for yourself; my sources are mostly Apple's own [129]release notes. Pay No Attention to That Man Behind the Curtain -- Some of the most far-reaching changes are those that occur far upstream from end-users, in the realm of the tools developers use. For instance, Objective-C, the native programming language of iOS's Cocoa touch world, has gained a few elegant shortcuts. None of these are earth-shattering ' certainly nothing as fundamentally revolutionary as Automatic Reference Counting, on which I reported in my earlier article ' and none of them will mean anything to you if you're not an Objective-C programmer; so I'll spare you the technical details of such things as autosynthesis. But trust me when I say that these changes, while small, are part of an Apple agenda of rationalizing Objective-C (to the extent that it can be rationalized, given the age and complexity of its underpinnings), and will mean a lot to developers, in this simple sense: they won't have to write as much code, so they'll be able to put more time and effort into what matters to end-users, namely the actual functionality of the app. Xcode, the milieu in which iOS programmers work, has evolved to version 4.5, and again this will generally mean less work for developers to achieve goals they were previously accomplishing in a more frustrating, time-consuming way, even though you won't know that's happening. Take, for example, storyboards, introduced in Xcode 4.2 as a way of letting developers describe graphically the relationship and transitions between the 'scenes' of an app (where a 'scene' means, roughly, the interface that currently occupies the screen as a whole). It sounds convenient, but in fact storyboards were originally implemented in a half-baked way. In my [130]book about programming iOS 5, for example, I pointed out that to use a storyboard to design a simple animation-free 'modal view' transition was much more work than doing the same thing without the storyboard, because the storyboard interface provided no way to specify 'no animation', and no way to get back from the modal view to the view that triggered the animation. In Xcode 4.5, that and other storyboard limitations are removed, making storyboards more inviting to work with. Another interface design feature of Xcode 4.5 and iOS 6 is the introduction of 'constraints', a new way of describing how interface elements should automatically move and resize themselves when the surrounding interface changes its size. Interface rearrangement has always been a challenge for iOS developers, as the interface must reconfigure itself any time the user rotates the device and the interface rotates to compensate. The early API for describing automatic interface rearrangement worked well for simple interfaces, but complex layout rearrangements among multiple interface elements had to be coded by hand, or (more probably) avoided entirely by keeping the interface fairly simple. Constraints were already available to desktop developers starting with Mac OS X 10.7 Lion, and you may already have seen their effects without realizing it. For example, look at how, in 10.7 Lion and 10.8 Mountain Lion, in the Mail application, when you make the mailbox list on the left wider or narrower, the Delete button in the toolbar slides along to match. Before constraints, such an effect was virtually impossible; the layout of a toolbar was a separate world from that of the main window interface, and followed its own rules. With constraints, that behavior requires effectively no code at all; it can be designed directly in Xcode. Now that iOS 6 implements constraints, iPhone and iPad users may expect to see some similar increase in the sophistication of interface layout. All the Lonely Frameworks, Where Do They All Belong? -- iOS 6 has piled on some additions and changes to various specialized frameworks, and developers of certain kinds of app will want to take advantage of them. The new maps architecture allows apps to interact more easily with the Maps app: instead of displaying its own map, an app can tell the Maps app to display a point of interest. Moreover, there's a new API for letting apps provide turn-by-turn directions, and such an app can share its knowledge with other apps, such as the Maps app, so that they can display those directions as well. The new Passbook app (see '[131]Passbook's Best Is (Probably) Yet to Come,' 20 September 2012) functions as a library for passes (a pass, in general, is any sort of redeemable ticket or token). Vendors can provide passes through email or the browser; apps can also communicate with Passbook to create, delete, and manage passes. The Twitter framework of iOS 5, allowing any app to offer the opportunity to send a tweet, has been expanded to include Facebook and Weibo. Apps can now communicate with the Reminders app. You can expect to see apps taking advantage of these expanded powers, along with improvements in the Game Center and in-app purchase delivery. You'll also notice that your iOS device running iOS 6 evinces a new wariness about letting apps access your various libraries of information. I have always found it sadly ironic that in the supposedly 'sandboxed' world of iOS, an app must obtain the user's explicit permission in order to display an image from the Photos library ' on the dubious grounds that such an image might contain GPS coordinates, and GPS coordinates constitute oh-so-sacred location data ' while any app, without the user's knowledge, is perfectly free to manipulate your Contacts library however it likes, including relaying all the email addresses to a server in the Ukraine, changing all the phone numbers to ring up a pizza delivery service, or just wantonly deleting all the data. In iOS 6, the user is notified the first time an app tries to access a library, and is free to grant or deny such access, just as with Location Services. A Box of Toys -- This is the stuff that makes me feel like a greedy, selfish kid ripping the wrapping off presents: the shiny new changes in the toolbox, the repertoire of interface widgets that Apple gives its developers to play with. What did you bring me this year, Apple??? The major new widget that will have the biggest impact on app interfaces is the collection view. A collection view is like a table view on steroids. A table view is the scrolling column of cells commonly seen in any master'detail app where a list must be displayed; Settings, Mail, and Music are familiar examples. A collection view breaks the bonds of the single vertically scrolling column, so you can expect, in short order, to see horizontally scrollable rows of data, multicolumn tables, and grids of information. Such things were not impossible in the past, but they could be quite tricky for programmers to construct, especially if you had many rows or columns of information to display. You can't simply form the whole grid display in advance to make a vast user-scrollable view; that would cause the device to run out of memory, and your app would be summarily killed. Instead, you have to work one screenful at time, loading the data and forming its visual representation as needed ' that is, as the user is about to scroll that representation onto the screen ' and freeing up memory when the user can no longer see a representation. A table view does this dynamic memory management automatically for the programmer, which is why a table can be very long; but it's limited to a single vertically scrolling column. Programmers who wanted a horizontally scrolling table, or a scrolling grid, as in the Photos app, could perhaps create it as a one-off with some serious effort and ingenuity; but it wasn't easy, and such interfaces are not common, especially when the data is of any size, and are sometimes rather sluggish. The collection view generalizes the entire notion and makes it easy, and implements it efficiently. Moreover, the collection view generalizes the notion of layout. Thus the lines of represented data don't have to be regular; they don't even have to be straight lines! Apple's WWDC 2012 videos demonstrate a collection view being used to implement Cover Flow View, as seen in Mac OS X's Finder or iTunes, where items appear to twist and change size as they scroll across the screen; the videos even show a collection view displaying photos in a circle. So you can expect the collection view to form the basis of some very interesting interface in iOS 6 apps. Most of the other widget changes in iOS 6 rationalize and tighten up what iOS was already doing; they fall less into the category of 'new' and more into the category of 'totally obvious and why didn't you do this long ago?' For example, iOS knows how to draw text in multiple styles, as Mail and iBooks prove, but developers couldn't use such text in the labels, button titles, and editable text fields that permeate the interface; now they can. More drawing effects available on the desktop are now possible in iOS; for example, we can now easily invert an image's colors, make interesting tiling patterns, and perform new image transitions. Page view controllers now allow pages simply to slide, without the telltale 'page turn' animation. The march of color and customizability begun in iOS 5 (and noted in my earlier article) now encompasses additional basic widgets; watch for switches that say something other than 'ON' and 'OFF' (at long last!), along with wild-looking steppers and more. Many other changes will have no obvious visible manifestation, but will mean a lot to developers. For example, Apple has changed how developers signify whether a certain view rotates to compensate when the user rotates the device; you were probably unaware that the old architecture for doing this was challenging and inflexible, but developers weren't, and will rejoice. Similarly, table views now let the developer control easily whether the user can tap to highlight a cell, and section headers and footers are more efficiently managed. Still deeper under the hood, iOS now acquires from OS X some cool collection classes, such as NSMapTable, that only a programmer could love ' and does. Evolutionary Magic -- It's easy for end users of an iOS device to let the magic of the interface lull them into a sense of acceptance and entitlement: it just works, and most users don't care how. When I look at an iOS app's interface and behavior, however, my first impulse is always to try to guess how the app works under the hood and how it accomplishes its magic. Knowing more about how iOS works from the developer point of view makes the magic more impressive, not less. The iOS SDK ' the developer toolbox for programming apps ' was revolutionary when it first appeared (as the iPhone SDK), an ingenious rethinking of Mac OS X's Cocoa aimed at a device with a small screen, a slow processor, limited memory, and only the user's fingers to tell it what to do. Since then, the changes have been mostly evolutionary. iOS has grown, to be sure ' there's a reason why the second edition of my book is 200 pages longer than the first edition ' but mostly it has become cleaner, clearer, more flexible, and more sensibly architected on every release. Linguistic features like blocks and ARC have made Objective-C more elegant and less tedious. Interface widget management tools such as custom view controller containment and view appearance proxies have provided clean, reliable, efficient ways to obtain effects that visionary programmers and designers previously had to accomplish with fragile hacks. iOS 6 is no exception. It has grown from iOS 5 like a tree: it's taller and has a few more branches, but what's really important is that its roots are deeper and more solid. Many sentences in my book where I complain of a missing feature, an inconsistency, a hole in Apple's logical thinking, can now be deleted. What's new in iOS 6? It makes developers happier. And in the long run, as their apps come down the pipeline, that's going to make you happier. Noteboom Video Tutorials for Apple Software: Learn how to use iMovie, iPhoto, Lion, Bento, and more with our highly rated video tutorials available on the Mac App Store and the App Store on your iPad. <[132]http://www.noteboomproductions.com/tb> Comments about How iOS 6 Will Affect Developers ' and You To leave a comment, click Add a Comment and then enter the text, your name, and your email address (which won't be displayed). Your comment will appear after you follow a link in the one-time confirmation message we send to verify that you're a real person. Changes in iOS that expand the toolbox for developers will also affect what you see on the screen. Here are some examples of what might be coming in iOS 6. [133][rss.png] Receive comments via RSS [134]Add a comment There are no comments on this article. ____________________ [135]Search QR Code for this page [136]What's this image? Cached. Unless otherwise noted, this article is copyright © 2012 TidBITS Publishing, Inc. TidBITS is copyright © 2012 TidBITS Publishing Inc. Reuse governed by [137]Creative Commons License. [138]Links monetized by VigLink [139]About TidBITS | [140]Advertise with TidBITS! | [141]Contact Info | [142]Copyright Terms | [143]Privacy Policy References Visible links 1. http://tidbits.com/about/about-tidbits.html 2. http://tidbits.com/search/ 3. file://localhost/tmp/lynxXXXX41ahya/tb-issues/ 4. http://tidbits.com/feeds/tidbits_blurb.rss 5. http://tidbits.com/commentfeeds/firehose.xml 6. http://tidbits.com/commentfeeds/13296.xml 7. javascript:void(0) 8. file://localhost/forgot_password 9. file://localhost/create_account 10. javascript:void(0) 11. mailto:releases@tidbits.com 12. javascript:void(0) 13. javascript:void(0) 14. javascript:void(0) 15. javascript:void(0) 16. http://tidbits.com/privacy.html 17. javascript:void(0) 18. file://localhost/ 19. file://localhost/lists.html 20. file://localhost/feeds/tidbits_blurb.rss 21. http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=276986548 22. http://www.twitter.com/TidBITS 23. http://www.facebook.com/pages/TidBITS/195314925519 24. http://itunes.apple.com/us/app/tidbits-news/id348629441?mt=8 25. javascript:void(0) 26. file://localhost/account 27. file://localhost/create_account 28. file://localhost/subscriptions 29. file://localhost/account_tc 30. file://localhost/account 31. javascript:void(0) 32. file://localhost/about_accounts.html 33. file://localhost/member_benefits.html 34. file://localhost/ 35. javascript:void(0) 36. file://localhost/section/business 37. file://localhost/section/entertainment 38. file://localhost/section/links 39. file://localhost/section/home 40. file://localhost/section/inside 41. file://localhost/section/iphone-ipad-ipod 42. file://localhost/section/fun 43. file://localhost/section/macs 44. file://localhost/section/creative 45. file://localhost/section/net 46. file://localhost/section/opinion 47. file://localhost/section/support 48. file://localhost/section/security 49. file://localhost/section/tech 50. file://localhost/section/watchlist 51. javascript:void(0) 52. file://localhost/author/Adam+C+Engst 53. file://localhost/author/Tonya+Engst 54. file://localhost/author/Jeff+Carlson 55. file://localhost/author/Glenn+Fleishman 56. file://localhost/author/Joe+Kissell 57. file://localhost/author/Mark+Anbinder 58. file://localhost/author/Matt+Neuburg 59. file://localhost/author/Rich+Mogull 60. file://localhost/author/Michael+Cohen 61. file://localhost/author/Agen+Schmitz 62. javascript:void(0) 63. file://localhost/issue/1143 64. file://localhost/issue/1142 65. file://localhost/issue/1141 66. file://localhost/issue/1140 67. file://localhost/issue/1139 68. file://localhost/issue/1138 69. file://localhost/issue/1137 70. file://localhost/issue/1136 71. file://localhost/issue/1135 72. file://localhost/backissues 73. javascript:void(0) 74. file://localhost/about.html 75. file://localhost/advertising.html 76. file://localhost/contact.html 77. file://localhost/copyright.html 78. file://localhost/privacy.html 79. file://localhost/members.html 80. http://goo.gl/2FaL5 81. http://smle.us/tbte4 82. http://www.noteboomproductions.com/tb 83. http://www.intego.com/virusbarrier?from=tidbits-text 84. http://crashplan.com/ref/tidbits.html 85. http://www.ez.com/sstb 86. http://www.barebones.com/products/bbedit/ 87. http://www.takecontrolbooks.com/?pt=TB-TAGLINE 88. http://tidbits.com/member_benefits.html 89. http://tidbits.com/member_benefits.html 90. file://localhost/article/13258 91. file://localhost/article/13252 92. file://localhost/article/13273 93. file://localhost/article/13284 94. file://localhost/article/13278 95. file://localhost/article/13275 96. file://localhost/article/13282 97. file://localhost/article/13274 98. file://localhost/article/13241 99. file://localhost/article/13266 100. file://localhost/article/13254 101. file://localhost/section/watchlist 102. file://localhost/article/13291 103. file://localhost/article/13290 104. file://localhost/article/13289 105. file://localhost/article/13288 106. file://localhost/article/13287 107. file://localhost/article/13286 108. file://localhost/article/13285 109. file://localhost/article/13281 110. file://localhost/article/13280 111. file://localhost/article/13279 112. http://eolake.blogspot.com/2010/06/tip-for-international-ios-users.html 113. file://localhost/tipbits/221 114. javascript:void(0) 115. javascript:void(0) 116. javascript:void(0) 117. javascript:void(0) 118. javascript:void(0) 119. javascript:void(0) 120. file://localhost/index.cgi?tbcat=17 121. javascript:void(0) 122. javascript:void(0) 123. file://localhost/article/13296?print_version=1 124. file://localhost/tmp/lynxXXXX41ahya/L17432694-1451TMP.html#comments 125. https://twitter.com/share 126. http://theamazingios6maps.tumblr.com/ 127. http://shop.oreilly.com/product/0636920023562.do 128. http://tidbits.com/article/12560 129. https://developer.apple.com/library/ios/navigation/#section=Resource%20Types&topic=Release%20Notes 130. http://www.apeth.com/iOSBook/ch19.html#_storyboards 131. http://tidbits.com/article/13282 132. http://www.noteboomproductions.com/tb 133. file://localhost/commentfeeds/13296.xml 134. javascript:void(0) 135. javascript:void(0) 136. http://tidbits.com/article/10616 137. http://tidbits.com/terms/ 138. http://www.viglink.com/policies/ftc?vgtag=badge 139. file://localhost/about.html 140. file://localhost/advertising.html 141. file://localhost/contact.html 142. file://localhost/copyright.html 143. file://localhost/privacy.html Hidden links: 144. javascript:void(0) 145. http://www.noteboomproductions.com/tb .