Thursday, July 31, 2014

#GTASYD Application!

tl;dr: Here is my #GTASYD Application Video!!!

Full version: So I finally submitted an application to #GTASYD. Last time around on the #GTASYD I got hung up on perfecting my video using scripting and wasn't happy with the result and never submitted it. Then I submitted for GTAMTV and GTAATL this year and was not accepted for what I believe was a bad video.
This time I was determined to plan ahead and spend enough time to produce a video I was happy with. I wanted to create a video using only Google Apps Script and I was satisfied with the animation result. It took me over 500 lines of "hacky" code (it definitely is not pretty in some sections) and my wife can attest it probably took that many hours as well. The animation wasn't as smooth as it was during my other dry runs, but it was sufficient. I would have liked to perfect it, but needed to submit :)

So, the nitty gritty parts that were difficult:

  • Digitizing the Google Logo: I uploaded the logo to the Wolfram Programming Cloud and wrote some code to pixelate it to the correct size and reduce the number of colors. My code then determined the color of each pixel and saved it to an array. 
  • This array was coded into the Google Apps Script and I used some loops and the .setBackgroud method to prepare the colors. 
  • The animation proved to be a little tricky. I ended up creating a new line before line 1 and then coloring line 1 with the appropriate colors to create the scrolling effect. 
  • The rocket moving through the scrolling was also another challenge. I needed to delete it and redraw it in the same position, which in effect moved it through the background that was scrolling down. 
  • I ran out of coding time (as I said it was well over 100 hours) for the ending and had to Insert an Image for the Moon and statements. I would have liked them to be backgrounds in the cell and have them "sparkle", but at least there is room for improvement
I am thinking about creating an Add-on for Sheets that will digitize the images since I have most of the work done programmatically using the WolframCloud, but that is low on my priority list. I have a lot of changes/improvements for g(Math) and a Cryptography Add-on for Docs that I am working on with higher priority.

Monday, July 7, 2014

g(Math) and g(Math) for Sheets updates!

tl;dr: g(Math) is updated to zoom in on different regions of the graph and you can also plot points as well as any number of functions!

full version: The top request for g(Math) and the one I have been working on the past few weeks unsuccessfully was to alter the graphing part of g(Math) to allow the user to specify a range other than the standard window of -10 to 10. I have updated g(Math) with this new graphing capability and it should be live in the next few minutes. If you already have installed g(Math) and g(Math) for Sheets you don't need to do anything. If you haven't installed it yet, what are you waiting for? :)

The Wolfram Cloud for Wolfram Language was launched last week and I was ecstatic to see some of the possibilities of creating your own Instant APIs! The first Instant API I was able to deploy allows this option and more!

In addition to allowing you to specify your viewing window, you can also plot a list of points on the same graph as well! Just fill in the box with a list of points of the form {x,y} separating each point with a comma.
For example: {3,2},{-4,1},{2,Pi}

Yes, you can use Pi to specify the axes and plot points using it! I will be publishing an in-depth guide to the new extensive feature that are enabled by using my API and I am working on entering the functions through a more intuitive interface as well, but wanted to get this update out there as it is my most requested feature by far.

I have tons of great stuff for g(Math) in the pipeline thanks to the API capabilities of Wolfram. Some of the ideas I have cooking:

  • Solving equations for a specified variable (YAY!!)
  • Individualized Quizzes with g(Math) for Sheets (I know this has been in the pipeline for a while...)
    • Better automatic grading of these individualized quizzes (This is what I am most pumped about!!) 
  • Normal Distribution Displays
  • Creating 5-number summaries and other Statistical Displays
  • Other requests??
If you want to see a new feature or have an update request, please let me know via or on Twitter: @jmacattak.