Wednesday, August 31, 2016

Clock Telling Time JavaScript HTML5 Applet Simulation Model by Fu-Kwun Hwang and Loo Kang Wee

Clock Telling Time JavaScript HTML5 Applet Simulation Model by Fu-Kwun Hwang and Loo Kang Wee

http://iwant2study.org/ospsg/index.php/425-clock24wee01

http://iwant2study.org/ospsg/index.php/425-clock24wee01


Thursday, August 25, 2016

Google App Store is really good

#Google #App #Store is really #good.

it is able to pick out similar apps automatically and it is quite accurate!
https://play.google.com/store/apps/details?id=com.ionicframework.vernierapp777926

https://play.google.com/store/apps/details?id=com.ionicframework.micrometerapp268865

https://play.google.com/store/apps/details?id=com.ionicframework.acgeneratorapp214368

Ping Pong Ball Rebounce Model

Ping Pong Ball Rebounce Model
video Ning HT
model Wee LK.
http://iwant2study.org/ospsg/index.php/interactive-resources/physics/02-newtonian-mechanics/02-dynamics/424-pingpingballning


Ping Pong Ball Rebounce Model
Model building Process

  1. Select Dynamic Model Cartesian, propose inital model say Fy = -mg
  2. add parameter g = 9.81 since assume m =1 by default
  3. determine vy when t=0, which is found via analysis to be vy = -0.6
  4. Fy = -mg-kvy where kvy is drag force
  5. fine tune value of k until match data k is found to be k = 1.11
  6. this completes the fall under drag model  
  7. to add the rebounce force
  8. propose computational thinking, if (t< thitground , true, false )
  9. nestted if statements to achieve answer
  10. can you get the same model?, need to assume contact time of 0.02
  11. the model suggests contact force is 500 N for a mass of ping pong m=1kg 
  12. if ping pong mass is measured, just key in to find the contact force.
  13. enjoy! 

Tuesday, August 23, 2016

Super Stunter Boomerang Plane by Bertram Lim

managed to mentored Bertram Lim to investigate a physics of toy plane in a loop flight!
enjoy the fruits of his Tracker discovery.
Super Stunter Boomerang Plane by Bertram Lim

Friday, August 19, 2016

Creating Single Apps using Easy JavaScript Simulation Modeling Tool

Creating Single Apps written by paco and lookang

Steps to create an App from an EjsS prepackaged model

This short guide explains how to create an Android App from your prepackaged model (i.e. from the ZIP file you obtained with the Prepackage for App option of EjsS menu.)



You need to install a software platform called IONIC in your computer that allows you to do so. IONIC provides tools to create JavaScript+HTML programs that run on mobile devices as if they were native apps. EjsS just helps you prepare the contents of such a program to boost your IONIC process.



  1. Basic Program needed: Android Studio, just follow the link and agree to install it. This is simple but requires a lot of time to download and install all the necessary files SDK versions, extra features etc. If ever the error is encountered, the trick is to download all the SDKs and update the packages for the process to be completed.
  2. If you intend to produce iOS apps you need a Mac and X-code. no Mac, no screenshot.
  3. Install Node.js version 6 or later in your computer system because of it's package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
  4. Open up the Node.js command line and use the follow command without the $ sign, where $ character indicates the operating system prompt. If you are using a Mac, please add sudo (If you are on a Mac computer, you may want to follow these instructions.) in front of the npm..... the instructions here are for Windows OS.
    • $ npm install -g cordova
  5. you should see an output from installing cordova using the npm command implying it is successfully installed
  6. next Install IONIC in your computer (if you haven’t done so before) using the following command, use the ionic 2 beta if you want the latest version. 
    • $ npm install -g ionic
    • $ npm install -g ionic@beta

  7. when installation may be slow and when is completed, the screen should look like this. The tasks in this step need to be done only once, no matter how many IONIC Apps you create.(Note: You need Internet connection for this.)
  8. The next two commands install specific packages that we will use in our particular projects, which didnt seem to run correctly.
    • $ sudo npm install angular-ui-router 
    • $ sudo npm install angular-sanitize
  9. Organisation of project folder: make a folder to hold all the ionic app projects let's call it MyAppsFolder
  10. Goto or change directory the folder just created as the folder for all apps 
    • $ cd MyAppsFolder
  11. Creating Apps using Ionic: We now exemplify the creation of an IONIC project called, say MyModelApp. In what follows, replace the word MyModelApp by the name you chose for your new app. Create using any of the templates IONIC project:
    • $ ionic start MyModelApp blank
    • $ ionic start MyModelApp complex-list
    • $ ionic start MyModelApp maps
    • $ ionic start MyModelApp salesforce
    • $ ionic start MyModelApp sidemenu
    • $ ionic start MyModelApp tabs
  12. Let's say to create a new blank IONIC project:
    $ ionic start MyModelApp blank
    This takes a few seconds… and creates a new directory (called MyModelApp) in your hard disk. (When asked: Create an ionic.io account to send Push Notifications and use the Ionic View app?, you can answer no: n)
  13. Change directory to the newly create directory (again, replace MyModelApp with the name you used in the step before):
    • $ cd MyModelApp
  14. Add target platforms Android (works on both Windows and Mac), it should work because Android Studio was installed before hand.
    • $ ionic platform add android
    • $ ionic platform rm android // maybe useful to debug plugin not working, just add / remove
  15. Add target platforms iOS (only works if you have xcode installed on a Mac)
    1. $ ionic platform add ios
    2. $ ionic platform rm ios
  16. Add particular plug-ins that we use in our projects: // seems to be needed for URL from app to browser to work
    • $ cordova plugin add cordova-plugin-screen-orientation 
    • $ cordova plugin add cordova-plugin-inappbrowser 
    • $ cordova plugin add cordova-plugin-wkwebview-engine         //(This last one is optional. Might improve speed on speed-savvy simulations.)
    • $ cordova plugin add cordova-plugin-tts // for text to speech 
    • $ cordova plugin add https://github.com/kumbe/Phonegap-ZoomControl.git // http://www.plugreg.com/plugin/kumbe/Phonegap-ZoomControl experimenting with zoom
  17. Copy files from your prepackage to the IONIC project. Now, we will extract the prepackaged files created with EjsS and work to modify the www folder of your project: UNZIP the file you created with EjsS (typically called ejss_app_XXX.zip)
  18. From the extracted folder copy all files and subfolders into your project’s www folder, even if this means replacing existing files and folders. (Actually, only the project’s libfolder will remain unchanged.)
  19. Best practices details. Change the icon and splash images in resources (for IONIC to create platform specific images.) Make sure you use images of the same size of those you replace. 
    • $ ionic resources 
  20. Optional details. You may want to edit using NotePad++ recommended the following entries in IONIC files of your project:bower.json: Change the name property.
    config.xml: Change the name, description and author entries.
    package.json: Change the name and description entries.
  21. NEW! 12 April 2017, change in config.xml to <preference name="android-minSdkVersion" value="19"/> instead of the older 16 as the ionic template seems to work on Android 4.4 but not lower. 
  22. NEW! 13 April 2017, EJSS automatically set iOS comboBox Accessory to false

    , go to edit www/js/app.js - search ".run(function($ionicPlatform) "- change
    cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); to cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false); 
  23. Test App. To test the app, but the best test is still package a debug apk and serve it to a phone. The Firefox browser seems to be able to detect the exact error code better than Chrome. Or if you still want to try the line is below.
    1. $ ionic serve
  24. Exit the test server by entering q.
  25. Deploying the debug app. This process can produce a number of errors. Mainly because you need to install the Android SDK tools required for compilation of Androids apps for the target version indicated by the Ionic project. For this, you may need to run the Android SDK Manager and install a number of packages. When successful, the last message will tell you where is the android-debug.apk file that was generated. Send this file to your Android device and install it. It should work.
    • $ ionic build android
    • $ ionic build ios 
  26. Prepare for keytool, jarsigner and zipalign.
  27. on MacOSX, the path need to be added typing something like this in Terminal:
    • $ export PATH=$PATH:/Users/lookang/Library/Android/sdk/build-tools/24.0.1
    • $ export PATH=$PATH:/Users/lookang/Library/Android/sdk/build-tools/25.0.2
  28. type in env and select the Environment Variables to allow the command line to be valid
  29.  select Environment Variables - System variables Edit 
  30. select new and key in the respective file location in to the PATH for the command lines to work properly
  31. It will appear as User Variables and you need properly these, the jdk for keytool and jarsigner, the android/sdk for zipalign 
    • C:\Program Files\Java\jdk1.8.0_92\bin
    • C:\Users\guest01\AppData\Local\Android\sdk\build-tools\24.0.1
  32. Deploy the release app. To generate a release build for Android, we can use the following cordova cli command:
    • $ cordova build --release android
    • $ ionic build android --release
  33. navigate to the
    folder C:\Users\guest01\MyAppsFolder\shm161App\platforms\android\build\outputs\apk and copy the file android-release-unsigned.apk into the Appfolder say C:\Users\guest01\MyAppsFolder\shm161App 
  34. Let’s generate our private key using the keytool command that comes with the JDK. If this tool isn’t found, refer to the installation guide:
    • $ keytool -genkey -v -keystore my-release-key.keystore -alias lookang -keyalg RSA -keysize 2048 -validity 10000
  35. You’ll first be prompted to create a password for the keystore. Then, answer the rest of the nice tools’s questions and when it’s all done, you should have a file called my-release-key.keystore created in the current directory.
  36. Note: Make sure to save this file somewhere safe, if you lose it you won’t be able to submit updates to your app!
  37. To sign the unsigned APK, run the jarsigner tool which is also included in the JDK:
    • $ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore android-release-unsigned.apk lookang 
  38. This signs the apk in place. Finally, we need to run the zip align tool to optimize the APK. The zipalign tool can be found in C:\Users\guest01\AppData\Local\Android\sdk\build-toils\24.0.1
    • $ zipalign -v 4 android-release-unsigned.apk ejss_model_shm161.apk
  39. send this apk to https://play.google.com/apps/publish/ and start publishing your own apps!

  40. Updating your App
  41. As you develop your app, you’ll want to update it periodically. In order for the Google Play Store to accept updated APKs, you’ll need to edit the config.xml file to increment the version value, then rebuild the app for release.
  42. Debugging Environment
  43. Sometimes when changing computer from Windows and MacOSX, this error could happen. How to fix this Error: spawn EACCES. To solve this use the command
    • chmod +x hooks/after_prepare/010_add_platform_class.js
  44. Sometimes when changing computer from Windows and MacOSX, this error could happen.
    • just launch xcode and type in your account password to give xcode the permission to write to hard drive
  45. Sometimes when changing computer from Windows and MacOSX, this error could happen.** BUILD FAILED ** The following build commands failed: CompileAssetCatalog /Users/lookang/dropbox/public/myappsfolder/vernierapp/platforms/ios/build/emulator/vernierApp.app vernierApp/Images.xcassets. to solve this problem type this to build the ios resources pictures icons and splash 
    • $ ionic resources
  46. Sometimes when changing computer from Windows and MacOSX, this error could happen. There is an error in your gulpfile: Error: Missing binding/Users/lookang/Dropbox/Public/MyAppsFolder/dcmotorApp/node_modules/node-sass/vendor/darwin-x64-48/binding.node Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 6.x Found bindings for the following environments:- Windows 32-bit with Node.js 6.x This usually happens because your environment has changed since running `npm install`. Run `npm rebuild node-sass` to build the binding for your current environment.
    • $ npm rebuild node-sass
  47. Another error could be Missing dependency target “CordovaLib (from CordovaLib.xcodeproj)”. to solve it use https://forum.ionicframework.com/t/cordova-cdvviewcontroller-h-file-not-found-in-xcode-7-1-beta/32232/6
    • "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"
  48. strangely i has an error
    Uh oh! Looks like you're missing a module in your gulpfile:
    Cannot find module 'supports-color'
    Do you need to run `npm install`? 
  49. to solve this, http://stackoverflow.com/questions/9023672/how-do-i-resolve-cannot-find-module-error-using-node-js rename the folder to something else and type in npm install 


Monday, August 15, 2016

Osciloscope animated gif





sypt2016 workshop materials

I was honored to help +Leong Tze Kwang to make some Singapore Young Physicists’ Tournament (SYPT) workshop materials using Tracker.

Theory

the equation for the drag force on the square paper is may be assumed to be is the form of $ F = \frac{1}{2} \rho v^{2} C_{D} A $
where F is the aerodynamic drag force
$ \rho $ is the is the density of the fluid
$ v $ is the speed of the object relative to the fluid
$ A $ is the cross sectional area
$ C_{D} $  is the drag coefficient – a dimensionless number.


Area, A/cm2
289
249
190
169
130
88
Terminal Velocity, v/ cm s-1
1.66
1.70
2.02
2.12
2.31
2.66


cross sectional area A = 88 cm^2, Terminal velocity vT = 2.66 cm/s


cross sectional area A = 130 cm^2, Terminal velocity vT = 2.31 cm/s


cross sectional area A = 169 cm^2, Terminal velocity vT = 2.12 cm/s


cross sectional area A = 190 cm^2, Terminal velocity vT = 2.02 cm/s


cross sectional area A = 249 cm^2, Terminal velocity vT = 1.70 cm/s


cross sectional area A = 289 cm^2, Terminal velocity vT = 1.66 cm/s




Thursday, August 4, 2016

Wednesday, August 3, 2016

A heart warming feedback by teacher in school

A heart warming feedback by teacher L in school.

How do eduLab projects influence the landscape of teaching and learning in Singapore?

How do participating schools perceive the influence of eduLab’s learning innovations in shaping the following:
  1. innovative practices
  2. teacher capacity
  3. student outcomes

innovative practices

I found myself greatly influenced to use and test learning innovations. I think because eduLab projects are structured, formal projects with deadlines, budgets, targets and much support, there is a strong incentive for me to plan to use learning innovations, to study their effectiveness and improve them for further use. \^^/

teacher capacity

In terms of teacher capacity, I think, precisely because I took Computing in JC, I am very aware of my weaknesses in programming, My previous ICT usage has been limited to whatever is available. Now, I have the "power" to request pedagogical modifications to the learning innovations which i feel would make the physics more accessible to my students. I feel that I have more control and hence feel more enabled in using ICT in my classroom, despite my lack of programming skills. ^_^

student outcomes

For student outcomes, this is an area we can discuss more and maybe agree on what are measurable yet relevant student outcomes? ^^;;;

How do eduLab projects influence the landscape of teaching and learning in Singapore?

To create the contextual readiness that can support the diffusion of innovations, I think the prolific presentations/sharings/seminars/workshops help to a great extent to raise awareness, spark interest and empower teachers. The jump from awareness and interest to action requires a stronger push. I felt that by making the use of learning innovations more painless (easy to download, no need for TA to install, comes with worksheets and solutions etc), when teachers are required to implement ICT, they would first consider and use eduLab's learning innovations.

Monday, August 1, 2016

Modified Atwood Machine JavaScript HTML5 Applet Simulation Model by Tat Leong Lee and Loo Kang Wee

Modified Atwood Machine JavaScript HTML5 Applet Simulation Model by Tat Leong Lee and Loo Kang Wee

example data set collected across varying m from 0.30 to 0.50 kg which result in increasing amount of curve in the parabolic of the model form, x = x0 + vo*t +0.5*a*t^2
Modified Atwood Machine JavaScript HTML5 Applet Simulation Model by Tat Leong Lee and Loo Kang Wee

example data set collected across varying addM from 0 to 0.30 kg which result in decreasing amount of curve in the parabolic of the model form, x = x0 + vo*t +0.5*a*t^2
Modified Atwood Machine JavaScript HTML5 Applet Simulation Model by Tat Leong Lee and Loo Kang Wee

Now with velocity and acceleration available for comparison.
example data set collected across varying addM from 0 to 0.30 kg which result in decreasing amount of curve in the parabolic of the model form, x = x0 + vo*t +0.5*a*t^2

added x vs t^2 graph with best fit line of the form x = 0.5*a*t^2 for Science Pradctical Assessment alignment suggested by +Leong Tze Kwang
Modified Atwood Machine JavaScript HTML5 Applet Simulation Model by Tat Leong Lee and Loo Kang Wee