Category Archives: Geek

How to get Rails to talk to Oracle

How to get Rails working on Windows with a pre-existing oracle DB…..

I wanted to try and hookup Rails to our existing oracle DB at work. I had a rough time figuring this out, so here it is in case anyone else wants/needs it. In my case, I did not (nor did I want to) have a full Oracle client installed on my Windows box. trying to get this to work was not easy. I found 5 or 6 different pages that told different ways to get it to work, but none worked for me.

Most of this info was compiled from Oracle’s Rails FAQ and a few other pages on the net. These instructions assume you don’t have the Oracle client installed already. If you do, some of these steps may not be necessary(1, 3, 4)

  1. if you don’t have the Oracle client installed already, install the Oracle Instant Client (I installed the Basic, Lite version) – this zip contains some DLLs and jars. Extract them somewhere and note the location. Let’s call it [ORACLE_CLIENT_DIR]
  2. install the Oracle driver for Rails (I’m assuming you already have Rails installed). Details here.
  3. create a tnsnames.ora file in [ORACLE_CLIENT_DIR]/network/admin/. Put the text below in the file. Replace host, port, SID, and name (first line – MYORACLEDB in the example below) as necessary. If the DB uses a service_name instead of SID, replace SID in the file with SERVICE_NAME.

    MYORACLEDB =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = some.server.com)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SID = mysidinfo)
    )
    )
  4. create Windows environment variables like so:
    ORACLE_HOME = [ORACLE_CLIENT_DIR]
    TNS_ADMIN = [ORACLE_CLIENT_DIR]/network/admin
    you can create these globally in Windows or just set them up before running the server each time
  5. setup the database connection in your app as shown here, but replace
    host: ORCL
    with the name you used in your tnsnames.ora file (MYORACLEDB was used in the example above)

  6. if you are connecting to an existing DB that did not follow the standard pluralization conventions Rails likes (i.e. your table names are not pluralized), you need to tell Rails not to do pluralization (which it does by default). Open [yourapp]\config\environment.rb and put this at the bottom of the file:
    ActiveRecord::Base.pluralize_table_names = false

That’s it! Now, you can generate models, controllers, etc. and they should hookup to your Oracle DB as you would expect. Hopefully I didn’t miss any steps. I wrote this after I had it working, not while I was trying to get it working. If you are in a similar situation and these steps don’t work, feel free to leave a comment and I’ll see if I can help.

1,000 links to Candy Addict

Another milestone. According to Technorati (and naturally their site is hosed as I’m posting this), there are now over 1,000 links from other bloggers to Candy Addict. Crazy! Thanks to all the linkers out there!

Also, Candy Addict hit 75K at Alexa!

UPDATE: if you search for blogs that link to anywhere on Candy Addict (instead of just /blog) we have almost 1300 links!

[tags]geek, candy, technorati, alexa[/tags]

Pros and Cons of Telecommuting

I telecommuted for about a year until recently and thought I’d make a list of some pros and cons of telecommuting that I’ve discovered:

Pros

  • There’s nothing like getting paid to work in your pajamas.
  • On cold days or rainy days, you don’t have to go outside at all and deal with the weather.
  • You can shave or not shave – nobody cares.
  • Save on your water bill by not bathing as often.
  • Huge savings on gas for your car. Less mileage put on your car too.
  • No annoying co-workers to come by and incessantly talk about things like trimming the hedges or little Timmy’s peewee football game.
  • More time with family, especially children.
  • Tax write-offs for internet access, home office, etc.
  • Can play any music you want as loud as you want.
  • Snacks and drinks are as close as the refrigerator.

Cons

  • You know immediately when the cat has used the litterbox.
  • No going to lunch with your coworkers and no socializing with them.
  • You can go stir crazy if you don’t get out. Groceries, fast food, even (gasp) The Mall – must get out!
  • More time with family, especially children.
  • Snacks and drinks are as close as the refrigerator.
  • Distractions at home. Mail, internet, pets, etc.

[tags]geek, work, job, jobs, telecommute, telecommuting[/tags]

Newstex experiences?

I have been approached to join Newstex as a syndicated (and paid) blogger (my Candy Addict site anyway) and I was wondering if anyone had any experience with them. I fired off a few emails to other bloggers who have joined them. Just looking for some info on them. Seems like a no-lose deal as long as the contract says the content is still mine and that they can’t do ANYTHING they want with it. I need to read the contract fully (and understand it). More info as I get it.

[tags]geek, syndicate, newstex[/tags]