TouchDevelop/generated/help.cache

395 строки
373 KiB
Plaintext
Исходник Обычный вид История

2015-02-04 19:07:58 +03:00
{
"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",
2015-02-05 02:49:22 +03:00
"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
2015-02-04 19:07:58 +03:00
"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",
2015-06-17 01:05:28 +03:00
"cnfhc": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"forms\";\nmeta icon \"AlignLeft\";\nmeta color \"#ff9955bb\";\nmeta rootId \"mipj4oNCsNRLklwFD2N4B4q4\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// Basic user interface elements (buttons, text input boxes, check boxes, drop-down menus) used for simple forms.\n#button\naction button(#xURWrXuGKgW5xN1l text: String, #s7a8MjOB7JpBePnY body: Action) {\n #oMZnJkBvk4CM5NGG // Displays a button.\n #BeVNPIv2BatLOg8h do box {\n #lCBx1FU8aK5Bq79r box→set_margins(0.5, 0.5, 0.5, 0.5);\n #eAQT483O6pVvTl0u box→set_padding(0.5, 1, 0.5, 1);\n #P0SG5IzV2sxMnysd box→set_border(colors→foreground, 0.1);\n #x3sO2ZcJrezHe3kX box→set_font_size(1.2);\n #veq2xNGD2p2kRPZ1 box→on_tapped($handler);\n #k2pcA7icp5MU2rgL where handler() {\n #MQxNPwBN7QPWlcFZ $body→run;\n }\n #EEPUP0nu9eFaj3nx do box {\n #clIc1IEhC7rO4Bea box→set_horizontal_align(\"center\");\n #Gscop3pSrsVr5VHt box→set_vertical_align(\"center\");\n #oehMaNCjES5Lh1kE $text→to_lower_case→post_to_wall;\n }\n }\n meta sync;\n}\n#checkbox\naction checkbox(#XmddAe3uxF6wntlE text: String, #dZdJ4JFE9PMNmrPX checked: Ref[Boolean]) {\n #N4FSlNqRksJoLHPh // Displays a checkbox\n #UoY0M75Nvw5HC4z0 do box {\n #xxuX34412T2wy2JH box→use_horizontal_layout;\n #W9sbimcI2hu89mZW box→set_horizontal_align(\"left\");\n #NJ5RvCBtJTVuhxnC box→set_horizontal_stretch(1);\n #YDqkFsXsBQ1P2gab box→set_margins(0, 0.5, 0.5, 0.5);\n #x0esfrqmUhgMoq5J do box {\n #TUeyyCVT9kSjkRck box→use_overlay_layout;\n #oUlb2Pz62JEqMOO2 do box {\n #enlqc8RC7GumM4AS box→set_margins(0, 0, 0, 0.2);\n #FQsLjirTzTFYq98S box→set_font_size(2);\n #M1UL7gPi16Yr6jMW if $checked→\\u25c8get then {\n #xHL19Tt7RLJEtSUO box→set_foreground(colors→accent);\n }\n else {\n #iCJYrucmP1In4Z5B box→set_foreground(colors→transparent);\n }\n #QIItRGSCbXYUMs99 \"✓\" →post_to_wall;\n }\n #xyHv2ocxtMyF4hKQ do box {\n #xg5oEvPL1XIyhcCs box→set_width(1.5);\n #w5iCnvFn6AY2F2nc box→set_height(1.5);\n #rQhcUYKpXBHnHgIY box→set_border(colors→foreground, 0.1);\n #Tf1ACluswhZ92NeO \"\" →post_to_wall;\n #TNQpvE84RafK2Ltq box→on_tapped($handler);\n #OHLhaRAMgSmPXJ8f where handler() {\n #btd149gNJDgR4jtP $checked→\\u25c8set( `not` $checked→\\u25c8get);\n }\n }\n }\n #WgHL5wANnTOxjU52 do box {\n #KhPy4XoFkMHMWmFt box→set_margins(0, 0, 0, 0.3);\n #BjD0JSTq6ttAus60 $text→post_to_wall;\n }\n }\n meta sync;\n}\n#exampleboolean\nvar example_boolean : Boolean {\n // A variable used in the example page.\n transient = true;\n}\n#examplename\nvar example_name : String {\n // A variable used in the example page.\n transient = true;\n}\n#indentation\naction indentation() returns(#mSrNtse499SoyYNG x: Number) {\n #S8yRz09biYjgAiEF // returns the default width of the left column\n #MlYnlJMVLG2RLagf if code→narrow_screen then {\n #fvUQIztqcBz1gYQv $x := 0;\n }\n else {\n #dt0YYXQ04btlJrZQ $x := 10 + (box→page_width - 40) * .2;\n }\n meta private;\n meta sync;\n}\n#examplecomments\nvar example_comments : String {\n // A variable used in the example page.\n transient = true;\n}\n#exampleemails\nvar example_emails : Collection[String] {\n // A variable used in the example page.\n transient = true;\n}\n#examplepassword\nvar example_password : String {\n // A variable used in the example page.\n transient = true;\n}\n#showexample\naction show_example() {\n #g3Dehh42TZmVcf55 if box→is_init then {\n #q8U4U4G8U546KU3l if data→example_emails→is_invalid then {\n #xedWeRwh8Ue6cb9A data→example_emails := collections→create_string_collection;\n }\n #hbxRTSacAvE3oSVD data→dropdownchoices := \"Car,Bus,Train,Airplane\" →split(\",\");\n #W9GFtAxvA6ED3qH2 dat
2015-02-04 19:07:58 +03:00
"cwgn": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"layout\";\nmeta icon \"NineColumn\";\nmeta color \"#ff9955bb\";\nmeta rootId \"J2g52kon8pb1Qs9cRhmPGKZu\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta platform \"current\";\n// A library to help with laying out boxes.\n#main\naction example() {\n // This library provides various helpers to simplify the layout of boxes.\n // * layout vertically or horizontally based on the page orientation\n do box {\n code→use_flexible_layout;\n // ...\n }\n // * stretch and center a box\n do box {\n code→stretch_and_center;\n // ...\n }\n meta private;\n meta test;\n}\n#fADj2RlGhi2LmT1rCUpyRpxM\naction stretch_and_center() {\n // Stretches horizontally and vertically the current box and aligns the content with the center.\n box→set_horizontal_stretch(1);\n box→set_horizontal_align(\"center\");\n box→set_vertical_stretch(1);\n box→set_vertical_align(\"center\");\n meta sync;\n}\n#QpiD4W44RMmIzOZmyI6706Ps\naction use_flexible_layout() {\n // Uses **horizontal layout** if the page is landscape; **vertical layout** if the page is portrait.\n if box→page_width > box→page_height then {\n box→use_horizontal_layout;\n }\n else {\n box→use_vertical_layout;\n }\n meta private;\n meta sync;\n}\n#gridofsquares\naction grid_of_squares(cell_content: Number_Action, count: Number, grid_width: Number, grid_height: Number) {\n // Draw a grid of at least (count) squares, of the specified total width and height.\n $numboxes := $count;\n $Area := $grid_width * $grid_height;\n $bsize := math→sqrt($Area / $numboxes);\n $cols := math→floor($grid_width / $bsize);\n $rows := math→ceiling($numboxes / $cols);\n while $rows * $bsize > $grid_height do {\n $alt1 := $grid_width / ($cols + 1) - .001;\n $alt2 := $grid_height / $rows - 0.001;\n $bsize := math→max($alt1, $alt2);\n $cols := math→floor($grid_width / $bsize);\n $rows := math→ceiling($numboxes / $cols);\n }\n $mgn := .03 * $bsize;\n if $mgn * box→pixels_per_em < 2 then {\n $mgn := 2 / box→pixels_per_em;\n }\n $bsize := $bsize - $mgn;\n do box {\n code→draw_grid($rows, $cols, $mgn, $bsize, $cell_content, 0);\n }\n}\n#drawgrid\naction draw_grid(rows: Number, cols: Number, margin: Number, bsize: Number, cell_content: Number_Action, offset: Number) {\n box→set_height($rows * $bsize + ($rows - 1) * $margin);\n box→use_vertical_layout;\n box→set_vertical_align(\"justify\");\n for 0 ≤ i < $rows do {\n do box {\n box→set_width($cols * $bsize + ($cols - 1) * $margin);\n box→use_horizontal_layout;\n box→set_horizontal_align(\"justify\");\n for 0 ≤ j < $cols do {\n do box {\n do box {\n box→set_width($bsize);\n box→set_height($bsize);\n $cell_content→run($offset + $i * $cols + $j);\n }\n }\n }\n }\n }\n meta private;\n}\n#horizontallyscrollin\naction horizontal_hub_of_squares(cell_content: Number_Action, count: Number, cell_size: Number, group_width: Number, total_height: Number) {\n // Draw a horizontally scrolling grid of at least (count) squares of the specified size, with the specified total height.\n $numboxes := $count;\n $mgn := .03 * $cell_size;\n if $mgn * box→pixels_per_em < 2 then {\n $mgn := 2 / box→pixels_per_em;\n }\n $bsize := $cell_size + $mgn;\n $cols := math→floor($group_width / $bsize);\n $rows := math→floor($total_height / $bsize);\n if $cols ≤ 0 then {\n $cols := $rows;\n }\n $groups := math→ceiling($numboxes / ($rows * $cols));\n box→use_horizontal_layout;\n for 0 ≤ i < $groups do {\n do box {\n if $i ≠ 0 then {\n box→set_margins(0, 0, 0, .2 * $bsize);\n }\n code→draw_grid($rows, $cols, $mgn, $cell_size, $cell_content, $i * ($rows * $cols));\n }\n }\n box→set_scrolling(true, false);\n}\n#verticallyscrollings\naction vertical_hub_of_squares(cell_content: Number_Action, count: Number, cell_siz
2015-05-27 01:20:56 +03:00
"czopc": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank engduino\";\nmeta icon \"CreditCard\";\nmeta color \"#ff00008b\";\nmeta rootId \"SEYbC35yczei4aI3wm7icdMs\";\nmeta iconArtId \"qmjzqlkc\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// A blank Engduino v3 sketch. #arduino #arduinoSketch #Engduino\n#LnSjoBj2DrSx4mcw\naction setup() {\n #mQv6HDl3bdDDAJI0 skip;\n meta private;\n}\n#xq99yDlZpVBNRgrY\naction loop() {\n #xBK6GndqJnRSJkTx @\\u267b→engduino→set_all_LEDs(colors→random);\n #xtbigB2VPSstxCXs @\\u267b→engduino→delay(200);\n #OSTD49T6WAb9oYz6 @\\u267b→engduino→set_all_LEDs(colors→black);\n #jTiWi7fMT5Y0BSEk @\\u267b→engduino→delay(200);\n meta private;\n}\n#xdB9Cm8GWFKxZGcr\naction variables() {\n #khP9iYCJxRB2iUZw skip;\n meta private;\n}\n#Z2bgYR2Rs9Bvcb74\nvar screenshot : Picture {\n is\\_resource = true;\n url = \"https://az31353.vo.msecnd.net/pub/qmjzqlkc\";\n transient = true;\n}\n#LrYSVbKx8FjyP2FW meta import engduino {\n pub \"odwke\"\n usage {\n action `async` set_LED(led_number: Number, color: Color)\n action `async` millis() returns(ms: Number)\n action `async` micros() returns(us: Number)\n action `async` button_pressed() returns(b: Boolean)\n action `async` button_was_pressed() returns(b: Boolean)\n action `async` delay(millis: Number)\n action `async` acceleration() returns(p: Vector3)\n action `async` temperature() returns(p: Number)\n action `async` set_all_LEDs(color: Color)\n }\n #mAHtFDspzVKM5ZCP resolve arduino = ♻ arduino with {\n }\n}\n#uvXS88LcuackBUtZ\naction simulate() {\n #EuO57UhnSOMDRRlU // **Do not edit this action**. This action simulates the Engduino code.\n #Lo714zCo2ze5KJxO code→setup;\n #rTWfhzlllMzajBW8 while true do {\n #xASbcNy6sOwDn24U code→loop;\n }\n}\n#xEqnQPX6C7o8xLVl meta import arduino {\n pub \"cqfda\"\n usage {\n action `sync` digital_read(pin: Number) returns(bit: Number)\n action `sync` digital_write(pin: Number, value: Number)\n action `sync` analog_read(pin: Number) returns(bit: Number)\n action `sync` analog_write(pin: Number, value: Number)\n action `async` pin_mode(pin: Number, mode: Number)\n action `sync` HIGH() returns(v: Number)\n action `sync` LOW() returns(v: Number)\n action `sync` OUTPUT() returns(v: Number)\n action `sync` INPUT() returns(v: Number)\n action `async` delay(millis: Number)\n action `sync` sketch(source: String)\n action `sync` static_buffer(bytes: String) returns(buf: Buffer)\n action `sync` INPUT\\_PULLUP() returns(v: Number)\n action `sync` LED\\_BUILTIN() returns(r: Number)\n action `sync` mac(address: String)\n action `sync` analog_reference(type: Number)\n action `sync` DEFAULT() returns(r: Number)\n action `sync` EXTERNAL() returns(r: Number)\n action `sync` tone(pin: Number, frequency: Number, duration: Number)\n action `sync` no_tone(pin: Number)\n action `sync` millis() returns(millis: Number)\n action `sync` micros() returns(micros: Number)\n action `sync` pulse_in(pin: Number, value: Number, timeout: Number) returns(micros: Number)\n action `sync` board(name: String)\n action `sync` print_value(name: String, value: Number)\n action `sync` print(text: String)\n action `sync` println(text: String)\n action `sync` map(value: Number, from_low: Number, from_high: Number, to_low: Number, to_high: Number) returns(r: Number)\n action `sync` constrain(value: Number, a: Number, b: Number) returns(r: Number)\n action `async` delay_microseconds(micros: Number)\n }\n}\n",
2015-06-09 21:52:56 +03:00
"egzse": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank web api\";\nmeta icon \"Stacks\";\nmeta color \"#ffffffff\";\nmeta rootId \"x4mibwzdISu8zLeLgg7b3IKt\";\nmeta iconArtId \"wyfreugv\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta isCloud \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"network,npm,shell\";\nmeta parentIds \"\";\n// An blank web api using Node.JS and Restify. #node #azure #restify\n#czWG9NcXY9uFZHMz\naction \\_init() {\n #rg6M5H46J1bK4x8c data→logger := app→create_logger(\"api\");\n #x2Y2gFv2oHeZKjaB code→init_restify;\n}\n#FrNAgtgAKnFVC43t\naction GET_\\u002fping() returns(#aM0QoLDaWxwAlfSy millis: Number) {\n #xzy3cNZXu2Lbz9f2 // Returns the number of milliseconds since epoch.\n #IYDlx4xcyWX5wD4m $millis := time→now→milliseconds_since_epoch;\n}\n#a4wL0Lb7xeWxhV4L meta import parallel {\n pub \"fncvb\"\n usage {\n type queue\n action `async` @for(count: Number, @action: Number_Action)\n action `async` for_batched(count: Number, batch_count: Number, item_action: Number_Action, batch_action: Action)\n action `sync` schedule(q: ♻ parallel → queue, task: Action)\n action `sync` create_queue(max_running: Number) returns(queue: ♻ parallel → queue)\n action `async` wait_for_empty(q: ♻ parallel → queue)\n action `async` for_json(js: Json_Object, @action: Json_Action)\n }\n}\n#CW3Wao3uu3Z2Fhe6\nvar logger : App_Logger {\n transient = true;\n}\n#rmfzWWMIFG8Ule9I\naction init_restify() {\n #GL26xBm2sW9gi51S $server := @\\u267b→restify→server;\n #eq0FvCwwbob1i3UD $server→use(@\\u267b→restify→authorization_parser);\n #Ee6qD4jb4Xr4TCYg $server→pre(@\\u267b→restify→sanitize_path);\n #xiHn2sJ7jyfBOFLf $throttle := @\\u267b→restify→throttle;\n #ZU1qf4WMSwf2ZZs8 where rate := 40;\n #S04R2349FF42Rb2O where burst := 100;\n #qa878gtstkVP7tTO where ip := true;\n #kld3kZpnFcZ4TVhB $server→use($throttle);\n #sptEZCs70xCB68CA $server→use(@\\u267b→restify→CORS);\n #mFFPDO74C64OWH8s $server→use(@\\u267b→restify→body_parser);\n #xSqpOmBEP6L2VCFi $server→use(@\\u267b→restify→gzip_response);\n #xR4QGtRsV3hGoSJQ $server→use(@\\u267b→restify→query_parser);\n #x9bNZzJ9tZk0l1Z4 $server→use(@\\u267b→restify→conditional_request);\n #buXcIfKig0apgL4x @\\u267b→restify_touchdevelop→autobind($server);\n #kj30VDMt3gkmKiZM code→init_routes();\n #UAx1DGb27XEqkYO5 $server→use(@\\u267b→restify_touchdevelop→errors_to_log(data→logger));\n meta private;\n}\n#cuDjZw02teLTK0SB meta import restify {\n pub \"uqffa\"\n usage {\n action `async` `type` Request_Handler(req: ♻ restify → Request, res: ♻ restify → Response)\n #xLPhdjOebDT8w77X\n table Throttle_Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #xo6LfV0hyAQtz675 rate : Number\n #yZ2QZAfeW3W74JA1 burst : Number\n #JUlNvDq7Hm9cTUAG ip : Boolean\n #w2h4dcf4I5K5h7kn xff : Boolean\n #RO3Sx6iTt4WsVBm6 username : Boolean\n #VbsYnDvr3t4Xr4VA maxKeys : Number\n #w25h9R5LKJnWiBNu tokensTable : ♻ restify → Tokens_Table\n }\n }\n #xdeuBx505IsZ6eEI\n table Serve_Static_Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #NfWLVJBBbHvtMqkl default : String\n #KvIMj1sEoAwQCf22 maxAge : Number\n }\n }\n #mqEMUbizkEp6naSD\n table CORS_Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #xMYYV6C3eS7PWsfQ origins : String\n #z5HdpFdSi792e1OX credentials : Boolean\n #Fw1D0A9ZfeMCf5c3 headers : String\n }\n }\n #w2zTzWkfMf01yOko\n table Body_Parser_Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #mhaHCLobgUgMrv72 maxBodySize : Number\n #xr4fKleNd4wHHP1l mapParams : Boolean\n #st0ir2vLTxbLTQWB mapFiles : Boolean\n #z5ah2mZWb8c5FmTM o
2015-02-04 19:07:58 +03:00
"enyra": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"blank scratch\";\nmeta icon \"Flag\";\nmeta color \"#ffffa500\";\nmeta rootId \"DW2rPXfOGG0eQFu92NcRb5TE\";\nmeta platform \"current\";\n// #scratch\n#mNUzNyy2wxUPIVGaxSd7qyIc\naction main() {\n skip;\n}\n#scratch meta import scratch {\n pub \"cagwa\"\n usage {\n type scratch_sprite\n action `sync` new_sprite(pic: Picture) returns(sprite: ♻ scratch → scratch_sprite)\n action `async` move(sprite: ♻ scratch → scratch_sprite, steps: Number)\n action `async` say_for(sprite: ♻ scratch → scratch_sprite, text: String, seconds: Number)\n action `sync` play_sound(sound: Sound)\n action `async` play_sound_until_done(sound: Sound)\n action `async` turn_left(sprite: ♻ scratch → scratch_sprite, degrees: Number)\n action `async` turn_right(sprite: ♻ scratch → scratch_sprite, degrees: Number)\n action `sync` x_position(sprite: ♻ scratch → scratch_sprite) returns(x: Number)\n action `sync` y_position(sprite: ♻ scratch → scratch_sprite) returns(y: Number)\n action `sync` grid()\n action `async` change_x_by(sprite: ♻ scratch → scratch_sprite, amount: Number)\n action `async` change_y_by(sprite: ♻ scratch → scratch_sprite, amount: Number)\n action `sync` set_y_to(sprite: ♻ scratch → scratch_sprite, y: Number)\n action `sync` set_x_to(sprite: ♻ scratch → scratch_sprite, x: Number)\n action `sync` direction(sprite: ♻ scratch → scratch_sprite) returns(d: Number)\n action `async` point_in_direction(sprite: ♻ scratch → scratch_sprite, degrees: Number)\n action `async` glide_to(sprite: ♻ scratch → scratch_sprite, duration: Number, x: Number, y: Number)\n action `async` go_to_x_y(sprite: ♻ scratch → scratch_sprite, x: Number, y: Number)\n action `async` show(sprite: ♻ scratch → scratch_sprite)\n action `async` hide(sprite: ♻ scratch → scratch_sprite)\n action `async` change_size_by(sprite: ♻ scratch → scratch_sprite, amount: Number)\n action `sync` size(sprite: ♻ scratch → scratch_sprite) returns(size: Number)\n action `async` wait(seconds: Number)\n action `sync` mouse_down\\u003f() returns(b: Boolean)\n action `sync` mouse_y() returns(x: Number)\n action `sync` mouse_x() returns(x: Number)\n action `sync` pick_random(start: Number, end: Number) returns(r: Number)\n action `sync` user_name() returns(name: String)\n action `sync` user_picture() returns(pic: Picture)\n action `sync` ask_and_wait(text: String) returns(answer: String)\n action `sync` go_to_front(sprite: ♻ scratch → scratch_sprite)\n action `sync` go_back(sprite: ♻ scratch → scratch_sprite, layers: Number)\n action `sync` if_on_edge\\u002c_bounce(sprite: ♻ scratch → scratch_sprite)\n action `sync` switch_backdrop_to(backdrop: Picture)\n action `sync` current_time() returns(now: DateTime)\n action `sync` when_clicked(sprite: ♻ scratch → scratch_sprite, clicked: Action)\n action `sync` distance_to(sprite: ♻ scratch → scratch_sprite, other: ♻ scratch → scratch_sprite) returns(d: Number)\n action `sync` point_towards(sprite: ♻ scratch → scratch_sprite, other: ♻ scratch → scratch_sprite)\n action `sync` mouse\\u002dpointer() returns(m: ♻ scratch → scratch_sprite)\n action `sync` timer() returns(t: Number)\n action `sync` reset_timer()\n action `sync` when_backdrop_clicked(clicked: Position_Action)\n action `async` go_to(sprite: ♻ scratch → scratch_sprite, other: ♻ scratch → scratch_sprite)\n action `async` next_costume(sprite: ♻ scratch → scratch_sprite)\n action `async` add_costume(sprite: ♻ scratch → scratch_sprite, pic: Picture)\n action `async` say(sprite: ♻ scratch → scratch_sprite, text: String)\n action `sync` when_flag_clicked(clicked: Action)\n action `sync` create_clone(sprite: ♻ scratch → scratch_sprite) returns(clone: ♻ scratch → scratch_sprite)\n action `sync` touching(sprite: ♻ scratch → scrat
2015-06-20 06:21:49 +03:00
"epvz": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank MicroBit\";\nmeta rootId \"JMhqwTMOF2RcQMQClxsPnDlu\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// A #microbit script.\n#ewVkGI1fnNXxnoH4\naction main() {\n #nTQL2QhqZWbs1ufz skip;\n}\n#uomCLonOgBSuo985 meta import Micro_Bit {\n pub \"ueuha\"\n usage {\n type Image\n action `sync` \\_libinit()\n action `async` pause(ms: Number)\n action `sync` clear_screen()\n action `sync` width(@this: ♻ Micro_Bit → Image) returns(w: Number)\n action `async` scroll_image(@this: ♻ Micro_Bit → Image, x_offset_per_step: Number, ms: Number)\n action `sync` button_is_pressed(name: String) returns(pressed: Boolean)\n action `sync` plot(x: Number, y: Number)\n action `sync` point(x: Number, y: Number) returns(on: Boolean)\n action `async` show_string(text: String, ms: Number)\n action `sync` unplot(x: Number, y: Number)\n action `async` on_button_pressed(name: String, body: Action)\n action `async` show_image(@this: ♻ Micro_Bit → Image, x_offset: Number)\n action `sync` compass_heading() returns(degrees: Number)\n action `sync` acceleration(dimension: String) returns(millig: Number)\n action `sync` create_image(leds: String) returns(img: ♻ Micro_Bit → Image)\n action `sync` brightness() returns(brightness: Number)\n action `sync` set_brightness(value: Number)\n action `async` show_animation(leds: String, ms: Number)\n action `async` fade_in(ms: Number)\n action `async` fade_out(ms: Number)\n action `sync` current_time() returns(now: Number)\n action `async` show_number(value: Number, ms: Number)\n action `sync` set_pixel(img: ♻ Micro_Bit → Image, x: Number, y: Number, value: Number)\n action `sync` pixel(img: ♻ Micro_Bit → Image, x: Number, y: Number) returns(state: Number)\n action `async` clear(img: ♻ Micro_Bit → Image)\n action `sync` in_background(body: Action)\n action `async` calibrate()\n action `sync` forever(body: Action)\n }\n}\n",
2015-02-04 19:07:58 +03:00
"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",
"gmaec": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"social coding\";\nmeta rootId \"BW5Z2tT8PGR2YDIgrAuEFSwo\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// Understanding the script lifecycle in TouchDevelop #docs\n#VEa6LCnMw4ZByh2e\naction main() {\n #xBjWgS23MmRm2V8q // {parentTopic:contents}\n #TsSbdsjFrjlfbrl2 // {priority:18}\n #F3AeAVPtlABeBNH0 // TouchDevelop is a social coding platform where users can publish, fork, share their code freely.\n #NqBtxFlY9ixknwfz // ### script lifecycle\n #NNfJw34CNIpPxMKS // * [publishing scripts](/publishing)\n #D2ec4i8FUj8Zf42V // * [script udpates](/scriptupdates)\n #zatUDng4g32z2kw1 // * [script forks](/scriptforks)\n #worYh9j4YpqUkDjQ // * [pull requests](/pullrequests)\n #xBk0CTCjZwiUcwbn // * [](/groupscripts)\n #nTFmRh4k4iWbpFYt // * [how to search](/howtosearch)\n #hFLp36CMsiiqhnTC // ### community\n #WeNKI424s6V7W4kF // * [user score](/userscore)\n #t74MV1fKe6B4qWAO // * [user account](/useraccounts)\n #xAjOjHispoqafEHB // * [](/groups)\n #KKJEtnheKvaB9l3U // * [](/subscriptions)\n #ywJe2TIjeOzs8Qqn // * [](/insights)\n #EREwb2qLrQvylpAT // * [offline support](/offlinesupport)\n #HrlXZn0HuxSFDF8c // ### documentation\n #YCpaJ14DVX0dfFlw // * [add your own docs](/addyourowndocs)\n #xCtUVFwT2yTxkSyI // * [how to edit the docs](/howtoeditthedocs)\n}\n",
2015-02-04 19:07:58 +03:00
"gnvi": "meta version \"v2.2,js,ctx\";\nmeta name \"theme\";\nmeta icon \"AlignLeft\";\nmeta color \"#ff9955bb\";\nmeta rootId \"pyxigTkgfxN2UU8WcngsVxr3\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta platform \"current\";\n// Basic themes for boxes\naction title_1() {\n // Sets the current box to **title 1** style\n $m := 0.5;\n $font_size := 2;\n code→paragraph($m, $font_size, colors→foreground);\n}\naction paragraph(margins: Number, font_size: Number, foreground: Color) {\n box→set_margins($margins, $margins, $margins, $margins);\n box→set_font_size($font_size);\n box→set_text_wrapping(true, 15);\n box→set_foreground($foreground);\n if data→right_aligned then {\n box→set_horizontal_alignment(0, 1);\n }\n meta private;\n}\naction title_2() {\n // Sets the current box to **title 2** style\n $m := 0.5;\n $font_size := 1.5;\n code→paragraph($m, $font_size, colors→foreground);\n}\naction title_3() {\n // Sets the current box to **title 3** style.\n $m := 0.5;\n $font_size := 1.2;\n code→paragraph($m, $font_size, colors→foreground);\n}\naction subtle() {\n // Sets the current box to **subtle** style.\n $m := 0.5;\n $font_size := 1;\n code→paragraph($m, $font_size, colors→subtle);\n}\naction normal() {\n // Sets the current box to **normal** style\n $m := 0.5;\n $font_size := 1;\n code→paragraph($m, $font_size, colors→foreground);\n}\naction example() {\n if box→is_init then {\n skip;\n }\n if true then {\n // This library provides various built in themes to display structured paragraphs.\n // All text wrap by default.\n do box {\n code→huge;\n \"huge\" →post_to_wall;\n }\n do box {\n code→title_1;\n \"title 1\" →post_to_wall;\n }\n do box {\n code→title_2;\n \"title 2\" →post_to_wall;\n }\n do box {\n code→title_3;\n \"title 3\" →post_to_wall;\n }\n do box {\n code→normal;\n \"normal\" →post_to_wall;\n }\n do box {\n code→accent;\n \"accent\" →post_to_wall;\n }\n do box {\n code→subtle;\n \"subtle\" →post_to_wall;\n }\n }\n meta page;\n}\naction accent() {\n // Sets the current box to **accent** style.\n $m := 0.5;\n $font_size := 1;\n code→paragraph($m, $font_size, colors→accent);\n}\naction set_right_aligned(value: Boolean) {\n // Sets whether the next paragraphs should be right aligned.\n data→right_aligned := $value;\n}\nvar right_aligned : Boolean {\n}\naction huge() {\n // Sets the current box to **title 1** style\n $m := 0.5;\n $font_size := 5;\n code→paragraph($m, $font_size, colors→foreground);\n}\n",
"gtfla": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"blank cordova library\";\nmeta icon \"ApproveButton\";\nmeta color \"#ffe3256b\";\nmeta rootId \"yGFW3wy9mcuwDt2lxN2XzLPS\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"accelerometer,compass,gyroscope,location,musicandsounds,network,orientation,phone,cordova\";\nmeta parentIds \"\";\n// A library that wraps an Apache cordova plugin #cordova\n#xbyRT3U8tTYlJuX3\naction init(#qC2ALk0kurvg43d9 options\\u003f: * Options) {\n #MNkyanFCYYm1mj2c // Initializes the plugin. Call once.\n #X4G0I6zR3PXSOoW2 contract→requires(data→logger→is_invalid, \"plugin already initialized\");\n #t7IXp9pyue4DKV3r app→import(\"cordova\", \"TODO: cordoval plugin name here\", \"*\");\n #pAoVhCYiE8wIBNx2 data→logger := app→create_logger(\"mylib\");\n #x5295YzyzYEkwRz9 // TODO: use `app-> javasctipt` and `app->javascript async` to proxy with javascript.\n #NSEi48Fc3E82Gzhc // TODO: change the script description\n #xGNJXaGae2QQzC4o // TODO: write docs in `code-> example`\n}\n#SHXfYJBDaSY28xmP\nvar logger : App_Logger {\n transient = true;\n}\n#BdGhpbmca\ntable Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n}\n#M64FUpLsIJLTUj44\naction example() {\n #HaX1MKDnbGBzPPnq // Document your library here!\n meta private;\n meta sync;\n}\n",
"ibksb": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"blank node library\";\nmeta icon \"ArrowStandardCircle\";\nmeta color \"#ff007fff\";\nmeta rootId \"yGFW3wy9mcuwDt2lxN2XzLPS\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"network,npm,shell\";\nmeta parentIds \"\";\n// A library that wraps a npm module #node #npm #azure\n#xbyRT3U8tTYlJuX3\naction init(#qC2ALk0kurvg43d9 options\\u003f: * Options) {\n #MNkyanFCYYm1mj2c // Initializes the library. Call this action from your ``_init`` function.\n #t7IXp9pyue4DKV3r app→import(\"npm\", \"TODO: npm package name here\", \"*\");\n #pAoVhCYiE8wIBNx2 data→logger := app→create_logger(\"TODO: mylib\");\n #PUrP48D9R04LP8ev // TODO: use `app-> server setting` to read environment variables or node command line arguments.\n #x5295YzyzYEkwRz9 // TODO: use `app-> javasctipt` and `app->javascript async` to proxy with javascript.\n #fNRnVruS6cg7D9H3 // TODO: write some unit tests!\n #xlb7m4Eyw0BWFbzP // TODO: change the script description\n #s4LqDBpWVhF4APDU // TODO: write the docs in `code-> example`\n}\n#SHXfYJBDaSY28xmP\nvar logger : App_Logger {\n transient = true;\n}\n#BdGhpbmca\ntable Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n}\n#egka9cxvzrsZcSyc\naction example() {\n #xbnNQHjvSDNjeKCB // Document your library here!\n #CHb8jtuTrMd1PuMI // {imports}\n meta private;\n meta sync;\n}\n",
2015-06-17 01:05:28 +03:00
"ikysc": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank app\";\nmeta icon \"AddressBook\";\nmeta rootId \"xPVLZKRfDmGiasdkBt2RaNR4\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\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 main(#Ihh8LrOVwwe0ATy9 \\u2756: * main_page_data) {\n #rTkwJNKH36vu1SQP if box→is_init then {\n #UkwGgcl6Ou0sTsOy skip;\n }\n #rx13Qo8nI4IGE0b8 if true then {\n #R32j1dIgjjvaZC0t skip;\n }\n meta page;\n meta sync;\n}\n#BbWFpbiBwYWdlIGRhdGEa\ntable main_page_data {\n type = \"Object\";\n persistent = false;\n}\n#joyBVYYnbWlPww8E meta import forms {\n pub \"cnfhc\"\n usage {\n action `sync` `type` display_code()\n action `sync` `type` validator(s: String) returns(error: String)\n action `sync` button(text: String, body: Action)\n action `sync` checkbox(text: String, checked: Ref[Boolean])\n action `sync` input_string_collection(label: String, strings: Collection[String])\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: ♻ forms → display_code)\n action `sync` indented_content(content: ♻ forms → display_code)\n action `sync` input_choice(label: String, choices: Collection[String], index: Ref[Number])\n action `sync` input_text_line_w\\u002f_validator(label: String, text: Ref[String], errorcheck: ♻ forms → 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",
2015-05-27 01:20:56 +03:00
"iroye": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"game\";\nmeta icon \"controller\";\nmeta color \"#ff9955bb\";\nmeta rootId \"F18otGXDXq4l5kwcjDwwlg1w\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// A library to create games with physics, life, score and leaderboard. #games\n#Ayu95FKZqA9xPdjQXSANLGvP\naction initialize(#Ef1fU1WP2dp5fv5i width: Number, #CIEvqcj84KymuPB3 height: Number) {\n #bNSXfBcyc1TlFXuk // Call this first with your game board\n #Clk2zqeLTyzvKFNp $ratio := wall→width / wall→height;\n #lHC24tGRfxpXZxgk if $width < 0 `and` $height < 0 then {\n #xZ5BAygKRsMnteqb if $ratio < 1 then {\n #Ye23loceGoB42QXd $width := 800 * $ratio;\n #XOxgQshg475aS5Hk $height := 800;\n }\n else {\n #JqNvfilYjyb1v6dO $width := 800;\n #sEmxz8ZVPjbzQaT5 $height := 800 / $ratio;\n }\n }\n #jhe41v4xeIFpAnXk if $width < $height then {\n #Qe4DsmxnWXWundDd if $width < 0 then {\n #mo0yRpxiwtI2oz42 if $ratio < 1 then {\n #sLJ2pYjNI9NO4jGv $ratio := 1 / $ratio;\n }\n #lohlOvEl2FCCHlN8 $width := $height * $ratio;\n }\n #xZv5qx7QK0pfbIwx data→\\_board := media→create_portrait_board($width, $height);\n }\n else {\n #mbaxWZ8Upqc4dY2m if $height < 0 then {\n #urxU2iGbiBiGNGbM if $ratio < 1 then {\n #xzVsM6nAQXKxe7pq $ratio := 1 / $ratio;\n }\n #Y2iBY1rS8V2IYESl $height := $width / $ratio;\n }\n #IisORl3LBXmnPKgW data→\\_board := media→create_landscape_board($width, $height);\n }\n #cpH4M20Y66Y5LRJs data→\\_score := 0;\n #ekMv5bgzPxBK4CW4 data→\\_life := 3;\n #jbZnUix7Lx1Q7ZDV data→\\_start_time := invalid→datetime;\n #w1UaCIU8Ev4ebPlb data→\\_life_txt := invalid→sprite;\n #JOr3eMPViQ4dHWhw data→\\_score_txt := invalid→sprite;\n #my4nhbFyphwdVePb data→\\_timer_txt := invalid→sprite;\n #jLtQyZzuywVmboyz data→\\_countdown_duration := - 1;\n #ZZUqmmdXH7QdhMrH data→\\_hearts := \"---;❤;❤❤;❤❤❤\" →split(\";\");\n #xKSYee6TFDQOfML9 data→\\_score_txt := code→create_text();\n #Yyg0CzGMYWO9TQ47 data→\\_score_txt→set_pos(data→\\_board→width - 132, 20);\n #CtaIZxAjWA3KSV2x data→\\_score_txt→set_color(colors→orange);\n #kTjf5SscJwSXMOxR data→\\_life_txt := code→create_text;\n #lD26N7zVYcw4OA2B data→\\_life_txt→set_color(colors→red);\n #ShXHDkMQszri4hgi data→\\_life_txt→set_pos(84, 20);\n #DF79Mzy4RLJvr5lu data→\\_timer_txt := code→create_text;\n #flUJeGo9oH4ZKL7k data→\\_timer_txt→set_pos(data→\\_board→width / 2, 20);\n #nvzUAhKiUrDNx9ua if data→\\_board→width < data→\\_board→height then {\n #tprbh6Qbs4RtbWGE data→\\_score_txt→set_y(data→\\_board→height / 10.5);\n #vo1skKgdHy2wqGAI $y := data→\\_score_txt→y;\n #xIiwhrp5beNVxp0W data→\\_timer_txt→y := data→\\_score_txt→y;\n #xRtkSt16gx2kVUQE data→\\_life_txt→set_y($y);\n #xVMKJwJbqH32RaBs data→\\_score_txt→x := data→\\_board→width - 64;\n #sftDMBB4Rc62DLVK data→\\_life_txt→x := 64;\n }\n #lVFXy8tvC2YO5VaY code→set_score(0);\n #u1GLYt6g45euiwLd code→set_life(3);\n meta private;\n}\n#xW5SJ4MKJ44wSSDVuZgZG3iS\nvar \\_board : Board {\n transient = true;\n}\n#oKY8zayGQ3QsufrQiKXXS9sh\naction set_score(#xNzj5Tyy4ubd9CTJ value: Number) {\n #PK9RS22fUTIwMlpW // Sets the current score\n #jia5eGpMgyK70yu7 data→\\_score_txt→text := math→ceiling(data→\\_score)→to_string;\n #xQiqEsIGlVBWEId8 data→\\_score := $value;\n #xolTOrWos40PlDsI if data→\\_score < 0 then {\n #x6X2fk4vDwHtW7kW data→\\_score_txt→hide;\n }\n else {\n #jdbScDz352fC51ZD data→\\_score_txt→show;\n #xK4S7FrNcjoVbrXT $anim := data→\\_score_txt→create_animation;\n #xvRwFDBdhXE6rfYC $anim→text(1, \"cubic\", \"inout\", math→ceiling(data→\\_score)→to_string);\n }\n meta sync;\n}\n#l4svuo4DZFDcDqJbGklzHLTi\naction set_life(#Od5XHbEXJ6mWwB8S value: Number) {\n #jJNGIzmWCGL9Ye5S // Sets the curren
"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",
2015-06-09 21:52:56 +03:00
"klwwa": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank azure web api\";\nmeta icon \"Stacks\";\nmeta color \"#ffffffff\";\nmeta rootId \"x4mibwzdISu8zLeLgg7b3IKt\";\nmeta iconArtId \"wyfreugv\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta isCloud \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"network,npm,shell\";\nmeta parentIds \"\";\n// An Azure web api using Restify. #node #azure #restify #rest #api\n#Qb4usfyu91x2SfdX meta import azure_storage {\n pub \"qzkz\"\n usage {\n type @table\n type table_query\n action `async` init()\n action `async` create_private_table_if_not_exists(name: String) returns(@table: ♻ azure_storage → @table)\n action `async` insert_entity(@table: ♻ azure_storage → @table, entity: Json_Object, when_present: String)\n action `async` update_entity(@table: ♻ azure_storage → @table, entity: Json_Object, mode: String)\n action `async` try_update_entity(@table: ♻ azure_storage → @table, entity: Json_Object, mode: String) returns(ok: Boolean)\n action `async` delete_entity(@table: ♻ azure_storage → @table, entity: Json_Object)\n action `sync` create_entity(PartitionKey: String, RowKey: String) returns(entity: Json_Builder)\n action `async` delete_table(@table: ♻ azure_storage → @table)\n action `sync` create_query(@table: ♻ azure_storage → @table) returns(query: ♻ azure_storage → table_query)\n action `sync` @top(query: ♻ azure_storage → table_query, count: Number) returns(res_query: ♻ azure_storage → table_query)\n action `sync` @where(query: ♻ azure_storage → table_query, expression: String, argument: String) returns(res_query: ♻ azure_storage → table_query)\n action `sync` partition_key_is(query: ♻ azure_storage → table_query, PartitionKey: String) returns(res_query: ♻ azure_storage → table_query)\n action `sync` @and(query: ♻ azure_storage → table_query, expression: String, argument: String) returns(res_query: ♻ azure_storage → table_query)\n action `sync` @or(query: ♻ azure_storage → table_query, expression: String, argument: String) returns(res_query: ♻ azure_storage → table_query)\n action `async` get_entity(@table: ♻ azure_storage → @table, PartitionKey: String, RowKey: String) returns(result: Json_Object)\n action `sync` page_size(query: ♻ azure_storage → table_query, count: Number) returns(res_query: ♻ azure_storage → table_query)\n action `async` execute(query: ♻ azure_storage → table_query) returns(entities: Json_Object)\n action `sync` create_log_id() returns(id: String)\n action `sync` create_random_id(size: Number) returns(id: String)\n }\n}\n#czWG9NcXY9uFZHMz\naction \\_init() {\n #bMLhngb94mCl87BE // This action runs when the web server starts up. To deploy this service, go to the script settings, then tap `[Azure]` under `[export to app]`.\n #rg6M5H46J1bK4x8c data→logger := app→create_logger(\"api\");\n #fmCQZR9L4MGzZxju code→init_azure_services;\n #x2Y2gFv2oHeZKjaB code→init_restify;\n}\n#FrNAgtgAKnFVC43t\naction GET_\\u002fping() returns(#aM0QoLDaWxwAlfSy millis: Number) {\n #xzy3cNZXu2Lbz9f2 // Returns the number of milliseconds since epoch.\n #IYDlx4xcyWX5wD4m $millis := time→now→milliseconds_since_epoch;\n}\n#Uc74s6BEKtjofv4n meta import azure_search {\n pub \"gxoyc\"\n usage {\n #BVGhpbmca\n table Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #WbpPTavV3XYENAQf service_name : String\n #xQdHjpoFK4iKIgyz api_key : String\n #J4Vffn1xdLaOmNsv version : String\n }\n }\n type Index_Definition\n type Index\n type Batch_Update\n type Field_Definition\n type Scoring_Profile\n action `async` create_or_update(schema: ♻ azure_search → Index_Definition) returns(index: ♻ azure_search → Index)\n action `sync` create_batch_update(index: ♻ azure_search → Index) returns(update: ♻ azure_search → Batch_Update)\n action `sync` uplo
"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",
2015-05-12 05:19:45 +03:00
"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",
2015-02-04 19:07:58 +03:00
"lsrh": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"blank esplora\";\nmeta icon \"Controller\";\nmeta color \"#ff008000\";\nmeta rootId \"pC5UwMf4G7SPUhesWRaUHyQ6\";\nmeta allowExport \"yes\";\nmeta platform \"current\";\n// An script that gets exported to the Arduino #Esplora board.\n#main\naction setup() {\n skip;\n meta private;\n}\n#rK9jginmrEINvgw7qIb2i66k meta import esplora {\n pub \"xblmc\"\n usage {\n action `sync` millis() returns(ms: Number)\n action `sync` micros() returns(us: Number)\n action `async` delay(ms: Number)\n action `sync` acceleration() returns(p: Vector3)\n action `sync` temperature() returns(p: Number)\n action `sync` light_sensor() returns(light: Number)\n action `sync` slider() returns(pos: Number)\n action `sync` microphone() returns(sound: Number)\n action `sync` is_joystick_button_pressed() returns(b: Boolean)\n action `sync` is_button_pressed(switch_index: Number) returns(b: Boolean)\n action `sync` joystick_x() returns(x: Number)\n action `sync` joystick_y() returns(y: Number)\n action `sync` color() returns(c: Color)\n action `sync` set_color(c: Color)\n action `sync` tone(frequency: Number, ms: Number)\n action `sync` no_tone()\n }\n}\n#r75MjRvGqDKnLhJ9inuyjofK\naction main() {\n // This code emulates the Arduino Esplora runtime. Do not edit.\n code→setup;\n time→on_every_frame($perform);\n where perform() {\n code→loop;\n @\\u267b→esplora→delay(10);\n }\n}\n#OMQT5yM1JrJcj3UdHlpxgTaJ\naction loop() {\n skip;\n meta private;\n}\n",
"mdrw": "meta version \"v3.0,js,ctx,refs,localcloud,unicodemodel,allasync,replay,partial\";\nmeta name \"blank pixel art\";\nmeta icon \"NineColumn\";\nmeta color \"#ff9955bb\";\nmeta rootId \"VBXALpufM78Zg6nXlU4VkoKX\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// A pixel art script. #pixelart\n#RgqvETdZVOPoT1G4\naction main() {\n #QECmOCB8D9No5rO6 @\\u267b→pixel_art→set_pen_color(colors→random);\n #xO2UVI7FHoavaFrj @\\u267b→pixel_art→paint(8, 8);\n}\n#TTrakYktVjHUznf2 meta import pixel_art {\n pub \"tsrn\"\n usage {\n action `sync` create(terrain: String)\n action `async` test()\n action `sync` set_pen_color(c: Color)\n action `sync` pen_color() returns(c: Color)\n action `async` paint(x: Number, y: Number)\n action `sync` pixel(x: Number, y: Number) returns(c: Color)\n action `sync` sides() returns(cols: Number)\n action `async` test_fail()\n action `async` test_success()\n }\n}\n",
2015-03-18 20:50:30 +03:00
"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
2015-06-09 00:01:28 +03:00
"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()
2015-04-25 01:32:17 +03:00
"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
2015-02-04 19:07:58 +03:00
"oqsm": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"tutorials\";\nmeta rootId \"xcFXL1vqQbVPFKk2Yc1gTRIF\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// A list of TouchDevelop tutorials. #docs #tutorials\n#main\naction main() {\n #LQQH7W4x4vOr6kcT // {parentTopic:contents}\n #LpknIXykLhvB5YLw // {priority:2}\n #x6WZ72Kym5u8aNuV // {docflags:nochrome}\n #JkpnXEMEJkFS4mnx // # featured\n #xPrDSkOmttZegncR // * {follow:Coding Jetpack Jumper!}\n #xAR2eREH5fGtTotx // * {follow:jumping bird tutorial}\n #yO4n3Tb0o3Or3L55 // * {follow:first steps with turtle}\n #fSp20aGSenwd4bH2 // * {follow:pixel art tutorial}\n #aM13Ksd59pPcP33j // # games\n #iUSpluk0DLK4NtiA // * {follow:monster slicer tutorial}\n #A8cfd633Th1P7kbJ // * {follow:bear quest tutorial}\n #VsZDHY1LOsv3l825 // * {follow:falling rocks tutorial}\n #x93wx6dPRfGXaxdE // * {follow:don't tap the tile tutorial}\n #XP2FMZ7hb7pCZzlE // * {follow:word hunt tutorial}\n #qOTdAJch2sHVC4Av // * {follow:love me not tutorial}\n #kFSt9am2yYoTHMsd // * {follow:sound board tutorial}\n #uWIA0tQivNtloAdi // * {topictile:game tutorials}\n #H7AzZmdb0qZkhNmB // # beginners\n #x5vHrVNhyrmyHfSS // * {follow:turtle ramp up tutorial}\n #avV0BXVrlq8tFqbJ // * {follow:pixels tutorial}\n #ltteGneoeMCOKyfD // * {follow:scratch cat tutorial}\n #IjY2cuHq10NmYN8Z // * {topictile:beginner tutorials}\n #lUIEFAjnBaFp0NYM // # social apps\n #zomIAaVZ03v4R1xB // * {follow:one pic social tutorial}\n #JZPcmj4bsQ6MphyN // * {follow:map of things tutorial}\n #CiNPuZfJcC2VnMKB // * {follow:square poll tutorial}\n #Bg5Sg2zvnzUsxWDD // * {topictile:social app tutorials}\n #mW19SQB7JzUYUDyp // # algorithms\n #wzF2w9H8stNcR8oB // * {follow:quadratic equation solver}\n #HqrHWbJyly22r9vo // * {follow:factorial tutorial}\n #QI6trn3hYBszuzKO // * {topictile:algorithm tutorials}\n #lhDXdp92VSAbLGDI // # code hunt\n #TQJbXgBtfLKPm4eZ // * {follow:code hunt sector 0}\n #UFYGFD7GvVf941uN // * {follow:code hunt sector 1}\n #uyUyccw3k3epD2WP // * {follow:code hunt sector 2}\n #pKVV2nqY2iWOrdrQ // * {topictile:code hunt tutorials}\n #xQcC1JyQ0SbywpYf // # arduino\n #ht2FBDTcOKDiMxuT // * {follow:arduino blink tutorial}\n #xVTW9pO53483xii4 // * {follow:arduino sos tutorial}\n #LB6wN2U8tYxM2xMd // * {topictile:arduino tutorials}\n #KqQQoH1lfiX7GGs9 // # hardware\n #xiePhqB81TDsXU4v // * {follow:makey makey beatbox tutorial}\n #xLaWWHNk2TcRzkXa // * {follow:esplora level tutorial}\n #xF73sSThDYR09wui // * {topictile:hardware tutorials}\n #x7K4ek6efU0P1hOd // **Want to write your own tutorials?** Learn how to [create interactive tutorials](/creatinginteractivetutorials).\n}\n",
2015-05-12 05:19:45 +03:00
"ovsf": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"advanced topics\";\nmeta icon \"Capitalize\";\nmeta color \"#ff66ff00\";\nmeta rootId \"npPeJGVIwzXSzviuRJx4QZdx\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// Documentation. #docs #content\n#dPls0VOqrjVgrd8l\naction main() {\n #xrsW4qaXYgfIbt3y // {parentTopic:contents}\n #d3Mt25zk5OtB7p1q // {priority:18}\n #n8nYubeSJAy44z3V // This section highlights advanced programming techniques with TouchDevelop, from testing and debugging to working with web services and cloud-based APIs.\n #A2gpx4JKDMpPreG2 // ## working with code\n #xKHgDuZA9CDWVRvz // * [coding guidelines](/codingguidelines)\n #mZ7vCfgMwseLMcU2 // * [](/debugging)\n #DxgnNlqjP2PmFJyy // * [](/testing)\n #cg4SuHwjzmBSBiYV // * [](/refactorings)\n #BWzEufAUIGczyAse // * [](/plugins)\n #x8rcyx8d9Jojr6Rd // * [hosted apps](/hostedapps)\n #xEQPTaV6NZqozCt4 // ## exporting\n #pnSWGGicOCNMrbwm // * [exporting scripts to apps](/exporttoapp)\n}\n",
2015-02-04 19:07:58 +03:00
"parp": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"blank turtle\";\nmeta icon \"Snowflake\";\nmeta color \"#ff007fff\";\nmeta rootId \"JfhbuKHwe3K29WLENfXE17iC\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// #turtle\n#k3GG7tZEQiPXLEm5bnyfOkDF\naction main() {\n #iTGtxXhIwXwHLfFT @\\u267b→turtle→forward(100);\n}\n#xEv66n448mkvLMp4 meta import turtle {\n pub \"smzqa\"\n usage {\n type Maze\n action `async` pen_down()\n action `async` pen_up()\n action `async` move_to(x: Number, y: Number)\n action `async` forward(steps: Number)\n action `async` left_turn(angle: Number)\n action `async` set_pen_color(c: Color)\n action `async` xcor() returns(x: Number)\n action `async` ycor() returns(y: Number)\n action `async` heading() returns(a: Number)\n action `async` world_width() returns(w: Number)\n action `async` world_height() returns(h: Number)\n action `async` set_heading(angle: Number)\n action `async` set_pen_size(thickness: Number)\n action `async` right_turn(angle: Number)\n action `async` circle(radius: Number)\n action `async` world_board() returns(board: Board)\n action `async` turn_to(dx: Number, dy: Number)\n action `async` world_picture() returns(pic: Picture)\n action `async` set_speed(steps_per_second: Number)\n action `async` go_home()\n action `async` back(steps: Number)\n action `async` pen_size() returns(size: Number)\n action `async` clean()\n action `async` clear_screen()\n action `async` speed() returns(v: Number)\n action `async` set_xy(xcor: Number, ycor: Number)\n action `async` set_x(xcor: Number)\n action `async` set_y(ycor: Number)\n action `async` pen_color() returns(c: Color)\n action `async` color_under() returns(c: Color)\n action `async` save_picture()\n action `async` xy() returns(x: Number, y: Number)\n action `async` touch_xy() returns(tx: Number, ty: Number)\n action `async` grid()\n action `async` fast()\n action `async` stamp()\n action `async` set_turtle_picture(pic: Picture)\n action `async` set_turtle_opacity(opacity: Number)\n action `async` trail()\n action `async` add_obstacle(maze: ♻ turtle → Maze, x: Number, y: Number, width: Number, height: Number, c: Color)\n action `async` set_goal(maze: ♻ turtle → Maze, x: Number, y: Number, radius: Number, c: Color)\n action `async` maze() returns(maze: ♻ turtle → Maze)\n action `async` lock(maze: ♻ turtle → Maze)\n action `async` history() returns(commands: String)\n action `async` clear_history()\n action `sync` on_command(command: Text_Action)\n action `async` add_way_point(maze: ♻ turtle → Maze)\n action `async` on_collision(maze: ♻ turtle → Maze, collision: Action)\n }\n}\n",
2015-05-11 13:38:32 +03:00
"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",
2015-05-27 01:20:56 +03:00
"qvira": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"game animations\";\nmeta icon \"Controller\";\nmeta color \"#ff9955bb\";\nmeta rootId \"x5GWly5akgFmjLrYRRLK4cEP\";\nmeta isLibrary \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// A suite of nifty game animations.\n#example\naction example() {\n #oQvXum6wlCxvA14x // This library provides a bunch of cool animation to be used with the `libs->game` library.\n #OrK2keevME4R7Ikt // {hide}\n #IBkRy8dLlysml6xn $pic := media→create_picture(480, 800);\n #LUD4QUQWDq3cZvhL $board := @\\u267b→game→start;\n #PcO7yRSD4Y6NqNK1 @\\u267b→game→bounce_on_sides;\n #uuxlVRt3Fj7zUX3d $sprite := $board→create_rectangle(100, 100);\n #WeOMvS436zFINcmB $sprite→set_color(colors→blue);\n #cd8qQ2IGGEG8LSik $sprite→set_acceleration_y(400);\n #ozsU7Yocpctcf8Kz $sprite→set_opacity(0.8);\n #OTQ8K19QPPnhEckE // {/hide}\n #EBms12UX1I3YptSc // ### splatter\n #o4uCUnbQ4qtH4xOe // Display a splatter under the sprite that goes away after a couple secs.\n #pQPunYKP94mwyJYM code→splatter($sprite, $pic);\n #ItG0lTW3p7NiLMvc // ### add score to a sprite\n #WTbMbwwzr2UNA7NT // Add a score that pops a little ``+score`` on the top right corner of the sprite.\n #Ejn7ZLQa7j8Earpj code→add_score($sprite, 100);\n meta private;\n meta test;\n}\n#xdHh3GbzZt7wBK4e meta import game {\n pub \"ofjsa\"\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()\n action `sync` start_countdown_timer(seconds: Number)\n action `sync` life() returns(r: Number)\n action `sync` score() returns(r: Number)\n action `sync` current_time() returns(seconds: Number)\n action `sync` add_score(value: Number)\n action `async` add_life(value: Number)\n action `sync` clear_timer()\n action `async` remove_life(value: Number)\n action `async` end()\n action `async` start() returns(board: Board)\n action `sync` reset()\n action `async` start_with_fixed_size(width: Number, height: Number) returns(board: Board)\n action `async` start_with_background_picture(pic: Picture) returns(board: Board)\n action `sync` board() returns(board: Board)\n action `sync` on_end(@action: Action)\n action `async` start_landscape() returns(board: Board)\n action `async` start_portrait() returns(board: Board)\n action `sync` set_hud_colors(life: Color, timer: Color, score: Color)\n action `sync` hud_sprites() returns(sprites: Sprite_Set)\n action `async` life_visible() returns(b: Boolean)\n action `async` set_life_visible(visible: Boolean)\n action `sync` sprites() returns(sprites: Sprite_Set)\n action `async` set_background_scene(direction: String, pic: Picture)\n action `sync` bounce_on_sides()\n action `sync` create_sprite(pic: Picture) returns(sprite: Sprite)\n action `async` splash(message: String, options\\u003f: ♻ game → Splash_Options)\n action `async` splash_text(message: String, seconds: Number, foreground: Color, background: Color, done: Action)\n }\n}\n#IgJeOaT4qD6XCDWM\naction splatter(#xSZvm6EeJuCvT4s4 sprite: Sprite, #MCvt1zYjYJcK4L44 splatter: Picture) {\n #X4OAdwxnO5wHxDZa // Splats the ``splatter`` picture under the ``sprite`` and fades it away.\n #X64Ps5YYS1av5MpI $sp := @\\u267b→game→board→create_picture($splatter);\n #ODXoYXN95HMQR2Cl $sp→set_pos($sprite→x, $sprite→y);\n #u9qh43UUwoK0FZl0 $sp→set_width($sprite→width);\n #x2LYMGKCfJ1oW8qz $sp→set_speed($sprite→speed_x / 5, $sprite→speed_y / 5);\n #uAJdLNuxiNbu2T4D $sp→friction := 0.05;\n #xkBOKjaSeL4oRcyl $sp→z_index := $sprite→z_index - 1;\n #F7VCHbHecTaVIjT4 $anim := $sp→create_anima
2015-06-09 21:52:56 +03:00
"qwos": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank event hubs\";\nmeta icon \"Stacks\";\nmeta color \"#ffffffff\";\nmeta rootId \"rTo1i2UE9ZqDVMIBTLAUqMYl\";\nmeta iconArtId \"wyfreugv\";\nmeta isLibrary \"yes\";\nmeta allowExport \"yes\";\nmeta isCloud \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"network,npm,shell\";\nmeta parentIds \"\";\n// A node.js web site that sends events to Azure Event Hubs using AMQP. #node #azure #restify #rest #api\n#x6T4YCsBsZWtPUmF\naction \\_init() {\n #Zy8rc2YHRBIcmnOf // This template allows you to easily stream data to an Azure Event Hubs instance using the AMQP1.0 protocol.\n #LKpR3HLsnUt8zjTC // To setup this service, you will have to setup the following:\n #x0DCfAxIkDRE4kH5 // * An [Event Hub](http://azure.microsoft.com/en-us/services/event-hubs/) in Azure.\n #BPgmHhKMscVJieMa // * define the ``AZURE_SERVICEBUS_SAS_KEY_NAME`` environment variable with your SAS key name\n #R7tTfXVWqjfIjJuw // * define the ``AZURE_SERVICEBUS_SAS_KEY`` environment variable with the SAS key.\n #uHkwReQVwrICaHzH // * (optional) setup application insights instrumentation key by defining the ``APPINSIGHTS_INSTRUMENTATION_KEY`` environment variable.\n #JGUzkYMjc2rxbxQ2 // * `[Export]` this script to a node.js web site.\n #bMtNnag4oaUSbmG8 data→logger := app→create_logger(\"api\");\n #ggtkH2QPjkFSMATl code→init_restify;\n #xYi50zyUUbDrUiYA code→init_azure_services;\n #GmpMiJN3N0hJ473p // TODO: change the event hubname below\n #A3exv4u2E6ZcTY5F data→hub := @\\u267b→azure_event_hubs→create_event_hub_if_not_exists(\"events\");\n #rlP2tbcbetF1rUVe time→run_every(1, $perform);\n #OVfCshDzbjMrMcel where perform() {\n #wjsvsYZW73p1LRfD // this is where you read your sensor data\n #xViWmNVnfqeTVF3p $msg := records→Message→create;\n #hzLc4iJcGXm7Yk3P $msg→temp := math→random(1000);\n #T9qIzqSC0FK3USRu // and send it to the event hub...\n #uX42zx1Jbgxuczbb data→hub→send_message_as_json(data→deviceid, $msg→to_json);\n }\n}\n#yjW8JMhhkCVxVG9z meta import parallel {\n pub \"fncvb\"\n usage {\n type queue\n action `async` @for(count: Number, @action: Number_Action)\n action `async` for_batched(count: Number, batch_count: Number, item_action: Number_Action, batch_action: Action)\n action `sync` schedule(q: ♻ parallel → queue, task: Action)\n action `sync` create_queue(max_running: Number) returns(queue: ♻ parallel → queue)\n action `async` wait_for_empty(q: ♻ parallel → queue)\n action `async` for_json(js: Json_Object, @action: Json_Action)\n }\n}\n#kGiIbArLBJgrGrUh\nvar logger : App_Logger {\n transient = true;\n}\n#xht4tB8QBEGYhcxd\naction init_azure_services() {\n #xrdwLuCApP4dSbPN @\\u267b→azure_event_hubs→init;\n #rIelx44MT4mxwsuP if data→deviceid→is_empty then {\n #lVuKP04Sv0BPFvTe data→deviceid := @\\u267b→node_crypto→random_bytes(16)→to_string(\"hex\");\n }\n #SqiRrk2SBmwfUygc data→logger→info(\"deviceid: \" ∥ data→deviceid);\n meta private;\n}\n#VJhyWCgHgpoXBxQe\naction init_restify() {\n #Rfk2zOUWd63utX0c $server := @\\u267b→restify→server;\n #xwHqz4BboMG6fFYA $server→use(@\\u267b→restify→authorization_parser);\n #CCiEC9MjVyBu1Alm $server→pre(@\\u267b→restify→sanitize_path);\n #QhDtswBtwpK4HWfj $throttle := @\\u267b→restify→throttle;\n #xnNL4UkM1HGz7bML where rate := 40;\n #pjHy3CkNNDrbTRdj where burst := 100;\n #u8A4y4yHMKc8lyUK where ip := true;\n #hivZ6Vt6ftjQnefM $server→use($throttle);\n #xHYwcSAiT7KduHhg $server→use(@\\u267b→restify→CORS);\n #uouNso31DPAdpy0R $server→use(@\\u267b→restify→body_parser);\n #PQsbPK8j0KxXP7BN $server→use(@\\u267b→restify→gzip_response);\n #krhauhLHNWLfS4Rr $server→use(@\\u267b→restify→query_parser);\n #OQV2aOnQMrFwfSMH $server→use(@\\u267b→restify→conditional_request);\n #dJCZRF6m52AEcGvh @\\u267b→restify_touchdevelop→autobind($server);\n #RheHhoSGEfw2gVg7 code→init_routes;\n #JCEJ0pDtVdSmeI23 $server→use(@\\u267b→re
2015-07-28 07:31:25 +03:00
"qxisc": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank minecraft pi\";\nmeta color \"#ffffffff\";\nmeta rootId \"UqtPMmqsRpLtBLICK3xNRKmo\";\nmeta iconArtId \"eopyzwpm\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta splitScreen \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// A empty Minecraft Pi script #minecraft\n#ALKdKR1Vv5Af8ary\naction main() {\n #SR5dzqJdsXnD9Px1 minecraft[lib minecraft_pi] →forever;\n #Xy4Nv7JZuntRGG5a where `implicit` \\_body\\_() {\n #EzGPnaeUNsf2lJo0 $pos := minecraft[lib minecraft_pi] →player_→position;\n #Hs2flgMuxizo1bcw $pos→set_block(\"flower yellow\");\n }\n}\n#Hj8w4iMmgrlVuxkz meta import minecraft_pi {\n pub \"mtnb\"\n usage {\n #BVGhpbmca\n table Block_Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #xNQF2IfWS5kUTCuC state : Number\n #xUNtn4WzFNh0J275 wool : String\n }\n }\n #xIIDIryL3GdLzzFH\n table Connect_Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #IhKVKMjdA949jNr3 host : String\n #PQgsvjixlAlu49Bw port : Number\n #nlMXsJlluWZB1fNN proxy : String\n }\n }\n #umgRs0Idq3y9jRyc\n table Block_Event {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #SCV1txxxrjigP8XC kind : String\n #UIy6UFvY6WJWDDoA x : Number\n #wWASeEjKJDoiqrL2 y : Number\n #MkoIqcTcP3QiIoot z : Number\n #kYCW4sVB0Q5jQy0Q face : Number\n #EayHvTpmMjNF3Sfh entity : ♻ minecraft_pi → Entity\n }\n }\n #pqaWOjEWNqEkbxwJ\n table Position {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #L4NO4JXo2Sev2b1J x : Number\n #x2UU2Lt4BiV8NNNz y : Number\n #gw4VDwinZ6yVcwzL z : Number\n }\n }\n #eVDb6TwJ7CKitS8g\n table Repeat_Options {\n type = \"Object\";\n exported = true;\n persistent = false;\n fields {\n #VB0iDf9EazabCCQM delay : Number\n }\n }\n type Entity\n action `async` connect(options\\u003f: ♻ minecraft_pi → Connect_Options)\n action `async` set_block(@this: ♻ minecraft_pi → Position, name: String, options\\u003f: ♻ minecraft_pi → Block_Options)\n action `async` set_many_blocks(@this: ♻ minecraft_pi → Position, corner: ♻ minecraft_pi → Position, name: String, options\\u003f: ♻ minecraft_pi → Block_Options)\n action `async` block(@this: ♻ minecraft_pi → Position) returns(name: String)\n action `async` height(@this: ♻ minecraft_pi → Position) returns(h: Number)\n action `async` chat(msg: String)\n action `async` position(entity: ♻ minecraft_pi → Entity) returns(pos: ♻ minecraft_pi → Position)\n action `async` set_position(entity: ♻ minecraft_pi → Entity, p: ♻ minecraft_pi → Position)\n action `sync` is_connected() returns(r: Boolean)\n action `async` player_() returns(p: ♻ minecraft_pi → Entity)\n action `async` direction(entity: ♻ minecraft_pi → Entity) returns(d: Number)\n action `async` rotation(entity: ♻ minecraft_pi → Entity) returns(d: Number)\n action `async` pitch(entity: ♻ minecraft_pi → Entity) returns(d: Number)\n action `async` player_by_name(name: String) returns(steve: ♻ minecraft_pi → Entity)\n action `sync` block_names() returns(names: Collection[String])\n action `async` forever(body: Action, options\\u003f: ♻ minecraft_pi → Repeat_Options) returns(t: Timer)\n action `sync` wool_colors() returns(cs: Collection[Color])\n action `sync` wool_color(c: Color) returns(name: String)\n action `async` spawn(@this: ♻ minecraft_pi → Position, kind: String) returns(mob: ♻ minecraft_pi → Entity)\n action `async` test_spawn()\n action `async` up(@this: ♻ minecraft_pi → Position, value: Number) returns(r: ♻ minecraft_pi → Position)\n action `async` down(@this: ♻ minec
"skhba": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank creeper\";\nmeta color \"#ffffffff\";\nmeta rootId \"nHs55hVQebfHsdRXLqdn6Z3u\";\nmeta iconArtId \"yapqobto\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta splitScreen \"yes\";\nmeta platform \"accelerometer,location,musicandsounds,network,orientation,shell\";\nmeta parentIds \"\";\n// Move the creeper to create cool structures! #minecraft #turtle\n#ew46jSsSq5jX27bx\naction main() {\n #C5Nw6Q63PHrMOwzg @\\u267b→creeper→change_block(\"tnt\");\n #GntZkP8LuGenbICm for 0 ≤ i < 50 do {\n #PP9GM4o5xyjrF9bc @\\u267b→creeper→move_forward(5);\n #x17oHSx7q2zlZQpM @\\u267b→creeper→turn_left(90);\n }\n}\n#TxtsVwcz4q5Lmmbj meta import creeper {\n pub \"svkcg\"\n usage {\n\n action `async` move_forward(blocks: Number)\n action `async` turn_left(angle: Number)\n action `async` turn_right(angle: Number)\n action `async` move_back(blocks: Number)\n action `async` change_block(name: String)\n action `async` fly_down(blocks: Number)\n action `async` fly_up(blocks: Number)\n action `async` position() returns(x: Number, z: Number)\n action `async` fly_mode()\n action `async` build_cube(sides: Number)\n action `async` build_tower(sides: Number, height: Number)\n action `async` wipe_out()\n action `async` mine(blocks: Number)\n action `async` ground_height() returns(y: Number)\n action `async` walk_mode()\n action `async` dig_mode()\n action `async` block() returns(kind: String)\n action `async` chat(msg: String)\n action `async` add_checkpoint(id: String)\n action `async` go_to_checkpoint(id: String)\n action `async` build_walls()\n action `async` change_wool(c: Color)\n }\n #KFATpFRVS44u7wAx resolve turtle = ♻ turtle with {\n }\n #gKgFDc8tZQYU0iTw resolve minecraft_pi = ♻ minecraft_pi with {\n }\n #KjIA8hSW9139aOmP resolve shell = ♻ shell with {\n }\n}\n#mDbZKA4zyanhcLrQ meta import turtle {\n pub \"gkgtg\"\n usage {\n type Maze\n\n action `async` pen_down()\n action `async` pen_up()\n action `async` move_to(x: Number, y: Number)\n action `async` forward(steps: Number)\n action `async` left_turn(angle: Number)\n action `async` set_pen_color(c: Color)\n action `async` xcor() returns(x: Number)\n action `async` ycor() returns(y: Number)\n action `async` heading() returns(a: Number)\n action `async` world_width() returns(w: Number)\n action `async` world_height() returns(h: Number)\n action `async` set_heading(angle: Number)\n action `async` set_pen_size(thickness: Number)\n action `async` right_turn(angle: Number)\n action `async` circle(radius: Number)\n action `async` world_board() returns(board: Board)\n action `async` turn_to(dx: Number, dy: Number)\n action `async` world_picture() returns(pic: Picture)\n action `async` set_speed(steps_per_second: Number)\n action `async` go_home()\n action `async` back(steps: Number)\n action `async` pen_size() returns(size: Number)\n action `async` clean()\n action `async` clear_screen()\n action `async` speed() returns(v: Number)\n action `async` set_xy(xcor: Number, ycor: Number)\n action `async` set_x(xcor: Number)\n action `async` set_y(ycor: Number)\n action `async` pen_color() returns(c: Color)\n action `async` color_under() returns(c: Color)\n action `async` save_picture()\n action `async` xy() returns(x: Number, y: Number)\n action `async` touch_xy() returns(tx: Number, ty: Number)\n action `async` show_grid()\n action `async` fast()\n action `async` stamp()\n action `async` set_turtle_picture(pic: Picture)\n action `async` set_turtle_opacity(opacity: Number)\n action `async` trail()\n action `async` add_obstacle(maze: ♻ turtle → Maze, x: Number, y: Number, width: Number, height: Number, c: Color)\n action `async` set_goal(maze: ♻ turtle → Maze, x: Number, y: Number, radius: Number, c: Color)\n action `async` maze() returns(maze: ♻ turtle <20>
2015-02-04 19:07:58 +03:00
"spbd": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync\";\nmeta name \"blank template\";\nmeta rootId \"s18cNgqmk4qdPwKNK0ppoMp2\";\nmeta allowExport \"yes\";\nmeta platform \"current\";\n#main\naction main() {\n skip;\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",
2015-03-26 19:01:24 +03:00
"szzdc": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank arduino\";\nmeta icon \"ArrowStandardCircle\";\nmeta color \"#ff00cc99\";\nmeta rootId \"xkbt9ErH776FGA72sWuqxeOz\";\nmeta iconArtId \"kzajxznr\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n// An Arduino sketch. #arduino #arduinoSketch\n#KUJMn0ag6zrqQys9\naction setup() {\n #qWODTg5ZnR95PTeF @\\u267b→arduino→pin_mode(13, @\\u267b→arduino→OUTPUT);\n meta private;\n}\n#UzRPACG9RBTCLU2MkuwLAhpD\naction loop() {\n #x5bamvNg9UVXaFY7 @\\u267b→arduino→digital_write(13, @\\u267b→arduino→HIGH);\n #UybvnpQJqqrqtrnH @\\u267b→arduino→delay(200);\n #xqXPRRCVUKc8rCTO @\\u267b→arduino→digital_write(13, @\\u267b→arduino→LOW);\n #um2lxP36WxO2OgOk @\\u267b→arduino→delay(200);\n meta private;\n}\n#iHY2wlj4qcvFdTHc meta import arduino {\n pub \"cqfda\"\n usage {\n action `sync` digital_read(pin: Number) returns(bit: Number)\n action `sync` digital_write(pin: Number, value: Number)\n action `sync` analog_read(pin: Number) returns(bit: Number)\n action `sync` analog_write(pin: Number, value: Number)\n action `async` pin_mode(pin: Number, mode: Number)\n action `sync` HIGH() returns(v: Number)\n action `sync` LOW() returns(v: Number)\n action `sync` OUTPUT() returns(v: Number)\n action `sync` INPUT() returns(v: Number)\n action `async` delay(millis: Number)\n action `sync` sketch(source: String)\n action `sync` static_buffer(bytes: String) returns(buf: Buffer)\n action `sync` INPUT\\_PULLUP() returns(v: Number)\n action `sync` LED\\_BUILTIN() returns(r: Number)\n action `sync` mac(address: String)\n action `sync` analog_reference(type: Number)\n action `sync` DEFAULT() returns(r: Number)\n action `sync` EXTERNAL() returns(r: Number)\n action `sync` tone(pin: Number, frequency: Number, duration: Number)\n action `sync` no_tone(pin: Number)\n action `sync` millis() returns(millis: Number)\n action `sync` micros() returns(micros: Number)\n action `sync` pulse_in(pin: Number, value: Number, timeout: Number) returns(micros: Number)\n action `sync` board(name: String)\n action `sync` print_value(name: String, value: Number)\n action `sync` print(text: String)\n action `sync` println(text: String)\n action `sync` map(value: Number, from_low: Number, from_high: Number, to_low: Number, to_high: Number) returns(r: Number)\n action `sync` constrain(value: Number, a: Number, b: Number) returns(r: Number)\n action `async` delay_microseconds(micros: Number)\n }\n}\n#xJTsvVkdQIFOcF0fRDHFLPLk\naction variables() {\n #xaFPmIVW8ylv5b9P // Initializes your global variables here.\n meta private;\n}\n#CvN1nxjx0F41jAPT meta import serial {\n pub \"kzkua\"\n usage {\n action `sync` read() returns(byte: Number)\n action `sync` available() returns(bytes: Number)\n action `sync` peek() returns(byte: Number)\n action `sync` print(msg: String)\n action `sync` println(msg: String)\n action `sync` write(byte: Number)\n }\n #ojn444WfORgPYrSW resolve arduino = ♻ arduino with {\n }\n}\n",
2015-02-04 19:07:58 +03:00
"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",
2015-06-09 00:01:28 +03:00
"yfvga": "meta version \"v2.2,js,ctx,refs,localcloud,unicodemodel,allasync,upperplex\";\nmeta name \"blank game template\";\nmeta icon \"Controller\";\nmeta color \"#ff9955bb\";\nmeta rootId \"x0hukfGG4i3MRik2f8KmalqI\";\nmeta allowExport \"yes\";\nmeta hasIds \"yes\";\nmeta platform \"current\";\nmeta parentIds \"\";\n#Apxoi0VesSBXIz9PLx65FHFL\naction main() {\n #xSdbHt6IzwL2zF22 $board := @\\u267b→game→start;\n #HcieLw2N0l20RLiX @\\u267b→game→splash(\"Get Ready!\");\n #tO3dDceW3bsm8w4D @\\u267b→game→bounce_on_sides;\n #d3NEpyQ23dEnVv0F $monster := @\\u267b→game→create_sprite(art→monster);\n #DXV4iMnEfxNiTp9x $monster→acceleration_y := 400;\n #b1vCOUVhFBUhOTZS @\\u267b→gamepad→on_button_pressed;\n #wenMZEk4bzR7XHM4 where `implicit` \\_body\\_() {\n #nIR8WfYhh9EC5Qo1 $monster→speed_y := - 200;\n }\n}\n#fSyvIbKGn14wwLec 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()\n action `sync` start_countdown_timer(seconds: Number)\n action `sync` life() returns(r: Number)\n action `sync` score() returns(r: Number)\n action `sync` current_time() returns(seconds: Number)\n action `sync` add_score(value: Number)\n action `async` add_life(value: Number)\n action `sync` clear_timer()\n action `async` remove_life(value: Number)\n action `async` end()\n action `async` start() returns(board: Board)\n action `sync` reset()\n action `async` start_with_fixed_size(width: Number, height: Number) returns(board: Board)\n action `async` start_with_background_picture(pic: Picture) returns(board: Board)\n action `sync` board() returns(board: Board)\n action `sync` on_end(body: Action)\n action `async` start_landscape() returns(board: Board)\n action `async` start_portrait() returns(board: Board)\n action `sync` set_hud_colors(life: Color, timer: Color, score: Color)\n action `sync` hud_sprites() returns(sprites: Sprite_Set)\n action `async` life_visible() returns(b: Boolean)\n action `async` set_life_visible(visible: Boolean)\n action `sync` sprites() returns(sprites: Sprite_Set)\n action `async` set_background_scene(direction: String, pic: Picture)\n action `sync` bounce_on_sides()\n action `sync` create_sprite(pic: Picture) returns(sprite: Sprite)\n action `async` splash(message: String, options\\u003f: ♻ game → Splash_Options)\n action `async` splash_text(message: String, seconds: Number, foreground: Color, background: Color, done: Action)\n }\n}\n#SU9oq98rU41J6G2v meta import gamepad {\n pub \"mlqea\"\n usage {\n type Settings\n type Gamepad_Event_Binding\n action `sync` current() returns(p: Vector3)\n action `sync` set_keys(settings: ♻ gamepad → Settings, left: String, up: String, right: String, down: String, button: String)\n action `sync` set_use_accelerometer(settings: ♻ gamepad → Settings, enabled: Boolean)\n action `sync` use_accelerometer(settings: ♻ gamepad → Settings) returns(b: Boolean)\n action `sync` control_sprite(sprite: Sprite, max_speed_x: Number, max_speed_y: Number)\n action `sync` control_background_scene(max_speed_x: Number, max_speed_y: Number)\n action `sync` settings() returns(sets: ♻ gamepad → Settings)\n action `sync` set_accelerometer_factor(settings: ♻ gamepad → Settings, factor: Number)\n action `sync` set_keyboard_factor(settings: ♻ gamepad → Settings, factor: Number)\n action `sync` set_touch_factor(settings: ♻ gamepad → Settings, factor: Number)\n action `sync` accelerometer_factor(settings: ♻ gamepad → Settings) returns(factor: Number)\n action `sync` keyboard_factor(settings: ♻ gamepad → Settings) re
2015-02-04 19:07:58 +03:00
"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":"App javascript","id":"ryoka","rootid":"ryoka","userid":"jeiv","description":"#docs #AppJavascript","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1407457015,"priority":10000},
{"name":"App javascript async","id":"qjef","rootid":"qjef","userid":"jeiv","description":"#docs #AppJavascriptAsync","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1407956733,"priority":10000},
{"name":"Bazaar ast of","id":"uplz","rootid":"emol","userid":"jeiv","description":"#docs #BazaarAstOf","iconbackground":"#A1CAF1","icon":"Farm","iconArtId":null,"splashArtId":null,"time":1370371413,"priority":10000},
{"name":"Bazaar pick script","id":"dusea","rootid":"dusea","userid":"jeiv","description":"#docs #BazaarPickScript","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1370371241,"priority":10000},
{"name":"Bazaar save ast","id":"zsir","rootid":"zsir","userid":"jeiv","description":"#docs #BazaarSaveAst","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1370371622,"priority":10000},
{"name":"Bazaar script id","id":"aufr","rootid":"aufr","userid":"jeiv","description":"#docs #BazaarScriptId","iconbackground":"#A1CAF1","icon":"Farm","iconArtId":null,"splashArtId":null,"time":1365552101,"priority":10000},
{"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":"Board","id":"rnxb","rootid":"rnxb","userid":"jeiv","description":"#docs #Board","iconbackground":"#7D26CD","icon":"FormatText","iconArtId":null,"splashArtId":null,"time":1375488962,"priority":10000},
{"name":"Board Background Layer","id":"cnihb","rootid":"cnihb","userid":"jeiv","description":"#docs #BoardBackgroundLayer","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1392650435,"priority":10000},
{"name":"Board Background Scene","id":"irkl","rootid":"irkl","userid":"jeiv","description":"#docs #BoardBackgroundScene","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1392650403,"priority":10000},
{"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":"Box","id":"pcggb","rootid":"pcggb","userid":"jeiv","description":"#docs #Box","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1375488107,"priority":10000},
{"name":"Box edit","id":"qlpm","rootid":"qlpm","userid":"jeiv","description":"#docs #BoxEdit","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1375489882,"priority":10000},
{"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":"Camera","id":"kdzf","rootid":"kdzf","userid":"jeiv","description":"#docs #Camera","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1395425046,"priority":10000,"platforms":["camera"]},
{"name":"Cloud Data","id":"lrfb","rootid":"lrfb","userid":"jeiv","description":"#docs #CloudData","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1377037638,"priority":10000},
{"name":"Cloud Session","id":"olkga","rootid":"olkga","userid":"jeiv","description":"#docs #CloudSession","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1377037634,"priority":10000},
2015-06-17 01:05:28 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"name":"Customize Jetpack Jumper","id":"knmo","rootid":"vgke","userid":"lxxx","description":"#docs","iconbackground":"#9955BB","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1417826233,"priority":10000},
{"name":"Gamepad","id":"vnapa","rootid":"sjbp","userid":"jeiv","description":"#docs #Gamepad","iconbackground":"#7D26CD","icon":"controller","iconArtId":null,"splashArtId":null,"time":1412688041,"priority":10000,"platforms":["accelerometer"],"parentTopic":"games"},
{"name":"Location","id":"ljhc","rootid":"tfiea","userid":"jeiv","description":"#docs #Location","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1395425058,"priority":10000,"platforms":["location","maps"]},
2015-02-19 03:11:19 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"name":"Number","id":"lrmt","rootid":"emeb","userid":"jeiv","description":"#docs #Number","iconbackground":"#7D26CD","icon":"123","iconArtId":null,"splashArtId":null,"time":1412690120,"priority":10000,"parentTopic":"language"},
{"name":"Ref","id":"avdba","rootid":"ifzr","userid":"jeiv","description":"#docs #Ref","iconbackground":"#7D26CD","icon":"Package","iconArtId":null,"splashArtId":null,"time":1412689392,"priority":10000,"parentTopic":"language"},
{"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":"Sprite Sheet","id":"wmkva","rootid":"skpl","userid":"jeiv","description":"#docs #SpriteSheet","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1412687028,"priority":10000,"parentTopic":"games"},
{"name":"String","id":"tioib","rootid":"tioib","userid":"jeiv","description":"#docs #String","iconbackground":"#7D26CD","icon":"ABC","iconArtId":null,"splashArtId":null,"time":1412690443,"priority":10000,"parentTopic":"language"},
{"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":"Tags nfc receive","id":"tvdca","rootid":"mmlya","userid":"jeiv","description":"#docs #TagsNfcReceive","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1380818016,"priority":10000,"platforms":["proximity"]},
{"name":"Tags nfc send","id":"dfxzb","rootid":"dfxzb","userid":"jeiv","description":"#docs #TagsNfcSend","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1380818121,"priority":10000,"platforms":["proximity"]},
{"name":"Tags nfc write tag","id":"yfik","rootid":"yfik","userid":"jeiv","description":"#docs #TagsNfcWriteTag","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1380818265,"priority":10000,"platforms":["proximity"]},
{"name":"TextBox","id":"xjgpb","rootid":"xjgpb","userid":"jeiv","description":"#docs #TextBox","iconbackground":"#7D26CD","icon":"Document","iconArtId":null,"splashArtId":null,"time":1375489993,"priority":10000},
{"name":"Tiles pin picture","id":"fosr","rootid":"fosr","userid":"jeiv","description":"#docs #TilesPinPicture","iconbackground":"#EEDC82","icon":"WritePage","iconArtId":null,"splashArtId":null,"time":1378502819,"priority":10000,"platforms":["tiles"]},
{"name":"Tiles pin pictures","id":"afnnc","rootid":"afnnc","userid":"jeiv","description":"#docs #TilesPinPictures","iconbackground":"#EEDC82","icon":"WritePage","iconArtId":null,"splashArtId":null,"time":1378499463,"priority":10000,"platforms":["tiles"]},
2015-02-11 04:33:24 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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":"YouthSpark CodeIT!","id":"widw","rootid":"arzja","userid":"jeiv","description":"YouthSpark CodeIT! activities. #docs","iconbackground":"#008080","icon":"ShoppingBag","iconArtId":null,"splashArtId":null,"time":1404230161,"priority":10000},
{"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"]},
2015-03-18 20:50:30 +03:00
{"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"]},
2015-02-04 19:07:58 +03:00
{"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":"account settings","id":"mgyv","rootid":"tisz","userid":"jeiv","description":"Your account settings. #docs","iconbackground":"#E25822","icon":"Setting","iconArtId":null,"splashArtId":null,"time":1420746319,"priority":10000,"parentTopic":"socialcoding"},
{"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":"action types","id":"gbkca","rootid":"gahi","userid":"jeiv","description":"User-defined action types #docs #language","iconbackground":"#800080","icon":"Bolt","iconArtId":null,"splashArtId":null,"time":1412689293,"priority":10000,"parentTopic":"language"},
{"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"},
2015-05-12 05:19:45 +03:00
{"name":"advanced topics","id":"ovsf","rootid":"tgge","userid":"jeiv","description":"Documentation. #docs #content","iconbackground":"#66FF00","icon":"Capitalize","iconArtId":null,"splashArtId":null,"time":1431363443,"priority":18,"parentTopic":"contents"},
2015-02-04 19:07:58 +03:00
{"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":"amazing event","id":"rvkrb","rootid":"rvkrb","userid":"wonm","description":"A nice event. #blog","iconbackground":"#FFA500","icon":"SmilieSad","iconArtId":null,"splashArtId":null,"time":1422663258,"priority":10000},
{"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":"app tutorial template","id":"uutp","rootid":"lazr","userid":"jeiv","description":"A tutorial. #docs #tutorials #stepbystep","iconbackground":"#90EE90","icon":"SMS","iconArtId":null,"splashArtId":null,"time":1395865795,"priority":10000},
{"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 digitalread tutorial","id":"yxql","rootid":"aewdb","userid":"jeiv","description":"A tutorial to read and display a button state. #arduino #arduinoSketch #docs #tutorials #stepByStep","iconbackground":"#00CC99","icon":"ArrowStandardCircle","iconArtId":"kzajxznr","splashArtId":null,"time":1425450369,"priority":10000},
2015-02-04 19:07:58 +03:00
{"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":"arduino tutorials","id":"mekk","rootid":"hvuu","userid":"jeiv","description":"Arduino tutorials. #docs","iconbackground":"#00CC99","icon":"ArrowCircleRounded","iconArtId":"kzajxznr","splashArtId":null,"time":1425450417,"priority":10000,"parentTopic":"tutorials"},
2015-02-04 19:07:58 +03:00
{"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":"azure services","id":"kelo","rootid":"oolz","userid":"jeiv","description":"Available Azure Services #docs.","iconbackground":"#007FFF","icon":"Stacks","iconArtId":null,"splashArtId":null,"time":1410093706,"priority":10000},
{"name":"bear","id":"haaza","rootid":"vxyfa","userid":"jeiv","description":"A library to create educational maze games.#board #games","iconbackground":"#9955BB","icon":"controller","iconArtId":null,"splashArtId":null,"time":1412717735,"priority":10000,"platforms":["musicandsounds"]},
{"name":"bear forest","id":"vsso","rootid":"yhed","userid":"jeiv","description":"","iconbackground":"#00CC99","icon":"Butterfly","iconArtId":null,"splashArtId":null,"time":1412717740,"priority":10000},
{"name":"bear quest tutorial","id":"xgbv","rootid":"jyyja","userid":"jeiv","description":"An interactive tutorial to learn coding. #docs #tutorials #stepByStep #HourOfCode #tutorial","iconbackground":"#85BB65","icon":"Award","iconArtId":null,"splashArtId":null,"time":1416508747,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/kvkgnoql"},
{"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":"blank scratch","id":"enyra","rootid":"gowz","userid":"jeiv","description":"#scratch","iconbackground":"#FFA500","icon":"Flag","iconArtId":null,"splashArtId":null,"time":1394049668,"priority":10000},
{"name":"blank turtle","id":"parp","rootid":"oobxb","userid":"jeiv","description":"#turtle","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1418279474,"priority":10000},
2015-02-05 02:49:22 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"name":"book","id":"zhnbb","rootid":"yhsu","userid":"jeiv","description":"The TouchDevelop book. #docs #book","iconbackground":"#008000","icon":"Book","iconArtId":null,"splashArtId":null,"time":1412666709,"priority":10000,"parentTopic":"teach"},
2015-06-09 00:01:28 +03:00
{"name":"bouncing bubbles walkthrough","id":"ckfl","rootid":"eqhr","userid":"jeiv","description":"A walkthrough for the `physics game` template. #docs #tutorials","iconbackground":"#00008B","icon":"GPS","iconArtId":null,"splashArtId":null,"time":1433285527,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/oeluiclq"},
2015-02-04 19:07:58 +03:00
{"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"},
2015-06-09 00:01:28 +03:00
{"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"},
2015-03-11 08:44:07 +03:00
{"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},
2015-02-04 19:07:58 +03:00
{"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},
2015-04-06 09:14:51 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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 tutorial library","id":"avzea","rootid":"oqajohuh","userid":"jeiv","description":"","iconbackground":"#FF2800","icon":"Inbox","iconArtId":null,"splashArtId":null,"time":1407868381,"priority":10000,"platforms":["musicandsounds"]},
{"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"},
2015-07-22 07:31:41 +03:00
{"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},
2015-02-04 19:07:58 +03:00
{"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"},
2015-05-12 05:19:45 +03:00
{"name":"contents","id":"kxwna","rootid":"otbw","userid":"jeiv","description":"Documentation. #docs #content","iconbackground":"#FF7518","icon":"PlusBoxAlt","iconArtId":null,"splashArtId":null,"time":1431363498,"priority":1},
2015-02-04 19:07:58 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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"},
2015-04-06 09:14:51 +03:00
{"name":"creating interactive tutorials","id":"wrbni","rootid":"xniertjj","userid":"jeiv","description":"How to create 'tap here' tutorials. #docs","iconbackground":"#E3256B","icon":"GlobeSA","iconArtId":null,"splashArtId":null,"time":1428101566,"priority":10000,"platforms":["clouddata"],"parentTopic":"teach"},
2015-04-25 01:32:17 +03:00
{"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"},
2015-05-06 20:13:56 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"name":"data","id":"mhloa","rootid":"jswu","userid":"jeiv","description":"Global variables. #docs #data #language","iconbackground":"#9955BB","icon":"BulletList","iconArtId":null,"splashArtId":null,"time":1412665797,"priority":10000,"parentTopic":"language"},
{"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"},
2015-06-09 00:01:28 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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"},
2015-04-03 07:32:38 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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},
2015-06-09 00:01:28 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"name":"faq","id":"fjsc","rootid":"gswd","userid":"jeiv","description":"Frequently asked questions. #docs #faq","iconbackground":"#B7410E","icon":"ArrowHead","iconArtId":null,"splashArtId":null,"time":1420746259,"priority":10000,"parentTopic":"contents"},
2015-04-25 01:32:17 +03:00
{"name":"first steps with creeper","id":"aemoi","rootid":"fezjznjm","userid":"jeiv","description":"Buid incredible structures in Minecraft with Creeper! #docs #tutorials #stepbystep #tutorial #minecraft #creeper","iconbackground":"#A1CAF1","icon":"Snowflake","iconArtId":"yapqobto","splashArtId":null,"time":1429904981,"priority":10000,"platforms":["editoronly"],"screenshot":"https://az31353.vo.msecnd.net/pub/snkvcvwk"},
2015-02-04 19:07:58 +03:00
{"name":"first steps with drawing","id":"tkhvb","rootid":"alscwpqx","userid":"jeiv","description":"Use simple shapes to build amazing drawings! #docs #drawing #tutorials","iconbackground":"#A52A2A","icon":"Wand","iconArtId":null,"splashArtId":null,"time":1415066532,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/rxvuaajw","parentTopic":"beginnertutorials"},
{"name":"first steps with steve","id":"eivga","rootid":"fezjznjm","userid":"jeiv","description":"Buid incredible structures in Minecraft with Steve! #docs #tutorials #stepbystep #tutorial #Minecraft #steve","iconbackground":"#FFFFFF","icon":"Snowflake","iconArtId":"zpybrwpw","splashArtId":null,"time":1426715174,"priority":10000,"platforms":["editoronly"],"screenshot":"https://az31353.vo.msecnd.net/pub/nqolyatf"},
2015-06-20 04:53:52 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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"]},
2015-05-11 13:38:32 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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"},
2015-05-11 13:38:32 +03:00
{"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"},
2015-05-27 01:20:56 +03:00
{"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},
2015-02-04 19:07:58 +03:00
{"name":"great game","id":"xdrz","rootid":"xdrz","userid":"jeiv","description":"","iconbackground":"#9955BB","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1405034770,"priority":10000,"platforms":["musicandsounds"]},
2015-05-01 19:34:33 +03:00
{"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"},
2015-02-19 03:11:19 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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"},
2015-05-11 13:38:32 +03:00
{"name":"hide and seek scratch tutorial","id":"gjzbe","rootid":"vdqqa","userid":"jeiv","description":"A simple #scratch game.","iconbackground":"#FFA500","icon":"Tanktop","iconArtId":null,"splashArtId":null,"time":1431092441,"priority":10000,"platforms":["musicandsounds"]},
2015-02-04 19:07:58 +03:00
{"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"},
2015-04-22 18:24:50 +03:00
{"name":"hosted apps","id":"wmkqe","rootid":"cbdee","userid":"jeiv","description":"A description of hosted app #docs","iconbackground":"#FFFFFF","icon":"Video","iconArtId":"zubldkpr","splashArtId":null,"time":1429716162,"priority":10000,"parentTopic":"advancedtopics"},
2015-02-04 19:07:58 +03:00
{"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":"image search tutorial","id":"xpvu","rootid":"xpvu","userid":"jeiv","description":"","iconbackground":"#FDEE00","icon":"AddressBook","iconArtId":null,"splashArtId":null,"time":1402040155,"priority":10000,"platforms":["search"]},
{"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"},
2015-06-09 00:01:28 +03:00
{"name":"jumping bird tutorial","id":"uxaxc","rootid":"silub","userid":"jeiv","description":"A tutorial to build a flappy bird clone. #docs #stepByStep #HourOfCode #tutorial","iconbackground":"#9955BB","icon":"Controller","iconArtId":null,"splashArtId":null,"time":1433285016,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/cpfimuwo","parentTopic":"gametutorials"},
2015-02-04 19:07:58 +03:00
{"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":"language","id":"utqwa","rootid":"oyrs","userid":"jeiv","description":"Language syntax. #docs #language","iconbackground":"#008000","icon":"RemoveFolder","iconArtId":null,"splashArtId":null,"time":1412701843,"priority":20,"parentTopic":"contents"},
{"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"]},
2015-06-09 00:01:28 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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":"magic 8 ball tutorial","id":"ywrn","rootid":"czxea","userid":"jeiv","description":"A magic 8 ball game tutorial #docs #tutorials","iconbackground":"#00008B","icon":"Tools","iconArtId":null,"splashArtId":null,"time":1415066917,"priority":10000,"platforms":["musicandsounds"],"parentTopic":"gametutorials"},
{"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":"markdown","id":"ubeic","rootid":"pbph","userid":"jeiv","description":"Syntax to create formatted text. #docs #markdown","iconbackground":"#800080","icon":"Shield","iconArtId":null,"splashArtId":null,"time":1426103896,"priority":10000,"parentTopic":"comment"},
2015-02-04 19:07:58 +03:00
{"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"]},
2015-07-28 07:47:36 +03:00
{"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"]},
2015-04-22 18:24:50 +03:00
{"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},
2015-07-28 07:47:36 +03:00
{"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"]},
2015-07-22 07:31:41 +03:00
{"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"},
2015-07-06 12:24:30 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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":"not implemented","id":"skux","rootid":"skux","userid":"jeiv","description":"#docs","iconbackground":"#FF0038","icon":"Warning","iconArtId":null,"splashArtId":null,"time":1379018365,"priority":10000},
{"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":"operators","id":"lwln","rootid":"fqey","userid":"jeiv","description":"Built-in operators. #docs #operators #language","iconbackground":"#E25822","icon":"Link","iconArtId":null,"splashArtId":null,"time":1412701831,"priority":10000,"parentTopic":"language"},
{"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":"parsing data","id":"uwkg","rootid":"vpbj","userid":"jeiv","description":"Parsing JSON, XML, RSS, CSV data. #docs #parsingData #XML #JSON #CSV #apps #web","iconbackground":"#B7410E","icon":"Download","iconArtId":null,"splashArtId":null,"time":1364934096,"priority":10000},
2015-04-06 09:14:51 +03:00
{"name":"persistent data","id":"ieivc","rootid":"iiqn","userid":"jeiv","description":"Saving global variables. #docs #data #language","iconbackground":"#9955BB","icon":"Save","iconArtId":null,"splashArtId":null,"time":1428079582,"priority":10000,"parentTopic":"language"},
2015-02-04 19:07:58 +03:00
{"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},
2015-03-26 19:01:24 +03:00
{"name":"pixels tutorial","id":"sqgse","rootid":"bnxva","userid":"jeiv","description":"A cool drawing created pixel by pixel. #docs #tutorials #stepbystep","iconbackground":"#E25822","icon":"Appointment","iconArtId":null,"splashArtId":null,"time":1427314269,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/divrwugm"},
2015-02-04 19:07:58 +03:00
{"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"]},
2015-02-19 03:11:19 +03:00
{"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},
2015-02-04 19:07:58 +03:00
{"name":"productivity tutorials","id":"ffww","rootid":"hurbc","userid":"jeiv","description":"Interactive tutorials to build apps with input fields, reports, computations, etc... #docs #tutorials","iconbackground":"#FFA500","icon":"Appointment","iconArtId":null,"splashArtId":null,"time":1395684978,"priority":10000,"parentTopic":"tutorials"},
{"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"},
2015-02-04 19:07:58 +03:00
{"name":"publishing","id":"jknr","rootid":"gdzm","userid":"jeiv","description":"How to publish scripts. #docs #publishing","iconbackground":"#A52A2A","icon":"Star","iconArtId":null,"splashArtId":null,"time":1412686745,"priority":10000,"parentTopic":"socialcoding"},
{"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},
2015-02-04 19:07:58 +03:00
{"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"},
2015-04-22 18:24:50 +03:00
{"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},
2015-02-04 19:07:58 +03:00
{"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"},
2015-05-11 13:38:32 +03:00
{"name":"scratch cat tutorial","id":"emszc","rootid":"gowz","userid":"jeiv","description":"#docs #scratch #stepByStep #tutorials","iconbackground":"#FFA500","icon":"Flag","iconArtId":null,"splashArtId":null,"time":1431092481,"priority":10000,"platforms":["musicandsounds"],"screenshot":"https://az31353.vo.msecnd.net/pub/azkhirjm"},
{"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"]},
2015-02-04 19:07:58 +03:00
{"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"},
2015-05-11 13:38:32 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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":"sketch drawings demo","id":"cyzs","rootid":"cyzs","userid":"jeiv","description":"","iconbackground":"#008000","icon":"Warning","iconArtId":null,"splashArtId":null,"time":1384440074,"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"},
2015-02-04 19:07:58 +03:00
{"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"]},
2015-05-11 13:38:32 +03:00
{"name":"spiral maker scratch tutorial","id":"uwdga","rootid":"pctm","userid":"jeiv","description":"","iconbackground":"#FDEE00","icon":"Lightbulb","iconArtId":null,"splashArtId":null,"time":1431092534,"priority":10000},
2015-02-04 19:07:58 +03:00
{"name":"sprite interaction tutorial","id":"fzqr","rootid":"tnfra","userid":"jeiv","description":"#docs #tutorial","iconbackground":"#FF2800","icon":"Fit","iconArtId":null,"splashArtId":null,"time":1413576254,"priority":10000},
{"name":"square poll tutorial","id":"jmyua","rootid":"wnljijkz","userid":"jeiv","description":"A tutorial to build an online poll. #docs #tutorials #stepByStep","iconbackground":"#FFA500","icon":"FourColumn","iconArtId":null,"splashArtId":null,"time":1403813705,"priority":10000,"platforms":["clouddata"],"screenshot":"https://az31353.vo.msecnd.net/pub/yzfcwcqe"},
2015-02-04 19:07:58 +03:00
{"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"},
2015-07-28 07:31:25 +03:00
{"name":"supper digger","id":"uwzb","rootid":"cwbue","userid":"jeiv","description":"A empty Minecraft Pi script #minecraft","iconbackground":"#FFFFFF","icon":"Anchor","iconArtId":"eopyzwpm","splashArtId":null,"time":1438055386,"priority":10000,"platforms":["editoronly"]},
2015-02-04 19:07:58 +03:00
{"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"]},
2015-03-18 20:50:30 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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},
2015-03-18 20:50:30 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"name":"turtle keyboard","id":"dkqba","rootid":"dkqba","userid":"jeiv","description":"#turtle","iconbackground":"#007FFF","icon":"Snowflake","iconArtId":null,"splashArtId":null,"time":1418280649,"priority":10000},
2015-03-18 20:50:30 +03:00
{"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},
2015-02-04 19:07:58 +03:00
{"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},
2015-03-18 20:50:30 +03:00
{"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 shapes 2 tutorial","id":"mllcc","rootid":"vgekb","userid":"jeiv","description":"An interactive tutorial to learn geometric shapes. #docs #tutorials #stepByStep #tutorial","iconbackground":"#00CC99","icon":"Erase","iconArtId":null,"splashArtId":null,"time":1426700588,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/gvzmkxvo"},
2015-04-08 07:44:41 +03:00
{"name":"turtle shapes tutorial","id":"qfhng","rootid":"vgekb","userid":"jeiv","description":"An interactive tutorial to learn geometric shapes. #docs #tutorials #stepByStep #tutorial","iconbackground":"#FF7518","icon":"Erase","iconArtId":null,"splashArtId":null,"time":1428434148,"priority":10000,"screenshot":"https://az31353.vo.msecnd.net/pub/gvzmkxvo"},
{"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"},
2015-04-08 07:44:41 +03:00
{"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"},
2015-02-04 19:07:58 +03:00
{"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"},
2015-03-18 20:50:30 +03:00
{"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},
2015-02-04 19:07:58 +03:00
{"name":"tutorial playground","id":"objv","rootid":"objv","userid":"jeiv","description":"","iconbackground":"#FDEE00","icon":"Pen","iconArtId":null,"splashArtId":null,"time":1383503483,"priority":10000},
{"name":"tutorial template","id":"ryzld","rootid":"lazr","userid":"jeiv","description":"A tutorial. #docs #tutorials #stepbystep","iconbackground":"#9955BB","icon":"SignalAlt","iconArtId":null,"splashArtId":null,"time":1395865565,"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":"videos","id":"jzpoa","rootid":"qmvx","userid":"jeiv","description":"Tutorials videos #docs #videos","iconbackground":"#00008B","icon":"Suitcase","iconArtId":null,"splashArtId":null,"time":1377556183,"priority":10000},
{"name":"voice commands","id":"jpue","rootid":"jpue","userid":"jeiv","description":"List of voice commands #docs #wp8","iconbackground":"#FF7518","icon":"AlignCenter","iconArtId":null,"splashArtId":null,"time":1370322986,"priority":10000},
{"name":"web requests","id":"qaeq","rootid":"ezdyb","userid":"jeiv","description":"Send HTTP requests and read HTTP responses. #docs #webRequests #web #apps","iconbackground":"#E3256B","icon":"Wifi","iconArtId":null,"splashArtId":null,"time":1384241473,"priority":10000},
2015-04-25 01:32:17 +03:00
{"name":"what's new?","id":"oixlc","rootid":"jiuk","userid":"jeiv","description":"release notes #docs","iconbackground":"#A52A2A","icon":"Share","iconArtId":null,"splashArtId":null,"time":1429853648,"priority":1,"platforms":["accelerometer","location","maps","cloudservices"],"parentTopic":"contents"},
2015-02-04 19:07:58 +03:00
{"name":"what's new? 2013","id":"tmtj","rootid":"jiuk","userid":"jeiv","description":"release notes #docs","iconbackground":"#FF2800","icon":"ApproveButton","iconArtId":null,"splashArtId":null,"time":1422891003,"priority":10000,"parentTopic":"whatsnew"},
{"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"},
2015-06-09 00:01:28 +03:00
{"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"}
2015-02-04 19:07:58 +03:00
], [
{"title":"blank","id":"blank","icon":"ABC","description":"An empty script, which doesn't do anything.","section":"templates","name":"ADJ script","scriptid":"spbd","editorMode":1},
2015-06-09 00:01:28 +03:00
{"title":"blank game","id":"game","icon":"Controller","name":"ADJ game","description":"Boiler plate code to create a game.","section":"templates","scriptid":"yfvga","editorMode":1},
2015-06-17 01:05:28 +03:00
{"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 turtle","id":"blankturtle","icon":"Controller","name":"ADJ turtle","description":"An turtle app.","section":"beginners","scriptid":"parp","editorMode":1},
{"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},
2015-07-28 07:31:25 +03:00
{"title":"blank minecraft pi","id":"blankminecraftpi","icon":"NineColumn","name":"ADJ craft","description":"A Minecraft Pi app.","section":"Minecraft","scriptid":"qxisc","editorMode":1},
{"title":"blank creeper","id":"blankcreeper","icon":"NineColumn","name":"ADJ creeper","description":"A Minecraft creeper app.","section":"Minecraft","scriptid":"skhba","editorMode":1},
{"title":"blank cordova library","id":"blankcordovalibrary","icon":"ApproveButton","name":"cordova ADJ plugin","description":"An wrapper around an Apache Cordova plugin.","section":"apps","scriptid":"gtfla","editorMode":3},
2015-06-09 21:52:56 +03:00
{"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},
2015-03-26 19:01:24 +03:00
{"title":"blank node library","id":"blanknodelibrary","icon":"ArrowStandardCircle","name":"node ADJ package","description":"An wrapper for a node package.","section":"web apps","scriptid":"ibksb","editorMode":3},
{"title":"blank arduino","id":"blankarduino","icon":"ArrowCircleRounded","name":"ADJ sketch","description":"An empty Arduino sketch.","section":"makers","scriptid":"szzdc","editorMode":2},
{"title":"blank esplora","id":"blankesplora","icon":"Controller","name":"ADJ esplora","description":"An empty Arduino Esplora script.","section":"makers","scriptid":"lsrh","editorMode":2},
2015-05-27 01:20:56 +03:00
{"title":"blank engduino","id":"blankengduino","icon":"Controller","name":"ADJ engduino","description":"An empty Engduino script.","section":"makers","scriptid":"czopc","editorMode":2},
2015-06-20 06:21:49 +03:00
{"title":"blank Micro Bit","id":"blankmicrobit","icon":"Controller","name":"ADJ scritpt","description":"An empty Micro Bit script.","section":"makers","scriptid":"epvz","editorMode":2},
{"title":"blank docs","id":"blankdocs","icon":"Controller","name":"ADJ docs","description":"An empty documentation page.","section":"touchdevelop","scriptid":"krvn","editorMode":3},
{"title":"blank tutorial","id":"blanktutorial","icon":"Controller","name":"ADJ tutorial","description":"An empty interactive tutorial.","section":"touchdevelop","scriptid":"wonx","editorMode":3},
{"title":"blank script plugin","id":"blankscriptplugin","icon":"Brush","name":"ADJ plugin","description":"An empty script editor plugin.","section":"touchdevelop","scriptid":"tiwt","editorMode":3},
{"title":"blank office mix","id":"blankofficemix","icon":"Controller","name":"ADJ mix app","description":"An empty Office Mix app.","section":"others","scriptid":"exvp","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}
2015-02-04 19:07:58 +03:00
]