"abgjb": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"widgets\";\nmeta icon \"Callout\";\nmeta color \"#ff9955bb\";\nmeta rootId \"xhf1Sp6J1xBm2sAyHDvS1Bdb\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta platform \"current\";\n#main\naction example() {\n // * display a social network message\n code→message(bazaar→current_user, time→now, \"hello!\");\n meta private;\n}\n#message\naction message(user: User, dt: DateTime, text: String) {\n // Displays a message in the current box\n do box {\n box→set_margins(0.2, 0.2, 0.2, 0.5);\n $msg := social→create_message($text);\n $msg→set_from($user→name);\n if $user→has_picture then {\n $msg→set_picture_link(\"https://www.touchdevelop.com/api/\" ∥ web→url_encode($user→id) ∥ \"/picture?which=square\");\n }\n $msg→set_time($dt);\n $msg→post_to_wall;\n }\n meta sync;\n}\n#E1WCAiUZJ9Mv8Ia4upv8cGKG\naction picture(url: String) {\n // Displays a web picture, given a url\n $link := web→link_image($url);\n $link→post_to_wall;\n meta sync;\n}\n",
"abtwc": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"api\";\nmeta rootId \"Pvxrj50J41np0XDuid8EnOb3\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// API reference. #docs #api\n#main\naction main() {\n #xXOjGw5JTxlLDQe2 // {parentTopic:contents}\n #xB2bXN2KGFAR2lm4 // {priority:10}\n #VdNuf8cBJH4XUcbn // **api** stands for **A**plication **P**rogramming **I**nterface [wikipedia](http://en.wikipedia.org/wiki/Application_programming_interface).\n #fHSfp1fQeOWTGr52 // You will find the list of built-in types and actions available in TouchDevelop.\n}\n",
"apfwa": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"blog\";\nmeta rootId \"xWuFaE2vZzUwxkHBZgQ9b4Le\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// All the info about the TouchDevelop blog. #docs\n#mZUeD39600MonBqw\naction main() {\n #YGfAkXjDa3ak2Z7x // {parentTopic:contents}\n #h3xZv3nxc55Ty7qp // The official TouchDevelop community blog is hosted at\n #PJB2w8bkCOOKQPNI // > [](https://www.touchdevelop.com/blog)\n #ewje63A7NtIOj48b // The blog is written by the team members and hopefully soon invited community members. All posts are written in TouchDevelop itself as documentation scripts and pulled by the cloud.\n #xjWg4oNJPpQk7NCe // ### how to write a blog post?\n #o2UVZjWDSQ3hmrpH // All TouchDevelop blog posts are written as TouchDevelop scripts. This allows to create beautiful posts mixing code, images and videos.\n #DDm9sGQNW61IKOsm // * create a new script\n #OAQd72IqjonsmtAk // * add ``#docs #blog`` hashtags to the description.\n #JwnC7pjlA6foqnhv // * add this comment ``{parentTopic:blog}``\n #xXhkz5licxZ0M2TL // * don't forget fill the description: it will be used as a summary on the blog landing page\n #NFZBF4LHpxf21fAg // * don't forget to finish your user profile: set a picture, web site and twitter handle if any.\n #I2L8NHb4FdS9pM6s // When you are ready, publish your script and [send us a message](mailto:touchdevelop@microsoft.com) with your blog post script id. we will review it to see if can be posted on the main TouchDevelop blog.\n #xElV25rsIkDkEftt // ### previous blog\n #NjNG49vP0WyJFucd // When TouchDevelop started, we used Nikolai Tillmann's blog on MSDN. You can find all the previous TouchDevelop entries under\n #xa4VqROkVCZesJsC // > [](http://blogs.msdn.com/b/nikolait/archive/tags/touchdevelop/)\n #vkjQ3q6N7IxIs2MC // * [TouchDevelop: Hour of Code™ 2013 tutorials](http://blogs.msdn.com/b/nikolait/archive/2013/11/26/touchdevelop-hour-of-code-tutorials.aspx)\n #v9K8lBTJClfpcsEx // * [Announcing contest winners + TouchDevelop v3.2: Interactive Tutorials](http://blogs.msdn.com/b/nikolait/archive/2013/11/19/announcing-contest-winners-touchdevelop-v3-2-interactive-tutorials.aspx)\n #x4bDUliWx0MQYocZ // * [cloud data for TouchDevelop released today](http://blogs.msdn.com/b/nikolait/archive/2013/10/28/cloud-data-for-touchdevelop.aspx)\n #R2lmiXq0xPiLx47a // * [Microsoft Touch of Summer 2013 Contest](http://blogs.msdn.com/b/nikolait/archive/2013/10/17/microsoft-touch-of-summer-2013-contest.aspx)\n #XXdtxOaF1NycbeBz // * [Announcing TouchDevelop v3.1: Bluetooth, pin to start, Radio, debugger, profiler, insights, tutorials, videos](http://blogs.msdn.com/b/nikolait/archive/2013/09/19/announcing-touchdevelop-v3-1-bluetooth-debugger-and-more.aspx)\n #PA12Z5Phg6z4jUKf // * [Debugging TouchDevelop scripts](http://blogs.msdn.com/b/nikolait/archive/2013/07/10/debugging-touchdevelop-scripts.aspx)\n #yg656Chmpqbme2nz // * [Announcing TouchDevelop v3.0 for Windows Phone 8: unified experience, new language features, NFC, speech and tile APIs](http://blogs.msdn.com/b/nikolait/archive/2013/06/28/touchdevelop-v3-0-for-windows-phone-8-unified-experience-new-language-features-nfc-speech-tiles.aspx)\n #xaO2uAXiKFGcWLYj // * [TouchDevelop v3.0 beta for Windows Phone 8](http://blogs.msdn.com/b/nikolait/archive/2013/05/14/touchdevelop-v3-0-beta-for-windows-phone-8.aspx)\n #x9F2jBCSAtNXu9Kl // * [expanded device support](http://blogs.msdn.com/b/nikolait/archive/2012/11/27/touchdevelop-create-apps-on-ipad-iphone-android-in-addition-to-pc-mac-windows-phone.aspx)\n #J27g7K92fT9Fe4TF // * [Web App Preview](http://blogs.msdn.com/b/nikolait/archive/2012/10/22/announcing-touchdevelop-web-app-preview.aspx)\n #DZlLfb8eB519gc1x // * [v2.10](http://blogs.msdn.com/b/nikolait/archive/2012/08/28/announcing-touchdevelop-v2-10-tutorial-videos-code-synthesis-trace-replay-and-more.aspx), [v2.8](http://blogs.msdn.com/b/nikolait/archive/2012/05/26/announcing-touchdevelop-v2-8-structured-datatypes-tags-better-pages-button
"ckbk": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"teach\";\nmeta rootId \"rfFWOBXKYWbKL3882OCwIeVx\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// Teaching with TouchDevelop. #docs #teach #education\n#sJti4PgyaJBMZl5Xa5UMimxW\naction main() {\n #K1y28DAXzlzjVqnx // {parentTopic:contents}\n #sYkQiq3Kz6SzmixV // {priority:100}\n #VE3zvfX2r4Slzd0O // TouchDevelop makes it fun to learn (and teach) programming skills. This section has lots of ideas for using TouchDevelop in the classroom.\n #A6eQBe2sSnp2lUqk // * **Are you a teacher? Join the [TouchDevelop Teachers group](#pub:sxlktprb)!**\n #xQ6nypfXFlgBD7VZ // ### resources for educators\n #iTqjubSk3ck5JnQE // * [Hour Of Code](https://www.touchdevelop.com/hoc) - all the information to run an **Hour Of Code** with TouchDevelop\n #bBTHXKtvHh3YgmNL // * [](/courses) — choose from different curriculum to teach about mobile app and game creation\n #xbbpj2AABJzoZacv // * [](/tutorials) — step by step tutorials to build games and apps\n #Hd33r1xwwgD7qsD7 // * [docs](/contents) — the built-in documentation\n #qQqt5pFCKhlqbNUX // * [](/book) — currently available for free online; systematic introduction to all basic concepts\n #OPjd1hyHfJ39XbW8 // ### environments\n #lLBw4hzsB8IpuVx9 // * The **TouchDevelop Web App** runs in [most modern browsers](https://www.touchdevelop.com/app/current.browsers).\n #Z4En3ihiQz4Dcdfi // * The [TouchDevelop Windows Phone app](http://www.windowsphone.com/s?appId=fe08ccec-a360-e011-81d2-78e7d1fa76f8) gives access to most sensors and data providers available on modern smartphones. [More resources for educators interested in using Windows Phone...](https://www.touchdevelop.com/teachwindowsphone)\n #uc4AzvPR1oVPRmCN // * The [TouchDevelop Android app](https://play.google.com/store/apps/details?id=com.microsoft.touchdevelop) gives access to notifications on Android\n #bAFkE6FP49vQmk4Q // Learn more about [platforms and supported features](https://www.touchdevelop.com/platforms).\n #T4CItQIBnMyWsjzq // ### create your own tutorials and docs\n #RLolkQMEUD0pU4i5 // In addition to creating fun and useful apps, you can use TouchDevelop to create custom interactive tutorials to augment your curriculum. You can also create your own documentation topics adding to the TouchDevelop documentation. This benefits not only your class, but the entire TouchDevelop community!\n #qc2MeCvS62HoY74P // * [creating interactive tutorials](/creatinginteractivetutorials)\n #Esv88v05v32k6UzH // * [add your own docs](/addyourowndocs)\n #cKhwOfsnzrr9c6Ri // ### manage your classroom\n #ZZ80VlTdiwMCWzcy // * You can create [](/groups) and manage your classrooms through them. Groups have a message board and allow to easily collect homework from your students.\n #xo43SANX5LZxfqRT // * Use a [label printer](/labelprinter) to easily get printed labels from student scripts\n #ow6CAnIoZDQOKOLP // ### follow your students\n #t6fGFzG0xF05rZyE // As a teacher, consider [subscribing](/subscriptions) to your students to see what they are publishing and if they are asking questions.\n #ueEDtziGGzDu30Yi // ### experience\n #x2P2jb0Ng0DiKokb // Visit the [TouchDevelop teaching page](http://research.microsoft.com/touchdevelop/teaching.aspx) at Microsoft Research for a list of how TouchDevelop has been used and is being used in classrooms.\n}\n",
"exvp": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"blank office mix\";\nmeta icon \"AddressBook\";\nmeta rootId \"w0BIoDnMjckDm4IxHPWUL5LO\";\nmeta allowExport \"yes\";\nmeta platform \"current\";\n#theme meta import theme {\n pub \"gnvi\"\n usage {\n action `async` title_1()\n action `async` title_2()\n action `async` title_3()\n action `async` subtle()\n action `async` normal()\n action `sync` example()\n action `async` accent()\n action `async` set_right_aligned(value: Boolean)\n action `async` huge()\n }\n}\n#main\naction slideshow_view(\\u2756: * slideshow_view_page_data) {\n if box→is_init then {\n code→load_settings;\n }\n if true then {\n // We show the question taken as input in the Edit Mode. The answer is passed to the Input Activity created in Edit Mode (and referred by index `0`).\n do box {\n data→settings→question→post_to_wall;\n }\n @\\u267b→forms→input_text_area(\"\", $\\u2756→text→\\u25c8ref);\n @\\u267b→forms→button(\"submit\", $on_tapped);\n where on_tapped() {\n $slideshow := @\\u267b→office_mix→current_viewer;\n $slideshow→complete_input_activity(0, $\\u2756→text, 1, true);\n $slideshow→next_slide;\n }\n }\n meta private;\n meta page;\n meta sync;\n}\n#BbWFpbiBwYWdlIGRhdGEa\ntable slideshow_view_page_data {\n type = \"Object\";\n persistent = false;\n fields {\n #mxIky6R9ZTE4uS48eYA6Q8jB text : String\n }\n}\n#YZGaVg1jhqq9sfncCGsIoHbh meta import forms {\n pub \"rwffb\"\n usage {\n action `sync` `type` display_code()\n action `sync` `type` validator(s: String) returns(error: String)\n action `sync` button(text: String, on_tapped: Action)\n action `sync` checkbox(text: String, checked: Ref[Boolean])\n action `sync` show_example()\n action `sync` input_string_collection(label: String, strings: String_Collection)\n action `sync` input_text_line(label: String, text: Ref[String])\n action `sync` input_text_area(label: String, text: Ref[String])\n action `sync` input_password(label: String, password: Ref[String])\n action `sync` input_number(label: String, text: Ref[String], changehandler: Number_Action)\n action `sync` labeled_content(label: String, content: display_code)\n action `sync` indented_content(content: display_code)\n action `sync` input_choice(label: String, choices: String_Collection, index: Ref[Number])\n action `sync` input_text_line_w\\u002f_validator(label: String, text: Ref[String], errorcheck: validator, changehandler: Text_Action)\n }\n}\n#LHF2iIBnkOQcwhcoQKFiR4A2 meta import widgets {\n pub \"abgjb\"\n usage {\n action `sync` message(user: User, dt: DateTime, text: String)\n action `sync` picture(url: String)\n }\n}\n#iDxzKDq4042OKy7IX4V4D91F meta import layout {\n pub \"cwgn\"\n usage {\n action `sync` stretch_and_center()\n action `async` grid_of_squares(cell_content: Number_Action, count: Number, grid_width: Number, grid_height: Number)\n action `async` horizontal_hub_of_squares(cell_content: Number_Action, count: Number, cell_size: Number, group_width: Number, total_height: Number)\n action `async` vertical_hub_of_squares(cell_content: Number_Action, count: Number, cell_size: Number, total_width: Number, group_height: Number)\n }\n}\n#BdGhpbmca\ntable Settings {\n type = \"Object\";\n persistent = false;\n fields {\n #qkFSUVeLWy15xGwkOSkxcgi8 question : String\n }\n}\n#xlTdxT5HNK4dNq8WHyG47gDw\naction main() {\n // See `Office Mix` library for more documentation.\n @\\u267b→office_mix→connect;\n if @\\u267b→office_mix→is_edit_mode then {\n // `Edit Mode` is activated when the user opens your app while making the slides.\n code→settings_view;\n }\n else { if @\\u267b→office_mix→is_view_mode then {\n // `View Mode` is fired when the slide containing your app is activated on a slideshow or in Mix lesson player.\n code→slideshow_view;\n }\n else { } } \n}\n#megDAnWFZthpuq80jwFuWisO\nvar settings : * Settings {\n // A
"fjsc": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"faq\";\nmeta rootId \"NvlICz4I1I4g3L6rdvkN1Sb4\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// Frequently asked questions. #docs #faq\n#main\naction main() {\n #pfDKPZiTONFucbOz // {parentTopic:contents}\n #rKH7VYjeSZ5qTv4I // ### who created TouchDevelop\n #kWnrfxiKMJ4aYPsI // TouchDevelop is developed by the Research in Software Engineering group (RiSE) at Microsoft Research. [Learn more about our research...](http://research.microsoft.com/touchdevelop)\n #egrX5Ed4mYOl7Bth // ### why was TouchDevelop created\n #gEGMxxU9wvoQlver // We want to explore how the future of software development might look like when the most commonly accessible computing devices are mobile devices. We have found that TouchDevelop is a great way to learn or teach programming.\n #pmZW7gwSpCwvSeBk // ### what browsers and devices does TouchDevelop run on?\n #Gqsjd4PJ7qF7a0UK // The TouchDevelop Web App runs on [virtually all recent platforms](https://www.touchdevelop.com/platforms), including iPad, iPhone, Android (phones and tablets), Macs, PC. For the Windows Phone, you can download the [TouchDevelop app from the Windows Phone Store](http://windowsphone.com/s?appId=fe08ccec-a360-e011-81d2-78e7d1fa76f8).\n #bigUk0bn4RM2dCYR // ### does TouchDevelop replace other professional IDEs?\n #ohexDxybnieKiV0T // TouchDevelop has been designed for mobile devices with touchscreens. While it can also be used with keyboard and mouse, you still want to use professional development tools when you have the resources.\n #YWFFlzEAXfYkdY88 // ### how do I create Windows/Windows Phone/Android/iOS apps?\n #xdUdmLFEFOLeF1cA // Follow the instructions in [export to app](/exporttoapp).\n #xmTE4RGGcQR3sKzQ // ### what about the TouchDevelop Windows Phone app\n #PtmBA5LLot5CBSoc // The TouchDevelop Windows Phone app was the first to launch in April 2011. The TouchDevelop Web App Preview was launched in October 2012. Certain sensors and data providers that can be used in the TouchDevelop Windows Phone app and generated Windows 8 apps are not accessible on the web due to browser restrictions.\n #ojIFVLpIRq4h9Vxv // ### does TouchDevelop work offline?\n #Q5zmZEpbcPASdM4H // Yes! After you run the web app once, it will be cached on your device. [learn more...] (/offlinesupport)\n #NPgmp4E1zKDUWzci // ### how can I change the language of TouchDevelop?\n #jmGZ4cLweV6NmbgY // Go to your [account settings](/accountsettings) and change your preferred language. TouchDevelop is not yet localized in all languages so your mileage will vary.\n #RuC7HRkZBa31lEwn // ### does TouchDevelop work in my language?\n #f1cC43ALRBBO76r5 // TouchDevelop is partially localized. Help us localize TouchDevelop by playing the [localization game](http://touchdeveloptranslator.azurewebsites.net/)!\n #CaQzOPGewL8pVAUE // TouchDevelop will also automatically translate the help into your language using Microsoft Translator.\n #uVYmmkB4gCGsybvf // ### how was the TouchDevelop Web App created?\n #rWI2639IS1nEOZXu // The TouchDevelop Web App is written in Type Script. [Watch this video from the //build/ conference](http://channel9.msdn.com/Events/Build/2012/3-018) to learn more.\n #zMkQvwvtUNp76J2L // ### how do I report bugs or contact the TouchDevelop team?\n #ul12npnsSIJDd4AI // Tap on the `feedback` link on the lower right of this page.\n}\n",
"kkwd": "meta version 'v2.2';\nmeta name \"physics game starter\";\n// Tap the screen to creates bubbles!\n\naction main() {\n // The board is a 2D canvas with a physics engine. Gravity makes sprites fall and boundary makes them bounce.\n wall→set_background(colors→random);\n data→board := media→create_landscape_board(800, 480);\n data→board→set_gravity(0, 400);\n data→board→create_boundary(0);\n $info := data→board→create_text(100, 20, 24, 'tap to create bubbles');\n $info→set_friction(1);\n // Display the board. The game loop will start after leaving main.\n data→board→post_to_wall;\n}\nvar board : Board {\n}\n\nevent gameloop() {\n // Apply physics and redraw.\n data→board→evolve;\n data→board→update_on_wall;\n meta private;}\n\nevent tap_board\\u003a_board(x: Number, y: Number) {\n // When the board is tapped, create a circle sprite that falls down.\n $circle := data→board→create_ellipse(100, 100);\n $circle→set_pos($x, $y);\n $circle→set_color(colors→random);\n $circle→set_friction(0.005);\n}\n",
"krvn": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank docs\";\nmeta icon \"GPS\";\nmeta color \"#ffa1caf1\";\nmeta rootId \"kPNw3L4aANMbOhHGjD3Zu2QI\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// TODO: update the description. #docs\n#KuT2EaOAEn47T69Y\naction main() {\n #yiJrPOX5VkxgcJrp // You can use the [](/markdown) syntax to write **documentation**.\n #K1W8LqOgGHoaTE04 $x := 42;\n #velf3fNZzB4D7q65 // And interleave code as need or even insert snippets using the ``decl`` macro:\n #zrmo9BjVQdTGtzPL // {decl:main}\n}\n#xOiiduqfYBGjAp4X\nvar snd : Sound {\n is\\_resource = true;\n transient = true;\n}\n#LrnoHkgZHl46sgP8\naction test() {\n #aS25XlJHypSNPB32 skip;\n meta private;\n meta test;\n}\n",
"kxwna": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"contents\";\nmeta rootId \"xD9L5v3m9GPYhDNjn5CSnE5o\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// Documentation. #docs #content\n#OVgF8idv6dH4kLiKyBNuGLSY\naction main() {\n #xfl4uVD2RY4FWYpg // {priority:1}\n #xyAN4z6sCQKOwHWc // Welcome to TouchDevelop, a friendly **mobile app creation environment**. With TouchDevelop you can create apps on your mobile phone, tablet, and PC, and share the apps you create in the cloud.\n #g3DL66Cb9S0ZegTR // ## contents\n #QOmTj1hDA4y6mKlZ // * [Getting Started](/gettingstarted) Learn more about TouchDevelop, and create your first app!\n #nth3IKoU9pTSwIb1 // * [Language Reference](/language) Dig into the details of coding with TouchDevelop.\n #xNCKcYSczgDz7V9A // * [API Reference](/api) Explore the TouchDevelop API, and learn more about the services, types, and action types.\n #xequzJYQ145qm2Zw // * [Tutorials](/tutorials) Expand your knowledge with lots of great tutorials, from games to connected data sharing apps.\n #iN4Ls0QhUddrt9Dg // * [Social Coding](/socialcoding) Understand how to publish, share, merge your scripts with the TouchDevelop environment.\n #c72LZaRxP2NDOTnK // * [Advanced Topics](/advancedtopics) Move beyond the basics and learn about testing, debugging, and more.\n #YHnFwRwN2EXUj90o // * [Teach](/teach) Find out more about creating custom tutorials, and using TouchDevelop in the classroom.\n #ADc1YaDiZ2O74NSJ // * [Games](/games) Discover techniques for creating lots of different types of games.\n #mZEveK8nVUnOOwxh // * [FAQ](/faq) Get answers to your questions with the TouchDevelop FAQ.\n #JHO1xs6a3UF852aE // * [What's New](/whatsnew) Read our release notes for news on the latest features and fixes.\n #ynfwmb0zxcfVhs4p // * [Blog](/blog) subscribe and follow the TouchDevelop community blog\n #x4IdZphhhSfUG283 // ## legal information\n #uvgx7BQH12ER67f9 // By using TouchDevelop you agree to the [Cloud Services Agreement](https://www.touchdevelop.com/legal) with Microsoft Research. Please read our [Privacy Statement](https://www.touchdevelop.com/privacy).\n}\n",
"mfvka": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"touchdevelop local\";\nmeta icon \"GlobeEUA\";\nmeta color \"#ff007fff\";\nmeta rootId \"O6Rs2BjFB4g0ArT2oat8Gpfc\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// Explains how to export a script to the App Store. #docs\n#main\naction main() {\n #YKeb2CW4sOdvQyW9 // {parentTopic:contents}\n #xSh4e5kqwQHcBmkx // It is possible to run TouchDevelop from a local web server on your machine. This allow TouchDevelop to work completely offline, access services required for [app generation](/exporttocordova) or code with [Minecraft](/minecraftpisetup).\n #x35eEyKbLVKI0YGH // ## installation steps\n #juuuaj9Ro2J2Clco // * install [node.js] (http://nodejs.org/)\n #c72W0S2LKE5DVZEb // * create an empty folder for your projects\n #xFRR2AdHdpXNY6Tp // * open a command prompt in your fresh folder and install the **touchdevelop** npm package.\n #hxp4ucOoAsva9ecH // > ``npm install -g http://aka.ms/touchdevelop.tgz``\n #FDTBrovQEeBZm4YP // * launch TouchDevelop locally (make sure you're in your fresh folder)\n #VdVeyI6zCWRyKLoA // > ``touchdevelop``\n #jB3SWBY83Ya2hQve // This will start the TouchDevelop editor in your default browser.\n #GG0Wwd79o4DWGali // ### using non-default browser\n #c9GeLb0N1ocQTHV0 // If you want to use a different browser run ``touchdevelop --cli`` and then point your browser to the URL printed out, it will look **something like** this:\n #Zt9aw3IdHQhkjOAj // > ``Editor URL: http://localhost:4242/editor/beta#td_deployment_key=<your key here>``\n #A85X0jwZQ7nxKmA7 // It is very important to copy&paste the deployment key at the end precisely.\n #oZCkpuvERU4pSBgP // ### caching of resources\n #HZg9zZ33hRQewElr // All [art resources](/art) or scripts that are loaded while using TouchDevelop local are automatically cached on disk, which allows for a better experience.\n #dOWKEqjA2EopKrAa // If you are planning to package TouchDevelop, make sure that you use at least once each required script or tutorial so that they get cached.\n #xJW2i0dpR9ECZHbH // ### packaging\n #xk9FWWSoKznWnmdy // If you plan to package and share your local touchdevelop, you need to perform the following step.\n #OWX4ZYDjngkiBEtL // * go to the **hub**,\n #gHhslghRyoF9m2FR // * tap on `[Settings]`\n #xpnUIIdzjeb32vYB // * tap on `[save offline caches]`\n #HBWc0AdjvaE1PBPq // Copy or zip the folder containing the TouchDevelop files.\n}\n#lRC7ZP4I3ytfLfcRhscBaKF6\nvar monster : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/ymggwtmn\";\n transient = true;\n}\n#xZA3MGCJ6sAJtfqSibDFTyzZ\nvar @1_Click_on_Title : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/syhbuwmb\";\n transient = true;\n}\n#x4oXuBrRP7peqBxOraPy0Ppu\nvar @2_Publish_Script : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/uegejzev\";\n transient = true;\n}\n#Pb7ZRhh1Le4Kwz16DOm6h95t\nvar @3_Click_Export_iOS : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/snnlubem\";\n transient = true;\n}\n#JiJThBxgjuQyZZagv84V67Cc\nvar @4_Export_to_App_Store : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/jhmzbank\";\n transient = true;\n}\n#u2byTeHW2wX14mnA374fzvSh\nvar @5_App_is_Ready : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/pnqogdug\";\n transient = true;\n}\n#XhCWNpaqagoeYlvuBl6OZOHa\nvar @6_Search_for_Xcode : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/ukwoekck\";\n transient = true;\n}\n#ZeXqju7M5bfqlm0Gx6CYvtRK\nvar @7_Open_Xcode : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/akluqtvy\";\n transient = true;\n}\n#xzO7Z4FWRmvE3GvB3nUQGdja\nvar @8_Open_Project_Folder : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/duqdaaut\";\n transient = true;\n}\n#JOEveTZ34fcQQBSty0Y64Edz\nvar @9_Run_on_Simulator : Picture {\n is\\_resour
"mlqea": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"gamepad\";\nmeta icon \"JoyStick\";\nmeta color \"#ff9955bb\";\nmeta rootId \"xCYAjTKR25pBB4IRmMK0nm4f\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// A library that provides a virtual gamepad with keyboard, touch, accelerometer or physical gamepads.\n#main\naction example() {\n #iAAUNeoV3SRfYzb2 // The virtual gamepad that works for accelerometer, keyboard, touch, mouse or console gamepads.\n #Iq9tqh2gWM4rizSm // The library computes a vector that represents the orientation of a virtual joystick.\n #owlUjuL8ac2hBSAk // {hide}\n #FuQWVPr2FDIJMzYz $board := @\\u267b→game→start;\n #xgK3eb0xoxbkyneh $sprite := $board→create_ellipse(20, 20);\n #ZWPwsGsl9p64ZV3A // {/hide}\n #OmphHpb5CKI7uf6f // ### reading data\n #Vskl34wFNiYSQrbW // Use the `current` action to get the current angle of the joystick and the button status.\n #Xe4qJzFH1BMswBVG $p := code→current;\n #Govj2D79bADsyfG4 // The values ``x`` and ``y`` of ``p`` can be used to apply speed or acceleration to sprites. They are always between ``-1`` and ``1``.\n #xJS2TNmfJBQZzks4 $sprite→set_speed($p→x * 50, $p→y * 50);\n #xLS5Ne0GtAN3wBxc // The values of ``x`` and ``y`` ramp up from ``0`` to ``1`` or ``-1`` which allows to create smooth animations. They also ramp down.\n #gesKcthIr5iJV9Bf // ### handling button presses\n #LZHni02fBp8J2dYZ // The value ``z`` indicates if the button is pressed. ``z`` also ramps up from ``0`` to ``1``.\n #krIr922mSJTyUZQl $sprite→set_acceleration_y($p→z * 10);\n #xiCO9EoNc4Nerwbo // You can also register an action that will be raised when the button is first pressed. If the user uses a keyboard, this means that ``space`` is pressed, or it may be a mouse click or pressing a button on a gamepad.\n #qZu0cbj2DyIfzU52 $binding := code→on_button_pressed($@action);\n #imT7vW8zBSjB3Aop where @action() {\n #rVEC9zk3x0gC4OZb // flap the bird!\n }\n #GNOC4Ry9eimP29CM // Later on, you can use ``binding->delete`` to remove the action.\n #cfjCbfsrwwA0ZqyT $binding→delete;\n #gwgZhz1b4YvIekRt // ### controlling sprites\n #k2bfNyVWE76ny2I7 // The ``control sprite`` provides an easy way to control a sprite with the joystick.\n #jzhDiTAvPAg57yvr code→control_sprite($sprite, 50, 0);\n #xOJhGHYxDX6GHNuT // * where ``50`` is the maximum ``speed x`` so the sprite moves horizontally with the joystick\n #S908Ce7SKZnvE2Bg // * where ``0`` is the maximum ``speed y`` so the sprite does **not** move vertically with the joystick.\n #TxTHOrAKW201NNub // ### controlling the background scene\n #UHNq8hFA8hDCdhIg // Similarly to ``control sprite``, the action ``control backgroung scene`` will move the scene view position according to the ``current`` value.\n #SvPpf8Hshabf4Uvm code→control_background_scene(0, 10);\n #kRyIJdzWHDHzzqAe // ### accelerometer\n #x5sT7QqO3Ys47Gre // By default, the joystick uses the accelerometer if available. It can be disbales or enabled using ``settings->use accelerometer``.\n #H2L3DDUr5DSWJbOI code→settings→use_accelerometer := false;\n #AouqZGsi7N5U7ubU // When the accelerometer is used, touch is used solely to record button presses.\n #x2VFytPS2zWM4dlC // ### custom keys\n #jYpIpb7O5eCkMXG8 // By default, the keyboard uses the arrow keys and space. Use `set keys` to use a different set of keys.\n #gGG5PlUtox03FCmh code→settings→set_keys(\"a\", \"w\", \"d\", \"s\", \"space\");\n meta private;\n meta test;\n}\n#k4esRNhmmMLxrqp8 meta import game {\n pub \"iroye\"\n usage {\n #BVGhpbmca\n table Splash_Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #X13V3PCWTQpT2ORT seconds : Number\n #nk8FBg8KCO4gn30S foreground_color : Color\n #Tl89ovYzNYTzCj6A background_color : Color\n }\n }\n action `sync` set_score(value: Number)\n action `async` set_life(value: Number)\n action `sync` start_timer()
"oixlc": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"what\\'s new?\";\nmeta rootId \"oGIahryiInwIpsu2H7pX84CQ\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// release notes #docs\n#gMH7AtpXfxA2FZuYuc70zvTg\naction main() {\n #KN6Hyh4R0VdJdW12 // {parentTopic:contents}\n #C4J9deHXvt4lAMtW // {priority:1}\n #xNGLl7UVKMsrfBtR // {hide}\n #hdiFhuPgtoIAxNMU $board := media→create_landscape_board(800, 480);\n #YFcbdAvVWgJIYuA2 $pic := media→create_picture(480, 800);\n #xHyoPiwr1eIqHsx8 $thing := records→thing_table→add_row;\n #KTDbHXA9o6IYn06Y // {/hide}\n #Gm1rJgBBb7mfxnas // * **Join the [TouchDevelop Updates group](#pub:evjjxsjs)** to be notified about upcoming features and releases.\n #xgSLZR22im6IwCPD // ### March\n #xpr2Q4pO2LOkLFXr // * The BBC announces the [Micro-Bit project](http://www.bbc.co.uk/mediacentre/mediapacks/makeitdigital/micro-bit) project.\n #q1OyHlYqW8XFO7uC // ### February\n #GnTs3k25Lp92y1Fl // * **we're open source on github** at [](https://github.com/Microsoft/TouchDevelop)!\n #bLGyRe88cWcUwPM3 // * deprecated crowd source run and coverage maps collection.\n #NSnGZHMZvQDX4awK // ### January\n #v3L9m2jXHjGCLbDw // * switched the app generation to App Studio and Cordova\n #ZFUQ9GsEs5SSkbgs // * button plugins can load buttons in the editor\n #tS9RO2F48DYHv6bV // * set a wallpaper in the hub!\n #kiA1lM0tw2WGGYET // * set an **icon** and **splash** picture art resource on scripts. The icon is displayed on all searches.\n #Vlmnwr0jCxc0bCty // * support for Python **pip** in ``app->import``. TouchDevelop creates a Python virtual environment and install the required pip packages.\n #wZ2rVQ3FOGZWfEdD // ### December 2014\n #x5oG13lAF6NZyDli // * [group scripts](/groupscripts) allow multiple users to collaborate on a single script\n #PVabV6GQFdt4XBag // * `app->import` allows to import **Node.JS npm** or **Apache Cordova plugins**.\n #wiTYksRN9Hv2iVnq app→import(\"npm\", \"azure-storage\", \"*\");\n #HA4q6o3aE7Cyz6tE // * script [plugins](/plugins) can have button inserted in the script editor\n #qV0pfa992reHW5Hv // * new [arduino tutorials](/arduinotutorials)\n #xJUEp8q1O2PUK74X // {pic:arduino blink:4x4}\n #pZ3uWaouxVtg7RPO // ### November 2014\n #YjF6a4nYSKYHJSXX // * An awesome new tutorial with super-cool videos that explain every step!\n #jSFgLhHY5aFFw6e0 // {follow:Coding Jetpack Jumper!}\n #sLrTw2l2DAXtP4qI // * **beta only:** real time multi user editing of [group scripts](/group scripts)!!!\n #pVVkVwNlJE44ZhD2 // * **beta only:** different editor modes for different users: try the **block mode** and **pro mode**\n #KKYOD6Rx6EWIgrDZ // {pic:block mode:7x7}\n #VnMmHhxgba8g0XJc // {pic:pro mode:7x7}\n #xJCceQUmsB4YdCsp // * new api `app->restart` let's you easily restart your script\n #xmEi5ZOJuHyI5cmR // ### October 2014\n #xnkgZyJ68CUy3ob1 // * when publishing, **add a release note** from the publish dialog\n #OkKSuSF4FBBR0jIS // * fork scripts and **[send a pull request](/pullrequests)**\n #rg4flIOCfg42dcfV // * `[go to]` now works for [extension actions](/extension actions) and [](/libraries)\n #ozPvx4o6D0mIKCYG // * **drag and drop** of statements in editor (when applicable)\n #iGxwLE2IEBp0mtrf // {pic:draganddrop:17x11}\n #aVJIaCI47ed62nvp // * libraries are bound a main script which allows to edit a referenced library and still run the script without switching.\n #Pn0iqqaRpZMaCsIR // * script comments are automatically loaded for earlier versions\n #gzErp0wP0OfPBo4T // * documentation can be browsed outside the editor at [](https://www.touchdevelop.com/docs)\n #K3MUP9gl62nlCIvO // * tutorials and documentation topics are automatically translated using Bing translator based on the browser language\n #vulQJpxFQTfIWRer // * the crowd-sourced localization of TouchDevelop has started! Try it out at [](https://touchdeveloptranslator.azurewebsites.net/)\n #hdQ0ZCKjkKssc0CV // * `box->set font family` allows to specify the font on a box\n #FQYXdoSkXUc82Uyx // * when ren
"qkezc": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"getting started\";\nmeta icon \"CoffeeCup\";\nmeta color \"#ff007fff\";\nmeta rootId \"jgxw4hrQ2FJpvMX5ioKe2B98\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// A few tips on getting started with TouchDevelop. #docs #gettingStarted\n#xIo02XpbLanjKZPs4Os6Y4LA\naction main() {\n #Oqq61gE3scTEvYZY // {parentTopic:contents}\n #zLfUy9LLj4LtaQx1 // {priority:15}\n #BtM6DR2J5yHB6sPI // TouchDevelop lets you **create apps** on all your devices. Let's get started!\n #xTc92pAlcVjk7NIM // ## interactive tutorials\n #UR4kehofIixy8ZqD // Interactive tutorials let you learn at your own pace. We recommend starting out with one or more of these:\n #BMpEHAl89GLjB6Tj // * {follow:first steps with turtle}\n #RyRvlr3i8Xt2QwpU // * {follow:jumping bird tutorial}\n #ZQgFR1AVUm6THyGs // * {follow:coding jetpack jumper}\n #zObCeEa9dPLp8ooa // * {follow:pixel art tutorial}\n #zxrf3iOVA2LWSucN // Try also\n #q9JFJmh12AXcgatn // * [build your first app](http://aka.ms/buildyourfirstapp)\n #Fi2zIopLiFb4rNH4 // * Run an [Hour Of Code](https://www.touchdevelop.com/hoc) with TouchDevelop!\n #yx3F7H4uaTmcHwkO // Browse many other [interactive tutorials](/tutorials) and [courses](/courses). Learn how to build your own games, social apps, and more! Also, check out the book [TouchDevelop - Programming on the Go](/book). It's available as a free download!\n #xJmv15REfU94PGim // ## if you have programming experience...\n #fl1IdthF70YHQxDf // ### Traditional Languages\n #ss44jvTWrjOMlUod // {pic:eclipse:12x5}\n #h4UEzbiXxngho4qF // If you have experience with a traditional programming language such as Java, JavaScript, Python, C#, or C++:\n #P2cb12dV12LdnGN4 // * Start with [hello world](/helloworld) and create a TouchDevelop version of the classic 'hello world' app.\n #Tk1HQSMDs4fk4SuF // * Go to the [dev boot camp](/devbootcamp) and get a quick overview of the TouchDevelop language and environment.\n #xqE7TP69LpivSkjp // * Try a [social app tutorial](/socialapptutorials).\n #xM8eoCxsFuNcZ6Lc // ### Block Programming Environments\n #A6h4niF5i1xLuOXm // {pic:scratch:11x4}\n #k1oezDF4jvXHgk3V // If you have experience with block programming environments such as **Scratch**, **AppInventor**, **Snap!** (BYOB), **code.org**, **Blockly**, or other tools, let us show you how to [transition from blocks to text](/fromblockstotext).\n #KY8dTaEdqs4sjpRG // ## inform and instruct\n #Retn7qEvVW1pvEQZ // In addition to creating fun and useful apps, you can use TouchDevelop to create custom interactive tutorials to show users how to perform specific tasks. You can also create your own documentation topics to expand the TouchDevelop documentation!\n #xCY1IPuWs8bC15Fj // * [creating interactive tutorials](/creatinginteractivetutorials)\n #HIy9PSdtPgJXRY8Z // * [add your own docs](/addyourowndocs)\n}\n#kZWqFwNpvbKrHfETZ2TSQKCA\nvar scratch : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/fpxfkwlk\";\n transient = true;\n}\n#b97YU9g2RQFdWzG22RPqgK2Y\nvar eclipse : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/srtrixfh\";\n transient = true;\n}\n#SxNnQzF2puTSD7MMUORJP2UN\nvar turtle : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/pskgnelo\";\n transient = true;\n}\n",
"szrna": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"export to app\";\nmeta rootId \"xp8sE0p9XtQHYy4T5VhcCufH\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// Export your scripts to Windows, Windows Phone or Web apps. #docs #exportToApp\n#main\naction main() {\n #mEtE4fv17EKWFNsk // {parentTopic:contents}\n #OyrhWsuD1E8yISz4 // You can export your scripts as **Windows** apps, **Windows Phone** apps, **Android** apps, **iPhone/iPad** apps that can be published in the app stores of each platform like the Apple App Store or the Windows Store. You can also export to **Azure** web sites or Office Mix.\n #WE7EBnFwXAl99qEN // ### export to App Studio (Windows, Windows Phone)\n #IttiVt6Tov08b0xK // Windows App Studio allows to export (some of) your script to **Windows** and **Windows Phone** through **a web interface**. However, some features such as network requests are not supported.\n #cwjQRgAGBrDnyXde // * **pros** no tools installation, straightforward web site to publish script to Windows, Windows Phone\n #cGhti0U1la6bYar3 // * **cons** some features such as network requests not supported. Only Windows and Windows Phone supported.\n #jcS5DkQwzxLcTDwC // Interrested? [Get started with App Studio](/exporttoappstudio).\n #xfQwOjyqbCZ6UelA // ### export to Cordova app (iOS, Android, Windows)\n #L1JWCQsWnRYB2dGP // Apache Cordova allows to build **Android**, **iOS**, **Windows**, **Windows Phone**, and more platforms. It also provides access to the hundreds of Cordova plugins to create rich apps in TouchDevelop.\n #xgbXNg3ylPwfJLBw // * **pros** target all platforms supported by Apache Cordova, including **iOS** and **Android**.\n #LMFUy87nZuwZ2okp // * **cons** requires running TouchDevelop locally and installing the Apache Cordova tools.\n #lhynaeP1iq2JdgWj // Interrested? [Get started with Cordova](/exporttocordova).\n #TFt2d3cjCzCX0jtD // ### export to Azure Web Apps (Node.JS)\n #TayahDhQnjYSgEyw // If you're not looking to create a client app, you can also convert a script into a [node.js](http://nodejs.org/) app running as Azure Web App. TouchDevelop also allows to use any [npm](https://www.npmjs.com/) packages after wrapping them into a script.\n #emixj6WcdUjIxT29 // Interrested? [Get started with Azure Web Apps](/exporttoazure).\n #u4X7JAa3t1Px3OWG // ### export to Raspberry PI (Node.JS)\n #LOwcrH5NUAqxKSqQ // You can export scripts to Node.JS and run them wherever Node.JS runs... including the Raspberry Pi 1 or 2!\n #xgUx84IiBWz5UzNv // Interrested? [Get started with Raspberry Pi apps](/raspberrypisetup)\n #loQbqxe3beLcUWdX // ### export to web app or Office Mix\n #WHdYF2YQa2Rm4ErK // * [Export to Office Mix](/officemixdocs) allows to create interactive apps that integrate in online Office Mix presentations.\n #fdHsLajmawNqeu7l // * **HTML5 WebApp** No need for walktrough, just hit the `WebApp` button and you are done!\n #Q23Xhi1Fw36lK2aX // ### where do I start?\n #cDLR6mK0SMJkC4dq // * open your script in the editor\n #IGlhqkpixFMY8PVk // * tap on the **script name** (in the example below, my script)\n #dmmiVzVZsmczyWfs // * go to the `[export]` section\n #w6iey58yu47LbDZd // * select the export option\n}\n#storelogos\nvar storelogos : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/fmiidrfd\";\n transient = true;\n}\n#pic\nvar pic : Picture {\n is\\_resource = true;\n transient = true;\n}\n",
"tiwt": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"blank script plugin\";\nmeta icon \"Brush\";\nmeta color \"#ffe3256b\";\nmeta rootId \"B1BBU2S1UsnHiEXWlTqkabme\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current,editoronly\";\nmeta parentIds \"\";\n// A TouchDevelop plugin. #scriptPlugin #buttonPlugin\n#gYzBYlK5jAx3Qfv9\naction do_stuff(#fK8mH7TfckAPC9Ui editor: Editor) {\n #dFvzotTJtIW2DkOD code→init_log;\n #x1Y6B2xJRSkIezBw // TODO: this action gets called by the editor!\n}\n#YCEitfuBjl2PqD4f meta import ast {\n pub \"njle\"\n usage {\n action `async` `type` update_node(type: String, node: Json_Builder)\n action `async` update_nodes(ast: Json_Builder, update: ♻ ast → update_node)\n action `async` update_script(id: String, update: ♻ ast → update_node)\n action `async` test_plugin(plugin: Text_Action)\n action `sync` find_decl(@script: Json_Builder, name: String) returns(decl: Json_Builder)\n }\n}\n#xUKJA4AiahTHnwv2\nvar logger : App_Logger {\n transient = true;\n}\n#PNnxmlnhF0t47I8b\naction init_log() {\n #QliVR9SuYlA9GDox if data→logger→is_invalid then {\n #tE4d3cGdvoaUcNRY data→logger := app→create_logger(\"plugin\");\n }\n meta private;\n meta sync;\n}\n",
"utqwa": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"language\";\nmeta rootId \"xNNYZSbsMsmUVW3hCWRiTfLg\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// Language syntax. #docs #language\n#main\naction main() {\n #nb4CHA53bkLnp177 // {parentTopic:contents}\n #xksr0QSkw2CcGDsA // {priority:20}\n #QVGutM59qm90cWT6 // The language used in TouchDevelop is a scripty language designed for mobile touch screens.\n #YXtUjZDsrELBt0UG // ### script ingredients\n #xkVhY3xIAh4V7pBq // A script contains all the assets that define an app in TouchDevelop.\n #RHCVqjPUb8Np2MQZ // * [](/code)\n #ABeKPb4ps01sDihS // * [](/events)\n #ku9Q5d89i7hMMxjV // * [](/data)\n #ccme6EgMV4JFdwDu // * [](/art)\n #x7dsK3Fm8wLNpvmh // * [](/records)\n #mGh2QhODjHx8wo6O // * [](/pages)\n #T2tAFXdtdGiAZtYS // * [](/libraries)\n #rlZee7R2av4AuDNk // * [action types](/actiontypes)\n #ueq2d0Ob9YpPC4Z5 // * [cloud data](/cloudsessions)\n #D2UrRuXynuBZFwbG // * [persistent data](/persistentdata)\n #J9GaECB3TwEch6n0 // ### code\n #FYHRMyX72ne4FsHL // The following statements are supported by the TouchDevelop language.\n #xOY6HaDGj7R3a6xd // * basic data types: [](/Number), [](/Boolean), [](/String)\n #ki3gLv4ChlKWKuWe // * straight-line [](/commands)\n #x4fYnOsHU6cjdf46 // * [](/operators)\n #B8wZ8WdXi43jsRdU // * [](/var)\n #uw58aM4s0LGJnSd0 // * [](/if)\n #FBCHh8dHvVIKyB5a // * [](/for)\n #jxWMQRmr4K1bYrZ2 // * [for each](/foreach), [where](/where)\n #c9P484EQ4fAcG7ya // * [](/while)\n #DTktcH0EOqQfT0un // * [](/invalid)\n #KSF57iPUg4OyWhuz // * [](/comment)\n #xMdFaKmbfv7LXjuP // * [](/boxed)\n #RD9QKM4T7ODoMv1G // * [](/ref)\n #Gm4gR8MYoGfH2xl0 // * [async](/asyncactions)\n #Gm4gR8MYoGfH2xl0 // * [inline actions](/inlineactions)\n #Pw2hFORG6ljqw21n // * [extension actions](/extensionactions)\n #FhhCfW53SoBn2DFp // ### user interface\n #xHNe5HvYKNjmaLSh // Support to display values, get user input and sensor data, or create complex user interfaces.\n #sXtk9VktJMfBnvxB // * [user input](/userinput)\n #dyobbxJUUbaB7uMX // * [sensors and touch events](/sensorsanduserinput)\n #x6jX4IIXG2ZHO2fa // * [pages](/pages)\n #G2S1PHtM0JDBnDBf // * [](/wall)\n #xLsOhd7UY4k0i9m3 // * [game board](/gameboard)\n}\n",
"wonx": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"blank tutorial\";\nmeta icon \"Erase\";\nmeta rootId \"H4TKg7Y9ZIPwaE5mv9KlRcjO\";\nmeta allowExport \"yes\";\nmeta platform \"current\";\n// TODO: the description of the tutorial. #docs #tutorials #stepByStep\n#main\naction main() {\n // {template:empty}\n // {templatename:ADJ app}\n // TODO This is the initial screen of the tutorial. Change this description and the template name.\n}\n#wWW6zPLClAxV8Yi341qmQqil\naction \\u00230_main() {\n // This is a tutorial step description which should be followed by the code.\n // TODO change the steps to create your tutorial\n // Learn more about the [Markdown syntax](/markdown) and [interactive tutorials](/creatinginteractivetutorials).\n // {stcode}\n \"Hello\" →post_to_wall;\n // {stcmd:run:this is how you run the code}\n // You can add many steps\n // {stcode}\n for 0 ≤ i < 4 do {\n // The steps are split using a depth-first-search strategy.\n \"Hello Again\" →post_to_wall;\n // {stcmd:run:this is how you run the code}\n }\n}\n",
"yuipc": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"games\";\nmeta rootId \"E1ax9Kdm157CJfSoj2AswUkU\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// Resources on creating games. #docs #games\n#main\naction main() {\n #vpkj0TkCofaguObf // {parentTopic:contents}\n #eKKtA5noHZreltaN // TouchDevelop provides a simple and powerful environment to create engaging mobile games. In this section you can learn more about the game board engine, techniques for animating sprites, and more.\n #h0a0jh2pr6pw2VK0 // * [game board](/gameboard), a 2D game engine\n #MJmuIsFH4wopVnNA // * [sprite sheet](/spritesheet), manage sprite sheets and animations\n #taMaw2T4exuyggQm // * [sprite animation](/spriteanimation), fade in, fade out, scale, move using smooth transitions\n #jiq0SBl002XrFebR // * [parallax backgrounds](/parallaxbackgrounds), create depth effects with background scrolling\n #t0tKdQPBLcBVBH4G // * [](/leaderboards), online high scores\n #MLCuAd6azDerRM5A // * [gamepad](/gamepad), a library to control a game from keyboard, mouse, touch or actual gamepads.\n}\n"
{"name":"Bluetooth","id":"puyd","rootid":"ozpm","userid":"jeiv","description":"Program your paired Bluetooth devices from TouchDevelop. #docs #sensesbluetoothdevices #bluetoothdevice","iconbackground":"#00008B","icon":"Bolt","iconArtId":null,"splashArtId":null,"time":1384928481,"priority":10000,"platforms":["bluetooth"]},
{"name":"Boolean","id":"dcqpa","rootid":"vtpz","userid":"jeiv","description":"A value that can be true or false. #docs #boolean","iconbackground":"#DAA520","icon":"CheckBox","iconArtId":null,"splashArtId":null,"time":1412689681,"priority":10000,"parentTopic":"language"},
{"name":"Build Your First App","id":"tumw","rootid":"bybk","userid":"jeiv","description":"The page links to the tutorial of the \"Build Your First App\" course 70307AE #docs","iconbackground":"#E3256B","icon":"Book","iconArtId":null,"splashArtId":null,"time":1395897414,"priority":10000,"parentTopic":"tutorials"},
{"name":"Build Your First App Educator Notes","id":"bbrcb","rootid":"gjvv","userid":"jeiv","description":"Educator notes for the \"Build Your First App\" course #70307AE #docs","iconbackground":"#E3256B","icon":"Book","iconArtId":null,"splashArtId":null,"time":1412701918,"priority":10000,"parentTopic":"buildyourfirstapp"},
{"name":"Build Your First App: Build a Physics Game With Sprites","id":"qlwr","rootid":"bzpm","userid":"jeiv","description":"Build Your First App Module 4 Tutorial 1: Create a Basic Physics Game #docs #tutorials #ITAcademy #70307AE #m4t1","iconbackground":"#E3256B","icon":"Book","iconArtId":null,"splashArtId":null,"time":1416422687,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/oeluiclq","parentTopic":"buildyourfirstapp"},
{"name":"Build Your First App: Define And Modify Variables","id":"zpwza","rootid":"altu","userid":"jeiv","description":"Build Your First App Module 3 Tutorial 3: Declare and Implement a Variable. #docs #ITAcademy #tutorials #70307AE #m3t3","iconbackground":"#E3256B","icon":"Reading","iconArtId":null,"splashArtId":null,"time":1415343997,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/rxzqbpyt","parentTopic":"buildyourfirstapp"},
{"name":"Build Your First App: Implement Conditional Statements","id":"lxwba","rootid":"altu","userid":"jeiv","description":"Build Your First App Module 3 Tutorial 4: Implement Conditional Statements. #docs #ITAcademy #tutorials #70307AE #m3t4","iconbackground":"#E3256B","icon":"Reading","iconArtId":null,"splashArtId":null,"time":1415344492,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/ujazpuvn","parentTopic":"buildyourfirstapp"},
{"name":"Build Your First App: Implement Script Loops","id":"ohjr","rootid":"altu","userid":"jeiv","description":"Build Your First App Module 3 Tutorial 2: Implement Script Loops. #docs #ITAcademy #tutorials #70307AE #m3t2","iconbackground":"#E3256B","icon":"Reading","iconArtId":null,"splashArtId":null,"time":1415343262,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/aagvyvhj","parentTopic":"buildyourfirstapp"},
{"name":"Build Your First App: Organize Sprites with a Sprite Set","id":"tlboa","rootid":"lekzuvii","userid":"jeiv","description":"Build Your First App Module 4 Tutorial 3: Use Sprite Sets #docs #tutorials #ITAcademy #70307AE #m4t3","iconbackground":"#E3256B","icon":"Book","iconArtId":null,"splashArtId":null,"time":1416422670,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hakgtzve","parentTopic":"buildyourfirstapp"},
{"name":"Build Your First App: Understand Code Execution","id":"imapb","rootid":"altu","userid":"jeiv","description":"Build Your First App Module 3 Tutorial 1: Understand Code Execution. #docs #ITAcademy #tutorials #70307AE #m3t1","iconbackground":"#E3256B","icon":"Reading","iconArtId":null,"splashArtId":null,"time":1415343817,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/sfvfhawf","parentTopic":"buildyourfirstapp"},
{"name":"Build Your First App: Understand Touch Input","id":"olst","rootid":"bzpm","userid":"jeiv","description":"Build Your First App Module 4 Tutorial 2: Understand Touch Input #docs #tutorials #ITAcademy #70307AE #m4t2","iconbackground":"#E3256B","icon":"Book","iconArtId":null,"splashArtId":null,"time":1416422702,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/oeluiclq","parentTopic":"buildyourfirstapp"},
{"name":"Build Your First App: Use the Accelerometer","id":"hkscb","rootid":"bzpm","userid":"jeiv","description":"Build Your First App Module 4 Tutorial 4: Use the Accelerometer #docs #tutorials #ITAcademy #70307AE #m4t4","iconbackground":"#E3256B","icon":"Book","iconArtId":null,"splashArtId":null,"time":1416422648,"priority":10000,"platforms":["accelerometer","musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/oeluiclq","parentTopic":"buildyourfirstapp"},
{"name":"CORS","id":"udrp","rootid":"vufba","userid":"jeiv","description":"Web requests in TouchDevelop may be subject of \"Cross-origin resource sharing\" rules in your browser #docs","iconbackground":"#FF0038","icon":"Bolt","iconArtId":null,"splashArtId":null,"time":1376085418,"priority":10000},
{"name":"Coding Jetpack Jumper!","id":"qkffc","rootid":"asxkrtvt","userid":"lxxx","description":"Get introduced to coding by fixing a broken game, then share it with your friends!\r\n#docs #tutorials #HourOfCode #stepByStep","iconbackground":"#9955BB","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1434473543,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/jbdmnvvc"},
{"name":"New collaboration features","id":"aaida","rootid":"mnfqa","userid":"expza","description":"#docs #blog\r\n\r\nIn this blog post, I present the new collaboration feature, which allows several people from a common group to work on the same script.","iconbackground":"#9955BB","icon":"ChapBack","iconArtId":null,"splashArtId":null,"time":1424216132,"priority":10000,"parentTopic":"blog"},
{"name":"Sprite Animation","id":"nucbb","rootid":"skpl","userid":"jeiv","description":"How to animate properties of sprites. #docs #games","iconbackground":"#008080","icon":"AlmostEqual","iconArtId":null,"splashArtId":null,"time":1412687064,"priority":10000,"parentTopic":"games"},
{"name":"String split","id":"fldx","rootid":"ekrf","userid":"jeiv","description":"Basic examples of string splitting. #docs #StringSplit","iconbackground":"#800080","icon":"ABC","iconArtId":null,"splashArtId":null,"time":1364933442,"priority":10000},
{"name":"TODO","id":"nldr","rootid":"nldr","userid":"jeiv","description":"A brief explanation about the TODO #docs #todo","iconbackground":"#9955BB","icon":"Person","iconArtId":null,"splashArtId":null,"time":1367469361,"priority":10000},
{"name":"TouchDevelop goes open-source","id":"gfvea","rootid":"gszde","userid":"wonm","description":"Microsoft Research is releasing the TouchDevelop web app on GitHub under the MIT license. #blog #docs","iconbackground":"#DAA520","icon":"Mic","iconArtId":null,"splashArtId":null,"time":1423611442,"priority":10000,"parentTopic":"blog"},
{"name":"WebAppBooster","id":"xhnw","rootid":"hasy","userid":"jeiv","description":"WebAppBooster is a free Android app you can download from Google's Play Store. It gives the TouchDevelop Web App access to the sensors and data of your Android phone or tablet. #docs","iconbackground":"#00008B","icon":"Dashboard","iconArtId":null,"splashArtId":null,"time":1413906585,"priority":10000},
{"name":"Welcome to the community blog!","id":"azyzc","rootid":"szcl","userid":"ajlk","description":"Welcome to the TouchDevelop community blog! #docs #blog","iconbackground":"#9955BB","icon":"SoundLow","iconArtId":"zlyvwtcm","splashArtId":null,"time":1422659306,"priority":10000,"parentTopic":"blog"},
{"name":"accelero colors tutorial","id":"dwyva","rootid":"dwyva","userid":"jeiv","description":"A fun tutorial that maps the acceleration sensor data to a background color. #docs #tutorials #stepbystep","iconbackground":"#00008B","icon":"AlignCenter","iconArtId":null,"splashArtId":null,"time":1383558568,"priority":10000,"platforms":["accelerometer"]},
{"name":"accelero-turtle","id":"kwjp","rootid":"yrcna","userid":"jeiv","description":"Using the accelerometer to move the turtle. #docs #turtle #accelerometer #stepbystep #tutorials","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1426700546,"priority":10000,"platforms":["accelerometer"]},
{"name":"accelerometer","id":"hsmma","rootid":"yrcna","userid":"jeiv","description":"What is the accelerometer? #docs #accelerometer","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1384241198,"priority":10000,"platforms":["accelerometer"]},
{"name":"action parameters","id":"fmnma","rootid":"qlyt","userid":"jeiv","description":"Parameters are used to pass information in and out of an action. #docs #actionParameters #language","iconbackground":"#008080","icon":"Funnel","iconArtId":null,"splashArtId":null,"time":1412946700,"priority":10000,"parentTopic":"code"},
{"name":"add your own docs","id":"wnhuc","rootid":"opsc","userid":"jeiv","description":"How to create and publish documentations or tutorials. #docs #contents","iconbackground":"#A52A2A","icon":"Document","iconArtId":null,"splashArtId":null,"time":1412947639,"priority":10000,"parentTopic":"socialcoding"},
{"name":"ads","id":"izwjc","rootid":"riqra","userid":"jeiv","description":"Monetize scripts with advertisements. #docs #ads","iconbackground":"#85BB65","icon":"Sun","iconArtId":null,"splashArtId":null,"time":1419259917,"priority":10000,"parentTopic":"exporttoapp"},
{"name":"algorithm tutorials","id":"nkrwa","rootid":"nkrwa","userid":"jeiv","description":"A set of interactive tutorials to learn about algorithms. #docs #tutorials","iconbackground":"#F5DEB3","icon":"Leaf","iconArtId":null,"splashArtId":null,"time":1395684884,"priority":10000,"parentTopic":"tutorials"},
{"name":"allow export to app","id":"pwzka","rootid":"vdjx","userid":"jeiv","description":"Allow users to export your apps. #docs #exportToApp #allowExportToApp","iconbackground":"#00008B","icon":"CheckAlt","iconArtId":null,"splashArtId":null,"time":1412792004,"priority":10000,"parentTopic":"exporttoapp"},
{"name":"api","id":"abtwc","rootid":"fxeza","userid":"jeiv","description":"API reference. #docs #api","iconbackground":"#FF0038","icon":"Subtract","iconArtId":null,"splashArtId":null,"time":1415064399,"priority":10,"parentTopic":"contents"},
{"name":"app day","id":"vvhca","rootid":"pbychgeq","userid":"jeiv","description":"An fun event to learn how to create apps #docs","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412946727,"priority":10000,"parentTopic":"teach"},
{"name":"app day bird","id":"eqtwc","rootid":"silub","userid":"jeiv","description":"An App Day game activity. #docs #stepByStep #AppDay","iconbackground":"#007FFF","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1400654309,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hjovmckd"},
{"name":"app day device setup","id":"vrlge","rootid":"dhpu","userid":"jeiv","description":"Instructions to setup a device for App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1415064986,"priority":10000,"parentTopic":"appday"},
{"name":"app day faq","id":"tjmk","rootid":"tidc","userid":"jeiv","description":"Frequently asked questions about App Day. #docs #appday","iconbackground":"#007FFF","icon":"PlusCircle","iconArtId":null,"splashArtId":null,"time":1384241732,"priority":10000},
{"name":"app day large","id":"lpcla","rootid":"ihasxqnf","userid":"jeiv","description":"Description of a large App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412703502,"priority":10000,"parentTopic":"appday"},
{"name":"app day large logistics","id":"iwgea","rootid":"kfcnzcfq","userid":"jeiv","description":"Timeline and logistics to run a large App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412703520,"priority":10000,"parentTopic":"appdaylarge"},
{"name":"app day large schedule","id":"cbdz","rootid":"uwjeaiqw","userid":"jeiv","description":"The schedule of a large App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412703529,"priority":10000,"parentTopic":"appdaylarge"},
{"name":"app day medium","id":"pgzra","rootid":"ihasxqnf","userid":"jeiv","description":"Description of a medium App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412703371,"priority":10000,"parentTopic":"appday"},
{"name":"app day medium logistics","id":"qhjja","rootid":"kfcnzcfq","userid":"jeiv","description":"Description of the logistics involved with medium App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412703468,"priority":10000,"parentTopic":"appdaymedium"},
{"name":"app day medium schedule","id":"yxpqb","rootid":"uwjeaiqw","userid":"jeiv","description":"The schedule of a medium App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412703486,"priority":10000,"parentTopic":"appdaymedium"},
{"name":"app day rocks","id":"sbwi","rootid":"cxwjqvmo","userid":"jeiv","description":"An App Day game activity #docs #AppDay","iconbackground":"#007FFF","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1400655333,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/czyykuaj"},
{"name":"app day rules","id":"oqfna","rootid":"koveoafl","userid":"jeiv","description":"Overview of the rules to run App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1379016640,"priority":10000},
{"name":"app day small","id":"cebw","rootid":"ihasxqnf","userid":"jeiv","description":"Description of a small App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412703424,"priority":10000,"parentTopic":"appday"},
{"name":"app day small logistics","id":"ctfvb","rootid":"kfcnzcfq","userid":"jeiv","description":"Description of the logistics involved with App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412703412,"priority":10000,"parentTopic":"appdaysmall"},
{"name":"app day small schedule","id":"ayrnd","rootid":"uwjeaiqw","userid":"jeiv","description":"The schedule of a small App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1415077874,"priority":10000,"parentTopic":"appdaysmall"},
{"name":"app day stop","id":"soxy","rootid":"quwi","userid":"jeiv","description":"Page used to separate workshops in App Day. #docs","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1379016679,"priority":10000},
{"name":"app day workshops","id":"ldks","rootid":"ctsigkri","userid":"jeiv","description":"Description of the workshops used in App Day #docs #appday","iconbackground":"#9955BB","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412703394,"priority":10000,"parentTopic":"appday"},
{"name":"arduino blink no delay tutorial","id":"cneva","rootid":"aewdb","userid":"jeiv","description":"A tutorial to build an Arduino Blinking circuit without using delay. #arduino #arduinoSketch #docs #tutorials #stepByStep","iconbackground":"#00CC99","icon":"ArrowStandardCircle","iconArtId":null,"splashArtId":null,"time":1422935317,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/ilohpnvs"},
{"name":"arduino blink tutorial","id":"ujgx","rootid":"aewdb","userid":"jeiv","description":"A tutorial to build an Arduino Blinking circuit. #arduino #arduinoSketch #docs #tutorials #stepByStep","iconbackground":"#00CC99","icon":"ArrowStandardCircle","iconArtId":null,"splashArtId":null,"time":1422935126,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/ilohpnvs"},
{"name":"arduino morse tutorial","id":"egwr","rootid":"aewdb","userid":"jeiv","description":"A tutorial to build an Arduino circuit that sends a SOS message using a LED. #arduino #arduinoSketch #docs #tutorials #stepByStep","iconbackground":"#00CC99","icon":"ArrowStandardCircle","iconArtId":null,"splashArtId":null,"time":1422935347,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/ilohpnvs"},
{"name":"arduino photo cell tutorial","id":"upgxa","rootid":"aewdb","userid":"jeiv","description":"A tutorial to use a photo cell sensor. #arduino #arduinoSketch #docs #tutorials #stepByStep","iconbackground":"#00CC99","icon":"ArrowStandardCircle","iconArtId":"kzajxznr","splashArtId":null,"time":1422935270,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/ilohpnvs"},
{"name":"arduino sos tutorial","id":"udzya","rootid":"aewdb","userid":"jeiv","description":"A tutorial to build an Arduino circuit that sends a SOS message using a LED. #arduino #arduinoSketch #docs #tutorials #stepByStep","iconbackground":"#00CC99","icon":"ArrowStandardCircle","iconArtId":null,"splashArtId":null,"time":1422935296,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/ilohpnvs"},
{"name":"art","id":"uyht","rootid":"ymbla","userid":"jeiv","description":"A guide to using resources such as pictures and sounds. #docs #art #games #language","iconbackground":"#B7410E","icon":"Clover","iconArtId":null,"splashArtId":null,"time":1418713137,"priority":10000,"parentTopic":"language"},
{"name":"assignment","id":"zsas","rootid":"mcsz","userid":"jeiv","description":"Update local and global variables. #docs #assignment #langauge","iconbackground":"#85BB65","icon":"AlmostEqual","iconArtId":null,"splashArtId":null,"time":1415077825,"priority":10000,"parentTopic":"operators"},
{"name":"async actions","id":"estfa","rootid":"hhica","userid":"jeiv","description":"Asynchronous (async) actions and await API #docs #language #async. Also foreground/background tasks, atomic/non-atomic APIs, and atomicity of page display/init sections.","iconbackground":"#FF0038","icon":"Clock","iconArtId":null,"splashArtId":null,"time":1412666626,"priority":10000,"platforms":["accelerometer","musicandsounds"],"parentTopic":"language"},
{"name":"beginner tutorials","id":"blnna","rootid":"ofmd","userid":"jeiv","description":"A set of interactive tutorials for users new to programming. #docs #tutorials","iconbackground":"#FF2800","icon":"Film","iconArtId":null,"splashArtId":null,"time":1414697971,"priority":10000,"parentTopic":"tutorials"},
{"name":"beta","id":"hptw","rootid":"oejn","userid":"jeiv","description":"Stay on the bleeding edge! #docs","iconbackground":"#85BB65","icon":"Play","iconArtId":null,"splashArtId":null,"time":1371667518,"priority":10000},
{"name":"beyond an hour","id":"szud","rootid":"nefs","userid":"jeiv","description":"#docs Expand your TouchDevelop skills with these resources!","iconbackground":"#A1CAF1","icon":"Airplane","iconArtId":null,"splashArtId":null,"time":1412946816,"priority":10000,"parentTopic":"teach"},
{"name":"blank cloud app template","id":"rmor","rootid":"qaub","userid":"jeiv","description":"An empty template to create apps using pages and cloud data.","iconbackground":"#FFA500","icon":"FourColumn","iconArtId":null,"splashArtId":null,"time":1399008793,"priority":10000},
{"name":"blank esplora","id":"lsrh","rootid":"quil","userid":"jeiv","description":"An script that gets exported to the Arduino #Esplora board.","iconbackground":"#008000","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1400134489,"priority":10000},
{"name":"blank game tutorial template","id":"ybxma","rootid":"ahcpb","userid":"jeiv","description":"","iconbackground":"#9955BB","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1412291788,"priority":10000},
{"name":"blank makey makey","id":"wvzm","rootid":"wvzm","userid":"jeiv","description":"A script using #MakeyMakey.","iconbackground":"#85BB65","icon":"Controls","iconArtId":null,"splashArtId":null,"time":1394195518,"priority":10000},
{"name":"blank pixel art","id":"mdrw","rootid":"mdrw","userid":"jeiv","description":"A pixel art script. #pixelart","iconbackground":"#9955BB","icon":"NineColumn","iconArtId":null,"splashArtId":null,"time":1412097278,"priority":10000,"platforms":["musicandsounds"]},
{"name":"blog","id":"apfwa","rootid":"fbyfa","userid":"jeiv","description":"All the info about the TouchDevelop blog. #docs","iconbackground":"#85BB65","icon":"Bolt","iconArtId":null,"splashArtId":null,"time":1422887832,"priority":10000,"parentTopic":"contents"},
{"name":"box edit translate","id":"obme","rootid":"obme","userid":"jeiv","description":"A template to create apps using pages.","iconbackground":"#FFA500","icon":"AddressBook","iconArtId":null,"splashArtId":null,"time":1375400029,"priority":10000,"platforms":["translation","speech"]},
{"name":"boxed","id":"pnzuc","rootid":"nlnz","userid":"jeiv","description":"A box displayed on screen. #docs #language","iconbackground":"#FF91A4","icon":"FlowChart","iconArtId":null,"splashArtId":null,"time":1412946853,"priority":10000,"parentTopic":"language"},
{"name":"bubble popper tutorial","id":"acedc","rootid":"lekzuvii","userid":"jeiv","description":"A tutorial to build a bubble popper game from scratch. #docs #tutorials #games #HourOfCode #tutorial","iconbackground":"#85BB65","icon":"Cactus","iconArtId":null,"splashArtId":null,"time":1433285464,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/rigzqzdx","parentTopic":"beginnertutorials"},
{"name":"choose to code tutorials","id":"udnce","rootid":"awiza","userid":"jeiv","description":"Tutorials for the Choose To Code campaign. #docs","iconbackground":"#00CC99","icon":"Group","iconArtId":null,"splashArtId":null,"time":1425653692,"priority":10000},
{"name":"cloud libraries","id":"ferb","rootid":"czmjc","userid":"jeiv","description":"Explains how to build server-side libraries. #docs","iconbackground":"#A1CAF1","icon":"AlignRight","iconArtId":null,"splashArtId":null,"time":1406402358,"priority":10000},
{"name":"cloud sessions","id":"wdwqe","rootid":"sptg","userid":"jeiv","description":"Cloud sessions provide a simple way to save data in the cloud, and to share data between different devices. Cloud sessions automatically synchronize the shared data between participants of the same cloud session. #docs","iconbackground":"#007FFF","icon":"Weather","iconArtId":null,"splashArtId":null,"time":1428079468,"priority":10000,"parentTopic":"language"},
{"name":"code","id":"bjdyb","rootid":"rxme","userid":"jeiv","description":"A sequence of code with inputs and outputs. #docs #code #language","iconbackground":"#A52A2A","icon":"ArrowBox","iconArtId":null,"splashArtId":null,"time":1412665805,"priority":10000,"parentTopic":"language"},
{"name":"code hunt sector 0","id":"eolgd","rootid":"vtfgmgwr","userid":"jeiv","description":"This is the TouchDevelop version of sector 0 of Code Hunt.\r\n#docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415082661,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 1","id":"jfrha","rootid":"romzeakr","userid":"jeiv","description":"This is the TouchDevelop version of sector 1 of Code Hunt.\r\n#docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415080044,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 10","id":"yptja","rootid":"vtfgmgwr","userid":"jeiv","description":"This is the TouchDevelop version of sector 11 of Code Hunt.\r\n#docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415081808,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 11","id":"xjaya","rootid":"vtfgmgwr","userid":"jeiv","description":"This is the TouchDevelop version of sector 12 of Code Hunt.\r\n#docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415082394,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 12","id":"kodw","rootid":"vtfgmgwr","userid":"jeiv","description":"This is the TouchDevelop version of sector 14 of Code Hunt.\r\n#docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415082296,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 2","id":"cvsd","rootid":"uhkxaair","userid":"jeiv","description":"This is the TouchDevelop version of sector 2 of Code Hunt.\r\n#docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415081955,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 3","id":"eyxma","rootid":"mbnkaxkm","userid":"jeiv","description":"This is the TouchDevelop version of sector 3 of Code Hunt. #docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415081668,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 4","id":"cgsv","rootid":"sjicrkpo","userid":"jeiv","description":"This is the TouchDevelop version of sector 4 of Code Hunt. #docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415081732,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 5","id":"ztkrc","rootid":"uhkxaair","userid":"jeiv","description":"This is the TouchDevelop version of sector 5 of Code Hunt.\r\n#docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415081560,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 6","id":"jqspa","rootid":"mbnkaxkm","userid":"jeiv","description":"This is the TouchDevelop version of sector 6 of Code Hunt. #docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415081500,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 7","id":"oskc","rootid":"vtfgmgwr","userid":"jeiv","description":"This is the TouchDevelop version of sector 7 of Code Hunt.\r\n#docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415082115,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 8","id":"yxqva","rootid":"vtfgmgwr","userid":"jeiv","description":"This is the TouchDevelop version of sector 8 of Code Hunt.\r\n#docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415082030,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt sector 9","id":"ptlv","rootid":"vtfgmgwr","userid":"jeiv","description":"This is the TouchDevelop version of sector 9 of Code Hunt.\r\n#docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1415082241,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/hgtykqzn","parentTopic":"codehunttutorials"},
{"name":"code hunt tutorials","id":"vovja","rootid":"nkzm","userid":"jeiv","description":"A set of interactive tutorials to learn about algorithms. #docs #tutorials","iconbackground":"#FFA500","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1407775977,"priority":10000,"parentTopic":"tutorials"},
{"name":"coding guidelines","id":"fovs","rootid":"plsza","userid":"jeiv","description":"Best practices for creating code. #docs #codingGuidelines #language","iconbackground":"#E25822","icon":"Headphones","iconArtId":null,"splashArtId":null,"time":1412701898,"priority":10000,"parentTopic":"advancedtopics"},
{"name":"color mixer tutorial","id":"etrlc","rootid":"lekzuvii","userid":"jeiv","description":"Learn how to change your screen color by tapping your phone.\r\n#docs #tutorials #games #STEMAppDay #tutorial","iconbackground":"#E3256B","icon":"Sound","iconArtId":null,"splashArtId":null,"time":1437090334,"priority":10000},
{"name":"commands","id":"aulud","rootid":"xxqrc","userid":"jeiv","description":"Straight line code #docs #commands #language","iconbackground":"#85BB65","icon":"AlignLeft","iconArtId":null,"splashArtId":null,"time":1412665859,"priority":10000,"parentTopic":"language"},
{"name":"comment","id":"agcpf","rootid":"sqor","userid":"jeiv","description":"A note in the code. #docs #comment #language","iconbackground":"#007FFF","icon":"Contacts","iconArtId":null,"splashArtId":null,"time":1412666160,"priority":10000,"parentTopic":"language"},
{"name":"cordova library guide","id":"pxgka","rootid":"pxgka","userid":"jeiv","description":"Develop your own Apache Cordova libraries. #docs #cordova","iconbackground":"#FFA500","icon":"QuestionCircle","iconArtId":null,"splashArtId":null,"time":1419280927,"priority":10000},
{"name":"courses","id":"kumqe","rootid":"cqvl","userid":"jeiv","description":"Courses and tutorials for TouchDevelop. #docs #courses","iconbackground":"#E3256B","icon":"Erase","iconArtId":null,"splashArtId":null,"time":1424828791,"priority":10000,"parentTopic":"teach"},
{"name":"coverage","id":"wcbu","rootid":"dfpo","userid":"jeiv","description":"Investigate code coverage of your script with the built-in code coverage tools. #docs","iconbackground":"#FF0038","icon":"Justified","iconArtId":null,"splashArtId":null,"time":1412666479,"priority":10000,"parentTopic":"advancedtopics"},
{"name":"crazy holiday football tutorial","id":"wnzk","rootid":"qnxj","userid":"jeiv","description":"Tap the screen to creates more pumpkins! #docs","iconbackground":"#FF91A4","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1415066198,"priority":10000,"platforms":["musicandsounds"],"parentTopic":"gametutorials"},
{"name":"crazy pumpkins tutorial","id":"htsu","rootid":"qnxj","userid":"jeiv","description":"Tap the screen to creates more pumpkins! #docs","iconbackground":"#A1CAF1","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1384585198,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/lpjjsove"},
{"name":"creeper snowflake tutorial","id":"ubjwa","rootid":"lfqv","userid":"jeiv","description":"Learn how to draw Koch snowflake fractals with the turtle. #docs #tutorials #turtle #stepbystep #minecraft #creeper","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1429904750,"priority":10000,"platforms":["editoronly"],"screenshot":"https://az31353.vo.msecnd.net/pub/ikidmsox"},
{"name":"creeper triangle spiral tutorial","id":"eunja","rootid":"qkiw","userid":"jeiv","description":"A tutorial to learn to draw spirals with turtle. #docs #tutorials #stepbystep #minecraft #creeper","iconbackground":"#007FFF","icon":"snowflake","iconArtId":null,"splashArtId":null,"time":1429904788,"priority":10000,"platforms":["editoronly"],"screenshot":"https://az31353.vo.msecnd.net/pub/tngqslcx"},
{"name":"cutest voting app tutorial","id":"glcla","rootid":"nrdhndao","userid":"jeiv","description":"A tutorial to create an voting app for the cutest cat or dog. #docs #tutorials #stepByStep.","iconbackground":"#FFA500","icon":"CheckCircleAlt","iconArtId":null,"splashArtId":null,"time":1430522362,"priority":10000,"platforms":["musicandsounds","clouddata"],"screenshot":"https://az31353.vo.msecnd.net/pub/akzvrrqu","parentTopic":"socialapptutorials"},
{"name":"debugging","id":"lzcj","rootid":"aokhb","userid":"jeiv","description":"Debugging your script with the built-in debugger. #docs","iconbackground":"#FF0038","icon":"Settings","iconArtId":null,"splashArtId":null,"time":1412666436,"priority":10000,"parentTopic":"advancedtopics"},
{"name":"dev bootcamp","id":"zibx","rootid":"rfhw","userid":"jeiv","description":"A quick tutorial for developers. #docs #tutorials","iconbackground":"#007FFF","icon":"Airplane","iconArtId":null,"splashArtId":null,"time":1412688762,"priority":10000,"platforms":["accelerometer","location","maps","clouddata"],"parentTopic":"gettingstarted"},
{"name":"don't tap the tile tutorial","id":"eabna","rootid":"zdjla","userid":"jeiv","description":"An interactive tutorial to build the 'don't tap the white tile' game #docs #tutorials #HourOfCode #tutorial","iconbackground":"#9955BB","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1433285392,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/icpgmiyy","parentTopic":"gametutorials"},
{"name":"dreamspark","id":"kadra","rootid":"fasn","userid":"jeiv","description":"Free access to app publishing for students. #docs #dreamSpark #exportToApp #windows8","iconbackground":"#007FFF","icon":"Award","iconArtId":null,"splashArtId":null,"time":1412701945,"priority":10000,"parentTopic":"teach"},
{"name":"esplora level tutorial","id":"qawva","rootid":"alae","userid":"jeiv","description":"A tutorial to learn how to build a Arduino #Esplora level. #docs","iconbackground":"#FF0038","icon":"Stacks","iconArtId":null,"splashArtId":null,"time":1395427843,"priority":10000,"platforms":["accelerometer"],"screenshot":"https://az31353.vo.msecnd.net/pub/iujwaftk"},
{"name":"events","id":"aesna","rootid":"rlzoa","userid":"jeiv","description":"Special actions that trigger based on certain conditions. #docs #events #language","iconbackground":"#FFA500","icon":"Bolt","iconArtId":null,"splashArtId":null,"time":1412665800,"priority":10000,"platforms":["accelerometer","orientation"],"parentTopic":"language"},
{"name":"export to Cordova","id":"wztlc","rootid":"hdgs","userid":"jeiv","description":"Explains how to export a script to the App Store. #docs","iconbackground":"#007FFF","icon":"GlobeEUA","iconArtId":null,"splashArtId":null,"time":1422412561,"priority":10000,"parentTopic":"exporttoapp"},
{"name":"export to android","id":"rdena","rootid":"hdgs","userid":"jeiv","description":"Explains how to export a script to Android. #docs","iconbackground":"#007FFF","icon":"AlmostEqual","iconArtId":null,"splashArtId":null,"time":1421185017,"priority":10000},
{"name":"export to app","id":"szrna","rootid":"fdyu","userid":"jeiv","description":"Export your scripts to Windows, Windows Phone or Web apps. #docs #exportToApp","iconbackground":"#85BB65","icon":"Acorn","iconArtId":null,"splashArtId":null,"time":1427760104,"priority":10000,"parentTopic":"contents"},
{"name":"export to app studio","id":"jzchb","rootid":"mueyvopf","userid":"jeiv","description":"How to export your scripts to Windows and Windows Phone using App Studio #docs","iconbackground":"#008000","icon":"Suitcase","iconArtId":null,"splashArtId":null,"time":1418774223,"priority":10000,"parentTopic":"exporttoapp"},
{"name":"export to azure","id":"eyknc","rootid":"lqlc","userid":"jeiv","description":"Describes how to export a script to an Azure web site. #azure #docs","iconbackground":"#007FFF","icon":"Stacks","iconArtId":null,"splashArtId":null,"time":1427983505,"priority":10000,"parentTopic":"exporttoapp"},
{"name":"export to iOS","id":"rwqla","rootid":"hdgs","userid":"jeiv","description":"Explains how to export a script to the App Store. #docs","iconbackground":"#FF0038","icon":"Acorn","iconArtId":null,"splashArtId":null,"time":1421184878,"priority":10000},
{"name":"export to node.js","id":"ymxc","rootid":"uhuwqdmn","userid":"jeiv","description":"How to export to any node.js server instance.\r\n#docs","iconbackground":"#FF0038","icon":"Needle","iconArtId":null,"splashArtId":null,"time":1413906618,"priority":10000,"parentTopic":"exporttoapp"},
{"name":"export to windows phone","id":"tqfsb","rootid":"zuaea","userid":"jeiv","description":"Instruction on exporting your script to the Windows Phone Store #docs","iconbackground":"#F5DEB3","icon":"FlowChart","iconArtId":null,"splashArtId":null,"time":1421184778,"priority":10000},
{"name":"extension actions","id":"gtjra","rootid":"nupt","userid":"jeiv","description":"Action that appear as property calls on records and setter conversion #docs #language #actions #setters","iconbackground":"#FF0038","icon":"AddFolder","iconArtId":null,"splashArtId":null,"time":1412689151,"priority":10000,"parentTopic":"language"},
{"name":"factorial tutorial","id":"joxi","rootid":"ivzrejdn","userid":"jeiv","description":"A step-by-step tutorial about the factorial function #docs #tutorials #stepByStep.","iconbackground":"#800080","icon":"Exclamation","iconArtId":null,"splashArtId":null,"time":1383627495,"priority":10000},
{"name":"falling rocks tutorial","id":"ykhda","rootid":"cxwjqvmo","userid":"jeiv","description":"A step-by-step tutorial on creating a game where you have to tilt your device to avoid falling rocks! #docs #tutorials #stepByStep #HourOfCode #tutorial","iconbackground":"#008000","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1433285197,"priority":10000,"platforms":["accelerometer","musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/czyykuaj"},
{"name":"first steps with turtle","id":"spztg","rootid":"fezjznjm","userid":"jeiv","description":"Draw incredible drawings with the turtle! #docs #tutorials #stepbystep #HourOfCode #tutorial","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1434568878,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/nqolyatf"},
{"name":"flickr search tutorial","id":"ytqh","rootid":"bhdxlolr","userid":"jeiv","description":"A tutorial on how to read RSS to build a flickr search app. #docs #tutorials #stepByStep","iconbackground":"#007FFF","icon":"Save","iconArtId":null,"splashArtId":null,"time":1400089812,"priority":10000},
{"name":"for","id":"xlkga","rootid":"xmpf","userid":"jeiv","description":"Repeat code a number of times. #docs #for #language","iconbackground":"#E25822","icon":"Revert","iconArtId":null,"splashArtId":null,"time":1412665885,"priority":10000,"parentTopic":"language"},
{"name":"for each","id":"ruis","rootid":"zxfb","userid":"jeiv","description":"Run code for each element in a collection. #docs #forEach #language","iconbackground":"#85BB65","icon":"AlignLeft","iconArtId":null,"splashArtId":null,"time":1412665927,"priority":10000,"parentTopic":"language"},
{"name":"forehead word guesser","id":"lubu","rootid":"auqsa","userid":"jeiv","description":"","iconbackground":"#9955BB","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1402089234,"priority":10000,"platforms":["accelerometer"]},
{"name":"from blocks to text","id":"ayboi","rootid":"gvwxajqc","userid":"jeiv","description":"A migration guide from block editors such as Scratch. #docs #blocks #Scratch #Snap #AppInvetor #Snap #blockly #BYOB","iconbackground":"#00008B","icon":"Location","iconArtId":"azkhirjm","splashArtId":null,"time":1431093011,"priority":10000,"parentTopic":"gettingstarted"},
{"name":"fun with sphero","id":"txkya","rootid":"gshiehls","userid":"jeiv","description":"Control your Sphero like turtle! #docs #turtle #tutorials #Sphero","iconbackground":"#A1CAF1","icon":"ArrowCircleRounded","iconArtId":null,"splashArtId":null,"time":1415076614,"priority":10000,"platforms":["musicandsounds","bluetooth"],"screenshot":"https://az31353.vo.msecnd.net/pub/gftqcplh","parentTopic":"hardwaretutorials"},
{"name":"game board","id":"djse","rootid":"uels","userid":"jeiv","description":"A built-in 2D game engine. #docs #gameBoard #games","iconbackground":"#9955BB","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1412686995,"priority":10000,"platforms":["accelerometer"],"parentTopic":"games"},
{"name":"game tutorials","id":"nqxba","rootid":"nssd","userid":"jeiv","description":"A list of interactive game tutorials #docs","iconbackground":"#008080","icon":"MultiplyCircle","iconArtId":null,"splashArtId":null,"time":1415145463,"priority":10000,"parentTopic":"tutorials"},
{"name":"gameloop","id":"jgpl","rootid":"ryega","userid":"jeiv","description":"An event that triggers many times a second. #docs #events","iconbackground":"#FF7518","icon":"Bolt","iconArtId":null,"splashArtId":null,"time":1412947137,"priority":10000,"parentTopic":"games"},
{"name":"games","id":"yuipc","rootid":"mbqg","userid":"jeiv","description":"Resources on creating games. #docs #games","iconbackground":"#008080","icon":"Notebook","iconArtId":null,"splashArtId":null,"time":1412687862,"priority":10000,"parentTopic":"contents"},
{"name":"getting started","id":"qkezc","rootid":"idsna","userid":"jeiv","description":"A few tips on getting started with TouchDevelop. #docs #gettingStarted","iconbackground":"#007FFF","icon":"CoffeeCup","iconArtId":null,"splashArtId":null,"time":1430950598,"priority":15,"parentTopic":"contents"},
{"name":"getting started with arduino","id":"wwun","rootid":"utpcc","userid":"jeiv","description":"A guide to developing Arduino with TouchDevelop. #docs #arduino","iconbackground":"#00CC99","icon":"ArrowCircleRounded","iconArtId":null,"splashArtId":null,"time":1432060445,"priority":10000},
{"name":"group scripts","id":"agbfe","rootid":"knqeb","userid":"jeiv","description":"A project is a script that can be edited by multiple users. #docs","iconbackground":"#66FF00","icon":"Mute","iconArtId":null,"splashArtId":null,"time":1430273090,"priority":10000,"parentTopic":"groups"},
{"name":"groups","id":"ijmka","rootid":"yupu","userid":"jeiv","description":"A group is a collection of users. #docs","iconbackground":"#FFDF00","icon":"Stacks","iconArtId":null,"splashArtId":null,"time":1424240928,"priority":10000,"parentTopic":"teach"},
{"name":"hardware tutorials","id":"pjybb","rootid":"hvuu","userid":"jeiv","description":"Interactive tutorials to program hardware gadgets with TouchDevelop. #docs","iconbackground":"#FF00FF","icon":"Notebook","iconArtId":null,"splashArtId":null,"time":1417788324,"priority":10000,"parentTopic":"tutorials"},
{"name":"hello world","id":"yznkb","rootid":"lzqxkvzl","userid":"jeiv","description":"A short tutorial for Java developers #docs #tutorials","iconbackground":"#007FFF","icon":"Wand","iconArtId":null,"splashArtId":null,"time":1412688174,"priority":10000,"parentTopic":"gettingstarted"},
{"name":"hidden scripts","id":"hcqlb","rootid":"oohc","userid":"jeiv","description":"Hiding and unhidding scripts. #docs","iconbackground":"#FF7518","icon":"Cactus","iconArtId":null,"splashArtId":null,"time":1413225132,"priority":10000,"parentTopic":"socialcoding"},
{"name":"history","id":"wpzv","rootid":"wpzv","userid":"jeiv","description":"Understand how the scripts are saved. #docs","iconbackground":"#E3256B","icon":"Revert","iconArtId":null,"splashArtId":null,"time":1413226626,"priority":10000,"parentTopic":"socialcoding"},
{"name":"hour of code educator notes","id":"lugh","rootid":"gjvv","userid":"jeiv","description":"The recipe to run an awesome Hour Of Code™ with TouchDevelop! #docs #hourofcode","iconbackground":"#9955BB","icon":"Wand","iconArtId":null,"splashArtId":null,"time":1417736256,"priority":10000,"parentTopic":"teach"},
{"name":"how to edit the docs","id":"qeyra","rootid":"pzlhc","userid":"jeiv","description":"Explains the process to edit the official documentation #docs","iconbackground":"#FF2800","icon":"Key","iconArtId":null,"splashArtId":null,"time":1412977108,"priority":10000,"parentTopic":"socialcoding"},
{"name":"how to search","id":"ztiea","rootid":"agnnwyno","userid":"jeiv","description":"Learn where to search for what. Discover the query syntax. #docs #search","iconbackground":"#008000","icon":"Search","iconArtId":null,"splashArtId":null,"time":1422129096,"priority":10000,"parentTopic":"howtosearch"},
{"name":"if","id":"epzxa","rootid":"ikef","userid":"jeiv","description":"Run different code based on a condition. #docs #if #language","iconbackground":"#FF7518","icon":"Directions","iconArtId":null,"splashArtId":null,"time":1417509300,"priority":10000,"parentTopic":"language"},
{"name":"inline actions","id":"myspb","rootid":"bzgr","userid":"jeiv","description":"Actions defined inside other actions","iconbackground":"#9955BB","icon":"HomeAlt","iconArtId":null,"splashArtId":null,"time":1412688346,"priority":10000,"platforms":["accelerometer"],"parentTopic":"language"},
{"name":"insanely short tutorial","id":"hglg","rootid":"koyn","userid":"jeiv","description":"#docs A tutorial to test the tutorials.","iconbackground":"#90EE90","icon":"MultiplyCircle","iconArtId":null,"splashArtId":null,"time":1384762563,"priority":10000},
{"name":"insights","id":"yglza","rootid":"nnmv","userid":"jeiv","description":"TouchDevelop maintains various statistics and information about your published scripts. #docs","iconbackground":"#FDEE00","icon":"Lightbulb","iconArtId":null,"splashArtId":null,"time":1412791874,"priority":10000,"parentTopic":"socialcoding"},
{"name":"invalid","id":"wzrdb","rootid":"fvhi","userid":"jeiv","description":"An invalid value is a value that is useless. #docs #invalid #language","iconbackground":"#00008B","icon":"LoadingAlt","iconArtId":null,"splashArtId":null,"time":1412701835,"priority":10000,"parentTopic":"language"},
{"name":"keyboard","id":"ilmoa","rootid":"ilmoa","userid":"jeiv","description":"How to handle keyboard input #docs","iconbackground":"#008080","icon":"Inbox","iconArtId":null,"splashArtId":null,"time":1393874919,"priority":10000},
{"name":"label printer","id":"auefd","rootid":"kjzs","userid":"jeiv","description":"A sample using cloud services to print labels for scripts. #docs","iconbackground":"#FF0038","icon":"Sort","iconArtId":null,"splashArtId":null,"time":1412666772,"priority":10000,"parentTopic":"teach"},
{"name":"leaderboards","id":"mfiyb","rootid":"ejjc","userid":"jeiv","description":"Adding a high score list to your games. #docs #leaderboards #games","iconbackground":"#00008B","icon":"Fire","iconArtId":null,"splashArtId":null,"time":1412687008,"priority":10000,"parentTopic":"games"},
{"name":"libraries","id":"zjyc","rootid":"xkmna","userid":"jeiv","description":"Libraries are scripts, which you can use in other scripts. #docs #libraries #language #bazaar","iconbackground":"#800080","icon":"Recycle","iconArtId":null,"splashArtId":null,"time":1412665781,"priority":10000,"parentTopic":"language"},
{"name":"love me not notes","id":"pmdfa","rootid":"qjvtnqox","userid":"jeiv","description":"The notes associated to the 'love me not' tutorial. #docs","iconbackground":"#FF0038","icon":"ABC","iconArtId":null,"splashArtId":null,"time":1386359780,"priority":10000,"platforms":["musicandsounds"]},
{"name":"love me not tutorial","id":"anlja","rootid":"iyjkmpxy","userid":"jeiv","description":"This is a tutorial that describes how to make a simple flower petal game by teaching the use of sprite sets. #docs #tutorials #stepbystep #HourOfCode #tutorial","iconbackground":"#FF00FF","icon":"HeartAlt","iconArtId":null,"splashArtId":null,"time":1433285561,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/ojefqwbp","parentTopic":"gametutorials"},
{"name":"loves me loves me not","id":"abzi","rootid":"djkg","userid":"jeiv","description":"#HourOfCode","iconbackground":"#E3256B","icon":"Heart","iconArtId":null,"splashArtId":null,"time":1418326280,"priority":10000},
{"name":"makey makey beatbox tutorial","id":"hgkr","rootid":"upol","userid":"jeiv","description":"A guided to tutorial to build a beatbox driven by Makey Makey #docs","iconbackground":"#FFA500","icon":"Forward","iconArtId":null,"splashArtId":null,"time":1395427717,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/krrqcmcm"},
{"name":"map of things tutorial","id":"zltx","rootid":"pljua","userid":"jeiv","description":"A tutorial to build a collaborative app that allows users to collect information about things in the world. #docs #tutorials #stepByStep.","iconbackground":"#FFA500","icon":"Map","iconArtId":null,"splashArtId":null,"time":1415066980,"priority":10000,"platforms":["location","maps","clouddata"],"screenshot":"https://az31353.vo.msecnd.net/pub/heknakcs"},
{"name":"microphone","id":"hjjw","rootid":"hjjw","userid":"jeiv","description":"Access to the #microphone #docs","iconbackground":"#E3256B","icon":"AlignCenter","iconArtId":null,"splashArtId":null,"time":1395425064,"priority":10000,"platforms":["microphone","musicandsounds"]},
{"name":"minecraft pi builder tutorial","id":"sogga","rootid":"wuuvkimy","userid":"jeiv","description":"A Minecraft Pi tutorial to make the player jump really high. #docs #tutorials #stepByStep #tutorial #minecraft","iconbackground":"#008080","icon":"Erase","iconArtId":"kqezsjdm","splashArtId":null,"time":1438058591,"priority":10000,"platforms":["editoronly"]},
{"name":"minecraft pi lava fountain tutorial","id":"kirqc","rootid":"wuuvkimy","userid":"jeiv","description":"A Minecraft Pi tutorial to make the player jump really high. #docs #tutorials #stepByStep #minecraft","iconbackground":"#008000","icon":"Erase","iconArtId":"kqezsjdm","splashArtId":null,"time":1438058515,"priority":10000,"platforms":["editoronly"]},
{"name":"minecraft pi long legs tutorial","id":"skcy","rootid":"wuuvkimy","userid":"jeiv","description":"A Minecraft PI tutorial to leave a trail of blocks. #docs #tutorials #stepByStep #tutorial #minecraft","iconbackground":"#007FFF","icon":"Erase","iconArtId":"kqezsjdm","splashArtId":null,"time":1438058573,"priority":10000,"platforms":["editoronly"]},
{"name":"minecraft pi megajump tutorial","id":"sarmc","rootid":"wuuvkimy","userid":"jeiv","description":"A Minecraft Pi tutorial to make the player jump really high. #docs #tutorials #stepByStep #minecraft","iconbackground":"#00CC99","icon":"Erase","iconArtId":"kqezsjdm","splashArtId":null,"time":1438058616,"priority":10000,"platforms":["editoronly"]},
{"name":"minecraft pi pitfall tutorial","id":"chvl","rootid":"wuuvkimy","userid":"jeiv","description":"A Minecraft Pi tutorial to make the player jump really high. #docs #tutorials #stepByStep #minecraft","iconbackground":"#DAA520","icon":"Erase","iconArtId":"kqezsjdm","splashArtId":null,"time":1438058491,"priority":10000,"platforms":["editoronly"]},
{"name":"minecraft pi setup","id":"izzqa","rootid":"ypgksxfl","userid":"jeiv","description":"Explains how to setup TouchDevelop and Minecraft Pi. #docs #minecraft","iconbackground":"#E25822","icon":"Funnel","iconArtId":"kqezsjdm","splashArtId":null,"time":1429660256,"priority":10000},
{"name":"minecraft pi super digger tutorial","id":"upeic","rootid":"wuuvkimy","userid":"jeiv","description":"A Minecraft PI tutorial to leave a trail of blocks. #docs #tutorials #stepByStep #tutorial #minecraft","iconbackground":"#E25822","icon":"Erase","iconArtId":"kqezsjdm","splashArtId":null,"time":1438058537,"priority":10000,"platforms":["editoronly"]},
{"name":"minecraft pi trail tutorial","id":"okmw","rootid":"wuuvkimy","userid":"jeiv","description":"A Minecraft PI tutorial to leave a trail of blocks. #docs #tutorials #stepByStep #tutorial #minecraft","iconbackground":"#DAA520","icon":"Erase","iconArtId":"kqezsjdm","splashArtId":null,"time":1438058499,"priority":10000,"platforms":["editoronly"]},
{"name":"minecraft pi tutorials","id":"uxnuc","rootid":"ggrw","userid":"jeiv","description":"A set of tutorials for Minecraft. #docs #minecraft","iconbackground":"#A1CAF1","icon":"GPS","iconArtId":"kqezsjdm","splashArtId":null,"time":1437538727,"priority":10000,"parentTopic":"tutorials"},
{"name":"monster slicer tutorial","id":"uybna","rootid":"cxwjqvmo","userid":"jeiv","description":"A step-by-step tutorial on creating a game with bouncing monsters #docs #tutorials #stepByStep #HourOfCode #tutorial","iconbackground":"#008000","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1436174415,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/dwhkdiwe","parentTopic":"gametutorials"},
{"name":"move to library","id":"uvthb","rootid":"igxk","userid":"jeiv","description":"Explains the move to library refactoring that allows you to easily identify and move a set of script elements to a library.\r\n#docs #refactorings","iconbackground":"#FDEE00","icon":"DocumentsAlt","iconArtId":null,"splashArtId":null,"time":1412701848,"priority":10000,"parentTopic":"refactorings"},
{"name":"name matcher","id":"dszyb","rootid":"rizvatwt","userid":"jeiv","description":"This is a tutorial to build a love compatibility tester in TouchDevelop. #docs","iconbackground":"#E3256B","icon":"CheckAlt","iconArtId":null,"splashArtId":null,"time":1415067352,"priority":10000,"parentTopic":"gametutorials"},
{"name":"nfc","id":"pwuy","rootid":"bcwe","userid":"jeiv","description":"Using Near Field Communication to send and receive messages. #docs #nfc","iconbackground":"#E25822","icon":"ChargingBattery","iconArtId":null,"splashArtId":null,"time":1380066325,"priority":10000,"platforms":["proximity"]},
{"name":"oauth v2","id":"xtlk","rootid":"aaisa","userid":"jeiv","description":"OAuth 2.0 allows to build apps for Live, Facebook or Google. #docs #OAuthv2 #WebOauthV2","iconbackground":"#00CC99","icon":"Wifi","iconArtId":null,"splashArtId":null,"time":1394724227,"priority":10000},
{"name":"obsolete","id":"mwly","rootid":"mwly","userid":"jeiv","description":"An obsolete API should not be used. It might not work properly. Please try to find an alternative API. #docs","iconbackground":"#FF0038","icon":"Warning","iconArtId":null,"splashArtId":null,"time":1379018034,"priority":10000},
{"name":"office mix docs","id":"ovsn","rootid":"sxuka","userid":"jeiv","description":"How to create and publish Office Mix apps #docs #officemix","iconbackground":"#FFA500","icon":"SmilieHappy","iconArtId":null,"splashArtId":null,"time":1418016921,"priority":10000,"parentTopic":"exporttoapp"},
{"name":"offline support","id":"vsvvb","rootid":"nldy","userid":"jeiv","description":"Notes about using TouchDevelop offline. #docs","iconbackground":"#E3256B","icon":"ExclamationCircleAlt","iconArtId":null,"splashArtId":null,"time":1412947181,"priority":10000,"parentTopic":"socialcoding"},
{"name":"one pic social tutorial","id":"mugd","rootid":"ucau","userid":"jeiv","description":"A tutorial to create a one picture social network. #docs #tutorials #stepbystep","iconbackground":"#FFA500","icon":"FourColumn","iconArtId":null,"splashArtId":null,"time":1421688918,"priority":10000,"platforms":["cloudservices"],"parentTopic":"socialapptutorials"},
{"name":"page","id":"azvh","rootid":"oxtn","userid":"jeiv","description":"A user interface made of boxes.","iconbackground":"#800080","icon":"Presentation","iconArtId":null,"splashArtId":null,"time":1364254960,"priority":10000},
{"name":"pages","id":"gytfa","rootid":"oxtn","userid":"jeiv","description":"A user interface made of boxes. #docs #pages #language","iconbackground":"#00CC99","icon":"Presentation","iconArtId":null,"splashArtId":null,"time":1412665787,"priority":10000,"parentTopic":"language"},
{"name":"pages and boxes","id":"groya","rootid":"oxtn","userid":"jeiv","description":"A user interface made of boxes. #docs #pages #language #tutorial #boxed","iconbackground":"#9955BB","icon":"CheckBox","iconArtId":null,"splashArtId":null,"time":1412702224,"priority":10000,"platforms":["translation"],"parentTopic":"pages"},
{"name":"pages and boxes tutorial","id":"hzii","rootid":"fbega","userid":"jeiv","description":"#docs\r\nA guide to learn the ropes of using pages and boxes in TouchDevelop.","iconbackground":"#9955BB","icon":"Heart","iconArtId":null,"splashArtId":null,"time":1408665579,"priority":10000},
{"name":"pages template","id":"yauv","rootid":"elsn","userid":"jeiv","description":"A template to create apps using pages.","iconbackground":"#00CC99","icon":"AddressBook","iconArtId":null,"splashArtId":null,"time":1384762479,"priority":10000},
{"name":"parallax backgrounds","id":"lhiq","rootid":"zcem","userid":"jeiv","description":"How to create cool parallax background effects for games. #docs #games","iconbackground":"#007FFF","icon":"CoffeeCup","iconArtId":null,"splashArtId":null,"time":1412687250,"priority":10000,"parentTopic":"games"},
{"name":"petals","id":"zzjn","rootid":"kgtowzwg","userid":"jeiv","description":"Positions sprites in a circular arrangement, like petals on a flower.","iconbackground":"#B7410E","icon":"Leaf","iconArtId":null,"splashArtId":null,"time":1384758884,"priority":10000},
{"name":"photo map tutorial","id":"blrz","rootid":"pljua","userid":"jeiv","description":"A tutorial to build a collaborative app that allows users to collect pictures about things in the world. #docs #tutorials #stepByStep.","iconbackground":"#FFA500","icon":"Map","iconArtId":null,"splashArtId":null,"time":1395787450,"priority":10000,"platforms":["location","maps","clouddata","cloudservices"],"screenshot":"https://az31353.vo.msecnd.net/pub/heknakcs"},
{"name":"physics game walkthrough","id":"yqxt","rootid":"eqhr","userid":"jeiv","description":"A walkthrough for the `physics game` template. #docs #tutorial","iconbackground":"#EEDC82","icon":"GPS","iconArtId":null,"splashArtId":null,"time":1370996989,"priority":10000},
{"name":"pixel art","id":"clfha","rootid":"vxyfa","userid":"jeiv","description":"A library to create pixel art tutorials. #pixelArt","iconbackground":"#9955BB","icon":"NineColumn","iconArtId":null,"splashArtId":null,"time":1412316326,"priority":10000,"platforms":["musicandsounds"]},
{"name":"pixel art levels","id":"upfmb","rootid":"tzjz","userid":"jeiv","description":"","iconbackground":"#9955BB","icon":"NineColumn","iconArtId":null,"splashArtId":null,"time":1412316331,"priority":10000},
{"name":"pixel art tutorial","id":"whvfa","rootid":"jsbka","userid":"jeiv","description":"Learn to create your own pixel art! #docs #tutorials #stepByStep #HourOfCode","iconbackground":"#9955BB","icon":"NineColumn","iconArtId":null,"splashArtId":null,"time":1414630511,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/eyaoibxe"},
{"name":"pixels template","id":"qnsl","rootid":"bnxva","userid":"jeiv","description":"A cool drawing created pixel by pixel.","iconbackground":"#007FFF","icon":"Appointment","iconArtId":null,"splashArtId":null,"time":1384333193,"priority":10000},
{"name":"plugins","id":"lhnp","rootid":"oehga","userid":"jeiv","description":"Extend the TouchDevelop editor with #plugins #docs","iconbackground":"#007FFF","icon":"PlusCircle","iconArtId":null,"splashArtId":null,"time":1422431143,"priority":10000,"parentTopic":"advancedtopics"},
{"name":"popular number tutorial","id":"vyjp","rootid":"wxira","userid":"jeiv","description":"#docs","iconbackground":"#00008B","icon":"8Ball","iconArtId":null,"splashArtId":null,"time":1395964240,"priority":10000,"platforms":["clouddata"]},
{"name":"press","id":"qxec","rootid":"nmce","userid":"jeiv","description":"List of news, press or blogs about TouchDevelop. #docs #news #press","iconbackground":"#E25822","icon":"ArrowLarge","iconArtId":null,"splashArtId":null,"time":1424304357,"priority":10000},
{"name":"profiling","id":"wwrsa","rootid":"naec","userid":"jeiv","description":"Profiling your script with the built-in profiling to measure performance characteristics. #docs","iconbackground":"#FF0038","icon":"Alram","iconArtId":null,"splashArtId":null,"time":1424824023,"priority":10000,"parentTopic":"advancedtopics"},
{"name":"publishing run","id":"eivsa","rootid":"wkkg","userid":"jeiv","description":"Publishing information about a script crash or a successful script run. #docs","iconbackground":"#FDEE00","icon":"Bullseye","iconArtId":null,"splashArtId":null,"time":1424823963,"priority":10000},
{"name":"pull requests","id":"aymwb","rootid":"hilwa","userid":"jeiv","description":"Explains how `pull request` for changes work. #docs","iconbackground":"#E25822","icon":"Command","iconArtId":null,"splashArtId":null,"time":1415067814,"priority":10000,"parentTopic":"socialcoding"},
{"name":"quadratic equation activity","id":"gbqpa","rootid":"gnty","userid":"jeiv","description":"This is an activity for students learning quadratic equation #docs #math #stem.","iconbackground":"#FDEE00","icon":"PlusBox","iconArtId":null,"splashArtId":null,"time":1367468952,"priority":10000},
{"name":"quadratic equation solver","id":"qzvj","rootid":"tyltxixd","userid":"jeiv","description":"Learn how to solve classic math problems using TouchDevelop #docs #math #tutorials #stepbystep","iconbackground":"#007FFF","icon":"Graph","iconArtId":null,"splashArtId":null,"time":1384378223,"priority":10000},
{"name":"random number guesser tutorial","id":"algna","rootid":"gvwxajqc","userid":"jeiv","description":"A migration guide from block editors such as Scratch. #docs #blocks #Scratch #Snap #AppInvetor #Snap #blockly #BYOB #tutorials #stepbystep","iconbackground":"#9955BB","icon":"SmilieHappyAlt","iconArtId":null,"splashArtId":null,"time":1386311399,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/kromirev"},
{"name":"raspberry pi setup","id":"crpba","rootid":"gjwna","userid":"jeiv","description":"Instructions to setup TouchDevelop on Raspberry Pi 1 or 2. #docs","iconbackground":"#A1CAF1","icon":"GPS","iconArtId":"ykkgklzh","splashArtId":null,"time":1429660270,"priority":10000},
{"name":"records","id":"bosw","rootid":"rvqe","userid":"jeiv","description":"Tables, indexes, objects and decorators. #docs #records #language","iconbackground":"#9955BB","icon":"Files","iconArtId":null,"splashArtId":null,"time":1412665788,"priority":10000,"parentTopic":"language"},
{"name":"recursion","id":"zqdka","rootid":"zqdka","userid":"jeiv","description":"Explain the principle of recursive action calls. #docs","iconbackground":"#EEDC82","icon":"Cycle","iconArtId":null,"splashArtId":null,"time":1374787923,"priority":10000},
{"name":"refactorings","id":"diwwa","rootid":"magu","userid":"jeiv","description":"Use TouchDevelop code editor to its fullest with #refactorings #docs","iconbackground":"#008080","icon":"Male","iconArtId":null,"splashArtId":null,"time":1412666493,"priority":10000,"parentTopic":"advancedtopics"},
{"name":"rss feeds","id":"wlbra","rootid":"jzzy","userid":"jeiv","description":"RSS feeds to track new scripts, etc... #docs","iconbackground":"#E25822","icon":"Paint","iconArtId":null,"splashArtId":null,"time":1422900797,"priority":10000,"parentTopic":"socialcoding"},
{"name":"scratch pong tutorial","id":"ohzze","rootid":"aldve","userid":"jeiv","description":"A tutorial to build a pong game using the Scratch library. #docs #tutorials #scratch","iconbackground":"#85BB65","icon":"NumberedList","iconArtId":null,"splashArtId":null,"time":1431092461,"priority":10000,"platforms":["musicandsounds"]},
{"name":"scratch random number guesser notes","id":"aevfg","rootid":"gvwxajqc","userid":"jeiv","description":"A migration guide from block editors such as Scratch. #docs #blocks #Scratch #Snap #AppInvetor #Snap #blockly #BYOB #tutorials","iconbackground":"#FFA500","icon":"Bomb","iconArtId":null,"splashArtId":null,"time":1431092319,"priority":10000,"platforms":["musicandsounds"]},
{"name":"scratch random number guesser tutorial","id":"rmoga","rootid":"gvwxajqc","userid":"jeiv","description":"A migration guide from block editors such as Scratch. #docs #blocks #Scratch #Snap #AppInvetor #Snap #blockly #BYOB #tutorials #stepbystep","iconbackground":"#00CC99","icon":"AlmostEqual","iconArtId":null,"splashArtId":null,"time":1387326471,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/kromirev"},
{"name":"scratch reference","id":"goqxa","rootid":"ozsd","userid":"jeiv","description":"A complete reference manual of the Scratch library in TouchDevelop. #docs #scratch","iconbackground":"#007FFF","icon":"Ladder","iconArtId":null,"splashArtId":null,"time":1431091982,"priority":10000,"platforms":["accelerometer","musicandsounds"],"parentTopic":"fromblockstotext"},
{"name":"script categories","id":"stscb","rootid":"stscb","userid":"jeiv","description":"A description of the script categories. #docs","iconbackground":"#008080","icon":"Beer","iconArtId":null,"splashArtId":null,"time":1413226221,"priority":10000,"parentTopic":"socialcoding"},
{"name":"script forks","id":"yict","rootid":"irkbb","userid":"jeiv","description":"Explains how forking scripts work. #docs","iconbackground":"#F5DEB3","icon":"Split","iconArtId":null,"splashArtId":null,"time":1412791954,"priority":10000,"parentTopic":"socialcoding"},
{"name":"script id","id":"kfsy","rootid":"htjz","userid":"jeiv","description":"What is the script id? #docs","iconbackground":"#FF7518","icon":"EmailDoc","iconArtId":null,"splashArtId":null,"time":1415067862,"priority":10000,"parentTopic":"socialcoding"},
{"name":"script updates","id":"ptysc","rootid":"bppo","userid":"jeiv","description":"Publishing updates of your scripts. #docs #ScriptUpdates","iconbackground":"#FF0038","icon":"Download","iconArtId":null,"splashArtId":null,"time":1412791964,"priority":10000,"parentTopic":"socialcoding"},
{"name":"senses","id":"ajahc","rootid":"wauha","userid":"jeiv","description":"Overview of sensor access in TouchDevelop #docs","iconbackground":"#008080","icon":"Cherry","iconArtId":null,"splashArtId":null,"time":1412018355,"priority":10000},
{"name":"sensors and user input","id":"rrzd","rootid":"wauha","userid":"jeiv","description":"Overview of sensor access in TouchDevelop #docs","iconbackground":"#008000","icon":"Butterfly","iconArtId":null,"splashArtId":null,"time":1412702232,"priority":10000,"parentTopic":"language"},
{"name":"sketch","id":"zisf","rootid":"qkiw","userid":"jeiv","description":"A library to move a pen left, right, up and down. #turtle","iconbackground":"#007FFF","icon":"Files","iconArtId":null,"splashArtId":null,"time":1384435139,"priority":10000},
{"name":"skill levels","id":"lghma","rootid":"buuc","userid":"jeiv","description":"A description of the skill levels to modify the editor appearance. #docs","iconbackground":"#FF0038","icon":"ThreeColumn","iconArtId":null,"splashArtId":null,"time":1419032993,"priority":10000},
{"name":"social app tutorials","id":"ajpm","rootid":"gvyja","userid":"jeiv","description":"Interactive tutorials to build apps that share data between users. #docs #tutorials","iconbackground":"#A52A2A","icon":"Tree","iconArtId":null,"splashArtId":null,"time":1399010884,"priority":10000,"parentTopic":"tutorials"},
{"name":"social coding","id":"gmaec","rootid":"kplh","userid":"jeiv","description":"Understanding the script lifecycle in TouchDevelop #docs","iconbackground":"#E25822","icon":"Command","iconArtId":null,"splashArtId":null,"time":1424824070,"priority":18,"parentTopic":"contents"},
{"name":"song shaker","id":"lfzo","rootid":"sqrf","userid":"jeiv","description":"Learn how to build a script that plays random song when you shake the phone #docs #games #tutorials","iconbackground":"#800080","icon":"InfoCircle","iconArtId":null,"splashArtId":null,"time":1384241542,"priority":10000,"platforms":["accelerometer","media","musicandsounds"]},
{"name":"song shaker template","id":"uykla","rootid":"qcre","userid":"jeiv","description":"Shake to play music!","iconbackground":"#007FFF","icon":"Anchor","iconArtId":null,"splashArtId":null,"time":1382935124,"priority":10000,"platforms":["accelerometer"]},
{"name":"song shaker tutorial","id":"vqwxa","rootid":"sqrf","userid":"jeiv","description":"Learn how to build a script that plays random song when you shake the phone #docs #games #tutorials","iconbackground":"#EEDC82","icon":"Signal","iconArtId":null,"splashArtId":null,"time":1403930466,"priority":10000,"platforms":["accelerometer","media","musicandsounds"]},
{"name":"soundboard demo","id":"vxii","rootid":"matlavjh","userid":"jeiv","description":"Demo of the soundbaord tutorial.","iconbackground":"#FF00FF","icon":"SoundHigh","iconArtId":null,"splashArtId":null,"time":1383539953,"priority":10000,"platforms":["musicandsounds"]},
{"name":"soundboard tutorial","id":"uoozb","rootid":"matlavjh","userid":"jeiv","description":"Learn how to build a sound beat box using boxes. #docs #tutorials #pages #stepbystep","iconbackground":"#FF00FF","icon":"SoundHigh","iconArtId":null,"splashArtId":null,"time":1415076478,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/edwmwvjo","parentTopic":"gametutorials"},
{"name":"speech","id":"lioqb","rootid":"tfrv","userid":"jeiv","description":"An overview of the speech related actions. #docs #speech","iconbackground":"#DAA520","icon":"Mic","iconArtId":null,"splashArtId":null,"time":1370997010,"priority":10000,"platforms":["speech"]},
{"name":"string casing","id":"bvyn","rootid":"ekrf","userid":"jeiv","description":"A piece of text. #docs #StringToLowerCase","iconbackground":"#800080","icon":"ABC","iconArtId":null,"splashArtId":null,"time":1368129984,"priority":10000},
{"name":"subscriptions","id":"gnkya","rootid":"ydcn","userid":"jeiv","description":"Subscribe to users and tags. #docs #subscriptions #bazaar","iconbackground":"#E25822","icon":"AdminUser","iconArtId":null,"splashArtId":null,"time":1412686848,"priority":10000,"parentTopic":"socialcoding"},
{"name":"tap mania tutorial","id":"myuqb","rootid":"ucau","userid":"jeiv","description":"A tutorial to learn to create cloud-connected apps. #docs #tutorials #stepbystep","iconbackground":"#FFA500","icon":"FourColumn","iconArtId":null,"splashArtId":null,"time":1421688964,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/ttcqbzzz","parentTopic":"socialapptutorials"},
{"name":"teach","id":"ckbk","rootid":"jcsj","userid":"jeiv","description":"Teaching with TouchDevelop. #docs #teach #education","iconbackground":"#FFA500","icon":"Video","iconArtId":null,"splashArtId":null,"time":1420735201,"priority":100,"parentTopic":"contents"},
{"name":"testing","id":"qztgb","rootid":"kqusb","userid":"jeiv","description":"Describes how to write and execute tests #docs","iconbackground":"#00008B","icon":"Grapes","iconArtId":null,"splashArtId":null,"time":1412666450,"priority":10000,"parentTopic":"advancedtopics"},
{"name":"tiles","id":"skzn","rootid":"ygaya","userid":"jeiv","description":"Learn how to control the active tiles of your scripts. #docs #tiles","iconbackground":"#EEDC82","icon":"WritePage","iconArtId":null,"splashArtId":null,"time":1377844202,"priority":10000,"platforms":["tiles"]},
{"name":"tinter tutorial","id":"lrgbb","rootid":"xeeua","userid":"jeiv","description":"A tutorial to build an app that tints pictures #docs #apps #tutorials #stepbystep","iconbackground":"#B7410E","icon":"Wand","iconArtId":null,"splashArtId":null,"time":1415076872,"priority":10000},
{"name":"touchdevelop lingo","id":"osjjb","rootid":"ayxftkzb","userid":"jeiv","description":"A script to translate the TouchDevelop UI.","iconbackground":"#FFA500","icon":"FourColumn","iconArtId":null,"splashArtId":null,"time":1405111182,"priority":10000,"platforms":["translation"]},
{"name":"touchdevelop local","id":"mfvka","rootid":"hdgs","userid":"jeiv","description":"Explains how to export a script to the App Store. #docs","iconbackground":"#007FFF","icon":"GlobeEUA","iconArtId":null,"splashArtId":null,"time":1426118730,"priority":10000,"parentTopic":"contents"},
{"name":"translating docs","id":"nfze","rootid":"nfze","userid":"jeiv","description":"How to help translating docs. #docs","iconbackground":"#F5DEB3","icon":"Watch","iconArtId":null,"splashArtId":null,"time":1386099740,"priority":10000},
{"name":"turtle fractals tutorial","id":"oxpy","rootid":"lfqv","userid":"jeiv","description":"Learn how to draw incredible drawings with recursion and the turtle! #docs #tutorials #turtle #stepbystep","iconbackground":"#FF7518","icon":"SMSAlt","iconArtId":null,"splashArtId":null,"time":1426700555,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/piztqcln"},
{"name":"turtle keyboard tutorial","id":"usqu","rootid":"wxcxb","userid":"jeiv","description":"A tutorial to learn how to use the keyboard to control the turtle. #turtle #docs #tutorials #stepByStep","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1426700564,"priority":10000},
{"name":"turtle notes","id":"ixbc","rootid":"qjvtnqox","userid":"jeiv","description":"The notes associated to the 'love me not' tutorial. #docs","iconbackground":"#008000","icon":"AlignCenter","iconArtId":null,"splashArtId":null,"time":1415066868,"priority":10000},
{"name":"turtle ramp up examples","id":"juqg","rootid":"acaiqrll","userid":"jeiv","description":"#turtle","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1412920367,"priority":10000},
{"name":"turtle ramp up tutorial","id":"uorec","rootid":"bduiuwwq","userid":"jeiv","description":"A quick ramp up tutorail to learn TouchDevelop #turtle #docs #stepByStep","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1426700537,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/yscsjswl"},
{"name":"turtle snowflake tutorial","id":"kxcsa","rootid":"lfqv","userid":"jeiv","description":"Learn how to draw Koch snowflake fractals with the turtle. #docs #tutorials #turtle #stepbystep","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1428434148,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/ikidmsox"},
{"name":"turtle tree tutorial","id":"kmyea","rootid":"qkiw","userid":"jeiv","description":"A turtle that draws a tree. #docs #tutorials #stepbystep","iconbackground":"#007FFF","icon":"snowflake","iconArtId":null,"splashArtId":null,"time":1428708644,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/otbheubo"},
{"name":"turtle triangle spiral tutorial","id":"gilhe","rootid":"qkiw","userid":"jeiv","description":"A tutorial to learn to draw spirals with turtle. #docs #tutorials #stepbystep","iconbackground":"#007FFF","icon":"snowflake","iconArtId":null,"splashArtId":null,"time":1428434155,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/tngqslcx"},
{"name":"turtle tutorials","id":"nzfda","rootid":"ofmd","userid":"jeiv","description":"A set of interactive tutorials for users new to programming. #docs #tutorials","iconbackground":"#FF00FF","icon":"PieChart","iconArtId":null,"splashArtId":null,"time":1418281876,"priority":10000,"parentTopic":"tutorials"},
{"name":"turtle-a-sketch tutorial","id":"crywc","rootid":"pntza","userid":"jeiv","description":"A tutorial to make the turtle follow the touch point #turtle #docs #tutorials #stepByStep","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1426700557,"priority":10000},
{"name":"tutorials","id":"oqsm","rootid":"awiza","userid":"jeiv","description":"A list of TouchDevelop tutorials. #docs #tutorials","iconbackground":"#E25822","icon":"Video","iconArtId":null,"splashArtId":null,"time":1417788406,"priority":2,"parentTopic":"contents"},
{"name":"user accounts","id":"wekpa","rootid":"xmdf","userid":"jeiv","description":"Publishing in TouchDevelop requires a user account. #docs","iconbackground":"#007FFF","icon":"BusinessPerson","iconArtId":null,"splashArtId":null,"time":1412701883,"priority":10000,"parentTopic":"socialcoding"},
{"name":"user input","id":"ojixa","rootid":"pwiea","userid":"jeiv","description":"Learn how to get input from the user. #docs","iconbackground":"#FFA500","icon":"Cube","iconArtId":null,"splashArtId":null,"time":1412666197,"priority":10000,"parentTopic":"language"},
{"name":"user score","id":"pizoa","rootid":"blkx","userid":"jeiv","description":"what is my score? #docs #userScore #bazaar","iconbackground":"#008080","icon":"ABC","iconArtId":null,"splashArtId":null,"time":1412686867,"priority":10000,"parentTopic":"socialcoding"},
{"name":"var","id":"nlgzb","rootid":"bdjba","userid":"jeiv","description":"A local variable where you can store and read a value. #docs #var #language","iconbackground":"#00008B","icon":"ShoppingCart","iconArtId":null,"splashArtId":null,"time":1412665855,"priority":10000,"parentTopic":"language"},
{"name":"where","id":"bmmha","rootid":"dzdh","userid":"jeiv","description":"Limit the scope of for each loop #docs #forEach #where #language","iconbackground":"#85BB65","icon":"Question","iconArtId":null,"splashArtId":null,"time":1412666005,"priority":10000,"parentTopic":"language"},
{"name":"while","id":"uuuya","rootid":"ykdm","userid":"jeiv","description":"Repeat code while a condition remains true. #docs #while #language","iconbackground":"#E25822","icon":"Cycle","iconArtId":null,"splashArtId":null,"time":1412688421,"priority":10000,"parentTopic":"language"},
{"name":"word hunt tutorial","id":"wchle","rootid":"auqsa","userid":"jeiv","description":"A tutorial to build a fun word guessing game. #docs #stepByStep #tutorial","iconbackground":"#9955BB","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1433285335,"priority":10000,"platforms":["accelerometer"],"screenshot":"https://az31353.vo.msecnd.net/pub/ohcqfviv"}
{"title":"blank","id":"blank","icon":"ABC","description":"An empty script, which doesn't do anything.","section":"templates","name":"ADJ script","scriptid":"spbd","editorMode":1},
{"title":"blank game","id":"game","icon":"Controller","name":"ADJ game","description":"Boiler plate code to create a game.","section":"templates","scriptid":"yfvga","editorMode":1},
{"title":"blank app","id":"pages","icon":"AddressBook","name":"ADJ app","description":"An empty app using pages and boxes.","section":"templates","scriptid":"ikysc","editorMode":2},
{"title":"blank scratch","id":"blankscratch","icon":"Controller","name":"ADJ app","description":"An empty app using the scratch library.","section":"beginners","scriptid":"enyra","editorMode":1},
{"title":"blank pixel art","id":"blankpixelart","icon":"NineColumn","name":"ADJ art","description":"A pixel art app.","section":"beginners","scriptid":"mdrw","editorMode":1},
{"title":"blank web app","id":"blankwebapi","icon":"Stacks","name":"ADJ api","description":"A web app using Node.js and Restify.","section":"web apps","scriptid":"egzse","editorMode":3},
{"title":"blank azure web app","id":"blankazurewebapi","icon":"Stacks","name":"azure ADJ api","description":"A web app using Azure Services, Node.js and Restify.","section":"web apps","scriptid":"klwwa","editorMode":3},
{"title":"blank azure event hubs app","id":"blankazureeventhubs","icon":"Stacks","name":"azure ADJ event api","description":"A web app that uploads data to Azure Event Hubs.","section":"web apps","scriptid":"qwos","editorMode":3},
{"title":"physics game starter","id":"physicsgamestarter","icon":"Controller","name":"ADJ game","description":"Boiler plate code to create a game.","section":"others","scriptid":"kkwd","editorMode":2}