Tuesday 6 December 2011

Audible .aa files to mp3.

If you have need of converting an Audible .aa (that's file format 4) into an mp3 or similar (because you can't find anywhere that sells the thing DRM free):
i)  You'll find plenty of shareware apps that claim to be able to do it (like SoundTaxi and TuneConvert) and (a) it looks like they can if you want to pay the price (or they'll only do 90 seconds), and (b) they all look like they're by the same people / based on the same stuff.
ii)  Alternatively, if you're more cheapskate (in my case I only wanted to convert a single file) then there's a post from 2007 that (if you persevere with getting the Visual C++ DLL installed on Windows 7 64 bit) still seems to more or less work:   http://forums.afterdawn.com/thread_view.cfm/589613

I didn't want to install iTunes and try to burn to CD then re-rip.   [I dislike iTunes, though frankly that route would have been less system-invasive than the stuff I ended up doing.]

Tuesday 21 June 2011

Excel-form-controls-aaaargh!

Excel 2007.
I worked out how to put form-controls on a spreadsheet. Combo Boxes.
(Ain't the ribbon lovely? You're looking for the (hidden, IIRC) Developer ribbon....)

I worked out how to put some options in the Combobox (henceforth ddlb) using a range as the source.
I worked out how to attach a macro to execute on-change. Then in the code, I want to get the text in the box.
Minutes passed as I failed to work it out using autocomplete. I googled. Hours passed as I continued to fail.
Can it really possibly be as convoluted as I've made it?
Anyway, I bring you (me) a solution using the now-hidden / obsolete DropDowns property...



Function GetDDLBText(controlname As String) As String
Dim wsheet As Worksheet
Set wsheet = ThisWorkbook.Worksheets("")
Set allDropDowns = wsheet.DropDowns
Dim ddlb As DropDown
Set ddlb = allDropDowns(controlname)
If ddlb Is Nothing Then
GetDDLBText = ""
MsgBox ("Trapped error - control named '" & controlname & "' is not found.")
Exit Function
End If
GetDDLBText = "" ' default to this.
If ddlb.ListIndex > 0 Then
GetDDLBText = ddlb.List(ddlb.ListIndex)
End If
Exit Function
End Function

Wednesday 16 February 2011

And then for Oracle HTTP Server...

I needed to put APEX (Application Express), version 3.2.1, on this same CentOS box.
I followed the installation instructions (for 3.2) found over at Oracle, then needed the HTTP server.
This is on the 10g database companion CD. Installing that went finely (once I'd decided to install it into a different home from the database) until one of the configuration-wizard steps failed.
The log pointed me to another (httpd) log, which said libdb.so.2 was missing.
The solution to that is to run:
ln -s /usr/lib/libgdbm.so.2.0.0 /usr/lib/libdb.so.2
and then retry the configuration-step.


Friday 11 February 2011

Centos 5.5 x86-64 and Oracle 10g Enterprise 10.2.0.1 64bit

Installing the full caboodle, on a VMWare VM as it happens.
Having installed a Server + ServerGUI version of CentOS via the net install, I moved onto the Oracle stuff.

I followed all - okay, most - of the prerequisite steps apparently required. (As documented here.)
Mostly, I didn't do the checking of required packages.

I finally got to the point where I could run the installer - which I seem to recall required having done a
yum install libXp
and then running the installer (from a terminal while logged into X as the oracle user) as
./runInstaller -ignoreSysPrereqs (was it?)

It failed with several errors at the linking stage.
More or less, I then ran the following and tried again (having done an rm -Rf on the couple of failed-install directories beneath the ORACLE_BASE).

yum install gcc
yum install glibc-devel.i386
yum install *compat-gcc-34.x*
yum install *compat-gcc-34-c++*
yum install *gdb.x86*
yum install unixODBC-devel.i386
yum install *gcc-c++*
yum install elfutils-libelf-devel-static*
yum install sysstat
yum install libaio-devel.x86_64
yum install ibtermcap-devel.x86_64
yum install readline-devel.x86_64
yum install libaio-devel*
yum install compat-db.x86_64
yum install libstdc++-devel.i386
ln -s /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.5

...and that time it worked! (BTW, this was using "file storage" for the database.)