I listened to these over and over again - beautiful and inspiring.
Baby Please Don't Go
I'm Taking Chances A Blues in E
Both by Kenny Wilson.
If my wildest dreams come true, I'll play like this some day.
Wednesday, February 22, 2012
Wednesday, February 15, 2012
IIS7 FastCgiModule configuration
I won't be using FastCgiModule on IIS7. I had hoped to use it to run Perl scripts and, perhpas, avoid faults I have experienced with the CgiModule on IIS7 on Windows 7, but after several days searching and trying, I did not have any significant progress towards a working solution and had found no documentation from Microsoft that described how the module works or how to do anything with it other than run PHP, so I decided to cut my losses and stop the effort.
Instead, I will use Apache HTTP Server.
There are many examples of configuring IIS7 for FastCGI/PHP, but I am interested in Perl and, in particular, Strawberry Perl.
Enabling FastCGI in IIS7 is easy, just select the CGI feature.
I haven't found thorough documentation of the configuration of FastCGI from Microsoft. Maybe my searching or persistence are insufficient, but all I have seen from them is marketing, how to enable it and examples of configuration for PHP.
Many people have posted examples and instructions for configuration for specific purposes, but these generally present what to do without explaining why or how it works or what the alternatives are. Most of these I have found are for PHP or ActiveState Perl and mostly for older versions of the module and IIS.
One clue that at least got my toe in the water (i.e. enabled me to run perl with arguments) was this post on Catalyst. It showed the unusual (in my experience) feature of separating the executable from its arguments with a vertical bar rather than a space, as is done almost everywhere else. As usual with such examples, there was no explanation.
So, in the Executable field of the Edit Module Mapping window of IIS Manager for the FastCgiModule module, one can put:
'|'
Mysteriously, none of "%s%", %s% or %s get expanded in this context, as they do in the same field for the CgiModule. Obviously, the syntax and semantics of the Executable field are module specific.
So, I wonder what all the possibilities are and how they relate to the specific query being processed.
I wonder where Microsoft has documentation of their FastCGI feature, beyond how to enable it.
The Adding Handlers (add) page really should say more about how the text in the scriptProcessor attribute is parsed, what substitutions are done and how it is processed. If this is, as I suspect it is, module specific, then this should be stated and the documentation of the individual modules should provide details of what the module does with the attribute value.
The instructions at CosmicScripts.com refer to C:\windows\system32\inetsrv\fcgiext.ini but there is no such file on my Windows7 system, even though I have the FastCgiModule module installed and configured and executing Perl script. Although this page lists IIS7, the configuration page says "coming soon" for IIS7. I note also that the FCGI::IIS module documentaiton says IIS7 is supported, and refers to the CosmicScripts site for configuration instructions.
The environment of the script I have running has a variable named _FCGI_X_PIPE. This is the only variable that appears to be relevant to FCGI. Searching Microsoft for references to this variable name, there are two Japanese article found and KB980363, which provides a brief description. There are only 17 hits searching MSDN, and they almost all give the same information. None of them describe how the interface works.
this post mentions where IIS7 keeps configuration of the FastCgiModule module: in applicationHost.config, along with other IIS configuration. That file exists on my Windows7 system with IIS7, and it does have some of my configuration for the FastCgiModule module, though it is hard to be sure it is all there.
After many hours of searching, I have found so little other than examples of how to configure for PHP that I am not inclined to pursue using IIS/FastCgiModule with Perl.
Instead, I will use Apache HTTP Server.
There are many examples of configuring IIS7 for FastCGI/PHP, but I am interested in Perl and, in particular, Strawberry Perl.
Enabling FastCGI in IIS7 is easy, just select the CGI feature.
I haven't found thorough documentation of the configuration of FastCGI from Microsoft. Maybe my searching or persistence are insufficient, but all I have seen from them is marketing, how to enable it and examples of configuration for PHP.
Many people have posted examples and instructions for configuration for specific purposes, but these generally present what to do without explaining why or how it works or what the alternatives are. Most of these I have found are for PHP or ActiveState Perl and mostly for older versions of the module and IIS.
One clue that at least got my toe in the water (i.e. enabled me to run perl with arguments) was this post on Catalyst. It showed the unusual (in my experience) feature of separating the executable from its arguments with a vertical bar rather than a space, as is done almost everywhere else. As usual with such examples, there was no explanation.
So, in the Executable field of the Edit Module Mapping window of IIS Manager for the FastCgiModule module, one can put:
Mysteriously, none of "%s%", %s% or %s get expanded in this context, as they do in the same field for the CgiModule. Obviously, the syntax and semantics of the Executable field are module specific.
So, I wonder what all the possibilities are and how they relate to the specific query being processed.
I wonder where Microsoft has documentation of their FastCGI feature, beyond how to enable it.
The Adding Handlers (add) page really should say more about how the text in the scriptProcessor attribute is parsed, what substitutions are done and how it is processed. If this is, as I suspect it is, module specific, then this should be stated and the documentation of the individual modules should provide details of what the module does with the attribute value.
The instructions at CosmicScripts.com refer to C:\windows\system32\inetsrv\fcgiext.ini but there is no such file on my Windows7 system, even though I have the FastCgiModule module installed and configured and executing Perl script. Although this page lists IIS7, the configuration page says "coming soon" for IIS7. I note also that the FCGI::IIS module documentaiton says IIS7 is supported, and refers to the CosmicScripts site for configuration instructions.
The environment of the script I have running has a variable named _FCGI_X_PIPE. This is the only variable that appears to be relevant to FCGI. Searching Microsoft for references to this variable name, there are two Japanese article found and KB980363, which provides a brief description. There are only 17 hits searching MSDN, and they almost all give the same information. None of them describe how the interface works.
this post mentions where IIS7 keeps configuration of the FastCgiModule module: in applicationHost.config, along with other IIS configuration. That file exists on my Windows7 system with IIS7, and it does have some of my configuration for the FastCgiModule module, though it is hard to be sure it is all there.
After many hours of searching, I have found so little other than examples of how to configure for PHP that I am not inclined to pursue using IIS/FastCgiModule with Perl.
Saturday, February 11, 2012
gmusicbrowser on Windows7
This is a long ramble describing how I installed Perl modules Glib and Gtk2 on Strawberry Perl (This is perl 5, version 12, subversion 3 (v5.12.3) built for MSWin32-x86-multi-thread) on Windows 7 Professional 64bit. I like gmusicbrowser and lately must use Windows on my laptop, but there is no binary distribution for Windows and it needs Glib and Gtk2 modules, which I didn't have installed, so...
There were many false starts and errors along the way. There seems to be some confusion about getting Glib and Gtk2 running on Windows. After all, what is required is not very complicated (or, I should say that others have done all the hard work and, while a simple 'cpan install Glib' and 'cpan install Gtk2' don't work, there isn't much that needs to be done in order to get it goind. I have edited out most of my failed attempts leaving, I hope, a fairely simple procedure including a few particularly relevant errors that might help others searching for solutions.
I already had Strawberry Perl installed.
Gmusicbrowser uses Glib and Gtk2 modules. These are not bundled with Strawberry Perl.
Various people suggest "ppm install Bundle::Gnome2" as an easy way to install Gtk2 on Windows. I tried that. It installed the Bundle::Gnome2.pm module, but none of the modules it referenced. Maybe it works OK on ActiveState Perl but, despite various suggestions it works with Strawberry, it did nothing for me.
So I downloaded the "all-in-one" bundle of Gtk version 2.22 from www.gtk.org and unzipped it to C:\GTK. Then edited Windows environment variables, adding C:\GTK\bin to PATH and setting LIB to 'C:\GTK\lib'.
Eventually, following a suggestion of Khen1950fx on PerlMonks, I began having some success installing Perl modules. I installed them in the order he recommended:
All went well until the Cairo module. With this I had trouble because I had initially installed the 64bit version of the Gtk all-in-one bundle (I have 64bit Windows). The linker failed to link against the 64bit library, reporting many undefined symbols. I removed the 64bit bundle and installed the 32bit bundle, after which the Cairo module built without problems. Thanks to Mithaldu and TonyC over at #win32 at mibbit.com for helping me solve this problem.
Glib had a test failure - only one on a new feature, so I did a force install.
Pango wasn't linking against the Cairo library, reporting several unresolved symbols:
Then the Perl Gtk2 module install failed:
After all this, I ran gmusicbrowser.pl and the GUI came up!! Now all I have to do is get it to make some noise!!
I loaded up my music library with no obvious problem, but when I tried to play a track nothing happened (or maybe there was an error, I foget exactly what happened). The problem was that there was no audio configured or, more correctly, icecast server was configured and nothing else available.
I installed mpg123. There is a windows binary available. I got the 32bit binary and put it in C:\Program Files (x86)\mpg123, then added this folder to the path environment variable. I was then able to play mp3 files with mpg123, so expect gmusicbrowser can too. I started it up and checked the audio settings but mpg123/ogg123/flac123 was still greyed out. Then I noticed that it is mpg321 NOT mpg123. I didn't find an mpg321 binary for windows, so I had a look at how to get gmusicbrowser to run mpg123.
gmusicbrowser_123.pm seems to be the relevant file. I added 'mpg123' as a command for mp3 files in %cmdname. Tried again and no luck. Then I changed the path separator in the init sub from ':' to ';' (only a quick and dirty to test - need a better solution than this), and tried again. The mpg321/ogg123/flac123 was now available.
So, I selected the mpg321/ogg123/flac123 audio device and tried to play a track, but it reported that it couldn't. So, down in sub Play I added a branch for mpg123, and finally was able to play a track.
But, while the track played the gmusicbrowser GUI was not responding. And when the track finished perl crashed (so says Windows). So, there are more puzzles to solve...
There were many false starts and errors along the way. There seems to be some confusion about getting Glib and Gtk2 running on Windows. After all, what is required is not very complicated (or, I should say that others have done all the hard work and, while a simple 'cpan install Glib' and 'cpan install Gtk2' don't work, there isn't much that needs to be done in order to get it goind. I have edited out most of my failed attempts leaving, I hope, a fairely simple procedure including a few particularly relevant errors that might help others searching for solutions.
I already had Strawberry Perl installed.
Gmusicbrowser uses Glib and Gtk2 modules. These are not bundled with Strawberry Perl.
Various people suggest "ppm install Bundle::Gnome2" as an easy way to install Gtk2 on Windows. I tried that. It installed the Bundle::Gnome2.pm module, but none of the modules it referenced. Maybe it works OK on ActiveState Perl but, despite various suggestions it works with Strawberry, it did nothing for me.
So I downloaded the "all-in-one" bundle of Gtk version 2.22 from www.gtk.org and unzipped it to C:\GTK. Then edited Windows environment variables, adding C:\GTK\bin to PATH and setting LIB to 'C:\GTK\lib'.
Eventually, following a suggestion of Khen1950fx on PerlMonks, I began having some success installing Perl modules. I installed them in the order he recommended:
"Test::Harness", "Test::More", "Test::Number::Delta", "File::Spec", "Pod::Man", "Pod::Simple", "Text::Wrap", "Pod::Escapes", "ExtUtils::MakeMaker", "ExtUtils::PkgConfig", "ExtUtils::Depends", "Cairo", "Glib", "Pango", "Gtk2"I installed each module with 'cpan install Module::Name' in a command prompt window, except where there were problems. A few of them were already installed, but most were new to my system.
All went well until the Cairo module. With this I had trouble because I had initially installed the 64bit version of the Gtk all-in-one bundle (I have 64bit Windows). The linker failed to link against the 64bit library, reporting many undefined symbols. I removed the 64bit bundle and installed the 32bit bundle, after which the Cairo module built without problems. Thanks to Mithaldu and TonyC over at #win32 at mibbit.com for helping me solve this problem.
Glib had a test failure - only one on a new feature, so I did a force install.
Pango wasn't linking against the Cairo library, reporting several unresolved symbols:
Running Mkbootstrap for Pango ()
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 Pango.bs
C:\strawberry\perl\bin\perl.exe -MExtUtils::Mksymlists \
-e "Mksymlists('NAME'=>\"Pango\", 'DLBASE' => 'Pango', 'DL_FUNCS' => { Pang
o=>[] }, 'FUNCLIST' => [q[newSVPangoRectangle], q[SvPangoRectangle], q[gtk2perl_
pango_attribute_get_type], q[gtk2perl_pango_attribute_register_custom_type], q[g
tk2perl_pango_attr_iterator_get_type], q[gtk2perl_pango_layout_iter_get_type], q
[gtk2perl_pango_layout_line_get_type], q[gtk2perl_pango_script_iter_get_type]],
'IMPORTS' => { }, 'DL_VARS' => []);"
dlltool --def Pango.def --output-exp dll.exp
[ LD blib\arch\auto\Pango\Pango.dll ]
xs/PangoCairo.o:PangoCairo.c:(.text+0xaa6): undefined reference to `cairo_refere
nce'
xs/PangoCairo.o:PangoCairo.c:(.text+0xf7d): undefined reference to `cairo_font_o
ptions_copy'
xs/PangoCairo.o:PangoCairo.c:(.text+0x2042): undefined reference to `cairo_scale
d_font_reference'
collect2: ld returned 1 exit status
dmake.EXE: Error code 129, while making 'blib\arch\auto\Pango\Pango.dll'
XAOC/Pango-1.223.tar.gz
C:\strawberry\c\bin\dmake.EXE -- NOT OK
Failed during this command:
XAOC/Pango-1.223.tar.gz : make NO
I had to hack the Makefile for this one. I ran cpan interactively and did a 'make Pango', then 'look Pango' to drop into the build directory. I edited the Makefile, adding 'C:\GTK\lib\libcairo.dll.a' to the start of the list of libraries assigned to the EXTRALIBS and LDLOADLIBS variables, then ran 'dmake' and 'dmake test'. Note: 'dmake' not 'make'. I don't know what the difference is other than 'dmake' works and 'make' doesn't. Finally, with all tests run successfully, I installed with 'dmake install', then exited the sub-shell and cpan - all done with Pango.Then the Perl Gtk2 module install failed:
dlltool --def Gtk2.def --output-exp dll.exp [ LD blib\arch\auto\Gtk2\Gtk2.dll ] xs/GtkPrintContext.o:GtkPrintContext.c:(.text+0x1542): undefined reference to `c airo_reference' xs/GdkCairo.o:GdkCairo.c:(.text+0x6f2): undefined reference to `cairo_pattern_re ference' xs/GdkCairo.o:GdkCairo.c:(.text+0x8e3): undefined reference to `cairo_surface_re ference' xs/GdkCairo.o:GdkCairo.c:(.text+0x11ba): undefined reference to `cairo_rectangle ' collect2: ld returned 1 exit status dmake.EXE: Error code 129, while making 'blib\arch\auto\Gtk2\Gtk2.dll' XAOC/Gtk2-1.242.tar.gz C:\strawberry\c\bin\dmake.EXE -- NOT OK Failed during this command: XAOC/Gtk2-1.242.tar.gz : make NOThis looks familiar. Again, interactive cpan, make then look and edit the Makefile to add C:\GTK\lib\libcairo.dll.a to EXTRALIBS and LDLOADLIBS, after which dmake ran to successful completion, but dmake test gave errors:
C:\strawberry\cpan\build\Gtk2-1.242-wKFYdS>dmake test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0,
'blib\lib', 'blib\arch')" t/*.t
t/00.Gtk2.t ........................ 1/44 # Testing Gtk2 1.242
# Running against gtk+ 2.24.10
# Compiled against gtk+ 2.24.10
# and pango 1.29.4
t/00.Gtk2.t ........................ ok
t/01.GtkWindow.t ................... ok
t/02.GtkContainer.t ................ ok
t/Gdk.t ............................ 1/17 Gdk-WARNING **: gdk_set_sm_client_id b
lub at t/Gdk.t line 62.
Gdk-WARNING **: gdk_set_sm_client_id NULL at t/Gdk.t line 63.
t/Gdk.t ............................ ok
t/GdkCairo.t ....................... ok
t/GdkColor.t ....................... 1/18 Gdk-WARNING **: gdkcolor-win32.c:110:
DeleteObject failed: The operation completed successfully..
t/GdkColor.t ....................... ok
t/GdkCursor.t ...................... ok
t/GdkDisplay.t ..................... 1/24 Gdk-WARNING **: gdk_display_get_defaul
t_group not yet implemented at t/GdkDisplay.t line 67.
# Failed test at t/GdkDisplay.t line 77.
# got: ''
# expected: '1'
# Looks like you failed 1 test of 24.
t/GdkDisplay.t ..................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/24 subtests
(less 3 skipped subtests: 20 okay)
t/GdkDisplayManager.t .............. ok
t/GdkDnd.t ......................... ok
t/GdkDrawable.t .................... ok
t/GdkEvent.t ....................... ok
t/GdkGC.t .......................... ok
t/GdkImage.t .......................
t/GdkImage.t ....................... 1/23 # Failed test 'get_image_type()'
# at t/GdkImage.t line 10.
# got: 'shared'
# expected: 'normal'
Gdk-WARNING **: gdkcolor-win32.c:110: DeleteObject failed: The operation complet
ed successfully. at t/GdkImage.t line 56.
# Looks like you failed 1 test of 23.
t/GdkImage.t ....................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/23 subtests
t/GdkInput.t ....................... ok
t/GdkKeys.t ........................ ok
t/GdkPango.t ....................... ok
t/GdkPixbuf.t ...................... ok
t/GdkPixbufLoader.t ................ ok
t/GdkPixbufSimpleAnim.t ............ ok
t/GdkPixmap.t ...................... ok
t/GdkProperty.t .................... 1/49 Gdk-CRITICAL **: gdk_property_change:
assertion `type != GDK_TARGET_STRING' failed at t/GdkProperty.t line 38.
Gdk-CRITICAL **: gdk_property_change: assertion `type != GDK_TARGET_STRING' fail
ed at t/GdkProperty.t line 40.
Gdk-WARNING **: gdk_property_change: General case not implemented at t/GdkProper
ty.t line 42.
Gdk-WARNING **: gdk_property_change: General case not implemented at t/GdkProper
ty.t line 44.
t/GdkProperty.t .................... ok
t/GdkRegion.t ...................... ok
t/GdkRgb.t ......................... ok
t/GdkScreen.t ...................... ok
t/GdkSelection.t ................... ok
t/GdkVisual.t ...................... ok
t/GdkWindow.t ...................... 1/58 Gdk-WARNING **: gdk_window_set_group n
ot implemented at t/GdkWindow.t line 277.
Gdk-CRITICAL **: gdk_window_set_opacity: assertion `WINDOW_IS_TOPLEVEL (window)'
failed at t/GdkWindow.t line 316.
t/GdkWindow.t ...................... ok
t/GdkX11.t ......................... ok
t/GtkAboutDialog.t ................. ok
t/GtkAccelGroup.t .................. ok
t/GtkAccelLabel.t .................. ok
t/GtkAccelMap.t .................... ok
t/GtkAction.t ...................... ok
t/GtkActionGroup.t ................. ok
t/GtkActivatable.t ................. ok
t/GtkAdjustment.t .................. ok
t/GtkAlignment.t ................... ok
t/GtkArrow.t ....................... ok
t/GtkAspectFrame.t ................. ok
t/GtkAssistant.t ................... ok
t/GtkBin.t ......................... ok
t/GtkBindings.t .................... ok
t/GtkBox.t ......................... ok
t/GtkBuildable.t ................... ok
t/GtkBuildableIface.t .............. ok
t/GtkBuilder.t ..................... ok
t/GtkButton.t ...................... ok
t/GtkButtonBox.t ................... ok
t/GtkCalendar.t .................... ok
t/GtkCellEditable.t ................ GLib-GObject-CRITICAL **: Object class Edit
ableTest doesn't implement property 'editing-canceled' from interface 'GtkCellEd
itable' at C:/strawberry/perl/site/lib/Glib/Object/Subclass.pm line 233.
t/GtkCellEditable.t ................ ok
t/GtkCellLayout.t .................. ok
t/GtkCellLayoutIface.t ............. ok
t/GtkCellRenderer.t ................ ok
t/GtkCellRendererAccel.t ........... ok
t/GtkCellRendererCombo.t ........... ok
t/GtkCellRendererIface-Chaining.t .. ok
t/GtkCellRendererPixbuf.t .......... ok
t/GtkCellRendererProgress.t ........ ok
t/GtkCellRendererSpin.t ............ ok
t/GtkCellRendererSpinner.t ......... ok
t/GtkCellRendererText.t ............ ok
t/GtkCellRendererToggle.t .......... ok
t/GtkCellView.t .................... ok
t/GtkCheckButton.t ................. ok
t/GtkCheckMenuItem.t ............... ok
t/GtkClipboard.t ................... ok
t/GtkColorButton.t ................. ok
t/GtkColorSelection.t .............. ok
t/GtkColorSelectionDialog.t ........ ok
t/GtkCombo.t ....................... ok
t/GtkComboBox.t .................... ok
t/GtkComboBoxEntry.t ............... ok
t/GtkCurve.t ....................... ok
t/GtkDialog.t ...................... 1/33 Gtk-CRITICAL **: gtk_box_reorder_child
: assertion `GTK_IS_WIDGET (child)' failed at t/GtkDialog.t line 91.
Gtk-CRITICAL **: gtk_box_reorder_child: assertion `GTK_IS_WIDGET (child)' failed
at t/GtkDialog.t line 91.
Gtk-CRITICAL **: gtk_box_reorder_child: assertion `GTK_IS_WIDGET (child)' failed
at t/GtkDialog.t line 92.
Gtk-CRITICAL **: gtk_box_reorder_child: assertion `GTK_IS_WIDGET (child)' failed
at t/GtkDialog.t line 92.
Gtk-CRITICAL **: gtk_box_reorder_child: assertion `GTK_IS_WIDGET (child)' failed
at t/GtkDialog.t line 92.
Gtk-CRITICAL **: gtk_box_reorder_child: assertion `GTK_IS_WIDGET (child)' failed
at t/GtkDialog.t line 92.
t/GtkDialog.t ...................... ok
t/GtkDnd.t ......................... 1/6 Gdk-CRITICAL **: gdk_window_get_screen:
assertion `GDK_IS_WINDOW (window)' failed at t/GtkDnd.t line 55.
Gtk-CRITICAL **: gtk_drag_set_icon_pixmap: assertion `!mask || gdk_window_get_sc
reen (mask) == screen' failed at t/GtkDnd.t line 55.
Gtk-WARNING **: Could not find the icon 'gtk-add'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
http://icon-theme.freedesktop.org/releases at t/GtkDnd.t line 65.
Gtk-WARNING **: Cannot load drag icon from icon name gtk-add at t/GtkDnd.t line
65.
t/GtkDnd.t ......................... ok
t/GtkDrawingArea.t ................. ok
t/GtkEditable.t .................... ok
t/GtkEntry.t ....................... ok
t/GtkEntryBuffer.t ................. ok
t/GtkEntryCompletion.t ............. ok
t/GtkEventBox.t .................... ok
t/GtkExpander.t .................... ok
t/GtkFileChooser.t ................. skipped: this test is unreliable
t/GtkFileChooserButton.t ........... ok
t/GtkFileChooserDialog.t ........... ok
t/GtkFileChooserWidget.t ........... ok
t/GtkFileFilter.t .................. ok
t/GtkFileSelection.t ............... ok
t/GtkFixed.t ....................... ok
t/GtkFontButton.t .................. ok
t/GtkFontSelection.t ............... ok
t/GtkFrame.t ....................... ok
t/GtkGammaCurve.t .................. ok
t/GtkGC.t .......................... ok
t/GtkHandleBox.t ................... ok
t/GtkHBox.t ........................ ok
t/GtkHButtonBox.t .................. ok
t/GtkHPaned.t ...................... ok
t/GtkHRuler.t ...................... ok
t/GtkHScale.t ...................... ok
t/GtkHScrollbar.t .................. ok
t/GtkHSeparator.t .................. ok
t/GtkHSV.t ......................... ok
t/GtkIconFactory.t ................. ok
t/GtkIconTheme.t ................... 1/17 Gtk-WARNING **: Could not find the ico
n 'stock_edit'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
http://icon-theme.freedesktop.org/releases at t/GtkIconTheme.t line 26.
t/GtkIconTheme.t ................... ok
t/GtkIconView.t .................... ok
t/GtkImage.t ....................... ok
t/GtkImageMenuItem.t ............... ok
t/GtkIMContext.t ................... ok
t/GtkInfoBar.t ..................... ok
t/GtkInputDialog.t ................. ok
t/GtkInvisible.t ................... ok
t/GtkItemFactory.t ................. ok
t/GtkLabel.t ....................... ok
t/GtkLayout.t ...................... ok
t/GtkLinkButton.t .................. ok
t/GtkListStore.t ................... ok
t/GtkMenu.t ........................ ok
t/GtkMenuBar.t ..................... ok
t/GtkMenuItem.t .................... ok
t/GtkMenuShell.t ................... ok
t/GtkMenuToolButton.t .............. ok
t/GtkMessageDialog.t ............... ok
t/GtkMisc.t ........................ ok
t/GtkNotebook.t .................... ok
t/GtkObject.t ...................... ok
t/GtkOffscreenWindow.t ............. ok
t/GtkOptionMenu.t .................. ok
t/GtkOrientable.t .................. ok
t/GtkPageSetup.t ................... ok
t/GtkPaned.t ....................... ok
t/GtkPaperSize.t ................... ok
t/GtkPrintContext.t ................ ok
t/GtkPrintOperation.t .............. ok
t/GtkPrintOperationPreview.t ....... ok
t/GtkPrintSettings.t ............... ok
t/GtkProgressBar.t ................. ok
t/GtkRadioAction.t ................. ok
t/GtkRadioButton.t ................. ok
t/GtkRadioMenuItem.t ............... ok
t/GtkRadioToolButton.t ............. ok
t/GtkRange.t ....................... ok
t/GtkRc.t .......................... ok
t/GtkRecentAction.t ................ ok
t/GtkRecentChooser.t ............... ok
t/GtkRecentChooserDialog.t ......... ok
t/GtkRecentChooserMenu.t ........... ok
t/GtkRecentChooserWidget.t ......... ok
t/GtkRecentFilter.t ................ ok
t/GtkRecentManager.t ............... 1/36 Gtk-WARNING **: Could not find the ico
n 'stock_edit'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
http://icon-theme.freedesktop.org/releases at t/GtkRecentManager.t line
45.
t/GtkRecentManager.t ............... ok
t/GtkRuler.t ....................... ok
t/GtkScale.t ....................... ok
t/GtkScaleButton.t ................. ok
t/GtkScrolledWindow.t .............. ok
t/GtkSelection.t ................... ok
t/GtkSeparatorMenuItem.t ........... ok
t/GtkSeparatorToolItem.t ........... ok
t/GtkShow.t ........................ skipped: can only test interactively
t/GtkSimpleList.t .................. ok
t/GtkSimpleMenu.t .................. ok
t/GtkSizeGroup.t ................... ok
t/GtkSocket-GtkPlug.t .............. skipped: not appliciable on win32
t/GtkSpinButton.t .................. ok
t/GtkSpinner.t ..................... ok
t/GtkStatusbar.t ................... ok
t/GtkStatusIcon.t .................. 1/37 Gtk-WARNING **: Could not find the ico
n 'stock_edit'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
http://icon-theme.freedesktop.org/releases at t/GtkStatusIcon.t line 60.
t/GtkStatusIcon.t .................. ok
t/GtkStock.t ....................... ok
t/GtkStyle.t ....................... 1/125 Gdk-WARNING **: gdkdrawable-win32.c:6
41: SelectObject failed: The operation completed successfully. at t/GtkStyle.t l
ine 77.
Gdk-WARNING **: gdkdrawable-win32.c:644: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 77.
Gdk-WARNING **: gdkdrawable-win32.c:711: MaskBlt failed: The operation completed
successfully. at t/GtkStyle.t line 77.
Gdk-WARNING **: gdkdrawable-win32.c:714: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 77.
Gdk-WARNING **: gdkdrawable-win32.c:715: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 77.
Gdk-WARNING **: gdkdrawable-win32.c:641: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 78.
Gdk-WARNING **: gdkdrawable-win32.c:644: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 78.
Gdk-WARNING **: gdkdrawable-win32.c:711: MaskBlt failed: The operation completed
successfully. at t/GtkStyle.t line 78.
Gdk-WARNING **: gdkdrawable-win32.c:714: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 78.
Gdk-WARNING **: gdkdrawable-win32.c:715: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 78.
Gdk-WARNING **: gdkdrawable-win32.c:641: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 81.
Gdk-WARNING **: gdkdrawable-win32.c:644: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 81.
Gdk-WARNING **: gdkdrawable-win32.c:711: MaskBlt failed: The operation completed
successfully. at t/GtkStyle.t line 81.
Gdk-WARNING **: gdkdrawable-win32.c:714: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 81.
Gdk-WARNING **: gdkdrawable-win32.c:715: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 81.
Gdk-WARNING **: gdkdrawable-win32.c:641: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 82.
Gdk-WARNING **: gdkdrawable-win32.c:644: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 82.
Gdk-WARNING **: gdkdrawable-win32.c:711: MaskBlt failed: The operation completed
successfully. at t/GtkStyle.t line 82.
Gdk-WARNING **: gdkdrawable-win32.c:714: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 82.
Gdk-WARNING **: gdkdrawable-win32.c:715: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 82.
Gdk-WARNING **: gdkdrawable-win32.c:641: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 84.
Gdk-WARNING **: gdkdrawable-win32.c:644: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 84.
Gdk-WARNING **: gdkdrawable-win32.c:711: MaskBlt failed: The operation completed
successfully. at t/GtkStyle.t line 84.
Gdk-WARNING **: gdkdrawable-win32.c:714: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 84.
Gdk-WARNING **: gdkdrawable-win32.c:715: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 84.
Gdk-WARNING **: gdkdrawable-win32.c:641: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 90.
Gdk-WARNING **: gdkdrawable-win32.c:644: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 90.
Gdk-WARNING **: gdkdrawable-win32.c:711: MaskBlt failed: The operation completed
successfully. at t/GtkStyle.t line 90.
Gdk-WARNING **: gdkdrawable-win32.c:714: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 90.
Gdk-WARNING **: gdkdrawable-win32.c:715: SelectObject failed: The operation comp
leted successfully. at t/GtkStyle.t line 90.
t/GtkStyle.t ....................... ok
t/GtkTable.t ....................... ok
t/GtkTearoffMenuItem.t ............. ok
t/GtkTextBuffer.t .................. ok
t/GtkTextBufferRichText.t .......... ok
t/GtkTextChildAnchor.t ............. ok
t/GtkTextIter.t .................... ok
t/GtkTextMark.t .................... ok
t/GtkTextTag.t ..................... ok
t/GtkTextTagTable.t ................ ok
t/GtkTextView.t .................... ok
t/GtkToggleAction.t ................ ok
t/GtkToggleButton.t ................ ok
t/GtkToggleToolButton.t ............ ok
t/GtkToolbar.t ..................... ok
t/GtkToolButton.t .................. ok
t/GtkToolItem.t .................... ok
t/GtkToolItemGroup.t ............... ok
t/GtkToolPalette.t ................. ok
t/GtkToolShell.t ................... ok
t/GtkTooltip.t ..................... ok
t/GtkTooltips.t .................... ok
t/GtkTreeDnd.t ..................... ok
t/GtkTreeModel.t ................... ok
t/GtkTreeModelFilter.t ............. ok
t/GtkTreeModelIface.t .............. ok
t/GtkTreeModelSort.t ............... ok
t/GtkTreeSelection.t ............... ok
t/GtkTreeSortable.t ................ ok
t/GtkTreeStore.t ................... ok
t/GtkTreeView-Dnd.t ................ skipped: this test is interactive
t/GtkTreeView.t .................... ok
t/GtkUIManager.t ................... ok
t/GtkVBox.t ........................ ok
t/GtkVButtonBox.t .................. ok
t/GtkViewport.t .................... ok
t/GtkVolumeButton.t ................ ok
t/GtkVPaned.t ...................... ok
t/GtkVRuler.t ...................... ok
t/GtkVScale.t ...................... ok
t/GtkVScrollbar.t .................. ok
t/GtkVSeparator.t .................. ok
t/GtkWidget.t ...................... ok
t/pango-compat.t ................... ok
t/PangoAttributes.t ................ ok
t/PangoCairo.t ..................... ok
t/PangoContext.t ................... ok
t/PangoFont.t ...................... ok
t/PangoFontMap.t ................... ok
t/PangoFontset.t ................... ok
t/PangoGravity.t ................... ok
t/PangoLayout.t .................... ok
t/PangoMatrix.t .................... ok
t/PangoRenderer.t .................. ok
t/PangoScript.t .................... ok
t/PangoTabs.t ...................... ok
t/PangoTypes.t ..................... ok
t/set-scroll-adjustments-signal.t .. ok
t/signal-chaining.t ................ ok
t/tied-objects.t ................... ok
t/version-checks.t ................. ok
Test Summary Report
-------------------
t/GdkDisplay.t (Wstat: 256 Tests: 24 Failed: 1)
Failed test: 20
Non-zero exit status: 1
t/GdkImage.t (Wstat: 256 Tests: 23 Failed: 1)
Failed test: 1
Non-zero exit status: 1
Files=229, Tests=5068, 43 wallclock secs ( 2.86 usr + 0.72 sys = 3.57 CPU)
Result: FAIL
Failed 2/229 test programs. 2/5068 subtests failed.
dmake: Error code 255, while making 'test_dynamic'
There were only two failures reported (but several suspicous messages along the way). I don't know how to solve them and found nothing in a brief perusal of Google search results, so I installed anyway and hope for the best.After all this, I ran gmusicbrowser.pl and the GUI came up!! Now all I have to do is get it to make some noise!!
I loaded up my music library with no obvious problem, but when I tried to play a track nothing happened (or maybe there was an error, I foget exactly what happened). The problem was that there was no audio configured or, more correctly, icecast server was configured and nothing else available.
I installed mpg123. There is a windows binary available. I got the 32bit binary and put it in C:\Program Files (x86)\mpg123, then added this folder to the path environment variable. I was then able to play mp3 files with mpg123, so expect gmusicbrowser can too. I started it up and checked the audio settings but mpg123/ogg123/flac123 was still greyed out. Then I noticed that it is mpg321 NOT mpg123. I didn't find an mpg321 binary for windows, so I had a look at how to get gmusicbrowser to run mpg123.
gmusicbrowser_123.pm seems to be the relevant file. I added 'mpg123' as a command for mp3 files in %cmdname. Tried again and no luck. Then I changed the path separator in the init sub from ':' to ';' (only a quick and dirty to test - need a better solution than this), and tried again. The mpg321/ogg123/flac123 was now available.
So, I selected the mpg321/ogg123/flac123 audio device and tried to play a track, but it reported that it couldn't. So, down in sub Play I added a branch for mpg123, and finally was able to play a track.
But, while the track played the gmusicbrowser GUI was not responding. And when the track finished perl crashed (so says Windows). So, there are more puzzles to solve...
Thursday, November 24, 2011
Perl CGI on IIS
This is just a note to myself, as I tend to forget how to do this...
Install the IIS CGI module: Control Panel, Programs and Features, Turn Windows Features On or Off...
Enable CGI in IIS:
Install the IIS CGI module: Control Panel, Programs and Features, Turn Windows Features On or Off...
Enable CGI in IIS:
- Open IIS Manager
- Select server
- Double click ISAPI and CGI Restrictions
- Click Edit Feature Settins...
- Check Allow unspecified CGI modules (or enter the specific ones you want)
- Select site
- Open Handler Mappings
- request path: *.pl
- executable: C:\strawberry\perl\bin\perl.exe "%s" %s
- name: CGI script
Monday, October 17, 2011
WRVS4400N v2 VPN configuration
I have a WRVS4400N V2 Wireless-N Gigabit Security Router with VPN from Cisco Small Business.
This box has many features but they do not include an ADSL interface. For that I have a Linksys AG300 DSL Modem / Router.
What I couldn't find documentation on is how to configure these two devices to be able to establish a VPN connection from the Internet. But, after much trial and error I have it working.
The AG300 has been serving our office LAN for several years and I didn't want to disrupt any existing configuration or services.
I connected the WAN port of the WRVS4400N to a port on our LAN - via a switch to one of the AG300 LAN ports. The WRVS4400N WAN port picked up an IP on our LAN from the DHCP server on the AG300.
I set the WAN port MTU configuration to Manual (Setup, WAN) and MTU size to 1000. This on the basis that the VPN traffic will be tunnelled so the MTU better be less than 1500. 1000 is no doubt lower than necessary but I didn't want failure for the sake of a few bytes. I can tune it up later.
I set the timezone and enabled daylight savings time, with the default NTP server(s).
I set up the wireless network, though this is probably irrelevant at this point. My testing was all with wired systems. All I did was set an SSID Name for SSID1 (Wireless, Basic Settings), and set security mode to WPA2-Personal Mixed and a Shared Secret (Wireless, Security Settings).
IPSec VPN I left disabled (default).
I created one VPN Client Account: a username and password and left Allow User to Change Password at default: no.
I generated a certificate and exported for client.
I changed the admin account password.
I did all this from a laptop plugged into one of the LAN ports on the WRVS4400N. The laptop picked up an IP from the DHCP server on the WRVS4400N on the default 192.168.1.0/24 network.
I then downloaded and installed the QuickVPN client from http://www.cisco.com/en/US/prod/routers/quick_vpn.html. I was using a laptop running Windows 7 64bit for testing, so I downloaded WRVS4400N Wireless-N Gigabit Security Router - VPN V2.0. I ran setup as administrator and accepted all defaults. The laptop was in a workgroup, not a domain member on our LAN.
I copied the WRVS4400N certificate to the QuickVPN folder (C:\Program Files (x86)\Cisco Small Business\QuickVPN Client.
I connected the test client (with QuickVPN) to our internal LAN and configured a QuickVPN profile to access the WRVS4400N directly (ie at its internal WAN port address, thus not traversing our Internet DSL modem / router). This connected successfully and I was able to RDP to a test system on the LAN side of the WRVS4400N - success!!! of a sort.
Next I created a new QuickVPN profile, the same as the first except for specifying the external address of the AG300 (i.e. our public / Internet IP address). I tried to connect and this failed.
The failure wasn't too surprising. There was nothing on the AG300 that would allow the connection attempts to reach the WRVS4400N WAN port. Unfortunately, the WRVS4400N documentation said nothing other than to configure our DSL router / modem according to instructions from our ISP and our ISP knows nothing of the WRVS4400N, VPNs or anything else they don't supply and almost nothing about what they do supply, so I didn't even bother calling them.
After some searching I found a post (https://supportforums.cisco.com/thread/2108785) indicating that some ports should be opened on the DSL modem / router and that this sometimes works, though it is an unsupported configuration (cryptic comment about there should only be one gateway). Anyway, I added ports 443, 500, 4500 and 60443, all TCP, to the port forwarding list on the AG300, all forwarded to the WRVS4400N WAN interface, but still no luck.
Then I got out the sniffer and compared the successful internal connection with the failing external connection and noted that the internal connection had an exchange on UDP port 500 and the failing one had inbound packets to that port but no replies. So, I forwarded UDP port 500 as well and finally got a VPN connection via the external interface of the AG300. Success at last!! I had almost given up.
This box has many features but they do not include an ADSL interface. For that I have a Linksys AG300 DSL Modem / Router.
What I couldn't find documentation on is how to configure these two devices to be able to establish a VPN connection from the Internet. But, after much trial and error I have it working.
The AG300 has been serving our office LAN for several years and I didn't want to disrupt any existing configuration or services.
I connected the WAN port of the WRVS4400N to a port on our LAN - via a switch to one of the AG300 LAN ports. The WRVS4400N WAN port picked up an IP on our LAN from the DHCP server on the AG300.
I set the WAN port MTU configuration to Manual (Setup, WAN) and MTU size to 1000. This on the basis that the VPN traffic will be tunnelled so the MTU better be less than 1500. 1000 is no doubt lower than necessary but I didn't want failure for the sake of a few bytes. I can tune it up later.
I set the timezone and enabled daylight savings time, with the default NTP server(s).
I set up the wireless network, though this is probably irrelevant at this point. My testing was all with wired systems. All I did was set an SSID Name for SSID1 (Wireless, Basic Settings), and set security mode to WPA2-Personal Mixed and a Shared Secret (Wireless, Security Settings).
IPSec VPN I left disabled (default).
I created one VPN Client Account: a username and password and left Allow User to Change Password at default: no.
I generated a certificate and exported for client.
I changed the admin account password.
I did all this from a laptop plugged into one of the LAN ports on the WRVS4400N. The laptop picked up an IP from the DHCP server on the WRVS4400N on the default 192.168.1.0/24 network.
I then downloaded and installed the QuickVPN client from http://www.cisco.com/en/US/prod/routers/quick_vpn.html. I was using a laptop running Windows 7 64bit for testing, so I downloaded WRVS4400N Wireless-N Gigabit Security Router - VPN V2.0. I ran setup as administrator and accepted all defaults. The laptop was in a workgroup, not a domain member on our LAN.
I copied the WRVS4400N certificate to the QuickVPN folder (C:\Program Files (x86)\Cisco Small Business\QuickVPN Client.
I connected the test client (with QuickVPN) to our internal LAN and configured a QuickVPN profile to access the WRVS4400N directly (ie at its internal WAN port address, thus not traversing our Internet DSL modem / router). This connected successfully and I was able to RDP to a test system on the LAN side of the WRVS4400N - success!!! of a sort.
Next I created a new QuickVPN profile, the same as the first except for specifying the external address of the AG300 (i.e. our public / Internet IP address). I tried to connect and this failed.
The failure wasn't too surprising. There was nothing on the AG300 that would allow the connection attempts to reach the WRVS4400N WAN port. Unfortunately, the WRVS4400N documentation said nothing other than to configure our DSL router / modem according to instructions from our ISP and our ISP knows nothing of the WRVS4400N, VPNs or anything else they don't supply and almost nothing about what they do supply, so I didn't even bother calling them.
After some searching I found a post (https://supportforums.cisco.com/thread/2108785) indicating that some ports should be opened on the DSL modem / router and that this sometimes works, though it is an unsupported configuration (cryptic comment about there should only be one gateway). Anyway, I added ports 443, 500, 4500 and 60443, all TCP, to the port forwarding list on the AG300, all forwarded to the WRVS4400N WAN interface, but still no luck.
Then I got out the sniffer and compared the successful internal connection with the failing external connection and noted that the internal connection had an exchange on UDP port 500 and the failing one had inbound packets to that port but no replies. So, I forwarded UDP port 500 as well and finally got a VPN connection via the external interface of the AG300. Success at last!! I had almost given up.
Saturday, May 21, 2011
Doc Watson - Deep River Blues
I'm trying to learn Deep River Blues, as played by Doc Watson and others. There are lots of great videos on YouTube, including:
http://www.youtube.com/watch?v=cE2swkx9WXE&feature=related
http://www.folkways.si.edu/albumdetails.aspx?itemid=3105
http://www.youtube.com/watch?v=cE2swkx9WXE&feature=related
http://www.folkways.si.edu/albumdetails.aspx?itemid=3105
Sunday, May 15, 2011
Ewan Dobson is awesome
I just stumbled on YouTube videos of Ewan Dobson - fingerpicking acoustic guitar. worth a listen if you haven't heard him.
Subscribe to:
Posts (Atom)