Jump to content
EduGeek EdSec 2026 is Go! 27th Oct in Derby! Join us for a day of EdTech security focused talks, networking, and an evening social ×

MicrodigitUK

Members
  • Posts

    602
  • Joined

  • Last visited

Everything posted by MicrodigitUK

  1. If you incorporate copiers you will need Papercut MF. MF comes with copier support and as such must be purchased through the people you purchase copier contract from. If you are looking at Annodata be aware they are only just getting into the Papercut market. Reason being they mainly push Cannon copiers that are yet to support Papercut embedded. I would suggest you get competitive pricing from http://www.itecgroup.co.uk that I know have been working with schools and Papercut for a long time and have tech support that know Papercut inside out.
  2. @kidpressingbuttons a bit of background into how we use shard accounts and scripts in my school. We use the PaperCut with shared accounts and don’t give anyone credit on their personal accounts. We use the shared accounts as department accounts, similar to how most schools do on their photocopiers. Each department has a pin code and they enter that code in the popup window to release there prints. Also for students/pupils printing each department has a second student pin code. The only difference being that the student codes change twice a day. (Done with a simple script and scheduled task) This is to stop students memorizing pin codes and printing to the incorrect department. All department pin codes are published on intranet/VLE for staff access only, Staff then only give out the code to classes when they want students/pupils to print. At the end of each month the total of Staff and Student shared accounts are charged back to the departments covering toner and paper. (Departments are allocated in budgets enough funds to cover their printing charges.)
  3. Frog3 UWA Widget version: "http://www.w3.org/TR/xhtml1/DTD/xhtml-strict.dtd"> xmlns:widget="http://www.netvibes.com/ns/" xmlns:frog="http://fdp.frogtrade.com/ns/"> Papercut Student Pins FDP v4 <br /> //<![CDATA[<br /> // http://printserver.local:9191/server/custom/web/StudentPins.json<br /> var uid = UWA.Environment.user.id;<br /> var mybaseobj = {};<br /> var servuri = widget.getValue('servuri');<br /> var servport = widget.getValue('servport');<br /> var jsonfile = widget.getValue('jsonfile');<br /> var pcutitems = 0;<br /> <br /> var thismonth=new Date();<br /> var month_name=new Array(12);<br /> month_name[0]="January"<br /> month_name[1]="February"<br /> month_name[2]="March"<br /> month_name[3]="April"<br /> month_name[4]="May"<br /> month_name[5]="June"<br /> month_name[6]="July"<br /> month_name[7]="August"<br /> month_name[8]="September"<br /> month_name[9]="October"<br /> month_name[10]="November"<br /> month_name[11]="December"<br /> <br /> change = function(what) {<br /> UWA.extendElement(widget.body.getElementsByClassName(what)[0]).toggle();<br /> for (var k=0;k<pcutitems;k++) {<br /> var h = UWA.extendElement(widget.body.getElementsByClassName("id"+k)[0]);<br /> if ("id"+k != what) {<br /> h.hide();<br /> }<br /> }<br /> }<br /> <br /> widget.environment.handleLinks = function(){};<br /> widget.onLoad = function(){<br /> //alert("onload pcutitems="+pcutitems);<br /> UWA.Data.getJson(servuri+":"+servport+"/custom/"+jsonfile,mybaseobj.process);<br /> var c = widget.createElement('div');<br /> c.addClassName('spacerbox');<br /> widget.addBody(c);<br /> }<br /> <br /> mybaseobj.process = function(pcuttext) {<br /> var pcutjson = eval("("+pcuttext+")");<br /> if (!pcutjson.data) {<br /> widget.setBody('<p style="color:red">Sorry, there are no published printer pins. Please let ICT Support know so we can fix it!');<br /> }<br /> else {<br /> /////pins found<br /> pcutitems = pcutjson.data.length;<br /> <br /> var parray = new Array(pcutjson.data.length);<br /> for (var i=0;i<pcutjson.data.length;i++) {<br /> parray[i] = new Array(6);<br /> parray[i][0] = "id"+i;<br /> parray[i][1] = pcutjson.data[i].Account;<br /> parray[i][2] = pcutjson.data[i].Pin;<br /> parray[i][3] = pcutjson.data[i].Balance;<br /> parray[i][4] = pcutjson.data[i].Restricted;<br /> parray[i][5] = pcutjson.data[i].Notes;<br /> }<br /> <br /> var pinstable = widget.createElement('div');<br /> var inner = "<table class='pcut'>";<br /> for (var j=0;j<parray.length;j++) {<br /> /////65533 is the ASCII character code for £ symbol, 163 is UTF8<br /> /////strip the notes to include on amount<br /> /*var searchar = String.fromCharCode(163);<br /> var startchar = parray[j][5].search(searchar)+1;<br /> var endchar = parray[j][5].length;<br /> var restricttext = parray[j][5].substring(startchar,endchar);*/<br /> var balance = Math.round(parray[j][3]*-100); // 123.45 67.8 .09 0 .1<br /> var num = parseInt(balance).toString(); // 12345 6780 9 0 10<br /> if (num.length == 2) {<br /> var bal = "0."+num.substring(num.length-2,num.length);<br /> }<br /> else if (num.length == 1) {<br /> var bal = "0.0"+num.substring(num.length-2,num.length);<br /> }<br /> else {<br /> var bal = num.substring(0,num.length-2) +"."+ num.substring(num.length-2,num.length); // 123.45 67.80 .9 .0 .10<br /> }<br /> <br /> /////classify even table rows so they can be styled<br /> if (j%2) {<br /> /////check whether papercut account is restricted, if so highlight text to differentiate<br /> if (parray[j][4]=="true") {<br /> inner += "<tr class='evenrow'><td class='col1' onClick='change(\""+parray[j][0]+"\")'><span class='restr'>"+parray[j][1]+"<div class='col2 "+parray[j][0]+"' style='display: none;'><b>Pin: <span class='pinno'>"+parray[j][2]+" <b>"+month_name[thismonth.getMonth()]+" balance: £ "+bal+"<br /><b class='restr'>Notes: "+parray[j][5]+"";<br /> }<br /> else {<br /> inner += "<tr class='evenrow'><td class='col1' onClick='change(\""+parray[j][0]+"\")'>"+parray[j][1]+"<div class='col2 "+parray[j][0]+"' style='display: none;'><b>Pin: <span class='pinno'>"+parray[j][2]+" <b>"+month_name[thismonth.getMonth()]+" balance: £ "+bal+"";<br /> }<br /> }<br /> else {<br /> /////check whether papercut account is restricted, if so highlight text to differentiate<br /> if (parray[j][4]=="true") {<br /> /////find ASCII or UTF8 character code for the evasive £ symbol (depending on json encoding)<br /> //alert("char 22 = "+parray[j][5].charAt(22)+" in ASCII/UTF8 = "+parray[j][5].charCodeAt(22)+" so restrict: "+restricttext);<br /> inner += "<tr class='oddrow'><td class='col1' onClick='change(\""+parray[j][0]+"\")'><span class='restr'>"+parray[j][1]+"<div class='col2 "+parray[j][0]+"' style='display: none;'><b>Pin: <span class='pinno'>"+parray[j][2]+" <b>"+month_name[thismonth.getMonth()]+" balance: £ "+bal+"<br /><b class='restr'>Notes: "+parray[j][5]+"";<br /> }<br /> else {<br /> inner += "<tr class='oddrow'><td class='col1' onClick='change(\""+parray[j][0]+"\")'>"+parray[j][1]+"<div class='col2 "+parray[j][0]+"' style='display: none;'><b>Pin: <span class='pinno'>"+parray[j][2]+" <b>"+month_name[thismonth.getMonth()]+" balance: £ "+bal+"";<br /> }<br /> }<br /> }<br /> inner += "";<br /> pinstable.setHTML(inner);<br /> widget.setBody(pinstable);<br /> }<br /> } <br /> //]]><br /> <br /> body {background:white; font-family:arial; font-size:10pt; color:#333333;}<br /> div.row {cursor:pointer}<br /> div.el {float:left; width:200px;}<br /> .restr {color:#FE9621; font-weight:bold}<br /> tr.oddrow {background:#EAECEC; }<br /> tr.oddrow2 {background:#fed671; }<br /> tr.evenrow {}<br /> tr :hover {background:#d1e7f0}<br /> span.pinno {font-size:1.2em; background:yellow; padding:1px 3px}<br /> <br /> td.col1 {padding:2px 20px 0 5px; cursor:pointer}<br /> .col2 {padding:5px 0 0 15px}<br /> <br /> table.pcut {border-collapse:collapse; border:0; padding:0; width:100%}<br /> table.pcut td {vertical-align:middle; text-align:left; font-size:1em; border:1px solid #D4D8D8; border-width:1px 0; padding:2px 0 2px 10px}<br /> div.spacerbox {clear:both; height:2500px; width:100%;}<br /> Retrieving pins...
  4. Part 3: The web app to display the information from your JASON file on your VLE or intranet to the staff to distribute the shared account codes. I have published 2 options but you could re-produce this in ASP.net, SharePoint, or as a Moodle block. My 2 options given are as simple PHP page and a Frog3 widget. PHP version (just change "$JSONfile" to point to your JSON file): "http://www.w3.org/TR/xhtml1/DTD/xhtml-strict.dtd"> Papercut Student Printing Pins <br /> body {background:white; font-family:arial; font-size:10pt; color:#333333;}<br /> div.row {cursor:pointer}<br /> div.el {float:left; width:200px;}<br /> .restr {color:#FE9621; font-weight:bold}<br /> tr.oddrow {background:#EAECEC; }<br /> tr.oddrow2 {background:#fed671; }<br /> tr.evenrow {}<br /> tr :hover {background:#d1e7f0}<br /> span.pinno {font-size:1.2em; background:yellow; padding:1px 3px}<br /> <br /> td.col1 {padding:2px 20px 0 5px; cursor:pointer}<br /> .col2 {padding:5px 0 0 15px}<br /> <br /> table.pcut {border-collapse:collapse; border:0; padding:0; width:100%}<br /> table.pcut td {vertical-align:middle; text-align:left; font-size:1em; border:1px solid #D4D8D8; border-width:1px 0; padding:2px 0 2px 10px}<br /> div.spacerbox {clear:both; height:2500px; width:100%;}<br /> <br /> div.moduleHeader {display: none;}<br /> div.moduleFooter {display: none;}<br /> <br /> //<![CDATA[<br /> <br /> onload=function(){<br /> if (document.getElementsByClassName == undefined){<br /> document.getElementsByClassName = function(className){<br /> var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");<br /> var allElements = document.getElementsByTagName("*");<br /> var results = [];<br /> <br /> var element;<br /> for (var i = 0; (element = allElements[i]) != null; i++){<br /> var elementClass = element.className;<br /> if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass)){<br /> results.push(element);<br /> }<br /> }<br /> <br /> return results;<br /> }<br /> }<br /> }<br /> <br /> change = function(what) {<br /> var e=document.getElementById(what);<br /> if(e.style.display == 'block'){<br /> e.style.display = 'none';<br /> }<br /> else{<br /> e.style.display = 'block';<br /> }<br /> var arr = document.getElementsByClassName("col2");<br /> for (i = 0; i < arr.length; i++) {<br /> if (arr[i].id != what) {<br /> arr[i].style.display = 'none';<br /> }<br /> }<br /> }<br /> //]]><br /> $JSONfile = "http://papercutserver:9191/custom/StudentPins.json"; //populate array with mounths $month_name[0]="January"; $month_name[1]="February"; $month_name[2]="March"; $month_name[3]="April"; $month_name[4]="May"; $month_name[5]="June"; $month_name[6]="July"; $month_name[7]="August"; $month_name[8]="September"; $month_name[9]="October"; $month_name[10]="November"; $month_name[11]="December"; function http_file_exists($url, $followRedirects = true) { $url_parsed = parse_url($url); extract($url_parsed); if (!@$scheme) $url_parsed = parse_url('http://'.$url); extract($url_parsed); if(!@$port) $port = 80; if(!@$path) $path = '/'; if(@$query) $path .= '?'.$query; $out = "HEAD $path HTTP/1.0\r\n"; $out .= "Host: $host\r\n"; $out .= "Connection: Close\r\n\r\n"; if(!$fp = @fsockopen($host, $port, $es, $en, 5)){ return false; } fwrite($fp, $out); while (!feof($fp)) { $s = fgets($fp, 128); if(($followRedirects) && (preg_match('/^Location:/i', $s) != false)){ fclose($fp); return http_file_exists(trim(preg_replace("/Location:/i", "", $s))); } if(preg_match('/^HTTP(.*?)200/i', $s)){ fclose($fp); return true; } } fclose($fp); return false; } // try up to 5 times to read the JSON file from $JSONfile for ($x=0; $x<=5; $x++){ //read the JSON file from Papercut server if (http_file_exists($JSONfile)) { $handle = fopen($JSONfile, "rb"); while ( !feof($handle) ) { $myJSONObject = fread($handle, 8192); } fclose($handle); } //decode jeason into array $pcutjson = json_decode($myJSONObject, true); if (!empty($pcutjson)) { //brack out of th for loop if JSON was returned $x=5; } } //check if ther was jason data returned from the file if (empty($pcutjson)) { echo(' Sorry, there are no published printer pins. Please let ICT Support know so we can fix it!'); } else { /////pins found $pcutitems = count($pcutjson['data']); $inner = "</pre><table class="pcut">"; for ($j=0;$j<$pcutitems;$j++) { $balance = round($pcutjson['data'][$j]['Balance']*-100); // 123.45 67.8 .09 0 .1 if (strlen((string)$balance) == 2) { $bal = "0.".substr((string)$balance,(strlen((string)$balance)-2),strlen((string)$balance)); } elseif (strlen((string)$balance) == 1) { $bal = "0.0".substr((string)$balance,(strlen((string)$balance)-2),strlen((string)$balance)); } else { $bal = substr((string)$balance,0,strlen((string)$balance)-2) .".". substr((string)$balance,strlen((string)$balance)-2,strlen((string)$balance)); // 123.45 67.80 .9 .0 .10 } /////classify even table rows so they can be styled if ($j%2) { /////check whether papercut account is restricted, if so highlight text to differentiate if ($pcutjson['data'][$j]['Restricted']=="true") { $inner = $inner."".$pcutjson['data'][$j]['Account']."Pin: ".$pcutjson['data'][$j]['Pin']." ".$month_name[date('m')-1]." balance: £ ".$bal." Notes: ".$pcutjson['data'][$j]['Notes'].""; } else { $inner = $inner."".$pcutjson['data'][$j]['Account']."Pin: ".$pcutjson['data'][$j]['Pin']." ".$month_name[date('m')-1]." balance: £ ".$bal.""; } } else { /////check whether papercut account is restricted, if so highlight text to differentiate if ($pcutjson['data'][$j]['Restricted']=="true") { $inner = $inner."".$pcutjson['data'][$j]['Account']."Pin: ".$pcutjson['data'][$j]['Pin']." ".$month_name[date('m')-1]." balance: £ ".$bal." Notes: ".$pcutjson['data'][$j]['Notes'].""; } else { $inner = $inner."".$pcutjson['data'][$j]['Account']."Pin: ".$pcutjson['data'][$j]['Pin']." ".$month_name[date('m')-1]." balance: £ ".$bal.""; } } } $inner = $inner."</table>";<br> echo($inner);<br> }<br><br> ?><br> <b
  5. Part 2: Ok once you have all of your student shared account codes reset you will need to easily view them. This script will output all of the "STUDENT" shared accounts to a JASON formatted file. This can then be read by a web based application and displayed on a staff intranet or VLE page. The script also uses "Iconv" to convert character encoding as most systems read JASON in UTF-8 format. Iconv can be downloaded from: http://gnuwin32.sourceforge.net/downlinks/libiconv-bin-zip.php SERVER_COMMAND, JSONFILEPATH and JSONTEMPFILE should be changed to meet the setup of your server. @echo off set JSONFILEPATH="C:\Program Files\PaperCut NG\server\custom\web\StudentPins.json" set JSONTEMPFILE="C:\Program Files\PaperCut NG\server\custom\web\TempStudentPins.json" if exist %JSONTEMPFILE% (del %JSONTEMPFILE%) ::set SERVER_COMMAND="C:\Program Files\PaperCut MF\server\bin\win\server-command.exe" set SERVER_COMMAND=c:\Progra~1\PaperC~1\server\bin\win\server-command.exe setlocal EnableDelayedExpansion echo { > %JSONTEMPFILE% echo "data": >> %JSONTEMPFILE% echo [ >> %JSONTEMPFILE% SET /A COUNT=0 FOR /f "delims=" %%A in ('%SERVER_COMMAND% list-shared-accounts') DO (call :studentcheck "%%A") echo %last% echo ]} >> %JSONTEMPFILE% ::move /Y %JSONTEMPFILE% %JSONFILEPATH% iconv -f ISO-8859-1 -t UTF-8 %JSONTEMPFILE% > %JSONFILEPATH% if exist %JSONTEMPFILE% (del %JSONTEMPFILE%) :studentcheck set str=%1 :: remove ampasand from string to prevent errors after removing quotes set str=%str:&=% :: Remove quotes from string set str=%str:~1,-1% :: Trim string to the first 7 chars set str=%str:~0,7% :: if the string is student it is a student account IF /I "%str%"=="STUDENT" ( FOR /f "tokens=1 delims=" %%B in ('%SERVER_COMMAND% get-shared-account-property %1 disabled') DO ( :: see if the acount is disabled and skip if it is IF /I "%%B"=="true" ( GOTO :eof ) ELSE ( FOR /f "tokens=1 delims=" %%C in ('%SERVER_COMMAND% get-shared-account-property %1 notes') DO ( IF /I "%%C"=="Hidden" ( GOTO :eof ) ELSE ( call :studentcheck2 %1 "%%C" GOTO :eof ) ) call :studentcheck2 %1 "" ) ) ) GOTO :eof :studentcheck2 FOR /f "tokens=1 delims=" %%D in ('%SERVER_COMMAND% get-shared-account-property %1 pin') DO ( FOR /f "tokens=1 delims=" %%E in ('%SERVER_COMMAND% get-shared-account-property %1 balance') DO ( FOR /f "tokens=1 delims=" %%F in ('%SERVER_COMMAND% get-shared-account-property %1 restricted') DO ( IF "!COUNT!"=="0" ( echo {"Account": %1, "Pin": "%%D", "Balance": "%%E", "Restricted": "%%F", "Notes": %2} >> %JSONTEMPFILE% ) ELSE ( echo ,{"Account": %1, "Pin": "%%D", "Balance": "%%E", "Restricted": "%%F", "Notes": %2} >> %JSONTEMPFILE% ) SET /A COUNT+=1 ) ) ) GOTO :eof :_End
  6. OK, this script is to reset shared accounts. All of the shared account names must start with "STUDENT" or the script will ignore them. e.g. I have student shared accounts called "STUDENT Art", "STUDENT D and T" and "STUDENT ICT" ... This BAT/CMD script is then just scheduled to run at the times you wish to reset the pin codes for the shared accounts. You, will need to set the SERVER_COMMAND to the correct path. This must be the shortened abbreviation old DOS style path e.g. "c:\Progra~1" and not "C:\Program Files". Had issues running the script with full path. @echo off setlocal EnableDelayedExpansion ::set SERVER_COMMAND="%~d0%~p0..\..\..\bin\win\server-command.exe" ::set SERVER_COMMAND="C:\Program Files\PaperCut NG\server\bin\win\server-command.exe" set SERVER_COMMAND=c:\Progra~1\PaperC~1\server\bin\win\server-command.exe set ACTION="set-shared-account-property" set /a number=0 FOR /f "delims=" %%A in ('%SERVER_COMMAND% list-shared-accounts') DO ( IF /i %number% LSS 1234 ( Call :_RandomNumber ) call :studentcheck "%%A" set /a number=0 ) :studentcheck set str=%1 :: remove ampasand from string to prevent errors after removing quotes set str=%str:&=% :: Remove quotes from string set str=%str:~1,-1% :: Trim string to the first 7 chars set str=%str:~0,7% :: if the string is student it is a student account IF /I "%str%"=="STUDENT" ( FOR /f "tokens=1 delims=" %%B in ('%SERVER_COMMAND% get-shared-account-property %1 disabled') DO ( :: see if the acount is disabled and skip if it is IF /I "%%B"=="true" ( GOTO :eof ) ELSE ( ::Set the random pin number %SERVER_COMMAND% %ACTION% %1 "pin" %number% ) ) ) GOTO :eof :_RandomNumber :_setmax set /a max=%random% if %max% LSS 8000 GOTO _setmax :_setmaxrand set /a maxrand=%random% if %maxrand% LSS 10000 GOTO _setmaxrand set /a min=%random%%%7999 set /a range=%max%-%min% set /a minrand=%random%%%9999 set /a rangerand=%maxrand%-%minrand% set /a rand=%random%%%3 set /a number=(((%random% - %minrand%) * %range%) / ((%rangerand% + %min%) ^^ %rand%)) if %number% LSS 9999 Call :_RandomNumber GOTO :EOF :_End
  7. Yes, you can do this with department pin codes that reset twice a day. I have a script somewhere for my student shard acounts that dose that. I'll see if I can dig it out.
  8. Profile Manager uses Apple push notifications ( like a iOS device) via apples servers the client to fetch new settings. You need some ports open to the OSX server to Apple's IP range and from the OSX client to apple's IP range. Also nested groups only works in 10.9.2 (I think) and server 3.1. So if using older version of 10.9 start by running all updates and installing latest version of server.
  9. Excellent news.
  10. What about update on "Person ID"? Mainly looking for this for staff as there is no unique identifier. Student update by "person ID" would also be good but we have admission number for now. Please add this support.
  11. Look at the spec for these devices our science department use. That is only 802.11b. No support for eaven 802.1X and the units are not that old 2011 ish with a new one coming out soon with the same WiFi spec: http://www.dataharvest.co.uk/distributor/files/documents/loggers/2020/d0233_5_easysense_vision_manual.pdf There defiantly are new 802.11b devices out there. LOL
  12. New SSID for BYOD and then look at routing with a ACL. What type of core switch do you have? Dose it support VLANS and routing?
  13. Cool. I have routing between VLANs with a Access Control List letting traffic through to Apple print server. My Wi-Fi system is Aruba with a MDNS proxy service called Airgroup. There are free Linux MDNS setups that have a NIC on each subnet, but luckily for me my Aruba Wi-Fi dose that for me.
  14. Are you still looking for this functionality? What make and modal of MFD's and what version of Frog? (Frog3 or FrogOS)
  15. We are on the SWGfL and have Smoothwall on top of that. Smoothwall WITH 802.1X authentication works perfectly and transparently for BYOD. Then traditional NTLM and Kerberos can be done on the Smoothwall for the traditional networked PC's and Apple Macs. SWGfL do have a transparent proxy but you will loose the per user audit trail, as SWGfL don't log per user.
  16. Yes, this problem dose my head in. Been on my todo fix list for years. I always thought it was the certificates expiry date that was the problem.
  17. No you will need a new BYOD VLAN/subnet where the Smoothwall acts as the DHCP server. You authenticate through WiFi and using 802.1x it speaks to Smoothwall that then speaks to AD to check credentials. Then Smoothwall uses 802.1x to link to its DHCP table. This links the user to the device IP/MAC address. Then Smoothwall is set as default gateway so acts at transparent proxy using its DHCP table as an auth lookup. So it needs it's own VLAN where Smoothwall is gateway and DHCP server.
  18. I have set this up and it works really well. You are going to need full Smoothwall though I'm afraid. Have you seen the article on this blog. Followed this to setup for my Smoothwall with 802.1x for BYOD and work excellently. Worth the price for full Smoothwall. http://www.davesdowntime.co.uk/?p=513
  19. Have a read through these two sets of notes. It might help you get your head round the setup. http://www.rm.com/_RMVirtual/Media/Downloads/Switch_configuration.pdf http://www.rm.com/_RMVirtual/Media/Downloads/Notes-BYOD.pdf Hope that helps you.
  20. Sorry to drag this tread back up but FYI: Imapcopy unfortunately doesn't support SSL used in office 365. So to make it work it needs to be used in conjunction with Stunnel. See link: http://manurevah.com/blah/en/p/Migrate-emails-with-Imapcopy
  21. I was looking into the exact same thing today. Have you seen the article on this blog. Looks very interesting, but not tried it out yet myself. http://www.davesdowntime.co.uk/?p=513
  22. Did you ever get the urls to whitelist and get google play store to work? I am also looking for the URLs.
  23. We have stopped purchasing IWB’s and have gone for the large touch screens now available. After looking at several brands and testing different types we are currently purchasing the Sahara Clevertouch 65”, 55” and (for the really small classes) 46” screens. We found the 65” screens to be large enough as the image is much sharper than a traditional projectors. 55" was just a bit to small. Products in Large Format Interactive Displays | Sahara Presentation Systems PLC We made shore these were all Sahara Clevertouch 3rd generation so that they come with the freeze frame option like most projectors do. Teachers really missed this on the first test screen we purchased, as some touch screens don’t have this function. We purchased them from Hugh Symons in Bournemouth: Audio & Visual Products & Services Some points for you to consider about these type of screens. a. General feedback on the screen was very good, with everyone agreeing the screen was much nicer to look at and easier to read text on than a projector and IWB. b. The cost of the screen was £1-3k depending on size, but these costs are already coming down. It should work out cheaper than a projector/IWB over the lifespan of the product. c. The screen is fitted with toughened glass and is very hard to break; the whole unit is designed to be very rugged. d. The flow and continuity of teaching is greatly improved as there is little need to use a mouse, you do not stand in the beam of the projector, and there are no shadows cast on the screen. e. The board is supplied with a pen but works with any touch implement as it uses optical recognition. The only downside of this is that bracelets or a fly walking on the board are also detected, but this is normally not a major issue. f. Sound quality on the board is very good, and a dedicated set of desktop speakers should not be needed. g. The board only comes with one remote and there are no physical power or volume buttons on the screen itself, which could cause problems if the remote is lost or misplaced. h. The board does come with its own IWB software called Lynx, but our school decided to use a standardised IWB solution across the site. We have started a big push to use Open Sankoré a free interactive whiteboard software on all of our new screens. Open Sankoré | The Free Interactive Whiteboard Software i. We had issues with some staff persistence to use Interactive Whiteboard Software licenced only to run if it is used on a machine connected to the board it was sold with(i.e. Starboard with a Hitachi board, ActivStudio with a Promethean board and Notebook with a Smart board). We didn’t want Lynx IWB software to add to that so deliberately decided not to installed it.
  24. Yes it's under Third Party Reporting. But your SIMS user must have access to Third Party Reporting Role to see it.
×
×
  • Create New...