Skip navigation.

Feed aggregator

Big Data - are you the house or the played?

Steve Jones - Wed, 2013-05-15 07:00
Coming back from the EMC World conference in Las Vegas I was looking at the people playing on the slots and making ridiculous bets at Craps and wondering 'don't these people know anything about statistics?'.  Lets be clear I get the idea of it being fun, but when you sit next to someone on a blackjack table who twists when the dealer is showing a six and they've got 15 is just depressing. There
Categories: Fusion Middleware

Getting students useful feedback from machine learning

Michael Feldstein - Wed, 2013-05-15 06:47

Last month, I wrote this narrow defense of automated essay grading, hoping to clear the air on a new and controversial technology. In that post’s prolific comments section, Laura Gibbs made a comment echoing what I’ve heard from every teacher I speak to.

I am waiting for someone to show me a real example of this “useful supplement” provided by the computer that is responding to natural human language use – I understand what you want it to be, but I would contend that natural human language use is so complex (complex for a computer to apprehend) that trying to give writing mechanics feedback on spontaneously generated student writing will lead only to confusion for the students.

When we talk about machine learning being used to automatically grade writing, most people don’t know what that looks like. Because they don’t know the technology, they make it up. As far as I can tell, this is based on a combination of decades-old technology like Microsoft Word’s green grammar squiggles, clever new applications like Apple’s Siri personal assistant, and downright fiction, like Tony Stark’s snarky talking suits. What you get from this cross is a weird and incompetent artificial intelligence pointing out commas and giving students high grades for hiding the word “defenestration” in an essay.

My cofounder at LightSIDE Labs, David Adamson, taught in a high school for six years. If we were endeavoring to build something that was this unhelpful for teachers, he would have walked out a long time ago. In fact, though, David is a researcher in his own right. David’s Ph.D. research isn’t as focused on machine learning and algorithms as my own; instead, his work brings him into Pittsburgh public schools, talking with students and teachers, and putting technology where it can make a difference. In this post, rather than focus on essay evaluation and helping students with writing – which will be the subject of future posts – I’m going to explore the things he’s already doing in classrooms.

Building computers that talk to students

David builds conversational agents. These agents are computer programs that sit in chatrooms for small-group discussion in class projects, looking by all appearances like a moderator or TA logged in elsewhere. They’re not human, however – they’re totally automated. They have a small library of lines that they can inject into the discussion, which can be automatically modified slightly in context. They use language technology, including machine learning as well as simpler techniques, to process what students are saying as they work together. The agent has to decide what to say and when.

Those pre-scripted lines aren’t thrown in arbitrarily. In fact, they’re descended from decades of research into education and getting classroom discussion right. This line of research is called Accountable Talk, and in fact there’s an entire course coming up on Coursera about how to use this theory productively. The whole thing is built on fairly basic principles:

First, students should be accountable to each other in a conversation. If you’re only sharing your own ideas and not building off of the ideas of others, then it’s just a bunch of people thinking alone, who happen to be in a chatroom together. You don’t get anything out of the discussion. Next, your thought process should be built off of connecting the dots, making logical conclusions, and reasoning about the connections between facts. Finally, those facts that you’re basing your decision-making on should be explicit. They should come from explicit sources and you should be able to point to them in your argument for why your beliefs are correct.

David’s agents are framed around Accountable Talk, doing what teachers know leads to a good discussion. Instead of giving students instructions or trying to evaluate whether they were right or wrong, they merely ask good questions at the right times. Agents were trained to look for places where students made a productive, substantial claim – the type of jumping-off point that Accountable Talk encourages. He never tried to correct those claims, though; he didn’t even evaluate whether they were right or wrong. He was just looking for the chance to make a difference in the discussion.

He used those automated predictions as a springboard for collaborative discussion. Agents were programmed to try to match student statements to existing facts about a specific chemistry topic. “So, let me get this right. You’re saying…” More often than not, he also programmed the agents to lean on other students for help. “[Student 2], can you repeat what [Student 1] just said, in your own words? Do you agree or disagree? Why?” Automated prompts like this leave the deep thinking to students. Instead of following computer instructions by rote, the students were being pushed into deeper discussions. Agents give the authority to students, asking them to lead and not taking on the role of a teacher and looming over them.

Sometimes computers fail

In the real world, intervention to help students requires confidence that you’re giving good advice. If David’s agents always spout unhelpful nonsense, students will learn to ignore them. Perhaps worst of all, if the agent tries to reward students for information it thinks is correct, a wrong judgment means students get literally the opposite of helpful teaching. With all of this opportunity for downside, reliability seems like it would be the top priority. How can you build a system that’s useful for intervening in small groups if it makes big mistakes?

This is mostly accounted for by crafting the right feedback, designing agents that are tailored to the technology’s strengths and avoiding weaknesses. In large part this comes down to avoiding advice that’s so clear-cut that big mistakes are possible. Grammar checking and evaluations of accuracy within a sentence are doomed to fail almost from the start. If your goal with a machine learning system is to correct every mistake that every student makes, you’re going to need to be very confident, and because this is a statistics game we’re playing, that kind of technology is going to disappoint. Moreover, even when you get it right, what has a student gained by being told to fix a run-on sentence? At best, an improvement at small-scale grammar understanding. This is not going to sweep anyone off their feet.

By basing his conversational agents on the tenets of a good discussion, David was able to gain a lot of ground with what is, frankly, pretty run-of-the-mill machine learning. Whiz-bang technology is secondary to technology that does something that helps. When the system works, it skips the grammar lessons. Instead, it jumps into the conversation at just the right time to encourage students to think for themselves.

Sometimes, though, the agent misfires. When using machine learning, this is something you just have to accept. What we care about is that this doesn’t hurt students or start teaching wrong ideas. So let’s think about the cases where an agent can make a wrong decision: first, where the agent could have given feedback but didn’t, and second, where the agent gives the wrong feedback at the wrong time.

First, the easy case. Sometimes a student will say something brilliant and the agent will fail to catch it. Here, the balance of authority between agent and student matters. If students get used to the idea that the agent is a teacher, they’ll be looking for it to tell them they got every answer right. This is a danger zone for us – with statistical machine learning, we don’t want to back ourselves into a corner where the system has to make judgments every single time. Sometimes, we’ll be uncertain. If an agent misses its cue and the students expect a teacher’s authoritative judgment of correctness, the group will flounder when the agent misses a beat, or take the discussion into their own hands and leave the agent in the dust.

Let’s see what that looks like in practice. Here’s a transcript from an earlier study, when conversational agents weren’t as heavily rooted in the theory of Accountable Talk:

Tutor: You should now move on to discussing Condition C.

Tutor: [Student A], now would be a good time to ask [Student B] to build on what [Student C] is saying.

[Student B]: I’m so confused!

[Student A]: [Student B], would you like to build onto what [Student C] is saying? And me too!

Tutor: When you agree, write down your predictions on your worksheet.

This is dysfunctional; the tutor isn’t asking discussion-generating questions, and it’s pushing forward regardless of context. Focusing on the task single-mindedly doesn’t give students room to think.

 

By taking on the role of facilitator, though, the agent’s comments aren’t expected every time. We can use the system to chime in with an Accountable Talk question when we’re highly confident that the machine learning system is making the right prediction, but if the system stays silent, the students won’t even notice it’s missing; the agent is purely there to help scaffold learning, rather than judge correctness. When you’re augmenting teaching, rather than replacing humans entirely, you can afford to be cautious. Look at how the agent interacts when we start asking questions that are better suited to what we know we can do:

[Student D]: ok, boiling pt will go up and vdW will go up for all of them consecutively… right?

Tutor: Do you concur with [Student D]? Why, or why not?

[Student E]: hmm not necessarily

[Student F]: area goes up for each

[Student E]: would it?

[Student E]: im not sure

[Student D]: yea for sure area goes up

[Student F]: dipole increases first one

In this example excerpt the tutor didn’t give an instruction or evaluate anything that the first quoted student line. It simply asked a basic question in response to machine learning evaluating that spot as a good opening. The comments from these new agents use Accountable Talk principles, and get student groups discussing ideas.

Of course, these systems aren’t perfect. What we’re finding out, though, is that we can frame the discussion right for automated assessment by not trying to make our automated system the perfect arbiter of truth. What I’m describing isn’t a dire portrait of machines taking over the education system. It’s agents contributing meaningfully to learning by cautiously intervening when appropriate, using machine learning for educated guessing about when it’s time to get students to think more deeply. These agents are tireless and can be placed into every discussion in every online small group at all times – something a single teacher in a large class will never be able to do.

The results with these agents were clear: students learned significantly more than students who didn’t get the support. Moreover, when students were singled out and targeted by agent questioning, they participated more and led a more engaged, more assertive conversation with the other students.  The agent didn’t have to give students remedial grammar instructions to be valuable; the data showed that the students took their own initiative, with the agents merely pushing them in the right direction. Machine learning didn’t have to be perfect. Instead, machine learning figured out the right places to ask questions, and worked towards making students think for themselves. This is how machine learning can help students.

For helping students, automated feedback works.

We should be exercising caution with machine learning. Skeptics are right to second guess interventions from technologists who aren’t working with students. The goal is often to replace teachers, not help them, especially with the promise of tantalizingly quick cost savings. Yes – if you want to make standardized testing cheaper, machine learning works. I don’t to dismiss this entirely – we can, in fact, save schools and states a lot of money on existing standardized tests – but if that’s as far as your imagination takes you, you’re missing the point. What’s important isn’t that we can test students more, and more quickly, with less money. Focus on this: we can actually help students.

Not every student is going to get one-on-one time daily with a trained writing tutor. Many are never going to see a writing tutor individually in their entire education. For these students, machine learning is stepping in, with instant help. These systems aren’t going to make the right decision every time in every sentence. We need to know that, and we need to work with it. Rather than toss out technology promising the moon, look carefully at what it can do. Shift expectations as necessary. In David’s case, the shift was about authority. He empowered students to take up their own education, and chimed in when it saw an opportunity; it positioned the automated system as guide rather than dictator.

This goes way beyond grading, and way beyond grammar checking. Machine learning helps students when teachers aren’t there. Getting automated feedback right leads to students thinking, discussing ideas, and learning more – and that’s what matters. In my next post, I’d like to launch off from here and talk about what these lessons mean not just for discussion, but for writing. Stay tuned.

A last note

The work I described from David is part of an extended series of more than 20 papers and journal articles from my advisor at Carnegie Mellon, Carolyn Rosé, and her students. While I won’t give a bibliography for a decade of research, some of the newest work is published as:

  • “Intensification of Group Knowledge Exchange with Academically Productive Talk Agents,” in this year’s CSCL conference.
  • “Enhancing Scientific Reasoning and Explanation Skills with Conversational Agents,” submitted to IEEE Transactions on Learning Technologies.
  • “Towards Academically Productive Talk Supported by Conversational Agents,” in the 2012 conference on Intelligent Tutoring Systems.

I’ve asked David to watch this post’s comments section, and I’m sure he’ll be happy to directly answer any questions you have.

The post Getting students useful feedback from machine learning appeared first on e-Literate.

Grant Ronald and Susan Duncan for ADF Mobile SIG (UKOUG, London, May 21st)

Andrejus Baranovski - Wed, 2013-05-15 06:43
ADF Mobile is one of the hot topics in ADF area currently. If you want to see it in practice and learn about ADF Mobile architecture, I'm sure you should join UKOUG SIG in London on May 21st. Check here for more info and registration link - UKOUG Run Full Day SIG on ADF Mobile.

Grant Ronald and Susan Duncan are well known Oracle speakers, they will host this event. I know there are few seats left, you should hurry to register.

ECEMEA Drop In and Learn - Your invitation from Oracle Support

Chris Warticki - Wed, 2013-05-15 06:28

Here’s an easy way to make sure you’re making the most of the support available under your Oracle service contract: our regular Drop In And Learn events.

Drop In And Learn sessions are short, informal, and free of charge. They allow you to talk to Oracle Support staff face to face, find out more about the support available and get answers to the questions that matter to you. Topics discussed so far have included My Oracle Support, making Auto Service Requests and using Proactive Support more effectively.

The sessions will be happening every month in your local Oracle offices and last no more than couple of hours.
Country Date Time Location Attendance * Austria Tues 4th June 16:00 Oracle Office, Vienna I plan to attend Croatia Wed 5th June 14:00 Oracle Office, Zagreb I plan to attend Czech Republic   Wed 5th June 16:00 Oracle Office, Prague I plan to attend Wed 3rd July 16:00 Oracle Office, Prague I plan to attend Egypt  Wed 5th June 11:00 Oracle Office, Cairo   Wed 3rd July 11:00 Oracle Office, Cairo   Estonia   June - TBD   Oracle Office, Tallinn   July - TBD   Oracle Office, Tallinn   Greece   Wed 5th June 14:00 Oracle Office, Athens   Wed 3rd July 14:00 Oracle Office, Athens   Hungary   Wed 5th June 09:00 Oracle Office, Budapest I plan to attend Wed 3rd July 09:00 Oracle Office, Budapest I plan to attend Kazakhstan   Wed 5th June 16:00 Oracle Office, Almaty   Wed 3rd July 16:00 Oracle Office, Almaty   Kenya   Wed 5th June 09:00 Oracle Office, Nairobi I plan to attend Wed 3rd July 16:00 Oracle Office, Nairobi I plan to attend Latvia   Mon 20th May 16:00 Oracle Office, Riga   June - TBD   Oracle Office, Riga   July - TBD   Oracle Office, Riga   Lithuania  June - TBD   Oracle Office, Vilnius   July - TBD   Oracle Office, Vilnius   Nigeria   Wed 5th June 11:00 Oracle Office, Lagos I plan to attend Wed 3rd July 16:00 Oracle Office, Lagos I plan to attend Poland   Wed 5th June 09:00 Oracle Office, Warsaw I plan to attend Wed 3rd July 09:00 Oracle Office, Warsaw I plan to attend Romania   Wed 5th June 15:00 Oracle Office, Bucharest   Wed 3rd July 15:00 Oracle Office, Bucharest   Russia  Wed 5th June 15:00 Oracle Office, Moscow   Wed 10th July 15:00 Oracle Office, Moscow   Saudi Arabia   Mon 3rd June 15:00 Oracle Office, Riyadh   Mon 1st July 15:00 Oracle Office, Riyadh   Slovenia  Wed 5th June 14:00 Oracle Office, Ljubljiana I plan to attend Slovakia  Wed 19th June 16:00 Oracle Office, Bratislava   South Africa  Wed 5th June 15:00 Oracle Office, Johannesburg   Wed 3rd July 15:00 Oracle Office, Johannesburg   Turkey   Wed 5th June 15:00 Oracle Office, Istanbul   Wed 3rd July 15:00 Oracle Office, Ankara   UAE  Wed 3rd July 10:00 Oracle Office, Dubai I plan to attend Ukraine  June - TBD   Oracle Office, Kiev   July - TBD   Oracle Office, Kiev
We look forward to seeing you there.

Your local Oracle Support team.

Set the agenda
Let us know what aspects of Oracle Support you want to learn about − and we’ll put them on our agenda.
Email us with your topic suggestions

Faster data move on EXADATA I

Mathias Magnusson - Wed, 2013-05-15 06:00

Introduction

In my work among other things I tune and tweak solutions for EXADATA. Today I’ll write about a big improvement we achieved with a process that moves data from the operational tables to the ones where the history is stored.

This will not be a technical post. While I talk about using advanced technologies, I will not discuss code or deep details of them in this post.

And yes, when I say post, I mean a series of posts. This will be too long to be a single post. I’ll break it up into an introduction and then a post on each area of improvement.

Let’s first discuss the before situation. This set of tables are logged to during the day. These log records are needed both to investigate how transactions were executed as well as to satisfy legal requirements. It is in a highly regulated industry and for good reason as mistakes could put someone’s life in danger.

In this situation the solutions were writing around 50 million log records per day to five tables. These tables all had a primary key based on a sequence and there was also referential integrity set up. This means that for the indexes, all processes were writing to the same place on disk. The lookup on the referential integrity was also looking at the same place. An attempt to remedy some of this had been made by hash partitioning the tables. The write activity was intense enough during the day that most of the logging had to be turned off as the solution otherwise was too slow. This of course has legal as well as diagnostic implications.

What’s worse is that once all that data was written, it had to be moved to another database where the history is kept. This process was even slower and the estimate for how long it would take to move one days worth of data was 16 hours. It never did run for that long as it was not allowed to run during the day, it had to start after midnight and finish before 7 am. As a result the volume built up every night until logging was turned off for a while and the move then caught up a little every night.

This series will have the following parts:

  1. Introduction (this post)
  2. Writing log records
  3. Moving to history tables
  4. Reducing storage requirements
  5. Wrap-up and summary

The plan is to publish one part each week. Hopefully I’ll have time to publish some more technical posts between the posts in this series.


How to backup Oracle Internet Directory (OID) 11g – Data : Full / Partial

Online Apps DBA - Wed, 2013-05-15 05:05
Oracle Internet Directory (OID) is LDAP Server from Oracle that stores LDAP data (user’s, groups, permission etc) in Oracle Database (under ODS schema). OID consists of two parts LDAP Data: stored in ODS schema in Oracle database LDAP binaries , executable and logs : stored in OID ORACLE_HOME (different from database ORACLE_HOME) and ORACLE_INSTANCE (OID 11g) [...]

This is a content summary only. Visit my website http://onlineAppsDBA.com for full links, other content, and more!
Categories: APPS Blogs

Planning and third-party support are key for cloud advantages

Chris Foot - Wed, 2013-05-15 04:13

There are a multitude of emerging trends that have the potential to offer enterprises considerable cost savings, including cloud computing and collaboration technologies, but many firms are still failing to capitalize on these rewards. Poor planning and a lack of visibility into the infrastructure have hindered enterprises from integrating such solutions. By leveraging remote dba services and support, businesses can more effectively customize deployments to fit any unique needs and demands for reduced long-term spending and further, a competitive edge.

A recent study by Forrester revealed that despite continual efforts to minimize unnecessary IT costs, many firms miss out on savings each year by prematurely upgrading networking infrastructure and insufficiently considering maintenance contracts. Although 76 percent of decision-makers are concerned about these pressures to lower spending, many are actually unaware of the their options. Still, an overwhelming 80 percent of firms would leverage third-party maintenance if they found it to be more affordable than their current contract. Mike Sheldon, president and CEO of Network Hardware Resale, commented on the survey's findings.

"Businesses of all sizes need to know that there can be incredible value and cost savings with a reliable third-party maintenance service provider – helping to ease worries about tightening IT budgets without sacrificing quality," he stated.

In order to maximize value and ROI from the network infrastructure, Forrester Consulting advised that enterprises carefully scrutinize ongoing maintenance contracts. Additionally, the research firm stressed that metrics are key for measuring quality and longevity in regard to these solutions over time.

A seamless migration
One technological transition that can have a profoundly beneficial effect on the network is cloud computing. Computerworld reported that a hasty migration to the cloud can actually lead to higher costs and ineffective functionality, however. Casey Coleman, CIO for the General Services Administration (GSA), explained the importance of strategic cloud deployments.

"It is the case that it has to be well thought-out and methodical," Coleman said, according to the news source. "You have to plan for change management, promote user awareness, ensure cybersecurity in contractual terms, like with any IT project."

After moving to a cloud-based email system, the GSA was able to eliminate a large amount of unnecessary applications and consolidate workflows from the legacy email system, thus enabling the agency to turn off 300 in-house servers. Coleman revealed the GSA predicts it will save $16 million over five years as a result.

RDX offers a full suite of cloud migration and administrative services that can be tailored to meet any customer's needs. To learn more our full suite of cloud migration and support services, please visit our Cloud DBA Service page or contact us.

New Page - Data Guard

Syed Jaffar - Wed, 2013-05-15 00:47
A quick update about the new page.

I have created a new page (tab) 'Data Guard' on my blog to share/discuss all data guard related issues that we confronted during our extensive DR setup and testing. The objective is to record all the errors/issues of data guard setup and how we resolve them. Also, I will be sharing the DR configuration procedure and the best practices that we used in our environment.

Appreciate your inputs, and if you are interested to share/write something on the subject matter, do write to me, I will put it on the page under your name.

Have a nice day,

Jaffar


Video: ADF Master Class and ADF Blog Q&A, Andrejus Baranovskis (Part I)

Andrejus Baranovski - Tue, 2013-05-14 23:36
I was blogging about ADF for 7 years already, long period. I had a feeling this was a right time to bring it to the next level and have live technical ADF Q&A discussion with blog readers. It went well and I plan to repeat similar session later this year again. Read more here: Webinar: ADF Master Class and ADF Blog Q&A, Andrejus Baranovskis (Part I)

You can watch video recording:


Webinar plan with links to use case descriptions and presented ADF sample apps from the blog:
1. CRUD and LOV performance and validation improvement tricks
- List Range Size - 1 for LOV
(LOVRangePagingFix: http://andrejusb.blogspot.com/2011/12/fix-rowset-is-forward-only-for-adf-bc.html)
- Row Count Threshold -1
(QueryOptimizationTableApp: http://andrejusb.blogspot.com/2012/05/how-to-disable-select-count-execution.html)
- Initial Query Overriden
- Skip Validation
(TabsValidationApp: http://andrejusb.blogspot.com/2012/12/skip-validation-for-adf-required-tabs.html)
(NewRowRemoveApp: http://andrejusb.blogspot.com/2013/01/immediately-removing-new-row-without.html)
- Immediate Validation for table
(AutoPPRApp: http://andrejusb.blogspot.com/2012/09/what-to-do-when-adf-editable-table.html)
- Post Changes
(PostControlApp: http://andrejusb.blogspot.com/2012/12/adf-post-changes-and-plsql-invocation.html)
2. Conditional validation in ADF BC, Entity Cache and View Object Instances
- Conditional
(ConditionalValidationApp: http://andrejusb.blogspot.com/2012/12/conditional-validation-in-adf-bc.html)
- Transaction level
(EOValidationApp: http://andrejusb.blogspot.com/2012/10/transaction-level-adf-bc-entity.html)
- EO Cache
(VOSynchEOCacheApp: http://andrejusb.blogspot.com/2013/05/sharing-data-between-vo-instances-in.html)
3. ADF Table pagination, List View components
- Pagination
(TablePaginationApp_v3: http://andrejusb.blogspot.com/2013/04/how-to-control-adf-table-pagination-on.html)
- List View
(ListViewApp: http://andrejusb.blogspot.com/2013/04/list-view-cool-looking-adf-ps6.html)
4. ADF Mobile login, secured ADF BC Web Services and on-device database access
- Mobile login
(adfmobilelogin: http://andrejusb.blogspot.com/2012/10/adf-mobile-login-functionality.html)
- Secured WS access
(mobilesecuredws: http://andrejusb.blogspot.com/2012/11/adf-mobile-secured-web-service-access.html)
- Master-Detail
(adfmdmobilews: http://andrejusb.blogspot.com/2013/04/master-detail-adf-bc-web-service-for.html)

Documentation for Cloudera Impala 1.0

Tahiti Views - Tue, 2013-05-14 22:13
The Cloudera docs have been undergoing some reorganization lately. That applies double to the Impala documentation, which moved from beta to GA status and has been restructured at the same time. For posterity (and a little Googlerank mojo), here's the current layout of the Impala docs in mid-May 2013: Cloudera Impala Release Notes New Features in Impala Incompatible Changes Known Issues and John Russellhttp://www.blogger.com/profile/17089970732272081637noreply@blogger.com0

Using Load Plan for managing your ETL task in BI Apps 11.1.1.7.1 (1)

Dylan's BI Notes - Tue, 2013-05-14 17:35
One of the major change introduced in BI Apps 11.1.1.7.1 is the way how we manage the ETL task sequence and trim the unnecessary tasks. This functionality was accomplished earlier using DAC.  The problem we frequently faced was that the DAC repository and the INFA repository are maintained as two separate repositories.  We have to sync up the name […]
Categories: BI & Warehousing

ADF Mobile Logging on Android

Shay Shmeltzer - Tue, 2013-05-14 14:57

I posted before on how to do code level debugging in your ADF Mobile application, but sometimes debugging is an overhead and you would rather just put out some log messages that will allow you to track what's going on where.

ADF Mobile has built in support for a logging framework and it is documented in this chapter in the ADF Mobile Developer Guide.

You can use a line of code like this in your code:

Logger.getLogger(Utility.APP_LOGNAME).logp(Level.INFO, this.getClass().getName(), "Shay","We invoked the button");

Then don't forget to set the right level of logging (and possibly the log message format) in the logging.properties file under your META-INF directory.

The logging chapter in the doc, doesn't mention where to actually see the messages being logged.

One utility that you can use to see your log messages comes with the Android SDK - look into the tools directory there and you'll find the ddms.bat file - run it and you'll be able to see the log messages from your application.

On the side of that utility you can also define filters to just show you the messages you are interested in.

Here is a quick demo showing how this all works together:

By the way - a comment I got pointed out that ddms is old school and you should be using the new monitor.bat at the same locaiton. This will basically work just the same and will look like this:

 More tips on debugging and logging in this blog entry by Joe

Categories: Development

<strong>Contributions by Angela Golla,

Oracle Infogram - Tue, 2013-05-14 13:10
Contributions by Angela Golla, Infogram Deputy Editor

Oracle Advanced Customer Support Services

Seamless data availability, optimal applications performance, and reduced IT risk are critical to business success. Oracle Advanced Customer Support (ACS) Services delivers tailored mission-critical support services to help you maintain and maximize performance of all Oracle mission critical systems. Our partnership with Oracle Support and Oracle's engineering teams combined with our unique approach to building a collaborative, long term relationship with your IT team provide a highly integrated approach to helping you meet your complex IT requirements.

Our engineers provide proactive and preventive support using advanced diagnostic tools to help you increase system availability, reduce risk and accelerate ROI across the Oracle stack—applications, middleware, database, servers and storage systems. Choose from a portfolio of mission critical support services that you can tailor to your IT and business needs.  Learn more at:  http://www.oracle.com/us/support/advanced-customer-services/overview/index.html



Getting Started with PHP Zend Framework 2 for Oracle DB

Christopher Jones - Tue, 2013-05-14 12:56

This post shows the changes to the ZF2 tutorial application to allow it to run with Oracle Database 11gR2.

Oracle Database SQL identifiers are case insensitive by default so "select Abc from Xyz" is the same as "select abc from xyz". However the identifier metadata returned to programs like PHP is standardized to uppercase by default. After executing either query PHP knows that column "ABC" was selected from table "XYZ".

In PHP code, array indices and object attributes need to match the schema identifier case that is returned by the database. This is either done by using uppercase indices and attributes in the PHP code, or by forcing the SQL schema to case-sensitively use lower-case names.

The former approach is more common, and is shown here.

The instructions for creating the sample ZF2 application are here. Follow those steps as written, making the substitutions shown below.

Schema

In Oracle 11gR2, the schema can be created like:

DROP USER ZF2 CASCADE;

CREATE USER ZF2 IDENTIFIED BY WELCOME
    DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS
    TEMPORARY TABLESPACE TEMP;

GRANT CREATE SESSION
    , CREATE TABLE
    , CREATE PROCEDURE
    , CREATE SEQUENCE
    , CREATE TRIGGER
    , CREATE VIEW
    , CREATE SYNONYM
    , ALTER SESSION
TO ZF2;

CONNECT ZF2/WELCOME

CREATE TABLE ALBUM (
  ID NUMBER NOT NULL,
  ARTIST VARCHAR2(100) NOT NULL,
  TITLE VARCHAR2(100) NOT NULL,
  PRIMARY KEY (ID)
);

CREATE SEQUENCE ALBUMSEQ;

CREATE TRIGGER ALBUMTRIGGER BEFORE INSERT ON ALBUM FOR EACH ROW
BEGIN
  :NEW.ID := ALBUMSEQ.NEXTVAL;
END;
/

INSERT INTO ALBUM (ARTIST, TITLE)
    VALUES ('The  Military  Wives', 'In  My  Dreams');
INSERT INTO ALBUM (ARTIST, TITLE)
    VALUES ('Adele', '21');
INSERT INTO ALBUM (ARTIST, TITLE)
    VALUES ('Bruce  Springsteen', 'Wrecking Ball (Deluxe)');
INSERT INTO ALBUM (ARTIST, TITLE)
    VALUES ('Lana  Del  Rey', 'Born  To  Die');
INSERT INTO ALBUM (ARTIST, TITLE)
    VALUES ('Gotye', 'Making  Mirrors');

COMMIT;
Driver and Credentials

The driver and credentials are Oracle-specific. Always use the OCI8 adapter in ZF, since it is more stable and has better scalability. Specifying a character set will make connection faster.

zf2-tutorial/config/autoload/global.php:
 return array(
     'db' => array(
-        'driver'         => 'Pdo',
-        'dsn'            => 'mysql:dbname=zf2tutorial;host=localhost',
-        'driver_options' => array(
-            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
-        ),
+        'driver'         => 'OCI8',
+        'connection_string' => 'localhost/orcl',
+        'character_set' => 'AL32UTF8',
     ),
     'service_manager' => array(
         'factories' => array(
zf2-tutorial/config/autoload/local.php:
 return array(
     'db' => array(
-        'username' => 'YOUR USERNAME HERE',
-        'password' => 'YOUR USERNAME HERE',
+        'username' => 'ZF2',
+        'password' => 'WELCOME',
     ),
     // Whether or not to enable a configuration cache.
     // If enabled, the merged configuration will be cached and used in
Attribute & Index Changes

The rest of the application changes are just to handle the case of the Oracle identifiers correctly.

zf2-tutorial/module/Album/Module.php
                     $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                     $resultSetPrototype = new ResultSet();
                     $resultSetPrototype->setArrayObjectPrototype(new Album());
-                    return new TableGateway('album', $dbAdapter, null, $resultSetPrototype);
+                    return new TableGateway('ALBUM', $dbAdapter, null, $resultSetPrototype);
                 },
             ),
         );
zf2-tutorial/module/Album/view/album/album/add.phtml
 $form->prepare();
 
 echo $this->form()->openTag($form);
-echo $this->formHidden($form->get('id'));
-echo $this->formRow($form->get('title'));
-echo $this->formRow($form->get('artist'));
+echo $this->formHidden($form->get('ID'));
+echo $this->formRow($form->get('TITLE'));
+echo $this->formRow($form->get('ARTIST'));
 echo $this->formSubmit($form->get('submit'));
 echo $this->form()->closeTag();
zf2-tutorial/module/Album/view/album/album/delete.phtml
 <h1><?php echo $this->escapeHtml($title); ?></h1>
 
 <p>Are you sure that you want to delete
-'<?php echo $this->escapeHtml($album->title); ?>' by
-'<?php echo $this->escapeHtml($album->artist); ?>'?
+'<?php echo $this->escapeHtml($album->TITLE); ?>' by
+'<?php echo $this->escapeHtml($album->ARTIST); ?>'?
 </p>
 <?php
 $url = $this->url('album', array(
            'action' => 'delete',
-           'id'     => $this->id,
+           'id'     => $this->ID,
        ));
 ?>
 <form action="<?php echo $url; ?>" method="post">
     <div>
-    <input type="hidden" name="id" value="<?php echo (int) $album->id; ?>" />
+    <input type="hidden" name="id" value="<?php echo (int) $album->ID; ?>" />
     <input type="submit" name="del" value="Yes" />
     <input type="submit" name="del" value="No" />
     </div>
zf2-tutorial/module/Album/view/album/album/edit.phtml
         'album',
         array(
             'action' => 'edit',
-            'id'     => $this->id,
+            'id'     => $this->ID,
         )
     ));
 $form->prepare();
 
 echo $this->form()->openTag($form);
-echo $this->formHidden($form->get('id'));
-echo $this->formRow($form->get('title'));
-echo $this->formRow($form->get('artist'));
+echo $this->formHidden($form->get('ID'));
+echo $this->formRow($form->get('TITLE'));
+echo $this->formRow($form->get('ARTIST'));
 echo $this->formSubmit($form->get('submit'));
 echo $this->form()->closeTag();
zf2-tutorial/module/Album/view/album/album/index.phtml
</tr>
 <?php foreach ($albums as $album) : ?>
 <tr>
-<td><?php echo $this->escapeHtml($album->title);?></td>
-<td><?php echo $this->escapeHtml($album->artist);?></td>
+<td><?php echo $this->escapeHtml($album->TITLE);?></td>
+<td><?php echo $this->escapeHtml($album->ARTIST);?></td>
 <td>
 <a href="<?php echo $this->url('album',
-            array('action'=>'edit', 'id' => $album->id));?>">Edit</a>
+            array('action'=>'edit', 'id' => $album->ID));?>">Edit</a>
     <a href="<?php echo $this->url('album',
-            array('action'=>'delete', 'id' => $album->id));?>">Delete</a>
+            array('action'=>'delete', 'id' => $album->ID));?>">Delete</a>
     </td>
     </tr>
 <?php endforeach; ?>
zf2-tutorial/module/Album/src/Album/Model/Album.php
 class Album
 {
-    public $id;
-    public $artist;
-    public $title;
+    public $ID;
+    public $ARTIST;
+    public $TITLE;
     protected $inputFilter;
 
     public function exchangeArray($data)
     {
-        $this->id     = (!empty($data['id'])) ? $data['id'] : null;
-        $this->artist = (!empty($data['artist'])) ? $data['artist'] : null;
-        $this->title  = (!empty($data['title'])) ? $data['title'] : null;
+        $this->ID     = (!empty($data['ID'])) ? $data['ID'] : null;
+        $this->ARTIST = (!empty($data['ARTIST'])) ? $data['ARTIST'] : null;
+        $this->TITLE  = (!empty($data['TITLE'])) ? $data['TITLE'] : null;
     }
 
     public function getArrayCopy()

and

             $factory     = new InputFactory();
 
             $inputFilter->add($factory->createInput(array(
-                        'name'     => 'id',
+                        'name'     => 'ID',
                         'required' => true,
                         'filters'  => array(
                             array('name' => 'Int'),

and

                     )));
 
             $inputFilter->add($factory->createInput(array(
-                        'name'     => 'artist',
+                        'name'     => 'ARTIST',
                         'required' => true,
                         'filters'  => array(
                             array('name' => 'StripTags'),

and

                     )));
 
             $inputFilter->add($factory->createInput(array(
-                        'name'     => 'title',
+                        'name'     => 'TITLE',
                         'required' => true,
                         'filters'  => array(
                             array('name' => 'StripTags'),
zf2-tutorial/module/Album/src/Album/Model/AlbumTable.php
     public function getAlbum($id)
     {
         $id  = (int) $id;
-        $rowset = $this->tableGateway->select(array('id' => $id));
+        $rowset = $this->tableGateway->select(array('ID' => $id));
         $row = $rowset->current();
         if (!$row) {
             throw new \Exception("Could not find row $id");

and

     public function saveAlbum(Album $album)
     {
         $data = array(
-            'artist' => $album->artist,
-            'title'  => $album->title,
+            'ARTIST' => $album->ARTIST,
+            'TITLE'  => $album->TITLE,
         );
 
-        $id = (int)$album->id;
+        $id = (int)$album->ID;
         if ($id == 0) {
             $this->tableGateway->insert($data);
         } else {
             if ($this->getAlbum($id)) {
-                $this->tableGateway->update($data, array('id' => $id));
+                $this->tableGateway->update($data, array('ID' => $id));
             } else {
                 throw new \Exception('Form id does not exist');
             }

and

     public function deleteAlbum($id)
     {
-        $this->tableGateway->delete(array('id' => $id));
+        $this->tableGateway->delete(array('ID' => $id));
     }
 }
zf2-tutorial/module/Album/src/Album/Form/AlbumForm.php
         parent::__construct('album');
         $this->setAttribute('method', 'post');
         $this->add(array(
-                'name' => 'id',
+                'name' => 'ID',
                 'type' => 'Hidden',
             ));
         $this->add(array(
-                'name' => 'title',
+                'name' => 'TITLE',
                 'type' => 'Text',
                 'options' => array(
                     'label' => 'Title',
                 ),
             ));
         $this->add(array(
-                'name' => 'artist',
+                'name' => 'ARTIST',
                 'type' => 'Text',
                 'options' => array(
                     'label' => 'Artist',
zf2-tutorial/module/Album/src/Album/Controller/AlbumController.php
         }
 
         return array(
-            'id' => $id,
+            'ID' => $id,
             'form' => $form,
         );
     }

and

         }
 
         return array(
-            'id'    => $id,
+            'ID'    => $id,
             'album' => $this->getAlbumTable()->getAlbum($id)
         );
     }

When you create applications from scratch it will be straightforward to get it all working.

Virtual Sleuthing with GeoGuessr

Oracle AppsLab - Tue, 2013-05-14 09:39

I don’t normally pay much attention to games, but after GeoGuessr showed up in both the Verge and Kottke.org, I took notice.

It’s a very simple, but difficult game. GeoGuessr drops you into a random place that Google has mapped with Street View, but without any metadata, just the images Google captured. You can navigate around, using the usual Street View controls, and the object is simple: figure out where in the World you are.

Simple, right?

Sometimes, yes. If you land in a populated area, with signs and businesses.

Untitled 2

Not so simple if you land somewhere remote, like this round, where I landed on a tiny island. You’ll notice there weren’t any controls. This island was small enough to map with one look around, no walking needed. Off to the left, there’s a helicopter, indicating how Google managed to get to this remote island.

Untitled

That’s pretty much it. There are points awarded for guesses, but without leaderboards or any other traditional game mechanics, it’s just a fun test of your detective and geographic skills.

 Possibly Related Posts:

SQL Plan Stability and CBO Statistics Myths Busted

Eddie Awad - Tue, 2013-05-14 08:30

Carlos Sierra:

Since lack of Histograms or freezing CBO Statistics do not guarantee Plan Stability, do not rely on these two myths. If what you are looking for is Plan Stability use then SQL Plan Management available since 11g or SQL Profiles available from 10g.

© Eddie Awad's Blog, 2013. | Permalink | Add a comment | Topic: Oracle | Tags:

Related articles:

Big data challenges can be overcome with the right skills, tools

Chris Foot - Tue, 2013-05-14 07:51

Big data analysis has come to play a major role in providing enterprises with a competitive advantage. However, many firms are still struggling to effectively manage and mine these large caches of information, which are only continuing to grow, integrating new sources and formats that complicate the process. As a result, businesses need to deploy the skills of database experts in efforts to fuel more accurate and efficient decision-making.

Network World reported that a recent panel discussion at Interop in Las Vegas discussed the immense potential opportunities that come with big data analysis. According to the news source, these initiatives enable companies to gain a new level of visibility into current operations and tailor products and services based on consumer trends. And as new data storage, analytics and visualization tools emerge, enterprises have the chance to understand this information more easily than before. Bruno Aziza, vice president of marketing for SiSense, explained that the market for big data has been growing, forcing more enterprises both small and large to take notice.

"Businesses are starting to take control of the issue and figure out how they can use it," Aziza said, according to Network World.

He noted that due to the expanding amount of data available to businesses and advanced platforms for handling it, firms of all sizes can capitalize on the benefits of these analytics.

Breaking down barriers
Enterprise Apps Today reported there are still obstacles to big data implementation, however. In order to move beyond these roadblocks, firms need to adapt to demands for new skills, develop a clear plan for these projects, achieve more synchronized strategies between IT and other departments and deploy the latest solutions for handling analysis. The source explained that by "reskilling," enterprises can better train IT teams to utilize new technologies as well as empower other areas of the company to apply these analytics. This is a complicated process, however, and may require remote dba services for support. Enterprise Apps Today pointed out that IT needs to understand how to handle sensor-derived or unstructured data, such as social media information and other external sources. Unstructured sources could include smartphone photos or GPS tracking data, and is often the most valuable for providing companies with insight into customers.

The real advantages of big data come with customization, however. With support and guidance, firms can automate unnecessary tasks and engage in new ways with customers using in-depth analytics and searches that are tailored to address specific issues or concerns.

RDX's business intelligence and big data experts assist customers in leveraging data contained in large data stores. For more information, please visit our Business Intelligence and Predictive Analytics pages or contact us.

Adobe Fireworks Colour Picker Problem on Mac OS X Mountain Lion

Andrew Tulley - Tue, 2013-05-14 06:53

I’ve had a problem with Adobe Fireworks CS5 ever since upgrading to a Retina Display MacBook. The problem is that the eye-dropper colour picker tool just doesn’t work any more. At all. Very frustrating.

I came across a very simple workaround today which can be found here:

http://simianstudios.com/blog/post/colour-picker-bug-workaround-for-adobe-fireworks-cs4-in-os-x-lion

 

Image


Naming Members in vFabric SQLFire

Pas Apicella - Tue, 2013-05-14 04:12
I find it useful to give a member a meaningful  name. In SQLFire you could simply give each member a name by adding a property "name" as follows to the sqlfire.properties file for the member.

sqlfire.properties

# sqlfire.properties for data store or accessor member
license-serial-number=XXXXXXXXXXX
name=server1

Note: The same can be done with GemFire as well.

Then when the system is up the ID for each system member includes the given name as shown below.

  
sqlf> select substr(id, 1 , 35) as "Member" from sys.members;
Member                             
-----------------------------------
172.16.62.1(server2:38971)<v2>:4265
172.16.62.1(server1:38970)<v1>:1660
127.0.0.1(38744):29535             

3 rows selected
http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

IT demonstrates immense opportunities and challenges to adopting trends

Chris Foot - Tue, 2013-05-14 03:00

Due to the emergence of new mobile devices, the proliferation of cloud computing and other complexities contributing to the "Internet of Things," many enterprises have had to overhaul IT departments to meet new needs and objectives. However, a growing skills gap has left many firms unable to capitalize on the advantages of these IT trends. By leveraging remote dba services, enterprises can support effective database administration and ensure the analytical and operational benefits of these new solutions are realized.

According to research by TechServe Alliance, IT employment has grown 5.1 percent since April 2012 totaling 4,424,200 total jobs as of last month.

"I am pleased to see demand for IT professionals remains very strong," said TechServe Alliance CEO Mark Roberts. "With April's numbers, IT employment has grown for the 17th consecutive month hitting yet another all-time high. IT continues to handily outperform most other sectors with an annual growth rate of more than three times the growth rate of the general workforce."

Meeting new demands
But there are more factors that are driving complications in IT staffing. A Cisco study revealed that as businesses increase the number of new application rollouts, IT organizations face challenges to aligning network strategies to fulfill the requirements of the business. Cisco's research found that while 63 percent of IT professionals are confident in their ability to respond to business needs, almost one-third still cited very limited visibility into the company's initiatives. This lack of understanding has the potential  to greatly hinder any possible positive impact from new technology-related projects.

Survey participants ranked cloud readiness (29 percent) as the most important network initiative in the coming year, followed by "converging IT technology and operations technology" (28 percent) and data center consolidation and virtualization (27 percent). When asked about what main factors were slowing new application rollouts, most cited the budget, while 26 percent claimed data center infrastructure readiness was hindering these efforts.

"More than ever, IT has the potential to make a profound impact on the business – and opportunity to act as a strategic partner – by building a network architecture that can leverage multiple technology transitions," said Rob Soderbery, senior vice president and general manager for Cisco Enterprise Networking Group.

By working with a reputable IT services provider, enterprises can ready the network for bring-your-own-device (BYOD), cloud migration and any other trend that can promote a competitive advantage, all without the risk of business interruptions during the deployment process.

RDX is a leading provider of advanced remote database management and monitoring solutions. For more information about database administration and management, please visit our Services page or contact us.