Oracle Scratchpad

January 14, 2009

Books

Filed under: Non-technical — Jonathan Lewis @ 8:38 pm BST Jan 14,2009

When I was in Salt Lake City a few months ago, Barbara Matthews (one of the organisers of the SLC Oracle User Group) asked me for my “Top 10” books about Oracle.

I don’t normally do lists – and I don’t read many Oracle books – but Iggy Fernandez put the same question, slightly differently phrased, as part of a brief interview for the Northern California Oracle User Group magazine a few days later. So I thought I’d try to come up with a useful answer. This is Iggy’s phrasing of the question:

Let’s say that I’m a junior Oracle DBA and my manager offered to buy ten books on Oracle for me. Which books would you recommend?

Ten is a pretty big number, and I think you’d have to consider getting a couple of books that were tailored to the parts of Oracle used by the business (such as RAC, streams, and so on) but I’ll restrict myself to a fairly generic response – to the extent that some of the books aren’t even specific to Oracle.

For my first choice I’d try to claim a Kindle or Sony e-Reader as the first “book”. I haven’t used one in anger, and the Kindle isn’t even available in the UK, but the brief play I had with the e-reader left me keen to buy one. (Unfortunately the demo model in the shop was sealed in a tamper-proof frame and had no real books on it because someone had accidentally deleted all (100) books from its memory – so maybe I should be a little cautious about recommending it.)

The second choice(s) ought to be some Oracle manuals. I know you can get them in html or pdf form online (I prefer the pdfs with Acrobat indexing); but for simply reading (rather than reference) there’s nothing quite like a real book – and I don’t mean a stack of paper from a laser printer. My manuals of choice would be the Concepts Guide, the Database Admin Guide (Fundamentals) and the Performance Tuning Guide. I might pick the 9i versions (especially the tuning guide), rather than the 10g versions because some of the 10g manuals are getting to the stage where they lean too heavily on “how to use the OEM GUI”.

But if you’ve got a Kindle or eReader, you can probably load the entire set of pdf files for the last four versions of Oracle, and carry them all around at once ! So I’m not going to count any of the Oracle manuals towards my list of 10.

In no particular order, then, here are the other nine:

2) Tapio Lahdenmaki and Mike Leach: Relational Database Index Design and the Optimizers. The authors are better known in the DB2 world than the Oracle world, but the concepts and understanding needed to design good indexes are the same even when there are variations in vendor implementation. (For more details, check my review on Amazon)

3) Dan Tow: SQL Tuning. This is the book that does for SQL Tuning what Tapio Lahdenmaki and Mike Leach do for understanding indexes. There is a way to think through the problems of data access – that method is going to help you find the best execution plan and work out what indexes your system needs.

4) Toon Koppelaars and Lex de Haan: Applied Mathematics for Database Professionals. This is a book that many might think too theoretical for a practising DBA – but if you don’t have some idea of why the relational model is a “good thing” then you can’t do your job properly. This book may not be a direct help to you in your work, but it may help you to appreciate what you can achieve with the Oracle software. (For more details, check my review on Amazon)

5) Tom Kyte: Expert Oracle Database Architecture. For a wealth of information about a wide range of the Oracle technology and how best to use it. This book tells you a lot about what Oracle can do, but also shows you, by the way it’s written, how to extend your knowledge into new areas. If I were allowed a longer list, I would also include Tom’s Expert One-on-one Oracle.

6) Jonathan Lewis: Cost Based Oracle – Fundamentals. I know that it’s my own, but it is the best book you’re going to find about how the optimizer works, and if you understand the core features of the optimizer you’ll find it much easier to solve problems with slow SQL. (And if I were allowed a longer list I probably would include Practical Oracle 8i)

7) Christian Antognini : Troubleshooting Oracle Performance. A recent release that contains a huge amount of information about how to identify and address performance problems. I think I’d probably rate this as the top Oracle tuning book on the market at present (UK link) (US link).

8 ) Cary Millsap and Jeff Holt: Optimizing Oracle Performance. There are a couple of key points about Oracle performance that are rarely stated as clearly as they are in this book. One is the focus on addressing the users’ complaints, the other is the impact of concurrency. It won’t be casual reading for everyone – but the chapter on queueing theory is a must-read for all DBAs.

9) Recovery. If you’re a DBA, then the most important job you’ll ever do is to make sure that you can recover the database quickly after a disaster – and if you’re lucky you’ll never have to do it. There’s probably a good book out there somewhere, but I’ve never had any need to go looking for it. If there is one, then every DBA should have a copy and be made to practise. The difficulty with recovery is that the bits you need to cover well are site dependent, and no one book will tell you all you really need to know about the way you end up doing things for your site.

10) “X”: One of my pet theories is that people learn more by seeing things go wrong, rather than being told what things look like when they are going well. So all DBAs should be given at least one really bad book about Oracle and told to compare the clarity of writing, quality of explanation, and method of teaching with a good book so that they can learn to recognise suspect material. There are plenty of bad books on the market – fortunately I haven’t seen enough of them to be able to give you a “bottom 10″ list.

[Since I wrote the note for Iggy, I've bought a Sony e-reader. It's fantastic, and I've loaded several Oracle manuals on to it in pdf form. A warning though - it's okay picking a chapter and browsing, but you can't do searches. Also, because of the way Oracle Corp. formats the manuals (with large margins and intruding headings) the default presentationis - which tries to keep the original book format - leaves you with a tiny print size. There are a couple of workarounds to this, but then you don't feel as if you are reading a proper book.]

 

44 Comments »

  1. Great list! I would add Oracle Performance Tuning (Vaidyanatha, Deshpande & Kostelac) as a great into and easy to understand for a new DBA.

    Comment by Stephen — January 14, 2009 @ 9:48 pm BST Jan 14,2009 | Reply

  2. My wife got me a Sony PRS-505 and I put the Oracle pdfs on it, too. I highly recommend Calibre to manage the books as opposed to the software that came with it. It also converts the Microsoft e-books (.lit) into something the Sony can read. I had a bunch of those left over from my iPAQ and I can’t find the Microsoft software anymore.

    Comment by Kevin — January 15, 2009 @ 1:21 am BST Jan 15,2009 | Reply

  3. Sir,
    Surely Practical Oracle8i can’t be a miss from the list.If someone would ask, I would include Scaling Oracle 8i also in the shopping list.
    Regards
    Aman….

    Comment by Aman Sharma — January 15, 2009 @ 3:10 am BST Jan 15,2009 | Reply

  4. Thank You. that’s a great idea about books for DBA.

    I read Tom Kyte: Expert Oracle Database Architecture, Tom’s Expert One-on-one Oracle, Jonathan Lewis: Cost Based Oracle – Fundamentals.
    They’re a good book… help me understand Oracle Arch, Index and….

    Anyway I sometimes go back to read Oracle Documents…

    Comment by Surachart — January 15, 2009 @ 5:11 am BST Jan 15,2009 | Reply

  5. I saw a Sony e-book reader in a bookshop once, and as I’m tempted in the direction of getting an e-book reader, I thought I’d give it a go.

    I couldn’t find any way of adjusting the text size and found the fact that whenever you “turned the page” the text was highlighted and then de-highlighted. Is there a way of changing the text size, and is there a way of turning off the highlighting thing (which I found intensely annoying, distracting and off-putting!)?

    I also think that the screen size is too small – I’d prefer it if it was at least “normal” (as opposed to the larger sizes of) paperback size.

    Comment by Boneist — January 15, 2009 @ 9:35 am BST Jan 15,2009 | Reply

  6. I have 5 books from the list you mentioned plus Practical Oracle8i and Effective Oracle by Design. I have never been disapointed by the book you recommend. So this means that I have to by the remaining books:-)

    I will also include “Practical Oracle8i” in the list as well.

    But above all, I like your writing style and that of Cary Millsap

    Comment by Mohamed — January 15, 2009 @ 2:06 pm BST Jan 15,2009 | Reply

  7. Hi Jonathan,

    Just wonder how could you learn and be an expert in Oracle without reading many Oracle books?

    Why don’t you include Oracle insights to your list?

    Comment by Bunditj — January 15, 2009 @ 5:20 pm BST Jan 15,2009 | Reply

  8. Stephen,
    Good choice, but like my comment about “also get Practical Oracle 8i”, I would put the Oracle Wait Interface book by Richmond Shee et. al. just after Christian’s book, and the Tuning book by Gaja Vaidyanatha et. al. just after that.

    Kevin,
    It never crossed my mind that there could be an alternative to running Sony’s software. I’ll have to look into that.

    Aman,
    Thanks for the comment about Practical Oracle 8i – it is still worth reading, but there are some books which are more immediately useful to the junior DBA.

    Boneist,
    There is a button (near the bottom left corner) to adjust the text size (I have to use it when reading in low light when I’m wearing my contact lenses). First press doubles the size of the text, second text doubles it again (so you don’t get many words on the screen) third press shrinks the text back to default. I don’t think there’s any way to avoid the “blink” – I suspect it’s the way the page turn has to work, it prepares the full page and then swaps it: you get the same full-page “blink” even on the menu when you move a highlight. I’ve trained myself to blink as the page “blinks”.

    Mohamed,
    Thanks for the comment about style. Cary and I both spent a lot of time on honing our texts into something that could be read comfortably.

    Bundithj,
    I started a long time ago, in the days when people were given time to think, design, and test. For my first Oracle project I was given two months investigation time before I had to design and implement a system – and you can learn a lot in two months. I also bought myself an HP9000 (and an Oracle license for it) many years ago so that I could do some serious investigation at home. But mostly, I didn’t need to buy any books because I read the manuals so many times then tested how things really worked.

    I left “Oracle Insights – Tales of the Oak Table” off the list because it’s more of an anecdotal book for the more advanced DBA, rather than an educational aid for the junior DBA.

    Comment by Jonathan Lewis — January 15, 2009 @ 8:50 pm BST Jan 15,2009 | Reply

  9. For newbies on UNIX I highly recommend “UNIX Complete” by Dyson, Kelly-Booth & Heilborn (Sybex) and “UNIX Shell Programming” by Kochan & Wood (SAMS). It’s surprising how much DBA time is spent outside the database, and getting up to speed with the operating system is, I say, pretty important.

    Comment by Nigel West — January 15, 2009 @ 9:10 pm BST Jan 15,2009 | Reply

  10. Books: I am reading your CBO Fundamentals book and something is puzzling me: why, on page 10, do you use “Freelist space management—not automatic segment space management” to investigate the CBO? I ask, as surely ASSM is (in spite of recently advertised bugs) the most commonly used setting? I know that you say on page 10 that you want to test using a stable platform, but isn’t avoiding ASSM a push too far?

    Comment by Nigel West — January 16, 2009 @ 9:52 am BST Jan 16,2009 | Reply

    • Nigel,

      Using freelist management instead of ASSM doesn’t change the algorithms, only (depending on process id) some of the numbers that go into the algorithms. Since it was just a question of “if you tell me your v$process.pid, I’ll tell you the answer” the feature is not really material to understanding the way the optimizer works. (In fact, when you read chapter 5 on the clustering factor, you’ll see that using ASSM can result in bad execution plans because the numbers have changed – but the plans are still predictable in exactly the same way from the numbers.)

      Comment by Jonathan Lewis — January 30, 2009 @ 5:38 pm BST Jan 30,2009 | Reply

  11. Is it possible to get Oracle Concepts on paper? I have never seen it advertised on Oracle’s site. I have often considered hammering my print quota at work and printing it over several weeks… I agree that paper can’t be beaten and have never got right through Concepts for this reason.

    Comment by cam — January 16, 2009 @ 12:56 pm BST Jan 16,2009 | Reply

    • Cam.

      There are some manuals that you can buy in paper format from the Oracle Store (go to http://www.oracle.com (or your national equivalent) and look at the list of resources at the bottom right. There’s a link “Shop online”, follow that, pick your country/language, and the next page has a “Documentation” tab near the top right.

      I thought the Concepts manual was one of them, but I’ve just done a quick check in the 10.2 listings and it’s not there.

      Comment by Jonathan Lewis — January 30, 2009 @ 5:55 pm BST Jan 30,2009 | Reply

  12. @cam

    Print it off a chapter, or two, at a time. You won’t want to have half a tree’s worth of paper floating around, anyway! I di dthis a few years back – I found that it paid to absorb Concepts in bite size chunks.

    Comment by Nigel West — January 16, 2009 @ 1:34 pm BST Jan 16,2009 | Reply

  13. I think that’s a pretty good list, I’ll have to look up the ones I have not seen. I think reading the Concepts guide is an excellent starting place, though it can be rather dry (I’m always amazed by how many DBAs have never gone through it). Readability is a key reason I like Cary’s book so much.
    Your list obviously leans heavily on the performance side. I’ve found PL/SQL to be a key Oracle skill for me over the years so I would put Oracle PL/SQL programming by Steve Feuerstein in there too.
    As for book 10, a bad one to compare others with, without naming a specific one I found some of the early Oracle Press ones (V7 era) particularly bad and I’ve kept one because it was so bad.

    Comment by Martin W — January 16, 2009 @ 5:14 pm BST Jan 16,2009 | Reply

  14. Thank you for such a wealth of information about the books. It is very difficult to find really GOOD one. There is a question about a good RAC book. I joined a new company and they use RAC. I’ve never work with it. Do you have any suggestions?

    Jenny.

    Comment by Jenny — January 19, 2009 @ 2:24 pm BST Jan 19,2009 | Reply

    • Jenny,

      I think I’d go with Nigel’s suggestion.
      I haven’t read Julian Dyke’s book, but I know his work and the level of thought he puts into checking his results. If you want an indication of his ability before buying, check his website: http://www.juliandyke.com/

      Comment by Jonathan Lewis — January 30, 2009 @ 6:00 pm BST Jan 30,2009 | Reply

  15. @ Jenny

    I recommend “Pro Oracle Database 10g RAC on Linux” by Julian Dyke.
    # ISBN-10: 1590595246
    # ISBN-13: 978-1590595244

    Comment by Nigel West — January 19, 2009 @ 6:03 pm BST Jan 19,2009 | Reply

  16. Thank you, Nigel

    Comment by Jenny — January 22, 2009 @ 7:43 pm BST Jan 22,2009 | Reply

  17. Jonathan-

    Agree with you about getting a Kindle- unfortunately they are sold out so fast it makes it a challenge to pick one up online! Maybe I can find a way to hack my Sony PSP to read ebooks. Worth a challenge. Anyways for a solid Oracle Backup and Recovery book, I like Robert Freeman’s Oracle RMAN Backup and Recovery book which is excellent for the many case studies and examples. Usually, I read the manuals from Oracle, Metalink notes and test these out to find where, why and how things break in a test environment.

    Cheers,
    Ben

    Comment by Ben Prusinski — January 27, 2009 @ 5:50 pm BST Jan 27,2009 | Reply

    • Ben,

      This is another book I haven’t read. Again, though, I would say that it’s an author I would consider worth reading (after all, I contributed to his 10g New Features book). I’ve heard him speak at conferences and his comments were reasonable and sensible. I believe I’ve seen some comment about there being a number of scenarios described in the book – which is probably the most useful feature in a book on Recovery and Backup: getting the idea of the possibilities is probably the one thing you really need in this area, even if a single book isn’t going to be able to tell you all the latest details and give you an unbreakable solution for your specific requirements.

      Comment by Jonathan Lewis — January 30, 2009 @ 6:24 pm BST Jan 30,2009 | Reply

  18. Re: Julian Dyke’s RAC on Linux Book:

    I self-taught RAC using this book – it’s definitive and logically set-out.

    I like the book, too, because it covers such things as NIC teaming, and other hard-to-find-decent-stuff-about topics.

    In sum: good for the RAC newbie and veteran, alike.

    Comment by Nigel West — February 1, 2009 @ 4:45 pm BST Feb 1,2009 | Reply

  19. Nigel – I actually started doing the chapter at a time thing a few years ago.. but it took so long, 10g came out in the middle of it and I felt like starting again..! Good shout though.

    As for the Julian Dyke book – how tied to linux is it? I’m guessing its 90% transferable to other platforms but maybe its not quite like that? Any comments?

    Jonathan – I’m in the UK and also failed to find Concepts in the dead tree area…

    cam

    Comment by cam — February 4, 2009 @ 10:42 pm BST Feb 4,2009 | Reply

  20. The RAC on Linux book is, really, suited to RAC on Linux only. I suppose RAC on other UNIX-like platforms, too.

    That’s what it was written for.

    Comment by Nigel — February 12, 2009 @ 3:12 pm BST Feb 12,2009 | Reply

  21. I second Julian Dyke’s RAC on Linux book. It is hands down the best RAC for Linux book out there. Yes, Linux is different from other OS platforms for RAC but most is applicable to other platforms. Plus, Julian is a great guy. I met him last year at OpenWorld. Murali Vallath also has an excellent book on RAC that covers more of a general approach.

    Regards,
    Ben

    Comment by Ben Prusinski — February 12, 2009 @ 4:33 pm BST Feb 12,2009 | Reply

  22. Hi, another add on to the list. The “Oracle Wait Interface: A Practical Guide to Performance Diagnostic and Tuning”, Oracle Press is still good and handy.

    Comment by Ung — February 25, 2009 @ 4:23 am BST Feb 25,2009 | Reply

  23. [...] book is already reviewed as a blog post by many other bloggers like Carry Millsap, Jonathan Lewis (they  also wrote forewords for the book), Jason Arneil and  Tonguc [...]

    Pingback by TOP by Christian Antognini « Coskan’s Approach to Oracle — May 20, 2009 @ 4:29 pm BST May 20,2009 | Reply

  24. [...] MySQL, or DB2 but not with Oracle. If you’re looking for a more advanced book, consider these recommendations by Jonathan Lewis. My point is that every book has a specific target audience. There is even a database book for [...]

    Pingback by Comic Book on Relational Databases « So Many Oracle Manuals,So Little Time — May 23, 2009 @ 10:45 pm BST May 23,2009 | Reply

  25. [...] books are plentiful; here is a list of reading suggestions from Jonathan Lewis. All the Oracle reference manuals are available online. Oracle software is free to download and [...]

    Pingback by Where Have All The Jobs Gone? « So Many Oracle Manuals, So Little Time — June 24, 2009 @ 10:06 pm BST Jun 24,2009 | Reply

  26. Jonatahn:

    In Cost Based Fundamentals, you say (Ch.1, P.4): “Oracle may transform your SQL into an equivalent statement—possibly one that ***isn’t even legally acceptable SQL*** —and then work out the cost for that equivalent statement”

    I have emphasised with splats the interesting bit.

    Why would Oracle do that?

    Comment by Nigel — August 3, 2009 @ 9:44 am BST Aug 3,2009 | Reply

    • Nigel,
      “Why would Oracle do that ?”
      Because there are things that can be handled easily are logically correct but not part of the SQL standard.

      A trivial example (from a presentation by Mahomed Zait) is the way that a “not in” subquery is transformed into an anti-join. The standard does not have syntax like:

       select t1.{column list}
       from t1, t2 
       where t2.colX A= t1.colX
       ;
      

      (Note that the “A=” is deliberate as a shorthand for “anti-join”).

      Comment by Jonathan Lewis — August 6, 2009 @ 4:19 pm BST Aug 6,2009 | Reply

  27. Hi Jonathan

    I am very curious to hear from you about the following:

    (1) The next volumes (or) editions of CBO – Fundamentals

    (2) After Oracle 11g R2 being on stage, do you still recommend “Practical Oracle 8i” (or) do you have any plan on writing “Practical Oracle 11g R2″ ?

    Comment by Parthiban Nagarajan — November 16, 2009 @ 5:45 am BST Nov 16,2009 | Reply

    • Parthiban,

      I keep re-starting work on volume 2 (which broadly speaking is “trouble-shooting the CBO”) but I keep getting distracted by my day job, not to mention having to deal with the problem of describing how 11g changes the problems and solutions. I’m not going to predict a publication date until after I’ve sent the manuscript to the publisher.

      Practical Oracle 8i is still a good read – but I think there ought to be something on the market that is more appropriate. But for anyone who doesn’t want to buy a book that’s three versions out of date, I’d advise the Concepts manual as the best starting point.

      Comment by Jonathan Lewis — November 19, 2009 @ 6:22 pm BST Nov 19,2009 | Reply

    • Hi Jonathan

      How about now? When your second volume would be released?

      Regards

      Comment by Parthiban Nagarajan — December 9, 2010 @ 8:15 am BST Dec 9,2010 | Reply

      • Parthiban,

        I was asked the same question during the recent E2SN virtual conference – and I pointed out that I’d probably have to stop blogging for about a year to make time for finishing the book. Tanel told me that the online response to this comment was an overwhelming vote in favour of blogging. So perhaps it’s time I put it to a wider vote:

        Comment by Jonathan Lewis — December 10, 2010 @ 8:38 am BST Dec 10,2010 | Reply

        • Jonathan,

          all what you need is to have an assistant, who would write all your remakrs and ideas to the blog :-)

          Comment by Pavol Babel — December 11, 2010 @ 7:20 pm BST Dec 11,2010

        • Blog, and then have a collaborator edit posts into a book.

          I still use unix power tools, which was “just” a compilation from a usenet newsgroup. Bought it twice, in fact.

          Comment by joel garry — December 13, 2010 @ 8:55 pm BST Dec 13,2010

        • Hi Jonathan

          It’s been almost one and a half year since my first comment about the next volumes/editions of your book. Why I am biased towards books rather than blogs …
          (1)When one writes a book, he needs to take care about the whole book to make it good. Whereas, to write a blog, he needs to care about just a few links of reference. That extra bit of care makes the books very special. The whole book will guide one as a Teacher. In blogs, its somewhat hard to find where to start, where to go next, etc.
          (2)Hard-copy of the book means it is very close to you – very portable; just flip the pages to read even when traveling or in bed.
          (3)In India, Internet is darn slow; and it costs a lot too to pay for the internet usage than to buy a new book.
          (4)Thank God, your blog is in wordpress. In our office, blogspot is restricted. I miss a few good oracle blogs like the tkyte blog. (As of now, I don’t own a PC (or) laptop. Though I would buy one within a few months this year, I started planning for that before a few years.)
          (5)Summarising, in my humble opinion, books are more user-friendly than blogs, at least for a typical Indian.

          If you find any words inappropriate for this thread, you can delete the whole comment. Its not my intention to do so. Hope you can understand me.

          Best Regards

          Comment by Parthiban Nagarajan — April 1, 2011 @ 12:19 pm BST Apr 1,2011

        • Parthiban,

          Thank you for your comments.


            “When one writes a book, he needs to take care about the whole book to make it good.”

          This is particularly relevant. As far as I am concerned any book about how Oracle works should be consistent and cohesive. That means the entire book has to be a single narrative. Because of that it’s MUCH harder to write a single book of 400 pages than it might be to write 100 articles of 4 pages. And that’s why I keep running out of time whenever I sit down to spend time on the next book.

          Comment by Jonathan Lewis — April 5, 2011 @ 6:08 pm BST Apr 5,2011

  28. Jonathan,

    I also started out years ago by buying used servers and had an HP9000 and SunSparc server and loaded the software to learn how Oracle really works. Read the manuals many times over.
    Yes, we were given time to think and test. Wish we still had that luxury today. I think corporations would save money in the long run and build rock solid database systems.

    As for writing books, I am almost finished book #4 (Oracle 11gR2 RAC Handbook by PACKT Press) and given the 60 hour work weeks, I am starting to have even less time to devote to writing books. So I feel your pain. Plus I plan to an MBA degree soon so will be tough to write a book for a while after this one is done.

    Cheers,
    Ben

    Comment by Ben Prusinski — November 19, 2009 @ 6:59 pm BST Nov 19,2009 | Reply

  29. [...] Jonathan had commented somewhere that ASSM is like freelists(16) (or maybe it was freelist groups (16)).  The blocks selected for insert are dependent on the v$process.pid for the session (I have seen a couple of good descriptions of how this works, but cannot locate those descriptions right now).  See the follow up to comment 10 here: https://jonathanlewis.wordpress.com/2009/01/14/books/ [...]

    Pingback by Database using ASSM Tablespace Exhibits Slow Insert Performance After an Uncommitted Delete « Charles Hooper's Oracle Notes — January 28, 2010 @ 6:02 am BST Jan 28,2010 | Reply

  30. [...] passing, I have launched (yet another) poll in response to a question from a reader. In this case the poll is whether I should carry on [...]

    Pingback by Quiz Night « Oracle Scratchpad — December 11, 2010 @ 9:32 am BST Dec 11,2010 | Reply


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

The Rubric Theme Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 3,507 other followers