• Home
  • Site Aliases
    • www.cloud-native.info
  • About
    • Background
    • Presenting Activities
    • Internet Profile
      • LinkedIn
    • About
  • Books & Publications
    • Log Generator
    • Logs and Telemetry using Fluent Bit
      • Fluent Bit book
      • Book Resources in GitHub
      • Fluent Bit Classic to YAML Format configurations
    • Logging in Action with Fluentd, Kubernetes and More
      • Logging in Action with Fluentd – Book
      • Fluentd Book Resources
      • Fluentd & Fluent Bit Additional stuff
    • API & API Platform
      • API Useful Resources
    • Oracle Integration
      • Book Website
      • Useful Reading Sources
    • Publication Contributions
  • Resources
    • GitHub
    • Oracle Integration Site
    • Oracle Resources
    • Mindmaps Index
    • Useful Tech Resources
      • Fluentd & Fluent Bit Additional stuff
      • Recommended Tech Podcasts
      • Official Sources for Product Logos
      • Java and Graal Useful Links
      • Python Setup & related stuff
      • DevTips
  • Music
    • Monster On Music
    • Music Listening
    • Music Reading

Phil (aka MP3Monster)'s Blog

~ from Technology to Music

Phil (aka MP3Monster)'s Blog

Tag Archives: development

Helidon and the embracing of micro services

24 Wednesday Oct 2018

Posted by mp3monster in development, General, Helidon, Oracle, Technology

≈ 4 Comments

Tags

Apache, development, Eclipse, EE4J, EE8, Glassfish, Helidon, J2EE, Linus' Law, Linux Foundation, Micronaut, MicroProfile, microservice, WebLogic, WLS

XEYO9H51_400x400Oracle have announced another Open Source project called Helidon (Helidon.io) as a microservices platform built on top of Netty (which is built around a contemporary async model). If you look at the literature you’ll note two flavours one called SE which aligns to the programming characteristics or Node.js – asynchronous. The other is MP which aligns to the rapidly evolving J2EE MicroProfile which essentially follows a coding style along the lines of J2EE annotations.

Whilst it is perfectly possible to run Helidon based solutions in either profile natively, it is clearly geared up for running in any Docker+Kubernetes style environments such as Oracle Kubernetes Cloud (OKE) or even ACCS. Helidon website provides the means to quickly package your solution into Docker.

In both SE and MP forms the dependencies are hugely stripped back compared to the giants of WebLogic, GlassFish (now EE4J with the handover of J2EE to the Eclipse Foundation.

It does raise a number of questions what are the futures of WebLogic and Oracle support of EE4J (some answers here, but no Oracle specific)? WebLogic has never been the fastest to align to the latest J2EE standards (EE8 standard released last year should be become available sometime this year for WLS – see here), but today it is so central to many Oracle products it isn’t going to disappear, will it just end up slowly ebbing away? Which would be a shame, I have heard it said by Oracle insiders that if the removing the end of one component could be sorted then WebLogic could be easily be configured to have a small lightweight footprint.

The other interesting thing is what is happening to Open Source and what it might mean for the future.  Up until perhaps 3 or 4 years ago the use of open source you would think of software made available on of a small group of key sponsored organisations such as Apache, Linux Foundation, Eclipse which through its governance framework, provided levels of equality and process. As a result, levels of quality, trust crucially married to strong level of use and contribution that meant that to extrapolate Linus’ Law – bugs could be weeded out quickly and easily.  However with the advent of services like GitHub, whilst it has become easier to contribute and fulfil Linus’ Law. It also means that it is very easy to offer a solution that is Open Source. But, doesn’t necessarily garner the benefits of Linus’ Law and the other preconceptions we often have about Open Source such as it is/can be as good as a commercial solution. After all, throwing code into GitHub does not guarantee many eyes/contributors. Nor does it assure the governance, checks and balances that an Apache project, for example, will assure.

It is important to say that I am not against github, in fact, I am very much pro, and use GitHub myself to host utilities I make freely available (here). The important point is we have to be more aware of what open source actually means, in each context and can’t assume it is likely to have a strong community driving things forward, and critically dealing with bugs, and ensuring quality assurance processes are realized.

Helidon joins a number of other offerings in this space such as Micronaut (also built on Netty). Micronaut takes a different approach to Helidon by adopting a strong inversion of control/injection approach. In and in some respects feels a bit like the earlier versions of JBoss Application Server (now known as WildFly) which had a small footprint and made good use of Spring. This is in addition to Spark and Javalin. There is a good illustration of the different servers from Dmitry Kornilov shown below and the associated article can be seen here (who also happens to the Lead Engineer for Helidon).

helidon_landscape

Unlike Spark, Micronaut and a couple of others, Helidon only supports Java today rather than JDK based languages such as Kotlin and Groovy for example but is the only solution that can cover both the Micro Profile and Framework domains. It also has a challenge in terms of getting established, Spark has been around since 2015. Javalin appeared in May 2017. The J2EE Micro Profile standard is also driving a lot forward progress, so getting established will continue to get harder. Liberty, another Micro Profile solution is based on IBM WebSphere and Thorntail has links to WildFly (more here). We hope that it will make good headway with a Reactive engine in the form of Netty and avoiding IoC or introspection from the core should mean it will be very quick (particularly during startup) but it needs to show its value differentiation and importantly build a strong community contributing to it.

We hopefully will get the chance to further experiment with Helidon and write more about it here.

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Email a link to a friend (Opens in new window) Email
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Print (Opens in new window) Print
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Pinterest (Opens in new window) Pinterest
  • More
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on LinkedIn (Opens in new window) LinkedIn
Like Loading...

Validating API Platform Policies & Gateway Deployments

01 Thursday Feb 2018

Posted by mp3monster in API Platform CS, APIs & microservices, General, Oracle, Technology

≈ 3 Comments

Tags

API, API Platform, code, development, node.js, Oracle, PlatformTest, policies

When configuring API Policies in the the Oracle API Platform it helps if there is a simple back end that can take the received payload and record the sent values (header & body) as well as reflect the call details back as the response, or possibly respond with a test payload (so that response policies, particularly policies that require payload navigation  can be exercised correctly).  By having this facility it becomes a lot easier to determine whether the policies are executing correctly in terms of routing, transforming, filtering etc. without needing to worry about whether the API implementation is correct. You could say that this is a kind of mock for testing the API Platform.

The added benefit of having a mock back end is that it is easy to ‘smoke test’ a gateway deployment very easily.  Particularly if the mock is happy to receive any form of call.

Whilst implementing such a capability can be done in pretty much any language and platform you like.  We have in the past for example built a Springboot Java application that can have the dependencies configured to then deploy into WebLogic for example.  We have come to refer these test apps/mocks as PlatformTests as that’s exactly what they help do. A Node.js implementation of a PlatformTest such as as the following implementation is particularly appealing as the Node.js footprint is small and simple to deploy and undeploy. A basic Node.js implementation can also consume any URL and operation you choose to use. The nature of JavaScript makes it very quick to adapt the mock if need be. Although in the ideal world, we write the solution once and then use simple configuration to tune behavior.

The following code looks for a local file called testResponse.json if found then returns the content of the file (assumed to be JSON) otherwise it reflects back in the body, the received header and body.  This reflection makes it extremely easy to see how the policies have changed the inbound call.  The content is also logged to the console – making it easy to also see what came through to the back end.

The implementation also assumes port 8080, but changing the port is exceptionally easy.

There one enhancement planned, and this is to allow the response test payload to be handled as XML.  This will need a little tweaking of the code as presently a JSON Object is currently stringified.

JavaScriptThe code is also available in my GitHub repository – https://github.com/mp3monster/Utils/blob/master/PlatformTest.js and an example test response file is at https://github.com/mp3monster/Utils/blob/master/testResponse.json

const http = require('http');
const fs = require('fs');

// create a simple HTTP server that will handle the requests
http.createServer((request, response) => {
const { headers, method, url } = request;
console.log("Called at " + new Date().toLocaleDateString());
let body = [];
request.on('error', (err) => {
console.log("Svr Error Handler :" + err.toString);
response.statusCode(400);
response.end();
}).on('data', (chunk) => {
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString();
// At this point, we have the headers, method, url and body, and can now
// do whatever we need to in order to respond to this request.

});

// record in the console what details have been received
console.log ("Received:\nMethod:" + method.toString() +
"\n URL:"+ url.toString + "\nheaders:\n"+headers.toString() +
"\nBody:\n" + body);
// now build the response
response.setHeader('Content-Type', 'application/json');
response.setHeader('PlatformTestTime', new Date().toLocaleDateString());

// initialise our response object so that if we don't load a response
// file then we reflect the content
var responseBody = { headers, method, url, body };

try {
// try reading a response file
fs.readFile('testResponse.json', function(err, data) {
console.log("handling file");
if (err != null) {
if (err.code === 'ENOENT') {
console.log("on return file - will reflect");
} else {
console.log("Read error:" + err.toString());
}
} else {
// a file exists - but is empty?
if ((data != null) && (data.length > 0)) {
// we have a file with content - lets process so it into a JSON
// object
if (Buffer.isBuffer(data)) {
// convert the buffer from hex to an ASCII string
body = data.toString('utf8');
console.log("test response:" + body);
responseBody = JSON.parse(body);
}
}
}

// create an array with our values and then make it

// JSON with stringfy

var output = JSON.stringify(responseBody);
response.write(output);
console.log("Returning:" + output);
response.statusCode = 200;
response.end();

});

} catch (err) {

if (err.code === 'ENOENT') {
console.log("on return file - will reflect");
} else {
console.log(err.toString());
}
var output = JSON.stringify(responseBody);
response.write(output);
console.log("Returning:" + output);
response.statusCode = 200;
response.end();
}
}).listen(8080); // Activates this server, listening on port 8080.

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Email a link to a friend (Opens in new window) Email
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Print (Opens in new window) Print
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Pinterest (Opens in new window) Pinterest
  • More
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on LinkedIn (Opens in new window) LinkedIn
Like Loading...

No documentation – a coding error?

01 Friday Dec 2017

Posted by mp3monster in development, General, Oracle

≈ Leave a comment

Tags

coding, development, docs, documentation, error, NoBugsProject

Documentation

from http://geek-and-poke.com

I came across this tweet from Oracle Developers (Oracle Developers Tweet) which picked up on a post from the NoBugsProject about common errors with the use of exceptions. One of the first errors the article described is one of my pet hates – the use of standard exceptions for application specific errors.

This took me onto one of my other pet hates – code without any documentation. I’m not advocating the days of waterfall Development where reams of documentation had to be produced before a single line of Code was written. In fact this is in my option worse than nothing as the docs would often not match the coded reality. But I absolutely agree with the agile manifesto statement:

We value working code over documentation

This doesn’t say no documentation, despite the fact that I have encountered more times than I care to recall the use of this statement to justify not documenting code. So what is the right balance?

We want to save effort from Code reviews and get clean code by using static code analysis but it doesn’t have the ability to apply smarts as what needs documenting? Pair programming is rarely practised, and there is plenty of psychology about group behaviour that can undermine documentation in a pair working approach effort. So what is the answer?

Well, I’ve always applied a couple of personal rules of thumb that can be measured with static code analysis particularly if you use conventional documentation tags. The rules are:

  • Interfaces warrant an interface level description of the interface purpose. It’s always helpful to describe/illustrate with use example. This is code equivalent to a good API Blueprint or swagger doc.
  • Provide a class level description of what the class is for – if it is a DAO then just say what the entity is.
  • If a class is part of a pattern, name the pattern. This is most important when relating to supporting a composite or solution pattern. Remember there will always situations where a newbie will get asked to extend or change your code, help them. Remember not every developer is as experienced or clever as you. If in doubt, give your code to someone who doesn’t know what you’re working on and ask them to explain what your code is doing and why. I had once, had to create a JDBC abstraction layer as we needed to support multiple databases. But if you know JDBC you’ll be aware of there are some subtle but important differences in implementation of connectors. I took the time to explain it in the interface header. I know a couple of developers appreciated the investment of 5 minutes.
  • If you have a function that has a code analytics score such as cyclometeric then describe the function. Use the comment to convey why the high score is justifiable.
  • If the code has specific dependencies or has to perform in a very specific sequence a short comment will help, and anyone going through refactoring code.

With these guidelines it becomes possible to then use javadoc tools to generate your documentation. It doesn’t require you to go find a word document or a wiki page to update the documentation. Of course then reviewing the generated documentation will soon help you finesse the process of documenting in a manner that is whilst light also supports readability without needing the code.

For those, who still disagree I would say …

  • Do you want to be maintaining and updating the same code for the rest of your career to meet new minor changes etc?
  • Not everyone is a great coder like you, do you want someone less capable who may have to make a change messing up your elegant code?
  • Sooner or later someone will ask you to fix or enhance some code that in your eyes is a chaotic unintelligible mess, I’m sure you’d appreciate some comments that will help you understand what the developer was trying to do? We can’t expect those not so good at the craft to document if the best of us are not prepared to do so.

If you don’t agree, or have found different approaches that ensure enough accurate documentation, please share.

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Email a link to a friend (Opens in new window) Email
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Print (Opens in new window) Print
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Pinterest (Opens in new window) Pinterest
  • More
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on LinkedIn (Opens in new window) LinkedIn
Like Loading...

eBook(lets) from O’Reilly

27 Tuesday Sep 2016

Posted by mp3monster in Books, General, Technology

≈ Leave a comment

Tags

architecture, Big Data, booklet, books, creative commons, Design, development, ebook, ebooks, free, open books, oreilly, vJUG

I received an email through the virtual Java User Group highlighting the availability of a couple of eBooks around Java published by O’Reilly. The details are below. The books are more booklets (nothing wrong with that). The key difference being that they are shorter and focused on one or two focused subjects (in this case Java 8’s Lambda’s & Streams) which is great because I don’t want a whole Java book again, I just want to get a handle on the key changes and language innovations. It is worth highlighting that these aren’t just ‘free chapters’ which is what you see happen sometimes as the goal of the book is described, doesn’t depend on prior chapters to work the illustrated material and structured with the appropriate cover material contents, index etc so works as a discrete entity.

This approach seems to be coming more common at O’Reilly at least as a marketing device, and we have seen this being done with the Dummies brand where the booklets have then been printed as conference give aways.

Some may argue that this is a reflection of our ever shortening attention span with books. This maybe the case for some, but I suspect it is more about providing some that is more digestible than a ‘free chapter’, but more importantly reflects the recognition that for books that are providing guides (as opposed to reference books – which I’d include patterns books) people don’t want to buy a latest edition of a book where the 1st chapters are exactly the same as the previous edition of the book and that the only significant change is a new section on Lambdas for example.

Any way the latest book details received are:

Introducing Java 8
by Raoul-Gabriel Urma
Offers a practical tutorial to some of the core Java 8 features and gets you programming quickly with Java 8.
Object Oriented vs Functional Programming
by Richard Warburton
Explains the similarities and differences between functional programming and object oriented programming with Java focused examples.

http://insightfullogic.com
@RichardWarburto

The other book(lets) that have drawn my attention to the trend include:

  • Static Site Generators
  • Migrating to Cloud-Native Application Architectures
  • Software Architecture Patterns
  • Little Book of HTML/CSS Coding Guidelines
  • Java the Legend – history of Java
  • Designing Great Web APIs
  • Modern Java Script
  • Hadoop with Python
  • Release Engineering How Google Builds and Delivers Software
  • Functional Programming in Python
  • 20 Python Libraries You Aren’t Using (But Should)
  • Monitoring Distributed Systems
  • Little Book of HTML/CSS Frameworks

In addition to these Book(let)s O’Reilly offer a range of ‘reports’ such as:

  • Mapping Big Data, Evaluating Machine Learning Models, Data Driven  (the full range can be seen at Free Data Reports)
  • Open by Design
  • Design for Voice Interfaces (Siri, Cortana etc)

 

In addition O’Reilly have a page on ‘Open Books’ (here) – covering significant texts O’Reilly have had some involvement in but published under licenses such as Create Commons.

 

  • [18-01-16 Update] New booklet added for Modern Java Script
  • [13-03-16 Update] New booklet Continuous Delivery With Windows and Dot Net
  • [14-03-16 Update] New booklet Modern Java EE Design Patterns
  • [13-08-16 Update] New booklet Release Engineering How Google Builds and Delivers Software and Functional Programming in Python
  • [16-09-16 Update] new booklet
    • 20 Python Libraries You Aren’t Using (But Should)
  • [19-09-16 Update] New Booklet Monitoring Distributed Systems
  • [28-09-16]New Booklet Little Book of HTML/CSS Frameworks

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Email a link to a friend (Opens in new window) Email
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Print (Opens in new window) Print
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Pinterest (Opens in new window) Pinterest
  • More
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on LinkedIn (Opens in new window) LinkedIn
Like Loading...

Psychology of Computer Programming

29 Friday May 2015

Posted by mp3monster in Books, General, mindmap

≈ Leave a comment

Tags

book, Computer Programming, development, development environment, Gerald Weinberg, mindmap, programming, psychology, Psychology of Computer Programming, weinberg

A while back I read the book Psychology of Computer Programming by Gerald Weinberg – something of a seminal text, full of interesting observations on how people and environments can impact productivity of programming.  Anyone working within a development environment would probably benefit from reading.  But whilst I was reading the book, I did create a mind map of what I was reading which I have made available here.

PsychologyOfProgramming

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Email a link to a friend (Opens in new window) Email
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Print (Opens in new window) Print
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Pinterest (Opens in new window) Pinterest
  • More
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on LinkedIn (Opens in new window) LinkedIn
Like Loading...

Oracle Fusion Applications Development and Extensibility Handbook – Chapters 9 & 10 reviewed

08 Tuesday Apr 2014

Posted by mp3monster in Book Reviews, Books, General, Oracle, Oracle Press, Technology

≈ 3 Comments

Tags

application, book, BPM, BPMN, development, EDN, fusion, Oracle, review

Back to the the review of Oracle Fusion Applications Development and Extensibility Handbook (Oracle Press), Chapters 9 & 10 take us from developing ADF based extensions to BPM and developing capabilities using a lot more of the SOA based building blocks such as Human Workflow.

The BPM chapter isn’t huge as actually the real effort behind BPM driven processes are more SOA based development. But the book does step back to explain Oracle’s history in the BPM and BPMN space and how Fusion Apps work using these technologies. So what we have is a good chapter more focusing on ideas and principles.

Chapter 10 naturally takes us into building full extensions which could be implementing the activities needed to realise a BPMN processes. The chapter is almost two separate halves, the first being the ideas and approaches adopted by Fusion Apps – such as the triggering of processes through EDN and onto into approval framework and how it compared to the preFusion products. The second half of the chapter turns all of this on practical steps in the various tools to realize functional extensions in a series of comprehensive steps.

Finally the chapter tackles the issues of deploying the customisation and the implications to patching and updating your Fusion Apps.

So yet again the authors have managed to cover a lot of ideas very effectively providing sufficient insight that you should able to find the necessary information if you’re working with a Fusion application not discussed here.

 

Previous Chapter reviews:

  • Chapters 1 & 2
  • Chapters 3 & 4
  • Chapters 5 & 6
  • Chapters 7 & 8

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Email a link to a friend (Opens in new window) Email
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Print (Opens in new window) Print
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Pinterest (Opens in new window) Pinterest
  • More
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on LinkedIn (Opens in new window) LinkedIn
Like Loading...

Oracle Fusion Applications Development and Extensibility Handbook – review Chapters 1 & 2

13 Thursday Mar 2014

Posted by mp3monster in Book Reviews, Books, General, Oracle, Oracle Press, Technology

≈ 6 Comments

Tags

applications, development, extensibility, fusion, Oracle, Vlad Ajvaz

So I’ve got through the first couple of chapters of Oracle Fusion Applications Development and Extensibility Handbook (Oracle Press). The book starts with a presumption of minimal knowledge so the first chapter provides an excellent high level overview on the framework and assembly of Fusion Applications and some of the principles such as Weblogic node management. Although an appreciation of non Fusion Apps will give you a sense of some ideas such as Flexfields would be useful at this stage, but they are explained in a lot more depth later on.

Chapter 2 moves onto the different kinds of customisation that can be performed and how those customisations are achieved from user configuration through to tools in the Fusion Apps and onto JDeveloper and the Fusion Apps libraries. The interesting thing is that all though it is clear a lot of work has gone into managing the dev and test cycles on a shared Fusion Apps platform including potential change conflict management there seems to be little for direct linkage or built in configuration management.

In terms of a book, it has started very well, providing a sense of over all shape of Fusion Apps in a very readable and informative  manner.  I think this is going to be a informative & easy read.

Oracle Fusion Apps at Google

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Email a link to a friend (Opens in new window) Email
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Print (Opens in new window) Print
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Pinterest (Opens in new window) Pinterest
  • More
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on LinkedIn (Opens in new window) LinkedIn
Like Loading...

Gaps in Oracle’s Cloud Cover?

20 Monday Jan 2014

Posted by mp3monster in General, Oracle

≈ 2 Comments

Tags

AWS, Cloud, connector, development, integration, Oracle, Salesforce, SOA Suite

As an Enterprise Integration Architect I need to get my hands dirty with products such as Oracle’s SOA suite and AIA Foundation Pack.  In the past, I’ve dealt with this by talking with our infrastructure team – obtaining a VM or a laptop with sufficient guts to host SOA Suite (and it doesn’t have a small footprint).  This is all well and fine, but means I have to lug a big old laptop (our current standard laptop spec’s are lovely light machines with SSD’s but just don’t pack the punch for SOA Suite when it comes to memory) or have to leap through a series of security steps to get remote access – again not a problem unless I want to share my skunk works with someone outside the organisation.  Nor, do I really want to invest chunks of time building a SOA Suite environment to work with – I don’t do it enough to be able to throw these things together quickly.  Even Oracle recognise that with the support for a prebuilt VirtualBox with SOA Suite and BPM. The only problem with VirtualBox is I’ve saved on the build time, but still need that heavy laptop or remote access.

Oracle Cloud Java

With the rise of the cloud, particularly Oracle’s big push (announcements at Open World 2013), Amazon offering small footprint dev platforms more or less for free I thought we’d be able to get a PaaS deployment of SOA Suite – after all Oracle offer a range of Fusion Apps in the cloud (built on top of SOA Suite technologies), have launched development of Java and ADF solutions in their cloud and even offer Weblogic on Microsoft’s Azure.  How I wrong could I have been.  So I started looking around, perhaps someone has an AMI ready to go – well sort of if I want 10g.  So I’ve dug around, and found the odd provider who could deliver what was needed (e.g. Titan GS) but we’re talking big bucks – not a low cost dev/skunk works environment.  

This is very surprising really, and sort of ironic, given Oracle’s recent announcement for SaaS Adapters for the likes of SalesForce and WorkDay along with convenience tooling to connect to Oracle Cloud solutions such as HCM.  I say ironic, because to use the cloud adapters you can’t have a SaaS middleware; in fact the whitepaper Oracle published on Simplifying Cloud Integration infers/assumes that you’d be hosting your own middleware.  So if a midsized business has Has HCM, Taleo etc for their staffing management, SalesForce for the Sales/CRM operations and perhaps EBis or JD Edwards to move your business into the cloud you have to either go IaaS and carry the labour of maintaining the middleware platform or self host (one of the things the adoption of SaaS is trying to free you from).

All of this seems to be a really missed opportunity for Oracle.  If the oracle wants to host the world (and I think Larry Ellison would like that) and definitely get into that midmarket sector that JDEwards particularly tries to inhabit they need to make it easy for businesses to cloud all aspects of their IT solution, that includes orchestrating specialist solutions that will be hosted by someone other than Oracle (shock, horror). All of which means SOA Suite (and ideally AIA) need to be in the cloud.

As for my problem, its either the pain of building something on Amazon or setting up several copies of the VirtualBox deployment linked to a common GIT repository, and hope those I would like to collaborate with can also get their hands on the virtualbox and connect to GIT.

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Email a link to a friend (Opens in new window) Email
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Print (Opens in new window) Print
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Pinterest (Opens in new window) Pinterest
  • More
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on LinkedIn (Opens in new window) LinkedIn
Like Loading...

Book Review – MySQL Workbench: Data modelling & Development by Michael McLaughlin

02 Friday Aug 2013

Posted by mp3monster in Book Reviews, Books, General, Technology

≈ Leave a comment

Tags

development, modeling, MySQL, Oracle, workbench

MySQL Workbench Data Modeling and Development

MySQL Workbench Data Modeling and Development

Having reviewed several books recently, and currently working on another book – I was offered the chance to look at MySQL Workbench: Data Modelling & Development by Michael McLaughlin which I took up as I was interested to know more about the Workbench tool (despite having worked with MySQL on and off for about 10 years, I’ve only really used command line and SQL editors or Eclipse plugins when working with MySQL).

From a pure readability perspective, this is undoubtedly technically well written. My difficulty with the book comes from the style, and presumed level of intelligence of the reader.  The difficulty comes from several perspectives’ firstly the author can feel a little condescending, to illustrate my point on page 180 the book says ‘Select Schemata step (that’s a fancier word for the fancy word schema) ‘.  Do you really need such a statement? Further the book spends the best part of the first 100 pages on walking through UI based installers for Windows 7, Linux (Debian and Fedora), and Mac OS X.  Although the look and feel of these installers will differ slightly, aside from some of the environmental considerations (configuring your hosts file for example) the installation process is consistent enough (and obvious enough given it is UI wizards) to only need to explain the end to end process for one platform, and then just address the differences for the other platforms, not repeat the entire process.  The only blessing in these first couple of chapters the author has thought to highlight a few common install issues and their resolutions (addressing my classic complaint people only think about the happy path). During the installation, the book makes reference to the use of DNS, but I don’t believe the use of DNS in a production environment is particularly well explained.

Having waded through to chapter 3 we can get started with the modelling aspect of the workbench. The chapter sets out first to explain some modelling concepts – starting with Object Orientation (OO) but doesn’t do a great job of it, starting out making reference to a number principles but then talking about the ‘principle of the one’, given my experience I did understand what the author was trying to express but, for someone experienced it could have been more simply expressed.  after OO, Normalisation is explained, and what defines the different levels of normalisation, but not the mechanics that can be followed to go from the levels of normalisation (something I was taught over 20 years ago).  Given that book talks about modelling,  I had expected the book to at-least touched upon other modelling approaches used for delivering the needs of data warehousing (star schemas etc), but his didn’t even obtain an aside.  Having spent nearly 100 image heavy pages on installation, all of these concepts are introduced in a single very text heavy chapter, which feels like we’ve swung too far the other way.

As the book goes on into development aspects it errs away from addressing SQL at all, and focuses entirely on designing with INNODB table behaviours.  Admittedly INNODB is the common engine (and the default assumed behaviour when thinking about database tables) but isn’t the only table type.  All of which is a shame as if you want to get the most out of MySQL the other table types have their value and benefits.

So, what value does the book bring.  Well for a student learning about databases for the 1st time (hard visualize when you think how pervasive the technology is today – even smart phones carry DBs now) this book along with a good guide on SQL and you’d be well on your way to getting some practical experience with MySQL.  to be honest the book would have setup far better expectations if it had been called MySQL Workbench for Dummies.  For the seasoned engineer who has worked with MySQL, understands database design then you might want to think twice about getting this book; that said I did pickup a few useful titbits – but getting them was hardwork.

Useful Links for the book:

  • Oracle Press URL http://www.mcgraw-hill.co.uk/html/0071791884.html
  • Michael McLaughlin’s blog (author) http://blog.mclaughlinsoftware.com/
  • Book at Amazon co.uk

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Email a link to a friend (Opens in new window) Email
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Print (Opens in new window) Print
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Pinterest (Opens in new window) Pinterest
  • More
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on LinkedIn (Opens in new window) LinkedIn
Like Loading...

AJAX Resources

11 Tuesday Aug 2009

Posted by mp3monster in General

≈ Leave a comment

Tags

AJAX, development, software, Technology, UI, web

With WebUI’s getting more like thick applications as a result of the increasing adoption and sophistication of AJAX use I came across a website that does a good job of pulling together AJAX lessons, examples and tips tricks called www.ajaxlessons.com. Its a link’d recommedn adding to any web developers list of dev resources.

Share this:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Reddit (Opens in new window) Reddit
  • Email a link to a friend (Opens in new window) Email
  • Share on WhatsApp (Opens in new window) WhatsApp
  • Print (Opens in new window) Print
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Mastodon (Opens in new window) Mastodon
  • Share on Pinterest (Opens in new window) Pinterest
  • More
  • Share on Bluesky (Opens in new window) Bluesky
  • Share on LinkedIn (Opens in new window) LinkedIn
Like Loading...
Newer posts →

    I work for Oracle, all opinions here are my own & do not necessarily reflect the views of Oracle

    • About
      • Internet Profile
      • Music Buying
      • Presenting Activities
    • Books & Publications
      • Logging in Action with Fluentd, Kubernetes and More
      • Logs and Telemetry using Fluent Bit
      • Oracle Integration
      • API & API Platform
        • API Useful Resources
        • Useful Reading Sources
    • Mindmaps Index
    • Monster On Music
      • Music Listening
      • Music Reading
    • Oracle Resources
    • Useful Tech Resources
      • Fluentd & Fluent Bit Additional stuff
        • Logging Frameworks and Fluent Bit and Fluentd connectivity
        • REGEX for BIC and IBAN processing
      • Formatting etc
      • Java and Graal Useful Links
      • Official Sources for Product Logos
      • Python Setup & related tips
      • Recommended Tech Podcasts

    Oracle Ace Director Alumni

    TOGAF 9

    Logs and Telemetry using Fluent Bit


    Logging in Action — Fluentd

    Logging in Action with Fluentd


    Oracle Cloud Integration Book


    API Platform Book


    Oracle Dev Meetup London

    Blog Categories

    • App Ideas
    • Books
      • Book Reviews
      • manning
      • Oracle Press
      • Packt
    • Enterprise architecture
    • General
      • economy
      • ExternalWebPublications
      • LinkedIn
      • Website
    • Music
      • Music Resources
      • Music Reviews
    • Photography
    • Podcasts
    • Technology
      • AI
      • APIs & microservices
      • chatbots
      • Cloud
      • Cloud Native
      • Dev Meetup
      • development
        • languages
          • java
          • node.js
          • python
      • drone
      • Fluentbit
      • Fluentd
      • logsimulator
      • mindmap
      • OMESA
      • Oracle
        • API Platform CS
          • tools
        • Helidon
        • ITSO & OEAF
        • Java Cloud
        • NodeJS Cloud
        • OIC – ICS
        • Oracle Cloud Native
        • OUG
      • railroad diagrams
      • TOGAF
    • xxRetired
    • AI
    • API Platform CS
    • APIs & microservices
    • App Ideas
    • Book Reviews
    • Books
    • chatbots
    • Cloud
    • Cloud Native
    • Dev Meetup
    • development
    • drone
    • economy
    • Enterprise architecture
    • ExternalWebPublications
    • Fluentbit
    • Fluentd
    • General
    • Helidon
    • ITSO & OEAF
    • java
    • Java Cloud
    • languages
    • LinkedIn
    • logsimulator
    • manning
    • mindmap
    • Music
    • Music Resources
    • Music Reviews
    • node.js
    • NodeJS Cloud
    • OIC – ICS
    • OMESA
    • Oracle
    • Oracle Cloud Native
    • Oracle Press
    • OUG
    • Packt
    • Photography
    • Podcasts
    • python
    • railroad diagrams
    • Technology
    • TOGAF
    • tools
    • Website
    • xxRetired

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 2,556 other subscribers

    RSS

    RSS Feed RSS - Posts

    RSS Feed RSS - Comments

    March 2026
    M T W T F S S
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  
    « Feb    

    Twitter

    Tweets by mp3monster

    History

    Speaker Recognition

    Open Source Summit Speaker

    Flickr Pics

    Gogo Penguin at the BarbicanGogo Penguin at the BarbicanGogo Penguin at the BarbicanGogo Penguin at the Barbican
    More Photos

    Social

    • View @mp3monster’s profile on Twitter
    • View philwilkins’s profile on LinkedIn
    • View mp3monster’s profile on GitHub
    • View mp3monster’s profile on Flickr
    • View mp3muncher’s profile on WordPress.org
    • View philmp3monster’s profile on Twitch
    Follow Phil (aka MP3Monster)'s Blog on WordPress.com

    Blog at WordPress.com.

    • Subscribe Subscribed
      • Phil (aka MP3Monster)'s Blog
      • Join 234 other subscribers
      • Already have a WordPress.com account? Log in now.
      • Phil (aka MP3Monster)'s Blog
      • Subscribe Subscribed
      • Sign up
      • Log in
      • Report this content
      • View site in Reader
      • Manage subscriptions
      • Collapse this bar
     

    Loading Comments...
     

    You must be logged in to post a comment.

      Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
      To find out more, including how to control cookies, see here: Our Cookie Policy
      %d