Archive

Archive for the ‘service-is-testing-troubleshooting-debugging’ Category

Bad audio quality in Moodle Kaltura recordings on iMacs under ambient sound conditions. A running log (closed)

  1. Symptom: See title.
  2. Cause: While speakers of the 3.5 mm headset take over from the iMac speakers, when plugged in, the 3.5 mm headset micro does not disable the webcam micro. The webcam micro remains the recording source for Moodle Kaltura (mac os x.6, safari 6, flash 10).
  3. Possible solutions:
      1. 1st choice: is there a way for the admin to override this permanently?
      2. 2nd choice: is there a way for the end user to override this on a case-by-case basis?
      3. "The Califone 3066AV is compatible with both Windows and Mac audio outputs (but is not compatible with iMacs)." ("The Wow starts now!").. Do we have to tie up our boom and lavalier microphones for this?
      4. Try the flash settings by right clicking in the video window, selecting the microphone icon, then choosing the external (= non-webcam) microphone for input.
      5. kaltura flash microphone settings0kaltura flash microphone settings
      6. Fail. The real culprit is the iMacs line-in audio-in for which you need a preamp to get it to work with analog microphones. Preamps seem to start at $40, but for that I can get a PC webcam (Microphone included). 

How to work around flat flush-left nested lists in Windows Live Writer

  1. Windows Live Writer (2012), in WYSIWYG  mode under the “edit” tab, conveniently interprets “tab” keys, when issued within an <ol>/<ul>, as, i.e. converts them into nested lists.
  2. However, Windows Live Writer does not horizontally indent the nested lists. Rather the lists appear “flat” flush left –(restart in ) only numbering and vertical  indentation, like so: image
  3. The underlying source code feature is that <li> get immediately closed, before the nested <ol> gets even opened, as you can see here: image
  4. You can force the indented view by wrapping the <li></li> around the nested <ol></ol?, like so: image
  5. The resulting look with horizontal indentation: image
  6. Unfortunately, to make matters worse, certain work with lists in the “edit” mode make them revert back to the default “flat”view. So you often have to redo your work under the source code tab.

How to work around broken links and visible “Machine generated alternative text”issues with images from MS-OneNote in Windows Live Writer

  1. Problem: Sometimes when you use Windows Live Writer (2012) to post images copied from MS-OneNote (2010, 2013), the result (on WordPress) can get messed up, like so (post has since been fixed as described below): clip_image001
    1. The image is missing (“src=” link broken).
    2. The “alt=” text is visible instead (and you did not want to post this “alt=”text anyway. (MS-OneNote OCRs images to make the text therein searchable; this text is put into the “alt”when pasting from MS-OneNote).
  2. Root cause:
    1. Windows Live Writer converts the pasted content by
      1. removing the “alt=”Machine generated alternative text: [deleted for brevity]”
      2. creating from the pasted content thumbnail images
      3. which it links in the “src=” tag, and links the thumbnail image to the full-size original image.
    2. If something – unclear what – prevents this conversion, Unfortunately, this is not obvious from the “edit” tab view or elsewhere within Windows Live Writer. But when posted, will result in “Machine generated alternative text” from MS-OneNote in place, but even  break the image src link: image.
    3. What exactly triggers (and would allow you to force) a successful conversion within Windows Live Writer I do not know. However, there is a simple:
  3. Workaround:
  1. After pasting your images, be patient : The trick seems to be to give Windows Live Writer enough time (more apparently if you have pasted multiple images) to finish
  2. Things you can look for in Windows Live Writer to make sure the conversion is finished:
      1. edit tab: you can tell the difference by the resizing of the image on the edit tab:
        1. before: image
        2. after (= conversion finished): image
      2. source code  tab: A somewhat radical solution, but here beneficial  is that the conversion removes the imported “alt” text of the image.
        1. before: alt=”Machine generated alternative text: [deleted for brevity]” src=”$clip_image006.jpg”
        2. after: alt=”clip_image006″ src=”$clip_image006_thumb.jpg”

Enterprise Library Logging Sample

Using Enterprise Library (still on 5), You can declaratively configure the logger properties (including desired formatting, see Textformatter template below)) in the app.config’s appsettings:

  <loggingConfiguration name="Logging Application Block" tracingEnabled="true"
  defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">   <listeners>    <add name="Event Log Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    source="Enterprise Library Logging" formatter="Text Formatter 2"
    log="" machineName="." traceOutputOptions="None" />    <add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    fileName="%AppData%\trpsoft\langlabemailer\trace-rolling.log"
    footer="" formatter="Text Formatter" header="" rollFileExistsBehavior="Increment"
    rollInterval="Day" rollSizeKB="1000" maxArchivedFiles="10" traceOutputOptions="None" />    <add name="Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    fileName="%AppData%\trpsoft\langlabemailer\exception.log" header=""
    footer="" formatter="Text Formatter" traceOutputOptions="None" />    <add name="Rolling Flat File Trace Listener 2" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    fileName="%AppData%\trpsoft\langlabemailer\exception-rolling.log"
    footer="" formatter="Text Formatter" header="" rollFileExistsBehavior="Increment"
    rollInterval="Hour" rollSizeKB="100" maxArchivedFiles="10" filter="All" />   </listeners>   <formatters>    <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    template="Timestamp	 {timestamp}	Message	 {message}	Category	 {category}	Priority	 {priority}	EventId	 {eventid}	Severity	 {severity}	Title	{title}	Machine	 {localMachine}	App Domain	 {localAppDomain}	ProcessId	 {localProcessId}	Process Name	 {localProcessName}	Thread Name	 {threadName}	Win32 ThreadId	{win32ThreadId}	Extended Properties	 {dictionary({key} - {value})}"
    name="Text Formatter" />    <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    template="Timestamp: {timestamp}{newline}
Message: {message}{newline}
Category: {category}{newline}
Priority: {priority}{newline}
EventId: {eventid}{newline}
Severity: {severity}{newline}
Title:{title}{newline}
Machine: {localMachine}{newline}
App Domain: {localAppDomain}{newline}
ProcessId: {localProcessId}{newline}
Process Name: {localProcessName}{newline}
Thread Name: {threadName}{newline}
Win32 ThreadId:{win32ThreadId}{newline}
Extended Properties: {dictionary({key} - {value}{newline}
)}"
    name="Text Formatter 2" />   </formatters> 
   <categorySources>    <add switchValue="All" name="General">     <listeners>      <add name="Rolling Flat File Trace Listener" />     </listeners>    </add>    <add switchValue="All" name="Exceptions">     <listeners>      <add name="Event Log Listener" />      <add name="Rolling Flat File Trace Listener 2" />     </listeners>    </add>   </categorySources>   <specialSources>    <allEvents switchValue="All" name="All Events" />    <notProcessed switchValue="All" name="Unprocessed Category" />    <errors switchValue="All" name="Logging Errors &amp; Warnings">     <listeners>      <add name="Event Log Listener" />     </listeners>    </errors>   </specialSources>  </loggingConfiguration>  <exceptionHandling>   <exceptionPolicies>    <add name="Log and Rethrow">     <exceptionTypes>      <add name="All Exceptions" type="System.Exception, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
      postHandlingAction="NotifyRethrow">       <exceptionHandlers>        <add name="Logging Exception Handler" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        logCategory="Exceptions" eventId="100" severity="Error" title="Enterprise Library Exception Handling"
        formatterType="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.TextExceptionFormatter, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling"
        priority="0" />       </exceptionHandlers>      </add>     </exceptionTypes>    </add>   </exceptionPolicies>  </exceptionHandling>  <appSettings> 

Import and call the logger like so:

using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging;  

using Microsoft.Practices.EnterpriseLibrary.Logging;  

Logger.Write("regex:RegExRecordingFileGroup - target:" + "\t" + _filenamenoext + "\t" + strGroups); 

Which outputs: image and

image,

the  latter can be easily imported and analyzed in MS-Excel:

image

These are obviously only the simplest examples, study the Enterprise Library documentation for more customization

ScreenToGif Debugging: Object reference not set to an instance of an object (#7)

  1. Trying to contribute a tiny bit to the development of this great utility ScreenToGif:
  2. 1st version: image
    1. crashes on pressing “stop”: image
    2. the Log
    3. Title: NullPointer in the Stop function 7
      Message: Object reference not set to an instance of an object.
      Source: ScreenToGif
      TargetSite: Void Stop()
      StackTrace:    at ScreenToGif.Legacy.Stop()
      Date/Time: 7/3/2014 12:55:16 PM
      ==============================
  3. Newer version: image
    1. does not hang on “stop”
      1. after adding overlay text (great new feature!), image
        1. seems to hang on pressing “Done” with “Analizing [sic] Unchanged Pixels”
        2. crashes on pressing window close: image
        3. Maybe I was just not patient enough? for:
      2. without adding overlay pixels:
        1. seems to also take a long time (2-3minutes analyzing, without a progress bar, or any other indication that the program is still working and has not crashed – the couple of minutes “Processing” seem to go by faster, thanks to the progress bar and frame counter) for a 5fps 1073*810, about 300frames, but hey! It works:image
        2. Plus you can now open the resulting GIF file directly from the creator.
        3. Actually, when I click “Stop” (I realize  I am supposed to click “Close”), I still get a NullReferenceException (#9), probably should not: image
    2. No log has been outputted with the new version .

Web browser popup blocker exceptions need configuring

image

  1. Which computers
    1. This I found on the Reception desk
    2. but isn’t that then also wrong on all student pcs which have the same base image?
  2. Which exceptions missing: I noticed immediately:
    1. outlook.com
    2. www.uncc.edu should read uncc.edu
  3. Which browsers
    1. Example is IE9,
    2. But are others different?

Our tutorplayer installation which comes with Sanako study 1200 tutor on the teacher computer is broken

  1. image
  2. What’s with the non-existent path hard-coded here? Missing path delimiter? But that is not enoguh to fix the path: There is a student.settings in C:\ProgramData\Sanako\Study\Student\Tutor.Settings – not sure why tutorplayer is not accessing this file.
  3. Which is double annoying since I just had to enable MFF as default recording save format for some teachers that need dual track support which is buggy with MP3.

No usable dual track audio from Sanako Study 1200 version 7 when saving as MP3?

  1. We have not been using the dual track recording capabilities of the Sanako much here yet, or have relied on the diachronic separation of channels that the Sanako voice-insert mode provides. Now, however, we want to apply the Sanako to consecutive interpreting in our MA program where there is more of a need for the reviewing student/grading teacher to switch between source and target language on the recorded dual-track audio.
  2. As far as I remember, dual track recording, one of the core features of the digital audio lab, used to work out of the box in Sanako (up to version 5 on XP?), but to my surprise, no more when I saved a student exercise, the left and right channel were identical (and the source and interpreter voices very hard to separate, the entire interpretation impossible to follow).
    1. I had noticed before that with version 7 (at least, we skipped 6) all recording was dual channel, but simply duplicated the left and right audio channel (isn’t this a waste of bandwidth and storage resources?).
  3. I tested our 7.1 installation (on Windows 7 64-bit), by changing the advanced collection settings, for an interpreting audio file, clapping from the teacher station:
  4. First I changed the tracks to be saved:
  5. Test1: image.This mixes student and program down onto each channel: image
  6. Test 2: clip_image004, Program track only, as expected (no clapping)clip_image005
  7. Test 3: clip_image006 Student track, as expected (only clapping – pretty much)clip_image007
  8. Workaround: After trying whether I can save manually from the student station, it occurred to me to change the file format also
    1. WMA:
      1. dual track
        1. works with “Save AS” from the student.exe (where the mp# options is conspicuously absent, or am I missing something): image
        2. won’t work with “collect” from the tutor.exe: both tracks (saving both is – fortunately – only an option for “save as“ WMA from the  student exe. You can also save only the student track as WMA) get mixed down to one (and the student is far too soft) , as you can witness here: image
      2. WMA is a technically nice, efficient (small file size)  and widely supported format, but does require an add-on installation on the MacOS X, not to mention mobile devices.
      3. WMA on Windows plays in Windows Media Player, but from version 12, Windows Media Player has no easy way to adjust the balance anymore, you have to dig relatively deeply into the OS (mmsys.cpl) itself.
    2. MFF:
      1. dual track works also (saving single track is actually not an option in this format)both using
        1. the student recorder “Save as” (which can also mix both tracks, see above)
        2. “collect” from the tutor.exe: you can fade in the left and right channel with the balance tool that you find in the student recorder to the left of the timeline.
      2. Unfortunately,
          1. the file size quickly gets out of hand: image
          2. and for no obvious reason, the biggest here is 12 times the size, but not longer than the smallest, and also only a 5-minute recording (I know that mff stores also the user’s bookmark information, but  this can hardly be the culprit): image
          3. compare this with how WMA compresses: image
        1. MFF is a proprietary format, which only the Sanako recorder can play. This may be a nice way to get more adoption of the free Sanako student recorder which is great for language learning. However, I had not originally planned on forcing my users to use it who are most comfortable with mp3.
    3. In addition, I now have a the problem with how to switch the Sanako default collection to MFF for interpreting teachers without confusing regular users.