Feed aggregator

Oracle Announces Plans for Visual Studio 2015 Support

Christian Shay - Tue, 2015-07-07 08:36

Oracle plans to offer a new version of the Oracle Developer Tools for Visual Studio integrated with Microsoft Visual Studio 2015. This new version is planned to be available within one month of Visual Studio 2015's Release to Manufacturing (RTM) date. As with earlier releases of Visual Studio, Oracle has partnered closely with Microsoft as part of the Visual Studio Industry Partner Program to make this release possible. Keep an eye on the OTN .NET Developer Center or follow us on Twitter for the upcoming release announcements.

Enterprise Software's Life Lessons

Floyd Teter - Mon, 2015-07-06 14:13
Well, I ain't always right but I've never been wrong.
Seldom turns out the way it does in a song.
Once in a while you get shown the light
In the strangest of places if you look at it right.
                               - From Jerry Garcia's "Scarlet Begonias"

Somebody asked the other day what I've learned from from 25-plus years of working with, implementing, and developing enterprise software applications.  Kind of a life's lessons thing.  A pretty innocent question, but one that got me thinking.  And the more I thought, the longer the list became. I've been shown the light several times, usually in the strangest places and when I least expected it.  So the list grew to the point that I thought it might be worth sharing.  The list is not organized into subject areas, importance, thought streams, or sand piles.  I just wrote 'em down as I thought of them.

One caveat:  you may get the impression that my perspective here is a little negative...dark even.  Nothing could be further from the truth.  I love my job, I love being in this industry, and I love what I do and who I do it with...every day.  But, like much of what we learn, most of these ideas came from painful experiences.  I just wrote 'em the way I learned 'em.


So, without further delay:


  1. The Prime Directive: at no time shall anyone interfere with the natural progression of a project by introducing unnecessarily advanced technologies or over-engineered features.
  2. Nobody buys enterprise applications for the technology.  They buy for desired outcomes…end states.  Everything else is white noise.  The software vendor that best understands those desired outcomes and how to achieve them usually wins the business.  Enterprise software is a set of tools, not a finished house.
  3. If you’re in product management or product development, the most important word in the English language is “No”.
  4. If project success is measured by achieving the originally desired outcomes on time and within budget, enterprise applications projects (both developing and implementing) only succeed 39% of the time.  This stuff is hard.
  5. In the world of SaaS providers, 4 measures matter:  A) subscription revenue growth; B) subscription recurring revenue (often referred to in the negative sense as “churn”); C) percentage of subscription customers who have “gone live”; D) the time from original subscription to “go live” date.
  6. If you’re a consultant, your client will “vote you off the island” more often than not…usually at the next speed bump encountered.  It’s similar to being the manager of a sports team…the team manager’s reign usually ends with termination because something isn’t going right.  Don’t worry about it.  Be as good as you can be at doing what you do, be honest and transparent, and understand that it’s just the nature of the business.  So travel light.  You can’t please all of the people all of the time.
  7. In the SaaS market, good product gets you a seat at the table.  But good service keeps you there.
  8. Usable tools to compliment enterprise applications are just as important as the applications themselves.
  9. There will always be glitches at launch that did not appear in testing.  Keep cool, tune out the screaming, and work the issue.
  10. When estimating a project for internal or external customers, the required deadline is never negotiable.  Someone in leadership stuck that stick in the sand long before you learned about the need.  It’s not changing until it slips.
  11. When estimating a project for internal or external customers, the required budget is never negotiable.  Someone in leadership stuck that stick in the sand long before you learned about the need.  It’s not changing until the need for change is manifested.
  12. Fast, inexpensive, restrained (in scope) and elegant (simple but effective) projects with small teams are much more likely to succeed than projects with big scope, long schedules, bug budgets and big teams.
  13. If you find yourself speaking more than 20 percent of the time in any given exchange, you may want to consider shutting your yap and listening for a few minutes.
  14. If all of your stakeholders can’t describe your project in 30 seconds or less, you have organizational change managements issues to resolve before you can hope to deliver.
  15. Whenever your budget burn rate varies more than 15 percent (plus or minus), you have a problem that must be corrected before it grows worse.
  16. A great user experience is no longer a competitive advantage; it’s simply a requirement for entering the market.
  17. There is a “love cycle” in enterprise software implementation projects.  Early on, it’s a love fest.  The love fest shortly becomes an “us against them, but we’re stuck with each other” atmosphere.  Finally comes the “thank goodness this thing is over.”  The same cycle always applies, whether the project is successful or not.  It’s just a symptom of the stress that comes from taking the risks represented by the project itself.
  18. Packaged integrations out of the box don’t work.  They’ll need revising or rebuilding. Just build it into the plan up front.
  19. Be prepared.
  20. Always, always, always follow the money.
  21. Customizing packaged software is the most difficult and expensive choice.  Be sure you understand what you can accomplish within the functionality of the software before you decide to customize.
  22. Burn your calories where it matters.  Moving buttons on a screen does not change delivery of a desired outcome.  Tweaking a business process might.
  23. Ease of use trumps depth of features every time. Complexity is not a sign of sophistication.  The most important product and project decisions often revolve around what to leave out…minimalism generally breeds success.
  24. When you reveal innovation, you have about a 24-month window before a competitor does it better, faster or cheaper.
  25. When you feel like you’re out of the communication loop, it’s probably to late to do better with communicating - the vote of no confidence has already taken place and you’re on the way out.  So, right from the beginning of any effort, keep in mind that you can never over-communicate.  Listen and talk - it’s the key to gain the confidence of others.
  26. The customer is not always right.  Nevertheless, listen to, empathize with, and guide your customers (in that order)…regardless.
  27. Reporting and business intelligence are best planned earlier rather than later.  And information without context is just data.
  28. Mobile matters:  if you can’t offer productivity from a phone, it doesn’t much matter what else you offer.
  29. A project leader’s influence is inversely proportional to the size of the budget.
  30. If you’re fast because you’re quick, that’s good.  If you’re fast because you hurry, that’s bad.  The former indicates efficiency, while the latter just breeds mistakes.  As famed college basketball coach John Wooden often said:  "Be quick, but don’t hurry."
So, how about you?  Have some pearls of wisdom to share with the class?  Comment away!

Why A Brand New Index Might Benefit From An Immediate Coalesce (One Slip)

Richard Foote - Mon, 2015-07-06 02:58
A recent question on the OTN Forums Reg: Index – Gathering Statistics vs. Rebuild got me thinking on a scenario not unlike the one raised in the question where a newly populated index might immediately benefit from a coalesce. I’ve previously discussed some of the pertinent concepts such as how index rebuilds can make indexes bigger, not smaller […]
Categories: DBA Blogs

RESULT_CACHE: run-time dependency tracking

XTended Oracle SQL - Sun, 2015-07-05 14:20

As you know, since 11.2 “relies_on” clause was deprecated and oracle tracks dependencies at runtime now.

Test function and tables
create or replace function f_without_deps(p_tab varchar2) return varchar2
as
   res varchar2(30);
begin
   execute immediate 'select '''||p_tab||''' from '||p_tab||' where rownum=1' into res;
   return res;
end;
/
create table a as select 'a' a from dual;
create table b as select 'b' b from dual;
create view v_ab as select a,b from a,b;

[collapse]

And it works fine with normal tables:
v_ab
SQL> exec :p_tab:='v_ab';

PL/SQL procedure successfully completed.

SQL> call DBMS_RESULT_CACHE.flush();

Call completed.

SQL> select/*+ result_cache */ f_without_deps(:p_tab) result from dual;

RESULT
----------
v_ab

1 row selected.

SQL> select name,bucket_no, id,type,status,pin_count,scan_count,invalidations from v$result_cache_objects o order by type,id;

NAME                                                               BUCKET_NO  ID TYPE       STATUS     PIN_COUNT SCAN_COUNT INVALID
----------------------------------------------------------------- ---------- --- ---------- --------- ---------- ---------- -------
XTENDER.F_WITHOUT_DEPS                                                  1579   0 Dependency Published          0          0       0
XTENDER.V_AB                                                            3127   2 Dependency Published          0          0       0
XTENDER.B                                                                778   3 Dependency Published          0          0       0
XTENDER.A                                                                464   4 Dependency Published          0          0       0
select/*+ result_cache */ f_without_deps(:p_tab) result from dual       1749   1 Result     Published          0          0       0

[collapse]

But don’t forget that the result_cache also caches such functions with the objects, that usually should not be cached, and such objects will not be listed in the result_cache dependencies list:
v$database
SQL> exec :p_tab:='v$database';

PL/SQL procedure successfully completed.

SQL> call DBMS_RESULT_CACHE.flush();

Call completed.

SQL> select/*+ result_cache */ f_without_deps(:p_tab) result from dual;

RESULT
----------
v$database

1 row selected.

SQL> select name,bucket_no, id,type,status,pin_count,scan_count,invalidations from v$result_cache_objects o order by type,id;

NAME                                                               BUCKET_NO  ID TYPE       STATUS     PIN_COUNT SCAN_COUNT INVALID
----------------------------------------------------------------- ---------- --- ---------- --------- ---------- ---------- -------
XTENDER.F_WITHOUT_DEPS                                                   772   0 Dependency Published          0          0       0
PUBLIC.V$DATABASE                                                       1363   2 Dependency Published          0          0       0
select/*+ result_cache */ f_without_deps(:p_tab) result from dual       2283   1 Result     Published          0          0       0

3 rows selected.

[collapse]
As you can see, there is only dependency on public synonym V$DATABASE, but not real base fixed X$-tables.
SYS.OBJ$
SQL> exec :p_tab:='sys.obj$';

PL/SQL procedure successfully completed.

SQL> call DBMS_RESULT_CACHE.flush();

Call completed.

SQL> select/*+ result_cache */ f_without_deps(:p_tab) result from dual;

RESULT
----------
sys.obj$

1 row selected.

SQL> select name,bucket_no, id,type,status,pin_count,scan_count,invalidations from v$result_cache_objects o order by type,id;

NAME                                                               BUCKET_NO ID TYPE       STATUS     PIN_COUNT SCAN_COUNT INVALID
----------------------------------------------------------------- ---------- -- ---------- --------- ---------- ---------- -------
XTENDER.F_WITHOUT_DEPS                                                  3922  0 Dependency Published          0          0       0
select/*+ result_cache */ f_without_deps(:p_tab) result from dual       3753  1 Result     Published          0          0       0

2 rows selected.

[collapse]
The results were cached and the dependencies do not include system objects.
We easily check that the queries with any table in SYS schema or with sysdate,systimestamp,current_date,current_timestamp,dbms_random will not be cached:
SYS tables
SQL> select/*+ result_cache */ current_scn result from v$database;

    RESULT
----------
##########

1 row selected.

SQL> select name,bucket_no, id,type,status,pin_count,scan_count,invalidations from v$result_cache_objects o order by type,id;

no rows selected

SQL> explain plan for select/*+ result_cache */ * from sys.obj$;

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------
Plan hash value: 2311451600

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      | 87256 |  7328K|   296   (1)| 00:00:04 |
|   1 |  TABLE ACCESS FULL| OBJ$ | 87256 |  7328K|   296   (1)| 00:00:04 |
--------------------------------------------------------------------------

[collapse]
Note that there is no “RESULT CACHE” line.
And even if create own tables in SYS schema(don’t do it :)), they will not be cached :
SYS.V_AB
SYS> create table a as select 'a' a from dual;
SYS> create table b as select 'b' b from dual;
SYS> create view v_ab as select a,b from a,b;
SYS> grant select on v_ab to xtender;

XTENDER> explain plan for select/*+ result_cache */ * from sys.v_ab;
PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------
Plan hash value: 215283502

-----------------------------------------------------------------------------
| Id  | Operation            | Name | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |      |     1 |     6 |     4   (0)| 00:00:01 |
|   1 |  MERGE JOIN CARTESIAN|      |     1 |     6 |     4   (0)| 00:00:01 |
|   2 |   TABLE ACCESS FULL  | A    |     1 |     3 |     2   (0)| 00:00:01 |
|   3 |   BUFFER SORT        |      |     1 |     3 |     2   (0)| 00:00:01 |
|   4 |    TABLE ACCESS FULL | B    |     1 |     3 |     2   (0)| 00:00:01 |
-----------------------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement (level=2)

[collapse]

But sys_context and userenv will be cached successbully:
sys_context
SQL> explain plan for select/*+ result_cache */ sys_context('userenv','os_user')  from dual;

PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------
Plan hash value: 1388734953

---------------------------------------------------------------------------------------
| Id  | Operation        | Name                       | Rows  | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT |                            |     1 |     2   (0)| 00:00:01 |
|   1 |  RESULT CACHE    | 267m2hcwj08nq5kwxcb0nb2ka8 |       |            |          |
|   2 |   FAST DUAL      |                            |     1 |     2   (0)| 00:00:01 |
---------------------------------------------------------------------------------------

Result Cache Information (identified by operation id):
------------------------------------------------------

   1 - column-count=1; attributes=(single-row); parameters=(sys_context);
        name="select/*+ result_cache */ sys_context('userenv','os_user')  from dual"

14 rows selected.

[collapse]
userenv
SQL> explain plan for select/*+ result_cache */ userenv('instance')  from dual;

PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------
Plan hash value: 1388734953

---------------------------------------------------------------------------------------
| Id  | Operation        | Name                       | Rows  | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT |                            |     1 |     2   (0)| 00:00:01 |
|   1 |  RESULT CACHE    | dxzj3fks1sqfy35shbbst4332h |       |            |          |
|   2 |   FAST DUAL      |                            |     1 |     2   (0)| 00:00:01 |
---------------------------------------------------------------------------------------

Result Cache Information (identified by operation id):
------------------------------------------------------

   1 - column-count=1; attributes=(single-row); parameters=(sys_context); 
       name="select/*+ result_cache */ userenv('instance')  from dual"

[collapse]

Categories: Development

A function gets called twice if the result_cache is used

XTended Oracle SQL - Sun, 2015-07-05 08:37

Recently I showed simple example how result_cache works with non-deterministic functions and observed strange behaviour: a function gets fired once in the normal query, but twice with the result_cache hint.
Moreover, only third and subsequent query executions return same cached results as second query execution.
I didn’t want to investigate such behavior, just because 1) we should not cache the results of non-deterministic functions and 2) it doesn’t matter if we use deterministic functions.
But later I was asked to explain this, so this post is just a short description with test case.

Look at the simple function that just returns random values:

create or replace function f_nondeterministic(p int:=100) return int
as
  res number;
begin
   res:=round(dbms_random.value(0,p));
   return res;
end;
SQL> exec dbms_result_cache.flush;
PL/SQL procedure successfully completed.

SQL> select/*+ result_cache */ f_nondeterministic(1000) nondeter from dual;

  NONDETER
----------
       481

SQL> select/*+ result_cache */ f_nondeterministic(1000) nondeter from dual;

  NONDETER
----------
       689

SQL> select/*+ result_cache */ f_nondeterministic(1000) nondeter from dual;

  NONDETER
----------
       689

with result_cache_statistics
SQL> exec dbms_result_cache.flush;

PL/SQL procedure successfully completed.

SQL> select/*+ result_cache */ f_nondeterministic(1000) nondeter from dual;

  NONDETER
----------
       481

SQL> select name,value from v$result_cache_statistics where name in ( 'Create Count Success', 'Find Count');

NAME                                               VALUE
-------------------------------------------------- ----------
Create Count Success                               1
Find Count                                         0

SQL> select/*+ result_cache */ f_nondeterministic(1000) nondeter from dual;

  NONDETER
----------
       689

SQL> select name,value from v$result_cache_statistics where name in ( 'Create Count Success', 'Find Count');

NAME                                               VALUE
-------------------------------------------------- ----------
Create Count Success                               1
Find Count                                         1

SQL> select/*+ result_cache */ f_nondeterministic(1000) nondeter from dual;

  NONDETER
----------
       689

SQL> select name,value from v$result_cache_statistics where name in ( 'Create Count Success', 'Find Count');

NAME                                               VALUE
-------------------------------------------------- ----------
Create Count Success                               1
Find Count                                         2

SQL> select name,bucket_no, id,type,status,pin_count,scan_count,invalidations from v$result_cache_objects o;

NAME                                                BUCKET_NO         ID TYPE       STATUS     PIN_COUNT SCAN_COUNT INVALIDATIONS
-------------------------------------------------- ---------- ---------- ---------- --------- ---------- ---------- -------------
XTENDER.F_NONDETERMINISTIC                                552          0 Dependency Published          0          0             0
select/*+ result_cache */ f_nondeterministic(1000)       2102          1 Result     Published          0          2             0
 nondeter from dual

[collapse]

As you can see, second execution returns different result than first one.
If we change this function:

create or replace function f_nondeterministic(p int:=100) return int
as
  res number;
begin
   res:=round(dbms_random.value(0,p));
   dbms_output.put_line('fired! ('||res||')');
   return res;
end;

and repeat this test-case:

SQL> select/*+ result_cache */ f_nondeterministic(1000) nondeter from dual;

  NONDETER
----------
       943    -- << (2)

1 row selected.

fired! (607)    -- << (1)
fired! (943)    -- << (2)
SQL> /

  NONDETER
----------
       607    -- << (1)

1 row selected.

SQL> /

  NONDETER
----------
       607    -- << (1)

1 row selected.

SQL> /

  NONDETER
----------
       607    -- << (1)

1 row selected.

we will see that there were 2 function executions: first result was cached, and the second was fetched!

Categories: Development

Flipkart, ecommerce, machine learning, and free advice

Abhinav Agarwal - Sat, 2015-07-04 13:08
I wrote about the obsession of Flipkart (and Myntra) with "mobile-only" without even having an iPad-optimized app! I also talked about the stunning advances being made in voice-search by using machine learning, cognitive learning, natural language processing, even as voice-based search capabilities of e-commerce companies - including Amazon - remain abysmal. Finally, I also included several use-cases that these companies need to work on incorporating into their capabilities.

That piece, Flipkart, Focus and Free Advice, appeared in DNA on June 27th, 2015.


My earlier pieces on the same topic:
  1. Flipkart vs Amazon: Beware the Whispering Death - 20th April '15 (blog, dna)
  2. Mobile Apps: There’s Something (Profitable) About Your Privacy - 18th April '15  (blog, dna)
  3. Mobile advertising and how the numbers game can be misleading - 14th April '15  (blog, dna)
  4. Is Flipkart losing focus - 12th April '15  (blog, dna)
Flipkart, Focus, and Free Advice – Shipping Charges Also Waived!What is one to make of a statement like this - “India is not mobile-first, but mobile-only country[1]”? Especially so if it is from the co-founder of the largest ecommerce company in India, and it turns out the company does not even have an app for the Apple iPad?

I have written at length on the distractions that seem to have been plaguing Flipkart and why it cannot afford to drop its guard in this fiercely contested space[2] - especially in light of all the noise surrounding its mobile ambitions. Somewhat paradoxically, this post is about offering advice to Flipkart that calls for some diversification!

As a logical next step, I wanted to take a look at Flipkart’s mobile apps – both on the iOS and Android platforms – to see how well they were executing on their very bold ambitions. As an aside, I also wanted to see if these (and competitive) mobile apps were leveraging all the computing power now available on tap inside these tiny devices. After all, apart from the recent – and amazing – advances Google has made in its voice-based search capabilities[3], there was this stunning demo from Hound[4] that gave a glimpse into the huge advances that voice-recognition, search, and machine-learning technologies have made in the last decade.
#MustRead - what next, e-tailing ? @flipkart Flipkart, Focus and Free Advice http://t.co/zincR6LS9D via @dna @AbhinavAgarwal
— Harini Calamur (@calamur) June 28, 2015
Flipkart, Focus and Free Advice http://t.co/UNF20JCqer by @AbhinavAgarwal
— dna (@dna) June 27, 2015The results were, to put it mildly, massively disappointing – which I will describe in some detail.
It should be clear that Amazon and Flipkart and SnapDeal are going to be at each other’s throats in the Indian online retail market. This is one battle from which neither player can walk away. Amazon has lost the China market to Alibaba (“In the first quarter of 2014, Alibaba's e-tailing site had a 48.4 per cent market share against Amazon China's less than 3 per cent.”[5] If that was not enough, Alibaba and Foxconn are in talks with SnapDeal for a rumoured $500 million investment![6]).

Amazon cannot afford to now lose the India market to a local upstart. Flipkart, on the other hand, has even less choice. It plays only in the Indian market. It cannot walk away either; there is no other market for it to walk towards. Its valuations – expected to rise to $15 billion after its next round of funding[7] make it way too costly for it to be acquired – at least profitably so for those funders who have put in hundreds of millions of dollars at these later and higher valuations. Amazon and Flipkart have deep pockets; Flipkart can afford to bleed hundreds of millions of dollars a year even as it grows, while Amazon has conditioned Wall Street to grant it the currency of ultra-high valuations even as it operates on razor-thin margins. It is unlikely that either will be able to deliver a knockout punch to the other anytime soon. This is a fifteen-round slugfest that will be decided by who can keep soaking in the blows and keep standing at the end of the fifteenth round; while they fight, the customer continues to win. Amazon has more diversity in its portfolio of business divisions than does Flipkart – ecommerce, cloud computing services, streaming audio and video, MRO and industrial supplies, smartphones, tablets, and more. While these divisions may at times face off against each other in expectedly healthy and sometimes unhealthy rivalry, they still form a formidable front against the competition. To quote these immortal lines from the Mahabharata, “we may be five against a hundred, but against a common enemy we are a hundred and five.”

So what does Flipkart do? Three things, to begin with.

First, it needs to get serious about software.
When you have a web site that offers millions of products from tens of thousands of resellers to millions of customers that reside in tens of thousands of cities and towns and villages, you need to make sure that your customers are seeing the products that are of most relevance to them, and which they are most likely to buy. If that problems looks like a nail to you, specifically a large-scale optimization problem with a huge number of decision variables, then large-scale computing and regression modelling are the hammer. You need to be applying this hammer to the almost infinite number of nails in front of you, all day and all night long. This is what enables you to present an ever-relevant basket of products to your customers, which keeps them engaged when on your site, and which hopefully makes them buy more often than not. Flipkart needs to take a close, long, hard look at its search capabilities – about which I will talk later in this post – and its suggestions engine, because both are very subpar at this point. If it’s any consolation, while Amazon is certainly better in the search department, its capabilities in this area are nothing great either, yet. Where Amazon scores over its competitors – every single one of them - is its huge and ever-growing corpus of customer reviews. Flipkart probably recognizes the important of this corpus of customer reviews, but has run into rough weather over the expected problem of fake reviews[8].

For inspiration on where the trifecta of search, machine learning, and e-commerce could venture – with Big Data in tow - one can turn to the story of how the popular American TV game show “Jeopardy” became the battleground for IBM researchers to build upon their experience with Deep Blue (the computer that had beaten world chess champion Gary Kasparov in 1997[9]) and to build a computer that would defeat the reigning champion of Jeopardy. That happened in February 2011, after four years of work led by IBM researcher David Ferucci and “about twenty researchers”[10].
This required advances in machine learning and other esoteric concepts like LAT (Lexical Answer Type), IDF (Inverse Document Frequency), temporal and even geospatial reasoning.[11] A new suite of software and platforms, built on a concept called genetic programming (“a technique inspired by biological evolution”) has started to make its way into mainstream commercial applications.  The algorithm here “begins by randomly combining various mathematical building blocks into equations and then testing to see how well the equations fit the data. Equations that fail the test are discarded, while those that show promise are retained and recombined in new ways so that the system ultimately converges on an accurate mathematical model.”[12] What this essentially means is going beyond keyword search-based correlations and moving to more semantic-oriented searches that combine machine learning with natural language processing. This in turn requires serious software brains (smart programmers using and refining the right algorithms and models) and muscle (massive learning and training sets in the hundreds of gigabytes running on clusters of tens of thousands of nodes).
If Flipkart is serious about the mobile ad business (about which I have expressed my reservations), even then it needs to get to the holy grail of deep-learning in ad-tech – “Inferring Without Interfering” the customer’s intent.”[13] In any event, this policy will only stand Flipkart in good stead. If they are already doing so, then good, but the proof is not in the pudding as much as in the eating of the pudding.

A critical differentiator in the coming times is not, I repeat, not, going to be driven by slick UIs or gimmicks on mobile apps like “shake to see offers”, but by offering truly intelligent and immersive experience that are feasible even today. Advances in machine learning, and capabilities such as voice, video, location, and more, when used in tandem will power the next set of innovations. Rather than stick to the tried and tested and old way of making users search using simple keywords and correlations and prior history, e-tailers need to make the shopping experience more intelligent.

Appendix 2 and 3 outline possible use-cases. It should be clear that both Flipkart and Amazon have a long, long way to go before realizing anything close to the vision outlined, but without such advances, competitors like Google will find the wedge they need to prise open this market for themselves.

Second, Flipkart (or even Amazon for that matter, or SnapDeal, or whichever competitor you happen to care about, though in this case the admonition is more targeted at Flipkart in light of its mobile-only pronouncements) needs to get serious about the mobile platform.

Browse to either Flipkart or Myntra’s websites from a browser on an iPad and you are asked to use their app instead. Would you believe if I told you Flipkart does not have an iPad app (as of 15th June 2015)? No? Go check for yourself – I did! Ditto for Myntra (the online fashion retailer Flipkart acquired in 2014)! See Appendix 1 for what I found when I downloaded their apps on my iPad tablet. This would be comedically farcical if serious money weren’t riding on such decisions.

Third, Flipkart needs to get into the cloud business.

Yes, I am serious.

Let’s look at the competition – Amazon. It is the 800 pound gorilla in the cloud computing industry, where its offering goes by the umbrella of AWS (Amazon Web Services) and offers almost everything you could think of under the cloud – platform, infrastructure, software, database, email, storage, even machine learning, and much more. How gorilla-ish? “AWS offers five times the utilized compute capacity of the other 14 cloud providers in the Gartner Magic Quadrant. Combined.[14]” Since 2005, Amazon has spent “roughly $12 billion” on its infrastructure[15]. It competes with the likes of Microsoft and Google in this space. Yet, Amazon’s cloud revenues are estimated to be “30 times bigger than Microsoft’s.[16]

And yet I argue that Flipkart should get into the cloud business. As I wrote last year[17], Flipkart had to invest substantially (per my estimates, more than one hundred crore rupees, or somewhere in the vicinity of $15-$20 million dollars – which is not chump change) to build its capacity to stand up to the traffic it expected for its “Big Billion Day”. This is in addition to the regular additions it must be making to its computing infrastructure. All this is not surprising, given that the retail business is prone to lumpiness in traffic – a disproportionate amount of traffic is concentrated around sale events, or holidays.

For example, while Amazon reportedly had ten million Prime subscribers in March 2013, it reported that over 10 million “tried Prime for the first time” over the holidays in 2014 (traditionally the period between Thanksgiving and Christmas).[18] To prevent web sites from keeling over under the crush of holiday traffic, companies invest substantially, in advance, to make sure the web site keeps chugging along. The flip side is that for those periods when traffic is more average and a fraction of peak traffic, all those thousands of computers, the hundreds of gigabytes of memory, terabytes of disk space, and gobs of network bandwidth capacity are lying idle – depreciating away, obsolescing away.

Amazon realized this a decade ago and started building a rental model around its excess capacity – this was the genesis behind Amazon Web Services. There is no reason for Flipkart to not do the same. What works for Amazon has worked quite well for Flipkart[19]. If it spins off its entire e-commerce infrastructure into a separate entity, it can palm much off the capital costs of its computing infrastructure to the cloud computing subsidiary, substantially improving its balance sheet in the process. You could argue this is nothing but an accounting gimmick, and I am not going to argue with that aspect of the decision - there would be undeniable and real benefits to this decision, and it’s childish to expect a business to be run on utopian principles. As things stand, the state government of Telangana is already assiduously wooing Amazon to invest in an AWS centre in the state[20]. Once operating on Indian soil, Amazon will be able to meet legal requirements that require certain categories of data to remain with the national borders.

Any industry so heavily influenced and shaped by technology as the e-commerce industry would do well to listen to the winds of change. If unheard and unheeded, these winds of change turn into gale storms of disruption that blow away incumbents faster than you can imagine. “Mobile-only” is a useful-enough mantra, but translating that into an “app-only” sermon hints at myopic thinking – a troubling sign for sure. It turns out that Google “secretly” acquired a company that specializes in “streaming native mobile apps”. Is this a shape of the things to come? How will this transform the world of mobile apps, or even the mobile landscape in general? Time will tell, but “lock-in” may well be a wise strategy for your customers, but a terrible one to apply to yourself.[21].

Appendix 1 - App-solutely Serious about Apps?Fire up your favourite mobile browser on an Apple iPad and browse to Myntra’s website (that would be www.myntra.com). You are greeted with a message to vamoose to their mobile app, because after all, Myntra is all about mobility – social mobility in fashion, and mobile devices when speaking more literally.
Figure 1 - Myntra web site on tablet browser

Incredulity hits you in the face when you realize that (on the Apple App Store) the Myntra app is “optimized for iPhone 5, iPhone 6 and iPhone 6 Plus”, but not the iPad. Yes, you read that right – the web site that tells you have to use its mobile app and mobile app only on an iPad does not have an app optimized for the iPad.
Figure 2 - Myntra app details on the Apple App Store

I am, however, somewhat of a cynical person. I tried searching for the keyword “myntra” on the Apple App Store. The only filter applied was to look for “iPad Only” apps. Here are the beatific search results. Indian gave the world the concept of zero, and the search results page gave one practical application of that elegant mathematical concept.
Figure 3 - Search results for "iPad Only" apps on the Apple AppStore for "myntra"

So where was that Myntra app hiding? I changed the filter to “iPhone Only”, and true-enough, there was that Myntra app.
Figure 4 - Myntra app on the Apple App Store

In case you are wondering how that was even possible, know that most apps created for the iPhone (or iPod Touch) can run on an iPad without any modifications – all that is required for you to keep this in mind when compiling the app. Apple calls this a “Universal app”[22].

Now that can’t be so bad, right? After all, the app is available on the iPhone and the iPad, so where and what is the grouse? I will come to that in just a bit, but take a look at what the Myntra app looks like when run on the iPad.
Figure 5 - Myntra app running on an iPad
This is how the app runs inside an iPad. You have the option of tapping the “2x” button, after which the app uses the full screen, but by scaling everything to twice its size. There is no other intelligence here being applied – like changing the icons, or the text, or adding more features. This is iOS doing what little work you see.
Why this arouses incredulity is due to the stunning dissonance one experiences – between the statements of the Myntra (and Flipkart) executives going to town about a “mobile-only” world[23] on the one hand and the reality of a missing-in-action iPad-optimized app on the other. Yes, one could make the argument that Apple commanded a stunningly low single-digit share of 7% of the tablet market in India[24], but to make this argument is to negate your very philosophy of a “mobile-only” world. Mobile includes smartphones, tablets, phablets, wearables (for which Flipkart does have an app![25]), smart-TVs, and even embedded devices.
Flipkart’s mobile web site works - at least for now - on the iPad (though it does not on a smartphone – you have no option but to use their app), but the story is not much different there. No iPad-optimized app, but a smartphone app that does duty on the iPad by virtue of it being a “Universal” app.
Figure 6 - Flipkart shopping app in the Apple App Store

 
Figure 7 - Flipkart shopping app on the Apple iPad
 It’s not as if Amazon’s iPad app is much better. Yes, they do have an iPad app, but it looks more like a hybrid app – a native shell with an embedded browser snuck in, and very little by way of any tablet optimizations.
Figure 8 - Amazon app for the iPad

Appendix 2 – Natural Speech SearchesMobile shopping apps like Flipkart and Amazon provide you the option of inputting your search query via voice (more because of the support the underlying mobile OS provides), but that forces you say out aloud what you have typed – keywords, and nothing more.
Unlike the stunning Hound demo or the capabilities of Google Now[26], e-tailers have yet to leave the stone age in search capabilities. While Hound can understand and answer (correctly) queries like “Show me hotels in Seattle for Friday, staying one night” and then support refinements to the query like “Show only the ones costing less than $300” or “Show only the ones that have three or four or five stars that are pet friendly, that have a gym and a pool, within 4.5 miles of the Space Needle”[27], and Google Now can understand foreign accents (like my Indian English accent) and parse phrases like “ghat”, “jyotirling” and more, a relatively simple phrase like - “What are the best sellers in fiction” – leads to disappointment on both Amazon and Flipkart’s mobile apps.
Figure 9 - Search results in the Amazon app
And to be clear, what was presented was not the bestsellers list, because the bestseller list looked like this:
Figure 10 - Non-fiction bestsellers in books as shown on the Amazon app

I tried another search – “Suggest books for children”. I don’t know what to call the search results, but one with “*divorce* your Child” as the first result is surreal.
Figure 11 - Search results on Amazon app

To complete my brief experiment on Amazon, I tried “Show me best sellers in electronics”. That also did not yield any relevant results.
Figure 12 - Search results in the Amazon app
Flipkart is not much better, and at this point we are really looking at rock-bottom as the baseline. Even a marginal improvement would be welcome here. Sadly, not the case. Though, Flipkart does separate each word out and allow you to delete any one word to refine your search. Given the abysmal quality of search results, it is somewhat of a zero-divide-by-zero case, resulting in only infinite misery trying to find the right combination of keywords that will yield the desired results.
Figure 13 - Search results on the Flipkart app

Does the Myntra app fare any better? Predictably, it doesn’t. If semantic search in the e-commerce space was a problem that had been cracked by either Flipkart or Myntra, it would have been shared across both platforms by now.
Figure 14 - Search results in the Myntra app

Even Google, with its oft-stated e-commerce ambitions[28],[29] , and the eye-popping advances that it has made with its voice-based search (Siri from Apple and lately Cortana from Microsoft also deserve to be included, but neither company seems to be quite interested in e-commerce at the scale of Amazon, yet) left me disappointed with a simple search like – “what are the fiction best sellers in India”.
Figure 15 - Search results in the Google app

Appendix 3What do I have in mind with respect to the kinds of queries that Flipkart (or Amazon) should be trying to enable? Without any further context, I present the following examples:
One:
(this is a comparatively simpler form of the semantic search capabilities I propose)
Me: show me the best sellers in non-fiction
App: [displays a list of book best sellers in non-fiction] [Optionally, excludes or places the ones I have bought at the bottom of the list; or marks them differently and provides me with an option of reading them online – assuming I had purchased an e-book version]
Me: show me only those books that have been published in the last three months;
App: [filters the previous set of search results to show only those non-fiction best sellers that have been published in the last three months]
Me: also include books that were on the bestseller list this year
App: [adds books that were in the top 10/20 bestsellers list in 2015 but have now dropped out of the rankings]
Me: cancel the last search, and show me those books that are also available as e-books, and then sort them by price
App: [displays a list of book best sellers in non-fiction, filtered by those available on the Kindle, and sorts by price, ascending]
Me: send me free e-book samples of the first five books from this list and remind me in one week whether I want to purchase them.
App: [downloads free samples of the first three books to my e-book app] [creates a reminder to remind me in one week]


Two:
(this is a more social and more nuanced form of the semantic search outlined above)
Me: show me a list of LED TVs
App: [displays a list of the bestselling LED TVs]
Me: show me LED TVs that are HD, 40 inches or larger, cost no more than Rs 60,000, and can be delivered in the next three days.
App: [displays a list of TVs matching the criteria, and adds – “there are only three TVs that match your search criteria, so I have changed the price to Rs 70,000, which has resulted in five more search results. Say “cancel” to undo.”]
Me: Which among these would be most relevant to me?
App: [displays the list sorted based on popularity in my postal code] [offers to show the list sorted on TVs sold in the last three months to the housing community I live in – or the company I work at – or based on people with my profile of educational qualifications or marital/family status – based on privacy settings of course]
Me: summarize the most useful reviews for the first TVs, and keep each under two minutes.
App: [summarizes the most useful reviews and then reads out a software-generated summary, in less than two minutes. Also sends a text summary to my WhatsApp or email]
Far-distant utopia? Naah, I don’t think so. This is within the realm of the possible, and I expect to see this become reality in the next two years. Today, however, we are some ways off from the innovations where online shopping will become a truly immersive, interactive experience akin to having a natural conversation with an incredibly knowledgeable yet infinitely patient salesperson.

Three:
(ratcheting things up one more notch)
Me: (standing amidst the ruins of Hampi) Suggest some good books about this place.
App: [suggests bestsellers or highest-rated books on three categories: coffee-table books on Hampi; history of Hampi and the Vijayanagar Empire; historical fiction books set in the fifteenth/sixteenth century Vijaynagara Empire]
Me: Also suggest something on the significance of this chariot temple
App: …

Four:
App: [reminds me that I have a party at my house this weekend where four families are coming over]
Me: I need some snacks and also suggest some recent action movies to rent
App: [suggests food-items to order and shows a list of the five top grossing movies of the year in the “Action” genre and shows options: buy, rent (really?), stream]
Me: place the first, third, and fifth items in the shopping cart, record this and deliver to my wife. Then rent to stream the third movie in HD format on Saturday evening.
App: [places these items in the shopping cart, records a 15 second video and pings the spouse via a notification/alert to view the video. It also places an order for the selected movie]

Disclaimer: views expressed are personal.

 References:
[1] "India is not mobile-first, but mobile-only country: Sachin Bansal, Flipkart's founder and Mukesh Bansal, Myntra's CEO - timesofindia-economictimes", http://articles.economictimes.indiatimes.com/2015-05-13/news/62124447_1_myntra-sachin-bansal-ceo-mukesh-bansal
[2] See http://www.dnaindia.com/analysis/standpoint-flipkart-vs-amazon-beware-the-whispering-death-2079185 and http://www.dnaindia.com/analysis/standpoint-why-flipkart-seems-to-be-losing-focus-2076806
[3] "Google Launches Custom Voice Actions For Third Party Apps", http://searchengineland.com/google-launches-custom-voice-actions-for-third-party-apps-220148
[4] "After Nine Years of Secret Development, Hound Voice Search App Has a Dazzling Demo | Re/code", http://recode.net/2015/06/02/after-nine-years-of-secret-development-hound-voice-search-app-has-a-dazzling-demo/
[5] "A missed opportunity in China has Amazon founder Jeff Bezos backing his India venture", http://indiatoday.intoday.in/story/amazon-jeff-bezos-india-business-venture-flipkart-snapdeal/1/393933.html
[6] "Alibaba, Foxconn in Talks to Invest $500 Million in India’s Snapdeal - India Real Time - WSJ", http://blogs.wsj.com/indiarealtime/2015/06/16/alibaba-foxconn-in-talks-to-invest-500-million-in-indias-snapdeal/
[7] "Flipkart set to raise up to $800 million - Livemint", http://www.livemint.com/Companies/j2B9ax1SNS4JrDdJAU19sO/Flipkart-set-to-raise-up-to-800-mn.html
[8] See "How e-retailers such as Flipkart, Amazon are keeping fake products at bay - timesofindia-economictimes", http://articles.economictimes.indiatimes.com/2015-01-08/news/57791521_1_amazon-india-sellers-mystery-shoppers, "Who Reviews the Reviewers? How India's Online Businesses Are Fighting Fake Reviews | NDTV Gadgets", http://gadgets.ndtv.com/internet/features/who-reviews-the-reviewers-how-indias-online-business-are-fighting-fake-reviews-697112, and "How genuine are product reviews on FlipKart? - Quora", http://www.quora.com/How-genuine-are-product-reviews-on-FlipKart
[9] "Deep Blue (chess computer) - Wikipedia, the free encyclopedia", https://en.wikipedia.org/wiki/Deep_Blue_(chess_computer)
[10] "Rise of the Robots: Technology and the Threat of a Jobless Future”, by Martin Ford, Jeff Cummings, ISBN 9781480574779, http://www.amazon.com/Rise-Robots-Technology-Threat-Jobless/dp/1480574775
[11] Ibid and "The AI Behind Watson — The Technical Article", http://www.aaai.org/Magazine/Watson/watson.php
[12] "Rise of the Robots: Technology and the Threat of a Jobless Future”
[13] Gregory Piatetsky on Twitter: "The #DeepLearning future of ads: "Inferring Without Interfering with what moves the Customer most" - J. Kobelius http://t.co/zh96DC6DDG" https://twitter.com/kdnuggets/status/610848069672927232
[14] "Gartner: AWS Now Five Times The Size Of Other Cloud Vendors Combined - ReadWrite", http://readwrite.com/2013/08/21/gartner-aws-now-5-times-the-size-of-other-cloud-vendors-combined
[15] Ibid.
[16] "How much bigger is Amazon’s cloud vs. Microsoft and Google?", http://www.networkworld.com/article/2837910/public-cloud/how-much-bigger-is-amazon-s-cloud-vs-microsoft-and-google.html
[17] "A Billion Dollar Sale, And A Few Questions", http://www.dnaindia.com/analysis/standpoint-a-billion-dollar-sale-and-a-few-questions-2047853
[18] "Amazon added 10M new Prime subscribers over the holidays, could make up to $1B in annual revenue | VentureBeat | Business | by Harrison Weber", http://venturebeat.com/2014/12/26/amazon-made-nearly-1b-from-new-prime-subscriptions-over-the-holidays/
[19] See http://www.dnaindia.com/analysis/standpoint-flipkart-vs-amazon-beware-the-whispering-death-2079185
[20] "Amazon likely to bring Web Services to Telangana | Business Standard News", http://www.business-standard.com/article/companies/amazon-likely-to-bring-web-services-to-telangana-115061000659_1.html
[21] "Report: Last Year Google Secretly Acquired Agawi, A Specialist In Streaming Native Mobile Apps | TechCrunch", http://techcrunch.com/2015/06/18/report-last-year-google-secretly-acquired-agawi-a-specialist-in-streaming-native-mobile-apps/
[22] "Start Developing iOS Apps Today: Tutorial: Basics", https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/FirstTutorial.html
[23] http://articles.economictimes.indiatimes.com/2015-05-13/news/62124447_1_myntra-sachin-bansal-ceo-mukesh-bansal
[24] "Samsung Tops Indian Tablet Market Share, Followed By Micromax, iBall", http://trak.in/tags/business/2014/11/28/indian-tablet-market-share-growth/
[25] "Flipkart launches an app for Android Wear sporting wearables - Tech2", http://tech.firstpost.com/news-analysis/flipkart-launches-an-app-for-android-wear-sporting-wearables-240070.html
[26] See this for a comparison between Hound and Google Now - "Here’s how Hound beta compares to Google Now (Video) | 9to5Google", http://9to5google.com/2015/06/05/hound-beta-vs-google-now-video/
[27] "After Nine Years of Secret Development, Hound Voice Search App Has a Dazzling Demo | Re/code", http://recode.net/2015/06/02/after-nine-years-of-secret-development-hound-voice-search-app-has-a-dazzling-demo/
[28] "Google Preps Shopping Site to Challenge Amazon - WSJ", http://www.wsj.com/articles/google-preps-shopping-site-to-challenge-amazon-1418673413
[29] "Google Finds Partners To Help It Compete With Amazon - Forbes", http://www.forbes.com/sites/benkepes/2015/04/13/google-finds-partners-to-help-it-compete-with-amazon/



© 2015, Abhinav Agarwal. All rights reserved.

Oracle Priority Support Infogram for 02-JUL-2015

Oracle Infogram - Thu, 2015-07-02 14:53

Oracle Support

Two good items from the My Oracle Support blog:




MySQL

MySQL Enterprise Monitor 3.0.22 has been released, from the MySQL Enterprise Tools Blog.

Big Data


WebLogic

Additional new material WebLogic Community, from WebLogic Partner Community EMEA.

Improve SSL Support for Your WebLogic Domains, from Proactive Support - Identity Management.

Fusion Middleware

Calling Fusion SOAP Services from Ruby, from Angelo Santagata's Blog.

JDBC


OBIEE

OBIEE SampleApp V506 is Available, from Business Analytics - Proactive Support.

Ops Center

Upgrading to 12.3, from the Ops Center blog.

Identity Management

Configuring OAM SSO for ATG BCC and Endeca XM, from Proactive Support - Identity Management.

And from the same blog: Monitoring OAM Environment

Health Sciences


Primavera

New Primavera P6 Release 15.1 Patch Set 2, from the Primavera Support Blog.

EBS

From the Oracle E-Business Suite Support blog:








Query existing HBase tables with SQL using Apache Phoenix

Kubilay Çilkara - Thu, 2015-07-02 14:25
Spending a bit more time with Apache Phoenix and reading again my previous post I realised that you can use it to query existing HBase tables. That is NOT tables created using Apache Phoenix, but HBase - the columnar NoSQL database in Hadoop.

I think this is cool as it gives you the ability to use SQL on an HBase table.

To test this, let's say you login to HBase and you create an HBase table like this:

> create 'table2', {NAME=>'cf1', VERSIONS => 5}

The table2 is a simple table in HBase with one column family cf1 and now let's put some data to this HBase table.

> put 'table2', 'row1', 'cf1:column1', 'Hello SQL!'

then maybe add another row

> put 'table2', 'row4', 'cf1:column1', 'London'

Now, in Phoenix all you will have to do is create a database View for this table and query it with SQL. The database View will be read-only.  How cool is that, you don't even need to physically create the table or move the data to Phoenix or convert it, a database view will be sufficient and via Phoenix you can query the HBase table with SQL.

In Phoenix you create the view for the table2 using the same name. As you can see below the DDL used to create the view is case sensitive and if you created your HBase table name in lower case you will have to put the name in between double quotes.

So login to Phoenix and create the "table2" view like this:

> create view "table2" ( pk VARCHAR PRIMARY KEY, "cf1"."column1" VARCHAR );

And here is how you then query it in Phoenix:


SQL Query on Phoenix
Tremendous potential here, imagine all those existing HBase tables which now you can query with SQL. More, you can point your Business Intelligence tools and Reporting Tools and other tools which work with SQL and query HBase as if it was another SQL database.

A solution worth investigating further? It definitely got me blogging in the evenings again.

To find out more about Apache Phoenix visit their project page https://phoenix.apache.org/



Categories: DBA Blogs

Streamline Oracle Development with Cloud Services

Angelo Santagata - Thu, 2015-07-02 05:24
Streamline Java Development with Cloud Services
On-Demand Webinar Replay

Learn to deliver java applications to market faster. Reduce hardware and software costs for new development and testing environments. Improve DevOps efficiency. Build, test and run enterprise-grade applications in the Cloud and on premise.

Listen to this webinar replay with development expert James Governor, co-founder of RedMonk, and Daniel Pahng, President and CEO of mFrontiers, LLC, an ISV with hands-on experience developing enterprise mobility and Internet of Things (IOT) solutions, as they present this webcast on developing applications in the cloud.
Listen today!
For more information:
July 2015                                                                                          Oracle Corporation - All rights reserved

Calling Fusion SOAP Services from Ruby

Angelo Santagata - Wed, 2015-07-01 08:55
Just completed some integration work with a partner of ours using the Ruby language. Given that a lot of startups like Ruby I thought it would be useful to cut-n-paste the sample code here.
This example creates a simple (minimal) opportunity using the SOAP API in Sales Cloud. That said the code would be almost identical if you were querying HCM Data,
The approach we took here was to prototype the SOAP call using SOAPUI and then cut-n-paste the SOAP payload into the data variable. In a real industrialized solution I'd create the payloads in template form.


  def create_opportunity

  # Change yourhostname.com to your Fusion SOAP Endpoint Hostname

    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    path = uri.request_uri
    http.read_timeout = 5
    http.open_timeout = 5


  # Change authorization header to contain Base64encoded string of username/password
    headers = {
    'Content-Type' => 'text/xml',
    'authorization' => 'Basic bBase64EncodedCredentialHere='
    }

   
   # Data Contains the payload
    <soapenv:Header/>
    <soapenv:Body>
    <typ:createOpportunity>
    <typ:opportunity>
    <opp:Name>Joel Test New1</opp:Name>
    </typ:opportunity>
    </typ:createOpportunity>
    </soapenv:Body>
    </soapenv:Envelope>'

    resp, data = http.post(path, data, headers)
  end

!TIP!
A quick test in a SOAP testing tool like JDevelopers Http Analyzer or SOAPUI is a MUST before executing this!

Apache Phoenix, SQL is getting closer to Big Data

Kubilay Çilkara - Tue, 2015-06-30 16:50


Here is a post about another project in the Big Data world, like Apache Hive from my previous post, enables you to do SQL on Big Data. It is called Apache Phoenix.

Phoenix is a bit different, a bit closer to my heart too, as I read the documentation on Apache Phoenix, the word 'algebra' and 'relational algebra' came across few times, and that mean only one thing, SQL! The use of the word algebra in the docs did give me a lot of confidence. SQL has closure, is based on a database systems model which has it's roots in logic and maths and especially a subset of algebra, The Set Theory.

Apache Phoenix is developed in Salesforce and is now one of the popular projects in Apache. Apache Phoenix is a SQL skin on top of HBase, the columnar (NoSQL) database of the Hadoop ecosystem, capable of storing very large tables and data and query them via 'scans'. HBase is part of the Hadoop ecosystem and the file system it uses is usually HDFS. Apache Phoenix is using JDBC on the client as a driver.

In the race to bring the easiest to use tools for Big Data, I think Apache Phoenix is very close. It is the SQL we know used since the 1970s. The Apache Phoenix team seems to be committed and willing to introduce all of the missing parts of SQL, including transaction processing with different isolation levels.  Making Phoenix a fully operational Relational Database layer on HBase. Have a look in their roadmap. The amount of current and suggested future SQL compatibility is remarkable, and this makes me take them really seriously.
  • Transactions
  • Cost-based Query Optimization! (Wow)
  • Joins
  • OLAP
  • Subqueries
  • Striving for full SQL-92 compliance
In addition to all this, it is also possible to turn an existing HBase table to an Apache Phoenix table using CREATE TABLE or even CREATE VIEW, the DDL statements that we know. How handy is that? Suddenly you can SQL enable your existing HBase database!

How to install and use Phoenix

The SQL skin can be installed to an existing Hadoop HBase installation very quickly. All you need to do is to download and extract the tarball. You can setup a standalone Hadoop environment, look at my previous blog post for that, and then install HBase and install Apache Phoenix

Once the Apache  Phoenix software is installed, then you can start it and query it with SQL like this.

From within the bin/ directory of Phoenix install directory run

$ ./sqlline.py  localhost

That will bring you to the phoenix prompt


0: jdbc:phoenix:localhost> select * from mytable;


Categories: DBA Blogs

New Tools releases , now with Java

Kris Rice - Tue, 2015-06-30 11:28
What's New   For the 90%+ of people using sqldev/modeler on windows, the JDK bundled versions are back.  So no more debating what to install or worrying about conflicting Java versions.   Lots of bug fixes.    My favorite bug is now fixed so you can use emojis in your sql> prompt. RESTful CSV Loading   We wrapped he same CSV import code in SQL Developer into the REST Auto-Enablement

Interaction Hub Image Now Available on the PeopleSoft Update Manager Home Page

PeopleSoft Technology Blog - Tue, 2015-06-30 11:23

As noted in a recent post, the PeopleSoft Interaction Hub is now part of the Selective Adoption Process.  You can get the first image now on the PUM home page.  (At the PUM home page, choose the PeopleSoft Update Image Home Pages tab, then select the Interaction Hub Update Image page from the drop down.)  This means customers can use the PeopleSoft Update Manager and our other life cycle tools to manage their upgrade and maintenance process for the Hub.  There is also a white paper posted there that describes the baseline customers must reach to start taking these images. 

Note that this will be the only way for customers to take maintenance and updates going forward, so we encourage everyone to move to the Selective Adoption process as soon as is feasible for your organization. This move brings the Interaction Hub in line with all other PeopleSoft applications, which use the Selective Adoption process.  This process also offers customers additional value and control, and enables you to benefit from the value of the latest features with a greatly streamlined life cycle process.  

For customers that are eager to learn more, there are many resources on Selective Adoption and PUM on the PUM home page as well as on our YouTube channel.

This first image of the Interaction Hub is functionally equivalent to the current release (9.1/Revision 3), but taking it gets you on the Selective Adoption process.  Some great enhancements are coming the the next image.


Make even more of UKOUG Tech15: APEX 5.0 UI Training - Dec 10th in Birmingham

Dimitri Gielis - Tue, 2015-06-30 01:48

APEX 5.0 has been released this spring. People who have already spent some time on this new version know this version is packed with new features aimed to make APEX developers even more productive, like the Page Designer.
Another striking new subset of features is aimed at creating better looking user interfaces for your APEX applications in an easy and maintainable way. 
The definition of user interface components in APEX 5.0 is very different to what we're used to. For example there is a new Universal Theme with Template Options and a Theme Roller. To get you up and running with this new toolset as quickly as possible, Dimitri Gielis of APEX R&D and Roel Hartman of APEX Consulting have joined forces and set up a one day course fully aimed at APEX 5.0 UI. So if you want to know not only how to use the new Theme, but also how to modify it to fit your needs, this is the event you should attend!

The training will be at the Jury’s Inn in Birmingham (UK) on Thursday Dec 10 - so conveniently immediately after the UKOUG Tech15 conference.
More information and registration see www.apextraining.eu

If you are from another country and think this training should be available in your country as well, please contact us - then we'll see what we can do!
Categories: Development

ReConnect 2015

Jim Marion - Mon, 2015-06-29 18:43

It is just a little less than a month until the PeopleSoft ReConnect conference in Rosemont, Illinois. I will be presenting PeopleTools Developer: Tips and Techniques on Thursday from 11:30 AM to 12:20 PM in Grand Ballroom H.

Video Tutorial: XPLAN_ASH Active Session History - Part 6

Randolf Geist - Sun, 2015-06-28 16:30
The next part of the video tutorial explaining the XPLAN_ASH Active Session History functionality continuing the actual walk-through of the script output.

More parts to follow.

Apple Watch Impressions with Jeremy Ashley: Time for the Best User Experience in the Enterprise Cloud

Usable Apps - Sat, 2015-06-27 04:40

In part two of a three-part series, Ultan O'Broin (@usableapps) talks with Jeremy Ashley (@jrwashley) about his impressions of the Apple Watch and other insights during a day in the life of a Group Vice President in Oracle. Read part one.

"Perhaps it's an English thing,” says Oracle Applications User Experience Group Vice President, Jeremy Ashley, "but just being able to keep eye contact with someone when we're talking means I can pay closer attention to people."

 Inspiring Cloud UX in Oracle

Jeremy Ashley: Inspiring user experience leadership of strategy, science, and storytelling.

"A glance at my Apple Watch and I know immediately if something is important. I can decide if I need to respond or it can wait. I don't have to pull out my smartphone for that."

This story of combining the personal convenience of wearable technology with empathy for people is typical of the man who sets the vision for the Oracle Applications Cloud user experience (UX).

It’s just one of Jeremy's impressions of the iWatch, as it's known. Now that he's used the Apple Watch for a while since we first chatted, I wanted to find out about his experience and what it all means for enterprise UX.

iWatch iMpressions

"I just love the sheer build quality of the watch; so utterly Apple," Jeremy begins. His industrial design background surfaces, bringing together traditions of functionality, classic craftsmanship, and exuberance for innovation: "Sweet. I can even use it to tell the time!"

A bloke with an eye for pixel-level detail, Jeremy has explored how to get the best from the Apple Watch, right down to the exact precision needed for the force touch action on the built-in Maps app. He's crafted a mix of apps and favorite glances to suit his world, such as for battery life, his calendar, and stocks. He admires the simplicity and visualizations of the built-in Activity app too, swiping the watch face to see his latest progress as we talk in his office full of what's hot in technology and a selection of clocks and traditional woodworking tools.

Microtransactions at a glance from the wrist

Microtransactions at a glance from the wrist delight the wearer and make life—and work—more convenient.

"The watch really shows how the idea of context automates the routine and looks after the little things that make life easier and delight you in simple ways, such as not having to swipe a credit card to pay for coffee."

In the enterprise world, these kinds of little experiences, or "microtransactions" as Jeremy calls them, translate to wearer convenience when working. For example:

  • Automatically recording the time spent and location of a field service job
  • Accepting terms and conditions when attending a confidential demo meeting as you check in at reception
  • Adding data to the cloud, such as updating a win probability as you walk away from a sales engagement
  • Seeing at a glance that a supply chain fulfillment is complete

Oracle Glance and the Enterprise

Oracle's concept of glance is device agnostic and reflects a key UX strategy—mobility—or how we work flexibly today: across devices, pivoting around secure enterprise data in the Oracle Cloud.

"Smartwatches are like mobile dialog boxes," Jeremy explains. "They start that user conversation with the cloud in simple, 'in-the-moment,' deeply contextual ways. Glance and the cloud together automatically detect and deliver the who, what, and where of microtransactions, yet because it's all on a watch, the experience remains personal and familiar. That really resonates with wearers."

The smartwatch is a personal and familiar paradigm in the enterprise too

Jeremy Ashley: The smartwatch is a personal and familiar paradigm that also resonates in the enterprise.

Jeremy shared some thoughts on where such innovation is heading:

"The Apple Watch won't replace the smartphone, for now. We still need that identifier device—a kind of personal beacon or chip, if you like—that lets us make an elegant 'handoff' from a glance on our wrist to a scan for denser levels of information or to a commit to doing less frequent tasks on other devices. The watch just isn't designed for all that."

Activity app Stand goal glances on Apple Watch

Apple Watch Activity glances for stand goal progress

A perfect example of Oracle Cloud UX strategy and design philosophy together. Jeremy glances back at his Activity app and sees his new stand goal progress. That standing desk is paying off!

But, innovating user experience in Oracle is an activity that definitely does not stand still. We'll explore how such innovation and design progress pays off for enterprise users in a future blog post.

Got Time Now?

Discover more:  

Pages

Subscribe to Oracle FAQ aggregator