Wednesday, March 11, 2015
Apps Script in the classroom
Over the past few years weve seen lots of Apps Script adoption within the EDU community. Educators need lightweight systems that integrate with the Google Apps they already use. Empowered by a cloud-hosted and simple to use platform, non-programmers have been able to create powerful scripts that have a real impact on the lives of their students. In honor of World Teachers Day were highlighting some popular scripts educators have created and other materials teachers can use to get started.
Earlier this year we sat down with Andrew Stillman, Program Officer for Digital Instruction at New Visions for Public Schools and co-founder of youpd.org. We discussed about how he uses Apps Script to build solutions for the New York City school system. Hes the author of many popular scripts in the Script Gallery, including formMule, doctopus, and autocrat, which he uses to create powerful systems that tie together Google Forms, Spreadsheets, Docs and GMail in a way that teachers and administrators can maintain and enhance.
Flubaroo is another popular script among teachers, as it extends the usability of Google Forms for online assignments. After students have submitted their responses this script scores their answers against an answer key, generates histograms of the classs performance, and sends out personalized emails to each student with their grades.
Even more exciting, however, is that teachers have been writing their own scripts to solve problems and make their lives easier. For example, Adelphi University professor Lee Stemkoski wrote a small script that he uses to populate a Google Calendar with the topics for each lecture hell give during the semester. In just 30 lines of code he was able to complete a long, monotonous task with the click of a button.
Teachers looking to get a better idea of how Apps Script works and what it can be used for should watch our video Google Apps EDU Fireside Chat: An Introduction to Apps Script. In it we cover the basic functionality and use cases supported, and even do some live coding to show how easy it is to get started. More than 20 million students, faculty and staff worldwide use Google Apps for Education, so if you build something interesting and worth sharing, consider publishing to the Chrome Web Store.
![]() | Eric Koleda profile Eric is a Developer Programs Engineer based in NYC on the Google Apps Script team. Hes previously worked with the AdWords API and enterprise content management software. |
Thursday, February 12, 2015
How to Find the Websites or Blogs that are Copying your Content

CopyScape is a very good plagiarism checker
CopySentry can stand guard over your content
CopyScape free URL searches
You will have trouble finding spun content
Thursday, February 5, 2015
The Spirit of The Holly Quran by Sultan Bashir Mahmood

Wednesday, February 4, 2015
The hardest workouts of all time
20 rep squats
- Load a barbell with a load you normally squat for ~10 reps
- Unrack the barbell
- Dont rack it again until youve done 20 reps
I have to admit that, week after week, 20 rep squats were the one workout I dreaded. I typically did them on Wednesdays and would spend all day at work thinking about them and trying to come up with excuses for skipping the gym. Once the weight got heavy, Id be sore for days after the 20 rep workout. Having said that, they were also extremely effective. I saw huge gains in 2009 both in terms of mental toughness and overall strength: squat +90lbs, deadlift +50lbs, overhead press +30lbs, power clean +50lbs, snatch +60lbs, etc.
Eva
Five rounds for time of:
- Run 800 meters
- 2 pood Kettlebell swing, 30 reps
- 30 Pull-ups
Rowing and burpees
For time:
- Row 1000 meters
- 25 Burpees
- Row 750 meters
- 50 Burpees
- Row 500 meters
- 75 Burpees
Inverted burpees
Five rounds for time of:
- 25 Inverted Burpees
- 25 Pull-ups
- 25 Burpees
You know whats worse than burpees? Inverted burpees. Seriously, these things are downright mean. And 125 of them - in addition to 125 pull-ups and 125 normal burpees - is just plain evil.
400m repeats
This may seem like a strange one, but Im not sure any other workout allows me to approach 100% exertion quite like all-out 400m repeats. Im actually a pretty terrible runner and suffer at any distance, but 400m has a special place in my heart. It starts out easy, but before you know it, every muscle in your body is burning and your veins are pumping battery acid.
Pick your poison
What workouts do YOU fear? Post them in the comments.
PART 3 The 3 types of symbols Introduction to Flash Symbols
Graphic
Use graphic symbols for static artwork and animation that you do not plan on adding any interactive functionality to. The reason for this is that youll need ActionScript to add interactivity, and graphic symbols are not designed to work with ActionScript.
Button
Use button symbols if you want to add mouse-related interactivity such as clicks and roll overs to your Flash movie. For example, you could create a button that plays a song whenever it is clicked.
Movie Clip
The movie clip symbol is like a combination of graphics, buttons and more. It can be used for static artwork and animation, but it can also be used with ActionScript so that interactive functionality can be added to it. But unlike buttons, movie clips are capable of much more than mouse-related interactivity.
Theres a lot more to learn about each type of symbol, but I will be covering them in later tutorials. For now, lets move on to the next part of this series where we will learn how to create a symbol from scratch.
<< PREV: Going inside a symbols timeline - Introduction to Flash Symbols PART 2
Thursday, January 29, 2015
Sherlock The Reichenbach Fall What Really Happened

Spoiler alert!
In fact, if youre not watching it, you should probably miss out on this blog post too. Seriously, stop reading.
What follows is an in-depth, full-of-spoilers discussion of what happens in the final episode of the show thus far, The Reichenbach Fall.
The final question
Im sure you know exactly what Im going to discuss: how did Sherlock fake his own death?
Using my amateur deductive reasoning and a healthy amount of rewind & pause, I have a pretty good guess at what happened. Let me walk you through the reasoning.
To start with, lets state the very obvious: either the body that fell off the roof was (a) Sherlock, or (b) it wasnt. I think we can fairly confidently eliminate option (b).
An impostor?
Could Sherlock have thrown Moriartys body or the test dummy from earlier in the episode in his place? Not likely.
First, there was no way Sherlock could have bent over, hauled up a body or a dummy, brought it to the edge, and shoved it over, all without Watson noticing. There were some quick cuts and edits during the scenen, but we have no reason to believe that Watson looked away from Sherlock at any point during their conversation.

Other practicalities make this even more difficult: Moriarty was dressed noticeably differently than Sherlock (different coat, white shirt instead of dark, a tie instead of a scarf) and had shorter hair; seconds before Sherlock jumps, he looks back and Moriartys body is lying there, still in the original outfit; the scene where Sherlock jumps is shot from behind and its clear no one is just shoving a body/dummy off the roof.

Verdict: it must have been Sherlock himself who jumped off the building.
How did he survive?
One key piece of evidence is that Sherlock is extremely specific in where he wants Watson to stand during their conversation. Here is the layout of the scene:

When Watson arrives, Sherlock is on the hospital roof, some 6-8 stories up, with a shorter, 2-3 story brick building between him and Watson. Watson tries to run around to the side of the brick building, but Sherlock yells at him to return to his previous spot. Sherlock is very vehement about this.
Its likely that Watson would be able to see Sherlock from either vantage point, which leaves only one other possibility for why Sherlock would care about where Watson stands:
(1) There was something between the brick building and the hospital that Sherlock didnt want Watson to see.After Sherlock jumps, Watson again tries to run around the brick building and this time, is knocked down by someone on a bike. This is unlikely to be an accident and gives us our second hint:
(2) Sherlock needed to delay Watson until the something was no longer visible.If you watch the scene closely, there is one item that fits both of these criteria: a truck filled with bags (garbage? recycling? laundry?) parked right next to the spot where Sherlocks body ends up. You get your first glimpse of this truck just as Watson is coming around the corner, just before he is knocked down:

You see the same truck drive away, out of the scene, a few seconds later as Watson finally gets to Holmes body:

Think on that for a second: if a body comes crashing down a few feet from your truck, do you just casually drive away or jump out and see what the hell just happened? The fact that the truck drove away increases our confidence that it was part of the plot.
Verdict: the bags in the back of the truck served as padding to break Sherlocks fall.
How did it go down?
Before meeting with Moriarty, Holmes seeks out Molly and tells her that he thinks he will die and that he needs her help. Holmes mustve already realized that Moriartys goal was to get him to commit suicide, so he enlisted Molly - who works at a morgue and could certainly fake autopsy reports and death certificates - to help him fake it. Its also worth remembering that it was Sherlock, not Moriarty, who arranged the meeting on, of all places, the rooftop of a hospital.
When Moriarty blew his brains out, Sherlock had no choice, and jumped. He landed in the truck, covered himself with some sort of blood (possibly provided by Molly), and dropped down onto the pavement to play dead. In fact, he did better than that. We saw Holmes with a bouncy ball much of the episode; it turns out there is a classic magic trick that involves squeezing a ball under your armpit to cut off circulation to your arm and make it seem like you have no heartbeat.
What about the bystanders?
Since all the bystanders could see the truck and Holmes fall into it, they must have been in on it. The crowd that gathers around Holmes body and the biker that knocks over Watson were either part of Holmes homeless network or government folks brought in by Mycroft.
Mycroft is an interesting possibility because his reaction to reading about Holmes death is ambiguous: was he sad or relieved? Even more telling is the fact that Mycroft isnt with Watson and Mrs. Hudson at the cemetery to pay his respects to Holmes. My guess is that Mycroft knows Sherlock is alive, though its possible that he merely deduced it after the fact.
No matter how improbable..
Itll be some time before the third season comes out and reveals the truth. In the meantime, feel free to join me in speculating by leaving your best theory in the comments.
Wednesday, January 28, 2015
The Flash AS3 Tween Class
Step 1
Lets first create a movie clip that we will use with our ActionScript 3 tween.
Draw a small circle and convert it into a movie clip symbol. Dont forget to give this circle an instance name. Lets name it circle_mc.
Step 2
Create a new layer for the ActionScript. Select the first frame of this layer, and then open up the Actions panel.
Step 3
We first need to import the Flash AS3 Tween class so that we will be able to use it. On the first line, type:
import fl.transitions.Tween;Aside from the tween class, we also need to import the easing classes. So in the next line, type:
import fl.transitions.easing.*;The easing classes allow us to specify different kinds of tween effects. There are 6 easing classes in the AS3 easing package. These are:
- Back
- Bounce
- Elastic
- None
- Regular
- Strong
Each easing type will apply a different effect to your tween animation.
And now that weve imported the necessary classes, lets create a tween using code.
Step 4
To create an AS3 tween object, type new Tween() and assign in to a variable. Lets name this tween tweenX. After the import statements, type:
var tweenX:Tween = new Tween();This creates a new tween object named tweenX. Lets use this tween object to make our circle on the stage move from the left to the right. To do that, well need to pass a few arguments to the Tween() constructor.
The Tween() constructor needs 7 arguments. First, we need to specify the object that we want to tween. In this case, that would be circle_mc. So type in circle_mc inside the parentheses of the Tween() constructor.
var tweenX:Tween = new Tween(circle_mc);After that, we need to specify the name of the property of the object that we would like to tween. If you wanted to create a fading animation, then you can specify the alpha property. If you wanted to create a scaling animation then you can specify the width, height, scaleX or scaleY properties. But since we want to make the circle move horizontally, then we can use the x property. So lets pass that to the Tween() constructor as well:
var tweenX:Tween = new Tween(circle_mc, "x");The property name is a string so it should be in quotation marks.
The third argument we need to pass is the easing type that we want to use. The easing type will apply an effect to the movement in the tween. Lets try using Bounce.easeOut for this tween. This will create a bouncing effect when the circle reaches the end of the animation.
var tweenX:Tween = new Tween(circle_mc, "x", Bounce.easeOut);The fourth argument we need to pass is for the starting value of the objects property that we are tweening. So since we are using the x property, this next argument that we pass will be for the starting x position of the circle. Lets specify a value of 100.
var tweenX:Tween = new Tween(circle_mc, "x", Bounce.easeOut, 100);So when the tween starts, circle_mc will have a starting x position of 100.
The fifth argument we need to pass is for the ending value of the objects property. Lets specify a value of 400.
var tweenX:Tween = new Tween(circle_mc, "x", Bounce.easeOut, 100, 400);So this means that at the end of the tween, our circle will be positioned at x = 400.
The sixth argument we need to pass is for the duration of the tween. You can specify the duration in frames or in seconds. Lets specify a duration of 3 seconds.
var tweenX:Tween = new Tween(circle_mc, "x", Bounce.easeOut, 100, 400, 3);The seventh and last argument we need to specify is a boolean - true or false. If we specify true, then this means that the duration will be in seconds. If we specify false, then the duration will be in frames. Since we want our tween to play over a period of 3 seconds, then we should specify a value of true.
var tweenX:Tween = new Tween(circle_mc, "x", Bounce.easeOut, 100, 400, 3, true);And now our tween is complete. Test the movie to preview the animation.
Step 5
Here is a list of all the other easing functions that you can use. Try them out to see how they look like. Simply replace the third argument in the Tween() constructor with a new easing function of your choice.
| Back | Bounce | Elastic |
| Back.easeIn Back.easeOut Back.easeInOut | Bounce.easeIn Bounce.easeOut Bounce.easeInOut | Elastic.easeIn Elastic.easeOut Elastic.easeInOut |
| None | Regular | Strong |
| None.easeNone | Regular.easeIn Regular.easeOut Regular.easeInOut | Strong.easeIn Strong.easeOut Strong.easeInOut |
Step 6
If you want to tween other movie clips, then youll have to create new tween objects for each movie clip that you want to tween. Even if you want to tween different properties of the same movie clip instance, youll still need new tween objects for each. So if we also wanted to tween the scaleX and scaleY properties of circle_mc, then well need to create two more tween objects for each property.
import fl.transitions.Tween;
import fl.transitions.easing.*;
var tweenX:Tween = new Tween(circle_mc, "x", Bounce.easeOut, 100, 400, 3, true);
var tweenScaleX:Tween = new Tween(circle_mc, "scaleX", Bounce.easeOut, 1, 2, 3, true);
var tweenScaleY:Tween = new Tween(circle_mc, "scaleY", Bounce.easeOut, 1, 2, 3, true);Here, aside from moving horizontally, the circle will also grow. Were starting out with a scaleX and scaleY of 1, and moving up to a value of 2 within 3 seconds. This means that the circle will grow from 100% to 200% both horizontally and vertically within that period.
We dont need to use the same easing functions, starting values, ending values, and durations for all our tweens. Try playing around with different values, and see what you can come up with.
And that concludes this Flash AS3 Tween Class tutorial.
Sunday, January 25, 2015
Completing The Project Adding Text Scrolling
You can add vertical text scrolling to a TextField by using the scrollV property of the TextField class. To understand the scrollV property, you must first know that each line in a multiline TextField is assigned a number starting at 1. The scrollV property refers to the line number that is at the top most part of the TextField. Initially, scrollV has a value of 1. This means that the first line is at the top most part of the TextField. If we change the scrollV property to 2, then the second line (which is the line below line 1) will move up to the top most part of the TextField, and line 1 will no longer be visible as it moves outside of the TextFields area in order to give way to line 2. And if we change the scrollV property to 3, then line 3 (which is the line below line 2) moves to the top most part of the TextField, pushing line 2 out of sight as well. To make line 2 move back to the top most part of the TextField, then well just have to change the scrollV property of the TextField back to 2. Notice that as the scrollV value increases, the lower lines move up. When the lower lines move up, were actually scrolling down since more and more of the lower lines will become visible as scrollV increases. And as we decrease the value of the scrollV property, then the higher lines move back down and become visible again. So as we decrease the scrollV property, we are actually scrolling up.
So how do we increase or decrease the scrollV property?
We can use the increment and decrement operators.
Ex.
myTextField.scrollV++;
or
myTextField.scrollV--;
So to complete our project, well add click event handlers to the buttons that we have on stage (up_btn and down_btn). up_btn is the button with the arrow pointing up and will be used for scrolling the text up. So for up_btn, we will be decrementing the scrollV property (scrollV--). down_btn will do the opposite (scrolling down) so we will be incrementing the scrollV property for this one instead (scrollV++). So lets go ahead and add the following lines to our existing code (we can just add these at the end):
// Every time the up_btn button is clicked, the scrollV property
// gets decremented by 1
up_btn.addEventListener(MouseEvent.CLICK, scrollUp);
function scrollUp(e:MouseEvent):void
{
myTextField.scrollV--;
}
// Every time the down_btn button is clicked, the scrollV property
// gets incremented by 1
down_btn.addEventListener(MouseEvent.CLICK, scrollDown);
function scrollDown(e:MouseEvent):void
{
myTextField.scrollV++;
}Test the movie, and click on the scroll buttons. You should see that you now have been able to add text scrolling functionality for your TextField.PREV: Formatting Externally Loaded Text In ActionScript 3.0
