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 work, revamping algorithms, ensuring correctness, you know the score. Then my eyes snagge

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,

Quick Guide to User-Defined Types in Oracle PL/SQL

A Twitter follower recently asked for more information on user-defined types in the PL/SQL language, and I figured the best way to answer is to offer up this blog post. PL/SQL is a strongly-typed language . Before you can work with a variable or constant, it must be declared with a type (yes, PL/SQL also supports lots of implicit conversions from one type to another, but still, everything must be declared with a type). PL/SQL offers a wide array of pre-defined data types , both in the language natively (such as VARCHAR2, PLS_INTEGER, BOOLEAN, etc.) and in a variety of supplied packages (e.g., the NUMBER_TABLE collection type in the DBMS_SQL package). Data types in PL/SQL can be scalars, such as strings and numbers, or composite (consisting of one or more scalars), such as record types, collection types and object types. You can't really declare your own "user-defined" scalars, though you can define subtypes  from those scalars, which can be very helpful from the p