post

Shots of the new iPhone's interface surface – CrunchGear


iPhone FAQ

Shots of the new iPhone's interface surface
CrunchGear, NY
by John Biggs on May 31, 2009 The world woke this morning to the sight of some of screens from the iPhone 3.0 firmware, proving that we must remain vigilant every single day until WWDC next week. Perhaps tomorrow we'll see images of the iPhone's ...
Photos purport to show new iPhone's autofocus camera, compass Apple Insider
First iPhone 3G 2009 Screens Look Very Real To Me Gizmodo.com
Photos of Next Gen iPhone in Action? Auto-Focus and Compass Mac Rumors
engadget - the iPhone Blog
all 19 news articles
post

The Demise of 'Form Follows Function' – New York Times


New York Times

The Demise of 'Form Follows Function'
New York Times, United States
Thanks to digital technology, designers can squeeze so many functions into such tiny containers that there is more computing power in a basic cellphone (not a fancy model, like a BlackBerry or iPhone, just a cheap one) than at NASA's headquarters when ...
post

HTC S511 Snap Pops Up Early At Best Buy for $519 Without Contract [Phones]

Lest it be lost in the coming maelstrom of Apple iPhone 3G 3.0 and Palm Pre news, let it be known the HTC S511 Snap (aptly labeled a Stepford Wives take on the Blackberry Bold) has popped up at Best Buy a few days before its June 7 release. [BGR]



post

HTC S511 Snap Pops Up Early At Best Buy for $519 Without Contract [Phones]

Detect language – Albanian Arabic Bulgarian Catalan Chinese Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician German Greek < / option> Hebrew Hindi Hungarian Indonesian Italian Japanese Korean Latvian Lithuanian Maltese Norwegian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swedish Thai Turkish Ukrainian Vietnamese > Albanian Arabic Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician German Greek Hebrew Hindi Hungarian Indonesian Italian Japanese Korean Latvian Lithuanian Maltese Norwegian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swedish Thai Turkish Ukrainian Vietnamese swap window.jstiming.load.tick ( 'br'), h = new _History (); ctr = new _TranslateForm (new _LanguageSelector ( 'old_sl', 'sl_select','3 '), new _LanguageSelector (' old_tl ' , 'tl_select','3 '),' old_submit ',' submit_button ', h,' source ',' result_box ',' dict ',' auto trans', '/ translation', '/ translate_t', undefined, 'http : / / 209.85.225.132/translate_f ',' select_text ',' select_document ',' file_div ',' file ', true,' search ',' CLIR '); window.jstiming.load.tick (' prt ') < / script> < input type = hidden name = value hl = en "> < input type = hidden name = gtrans value ="">< table id = suggesttable> < / textarea> Google Home – About Google Translate © 2009 Google < iframe name = hidden_iframe style = "display: none"> var gaJsHost = (( “https:” == document.location.protocol)? “https : / / ssl. “:” http://www. “); document.write (unescape (“% 3Cscript src = ' “+ gaJsHost +” google-analytics.com/ga.js' type =' text / javascript '% 3E% 3C/script% 3E “)); var pageTracker = _gat._getTracker ( “UA-1043770-1″); pageTracker._initData (); pageTracker . _trackPageview ( “/ translate_t? hl = en & ie = ISO-8859-1 & langpair = en | en “); Detect language—AlbanianArabicBulgarianCatalanChineseCroatianCzechDanishDutchEnglishEstonianFilipinoFinnishFrenchGalicianGermanGreekHebrewHindiHungarianIndonesianItalianJapaneseKoreanLatvianLithuanianMalteseNorwegianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwedishThaiTurkishUkrainianVietnamese > AlbanianArabicBulgarianCatalanChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEstonianFilipinoFinnishFrenchGalicianGermanGreekHebrewHindiHungarianIndonesianItalianJapaneseKoreanLatvianLithuanianMalteseNorwegianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwedishThaiTurkishUkrainianVietnamese swap window.jstiming.load.tick(‘br’);h = new _History();ctr = new _TranslateForm(new _LanguageSelector(‘old_sl’,'sl_select’,’3′),new _LanguageSelector(‘old_tl’,'tl_select’,’3′),’old_submit’,'submit_button’, h,’source’,'result_box’,'dict’,'autotrans’,'/translate’,'/translate_t’,undefined,’http://209.85.225.132/translate_f’, ‘select_text’,'select_document’, ‘file_div’, ‘file’,true,’search’,'clir’);window.jstiming.load.tick(‘prt’)Contribute a better translationThank you for contributing your translation suggestion to Google Translate.We'll use your suggestion to improve translation quality in future updates to our system.</ div> <div id=clir> </ div> </ td> </ tr> <tr> <td class=submitcell> <div style=float:left> <select name = sl id = old_sl tabindex = 0 > <option value="auto"> Detect language </ option> <option value="separator" disabled> – </ option> <option value="sq"> Albanian </ option> <option value="ar"> Arabic </ option> <option value="bg"> Bulgarian </ option> <option value="ca"> Catalan </ option> <option value="zh-CN"> Chinese </ option> <option value = "hr"> Croatian </ option> <option value="cs"> Czech </ option> <option value="da"> Danish </ option> <option value="nl"> Dutch </ option> <option SELECTED value = "en"> English </ option> <option value="et"> Estonian </ option> <option value="tl"> Filipino </ option> <option value="fi"> Finnish </ option > <option value="fr"> French </ option> <option value="gl"> Galician </ option> <option value="de"> German </ option> <option value="el"> Greek < / option> <option value="iw"> Hebrew </ option> <option value="hi"> Hindi </ option> <option value="hu"> Hungarian </ option> <option value="id"> Indonesian </ option> <option value="it"> Italian </ option> <option value="ja"> Japanese </ option> <option value="ko"> Korean </ option> <option value = "lv "> Latvian </ option> <option value="lt"> Lithuanian </ option> <option value="mt"> Maltese </ option> <option value="no"> Norwegian </ option> <option value = "pl"> Polish </ option> <option value="pt"> Portuguese </ option> <option value="ro"> Romanian </ option> <option value="ru"> Russian </ option> <option value = "sr"> Serbian </ option> <option value="sk"> Slovak </ option> <option value="sl"> Slovenian </ option> <option value="es"> Spanish </ option> <option value="sv"> Swedish </ option> <option value="th"> Thai </ option> <option value="tr"> Turkish </ option> <option value="uk"> Ukrainian </ option> <option value="vi"> Vietnamese </ option> </ select> <span class=langselect id=sl_select> </ span> <span class="arrow" onclick="ctr._swap()">> </ span> <select name=tl id=old_tl tabindex=0> <option value="sq"> Albanian </ option> <option value="ar"> Arabic </ option> <option value="bg"> Bulgarian </ option> <option value="ca"> Catalan </ option> <option value="zh-CN"> Chinese (Simplified) </ option> <option value="zh-TW"> Chinese (Traditional) </ option> <option value="hr"> Croatian </ option> <option value="cs"> Czech </ option> <option value="da"> Danish </ option> <option value = "nl" > Dutch </ option> <option value="en"> English </ option> <option value="et"> Estonian </ option> <option value="tl"> Filipino </ option> <option value = " fi "> Finnish </ option> <option value="fr"> French </ option> <option value="gl"> Galician </ option> <option SELECTED value="de"> German </ option> <option value = "el"> Greek </ option> <option value="iw"> Hebrew </ option> <option value="hi"> Hindi </ option> <option value="hu"> Hungarian </ option> <option value="id"> Indonesian </ option> <option value="it"> Italian </ option> <option value="ja"> Japanese </ option> <option value="ko"> Korean </ option> <option value="lv"> Latvian </ option> <option value="lt"> Lithuanian </ option> <option value="mt"> Maltese </ option> <option value="no"> Norwegian </ option> <option value="pl"> Polish </ option> <option value="pt"> Portuguese </ option> <option value="ro"> Romanian </ option> <option value = "ru" > Russian </ option> <option value="sr"> Serbian </ option> <option value="sk"> Slovak </ option> <option value="sl"> Slovenian </ option> <option value = " es "> Spanish </ option> <option value="sv"> Swedish </ option> <option value="th"> Thai </ option> <option value="tr"> Turkish </ option> <option value = "uk"> Ukrainian </ option> <option value="vi"> Vietnamese </ option> </ select> <span class=langselect id=tl_select> </ span> <a class = swap href = "" onclick = "ctr._swap (); return false;"> swap </ a> </ div> <div style=float:right> <span class=subbutton id=submit_button> </ span> <input type = submit id = old_submit value = "Translate" tabindex = 0> </ div> </ td> <td> </ td> <td id=dict> </ td> </ tr> <tr> <td colspan=2> <script> window.jstiming.load.tick ( 'br'), h = new _History (); ctr = new _TranslateForm (new _LanguageSelector ( 'old_sl', 'sl_select','3 '), new _LanguageSelector (' old_tl ' , 'tl_select','3 '),' old_submit ',' submit_button ', h,' source ',' result_box ',' dict ',' auto trans', '/ translation', '/ translate_t', undefined, 'http : / / 209.85.225.132/translate_f ',' select_text ',' select_document ',' file_div ',' file ', true,' search ',' CLIR '); window.jstiming.load.tick (' prt ') < / script> </ td> <td ALIGN=RIGHT> <span id=zippyspan onclick="_rolldown()"> <img src = "http://www.google.com/images/zippy_plus_sm.gif" style = " margin-right: 0.33em; visibility: hidden "id = zippyicon> </ span> </ td> </ tr> </ table> </ form> <table id=suggesttable> <tr> <td colspan=3> <div id=thanks style="height:0px; display: none"> <span style="padding:2px; background-color:#ff9" id=sug_thk> </ span> </ div> <form action = " / translate_suggestion "target = hidden_iframe method = post id = suggestion_form style =" height: 0px; overflow: hidden; display: none "class = highlight onsubmit =" _submitroll ()">< input type = hidden name = value hl = en "> <input type=hidden name=oe value="ISO-8859-1"> <input type=hidden name=text value=""> <input type=hidden name=langpair value="en|de"> < input type = hidden name = gtrans value ="">< table id = suggesttable> <td <tr> width=49%> <span style="float: right; font-size:smaller" id=sug_exp> </ span > </ td> <td width=2% rowspan=2> </ td> <td id=utranscell width=49%> <textarea name=utrans wrap=SOFT dir="ltr" rows=5 id=suggestion> < / textarea> </ td> </ tr> <tr> <td> </ td> <td ALIGN=RIGHT> <input type=submit value="Contribute"> </ td> </ tr> </ table> </ form> </ td> </ tr> </ table> <div class=footer> <a href="http://www.google.com/webhp?hl=en"> Google Home </ a > – <a href="http://www.google.com/intl/en/help/faq_translation.html"> About Google Translate </ a> <br> <br> © 2009 Google </ div> < iframe name = hidden_iframe style = "display: none"> </ iframe> </ div> <script type="text/javascript"> var gaJsHost = (( "https:" == document.location.protocol)? "https : / / ssl. ":" http://www. "); document.write (unescape ("% 3Cscript src = ' "+ gaJsHost +" google-analytics.com/ga.js' type =' text / javascript '% 3E% 3C/script% 3E "));</ script> <script type="text/javascript"> var pageTracker = _gat._getTracker ( "UA-1043770-1"); pageTracker._initData (); pageTracker . _trackPageview ( "/ translate_t? hl = en & ie = ISO-8859-1 & langpair = en | en ");</ script> </ body> </ html>Google Home – About Google Translate©2009 Googlevar gaJsHost = ((“https:” == document.location.protocol) ?”https://ssl.” : “http://www.”);document.write(unescape(“%3Cscript src=’” + gaJsHost +”google-analytics.com/ga.js’ type=’text/javascript’%3E%3C/script%3E”));var pageTracker = _gat._getTracker(“UA-1043770-1″);pageTracker._initData();pageTracker._trackPageview(“/translate_t?hl=en&ie=ISO-8859-1&langpair=de|en”);

post

Mr. Blurrycam takes new iPhone’s features for a test drive? (updated)

Detect language – Albanian Arabic Bulgarian Catalan Chinese Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician German Greek < / option> Hebrew Hindi Hungarian Indonesian Italian Japanese Korean Latvian Lithuanian Maltese Norwegian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swedish Thai Turkish Ukrainian Vietnamese > Albanian Arabic Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician German Greek Hebrew Hindi Hungarian Indonesian Italian Japanese Korean Latvian Lithuanian Maltese Norwegian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swedish Thai Turkish Ukrainian Vietnamese swap window.jstiming.load.tick ( 'br'), h = new _History (); ctr = new _TranslateForm (new _LanguageSelector ( 'old_sl', 'sl_select','3 '), new _LanguageSelector (' old_tl ' , 'tl_select','3 '),' old_submit ',' submit_button ', h,' source ',' result_box ',' dict ',' auto trans', '/ translation', '/ translate_t', undefined, 'http : / / 209.85.225.132/translate_f ',' select_text ',' select_document ',' file_div ',' file ', true,' search ',' CLIR '); window.jstiming.load.tick (' prt ') < / script> < input type = hidden name = value hl = en "> < input type = hidden name = gtrans value ="">< table id = suggesttable> < / textarea> Google Home – About Google Translate © 2009 Google < iframe name = hidden_iframe style = "display: none"> var gaJsHost = (( “https:” == document.location.protocol)? “https : / / ssl. “:” http://www. “); document.write (unescape (“% 3Cscript src = ' “+ gaJsHost +” google-analytics.com/ga.js' type =' text / javascript '% 3E% 3C/script% 3E “)); var pageTracker = _gat._getTracker ( “UA-1043770-1″); pageTracker._initData (); pageTracker . _trackPageview ( “/ translate_t? hl = en & ie = ISO-8859-1 & langpair = en | en “); Detect language—AlbanianArabicBulgarianCatalanChineseCroatianCzechDanishDutchEnglishEstonianFilipinoFinnishFrenchGalicianGermanGreekHebrewHindiHungarianIndonesianItalianJapaneseKoreanLatvianLithuanianMalteseNorwegianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwedishThaiTurkishUkrainianVietnamese > AlbanianArabicBulgarianCatalanChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEstonianFilipinoFinnishFrenchGalicianGermanGreekHebrewHindiHungarianIndonesianItalianJapaneseKoreanLatvianLithuanianMalteseNorwegianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwedishThaiTurkishUkrainianVietnamese swap window.jstiming.load.tick(‘br’);h = new _History();ctr = new _TranslateForm(new _LanguageSelector(‘old_sl’,'sl_select’,’3′),new _LanguageSelector(‘old_tl’,'tl_select’,’3′),’old_submit’,'submit_button’, h,’source’,'result_box’,'dict’,'autotrans’,'/translate’,'/translate_t’,undefined,’http://209.85.225.132/translate_f’, ‘select_text’,'select_document’, ‘file_div’, ‘file’,true,’search’,'clir’);window.jstiming.load.tick(‘prt’)Contribute a better translationThank you for contributing your translation suggestion to Google Translate.We'll use your suggestion to improve translation quality in future updates to our system.</ div> <div id=clir> </ div> </ td> </ tr> <tr> <td class=submitcell> <div style=float:left> <select name = sl id = old_sl tabindex = 0 > <option value="auto"> Detect language </ option> <option value="separator" disabled> – </ option> <option value="sq"> Albanian </ option> <option value="ar"> Arabic </ option> <option value="bg"> Bulgarian </ option> <option value="ca"> Catalan </ option> <option value="zh-CN"> Chinese </ option> <option value = "hr"> Croatian </ option> <option value="cs"> Czech </ option> <option value="da"> Danish </ option> <option value="nl"> Dutch </ option> <option SELECTED value = "en"> English </ option> <option value="et"> Estonian </ option> <option value="tl"> Filipino </ option> <option value="fi"> Finnish </ option > <option value="fr"> French </ option> <option value="gl"> Galician </ option> <option value="de"> German </ option> <option value="el"> Greek < / option> <option value="iw"> Hebrew </ option> <option value="hi"> Hindi </ option> <option value="hu"> Hungarian </ option> <option value="id"> Indonesian </ option> <option value="it"> Italian </ option> <option value="ja"> Japanese </ option> <option value="ko"> Korean </ option> <option value = "lv "> Latvian </ option> <option value="lt"> Lithuanian </ option> <option value="mt"> Maltese </ option> <option value="no"> Norwegian </ option> <option value = "pl"> Polish </ option> <option value="pt"> Portuguese </ option> <option value="ro"> Romanian </ option> <option value="ru"> Russian </ option> <option value = "sr"> Serbian </ option> <option value="sk"> Slovak </ option> <option value="sl"> Slovenian </ option> <option value="es"> Spanish </ option> <option value="sv"> Swedish </ option> <option value="th"> Thai </ option> <option value="tr"> Turkish </ option> <option value="uk"> Ukrainian </ option> <option value="vi"> Vietnamese </ option> </ select> <span class=langselect id=sl_select> </ span> <span class="arrow" onclick="ctr._swap()">> </ span> <select name=tl id=old_tl tabindex=0> <option value="sq"> Albanian </ option> <option value="ar"> Arabic </ option> <option value="bg"> Bulgarian </ option> <option value="ca"> Catalan </ option> <option value="zh-CN"> Chinese (Simplified) </ option> <option value="zh-TW"> Chinese (Traditional) </ option> <option value="hr"> Croatian </ option> <option value="cs"> Czech </ option> <option value="da"> Danish </ option> <option value = "nl" > Dutch </ option> <option value="en"> English </ option> <option value="et"> Estonian </ option> <option value="tl"> Filipino </ option> <option value = " fi "> Finnish </ option> <option value="fr"> French </ option> <option value="gl"> Galician </ option> <option SELECTED value="de"> German </ option> <option value = "el"> Greek </ option> <option value="iw"> Hebrew </ option> <option value="hi"> Hindi </ option> <option value="hu"> Hungarian </ option> <option value="id"> Indonesian </ option> <option value="it"> Italian </ option> <option value="ja"> Japanese </ option> <option value="ko"> Korean </ option> <option value="lv"> Latvian </ option> <option value="lt"> Lithuanian </ option> <option value="mt"> Maltese </ option> <option value="no"> Norwegian </ option> <option value="pl"> Polish </ option> <option value="pt"> Portuguese </ option> <option value="ro"> Romanian </ option> <option value = "ru" > Russian </ option> <option value="sr"> Serbian </ option> <option value="sk"> Slovak </ option> <option value="sl"> Slovenian </ option> <option value = " es "> Spanish </ option> <option value="sv"> Swedish </ option> <option value="th"> Thai </ option> <option value="tr"> Turkish </ option> <option value = "uk"> Ukrainian </ option> <option value="vi"> Vietnamese </ option> </ select> <span class=langselect id=tl_select> </ span> <a class = swap href = "" onclick = "ctr._swap (); return false;"> swap </ a> </ div> <div style=float:right> <span class=subbutton id=submit_button> </ span> <input type = submit id = old_submit value = "Translate" tabindex = 0> </ div> </ td> <td> </ td> <td id=dict> </ td> </ tr> <tr> <td colspan=2> <script> window.jstiming.load.tick ( 'br'), h = new _History (); ctr = new _TranslateForm (new _LanguageSelector ( 'old_sl', 'sl_select','3 '), new _LanguageSelector (' old_tl ' , 'tl_select','3 '),' old_submit ',' submit_button ', h,' source ',' result_box ',' dict ',' auto trans', '/ translation', '/ translate_t', undefined, 'http : / / 209.85.225.132/translate_f ',' select_text ',' select_document ',' file_div ',' file ', true,' search ',' CLIR '); window.jstiming.load.tick (' prt ') < / script> </ td> <td ALIGN=RIGHT> <span id=zippyspan onclick="_rolldown()"> <img src = "http://www.google.com/images/zippy_plus_sm.gif" style = " margin-right: 0.33em; visibility: hidden "id = zippyicon> </ span> </ td> </ tr> </ table> </ form> <table id=suggesttable> <tr> <td colspan=3> <div id=thanks style="height:0px; display: none"> <span style="padding:2px; background-color:#ff9" id=sug_thk> </ span> </ div> <form action = " / translate_suggestion "target = hidden_iframe method = post id = suggestion_form style =" height: 0px; overflow: hidden; display: none "class = highlight onsubmit =" _submitroll ()">< input type = hidden name = value hl = en "> <input type=hidden name=oe value="ISO-8859-1"> <input type=hidden name=text value=""> <input type=hidden name=langpair value="en|de"> < input type = hidden name = gtrans value ="">< table id = suggesttable> <td <tr> width=49%> <span style="float: right; font-size:smaller" id=sug_exp> </ span > </ td> <td width=2% rowspan=2> </ td> <td id=utranscell width=49%> <textarea name=utrans wrap=SOFT dir="ltr" rows=5 id=suggestion> < / textarea> </ td> </ tr> <tr> <td> </ td> <td ALIGN=RIGHT> <input type=submit value="Contribute"> </ td> </ tr> </ table> </ form> </ td> </ tr> </ table> <div class=footer> <a href="http://www.google.com/webhp?hl=en"> Google Home </ a > – <a href="http://www.google.com/intl/en/help/faq_translation.html"> About Google Translate </ a> <br> <br> © 2009 Google </ div> < iframe name = hidden_iframe style = "display: none"> </ iframe> </ div> <script type="text/javascript"> var gaJsHost = (( "https:" == document.location.protocol)? "https : / / ssl. ":" http://www. "); document.write (unescape ("% 3Cscript src = ' "+ gaJsHost +" google-analytics.com/ga.js' type =' text / javascript '% 3E% 3C/script% 3E "));</ script> <script type="text/javascript"> var pageTracker = _gat._getTracker ( "UA-1043770-1"); pageTracker._initData (); pageTracker . _trackPageview ( "/ translate_t? hl = en & ie = ISO-8859-1 & langpair = en | en ");</ script> </ body> </ html>Google Home – About Google Translate©2009 Googlevar gaJsHost = ((“https:” == document.location.protocol) ?”https://ssl.” : “http://www.”);document.write(unescape(“%3Cscript src=’” + gaJsHost +”google-analytics.com/ga.js’ type=’text/javascript’%3E%3C/script%3E”));var pageTracker = _gat._getTracker(“UA-1043770-1″);pageTracker._initData();pageTracker._trackPageview(“/translate_t?hl=en&ie=ISO-8859-1&langpair=de|en”);

post

MapQuest.com's latest features just in time for summer road trip – Los Angeles Times


MapQuest.com's latest features just in time for summer road trip
Los Angeles Times, CA
What's not: I'm waiting for My Places to work on my iPhone. At the moment, I can look up directions on a Safari browser using my iPhone, and I can even get MapQuest Local for the iPhone, but I'd love to access my saved maps and get the voice-guided ...
How to bookmark your current location on the iphone Gotta Be Mobile
all 2 news articles
post

The Demise of 'Form Follows Function' – New York Times


New York Times

The Demise of 'Form Follows Function'
New York Times, United States
Thanks to digital technology, designers can squeeze so many functions into such tiny containers that there is more computing power in a basic cellphone (not a fancy model, like a BlackBerry or iPhone, just a cheap one) than at NASA's headquarters when ...
post

Photos purport to show new iPhone's autofocus camera, compass – Apple Insider


Mac Rumors

Photos purport to show new iPhone's autofocus camera, compass
Apple Insider, VA
By Aidan Malley A chinese blog has blurry photos that appear to show an iPhone -- possibly the next-generation model -- using autofocusing with its camera, movie recording and the digital compass. The series of images from UMPCFever make side-by-side ...
Photos of Next Gen iPhone in Action? Auto-Focus and Compass Mac Rumors
First iPhone 3G 2009 Screens Look Very Real To Me Gizmodo.com
Next Generation iPhone Camera… Caught on Camera? the iPhone Blog
iLounge - Gizmodo Australia
all 7 news articles