Feed aggregator

All Things Developer at Oracle Code One - Day 3

OTN TechBlog - Thu, 2018-10-25 15:25

 

Community Matters! The Code One Avengers Keynote. When it comes to a code conference, it has to be about the community. Stephen Chin and his superheroes proved that right on stage last night with their Code Avengers keynote. The action-packed superheroes stole the thunder of Code One on Day 3.

Some of us were backstage with the superheroes, and the excitement and energy were just phenomenal. We want to tell this story in pictures, but what are these avengers fighting for?

We will, of course, start with Dr. Strange's address to his fellow superheroes of code which brought more than a quarter million viewers on Twitter. And then his troupe follows! The mural comic strips, animations, screenplay, and cast came together just brilliantly! Congrats to the entire superheroes team!

Here are some highlights from the keynote to recap:

https://www.facebook.com/OracleCodeOne/videos/2486105168071342/

The Oracle Code One Team Heads to CloudFest18

The remaining thunder was stolen by the Portugal Man, the Beck, and the Bleachers at the CloudFest18 rock concert in AT&Park. Jam-packed with Oracle customers, employees, and partners from TCS, the park was just electric with Powerade music!

Hands-on Labs Kept Rolling!

The NoSQL hands-on lab in action here delivered by the crew. One API to many NoSQL databases!

The Groundbreakers Hub was Busy!

The Hub was busy with pepper, more Groundbreaker live interviews, video hangouts, Zip labs, Code Card pickups, bullet time photo booths, superhero escape rooms, hackergarten, and with our favorite Cloud DJ  - Sonic Pi! Stephen Chin recaps what's hot at the Hub right here.

And a quick run of the bullet time photo booth. Rex Wang in action!

Sam Craft, our first Zip lab winner!

Code One Content in Action

Click here for a quick 30 second recap of other things on Day 3 at Oracle Code One.

Groundbreaker live interviews with Jesse Butler and Karthik Gaekwad on cloud native technologies and the Fn project -

https://twitter.com/OracleDevs/status/1055169708192751616

Groundbreaker live interview on AI and ML

https://twitter.com/OracleDevs/status/1055183021316292608

Groundbreaker live interviews on building RESTful APIs - 

https://twitter.com/OracleDevs/status/1055230551324483584

Groundbreaker live interviews with the design tech school on The All Jacked Up Project - 

https://twitter.com/OracleDevs/status/1055224092456960000

Groundbreaker live interviews on NetBeans

https://twitter.com/OracleDevs/status/1055206463809843200

And interesting live video hangouts on diversity in tech and women in tech

https://twitter.com/groundbreakers/status/1055161816333017088

https://twitter.com/groundbreakers/status/1055147716903239681

NetSuite Expands Social Impact Program to Help Nonprofits Change the World

Oracle Press Releases - Thu, 2018-10-25 11:38
Press Release
NetSuite Expands Social Impact Program to Help Nonprofits Change the World Expanded Social Impact Program helps nonprofits and social enterprises of any size accelerate their missions

SuiteConnect West—San Francisco, Calif.—Oct 25, 2018

NetSuite Social Impact

Oracle NetSuite today announced it has extended its commitment to helping global nonprofits and social enterprises. The new investments, which include enriched product donation, pro bono expansion and community building opportunities, expand the NetSuite Social Impact program and are designed to help nonprofits and social enterprises of all sizes quickly and easily take advantage of the latest cloud technologies to make the world a better place. 

“The NetSuite Social Impact program has helped thousands of nonprofits and social enterprises in the last 12 years, but this is just the beginning and there is so much more we can do,” said Evan Goldberg, executive vice president of development, Oracle NetSuite. “The NetSuite team is excited to see what we can achieve together. The new investments will help nonprofits of any size spend more of their time and resources on changing the world.”

According to a recent survey, manual processes and outdated software continue to be a top challenge for nonprofit organizations. Since 2006, the NetSuite Social Impact program has helped more than 1,300 nonprofits streamline business processes and focus time and resources on their core mission. The increased investment in the NetSuite Social Impact program is focused on three core areas:

  • Suite Donation: To help nonprofits rapidly implement new business systems in the cloud, NetSuite is strengthening its software donation to deliver nonprofits with a no-cost activation of Nonprofit SuiteSuccess. Building on over a decades industry expertise working with nonprofits, the leading practices ensure organizations are able to quickly and easily achieve business value from NetSuite on Day 1.

  • Suite Pro Bono: Building on the success of Suite Pro Bono projects and events, which help customers network, collaborate and innovate on the NetSuite platform, NetSuite is extending the reach of this program to all areas of professional assistance. The expanded program, which includes skilled pro bono and executive coaching, will be delivered by 6,000+ NetSuite employees, partners and customers in a variety of areas from marketing to financial management.

  • Suite Capacity: To help nonprofits share best practices and learn from each other, NetSuite is building on its existing online learning resources to launch a new online community and knowledge center. The extended online resources and educational opportunities will include guidance on leading practices and education that builds confidence, skills and success.

  • Kiva is a non-profit organization that allows people to lend money via the Internet to low-income entrepreneurs and students in over 80 countries.

    “Since receiving our NetSuite donation over eight years ago, Social Impact has allowed us to manage our growth while staying focused on our mission to alleviate poverty through lending. We’re thrilled to hear NetSuite is extending this program and now even more nonprofits will be able to take advantage of these expanded resources.” – Pamela Yanchik Connealy, Chief Financial Officer & Global Head of Operations, Kiva.

    Tides is a philanthropic partner and nonprofit accelerator dedicated to building a world of shared prosperity and social justice.

    “The mission of the NetSuite Social Impact program is core to our own mission of enabling organizations around the world to build a better tomorrow. Collaboration with NetSuite allows us to ensure we are delivering the advocacy, innovation, and technical expertise required to help these organizations scale and grow globally.” – Jonathan Mergy, IT director, Tides.

    NetHope, a consortium of nearly 60 global nonprofits that delivers over 60 percent of all annual, non-governmental international aid, unites its members with tech and funding partner to use the power of technology to address humanitarian, development, and conservation challenges.

    “NetHope, through its newest initiative, The Center for the Digital Nonprofit, is bringing together the expertise of the technology sector with the on-the-ground experience of nonprofits to help the sector navigate this complex digital environment and improve the world we share. Technology is key to driving impact with our ever-increasing global challenges. That’s why for us, this work with NetSuite is a key entry point into digital transformation for nonprofit organizations.” – Lauren Woodman, CEO, NetHope.

Contact Info
Danielle Tarp
Oracle Corporation
+1 650 506 2905
danielle.tarp@oracle.com
About Oracle NetSuite

For more than 20 years, Oracle NetSuite has helped organizations grow, scale and adapt to change. NetSuite provides a suite of cloud-based applications, which includes financials / Enterprise Resource Planning (ERP), HR, professional services automation and omnichannel commerce, used by more than 15,000 customers in 203 countries and dependent territories.

For more information, please visit http://www.netsuite.com.

Follow NetSuite’s Cloud blog, Facebook page and @NetSuite Twitter handle for real-time updates.

About Oracle

The Oracle Cloud offers complete SaaS application suites for ERP, HCM and CX, plus best-in-class database Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) from data centers throughout the Americas, Europe and Asia. For more information about Oracle (NYSE:ORCL), please visit us at www.oracle.com.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Talk to a Press Contact

Danielle Tarp

  • +1 650 506 2905

NetSuite Helps Organizations Across Industries Grow with Powerful New Innovations

Oracle Press Releases - Thu, 2018-10-25 11:35
Press Release
NetSuite Helps Organizations Across Industries Grow with Powerful New Innovations New commerce, global tax management and analytics capabilities help organizations adapt to change and successfully grow and scale

SuiteConnect West—San Francisco, Calif.—Oct 25, 2018

Oracle NetSuite today announced a series of new innovations to help organizations across industries grow revenues, expand internationally and empower business users. The new commerce, financial management and analytics capabilities help organizations take advantage of the NetSuite platform to exceed customer expectations, enable international expansion and respond quickly to vital business needs.

SuiteSuccess for SuiteCommerce

Today’s business environment is more challenging than ever. Competitors on all sides are closing in with new products and services, new business models and innovative customer experiences. Commerce has become mobile, social and always-on, as shopping, spending and sharing happens 24x7. Rules and regulations governing data privacy and taxes are constantly changing. Customer expectations have never been higher. Size and scale are no longer an automatic advantage. New technologies continue to change the rules. And the pace of change is accelerating on all fronts. The latest innovations from NetSuite help organizations adapt to these changes and successfully grow and scale.

“For many entrepreneurs and business owners it can often feel as though the only constant is change, but there are many things that have stayed the same including the mandate for growth,” said Evan Goldberg, executive vice president of development, Oracle NetSuite. “We work with thousands of organizations from different industries to help them stay focused on successfully growing and scaling their business amidst all of the change. This gives us a unique understanding of businesses across all sectors and we use those insights to continually enhance the NetSuite platform.”

The latest NetSuite updates include:

  • Commerce: The latest innovations within SuiteCommerce include new customer engagement, SEO and marketing optimization capabilities as well as a series of visual and interactive extensions that help marketers deliver a personalized and continuous shopping experience.
    • New themes to support B2B and B2C ecommerce sites for specific industries: Themes are optimized for performance, engagement and conversion and are fully responsive to provide a consistent experience no matter how shoppers browse the store.
    • New extensions: Allow customers to quickly and easily expand their stores with new capabilities such as blogs, gift wrap and message feature, size chart and testimonials.
    • General availability of merchandise hierarchy: Allows retailers to organize and display merchandise and provides a reporting structure of how sales and inventory of product are tracked and managed. This enables merchants to gain deeper insights into category sales and improve inventory planning.
    • Google tag manager editor: SuiteCommerce and SuiteCommerce Advanced sites can use SuiteCommerce Google Tag Manager Editor to connect their SuiteCommerce site to Google Tag Manager and to help manage third-party tags, like Google Ads and Facebook Pixel, without having to edit site source code.
    • Advanced email templates: Ready to use email templates can be branded for ecommerce emails, such as order notifications, digital delivery notifications and other notifications including password recovery.
    • New SuiteSuccess edition of SuiteCommerce: Enables rapid adoption and return on investment by removing the complexities and costs that surround successful commerce implementations.
  • Global Tax Management: To help organizations expand internationally, SuiteTax can simplify global tax calculations through support for nearly any tax rule, anywhere in the world. With SuiteTax, customers are able to calculate sales taxes in 140 different countries, including complex tax regimes such as China, India and Brazil. Tax rates can be automatically updated and users will be able to leverage out-of-the box reporting capabilities to quickly and easily drill down into every tax component so they know exactly how tax on each transaction was calculated.
  • Analytics: To help end-users quickly and easily get the answers they need to be successful, SuiteAnalytics embeds powerful analytics within existing business processes and provides an intuitive graphical toolset that makes it easy to explore and visualize data. By eliminating the need for developers and IT to deal with the complexities of separate reporting tools, business intelligence systems or data warehouses, SuiteAnalytics enables end users to quickly and easily get real-time business insights from across every area of the enterprise.
 

The latest additions to the NetSuite platform extend NetSuite’s commitment to helping organizations across the world grow, scale and adapt to change. NetSuite recently announced new industry innovations to help European businesses accelerate growth as well as new localized product capabilities and an expanded in-country teams for France and Germany.

Contact Info
Danielle Tarp
Oracle Corporation
+1 650 506 2905
danielle.tarp@oracle.com
About Oracle NetSuite

For more than 20 years, Oracle NetSuite has helped organizations grow, scale and adapt to change. NetSuite provides a suite of cloud-based applications, which includes financials / Enterprise Resource Planning (ERP), HR, professional services automation and omnichannel commerce, used by more than 15,000 customers in 203 countries and dependent territories.

For more information, please visit http://www.netsuite.com.

Follow NetSuite’s Cloud blog, Facebook page and @NetSuite Twitter handle for real-time updates.

About Oracle

The Oracle Cloud offers complete SaaS application suites for ERP, HCM and CX, plus best-in-class database Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) from data centers throughout the Americas, Europe and Asia. For more information about Oracle (NYSE:ORCL), please visit us at oracle.com.

Future Product Disclaimer

The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Talk to a Press Contact

Danielle Tarp

  • +1 650 506 2905

Bronto Makes Sophisticated Email Marketing Easy

Oracle Press Releases - Thu, 2018-10-25 11:32
Press Release
Bronto Makes Sophisticated Email Marketing Easy Latest release of the Bronto Marketing Platform helps marketers grow revenue, save time and optimize resources

SuiteConnect West—San Francisco, Calif.—Oct 25, 2018

Bronto Marketing Platform

Oracle Bronto today announced a series of new innovations that help marketers grow revenue, save time and optimize resources. Building on 15 years of email marketing best practices, the latest release of the Bronto Marketing Platform helps customers accelerate email marketing success and optimize marketing resources, and enable alignment with new and emerging privacy and security requirements.  

Technology has turned every customer interaction into a potential buy button, every customer into an influencer, every device into a wallet, and every email into a potential sale. For marketers, this creates massive opportunities—and challenges—at a time when organizations of all sizes must be even more transparent with customer data usage, while also using data intelligently at every possible turn in order to meet constantly changing customer expectations. To help marketers successfully navigate these changes and grow revenue, the latest release of the Bronto Marketing Platform delivers a host of new features and services as well as data and security enhancements.  

“Rapidly changing technologies, buying behavior, business landscapes and regulatory pressures are forcing organizations of all sizes to rethink their marketing strategies,” said George Moser, GM of Oracle Bronto. “Amidst all of this change, email remains the most powerful, profitable and popular marketing channel and that’s why we continue to invest in making sophisticated email marketing easy. The latest release of the Bronto Marketing Platform builds on this commitment with new innovations to help our customers grow revenue, save time and optimize resources.”

The latest updates to the Bronto Marketing Platform help marketers to:

Accelerate Email Marketing Success

  • JumpStart Program: Enables organizations to launch a comprehensive email marketing program in 30 days, aimed to rapidly grow subscription lists, engage shoppers and drive revenue. The enhanced Bronto Connectors decrease the time and expertise required to integrate Bronto with major ecommerce platforms including NetSuite and Shopify.
  • Path to Success: Our prescriptive, phased strategy and implementation methodology optimizes the adoption of additional Bronto solutions to help enable a company’s ability to grow, scale and adapt to change.
  • Self-Guided Learning Tools: Built-in platform tools empower marketers to get the assistance they need at any time and allow learning at a self-guided pace based on the needs of their business.
 

Optimize Marketing Resources

  • Intuitive User Experience: A redesign of the navigation enables marketers to quickly and easily create and monitor revenue-driving campaigns, saving time and resources.
  • Powerful Reporting: New comprehensive, real-time reports that can be automatically exported are built in to the Bronto platform, providing actionable insights that help marketers enhance the customer experience, grow revenue and better measure marketing success.
  • Time Zone Sending: An enhancement to message sending that allows marketers to send messages at the local time of each contact.
 

Features to Support Alignment with Privacy and Security Regulations and Standards

  • GDPR: Enhancements across the platform to support the ability to automate customer consent and unsubscribe preferences, consistently purge customer data from systems and easily access records for auditing purposes.
  • ISO: Bronto has successfully completed an independent audit of its processes for managing information security risks, including the protection of customer and consumer data, datacenter, and codebase, and the implementation of a product development lifecycle which includes processes designed to help ensure code is properly reviewed and passes quality assurance standards before being released to customers.
Contact Info
Danielle Tarp
Oracle Corporation
+1 650 506 2905
danielle.tarp@oracle.com
About Oracle Bronto

Oracle Bronto helps organizations of all sizes grow revenue, save time and optimize marketing resources. By delivering powerful and flexible email marketing solutions that work seamlessly with multiple ecommerce platforms, Bronto enables brands to maximizes the value of customer data and deliver irresistible customer experiences. Bronto solutions incorporate best practices from 15 years of email marketing success and are used by the world’s top brands, including Rebecca Minkoff, Lucky Brand, Theory, Brooks Running and Christopher & Banks.

For more information visit https://bronto.com/. You can also connect with us on the Bronto blog or on LinkedIn and Twitter.

About Oracle

The Oracle Cloud offers complete SaaS application suites for ERP, HCM and CX, plus best-in-class database Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) from data centers throughout the Americas, Europe and Asia. For more information about Oracle (NYSE:ORCL), please visit us at www.oracle.com.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Talk to a Press Contact

Danielle Tarp

  • +1 650 506 2905

BARK Selects NetSuite to Help Make Dogs Happy

Oracle Press Releases - Thu, 2018-10-25 11:30
Press Release
BARK Selects NetSuite to Help Make Dogs Happy NetSuite helps support dog-centric company through rapid growth and expansion of products, services, and distribution channels

SuiteConnect West—San Francisco, Calif.—Oct 25, 2018

BarkBox

BARK

BARK, the world’s most dog-centric company, has selected Oracle NetSuite to help support its delivery of the best products, services, and content to make dogs and their people happy. With NetSuite, BARK has access to a more unified and flexible platform that can meet the needs of its rapid growth across subscription, retail, and e-commerce and with the development of new and unique experiences that satisfy each individual dog’s distinct personality and preferences.

Founded in 2012 with BarkBox, a monthly subscription service of dog treats and toys, BARK has served more than 2 million dog homes nationwide. Building on its success to date, BARK is expanding its range of services and experiences, now creating more than 430 new, original products in-house every year and serving more than 600,000 active customers monthly. To support its rapid growth and new distribution channels, BARK selected NetSuite.

“As BARK continues to build upon the success of our subscription model and grow into new services and distribution channels, we need a technology platform that can streamline business processes and scale with us,” said Joe Garafalo, vice president of finance, BARK. “With NetSuite integrating critical functions across our various businesses, we can focus on developing creative new ways to reach our customers and fulfilling our dog-first mission of fostering the health and happiness of dogs everywhere. We look forward to building on our strong foundation with NetSuite to help us ensure every dog reaches her full tail-wagging potential.”

With NetSuite, BARK has been able to gain real-time insight into order management, purchasing, and inventory systems for its retail partner network, allowing it to make quicker, more informed decisions. With NetSuite now supporting the back-end, BARK can more seamlessly serve its customers via its retail partners, including Target, Urban Outfitters, Bluestone Lane, e-commerce site BarkShop.com, and its newest experiential venture, BarkPark, an outdoor clubhouse for dogs and their people in Nashville, TN.

“BARK is a great example of an innovative company that strives to create customer-first, or in this case dog-first, experiences,” said Jason Maynard, senior vice president of strategy and marketing, Oracle NetSuite Global Business Unit. “With a growing range of products and services for the 60 million dog households across the U.S., BARK is serving a huge market and is well positioned to continue its strong growth trajectory. By helping the BARK team manage critical business functions, we are doing our part to help BARK promote a more dog-inclusive lifestyle for its customers.”

Contact Info
Danielle Tarp
Oracle Corporation
+1 650 506 2905
danielle.tarp@oracle.com
Katie James
BARK
+1 609 915 1335
kjames@barkbox.com
About BARK

BARK is the world’s most dog-centric company, devoted to making dogs happy with the best products, services and content. BARK’s dog-obsessed team applies its unique, data-driven understanding of what makes each dog special to design playstyle-specific toys, wildly satisfying treats and wellness supplements, dog park chic accessories, and dog-first experiences that foster the health and happiness of dogs everywhere. BARK loyally serves dogs nationwide with monthly subscription services, BarkBox and Super Chewer; a curated e-commerce experience on BarkShop.com; and custom collections via its retail partner network. At BARK, we want to be the people our dogs think we are and promise to be their voice until every dog reaches its full tail-wagging potential. Sniff around at www.bark.co for more information.

About Oracle NetSuite

For more than 20 years, Oracle NetSuite has helped organizations grow, scale and adapt to change. NetSuite provides a suite of cloud-based applications, which includes financials/Enterprise Resource Planning (ERP), HR, professional services automation and omnichannel commerce, used by more than 15,000 customers in 203 countries and dependent territories.

For more information, please visit http://www.netsuite.com.

Follow NetSuite’s Cloud blog, Facebook page and @NetSuite Twitter handle for real-time updates.

About Oracle

The Oracle Cloud offers complete SaaS application suites for ERP, HCM and CX, plus best-in-class database Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) from data centers throughout the Americas, Europe and Asia. For more information about Oracle (NYSE:ORCL), please visit us at www.oracle.com.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Talk to a Press Contact

Danielle Tarp

  • +1 650 506 2905

Katie James

  • +1 609 915 1335

Oracle Honors Customers and Partners for Their Cloud Business Transformations

Oracle Press Releases - Thu, 2018-10-25 11:00
Press Release
Oracle Honors Customers and Partners for Their Cloud Business Transformations Gap, Hertz, and Stitch Fix among 2018 Oracle Excellence Award winners

Oracle OpenWorld, San Francisco—Oct 25, 2018

Major companies and organizations including American Red Cross, Deloitte, Gap, Hertz, National Grid, Sainsbury ’s and Stitch Fix are taking home a 2018 Excellence Award presented to them during Oracle OpenWorld this week.

The Oracle Excellence Awards is an annual program that recognizes an extraordinary set of customers and partners for exceptional use of Oracle solutions to accelerate innovation and drive business transformation and value by increasing agility, lowering costs, and reducing IT complexity. Each year, the winners are chosen from hundreds of nominations that come in from across the globe. Oracle is honored to congratulate each winner on their leadership and proud they have chosen Oracle technology to help power their cloud transformations.

Winners were announced in six customer categories:

  • Oracle Cloud Platform Innovation – awarded to customers and partners who are using Oracle Cloud Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) to accelerate innovation and drive business transformation by increasing agility, lowering costs and reducing IT complexity. This year’s winners are Accruent, American Red Cross, Amplifon, An Post, Anthem, CargoSmart, Certified Origins, CherryRoad Technologies, Cisco, CoreLogic, Cox Automotive, Doosan Bobcat, Drop Tank, Everything But The House (EBTH), EPB - Electric Power Board of Chattanooga, European Bank Of Reconstruction and Development, Expedia Group, FORs, Future Robot, Galeries Lafayette, The Gap, Inc., Genpact, Glesby Marks, Gonzaga University, Grupo Edson Queiroz, Hospital Alemao Oswaldo Cruz, ICICI Bank, IdentityMind Global, iGeolise, Illinois Casualty Company (ICC), Inspirage, Kingold Group, Latham Pool Products, Los Angeles Unified School District, Manhattan Associates, Maxim ’s Caterers Limited, Meliá Hotels International, Ministry of Interior Turkey, Mphasis, Mutua Madrid Open, Nextel, OceanX, Oi, Optima, PSEG Long Island, Royal Bank of Scotland, Sabre, Sainsbury ’s, Samsung Medical Center, Sant Just Desvern, Sauce, Sejel Technology, Siram, SK hynix, Solairus Aviation, SRF, Stitch Fix, Syneos Health, The Co-operative Group, The University of Adelaide, Toll Holdings, and Wpromote.
  • Cloud Architect of the Year – awarded to individuals that have driven successful cloud deployments, specifically in data management and analytics. These winners possess expert technical skills, adaptability and a keen strategic view of dynamic operations and the agile lifecycle of a cloud transformation. This year’s winners are Erik Dvergsnes, architect, Aker BP ASA; Steven Chang, CIO, Kingold Group Co. Ltd.; Dave Magnell, principal systems and planning management, Sabre; and Leonardo Simões, CIO, UnitedHealth Group Brazil.
  • Chief Data Officer of the Year – awarded to outstanding individuals that have leveraged data and analytics as key assets to fuel business innovation. This year’s winners are Pablo Giudici, big data analytics manager, Agea Digital, Clarin Group; Luis Esteban Grifoll, CDO and director of AI and cognitive projects, CaixaBank; V. Kalyana Rama, chairman and managing director, CONCOR; and Steve Chamberlin, CDO, Quality Metrics Partners (QMP).
  • Data Warehouse and Big Data Leader of the Year – recognizes individuals with vast and superior Oracle product knowledge who deliver successful implementations and usage of Oracle data warehouse and big data. This year’s winners are Benjamin Arnulf, senior director, business intelligence and analytics, The Hertz Corporation; Cheol Ki Kim, assistant manager, Hyundai Home Shopping; Vicente Alencar, head of advanced analytics and business intelligence, Nextel; and Conny Björling, head of enterprise architecture, Skanska AB.
  • Leadership in Infrastructure Transformation – awarded to leaders who have directed successful business transformation using Oracle Infrastructure technologies to reduce the cost of IT operations, improve time to technology deployments, and drive performance gains and enhanced end user productivity. This year’s winners are Michael Polepchuk, deputy CIO, BCS Global Markets; Brian Young, vice president, Cerner; Brian Bream, CTO, Collier IT; Rudolf Rotheneder, CEO, cons4u GmbH; Heidi Ratini, senior director of engineering, IT convergence; Philip Adams, CTO, Lawrence Livermore National Laboratory; JK Pareek, vice president, global IT and CIO, Nidec Americas Holding Corporation; Bariş Findik, CIO, Pegasus Airlines; Michael Myhrén, senior DBA senior systems engineer, Saab; and Charles Mongeon, vice president data center solutions and services, TELUS Corporation. More information on these winners can be found here.
  • Oracle Sustainability Innovation – awarded to customers and their partners that are embracing environmental initiatives as a central part of their businesses and leveraging technology to support those efforts. These winners showcased unique ways to advance energy efficiencies and sustainability across water, gas and electricity using Oracle Utilities technology. This year’s winners include Mercury NZ Limited, National Grid and The Orlando Utilities Commission.

Winners were announced in three partner categories:

  • Oracle Cloud ISV Partner of the Year – recognizes outstanding Oracle PartnerNetwork (OPN) members committed to delivering innovative solutions that run on Oracle Cloud. Award winners have demonstrated excellence across sales, marketing, expandable markets, customer satisfaction, and repeatable solutions powered by Oracle Cloud. This year’s winners are KNAPP AG, Manhattan Associates, MDSL, Moreton Bay Technology, and New Soft Informatica Limeira Ltda. 
  • Global Cloud Solution Award – awarded to an outstanding OPN partner ’s commitment to developing and delivering innovative cloud solutions highlighted with business achievements. It recognizes partner distinction in solution development and execution, sales, marketing, revenue achievement, and customer satisfaction. This year’s winner is Deloitte.
  • Specialized Partner of the Year – awarded to outstanding specialized partners who are committed to delivering innovative solutions and business achievements, along with excellence in sales, marketing, solution development, and customer satisfaction. This year’s winners are Evolutionary Systems Pvt Ltd; Evolutionary Systems Company Limited, Infinity Systems and Solutions Informatica LTDA, and Inspirage.

Oracle Excellence Award winners represent a wide range of customers and partners from small and medium businesses to the largest enterprises, spanning a wide range of industries. For more information, visit https://www.oracle.com/corporate/awards/.

Contact Info
Christine Allen
Oracle
+1.603.743.4534
christine.allen@oracle.com
About Oracle

The Oracle Cloud offers complete SaaS application suites for ERP, HCM and CX, plus best-in-class database Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) from data centers throughout the Americas, Europe and Asia. For more information about Oracle (NYSE:ORCL), please visit us at www.oracle.com .

About Oracle OpenWorld

Oracle OpenWorld, the industry’s most important business and technology conference for the past 20 years, hosts tens of thousands of in-person attendees as well as millions online. Dedicated to helping businesses leverage Cloud for their innovation and growth, the conference delivers deep insight into industry trends and breakthroughs driven by technology. With hundreds of demos and hands-on labs, plus exhibitions from more than 400 partners and customers from around the world, Oracle OpenWorld has become a showcase for leading cloud technologies, from Cloud Applications to Cloud Platform and Infrastructure. For more information; to register; or to watch Oracle OpenWorld keynotes, sessions, and more, visit www.oracle.com/openworld. Join the Oracle OpenWorld discussion on Twitter.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Talk to a Press Contact

Christine Allen

  • +1.603.743.4534

What’s OpenDB Appliance ?

Yann Neuhaus - Thu, 2018-10-25 10:07

Thanks to the OpenDB Appliance, the “click, hope and pray” approach is a thing of the past. Use the tool developed by dbi services’ specialists to make your work easier”

OpenDB Appliance makes life easier, discover why.

Get furhter information about the OpenDB Appliance.

Cet article What’s OpenDB Appliance ? est apparu en premier sur Blog dbi services.

Some psql features you are maybe not aware of

Yann Neuhaus - Thu, 2018-10-25 04:36

It is the time of The 10th Annual PostgreSQL Conference Europe, so this is the perfect time to blog about some tips and tricks around psql you’ll love. psql is such a powerful tool that you really should use it every day. It saves you so much work and is packed with features that makes your life so much easier. In this post we’ll look at some features you maybe didn’t know before.

Lets start with something very simple: You probably know the “\l” shortcut to display all the databases:

postgres=# \l
                                 List of databases
   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   
-----------+----------+----------+------------+------------+-----------------------
 postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres

Did you know you also can pass the shortcuts from your shell directly into psql?

postgres@pgbox:/home/postgres/ [PGDEV] psql -c '\l' postgres
                                 List of databases
   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   
-----------+----------+----------+------------+------------+-----------------------
 postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres

But there is even a faster way for retrieving that information:

postgres@pgbox:/home/postgres/ [PGDEV] psql -l
                                 List of databases
   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   
-----------+----------+----------+------------+------------+-----------------------
 postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres

Did you know you can log the complete psql session to a logfile?

postgres@pgbox:/home/postgres/ [PGDEV] psql -X -L /var/tmp/log postgres
psql (12devel)
Type "help" for help.

postgres=# select 1;
 ?column? 
----------
        1
(1 row)

postgres=# select 2;
 ?column? 
----------
        2
(1 row)

postgres=# \! cat /var/tmp/log
********* QUERY **********
select 1;
**************************

 ?column? 
----------
        1
(1 row)

********* QUERY **********
select 2;
**************************

postgres=# 

You probably know that copy is the fastest way to get data into and out of PostgreSQL. Did you know you can copy from a program?

postgres=# create table lottery ( draw_date date, winning_numbers text, mega_ball integer, multiplier integer );
CREATE TABLE
postgres=# copy lottery from 
                program 'curl https://data.ny.gov/api/views/5xaw-6ayf/rows.csv?accessType=DOWNLOAD' 
                with (header true, delimiter ',', format csv);
COPY 1713
postgres=# select * from lottery limit 5;
 draw_date  | winning_numbers | mega_ball | multiplier 
------------+-----------------+-----------+------------
 2002-05-17 | 15 18 25 33 47  |        30 |           
 2002-05-21 | 04 28 39 41 44  |         9 |           
 2002-05-24 | 02 04 32 44 52  |        36 |           
 2002-05-28 | 06 21 22 29 32  |        24 |           
 2002-05-31 | 12 28 45 46 52  |        47 |           
(5 rows)

That basically means, whatever “program” you use: As long as the result is something psql understands you can use it.

How often do you dynamically build SQL statements you want to execute right after? There is a quite effective solution for that in psql:

postgres=# select 'create table t'||i||'( a int )' from generate_series(1,10) i; \gexec
         ?column?          
---------------------------
 create table t1( a int )
 create table t2( a int )
 create table t3( a int )
 create table t4( a int )
 create table t5( a int )
 create table t6( a int )
 create table t7( a int )
 create table t8( a int )
 create table t9( a int )
 create table t10( a int )
(10 rows)

CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE
CREATE TABLE

Did you know you can store the result of a query into a variable and use that later in other statements?

postgres=# select 3 as var; \gset
 var 
-----
   3
(1 row)

postgres=# \echo :var
3
postgres=# select * from lottery where multiplier = :var;
 draw_date  | winning_numbers | mega_ball | multiplier 
------------+-----------------+-----------+------------
 2011-02-18 | 05 06 07 30 45  |        42 |          3
 2011-03-01 | 01 12 19 20 47  |        25 |          3
 2011-04-01 | 13 14 35 36 53  |        19 |          3
 2011-04-08 | 06 40 45 50 56  |        11 |          3
 2011-04-15 | 22 23 33 39 48  |        29 |          3
 2011-04-22 | 03 18 46 51 53  |        17 |          3
 2011-04-26 | 19 29 32 38 55  |        15 |          3
 2011-05-06 | 06 18 26 37 41  |         9 |          3
 2011-05-24 | 09 12 21 42 43  |        42 |          3
 2011-05-31 | 28 30 31 37 55  |        13 |          3
 2011-06-03 | 20 23 41 49 53  |        31 |          3
 2011-06-10 | 18 21 27 37 38  |         7 |          3
...

The last one for today is one of my favorites: As with the Linux watch command you can watch in psql:

postgres=# select now();
              now              
-------------------------------
 2018-10-23 21:57:17.298083+02
(1 row)

postgres=# \watch
Tue 23 Oct 2018 09:57:19 PM CEST (every 2s)

              now              
-------------------------------
 2018-10-23 21:57:19.277413+02
(1 row)

Tue 23 Oct 2018 09:57:21 PM CEST (every 2s)

              now              
-------------------------------
 2018-10-23 21:57:21.364605+02
(1 row)

Btw: You can see that the PostgreSQL Conference Europe is a technical conference when you take a look at the exhibition area during the sessions: Almost empty :)
sdr

Cet article Some psql features you are maybe not aware of est apparu en premier sur Blog dbi services.

Join Cardinality – 4

Jonathan Lewis - Thu, 2018-10-25 03:09

In previous installments of this series I’ve been describing how Oracle estimates the join cardinality for single column joins with equality where the columns have histograms defined. So far I’ve  covered two options for the types of histogram involved: frequency to frequency, and frequency to top-frequency. Today it’s time to examine frequency to hybrid.

My first thought about this combination was that it was likely to be very similar to frequency to top-frequency because a hybrid histogram has a list of values with “repeat counts” (which is rather like a simple frequency histogram), and a set of buckets with variable sizes that could allow us to work out an “average selectivity” of the rest of the data.

I was nearly right but the arithmetic didn’t quite work out the way I expected.  Fortunately Chinar Aliyev’s document highlighted my error – the optimizer doesn’t use all the repeat counts, it uses only those repeat counts that identify popular values, and a popular value is one where the endpoint_repeat_count is not less than the average number of rows in a bucket. Let’s work through an example – first the data (which repeats an earlier article, but is included here for ease of reference):

rem
rem     Script:         freq_hist_join_06.sql
rem     Author:         Jonathan Lewis
rem     Dated:          Oct 2018
rem

set linesize 156
set pagesize 60
set trimspool on

execute dbms_random.seed(0)

create table t1 (
        id              number(6),
        n04             number(6),
        n05             number(6),
        n20             number(6),
        j1              number(6)
)
;

create table t2(
        id              number(8,0),
        n20             number(6,0),
        n30             number(6,0),
        n50             number(6,0),
        j2              number(6,0)
)
;

insert into t1
with generator as (
        select
                rownum id
        from dual
        connect by
                level <= 1e4 -- > comment to avoid WordPress format issue
)
select
        rownum                                  id,
        mod(rownum,   4) + 1                    n04,
        mod(rownum,   5) + 1                    n05,
        mod(rownum,  20) + 1                    n20,
        trunc(2.5 * trunc(sqrt(v1.id*v2.id)))   j1
from
        generator       v1,
        generator       v2
where
        v1.id <= 10 -- > comment to avoid WordPress format issue
and     v2.id <= 10 -- > comment to avoid WordPress format issue
;

insert into t2
with generator as (
        select
                rownum id
        from dual
        connect by
                level <= 1e4 -- > comment to avoid WordPress format issue
)
select
        rownum                                  id,
        mod(rownum,   20) + 1                   n20,
        mod(rownum,   30) + 1                   n30,
        mod(rownum,   50) + 1                   n50,
        28 - round(abs(7*dbms_random.normal))        j2
from
        generator       v1
where
        rownum <= 800 -- > comment to avoid WordPress format issue
;

commit;

begin
        dbms_stats.gather_table_stats(
                ownname          => null,
                tabname          => 'T1',
                method_opt       => 'for all columns size 1 for columns j1 size 254'
        );
        dbms_stats.gather_table_stats(
                ownname          => null,
                tabname          => 'T2',
                method_opt       => 'for all columns size 1 for columns j2 size 13'
        );
end;
/

As before I’ve got a table with 100 rows using the sqrt() function to generate column j1, and a table with 800 rows using the dbms_random.normal function to generate column j2. So the two columns have skewed patterns of data distribution, with a small number of low values and larger numbers of higher values – but the two patterns are different.

I’ve generated a histogram with 254 buckets (which dropped to 10) for the t1.j1 column, and generated a histogram with 13 buckets for the t2.j2 column as I knew (after a little trial and error) that this would give me a hybrid histogram.

Here’s a simple query, with its result set, to report the two histograms – using a full outer join to line up matching values and show the gaps where (endpoint) values in one histogram do not appear in the other:


define m_popular = 62

break on report skip 1

compute sum of product on report
compute sum of product_rp on report

compute sum of t1_count on report
compute sum of t2_count on report
compute sum of t2_repeats on report
compute sum of t2_pop_count on report

with f1 as (
select
        table_name,
        endpoint_value                                                            value,
        endpoint_number - lag(endpoint_number,1,0) over(order by endpoint_number) row_or_bucket_count,
        endpoint_number,
        endpoint_repeat_count,
        to_number(null)
from
        user_tab_histograms
where
        table_name  = 'T1'
and     column_name = 'J1'
order by
        endpoint_value
),
f2 as (
select
        table_name,
        endpoint_value                                                            value,
        endpoint_number - lag(endpoint_number,1,0) over(order by endpoint_number) row_or_bucket_count,
        endpoint_number,
        endpoint_repeat_count,
        case when endpoint_repeat_count >= &m_popular
                        then endpoint_repeat_count
                        else null
        end     pop_count
from
        user_tab_histograms
where
        table_name  = 'T2'
and     column_name = 'J2'
order by
        endpoint_value
)
select
        f1.value t1_value,
        f2.value t2_value,
        f1.row_or_bucket_count t1_count,
        f2.row_or_bucket_count t2_count,
        f1.endpoint_repeat_count t1_repeats,
        f2.endpoint_repeat_count t2_repeats,
        f2.pop_count t2_pop_count
from
        f1
full outer join
        f2
on
        f2.value = f1.value
order by
        coalesce(f1.value, f2.value)
;


  T1_VALUE   T2_VALUE   T1_COUNT   T2_COUNT T1_REPEATS T2_REPEATS T2_POP_COUNT
---------- ---------- ---------- ---------- ---------- ---------- ------------
                    1                     1                     1
         2                     5                     0
         5                    15                     0
         7                    15                     0
        10                    17                     0
        12                    13                     0
        15         15         13         55          0         11
        17         17         11         56          0         34
                   19                    67                    36
        20         20          7         57          0         57
                   21                    44                    44
        22         22          3         45          0         45
                   23                    72                    72           72
                   24                    70                    70           70
        25         25          1         87          0         87           87
                   26                   109                   109          109
                   27                    96                    96           96
                   28                    41                    41
---------- ---------- ---------- ----------            ---------- ------------
                             100        800                   703          434

You’ll notice that there’s a substitution variable (m_popular) in this script that I use to identify the “popular values” in the hybrid histogram so that I can report them separately. I’ve set this value to 62 for this example because a quick check of user_tables and user_tab_cols tells me I have 800 rows in the table (user_tables.num_rows) and 13 buckets (user_tab_cols.num_buckets) in the histogram: 800/13 = 61.52. A value is popular only if its repeat count is 62 or more.

This is where you may hit a problem – I certainly did when I switched from testing 18c to testing 12c (which I just knew was going to work – but I tested anyway). Although my data has been engineered so that I get the same “random” data in both versions of Oracle, I got different hybrid histograms (hence my complaint in a recent post.) The rest of this covers 18c in detail, but if you’re running 12c there are a couple of defined values that you can change to get the right results in 12c.

At this point I need to “top and tail” the output because the arithmetic only applies where the histograms overlap, so I need to pick the range from 2 to 25. Then I need to inject a “representative” or “average” count/frequency in all the gaps, then cross-multiply. The average frequency for the frequency histogram is “half the frequency of the least frequently occurring value” (which seems to be identical to new_density * num_rows), and the representative frequency for the hybrid histogram is (“number of non-popular rows” / “number of non-popular values”). There are 800 rows in the table with 22 distinct values in the column, and the output above shows us that we have 5 popular values totally 434 rows, so the average frequency is (800 – 434) / (22 – 5) = 21.5294. (Alternatively we could say that the average selectivities (which is what I’ve used in the next query) are 0.5/100 and 21.5294/800.)

[Note for 12c, you’ll get 4 popular values covering 338 rows, so your figurese will be: (800 – 338) / (22 – 4) = 25.6666… and 0.0302833]

So here’s a query that restricts the output to the rows we want from the histograms, discards a couple of columns, and does the arithmetic:


define m_t2_sel = 0.0302833
define m_t2_sel = 0.0269118
define m_t1_sel = 0.005

break on table_name skip 1 on report skip 1

with f1 as (
select
        table_name,
        endpoint_value                                                            value,
        endpoint_number - lag(endpoint_number,1,0) over(order by endpoint_number) row_or_bucket_count,
        endpoint_number,
        endpoint_repeat_count,
        to_number(null) pop_count
from
        user_tab_histograms
where
        table_name  = 'T1'
and     column_name = 'J1'
order by
        endpoint_value
),
f2 as (
select
        table_name,
        endpoint_value                                                            value,
        endpoint_number - lag(endpoint_number,1,0) over(order by endpoint_number) row_or_bucket_count,
        endpoint_number,
        endpoint_repeat_count,
        case when endpoint_repeat_count >= &m_popular
                        then endpoint_repeat_count
                        else null
        end     pop_count
from
        user_tab_histograms
where
        table_name  = 'T2'
and     column_name = 'J2'
order by
        endpoint_value
)
select
        f1.value f1_value,
        f2.value f2_value,
        nvl(f1.row_or_bucket_count,100 * &m_t1_sel) t1_count,
        nvl(f2.pop_count,          800 * &m_t2_sel) t2_count,
        case when (   f1.row_or_bucket_count is not null
                   or f2.pop_count is not null
        )    then
                nvl(f1.row_or_bucket_count,100 * &m_t1_sel) *
                nvl(f2.pop_count,          800 * &m_t2_sel)
        end      product_rp
from
        f1
full outer join
        f2
on
        f2.value = f1.value
where coalesce(f1.value, f2.value) between 2 and 25
order by
        coalesce(f1.value, f2.value)
;


 F1_VALUE   F2_VALUE   T1_COUNT   T2_COUNT PRODUCT_RP
---------- ---------- ---------- ---------- ----------
         2                     5   21.52944   107.6472
         5                    15   21.52944   322.9416
         7                    15   21.52944   322.9416
        10                    17   21.52944  366.00048
        12                    13   21.52944  279.88272
        15         15         13   21.52944  279.88272
        17         17         11   21.52944  236.82384
                   19         .5   21.52944
        20         20          7   21.52944  150.70608
                   21         .5   21.52944
        22         22          3   21.52944   64.58832
                   23         .5         72         36
                   24         .5         70         35
        25         25          1         87         87
                      ---------- ---------- ----------
sum                          102  465.82384 2289.41456

There’s an important detail that I haven’t mentioned so far. In the output above you can see that some rows show “product_rp” as blank. While we cross multiply the frequencies from t1.j1 and t2.j2, filling in average frequencies where necessary, we exclude from the final result any rows where average frequencies have been used for both histograms.

[Note for 12c, you’ll get the result 2698.99736 for the query, and 2699 for the execution plan]

Of course we now have to check that the predicted cardinality for a simple join between these two tables really is 2,289. So let’s run a suitable query and see what the optimizer predicts:


set serveroutput off

alter session set statistics_level = all;
alter session set events '10053 trace name context forever';

select
        count(*)
from
        t1, t2
where
        t1.j1 = t2.j2
;

select * from table(dbms_xplan.display_cursor(null,null,'allstats last'));

alter session set statistics_level = typical;
alter session set events '10053 trace name context off';

SQL_ID  cf4r52yj2hyd2, child number 0
-------------------------------------
select  count(*) from  t1, t2 where  t1.j1 = t2.j2

Plan hash value: 906334482

-----------------------------------------------------------------------------------------------------------------
| Id  | Operation           | Name | Starts | E-Rows | A-Rows |   A-Time   | Buffers |  OMem |  1Mem | Used-Mem |
-----------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |      |      1 |        |      1 |00:00:00.01 |     108 |       |       |          |
|   1 |  SORT AGGREGATE     |      |      1 |      1 |      1 |00:00:00.01 |     108 |       |       |          |
|*  2 |   HASH JOIN         |      |      1 |   2289 |   1327 |00:00:00.01 |     108 |  2546K|  2546K| 1194K (0)|
|   3 |    TABLE ACCESS FULL| T1   |      1 |    100 |    100 |00:00:00.01 |      18 |       |       |          |
|   4 |    TABLE ACCESS FULL| T2   |      1 |    800 |    800 |00:00:00.01 |      34 |       |       |          |
-----------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access("T1"."J1"="T2"."J2")

As you can see, the E-Rows for the join is 2,289, as required.

I can’t claim that the model I’ve produced is definitely what Oracle does, but it looks fairly promising. No doubt, though, there are some variations on the theme that I haven’t considered – even when sticking to a simple (non-partitioned) join on equality on a single column.

Getting in touch with shareplex

Yann Neuhaus - Thu, 2018-10-25 02:39

Tuesday this week I had the opportunity to get in touch with shareplex, Quest’s replication solution. This product does not rely on Oracle licenses, so can also be used with Standard Edition. It is competitor of Oracle’s GoldenGate an used for asynchronous replication, too.
An interesting feature is that not only committed transactions can be replicated, which is an advantage with big transactions. With this feature replication latencies within seconds can be realized. Also migrations of big databases over operating system, character set and database release boundaries are possible with this solution. Quest mentions that costs are lower than that of comparable Oracle products.

It can be also used for reporting, high availability, distributed processing and load sharing.

Cet article Getting in touch with shareplex est apparu en premier sur Blog dbi services.

[BLOG] Oracle GoldenGate: Replicat running but not applying transactions

Online Apps DBA - Thu, 2018-10-25 02:19

Are you facing the issue during replication that replicat is running but not applying transactions? Visit: https://k21academy.com/goldengate29 to learn: ✔The Reasons for this issue ✔How the issue can be resolved & much more… Are you facing the issue during replication that replicat is running but not applying transactions? Visit: https://k21academy.com/goldengate29 to learn: ✔The Reasons for […]

The post [BLOG] Oracle GoldenGate: Replicat running but not applying transactions appeared first on Oracle Trainings for Apps & Fusion DBA.

Categories: APPS Blogs

Oracle OpenWorld 2018: Day 3

Yann Neuhaus - Wed, 2018-10-24 23:42

Today my first session was about GDPR Data Security in the GDPR Era. It was presented by
Joao Nunes, IT Senior Manager, NOS
Tiago Rocha, Database Administrator, “Nos Comunicaões, Sa.”
Eric Lybeck, Director, PwC
The speakers started by presenting what is GDPR which is a new law protecting data for European citizens. After they explain the changes for companies about this new law.
They talk about the GDPR articles related to Oracle Database Security.
openday3_0
And they conclude by underlining that the technical to be compliant with GDPR is not the most important part and then companies must have well documented processes.
openday3_11
My second session was Oracle Database Security Assessment Tool: Know Your Security Posture Before Hackers Do presented by
Pedro Lopes, DBSAT and EMEA Field Product Manager, Oracle
Marella Folgori, Oracle
Riccardo D’Agostini, Responsabile Progettazione Data Security, Intesa Sanpaolo
This session was about the new Oracle Database Security Assessment Tool (DBSAT) which can help to discover sensitive personal data, identify database users and their entitlements, and understand the configuration and operational security risks. This tool is free for Oracle customers.
I think this picture will help to better understand DBSAT
openday3_1
They also presented new features in the upcoming vesion. Note that actually only CIS rules are included
openday3_2
My last session was Multitenant Security Features Clarify DBA Role in DevOps Cloud presented
SPEAKERS
Franck Pachot, Database Engineer, CERN
Pieter Van Puymbroeck, Database Administrator, Exitas NV
We will not present Franck Pachot and as usual the session was exciting. It was about security in a multitenant environment.
The speakers explain how privileges can be restricted using lockdown profiles in a multitenant environment.
And to finish this beautiful picture
openday3_3

Cet article Oracle OpenWorld 2018: Day 3 est apparu en premier sur Blog dbi services.

“Hidden” Efficiencies of Non-Partitioned Indexes on Partitioned Tables Part III” (Ricochet)

Richard Foote - Wed, 2018-10-24 20:15
In Part I and Part II of this series, we looked at how Global Indexes can effectively perform “Partition Pruning” when the partition keys are specified in SQL predicates, by only using those index entries that have a Data Object of interest stored within the index Rowids. In this piece, I’ll cover the key performance […]
Categories: DBA Blogs

Oracle Open World 2018 D3: Replication what’s new in MySQL 8

Yann Neuhaus - Wed, 2018-10-24 20:08

For this last day (25.10.2018) at Oracle Open World my first technical session was “Replication what’s new in MySQL 8“. This session was given by Nuno Carvalho – Oracle MySQL Principal Software Engineer, Vitor Oliveira – Oracle MySQL Performance Architect, Louis Soares – Oracle MySQL Software Development Director. You can find the list of new features linked with MySQL InnoDB Cluster here.

MySQL - high availabiltiy

They introduced the session with the challenges a database has to face today:

  • We share lots of data
  • All things distributed
  • We are not sharing anymore few Ko but Mo
  • Go green requires dynamic and adaptative behavior
  • Moving, transforming and processing data quicker than anyone else means having an edge over competitors
  • We expect service always available even in case of migration/upgrade
  • etc…

Some years ago we solved availability concerns with replication but replication is not anymore able to solve the today’s challenges. Replication was perfect to generate and reproducing multiple copies of data at one or more sites. The MySQL replication technology evolved since version 3.23 where replication was asynchronous. Since version 5.5 thanks to a the semi-synchronous replication plugin, we have semi-synchronous replication and now since version 5.7.17 and 8.01 we have group replication.

MySQL Replication evolution

In order to answer to the today’s challenges, the solution must fit with these requirements:

  • Replicate: The number of servers should grow or shrink dynamically with as little pain as possible
  • Automate: The primary/secondary role assignment has to be automatic. A new primary has to be elected automatically on primary failures. The read/write modes on primary and secondaries have to be setup automatically. A consistent wview of which server is the primary has to be provided.
  • Integrate: MySQL has to fit with other technologies such as Hadoop, Kafka, Solr, Lucene, aso…
  • Scale: Repliacte between clusters for disaster recovery. For read scale out, asynchronous read replicas can be connected to the cluster
  • Enhance: Group replication for higher availability. Asynchronous Replication for Read Scale-out. One-stop shell to deploy and manage the cluster. Seamlessly and automatically route the workload to the proper database server in the cluster (in case of failure). Hide failures from the application.

MySQL role change

Enhancements in MySQL 8 (and 5.7)

The following has been enhanced in version 8 and 5.7:

  • Binary log Enhancements. Thanks to new metadata: Easy to decode what is in the binary log. Further facilitates connecting MySQL to other systems using the binary log stream. Cpaturing data changes through the binary log is simplified. Also more stats showing where the data is/was at a certain point in time.
  • Operations: Preventing Updates On replicas that leave the cluster- Automatic protection against involuntarily tainting of offline replicas. Primary Election Weights – Choose next primary by assigning election weights to the candidates. Trigger primary Election Online – User tells current primary to give up its role and assign it to another server(new in 8.0.13). Relaxed Member Eviction – User controls the amount of time to wait until others decide to evict a member from the group.
  • Performance: Highly efficient Replication Applier – write set parallelization. Fast Group Replication Recovery – Replica quickly online by using WRITESET. High Cluster Througput – More transactions per second while sustaining zero lag on any replica. Efficient Replication of JSON Documents – Replicate only changed fields of documents (Partial JSON Updates).
  • Monitoring: Monitor Lag with microsecond precision – From the immediate master and for each stage of the replication applier process. Global Group Stats Available on Every Server – Version, Role and more

MySQL 8 Group Replication

I finally recommend to have a look on the blogs from the Engineers  where you will find news, technical information and much more: http://mysqlhighavailability.com

 

Cet article Oracle Open World 2018 D3: Replication what’s new in MySQL 8 est apparu en premier sur Blog dbi services.

Using the Mindbreeze client.js File to Create Custom Search Interfaces

This post describes how to create custom Mindbreeze search interfaces using the built-in Mindbreeze client.js file. This post is a follow up to our post on Four Options for Creating Mindbreeze Search Interfaces where we mention Option 3 is creating custom Mindbreeze web applications.

For this example, I will be using my local web server with XAMPP for Windows which uses Apache in the background. Setting up XAMPP is beyond the scope of this blog post, but this approach can be taken with any web server or architecture.

The widgets and html snippet references in the post are based on the following documentation from the Mindbreeze website: Development of Search Apps.

Creating a Basic Search Page

To begin, I created a blog.html file referencing Mindbreeze’s client.js file and using RequireJS to load the Mindbreeze search application. To do this, I created a new application object and told the page where the starting <div> block is using the rootEl property of the application. Since I did not want the page to run a blank search right away, I also added the startSearch property and set it to false.

There are a few mustache templates that I injected onto the page by copying and pasting from the default Mindbreeze search application (index.html). I then removed some of the optional elements to create a no-frills search page as shown in the snippet below. I’ve included the templates for result count and spelling suggestions, which are contained in the searchinfo and results templates respectively.

<html>
  <head>
    <title>Mindbreeze Search</title>
  </head>
  <body>
    <script src="https://mindbreeze.fishbowlsolutions.com:23352/apps/scripts/client.js" data-global-export="false"></script>
    <script>
      Mindbreeze.require(["client/application"], function (Application) {
        var application = new Application({
          rootEl: document.getElementById("searchresults"),
          startSearch: false,
        });
      });
  </script>
    <div id="searchresults">
      <div data-template="view" data-count="10" data-constraint="ALL">
        <script type="text/x-mustache-template" data-attr-role="status" data-attr-class="{{^estimated_count?}}hide{{/estimated_count?}}"
          data-attr-tabindex="-1">
          {{^status_messages.no_results?}}
          <h3>
            {{#estimated_count?}}
              {{estimated_count}} {{i18n.editor_result_title}}
            {{/estimated_count?}}
          </h3>
          {{/status_messages.no_results?}}
        </script>
        <div data-template="searchinfo"></div>
        <div data-template="results" class="media-list list-group">
        </div>
      </div>
    </div>
  </body>
</html>

Navigating to this page with a query parameter (e.g. ?query=ALL) returns a simple search results list without any styling.

We can now add our own custom styling to the page. I added the Bootstrap CDN, along with jQuery to style my page.

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    <script defer src="https://use.fontawesome.com/releases/v5.0.13/js/all.js" integrity="sha384-xymdQtn1n3lH2wcu0qhcdaOpQwyoarkgLVxC/wZ5q7h9gHtxICrpcaSUfygqZGOe" crossorigin="anonymous"></script>

Adding some bootstrap class information like container and col-md-9 for the results helps me quickly style the page for adding on facets.

There are two different types of facets that Mindbreeze offers: FilteredFacets and FilteredFacet.  FilteredFacets allow for the configuration page in the Management Center to control what facets are displayed on the page.  FilteredFacet allows developers to manually add the desired facets individually.  For this demonstration, I will be manually adding a facet using FilteredFacet. This is shown below with the addition of the facet for author.

<html>
<head>
  <title>Mindbreeze Search</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
    crossorigin="anonymous">
  <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
    crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
    crossorigin="anonymous"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
    crossorigin="anonymous"></script>
  <script defer src="https://use.fontawesome.com/releases/v5.0.13/js/all.js" integrity="sha384-xymdQtn1n3lH2wcu0qhcdaOpQwyoarkgLVxC/wZ5q7h9gHtxICrpcaSUfygqZGOe"
    crossorigin="anonymous"></script>
</head>
<body>
  <script src="https://mindbreeze.fishbowlsolutions.com:23352/apps/scripts/client.js" data-global-export="false"></script>
  <script>
    Mindbreeze.require(["client/application"], function (Application) {
        var application = new Application({
          rootEl: document.getElementById("searchresults"),
          startSearch: false,
        });
      });
  </script>
  <div id="searchresults" class="container">
    <div data-template="view" data-count="10" data-constraint="ALL">
      <!--Constraing is optional the same as in redirect of original page-->
      <script type="text/x-mustache-template" data-attr-role="status" data-attr-class="{{^estimated_count?}}hide{{/estimated_count?}}"
        data-attr-tabindex="-1">
        {{^status_messages.no_results?}}
          <h3>
            {{#estimated_count?}}
              {{estimated_count}} {{i18n.editor_result_title}}
            {{/estimated_count?}}
          </h3>
          {{/status_messages.no_results?}}
        </script>
      <div data-template="searchinfo"></div>
      <div class="row">
        <div class="col-md-9">
          <div data-template="results">
          </div>
        </div>
        <div class="col-md-3">
          <div data-template="filteredfacet" data-name="Author" data-container-tag-name="div" data-container-class-name="filter"
            data-entry-tag-name="div" data-entry-class-name="entry">
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
</html>

We can see that I now have the author field as a configured value.  There are more configurations offered like changing the template of the results in the filter or HTML tags, allowing user input, and modifying the title label. Information on these options can be found here: Mindbreeze Filtered Facet Widget.

Now we will add the search form onto the page. This will allow suggestions to show up when a user is typing a query.  You can add additional parameters to the input tag to tell Mindbreeze which data sources to run suggestions against like popular searches, recent searches, and document properties.  This documentation is available here: Mindbreeze Suggestions.

We’ll style the suggestions in the next section.

<form class="center search-field mb-print-left" data-template="searchform" data-requires-user-input="true">
      <input data-template="suggest" data-disabled="false" data-placeholder="search" data-shortcut="alt+1" id="query" data-source-id-pattern="document_property|popularsearches" data-initial-source-id-pattern="document_property|popularsearches" data-grouped="true" class="" name="query" type="search" autofocus="" autocomplete="off" placeholder="Search">
      <button class="btn btn-link mb-no-print" type="submit" tabindex="-1"><i class="icon-search"></i></button>
    </form>

Now we want to add pagination or infinite scrolling to allow the loading of more results.  For this example, I will use paging via the Mindbreeze pages tempalte. This will allow page numbers to display in list format and Mindbreeze will be able to handle the paging actions for us.

<div class="col-md-9">
          <div data-template="results">
          </div>
          <div data-template="pages">
            <script type="text/x-mustache-template" data-class-name="mypaging" data-tag-name="ul">
              {{#pages?}}
                 {{#pages}}
                    <li class="{{#current_page?}}active{{/current_page?}}"><a href="#" data-action-name="setPage" data-page="{{page}}">{{page}}</a></li>
                  {{/pages}}
              {{/pages?}}
            </script>
          </div>
        </div>
Modifying Mustache Templates to Alter Result Data

Now we want to structure our result data. This is an easy way to adjust the information displayed for each result item. We can do this by overriding our results <div> and adding our own mustache.  Here is where you can make changes such as adding specific metadata for each result to display contextually relevant information.

<div data-template="results">
              <script type="text/x-mustache-template" data-class-name="media mb-clickable-phone" data-attr-role="group"
                data-attr-data-action-object='{ "toggleOpen": { "enabledSelector": ".visible-phone" }}'
                data-attr-aria-labelledby="result_{{id}}">
                <span class="pull-left media-object" aria-hidden="true">
                    {{#actions.data[0].value.href?}}
                    <a href="{{actions.data[0].value.href}}" data-disabled-selector=".visible-phone"
                        tabindex="-1" target="_self">{{/actions.data[0].value.href?}} {{{icon}}} {{#actions.data[0].value.href?}}
                    </a>{{/actions.data[0].value.href?}}
                </span>
                <div class="media-body">
                    <h3 class="media-heading" id="result_{{id}}">
                        {{#actions.data[0].value.href?}}
                        <a href="{{actions.data[0].value.href}}"
                            data-enabled-selector=".visible-phone" target="_self">{{/actions.data[0].value.href?}} {{{title}}} {{#actions.data[0].value.href?}}
                        </a>{{/actions.data[0].value.href?}}
                    </h3>
                    <ul class="mb-actions mb-separated hidden-phone mb-visible-open mb-no-print">
                        {{#actions.data}}
                        <li class="nowrap">{{{html}}}</li>{{/actions.data}}

                    </ul>
                    {{#content}}
                    <p class="mb-content">{{{.}}}</p>
                    {{/content}}
                    {{#mes:nested.data?}}
                    <ul class="mb-nested">
                        {{#mes:nested}}
                        <div class="media mb-nested" data-action-object="{ &quot;toggleOpen&quot;: { &quot;enabledSelector&quot;: &quot;.visible-phone&quot; }}">
                            {{#actions.data[0].value.href?}}
                            <a href="{{actions.data[0].value.href}}" data-disabled-selector=".visible-phone" target="_self">
                                {{/actions.data[0].value.href?}}
                                <b>{{{title}}}</b>
                                {{#actions.data[0].value.href?}}
                            </a>
                            {{/actions.data[0].value.href?}}
                            <ul class="mb-actions mb-separated hidden-phone mb-visible-submenu-open mb-no-print">
                                {{#actions.data}}
                                <li class="nowrap">
                                    <small>{{{html}}}</small>
                                </li>{{/actions.data}}
                            </ul>
                            <dl class="mb-comma-separated-values mb-separated mb-summarized-description-list mb-small">
                                <dd>{{{mes:date}}}</dd>
                            </dl>
                        </div>
                        {{/mes:nested}}
                    </ul>
                    {{/mes:nested.data?}}
                    <span class="clearfix"></span>
                </div>
            </script>

            </div>
Adding Custom Styling

After the appropriate data is returned, we can perform some styling.  For this, I am going to reference a custom CSS file on my Apache server.

We recommend that your CSS handle displaying search results on both mobile and desktop displays.

You can see the styling of the Suggestions (using jQuery UI autocomplete) below.

I’ve included the final code for this example below. You can see how this could be modified and extended to suit a wide variety of needs and use cases. If you have any questions about our experience with Mindbreeze or would like to know more, please contact us.

#searchresults {
    display: flex;
    flex-direction: column;
}

.header{
    background: #ffffff;
}

.header .container {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    max-width: 100vw;
    height: 7rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
    padding: 0;
}

.header .brand-logo {
    width: 72px;
    height: 72px;
    padding: 0 1em;
    margin: 0 0.5em;
    box-sizing: content-box;
}

form{
    position: relative;
    margin: 0;
    flex: 0 1 300px;
    max-width: 300px;
    padding: 0 1em;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 32px;
    box-shadow: inset 0 0 0 2px #adadad;
    border-radius: 1em;
    transition: box-shadow 0.25s;
}

form,
form:active,
form:focus,
form:focus-within,
form input,
form input:active,
form input:focus,
form input:focus-within {
    outline: none;
}

form .search-box {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    align-items: center;
    width: 100%;
    height: 100%;
}

form input{
    flex: 0 0 calc(100% - 44px);
    padding: 0;
    border: none;
}

form:focus-within {
    box-shadow: inset 0 0 0 2px #868686;
}

form .search-box button{
    border: none;
    padding-right: 0;
    flex: 0 0 44px;
}

form .search-box .ui-autocomplete {
    max-width: 300px;
    width: 100% !important;
    flex: 0 0 100%;
}

form span[role='status']{
    display: none;
}

form ul.ui-autocomplete{
    background: white;
    z-index: 10;
    list-style: none;
    border: 1px solid black;
    padding: 0;
    top: 0 !important;
    left: 0 !important;
}

form .ui-autocomplete-category {
    background: #bdbdbd;
    font-weight: 700;
}

form .ui-autocomplete li{
    padding-left: 0.5em;
}

ul.ui-autocomplete span.matched{
    font-weight: 700;
}

form ul a:hover{
    text-decoration: none;
}

.ui-autocomplete li:hover:not(.ui-autocomplete-category) {
    background: rgba(0, 0, 0, 0.1);
    cursor: pointer;
}

.ui-autocomplete a{
    display: block;
}

.ui-autocomplete a{
    color: black;
}

.resultHeader{
    font-size: 14pt;

}

.resultHeader a, .resultHeader a:hover{
    text-decoration: none;
    color: black;
}

div[role='status']{
    padding: 10px 0px;
}

.results-wrapper {
    margin: 0;
    padding: 0 1.5em;
    box-sizing: border-box;
    flex: 0 0 100%;
    max-width: 100%;
}

.results-wrapper .container {
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    padding: 0;
}

.results-wrapper .row {
    margin: 0;
    display: flex;
}

.results-wrapper .results-container {
    flex-direction: row;
    flex-wrap: nowrap;
}

.results-wrapper .results-container .results {
    padding: 0;
    flex: 1 0 75%;
    box-sizing: border-box;
}

.results-wrapper .row .results .results-list {
    display: flex;
    flex-direction: column;
}

.results-wrapper .row .results .results-list .row {
    display: flex;
    border-radius: 4px;
    box-shadow: 0 1px 6px rgba(0,0,0,0.16), 0 2px 6px rgba(0,0,0,0.23);
    transition: box-shadow 0.25s;
    flex-wrap: nowrap;
}

.results-wrapper .row .results .results-list .row:hover {
    box-shadow: 0 5px 20px rgba(0,0,0,0.19), 0 2px 6px rgba(0,0,0,0.23);
}

.results-wrapper .row .results .results-list .row .thumbnail {
    flex: 1 0 80px;
    box-sizing: border-box;
    padding: 14px;
    max-width: 125px;
}

.results-wrapper .results-container .filters {
    flex: 0 1 25%;
    box-sizing: border-box;
    margin: 0 10px 0 30px;
}

.row .thumbnail a {
    max-width: 100%;
}

.row .thumbnail a .mb-thumbnail {
    max-width: 100%;
    height: auto;
}

.results-wrapper .results-container .results .results-list .row .content {
    flex: 1 0 75%;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: 0.5rem 0.5rem 0.5rem 0;
}

.row .content .resultHeader {
    box-sizing: border-box;
    margin-bottom: 0.5rem;
}

.row .content .resultHeader a {
    font-weight: bold;
    font-size: 1rem;
}

.row .content .resultHeader a:hover {
    text-decoration: underline;
}

.row .content .mb-content {
    font-size: 0.9rem;
}

em{
    font-style: normal;
    background: rgba(0, 0, 0, 0.1);
}

div[data-template='results'] .row{
    margin-bottom: 1.5rem;
}

.paging {
    padding: 0;
}

.paging li{
    display: inline-block;
    /* You can also add some margins here to make it look prettier */
    zoom:1;
    *display:inline;
}

.filter input[type="checkbox"] {
    width: 0;
    height: 0;
    position: relative;
    top: -6px;
    margin-right: 0.8rem;
}

.filter input[type="checkbox"]:before {
    position: relative;
    display: block;
    width: 8px;
    height: 8px;
    left: 2px;
    top: 2px;
    box-sizing: border-box;
    content: "";
    border: 1px solid rgba(0, 0, 0, 0.4);
    background: transparent;
    transition: all 0.1s linear;
    cursor: pointer;
}

.filter input[type="checkbox"]:hover:before,
.filter input[type="checkbox"]:checked:before {
    width: 12px;
    height: 12px;
    left: 0;
    top: 0;
    border: 0;
}

.filter input[type="checkbox"]:hover:before {
    background: rgba(0, 123, 255, 0.6);
}

.filter input[type="checkbox"]:checked:before {
    background: rgba(0, 123, 255, 1);
}

.paging a{
    float: left;
    padding: 4px 12px;
    line-height: 20px;
    text-decoration: none;
    background-color: #fff;
    border: 1px solid #b5b5b5;
    border-radius: 4px;
}

.paging .disabled>span{
    color: #777;
    cursor: default;
    background-color: transparent;
    float: left;
    padding: 4px 12px;
    line-height: 20px;
    text-decoration: none;
    border: 1px solid #b5b5b5;
    border-radius: 4px;
    margin-right: 5px;
}

a[data-action-name='previousPage']{
    margin-right: 5px;
}

.facet >div > input{
    display: none;
}

.checkbox {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}

.checkbox > span {
    font-size: 14px;
    line-height: 13px;
    padding-left: 8px;
}

@media screen and (max-width: 768px) {
    .results-wrapper .row .results .results-list .row .thumbnail {
        display: none;
    }

    .results-wrapper .row .results .results-list .row .content {
        padding: 14px;
    }

    .filters {
        display: none;
    }
}


Index.html
<html>

<head>
  <title>Mindbreeze Search</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
    crossorigin="anonymous">
  <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
    crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
    crossorigin="anonymous"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
    crossorigin="anonymous"></script>
  <script defer src="https://use.fontawesome.com/releases/v5.0.13/js/all.js" integrity="sha384-xymdQtn1n3lH2wcu0qhcdaOpQwyoarkgLVxC/wZ5q7h9gHtxICrpcaSUfygqZGOe"
    crossorigin="anonymous"></script>
  <link rel="stylesheet" href="/blog.css">
</head>

<body>
  <script src="https://mindbreeze.fishbowlsolutions.com:23382/apps/scripts/client.js" data-global-export="false"></script>
  <script>
    Mindbreeze.require(["client/application"], function (Application) {
        var application = new Application({
          rootEl: document.getElementById("searchresults"),
          startSearch: false,
        });
      });
  </script>
  <div id="searchresults" class="">
    <div class="header">
      <div class="container">
        <img class="brand-logo" src="/fb.svg" alt="Fishbowl Solutions">
        <form class="center search-field mb-print-left" data-template="searchform" data-requires-user-input="true">
          <div class="search-box">
            <input data-template="suggest" data-source-id-popularsearches-title="Popular Searches" data-disabled="false"
              data-placeholder="search" data-shortcut="alt+1" id="query" data-source-id-pattern="document_property|popularsearches|recent_query"
              data-initial-source-id-pattern="recent_query|popularsearches" data-grouped="true" class="" name="query"
              type="search" autofocus="" autocomplete="off" placeholder="Search">
            <button class="btn btn-link mb-no-print" type="submit" data-i18n="[title]action_search">
              <i class="fas fa-search"></i>
            </button>
          </div>
        </form>
      </div>
    </div>
    <div class="container results-wrapper">
      <div data-template="view" data-count="5" data-constraint="ALL" class="container">
        <script type="text/x-mustache-template" data-attr-role="status" data-attr-class="{{^estimated_count?}}hide{{/estimated_count?}}"
          data-attr-tabindex="-1">
          {{^status_messages.no_results?}}
          <h4>
            {{#estimated_count?}}
              {{estimated_count}} {{i18n.editor_result_title}}
            {{/estimated_count?}}
          </h4>
          {{/status_messages.no_results?}}
        </script>
        <div data-template="searchinfo"></div>
        <div class="row results-container">
          <div class="results">
            <div data-template="results" class="results-list">
              <script type="text/x-mustache-template" data-class-name="row" data-attr-role="group"
                data-attr-data-action-object='{ "toggleOpen": { "enabledSelector": ".visible-phone" }}'
                data-attr-aria-labelledby="result_{{id}}">
                <span class="thumbnail" aria-hidden="true">
                    {{#actions.data[0].value.href?}}
                    <a href="{{actions.data[0].value.href}}" data-disabled-selector=".visible-phone"
                        tabindex="-1" target="_self">{{/actions.data[0].value.href?}}{{#icon?}} {{{icon}}}{{/icon?}}{{^icon?}} <img src="/no-thumbnail.jpg" class="mb-thumbnail"/>{{/icon?}} {{#actions.data[0].value.href?}}
                    </a>{{/actions.data[0].value.href?}}
                </span>
                <div class="content">
                    <div class="resultHeader" id="result_{{id}}">
                        {{#actions.data[0].value.href?}}
                        <a href="{{actions.data[0].value.href}}"
                            data-enabled-selector=".visible-phone" target="_self">{{/actions.data[0].value.href?}} {{{title}}} {{#actions.data[0].value.href?}}
                        </a>{{/actions.data[0].value.href?}}
                      </div>

                    {{#content}}
                    <p class="mb-content">{{{.}}}</p>
                    {{/content}}
                    {{#mes:nested.data?}}
                    <ul class="mb-nested">
                        {{#mes:nested}}
                        <div class="media mb-nested" data-action-object="{ &quot;toggleOpen&quot;: { &quot;enabledSelector&quot;: &quot;.visible-phone&quot; }}">
                            {{#actions.data[0].value.href?}}
                            <a href="{{actions.data[0].value.href}}" data-disabled-selector=".visible-phone" target="_self">
                                {{/actions.data[0].value.href?}}
                                <b>{{{title}}}</b>
                                {{#actions.data[0].value.href?}}
                            </a>
                            {{/actions.data[0].value.href?}}
                            <ul class="mb-actions mb-separated hidden-phone mb-visible-submenu-open mb-no-print">
                                {{#actions.data}}
                                <li class="nowrap">
                                    <small>{{{html}}}</small>
                                </li>{{/actions.data}}
                            </ul>
                            <dl class="mb-comma-separated-values mb-separated mb-summarized-description-list mb-small">
                                <dd>{{{mes:date}}}</dd>
                            </dl>
                        </div>
                        {{/mes:nested}}
                    </ul>
                    {{/mes:nested.data?}}
                </div>
            </script>

            </div>

          </div>
          <div class="filters">
            <div data-template="filteredfacet" data-title-tag-name="h4" data-name="Author" data-container-tag-name="div"
              data-container-class-name="filter"  data-entry-tag-name="div"
              data-entry-class-name="entry" class="facet">
            </div>
          </div>

        </div>
        <div class="row">
            <div data-template="pages">
              <div class="pagination">
                <script type="text/x-mustache-template" data-class-name="paging" data-tag-name="ul">

                  {{#pages?}}

                      {{#onFirstPage?}}
                        <li class="disabled"><span>&laquo;</span><li>
                      {{/onFirstPage?}}
                      {{^onFirstPage?}}
                        <li><a href="#" data-action-name="previousPage">&laquo;</a><li>
                      {{/onFirstPage?}}

                      {{#pages}}
                        <li class="{{#current_page?}}active{{/current_page?}}"><a href="#" data-action-name="setPage" data-page="{{page_number}}">{{page}}</a></li>
                      {{/pages}}

                      {{#more_avail?}}
                        <li class="disabled"><span>&hellip;</span></li>
                      {{/more_avail?}}

                      {{#onLastPage?}}
                        <li class="disabled"><span>&raquo;</span><li>
                      {{/onLastPage?}}
                      {{^onLastPage?}}
                        <li><a href="#" data-action-name="nextPage">&raquo;</a><li>
                      {{/onLastPage?}}

                  {{/pages?}}
              </script>
              </div>
            </div>
            </div>
      </div>
    </div>
  </div>
</body>

</html>




<!--

var application = new Application({
  rootEl: document.getElementById("searchresults"),
  startSearch: false,
   queryURLParameter: "searchQuery",
});
//constraint wenn nötig
//application.setConstraint({unparsed: "extension:pdf"}); //constraint is optional
window.search = function () {
  var searchQuery = document.getElementById("searchQuery").value;
  //you need this only if you add the searchbox on the searchpage as well
  //Now the redirect will be on the current website (window.location.href) ==> If you search on the search website the redirect should be to the searchwebsite as well.
  window.location.href = "?searchQuery=" + encodeURIComponent(searchQuery);
}
function getUrlParameter(name) {
    name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = regex.exec(location.search);
    return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
};
document.getElementById("searchQuery").value = getUrlParameter("searchQuery");

-->

The post Using the Mindbreeze client.js File to Create Custom Search Interfaces appeared first on Fishbowl Solutions.

Categories: Fusion Middleware, Other

My first day at the #pgconfeu 2018 in Lisbon

Yann Neuhaus - Wed, 2018-10-24 16:32

After the first Swiss PostgreSQL community dinner yesterday evening, the conference started this morning. dbi services as Gold partner of the 10th European conference in Lisbon, get the opportunity to have a booth to present all our Open Infrastructures Services.

IMG_6085

For the occasion we decided to announce this morning our brand new video of our OpenDB Appliance, which is a real success, because we have more than one hundred views and many attended of the conference was coming to our booth to get more information about it.

We are in Lisbon! Come and meet us on our booth at PG Conference Europe and ask @Herveschweitzer, @westermanndanie, @Pybrehier about the OpenDB Appliance – our product that makes your life easier by providing functional virtual DB environments in seconds.#pgconfeu #postgres pic.twitter.com/XzH0kl4Xh7

— dbi services (@dbiservices) October 24, 2018

Today I followed many sessions, but one of them was especially interesting for me “zheap: An answer to PostgreSQL bloat woes” from Amit Kapila
This presentation presented the new Postgres storage engine “ZHEAP” which is currently under development, currently no availability plan of this storage engine exist, I think not before 2020. But I’m exiting to test this new feature of PostgreSQL.

First what it is this new ZHEAP storage engine? ZHEAP allow the usage of a separate UNDO tablespace to guarantee rollbacks, which currently at Postgres is done with keeping the old and new rows into the table itself. The problem of keeping both values into the table, is that the table will bloat.

The presentation is available here on slideshare : link to the presentation

As an experimented Oracle DBA I want to test it. Therefore I asked my colleague Daniel Westermann: how can I test it ? he say “it’s easy”. I always hear that from Postgres that it’s easy, so I say we will do it now.

At 17h20 I started to clone the git repository of the project https://github.com/EnterpriseDB/zheap
30 minutes later after installing and creating my own build, I’m ready for the testing.

See below some output of the new running development ZHEAP database.

02:42:34 postgres@dbi-pg-tun:/u02/pgdata/zheap/pg_log/ [ZHEAP] grep -i undo postgresql-Wed.log 

2018-10-17 02:41:49.498 CEST - 10 - 6544 -  - @ LOG:  background worker "undo worker launcher" (PID 6553) exited with exit code 1

02:42:42 postgres@dbi-pg-tun:/u02/pgdata/zheap/pg_log/ [ZHEAP] grep -i "discard worker" postgresql-Wed.log 

2018-10-17 02:41:52.594 CEST - 1 - 6597 -  - @ LOG:  discard worker started

At startup we see the new “undo worker” and “discard worker” process into the logfile, where Amit Kapila just talked about.
So now I will test to create a new table with the storage_engine “ZHEAP”

02:50:39 postgres@dbi-pg-tun:/u02/pgdata/zheap/pg_log/ [ZHEAP] sqh
psql (12devel dbi services zheap build)
Type "help" for help.

PSQL>  create table t_zheap(c1 int, c2 varchar) with (storage_engine='zheap');
CREATE TABLE
Time: 12.433 ms
PSQL> 

That’s it :-) my first table using the zheap storage is created, and I can start testing.

Trust me I was coming back from the session at 17:20 and at less than 30 minutes later, I have a running test system using the ZHEAP storage engine, it is very impressive how fast it is to get access to a Postgres development platform.

Tomorrow I will write a blog where I will make some tests using ZHEAP, because now it’s time for the PGconf.eu Party :-)

IMG_6109

Cet article My first day at the #pgconfeu 2018 in Lisbon est apparu en premier sur Blog dbi services.

Oracle Puts Machine Learning at Heart of Cloud Applications Strategy

Oracle Press Releases - Wed, 2018-10-24 16:00
Press Release
Oracle Puts Machine Learning at Heart of Cloud Applications Strategy Next-generation voice user interface and powerful analytics extending industry’s broadest, deepest and fastest growing suite of cloud applications

Oracle OpenWorld, San Francisco, Calif.—Oct 24, 2018

Oracle puts machine learning at heart of cloud applications strategy.

Oracle Executive Chairman and CTO Larry Ellison today demonstrated next-generation voice user interface and powerful analytics capabilities within Oracle Fusion Cloud Applications. The only cloud applications built on machine learning, Oracle Fusion Cloud Applications provide a complete and fully integrated suite of applications that empower business users across the organization including customer experience, finance, HR and supply chain professionals.

Built on a secure, self-driving cloud platform and cloud infrastructure, Oracle Fusion Cloud Applications take advantage of the Oracle Autonomous Database and separate applications and security processors to help customers increase business agility and reduce costs. Customers can easily develop application extensions to meet unique business needs, enhance the user experience through a modern conversational UI, automate hundreds of manual business functions and automate cloud migration to reduce upgrade costs, accelerate time to value and improve delivery predictability.   

Extending the industry’s broadest, deepest and fastest growing suite of cloud applications, Ellison launched Oracle Fusion Analytics Warehouse. A complete analytics platform for business users, developers and IT professionals that is built on Oracle Analytics and Autonomous Data Warehouse, Oracle Fusion Analytics Warehouse is optimized for all Oracle Fusion Cloud Applications to enable rapid deployment and business value. Customers can use the fully extensible and customizable solution to also bring in data from other SaaS and on-premises solutions.  

Quotes from Larry Ellison’s keynote presentation:

"We have more SaaS applications than any other cloud provider.”

“We provide you with a set of tools where people can collaborate together and ask questions, work together as teams, and solve problems. It is a whole new generation of applications.”

"We automate those tedious processes, we automate those complex processes, giving you huge productivity gains, by adopting our next generation cloud applications.”

“It is now so much easier to capture expenses, so much more accurate, people aren't wasting time. If I want to find out when I'm going to get paid, when I'm going to be reimbursed for a trip that I'm on or for a trip that I've completed or a business dinner I had, I can just ask Alexa.”

“We've actually had customers already using our mobile capabilities, our chatbot capabilities and our new voice interface to build new features and functions into their applications. Again, if we can build voice interfaces on top of our applications, so can you.”

“If you don't know the right question to ask, the machine learning part of our analytic tools will help you find the correlations and help you ask the questions, and then give you English language explanations as to what they find.” 

“We automate the creation of the data model in the warehouse. We automate the migration of the data in the data warehouse. It's the Autonomous Data Warehouse. It automatically tunes itself. It adds indexes. It adds whatever it needs to run efficiently. It does all that automatically. You just press a button.”

“By working together, your good ideas, our good ideas, we can deliver the next generation of SaaS applications in the cloud.”

Contact Info
Simon Jones
Oracle
+1.415.202.4574
s.jones@oracle.com
About Oracle

The Oracle Cloud offers complete SaaS application suites for ERP, HCM and CX, plus best-in-class database Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) from data centers throughout the Americas, Europe and Asia. For more information about Oracle (NYSE:ORCL), please visit us at www.oracle.com.

About Oracle OpenWorld

Oracle OpenWorld, the industry’s most important business and technology conference for the past 20 years, hosts tens of thousands of in-person attendees as well as millions online. Dedicated to helping businesses leverage Cloud for their innovation and growth, the conference delivers deep insight into industry trends and breakthroughs driven by technology. With hundreds of demos and hands-on labs, plus exhibitions from more than 250 partners and customers from around the world, Oracle OpenWorld has become a showcase for leading cloud technologies, from Cloud Applications to Cloud Platform and Infrastructure. For more information; to register; or to watch Oracle OpenWorld keynotes, sessions, and more, visit www.oracle.com/openworld. Join the Oracle OpenWorld discussion on Twitter.

Future Product Disclaimer

The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation.

Forward-Looking Statements Disclaimer

Statements in this article relating to Oracle’s future plans, expectations, beliefs, intentions, and prospects are “forward-looking statements” and are subject to material risks and uncertainties. Many factors could affect Oracle’s current expectations and actual results, and could cause actual results to differ materially. A discussion of such factors and other risks that affect Oracle’s business is contained in Oracle’s Securities and Exchange Commission (SEC) filings, including Oracle’s most recent reports on Form 10-K and Form 10-Q under the heading “Risk Factors.” These filings are available on the SEC’s website or on Oracle’s website at http://www.oracle.com/investor. All information in this article is current as of October 24, 2018, and Oracle undertakes no duty to update any statement in light of new information or future events.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Talk to a Press Contact

Simon Jones

  • +1.415.202.4574

pgconf.eu finally kicked off

Yann Neuhaus - Wed, 2018-10-24 06:30

So, finally it started: Magnus kicked off the 10th annual PostgreSQL Conference Europe this morning in Lisbon. With 450 attendees the conference is even bigger this year than it was last year in Warsaw and it will probably be even bigger next year. One can really feel the increasing interest in PostgreSQL in Europe (and probably around the world as well). Even Tom Lane is attending this year.

Conferences are not only about technical content, social events are important as well. You can meet people, have great discussion, enjoy local food and drinks. And that is exactly what we did yesterday evening when the Swiss PostgreSQL community came together for lunch:
sdr

Conferences are not only about fun, sometimes you have to work on your queue. Working at conferences on the other side gives you the possibility to chose nice working places:
sdr

… and of course you have to work hard on preparing the booth:
sdr

But once you’ve done all that you are ready for the conference:
cof
sdr

… and then the mess starts: There is such an impressive line up of speakers, where do you go? Not an easy choice and you will obviously miss one or the other session. But hey, that’s the PostgreSQL community: Everybody is open for questions and discussions, just jump in.

One of the benefits of sponsoring is that you get a big thank you when the conference starts and that you can have your logo on the official t-shirt:
oznor
cof

And that brings us to the final thoughts of this post: Why are we doing that? The answer is quite simple: Without sponsoring, organizing such a big community event is impossible. As you know PostgreSQL is a pure community project so it depends on the community not only on the technical but also on the financial level. When you make money with community projects you should give something back and sponsoring is one way of doing that.

Finally, we are committed to open source technologies. You can see that e.g. in the events we are organizing, on our blog and events such as this one. Three days of great content, great discussion and fun ahead.

Cet article pgconf.eu finally kicked off est apparu en premier sur Blog dbi services.

All Things Developer at Oracle Code One - Day 2

OTN TechBlog - Wed, 2018-10-24 02:27
Live from Oracle Code One - Day Two

There was tons of action today at Oracle Code One. From Zip labs and challenges to an all-women developer community breakfast,  and the Duke Choice awards, to the Oracle Code keynotes and the debut Groundbreaker awards, it was all happening at Code One. Pepper was quite busy, and so was the blockchain beer bar!

Zip Labs, Zip Lab Challenges and Hands-on Labs

Zip labs are running all four days. So, if you want to dabble with the Oracle Cloud, or learn how you can provision the various services, go up to the second floor on Moscone West and sign-up for our cloud.

You can sign-in for a 15-minute lab challenge on Oracle Cloud content and see your name on the leaderboard as the person to beat. Choose from labs including Oracle Autonomous Data Warehouse, Oracle Autonomous Transaction Processing, and Virtual Machines.

Lots of ongoing hands-on labs everyday but the Container Native labs today were quite a hit.

Oracle Women's Leadership Developer Community Breakfast

A breakfast this morning with several women developers from across the globe. It was quite insightful to learn about their life and experiences in code.

The Duke Choice Awards and Groundbreaker Live Interviews

Georges Saab announced the Duke Choice Award winners at Code One today. 

Some exciting Groundbreaker live interviews:

Jim Grisanzio and Gerald Venzl talk about Oracle Autonomous Database

Bob Rubhart, Ashley Sullivan and the Design Tech Students discuss the Vida Cam Project

The Oracle Code One Keynotes and Groundbreaker Awards in Pictures

Building Next-Gen Cloud Native Apps with Embedded Intelligence, Chatbots, and Containers: Amit Zavery, Executive Vice President, PaaS Development, Oracle talks about how developers can leverage the power of the Oracle cloud.

Making Cloud Native Computing Universal and Sustainably Harnessing the Power of Open Source: Dee Kumar, Vice President, Cloud Native Computing Foundation congratulates Oracle on successfully becoming a Platinum member of CNCF.

 

 

Building for the Cloud: Matt Thompson, Developer Engagement and Evangelism, Oracle Cloud Platform talks about how a cloud works best - when it is open, secure, and all things productive for the developer. 

 

 

 

Demos: Serverless, Chatbots, Blockchain...

 

Manish Kapur, Director of Product Management for Cloud Platform showed a cool demo of a new serverless/microservices based cloud architecture for selling and buying a car.

 

 

Matt Baldwin talked about the DNA of Blockchain and how it is used in the context of selling and buying a car.

 

 

And the Oracle Code One Groundbreaker Awards go to:

 

Stephen Chin, Director of Developer Community, announces the debut Groundbreaker awards and moderates a star panel with the winners.

 

 

We had more than 200K viewers of this panel on the Oracle Code One Twitter live stream today! There were lots of interesting and diverse questions for the panel from the Oracle Groundbreaker Twitter channel. For more information on Oracle Groundbreakers, click here. And now, moving on to  Day 3 of Code One!

 

Pages

Subscribe to Oracle FAQ aggregator