Welcome to EdListen:
Never Stop Learning

Showing posts with label Resource. Show all posts
Showing posts with label Resource. Show all posts

Free Video File Joiner

I bought the school a nice video camera, Canon VIXIA HF G40, for recording events and school news.   The camera has worked out very well, but like all new digital camera's it breaks the video's into multiple files.   So the search began to find a very simple software that can easily join those video files into one.    After several failed attempts I finally stumbled across DVD Video Media's: Video Cutter Joiner.   The software is just for joining (or splitting) video files, it works fast and is very simple to use.





My setup at school


Announcing the Flippity.net Add-on

Flippity.net is a series of web apps that can easily turn a google spreadsheet into a set of online Flashcards or Quiz Show.   There are cards for helping a teacher create random groups, or mix and match activities.   Students accomplishments can be tracked using the Badge Tracker and the Certificate Quiz.   There is even a Spelling Words that can read the word to you.


These great tools from Flippity.net were created and are maintained by Steve Fortna, and now available as an add-on thanks to a partnership with Bjorn Behrendt of Edlisten.com.



Announcing the Simply Send add-on.

I would like to announce the Simply Send add-on. This form add-on will simply send/notify the form results to specified email addresses.

Announcing EZ Query Add-on

EZ Query will help make spreadsheets and form data easily readable.  The Add-on utilizes the built-in query function, so data is always up to date.  With this add-on you can easily select the columns to show and add filters so you only see want.



Announcing the gClassFolders Add-on

I am very proud to announce the gClassFolders add-on.    gClassFolders is designed to improve workflow when using Google Apps in the classroom.  The add-on version offers a much more streamline interface for teachers than previous versions.



There are some school-wide solutions like Hapara Teacher Dashboard that also offer an organizational structure, however they are only available if the school, as a whole, decides to move in that direction.  gClassFolders puts the power in the teachers hand, allowing them to get organized on their own schedule without waiting for an IT department or board approval to get started.  That said, many schools, world wide, have chosen to standardize on gClassFolders for all teachers.

With gClassFolders you can start off the year organized and ready to go, unlike Google Classroom which is set to launch after many schools are already in session.  gClassFolders is also one of the few tools that teaches authentic folder and file management vs going through a separate program that students will not likely see or use in the business world.

To get started you can search for "gClassFolders" (no spaces) from the spreadsheet add-on gallery, or follow this direct link:

I have built the website http://www.gclassfolders.com to help provide information about the add-on.  There is also an active Google Plus Community, which I encourage everyone to join to collaborate with other educators using the structure.

Some new features or improvements you will see in this version of gClassFolders:

  • Streamlined for the teacher.
  • New "Send File" tool to quickly send a copy of a file to selected assignment folders.
    • If you want a more advanced file distribution, gClassFolders continues to integrate with the Doctopus add-on.
  • Fix email, and better tools for managing add/drops.
  • Improved ability to set labels used during the folder creation process.
  • Many user interface improvements.

gClassFolders is free and will continue to be free, however if you found this add-on helpful please consider donating to the project. This will help me continue to support it in the future.




Google Site HTML Box slideshow

I was looking for a way to create a nice looking slideshow on a Google Site, that is easy to update.   While there are many gadgets out there that works, many of them relied on an rss feed from an external site like Flicker.   I wanted something even simpler.   What I came up with is a simple bit of code that can get pasted into an HTML box in Google Sites.

Here is an example on a Google Site


Once inserted it is a little misleading as you will not see the slideshow change unless you are a viewer.  So to preview you need to "Preview Page As Viewer".




Into this box past one of the two following codes.   The first one just uses images, while the second allows you to mix images with text or any content.   If you want you can play with the css to add a drop shadow and other style enhancements.  Just replace the initial image, which is what will show up before the slideshow loads, and the images inside the "slideshow" div.

Just images:
 <style>  
 #slideshow, #initial {   
   position: relative;  
   width: 800px;   
   height: 240px;     
 }  
 #slideshow > img {   
   position: absolute;  
 }   
 </style>   
 <div id="initial"> <img src="http://www.fhuhs.org/files/slide1.png"></div>  
 <div id="slideshow" style="display:none">  
  <img src="http://www.fhuhs.org/files/slide1.png">  
  <img src="http://www.fhuhs.org/files/slide2.png">  
  <img src="http://www.fhuhs.org/files/slide3.png">  
  <img src="http://www.fhuhs.org/files/slide4.jpg">  
  <!-- <div>Pretty cool eh? This slide is proof the content can be anything. </div> -->  
 </div>  
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"> </script>  
 <script>  
  //http://css-tricks.com/snippets/jquery/simple-auto-playing-slideshow/  
 $("#slideshow > img:gt(0)").hide();  
 setInterval(function() {   
  $('#slideshow > img:first')  
   .fadeOut(1000)  
   .next()  
   .fadeIn(1000)  
   .end()  
   .appendTo('#slideshow');  
 }, 3000);   
 $('#initial').hide();  
 $('#slideshow').show();  
 </script>  


Images, Text, any content
 <style>  
 #slideshow, #initial {   
   /* margin: 50px auto; */  
   position: relative;  
   width: 800px;   
   height: 240px;   
 }  
 #slideshow > div {   
   position: absolute;  
 }  
 </style>   
 <div id="initial"> <div><img src="http://www.fhuhs.org/files/slide1.png"></div></div>  
 <div id="slideshow" style="display:none">  
  <div> <img src="http://www.fhuhs.org/files/slide1.png"> </div>  
  <div> <img src="http://www.fhuhs.org/files/slide2.png"> </div>  
  <div> <img src="http://www.fhuhs.org/files/slide3.png"> </div>  
  <div> <img src="http://www.fhuhs.org/files/slide4.jpg"> </div>  
  <div>Pretty cool eh? This slide is proof the content can be anything. </div>  
 </div>  
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"> </script>  
 <script>  
  //http://css-tricks.com/snippets/jquery/simple-auto-playing-slideshow/  
 $("#slideshow > div:gt(0)").hide();  
 setInterval(function() {   
  $('#slideshow > div:first')  
   .fadeOut(1000)  
   .next()  
   .fadeIn(1000)  
   .end()  
   .appendTo('#slideshow');  
 }, 3000);   
 $('#initial').hide();  
 $('#slideshow').show();  
 </script>  


Map Drives App

With Chromebooks, tablets, iPads and BYOD becoming so popular I have been changing the way I manage workflow in my network.  One of the top things I have done is change all the student-use Windows machines from logging in each student to using a single profile.   This works well since most students are using Google Apps for their office productivity, however there are a few places like our CAD lab that uploading the files to Google Drive is just not practical.

The solution I found/modified was a simple script originally written by Vaughn Miller that asked for a username and password and could map drives after the computer was turned on.   I modified the script to include a user home folder mapping.    The script is basically a VBS script with an html front end.   The file type is .hta, which when doubl-clicked opens up an internet explorer window.





  1. Open Notepad
  2. Copy the below code into it
  3. Save as filename.hta

 <!-- HTA script to allow machines that are not joined to a domain to access   
    Windows file shares with domain credentials. It will atomatically prepend the   
    domain to the username and then map several drives. If a drive is already   
    mapped, it is disconnected and then mapped for the current user.  
       http://www.vaughnemiller.com/2012/08/16/hta-script-for-mapping-network-drives/  
       https://github.com/vmiller/ConnectDrives  
      
    Version 1.0.2 Written by Vaughn Miller 7/20/2012   
       Version 1.0.3 Modified by Bjorn Behrendt 1/30/14 ~ http://www.edlisten.com  
           ~ Removed looped mapped drive.  Was unneeded for my own situation but probably should get put back in  
           ~ Added home folder mapping. This will map to a folder that matches to the username  
           ~ Now removes all current mapped drives, even if they are not defined in this script. This solves a multiple connections error if there is a current mapped drive.  
             
              
    ---------------------------------------------------------------------------------->  
   
   
 <HTML>  
 <HEAD>  
 <TITLE>Connect Network Drives</title>  
 <HTA:APPLICATION  
    ApplicationName="MapDrives.HTA"  
    SingleInstance="Yes"  
    WindowsState="Normal"  
    Scroll="No"  
       ICON="computer.ico"  
    Navigable="Yes"  
    MaximizeButton="No"  
    SysMenu="Yes"  
    Caption="Yes"  
 ></HEAD>  
   
 <SCRIPT LANGUAGE="VBScript">  
   
 ' *** Define Drive Mappings ***  
 dim arrDrives(1,2)  
 intMaxdrives = 1  
   
 arrDrives(0,0) = "K:"  
 arrDrives(0,1) = "\\server\TShare"  
 arrDrives(0,2) = "TShare"  
   
 arrDrives(1,0) = "W:"  
 arrDrives(1,1) = "\\server\homefolders\"  
 arrDrives(1,2) = "Username" 'Not used in version 1.0.3  
   
 ' *** End Drive Map Definitions ***  
   
 strDOMAIN = "YourDomainName\" 'Domain to prepend to the username  
 msgSuccess = "The following drives have mapped correctly" & vbCrLf & "K: = CadShare" & vbCrLf & "W: = " & strUsr2 & "'s CAD Folder"  
 msgError = "An error occurred while mapping: " & Err2 & vbCrLf & vbCrLf & "Please check your password" & vbCrLf & "If that does not work please restart the computer." & vbCrLf & "If it still does not work after a restart, have your teacher submit a help desk ticket."  
   
   
   
 Sub Window_Onload  
  '# Size Window  
  sHorizontal = 440  
  sVertical = 220  
  Window.resizeTo sHorizontal, sVertical  
  '# Get Monitor Details  
  Set objWMIService = GetObject _  
   ("winmgmts:root\cimv2")  
  intHorizontal = sHorizontal *2  
  intVertical = sVertical *2  
  Set colItems = objWMIService.ExecQuery( _  
   "Select ScreenWidth, ScreenHeight from" _  
   & " Win32_DesktopMonitor", , 48)  
  For Each objItem In colItems  
   sWidth= objItem.ScreenWidth  
   sHeight = objItem.ScreenHeight  
   If sWidth > sHorizontal _  
    then intHorizontal = sWidth  
   If sHeight > sVertical _  
    then intVertical = sHeight  
  Next  
  Set objWMIService = Nothing  
  '# Center window on the screen  
  intLeft = (intHorizontal - sHorizontal) /2  
  intTop = (intVertical - sVertical) /2  
  Window.moveTo intLeft, intTop  
  '# default window content  
  window.location.href="#Top"  
 End Sub  
   
   
 Sub RunScript  
   on Error Resume Next  
   
   minUSRnamelength = 2  
   minPASSwrdlength = 3  
   
   strUsr = UsrnameArea.Value  
   strPas = PasswordArea.Value  
   strUsr2 = strUsr  
   
   Set objNetwork = CreateObject("WScript.Network")  
   Set oShell = CreateObject("Shell.Application")  
     
   
   If Len(strUsr) >= minUSRnamelength then  
    strUsr = strDOMAIN & UCase(strUsr) '<--- adds the domain before the username  
   
    if Len(strPas) >= minPASSwrdlength Then  
      Call ClearDrives ' Delete existing mappings if they exist  
        
            '***** Begin Drive mapping *****  
        
       Err.Clear  
                Err2.Clear  
       objNetwork.MapNetworkDrive arrDrives(0,0), arrDrives(0,1), False, strUsr, strPas  
       If Err.Number = 0 Then  
         oShell.NameSpace(arrDrives(0,0)).Self.Name = arrDrives(0,2)  
                 else  
                     Err2 = arrDrives(0,2) & ", " & Err2   
       End If   
                  
                Err.Clear  
                netLocation = arrDrives(1,1) & strUsr2  
       objNetwork.MapNetworkDrive arrDrives(1,0), netLocation, False, strUsr, strPas  
       If Err.Number = 0 Then  
                  oShell.NameSpace(arrDrives(1,0)).Self.Name = strUsr2  
                else  
                 Err2 = strUsr2 & ", " & Err2   
       End If   
           
                If Err.Number = 0 Then  
                     msgbox(msgSuccess)  
                else  
                     msgbox(msgError)  
                End If  
   
   
                        
      '***** End Drive Mapping *****  
              
              
        
      ELSE   
       Msgbox chr(34) & strPas & """ is an incorrect password !"  
       Exit Sub  
      End If  
   ELSE   
    Msgbox chr(34) & strUsr & """ is an incorrect Username !"  
    Exit Sub  
   End If  
   ' Clean up the objects before exiting  
   Set oShell = Nothing  
   Set objNetwork = Nothing  
   Self.Close()  
 End Sub  
   
   
 Sub ClearDrives   ' Sub Routine to remove the drives if they are already mapped      
 SET objNetwork = CREATEOBJECT("Wscript.Network")  
 SET colDrives = objNetwork.EnumNetworkDrives  
 FOR i = 0 to colDrives.Count-1 Step 2  
      ' Force Removal of network drive and remove from user profile   
      ' objNetwork.RemoveNetworkDrive strName, [bForce], [bUpdateProfile]  
      objNetwork.RemoveNetworkDrive colDrives.Item(i),TRUE,TRUE  
 NEXT  
   
   
 ' on Error Resume Next  
 ' Set objNetwork = CreateObject("WScript.Network")  
 '   
 '  
 ' '***** Begin section to delete drive mappings ***  
 ' Set AllDrives = objNetwork.EnumNetworkDrives      
 ' For n = 0 To intMaxDrives   'Loop through our array of drives   
 '   For i = 0 To AllDrives.Count - 1 Step 2   
 '    If AllDrives.Item(i) = arrDrives(n,0) Then AlreadyConnected = True   
 '   Next      
 '   If AlreadyConnected = True then   
 '    objNetwork.RemoveNetworkDrive arrDrives(n,0), True, True  
 '   End If   
 ' Next    
 ' 'msgbox ("disconnected1")  
  sbWait(3)  
 ' 'msgbox ("d-end")  
 ' '***** End section to delete drive mappings   
   
  End Sub  
   
   
 Sub DisconnectDrives ' Calls ClearDrives subroutine and then closes the window  
     Call ClearDrives  
   Set oShell = Nothing  
   Set objNetwork = Nothing  
     Self.close()  
 End Sub  
   
 Sub sbWait(iSeconds)  
   Dim oShell : Set oShell = CreateObject("WScript.Shell")  
   oShell.run "cmd /c ping localhost -n " & iSeconds,0,True  
 End Sub       
   
   
 Sub CancelScript  
   Set oShell = Nothing  
   Set objNetwork = Nothing  
   Self.Close()  
 End Sub  
   
 </SCRIPT>  
   
   
 <BODY STYLE="font:14 pt arial; color:black;">  
 <a name="Top"></a><CENTER>  
  <table border="0" cellpadding="0" cellspacing="0"><font size="2" color="black" face="Arial">  
   <tr>  
    <td colspan="2" height="50" valign="top"><p style="text-align: center;">  
                Your School<br />  
                The Lab</p></td>  
   </tr>  
   <tr>  
      <tr>  
    <td height="30"><p align="right">Your Username</p></td>  
    <td height="30">&nbsp;&nbsp; <input type="text" name="UsrnameArea" size="30"></td></tr>  
   <tr>  
    <td height="30"><p align="right">Password</p></td>  
    <td height="30">&nbsp;&nbsp; <input type="password" name="PasswordArea" size="30"></td></tr>  
  </table><BR>  
 <HR color="#0000FF">  
  <Input id=runbutton class="button" type="button" value=" Log On " name="run_button" onClick="RunScript">  
   &nbsp;  
  <Input id=runbutton class="button" type="button" value=" Log Off " name="dis_button" onClick="DisconnectDrives">  
   &nbsp;  
  <Input id=runbutton class="button" type="button" value="Cancel" name="cancel_button" onClick="CancelScript">  
  <br/>  
  </CENTER>  
 </BODY>  
   
 </HTML>  

I used http://codeformatter.blogspot.com/ to convert the source-code into a format that I can post on Blogger.

+1 Your Education



This site was created to accompany a presentation that I am doing with +Lucie deLaBruere and +Elizabeth McCarthy at the 2013 Dynamic Landscapes conference.  The concept of plus oneing your education is much larger than this presentation and so I hope that the conversation can continue.