mardi 3 mai 2016

Subversion fails due to power outage

Hi there,

Here I am again, fighting with subversion.

So, I had a power outage today while updating subversion and that broke the central point of failure in subversion, the wc.db.

I got the following error:

$ svn cleanup
$ svn up
$ svn: E200030: sqlite[S11]: database disk image is malformed


I have Gb's of data checked out and have a home office ... no fun checking that out again, so I simply got sqlite from the repositories, created a new db with subversion, truncated all tables, and populated with the data I recovered from the corrupt db.

If you are a poor man (Windows users), you download a version of sqlite from http://sqlite.org. A subversion sqlite database has the following type:

"SQLite 3.x database, user version 31"

You can see this if you issue "file" against it:

file .svn/wc.db

You will need Linux, Unix (incl. Mac OS X), Windows+Cygwin, or Windows 10 with Ubuntu subsystem for that "file" command to work.

Furthermore, a subversion sqlite database has the following tables:

"ACTUAL_NODE", "NODES", "PRISTINE", "REPOSITORY", "sqlite_sequence", "sqlite_stat1", "WCROOT"

As you can see, only a few. Since the db is corrupt AND I can still access the data, I will need a new db; I checked I could access the data with the following:
 
$ sqlite3 .svn/wc.db
sqlite> select * from NODES

Note that sqlite3 can create a blank db for us, however, it will not be the version subversion wants :-(, unless you take a really old sqlite3.

So, I move the wc.db out of the way and checkout a folder into a temporary directory, move the newly subversion-blessed db into position:

$ mv .svn/wc.db .svn/wc_bad.db
$ cd /tmp
/tmp $ svn co -N http://myServer/myfolder
/tmp $cp .svn/wc.db /path/to/subversion/checkout/


Now I need to populate the db ... I open the old sqlite db, dump its contents, open the new db, truncate all tables, and finally, populate all tables with data from old db:

$ sqlite3  .svn/wc_bad.db
sqlite> .mode insert
sqlite> .output dump_all.sql
sqlite> .dump
sqlite> .exit
$ sqlite3  .svn/wc.db
sqlite> delete from "ACTUAL_NODE"
sqlite> delete from "NODES"
sqlite> delete from "PRISTINE"
sqlite> delete from "REPOSITORY"
sqlite> delete from "WCROOT"
sqlite> delete from "sqlite_sequence"
sqlite> delete from "sqlite_stat1"
sqlite> vacuum
sqlite> .read dump_all.sql
sqlite> .exit
$ svn up
A some/amazing/newly/added/awesome/file.txt 
...


Hope this helps you.

Note that I got the dump commands from http://techblog.dorogin.com/2011/05/sqliteexception-database-disk-image-is.html, great entry, although in my case, the sqlite3 created db was not accepted by subversion, I got the following error:

svn: E235000: In file '..\..\..\subversion\libsvn_wc\wc_db_wcroot.c' line 269: assertion failed (format >= 1)


jeudi 6 février 2014

Avaya IP Office SoftPhone ? WTF ? Don't, don't, don't !!!

My occasional rant about software, today Avaya software ...

I don't know what happened here, but I have been kindly asked to install some software written by complete utter n00bs.

1. It only runs on Macs or consumer OS's (Windows) - great for a softphone, remember though, that it is the type of software you are supposed to install on your "workstation" - Tablet ui's are for consumers, imho. What about Linux ?
2. It does not remember your settings, as in, how you sort your contacts ... WTF? Seriously ??? The contact list is clogged up with built-in groups and default contact sort is alphabetically, regardless of who is online or not.
3. It clogs up your Windows registry by creating a node guess where? HKCU\Avaya - this is BAD PRACTICE, it should be under HKCU\Software\Avaya, but wait, they have a node there, too ... utter n00bs. Imagine every software company did that ...
4. Their server runs on Linux as they claim better TCO, gossh, at last one thing they got right, what about the client software, though ? It would allow their customers to decrease their TCO even more, don't you think ?
5. How about smartphone support ?

In the end, I assume we got it because they have good hardware phones ...

dimanche 13 octobre 2013

Migrate Phone Contacts from Old to New Phone

Background:

Friend had balckberry mobile phone and got a new Sony xperia M. The contacts from the blackberry were exported into a CSV and needed to be imported into the xperia.

The Sony PC companion is utter useless crapware, so you cannot import contacts from a CSV file directly, only other Sony (?) or Windows contacts can be imported. Besides, it kept telling me that I had to detach the old phone although I had specifically specified that I was importing my contacts from Windows.

Anyway, how do you get contacts that are stored in a CSV file into windows in the first place ? Microsoft has, depending on which program you use to open a CSV file, different interpretations to how a CSV file should look.

CSV stands for "Comma-separated Values", however, Excel wants CSV with "tab-separated Values" (you can open Excel and import the file as a workaround), Windows contacts import wizard wants another variant, "semi-colon separated values".

So, open the CSV file in OpenOffice, check comma (or whatever you have as a separator)  in the "Text Import" window, make sure the preview shows each field in a separate field and click Ok.

Click File > Save As and make sure you specify a new name, check "Edit filter settings" and click Save. Click "Use Text CSV format" and in the new window make sure "Field delimiter" is set to semi-colon and click Ok.

This file can now be imported as Windows contacts which you can then sync with your phone. Note that you will have to map fields during import, but that is pretty simple.

insserv: Script jexec is broken: incomplete LSB comment.

 Today I updated my debian wheezy and saw the following error in the terminal:

insserv: Script jexec is broken: incomplete LSB comment. insserv: missing `Default-Stop:'   entry: please add even if empty. insserv: Default-Stop  undefined, assuming empty stop  runlevel(s) for script `jexec'


The fix is very easy:

#
### BEGIN INIT INFO
# Provides: binfmt_misc
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 1 2 3 4 5
# Default-Start: 0 6
# chkconfig: 12345 95 05
# Description: Supports the direct execution of binary formats.
### END INIT INFO
#



Anybody who unerstands LSB comments immediately sees the duplicate Default-Start entries, change # Default-Start: 0 6 to read # Default-Stop: 0 6, this should fix it:

#
### BEGIN INIT INFO
# Provides: binfmt_misc
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 1 2 3 4 5
# Default-Stop: 0 6
# chkconfig: 12345 95 05
# Description: Supports the direct execution of binary formats.
### END INIT INFO
#





Note that the devs who maintain this have already fucked-up their LSB comment ... see http://www.novell.com/support/kb/doc.php?id=7010013.

Some will never learn.

jeudi 15 août 2013

Connecting to Oracle 12c

A couple of weeks ago, I installed Oracle 12c on my Debian amd64 system. It is pretty easy to do, all you have to do is create a few symlinks that fuck up your 32/64 lib dirs and hack the makefiles ... another story for another blog post.

Today, I would like to talk about Oracle's new CDB & PDB architecture.

SID is Viciously dead, they say, but instance name is not - this is crazy, I need the address of Larry's pharmacist, he must have good stuff.

So, I have an Oracle instance named myinstance, it contains the CDB and a few PDB's.


Now, I connect to Oracle using user sys, I immediately end up in the CDB. Usernames/schemas in a CDB require a silly prefix, WTF, this is not the case in a PDB and it gets worse ...

SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
myinstance


So I change to a PDB:

SQL> alter session set container=MyPDB;

Session altered.

SQL>  select instance_name from v$instance;

INSTANCE_NAME
----------------
myinstance



Now, this makes sense, one instance with multiple DB's.

So, Oracle says we are on the same instance as the CDB. When I connect to the instance_name, I will always end up in the CDB .... to reach a PDB, I must connect with the service name, the service name is the name of the PDB, in my case MyPDB.


Now, why, why did they not deprecate connecting with instance_name ?


Always use the service name when you connect to Oracle, this is what they said in the ojdbc drivers for 10g, iirc.

  Connection conn = DriverManager.getConnection
     ("jdbc:oracle:thin:@//localhost:1521/MyPDB", "scott", "tiger");

However, they removed that recommendation in the  12c jdbc driver docs, do they need help or are they stupid ?

vendredi 31 mai 2013

Subversion fails more often

I started using subversion 1.4 back in the day, I got issues here and there, but I could easily just move the files out of the way and svn update the directory, copy the files over again ...

Ever since I upgraded to 1.5 or was it 1.6, I started getting tree conflicts, here and there, not frequent, I agree, but shit, guyz, keep it simple, I do not care about 1 or 2 ms performance increases on a commit, seriously ...

With 1.8, they did away with .svn folders in each checked out folder -it is now all centrally controlled at the root of the checked out folder ... except that now, when something fucks up, you can check the whole 10Gb out again ...


I expect products to improve over time, not seriously fuck up.

The guy who thought putting everything in one sqlite database at the root of the checkout is an IDIOT, no ifs, buts or maybes - (s)he should be Hung, Drawn and Quartered. Like, hey, we have this system where we have no single point of failure, that is bad, lets create one.

jeudi 14 mars 2013

Clear clipboard from the Windows PowerShell command line

I convert a bunch of slide decks to word processor handouts used in our trainings. Since there are over 100 decks and powerpoint ends up using Gb's of RAM once it has finished and is doing nothing anymore, I thought I would clear the clipboard.

Tangent: something uses Gb's of RAM and remains idle? Sounds like Microsoft hired some SAP developers.

Anyway, this is how I chose to solve the problem in a nice powershell script:

$a = [Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$b = [Windows.Forms.Clipboard]::Clear()


To run this, you must start powershell.exe single-threaded:

powershell -sta myscript.ps1

BTW, sounds strange that powershell starts multi-threaded by default, however, it makes absolutely no sens at all that powershell cannot run this single-threaded shit in a multi-threaded instance.

I can understand that you cannot run multi-threaded shit in a single-threaded instance of powershell, makes sense, but the opposite is just plain fucked up, no ifs, buts, or maybes.


Enjoy

lundi 14 mai 2012

ps2png or pdf2png how to create high quality images from just about anything in Linux

I had this PDF I had to sign for the company I work for. It is a pain to print it out, sign it and scan it to send it out again. So I thought I would use ps2png, which works with PDF's as well, BTW, and use Gimp to insert a scan of my signature at the required position.

The problem we all come across is that ps2png sucks in terms of quality.

Linux (Unbuntu 11.10) comes with the print to svg feature, which is cool. Print the PDF, or whichever file you have, to SVG and use inkscape.

Emacs was bad, inkscape sets new records in ui complexity ... it is the first graphical editor I have come across where you just cannot select a portion of the image to copy and paste it into another. It is also the first graphical editor where you cannot use the mouse to move an inserted image around without invoking some obscure incantations, so use the arrow keys.

The bug (?) I came across was, that the page of the PDF was displayed hundreds (thousands?) of times in the SVG. When you print the resulting image to PDF, you only see it once. In inkscape, you need to edit the image on the bottom left. Click the blue arrow to insert your image, move it to the appropriate location and you can print it. You could also at this point export it to png, In the export dialog, click [Page].


EDIT: inkscape makes PDF's so crisp they make professional marketing guyz shit their pants.

lundi 7 février 2011

Oracle 10R2 on Mac OS X

I wanted to install Oracle 10.2 on Mac OS X 10.6.6 64Bit and found a couple of issues that you might encounter as well. I could not get it to link the Oracle binaries, so this is all a bit moot, for the moment. Will post as soon as I have found a solution for that - I use db2 instead, also a post on installing db2 on darwin in the works.

First of all, create the users and groups as described in the installation instructions:
1. find free id's for groups:
dscl . -list /groups gid | awk '{print $2}' | sort -n
2. find free id's for oracle user:
dscl . -list /users uid | awk '{print $2}' | sort -n
I used uid/gid's 300, 301, 301 for oracle and oinstall, dba, oper, respectively

3. create the groups

dscl . -create /groups/oinstall
dscl . -append /groups/oinstall gid 300
dscl . -append /groups/oinstall passwd "*"


dscl . -create /groups/dba
dscl . -append /groups/dba gid 301
dscl . -append /groups/dba passwd "*"
dscl . -append /groups/dba GroupMembership hans

dscl . -create /groups/oper
dscl . -append /groups/oper gid 302
dscl . -append /groups/oper passwd "*"
dscl . -append /groups/oper GroupMembership hans

4. create the oracle user

You could also use system preferences to create the user, in which case you only have to execute the last three of the dscl commands.
dscl . -create /users/oracle
dscl . -append /users/oracle uid 300
dscl . -append /users/oracle shell /bin/bash
dscl . -append /users/oracle home /Users/oracle
dscl . -append /users/oracle realname "Oracle software owner"

dscl . -append /users/oracle gid 302
dscl . -append /groups/dba GroupMembership oracle
dscl . -append /groups/dba GroupMembership hans

mkdir /Volumes/oracle
chown oracle:oinstall /Volumes/oracle
passwd oracle
5. Next, specify the kernel parameters:

I created a file named /etc/sysctl.conf with the following contents:

kern.sysv.semmsl=87381
kern.sysv.semmns=87381
kern.sysv.semmni=87381
kern.sysv.semmnu=87381
kern.sysv.semume=10
kernel.shmall=2097152
kernel.sys.shmmax=2147483648
kernel.sys.shmmni=4096
kern.maxfiles=65536
kern.maxfilesperproc=65536
net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65000
kern.corefile=core
kern.maxproc=2068
kern.maxprocperuid=2068
6. Reboot, log on as oracle
In terminal, you want to start the 32bit Java VM:
Run:
java -version
If java -version shows it is running a 64Bit JVM, you need the 32Bit one:
./runInstaller -J-d32

I got the following error when trying to start runInstaller with the 64Bit JVM:

Install2011-02-08_07-12-16AM/oui/lib/mac_osx/liboraInstaller.dylib: no suitable image found. Did find: /private/tmp/OraInstall2011-02-08_07-12-16AM/oui/lib/mac_osx/liboraInstaller.dylib: mach-o, but wrong architecture

dimanche 23 janvier 2011

Sony Ericsson Xperia and PC Suite or Outlook

My partner had a Sony Ericesson 850i, or something similar. I made her create a backup of that phone about a year ago. Last week she lost it and got an SE Xperia 10. Since she lost her sim with her old phone, she ordered a new one, but lost all her contacts, or so she thought ...

Her phone came with "Sony Ericsson PC Suite 6.0", so that is what I used to make a backup.

I connected her 850i phone and did not mount it!!! Once I opened PC Suite, I went to "Tools > Backup n Restore" and created a backup.

When I open PC Suite now and click on "Backup n Restore" I see the backup that was made. If I click "Modify properties of the backup" (Sorry, the translation might vary, I have it in French) a properties-like dialog opens, and I can see the location of the backup, I click the browse button next to the location path and an explorer window opens with the backup.

Here comes the magic! So, opening the "dbk" file with notepad, I notice it is a pkzip file or, in other words, a simple ZIP file. I make a copy of it, for safety, named "Copie de 20100627.zip" ... excuse my French, it is a French OS.

This I can open in Windows, the first things I see is "contacts.vcf", which like its name suggests, contains all the contacts that were in the 850i. The first thing I do is, I drag this file onto the desktop, go into Outlook, Click "File > Import Export" and choose "Import a VCF file" and browse to the file.

The real pain is, for some weird reason, Outlook does not display contacts that do not have an email address .... but they are there! To make sure, just export your contacts into a CSV file - you'll notice that unlike most email clients, you cannot export your contacts into vcf file - Outlook is an evil piece of crap, don't start using it, if you can help it!!!!

This contacts.vcf you can also import into gmail, then sync you phone with gmail. In gmail, go to "Contacts", then "Import Contacts", click "Choose a file" and navigate to your VCF file, optionally choose a group name and click import.


For those upset about putting their contacts into gmail, the other option with this android, from what I have seen using it for 5 minutes, is sony ericsson's website ... don't ask me what is worse, I do not know.

vendredi 17 décembre 2010

Fixing modification dates on photos using the creation date in the photo file (set by the camera)

I have a large collection of photos, several dozens of Gb and I accidentally copied them without preserving the orginal creation dates.

Every photo you take has a date set in the file by the camera in what is called exif metadata. Some cameras can also record the exact coordinates where the photo was taken ... anyway, I needed to fix those dates. I also like to keep the files in a year/month/day folder structure.

So, here is my script:

#!/bin/sh

DATE=`exiftool "$1" | grep 'Create Date' | sed -e 's/.*: //;s/://g;s/..$//;s/ //g'`

DEST=`echo $DATE | sed 's@^\(....\)\(..\)\(..\).*@/media/shared/Pictures/\1/\2/\3/@'`
touch -t $DATE "$1"

if [ -d "$DEST" ]; then
cp -an "$1" "$DEST"
else
mkdir -p "$DEST"
cp -an "$1" "$DEST"
fi

vendredi 10 décembre 2010

Windows XP SP3 Installation fiasco

So, here I was again, creating a new vm for Windows XP. I have a Windows XP SP3 iso from work I use. This is my work computer and we have a volume license. Anyway, legal all the way.

So I insert the cd, it installs fine and the first thing I do is start Windows Update. It needs to install 85 updates totaling 107 Mb and claims it will take 51 minutes with my connection ... it took about 15 minutes including installation ... although only 82 were installed, the other three were skipped (I guess they needed a reboot).

Anyway, on the reboot, it keeps restarting as soon as it gets to the blue background. Not the BSOD background, the somewhat lighter background before the Welcome page loads.

Safe mode works without an issue, so I somehow suspect graphics driver issues, remember this is a vm - and I enabled 3d. So I try VGA mode, and there I briefly see a bsod. So I disable the automatic restart on error, and the fucker does not allow me to switch to another mode, like VGA.

So, instead of seeing the blue background I see a higher resolution black background with an hour glass. Go figure ... anyway, go back to the startup options and select "Last Known Good", which I did not feel too comfortable with, since I just installed a whack of updates and this is still the first restart after that massive install .... but I get to the desktop, youpie!!!

But the fun is not over, it wants to send an error report, which is fine by me ... and the error report is corrupt!!!!

So, I know it wants to install the other three updates and I shutdown Windows (Start -> Shutdown)... and it installs the updates. After that I get back into the same loop ... I select Last Known Good and it works ... bloody hell, how do people put up with this I do not know ... And this Last Known Good does not sound right to me ... updates have certainly changed the services and drivers ... ohh my ... I am unsure what to do now. I probably should not have installed the vm tools before the updates? Go figure.

I guess I am condemned to select Last Known Good after every software update .... fsck!

Before you ask, I need Windows XP for work ... sometimes ... and my 5 year old vm was getting issues with disk space, so I decided to install a new one from scratch.

I like the irony of "Last Known Good" ... that should uninstall Windows ....


I go back to windows update, and it wants t install another 7 updates, which I install ... after that, I get back into the looping booting fiasco ... Last Known Good ....

mardi 28 septembre 2010

chroot java on linux x86_64

I had to chroot java on linux 86_64. I have found many blogs, but all I read missed some of the steps:


export JAIL=/home/jail
#Make all dirs 
mkdir -p $JAIL/dev $JAIL/lib $JAIL/etc $JAIL/opt/ $JAIL/proc
#copy hosts file
cp /etc/hosts $JAIL/etc/hosts
#copy libs required by java (1.6.20) 
cp /lib/ld-linux-x86-64.so.2 /lib/libc.so.6 /lib/libdl.so.2 /lib/libgcc_s.so.1 /lib/libm.so.6 /lib/libnsl.so.1 /lib/libpthread.so.0 /lib/librt.so.1 $JAIL/lib/ 
#needed by my Java app
cp /usr/lib/libstdc++.so.5 $JAIL/lib/ 
#Although you link this to your "real" /lib, in your jail, it will be the lib directory in your jail.
ln -s /lib $JAIL/lib64
#Mount proc 
sudo mount -t proc /proc $JAIL/proc
#create devices 
sudo mknod -m 666 $JAIL/dev/random c 1 8 
sudo mknod -m 666 $JAIL/dev/null c 1 3 

sudo mknod -m 666 $JAIL/dev/zero c 1 5

Now just copy/install java, then start it with:
sudo chroot $JAIL /opt/java/bin/java -version
Assuming that /opt/java is where you installed java.
If java does not launch, make sure with ldd, that all so files are in the $JAIL/lib dir.
I got
chroot: failed to run command `/opt/java/bin/java': No such file or directory
Because the lib64 directory was not linked to /lib.


I see quite a few people like this blog post, please leave a comment ... thanks.

mercredi 8 septembre 2010

SQLPLUS command history

I was using sqlplus on Linux and needed command history. I looked around the net and found rlwrap.

To my surprise, it was even in Debian's apt repositories!

$ sudo apt-get install rlwrap

worked like a charm.

To use the program:

$ rlwrap sqlplus scott/tiger@orcl

I finally went for gqlplus, beacuse it is even better; it has table name completion, like the bash shell does for files & folders. It needs libncurses-dev. You should read the readme, do not perform make install, just copy the gqlplus binary into your path. Note that sqlplus must be on the path as well.

I created an alias named sqlplus that runs gqlplus.

vendredi 16 juillet 2010

Convert Office Documents to PDF from the command line

I prepare training courses and often have to convert 90+ Word documents to PDF.
I have Adobe Acrobat Professional and found no quick and easy way to do it. I used vbs before and it was so slow, OpenOffice converts all documents faster than vbs can convert 2 of them. I guess it would be even faster if we were using openOffice formats ... which I am investigating ...

So I use OpenOffice for this, with two nice macros I "stole" from Sun^H^H^HOracle.

Here they are:


REM -------------8<-------------8 span="">
REM ***** BASIC *****

Sub ConvertWordToPDF(cFile)
cURL = ConvertToURL(cFile)

' Open the document.
' Just blindly assume that the document is of a type that OOo will
' correctly recognize and open -- without specifying an import filter.
oDoc = StarDesktop.loadComponentFromURL(cURL, "_blank", 0, Array(MakePropertyValue("Hidden", True), ))

cFile = Left(cFile, Len(cFile) - 4) + ".pdf"
cURL = ConvertToURL(cFile)

' Save the document using a filter.
oDoc.storeToURL(cURL, Array(MakePropertyValue("FilterName", "writer_pdf_Export"), ))

oDoc.close(True)

End Sub

Function MakePropertyValue( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue
Dim oPropertyValue As New com.sun.star.beans.PropertyValue
If Not IsMissing( cName ) Then
oPropertyValue.Name = cName
EndIf
If Not IsMissing( uValue ) Then
oPropertyValue.Value = uValue
EndIf
MakePropertyValue() = oPropertyValue
End Function
REM -------------8<-------------8 span="">


Now here are my shell scripts, both Windows and Unix:

Windows
REM -------------8<-------------8 span="">
rem DIR=$(pwd)
rem DOC=$DIR/$1
REM The following two lines are on one line!
for /r %%i in (*.doc) do swriter -invisible "macro:///Standard.Module1.ConvertWordToPDF(%%i)"
REM -------------8<-------------8 span="">

Unix

#-------------8<-------------8 br="">#!/bin/sh DIR=$(pwd)
DOC=$DIR/$1 PDF=`echo $DOC | sed 's/...$/pdf/'`
if [ ! -e "$PDF" ] ;
then
#The following two lines are on one line!

soffice -invisible "macro:///Standard.Module1.ConvertWordToPDF($DOC)"
echo "Processing $DOC"
while [ ! -e "$PDF" ] ; do
sleep 3;
done
fi
#-------------8<-------------8 span="">

On Unix I run

find /some/path/to/documents -name -exec doc2pdf {} \;

The reason I need the while loop on Unix is because soffice does not wait until the macro has finished and goes on to convert the next file. OpenOffice errors out on my system, it cannot process two files simultaneously ... sad, that!

mardi 18 mai 2010

SQL Server installation

So, I install MS SQL Server, I had not installed it in years, last version I installed was 2000. This time it is the 2008, express (free) edition. It wants to install .net, fine with me ... but it wants two distinct versions ... WTF? Again, backward compatibility is a pain with .net. Can't they at least port all their code to the latest version? losers!

The other thing that strikes me, the installation for .net takes ages, using 100%, in a vm ... but I can run a double-stack SAP instance in a vm on my box (it is pretty heavy gear) ... On the dialog it says: Download finished, you may disconnect from the internet ... does it think I use a 56k modem?

Well, I will have a look at this thing anyway, everybody deserves a 512th chance, right?

Well, anyway, after installing powershell I could continue installation. But it failed with the following message:

TITLE: Microsoft SQL Server 2008 R2 Setup
------------------------------

The following error has occurred:

A network error occurred while attempting to read from the file: e:\b79ad030129e84bb93122e9bed672fb5\1033_ENU_LP\x86\setup\x86\sqlwriter.msi

The weird thing is, guess what, e: is a local drive.

Anyway, I was installing over the network, the original installation file resides on my linux samba server (drive z:) and I installed to my e: drive. I copied it over and started the installation again, which worked.

Installing the "SQL Server Management Studio" was weird, as the installer made me doubt what I was installing ... it looked so much like the database installer and even the link to install it read database, not Management Studio ... I do not quite know why I installed that, osql does the job just as well ... ;-)

I do need to get used to typing go, though ... which is a bit weird, because I used to be accustomed to this, but 5 years of Oracle use have made me become lazy, especially after select statements.

lundi 17 mai 2010

TNS-04413: A shared object was found in the subtree

I installed Oracle 11g on Linux, debian squeeze, last week and came across a weird error after having had to configure the sqlnet stuff. Oracle doesn't seem to be able to do that on debian-based systems, nor on Solaris ... so maybe all unices are affected. I don't know, I must be making a big mistake somewhere during installation ... ;-)

So, I thouht I had set everything up as it should be, but I had a problem in the sqlnet configuration, as the listener did not want to serve my database.

I started dbca to check if it could find the database and got several errors, that pointed me in the right direction ... ;-).

I figured it out in the end, I had this line:


(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
iso
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))


I had somehow gotten the listener port at the end of EXTPROC, don't ask me how that happened ... must have made a typo in vi. The weird thing is, that I found nothing on the interwebs about the error:


TNS-04413: A shared object was found in the subtree

So here is a blog entry about that ... ;-)

See below:

oracle@hpcarpenter:~$ lsnrctl start


LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 17-MAY-2010 14:57:07

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Starting /u00/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u00/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /u00/app/oracle/diag/tnslsnr/hpcarpenter/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hpcarpenter.masalan)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 17-MAY-2010 14:57:09
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u00/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /u00/app/oracle/diag/tnslsnr/hpcarpenter/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hpcarpenter.masalan)(PORT=1521)))
The listener supports no services
The command completed successfully
oracle@hpcarpenter:~$ dbca
Can't get a listener LISTENER Exception: oracle.net.config.ListenerException: TNS-04412: A problem reading or writing an address
caused by: oracle.net.config.SOExceptionConfig:
TNS-04413: A shared object was found in the subtree

samedi 15 mai 2010

SAP - Sybase

I also have a faible for Sybase, mainly because my wife worked there. Anyway, SAP just bought the company. I downloaded ASE last month and later had a sales chap on the phone (he called me to know how it was going), I asked if they supported SAP, and he sort of started to mumble something ... then said the next version might ... I thought there was something breeding ... here you go!

Microsoft, I think SAP is starting to show you something ... ;-) and Sybase will be more than happy to take its revenge!

Accenture, the suckerz

Ok, today I would like to talk about .... Accenture. I know somebody who works there, a project manager ... apparently he knows very little about alternatives to a Microsoft-only implementation (except for software not covered by MS).

I had a discussion with a lad in the pub the other night, who was telling me his company uses Oracle db's with SAP, they got Accenture in for some consultancy ... and now, they are switching to SQL Server, because Accenture only deals with that.

Morality, if you hire Accenture in, your datancenter will become mostly MS, who said putting all your eggs into one basket was a bad idea?

dimanche 2 mai 2010

.net

I refuse to use .net stuff, oh, I have given it a try, I ended up with three or four different versions of the runtime installed on one computer, because I thought backward-compatibility was something the developers had heard of ... silly me!

So now, on this new computer I just set up, I have already discarded 2 pieces of software that wanted the .net crap. I don't understand why anyone develops in that crap ... there is absolutely no cross-platform support (mono is a joke!), not even native XP support (which still is the #1 OS out there) .... and when it says it wants 1.1, then it means it ... 3.0, 2.0 or even 1.3 are not accepted, WTF? I mean you have similar issues with Java, like a program written for Java 1.2 might not work wth 1.6, it will "usually" work with 1.3, 1.4 and 1.5, though ...

iiiiBoycott that crap!!!!!