Paul's Programming Notes PostsRSSGithub

Check If Workbook Is Open By Name - VBA

This code from StackOverflow helped me find whether a workbook was open with its name. Here’s the link to the thread: Link

Function BookOpen(strBookName As String) As Boolean
    Dim oBk As Workbook
    On Error Resume Next
    Set oBk = Workbooks(strBookName)
    On Error GoTo 0
    If oBk Is Nothing Then
        BookOpen = False
    Else
        BookOpen = True
    End If
End Function

Sub testbook()
    Dim strBookName As String
    strBookName = "myWork.xls"
    If BookOpen(strBookName) Then
        MsgBox strBookName & " is open", vbOKOnly + vbInformation
    Else
        MsgBox strBookName & " is NOT open", vbOKOnly + vbExclamation
    End If
End Sub

Overdue Member Calculator

pawl/OverdueMemberCalculator

This should help ease the pain of dealing with suspended paypal recurring payment agreements.

The page accepts variables from the URL, then generates a paypal payment button based on the person’s last payment date.

WebForms.js or WebUIValidation.js CDN

In the console, it was giving me two errors saying it could not GET these two files from the CDN:

http://ajax.microsoft.com/ajax/4.0/2/WebForms.js
http://ajax.microsoft.com/ajax/4.0/2/WebUIValidation.js

To fix it, you need to delete the <script></script> references for both of the files above and make a single reference to:

<script src="http://ajax.aspnetcdn.com/ajax/4.5/6/WebFormsBundle.js" type="text/javascript"></script>

Raspberry Pi Text To Speech IRC Service

These are my notes for installing Eastein’s announce. It’s a IRC bot that will receive a message and do text to speech on the message: https://github.com/eastein/announce

Installation:

  1. Download announce and extract it to it’s own folder.
  2. apt-get install python-irclib
  3. apt-get install python-pip
  4. sudo apt-get install python-dev
  5. apt-get install festival festlex-cmu festlex-poslex festlex-oald libestools1.2 unzip
  6. apt-get install speech-tools
  7. pip install pyzmq --install-option="--zmq=bundled"
    or (if you have easy_install installed):
    easy_install pyzmq
  8. download mediorc and move mediorc into directory
  9. easy_install dnspython
  10. apt-get install mplayer
  11. apt-get install sox
  12. Fix permissions:
    chmod 777 saypitchprase
    chmod 777 pitchphrase2wav

Running The Program:

Run process in background by starting a screen (first navigate to the Announce folder):

  1. (start a new screen)
  2. python announced “tcp://*:4900”
  3. (detach from screen)
  4. (start a new screen)
  5. python announcebot “chat.freenode.net” “voicebot” “#yourircchannel” “tcp://0:4901”
  6. (detack from screen)

Starting the program using mp3 files in the JSON file (as always, start in the folder which has Announce):

  1. wget http://fake.com/fake/eye_tiger.mp3 (use a real URL with an mp3 file)
  2. nano default.json
  3. enter into the json file: [ ["eye of the tiger", "eye_tiger.mp3"] ]
  4. ctrl+x and save
  5. (start a new screen)
  6. python announced "tcp://0:4900" default.json
  7. (detach from screen)
  8. (start a new screen)
  9. python announcebot “chat.freenode.net” “voicebot” “#yourircchannel” “tcp://0:4900”
  10. (detach from screen)
  11. now “!say eye of the tiger” in the IRC channel will trigger the mp3

Troubleshooting:

Ensure your Raspberry Pi audio is working: http://jeffskinnerbox.wordpress.com/2012/11/15/getting-audio-out-working-on-the-raspberry-pi/

Testing Festival (create a text file named mytext.txt with some words first):

echo "This is a test." | festival --tts
echo "this is a test" > mytext.txt
text2wave -o myaudio.wav mytext.txt
aplay myaudio.wav

better voices:
Ubuntu Forums: more realistic voices in Festival
Ubuntu Forums: Festival voices thread

adjust the volume:
http://blog.scphillips.com/2013/01/sound-configuration-on-raspberry-pi-with-alsa/
or use amixer?

Regex Debugger

Debuggex

Don’t want to lose this link, it’s going to make regex related programming a lot easier.