Profile cover photo
Profile photo
John McGowan
954 followers -
Math Teacher who loves travel and technology
Math Teacher who loves travel and technology

954 followers
About
Posts

Post has attachment
My journey from g(Math) to EquatIO (and yours)
g(Math) was my baby...Well, I actually had a baby about the same time as g(Math), but it still holds a very special place in my heart. My goal at the time, and still today, was to make digital math creation delightful, intuitive, and fun. g(Math) was the fi...
Add a comment...

Post has shared content
Thanks for sharing about EquatIO +Kimberly Mattina!
**
What is it? EquatIO is a Chrome extension that will allow you to create mathematical expressions or equations using dictation or typing from your keyboard or touchscreen. You need to download it from the Chrome Web store. Implementation This extension will ...
The Tech Lady
The Tech Lady
thetechlady-km.blogspot.com
Add a comment...

Post has attachment
Math made digital: EquatIO is here!
Math made digital: EquatIO is here! At Texthelp we’re about much more than literacy. I would like to introduce EquatIO, our easy-to-use Chrome extension that takes the hassle out of creating equations, formulas and math quizzes on your computer or tablet. T...
Math made digital: EquatIO is here!
Math made digital: EquatIO is here!
mathtechtips.blogspot.com
Add a comment...

Post has shared content
Check this awesomeness out from +Adam Morris​!!
I am really excited about this.. About a year ago I built a Daily Notices feature for my school that uses a largish codebase. I have been looking to Open Source (not as an Add On, but something other people can install and work with) for greater use, but I was also wondering how it could be maintained properly. I really wished to have the following:

• Publish/maintain on github
• Be able to code and reproduce features locally (probably with NodeJs)
• Mock Google API calls
• Write test units that guarantees code coverage and lack of bugs

The last two were the real kicker. What "mocking" means is that instead of Google functions like, SpreadsheetApp.getSheet("sheet") actually using Google resources, instead it produces a JavaScript object that mocks the same behavior that it would have under normal circumstances. This is really key, for me, to release code out into the wild, with the intent of utilizing the Open Source ecosystem.

But the Google Apps Scripting environment isn' really suited to these last two. Besides being inconvenient, it locks in the developer in a way that wasn't used to, given that I come from the Python world.

To see how far I could go with this, I identified a core function in GSheetsUtils, getRowsData(). The way that function works is you pass it a sheets parameter, and then calls Google APIs in order to get the actual data from from the actual spreadsheet and returns an array of objects keyed by the column names in the spreadsheet. Very useful.

This ability to call a function to do such a useful thing for us is something that I wrote myself for the afore-mentioned project. But in the Open Source world we should have a really solid function that does it and is maintained by the community. Mine had its own issues (which I discovered and resolved over time), and I found a very minor one with getRowsData() as well.

getRowsData() optionally allows you to specify options, such as at which row in the sheet does the header row begin (it assumes the first column if not defined). However, in the initial check right off the bat, it would check to make sure that the passed sheet had at least two rows, hard-coded as 2. The check is to ensure that there is actually potential data, and that the sheet has at least one row of data after wherever the header row is. The problem, though, is that being hard-coded at 2 introduces a bug when you consider that you can pass it the option above. The fix is easy:

var params = optParams || {};
var headersIndex = params.columnHeadersRowIndex || 1;
if (sheet.getLastRow() < headersIndex + 1) {
return []; // reduced
}

This is an improvement from:

if (sheet.getLastRow() < 2) {
return [];
}

But I'd like to be able to make those changes by using my text editor, modifying the code, write tests to confirm it works as expected, commit and push the changes. Then if I used it as a library anyone using the code would see the improvement. In other words, a modern toolchain for Google Apps Scripting.

I was actually able to emulate how this would work! Check it out... I'm going to use this on my own project!

Add a comment...

Post has attachment
Silent blog and upcoming g(Math) Tips series
I have been really busy with my transition from the classroom to the software developer world (and I am sure all of you teachers out there are super busy as well) and realized I have been neglecting my blog. Additionally I have been moving away from Google+...
Add a comment...

Post has shared content
I haven't received any notifications about g(Math) yet but I am keeping an eye out. +John McGowan
Add a comment...

Post has attachment
10 Q&As with John McGowan - the STEM Texthelper!
By now, you’ve probably heard some mumblings about Texthelp and our newest product g(Math), a tool that is making math digital. You may be saying to yourself, “But I thought Texthelp was all about tech for reading and writing?” And we were. Until John McGow...
Add a comment...

Post has shared content

Post has attachment
g(Math) just got smarter - and lots more fun!
g(Math) is a Google Add-on that I started developing back in 2013 that makes it quick and easy to create equations, graphs, stats displays and math quizzes to insert in Google Docs , Sheets , and Forms . Earlier this year, g(Math) became the newest addition...
Add a comment...

Post has attachment
Hi everyone! Now that g(Math) is a Texthelp product there are more resources available than just me (like a whole support team!!). So, we are transitioning over to the Texthelp for Education Community https://plus.google.com/communities/104101186949274062374 where there is a dedicated g(Math) area. Please post from now on over there for a quicker and more detailed response! Hope to see you there :)
Wait while more posts are being loaded