Skip to main content

Meet Blaine Carter, new Oracle Developer Advocate for Open Source

I am very pleased to announce the latest member to my team of Oracle Developer Advocates: Blaine Carter.

Blaine will focus on using open source application development technologies with Oracle Database. He will be working closely with Dan McGhan, our Oracle Developer Advocate for JavaScript.

Blaine kindly shared the following for your reading pleasure.


Hi, I'm Blaine Carter.

I started programming in 1995.  For most of my career I've used Oracle tools to build applications.  Beginning with Oracle Forms and Reports, I created an application 100% in Designer 2k.  I helped write and maintain an HTML framework in PL/SQL similar to APEX. I've done a little Java both inside and outside the database, and of course a whole bunch of SQL and PL/SQL.

A few years ago, I started getting interested in other technologies.  I wrote a tiny bit of Perl; explored using Solr and Elastic Search as a database for some small projects; wrote a some more Java; built a project with Ruby for a small Autism center; and wrote lots of JavaScript.

While using these technologies, I started to drift away from Oracle.  The prevailing viewpoint in these communities seemed to be that Oracle is wrong, in one way or another, for open source technologies.  Most of them prefer a data storage solution that is "free" -- if you just put in enough effort.  I spent quite a lot of time bumping up against one "small" problem or another, getting increasingly grumpy along the way, because I knew how to solve the problem in an Oracle database, sometimes with something as simple as a synonym.

Last month, I saw the posting for the Oracle Developer Advocate for Open Source position and my first thought was "It would be awesome if that were real – if Oracle was really serious about reaching out to open source communities." I decided to give it a shot and see what it's all about.  I spoke with a lot of people both in and out of the team. Everyone was so excited about the future that I became convinced it is for real....and that I really wanted to be a part of the effort.

Fortunately, Steven Feuerstein and Mike Hichwa felt the same away about me, and I started my new position on April 1st – and that's no joke!

I think this is going to be one of the most challenging jobs I've ever taken on – and that's exciting!  The way I see it, we have a couple things to accomplish:

1. We need to show open source application developers that Oracle is not the enemy.  We need to help them see that they can explore and build with these languages, but still use proven, powerful Oracle Database technology.  

It's always seemed odd to me that lots of developers shift to open source to expand their knowledge, tool set and options, but then get locked into a specific stack and a kind of "default" database.  With JavaScript, that might be MEAN, with Ruby it's PostgreSQL, with PHP it's LAMP.  We need to help people avoid the mistake I made thinking that learning something new means learning everything new.

2. On the other hand, even though I believe Oracle Corporation is committed to open source, some inside the company might still see open source as the enemy.  We need to help Oracle get more involved in the open source communities, get some pull requests submitted, attend and present at meetups, and show the world we're serious – about having fun with open source. J

I see the work I will be doing is kind of bridge building, between Oracle and open source communities.

I intend to help the open source communities see that when they chose the best language for their project they don't have to be locked into that language's default data store.  They can still choose the very best database for their project.  Sure, that might not always be Oracle Database, but when it is, it should be easy for them to integrate Oracle Database into their technology stack.  

And I intend to help my fellow Oracle technologists understand why we are sometimes seen as a bad guy, and work with them to undo that image by making Oracle Database and its many fantastic appdev features more accessible and easier to use. Our Cloud Database will be huge in making this shift happen.


Another part of my bridge building is reaching out to other bridge builders: Oracle technologists also working in the open source space. So I'd love to hear about your experiences, your ideas, and how I –and the entire Oracle Developer Advocate team – can help.

You can reach Blaine at blaine.carter@oracle.com.

Comments

  1. Hi Steven, is his mustaches real ?

    ReplyDelete
    Replies
    1. Howdy Fahd, right now it's a bit bushier than usual but, yes it's real.

      Delete

Post a Comment

Popular posts from this blog

Running out of PGA memory with MULTISET ops? Watch out for DISTINCT!

A PL/SQL team inside Oracle made excellent use of nested tables and MULTISET operators in SQL, blending data in tables with procedurally-generated datasets (nested tables).  All was going well when they hit the dreaded: ORA-04030: out of process memory when trying to allocate 2032 bytes  They asked for my help.  The error occurred on this SELECT: SELECT  *    FROM header_tab trx    WHERE (generated_ntab1 SUBMULTISET OF trx.column_ntab)       AND ((trx.column_ntab MULTISET             EXCEPT DISTINCT generated_ntab2) IS EMPTY) The problem is clearly related to the use of those nested tables. Now, there was clearly sufficient PGA for the nested tables themselves. So the problem was in executing the MULTISET-related functionality. We talked for a bit about dropping the use of nested tables and instead doing everything in SQL, to avoid the PGA error. That would, however require lots of wo...

How to Pick the Limit for BULK COLLECT

This question rolled into my In Box today: In the case of using the LIMIT clause of BULK COLLECT, how do we decide what value to use for the limit? First I give the quick answer, then I provide support for that answer Quick Answer Start with 100. That's the default (and only) setting for cursor FOR loop optimizations. It offers a sweet spot of improved performance over row-by-row and not-too-much PGA memory consumption. Test to see if that's fast enough (likely will be for many cases). If not, try higher values until you reach the performance level you need - and you are not consuming too much PGA memory.  Don't hard-code the limit value: make it a parameter to your subprogram or a constant in a package specification. Don't put anything in the collection you don't need. [from Giulio Dottorini] Remember: each session that runs this code will use that amount of memory. Background When you use BULK COLLECT, you retrieve more than row with each fetch, ...

Why DBMS_OUTPUT.PUT_LINE should not be in your application code

A database developer recently came across my  Bulletproof PL/SQL  presentation, which includes this slide. That first item in the list caught his attention: Never put calls to DBMS_OUTPUT.PUT_LINE in your application code. So he sent me an email asking why I would say that. Well, I suppose that is the problem with publishing slide decks. All the explanatory verbiage is missing. I suppose maybe I should do a video. :-) But in the meantime, allow me to explain. First, what does DBMS_OUTPUT.PUT_LINE do? It writes text out to a buffer, and when your current PL/SQL block terminates, the buffer is displayed on your screen. [Note: there can be more to it than that. For example, you could in your own code call DBMS_OUTPUT.GET_LINE(S) to get the contents of the buffer and do something with it, but I will keep things simple right now.] Second, if I am telling you not to use this built-in, how could text from your program be displayed on your screen? Not without a lot o...