Skip navigation.

Fusion Middleware

ControlCenter for WebCenter Content: Controlled Document Management for any Device

Fishbowl Solutions recently held a webinar about our newest product, ControlCenter for Oracle WebCenter Content. Product manager Kim Negaard discussed ControlCenter’s unique features and advantages for controlled document management. If you missed the webinar, you can now view it on YouTube:

Below is a summary of questions Kim answered during the webinar. If you have any unanswered questions, or would just like to learn more, feel free to contact Fishbowl by emailing cmsales@fishbowlsolutions.com.

Is this a custom component that I can apply to current documents and workflow processes, or are there additional customization that needs to be done?

ControlCenter is installed as a custom component and will work with current documents. You can identify which document types and workflows you want to be able to access through ControlCenter and additional customizations are not necessary.

Does the metadata sync with the header information in both Microsoft Word and Adobe PDF documents?

The metadata synchronization works with PDF and Word documents.

Do you need to have a specific template in order to synchronize?

Not really. There’s two ways you can insert metadata into a document:

  1. You can use the header or footer area and replace anything existing in the current header with a standard header.
  2. You can use properties fields: for example, anytime the Microsoft Office properties field “document ID” occurs in a document, the dDoc name value could be inserted into that field.

In either of these cases, the formatting standards wouldn’t be rigid, but you would ideally want to know before rolling this out which approach you’d like to take.

What version of WebCenter do you need for this?

This is supported on WebCenter Content version 11.1.8 or above.

Is it completely built on component architecture as a custom component?

Yes.

Does ControlCenter require the Site Studio component to be enabled in order to work?

No, Site Studio doesn’t have to be enabled.

Does ControlCenter require Records Management to be installed on top of WCC?

No.

Does the custom component require additional metadata specific to ControlCenter?

Not exactly. We’ve made it pretty flexible; for example, with the scheduled reviews, we don’t force you to create a field called “review date”. We allow you to pick any date field you want to use for the scheduled reviews, so that if you already have something in place you could use it.

Where do you put ControlCenter if you don’t already have an existing server?

You do need to have an Oracle WebCenter Content server to run ControlCenter. If you don’t have a server, you’ll need to purchase a license for WebCenter Content. However, you don’t need any additional servers besides your WebCenter Content server.

Does the notification have to go to a specific author, or could you send it to a group or list in case that author is no longer with the organization?

The notification system is very flexible in terms of who you can send documents to. You can send it to a group, like an entire department or group of team leads, or it can be configured to send to just one person, like the document author or owner.

How does this work with profiles?

ControlCenter fully supports profiles. When you view content information for a document, it will display the metadata using the profile. If you check in a document using a check-in profile, then all of the metadata and values from that profile will be respected and enforced within ControlCenter. I should also mention that ControlCenter does support DCLs, so if you’re using DCLs those will be respected, both from a check in perspective but also in the metadata on the left. So as you are creating a browse navigation in ControlCenter, it will recognize your DCLs and allow you to filter with the proper relationships.

Does it integrate with or support OID (Oracle Internet Directory)/OAM (Oracle Access Manager)?

ControlCenter will use whatever authentication configuration you already have set up. So if you’re using OAM with WebCenter Content, then that’s what ControlCenter will use as well.

Does it support any custom metadata that has already been created?

Yes, if you have custom metadata fields that are already created, any of those can be exposed in ControlCenter.

Does it support any other customizations that have already been defined in the WebCenter Content instance?

It will depend on the nature of the customization. In general, if you have customized the WebCenter UI, those customizations would not show up in ControlCenter because ControlCenter has a separate UI; however, customizations on the back end, like workflow or security, would likely carry over into ControlCenter.

Does ControlCenter integrate with URM?

The ControlCenter interface isn’t specifically integrated with URM.

In case of a cluster environment, does ControlCenter need to be installed on both WebCenter Content servers?

Yes, if you have a clustered WebCenter Content environment, you would need to install ControlCenter on both/all nodes of the clustered environment.

Does it change anything within core WebCenter?

Not really. The only change to the core UI is an additional button in the Browse Content menu that will take you to the ControlCenter interface. But other than that, ControlCenter doesn’t change or prevent you from using the regular Content Server interface.

Can you customize the look and feel (icons, colors, etc.)?

Yes. We will work with you to customize the look and feel, widgets, etc. The architecture that we used when we created this supports customization.

The post ControlCenter for WebCenter Content: Controlled Document Management for any Device appeared first on Fishbowl Solutions' C4 Blog.

Categories: Fusion Middleware, Other

Google Search Appliance (GSA) Version 7.4 Released

Wanted to drop a quick note here that Google released the latest version of the Google Search Appliance software last week. That brings the most current version up to 7.4.0.G.72 and officially end of life’s the 7.0 version of the appliance software.

New features from the support site posting:

  • Seamless Integration with Microsoft: we’re releasing our SharePoint and Active Directory 4.0 connectors out of beta. These connectors provide improved scalability, easier configuration and tighter integration with SharePoint. Additionally, the GSA now supports ADFS which improves our ability to integrate with Windows security.
  • Strengthening GSA as a Platform: GSA 7.4 improves the overall quality of the GSA as a search platform. Examples of this include better monitoring through exposing new SNMP metrics, better administration of the internal group resolution repository (GroupDB) and more support for security standards through a generic SAML Identity Provider (eg: OpenSAML).
  • Improved Performance: this new GSA version provides better performance in 3 areas: crawling, serving and authorizing search results.
  • Enhanced Connector Platform: we have released new features to our 4.0 connector platform like a new beta Database connector and support for SharePoint 2013 multi tenant. We’ll continue to release new Connector functionality regularly.

I am particularly excited about the ability to see into the onboard GroupDB and manage it through the admin console.

Link to 7.4 documentation: https://support.google.com/gsa/answer/6187273?hl=en&ref_topic=2709671

The post Google Search Appliance (GSA) Version 7.4 Released appeared first on Fishbowl Solutions' C4 Blog.

Categories: Fusion Middleware, Other

Auto Scaling Service within Bluemix

Pas Apicella - Tue, 2015-04-28 04:55
I decided to test out the Auto Scale service in IBM Bluemix following this example which shows how to also use the Blazemeter service to Load test the application to simulate extra memory requirement on the application.

https://developer.ibm.com/bluemix/2015/04/03/handle-unexpected-bluemix-auto-scaling/

The demo is quite straight forward to setup and the screen shots below show what the service output gives in terms of auto scaling history and of course metric statistics for the selected policy configuration.

Policy Configuration



Metrics Statistics



Scaling History


http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Deploying a Python application to IBM Bluemix

Pas Apicella - Mon, 2015-04-20 01:15
The following simple example shows how to push the basic hello world Python application to IBM Bluemix. We use the buildpack below.

https://github.com/heroku/heroku-buildpack-python.git

1. Create a file called requirements.txt

pas@pass-mbp:~/bluemix-apps/python-demo$ cat requirements.txt
Flask==0.10.1

2. Create a file called runtime.txt to detail the Python version to use

pas@pass-mbp:~/bluemix-apps/python-demo$ cat runtime.txt
python-2.6.5

3. Push the application using the buildpack above.

pas@pass-mbp:~/bluemix-apps/python-demo$ cf push pas-phython-demo -m 128m -b https://github.com/heroku/heroku-buildpack-python.git
Creating app pas-phython-demo in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Creating route pas-phython-demo.mybluemix.net...
OK

Binding pas-phython-demo.mybluemix.net to pas-phython-demo...
OK

Uploading pas-phython-demo...
Uploading app files from: /Users/pas/ibm/bluemix/apps/python-demo
Uploading 1.9K, 7 files
Done uploading
OK

Starting app pas-phython-demo in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Downloaded app package (4.0K)
Cloning into '/tmp/buildpacks/heroku-buildpack-python'...
-----> Installing runtime (python-2.6.5)
-----> Installing dependencies with pip
/app/.heroku/python/lib/python2.6/site-packages/pip-6.1.0.dev0-py2.6.egg/pip/_vendor/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
       You are using pip version 6.1.0.dev0, however version 6.1.1 is available.
       You should consider upgrading via the 'pip install --upgrade pip' command.
       Collecting Flask==0.10.1 (from -r requirements.txt (line 1))
/app/.heroku/python/lib/python2.6/site-packages/pip-6.1.0.dev0-py2.6.egg/pip/_vendor/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
         Downloading Flask-0.10.1.tar.gz (544kB)
       Collecting Werkzeug>=0.7 (from Flask==0.10.1->-r requirements.txt (line 1))
         Downloading Werkzeug-0.10.4-py2.py3-none-any.whl (293kB)
       Collecting Jinja2>=2.4 (from Flask==0.10.1->-r requirements.txt (line 1))
         Downloading Jinja2-2.7.3.tar.gz (378kB)
       Collecting itsdangerous>=0.21 (from Flask==0.10.1->-r requirements.txt (line 1))
         Downloading itsdangerous-0.24.tar.gz (46kB)
       Collecting markupsafe (from Jinja2>=2.4->Flask==0.10.1->-r requirements.txt (line 1))
         Downloading MarkupSafe-0.23.tar.gz
       Installing collected packages: markupsafe, itsdangerous, Jinja2, Werkzeug, Flask
         Running setup.py install for markupsafe
         Running setup.py install for itsdangerous
         Running setup.py install for Jinja2
         Running setup.py install for Flask
       Successfully installed Flask-0.10.1 Jinja2-2.7.3 Werkzeug-0.10.4 itsdangerous-0.24 markupsafe-0.23
You are using pip version 6.1.0.dev0, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
-----> Uploading droplet (25M)

0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
1 of 1 instances running

App started


OK

App pas-phython-demo was started using this command `python hello.py`

Showing health and status for app pas-phython-demo in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

requested state: started
instances: 1/1
usage: 128M x 1 instances
urls: pas-phython-demo.mybluemix.net
last uploaded: Mon Apr 20 07:10:24 +0000 2015

     state     since                    cpu    memory          disk          details
#0   running   2015-04-20 05:12:23 PM   0.0%   40.8M of 128M   94.4M of 1G



http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

A Meteor buildpack for Bluemix to simplify the deployment

Pas Apicella - Mon, 2015-04-20 00:59
I previously blogged about deploying a Meteor application to Bluemix as follows

http://theblasfrompas.blogspot.com.au/2015/04/deploying-simple-meteor-application-to.html

The following Buildpack created by an Internal IBM employee streamlines the process of deployment and avoids the need for ENV variables with the pushed application, here;s how. It's also detailed in the GitHub buildpack URL below.

https://github.com/bancha001/bluemix-buildpack-meteor

1. Create .cfignore to exclude the path 'local' to be uploaded

pas@pass-mbp:~/ibm/software/meteor/simple-todos$ cat .cfignore
.meteor/local

2. Create a manifest.yml which includes an existing MongoDB service as shown below.

---
applications:
- memory: 256M
  domain: mybluemix.net
  path: .
  buildpack: https://github.com/bancha001/bluemix-buildpack-meteor
  host: pas-todo
  name: pas-todo
  disk: 512M
  services:
    - todo-mongo-db
  instances: 1

3. Push the application

pas@pass-mbp:~/ibm/software/meteor/simple-todos$ cf push
Using manifest file /Users/pas/ibm/software/meteor/simple-todos/manifest.yml

Creating app pas-todo in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Creating route pas-todo.mybluemix.net...
OK

Binding pas-todo.mybluemix.net to pas-todo...
OK

Uploading pas-todo...
Uploading app files from: /Users/pas/ibm/software/meteor/simple-todos
Uploading 9.5K, 12 files
Done uploading
OK
Binding service todo-mongo-db to app pas-todo in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Starting app pas-todo in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Downloaded app package (216K)
Cloning into '/tmp/buildpacks/bluemix-buildpack-meteor'...
-----> Installing Node
-----> Installing Meteor
Downloading Meteor distribution
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
######################################################################## 100.0%
Meteor 1.1.0.2 has been installed in your home directory (~/.meteor).
Writing a launcher script to /usr/local/bin/meteor for your convenience.
This may prompt for your password.
sudo: no tty present and no askpass program specified
Couldn't write the launcher script. Please either:
  (1) Run the following as root:
        cp "/home/vcap/.meteor/packages/meteor-tool/1.1.3/mt-os.linux.x86_64/scripts/admin/launch-meteor" /usr/bin/meteor
  (2) Add "$HOME/.meteor" to your path, or
  (3) Rerun this command to try again.
Then to get started, take a look at 'meteor --help' or see the docs at
docs.meteor.com.
-----> Building Meteor application

FAILED
Error performing request: Get https://api.ng.bluemix.net/v2/apps/3c2b4d96-688d-4024-b039-b8153c86c5cc/instances: dial tcp 75.126.70.44:443: i/o timeout

TIP: use 'cf logs pas-todo --recent' for more information
pas@pass-mbp:~/ibm/software/meteor/simple-todos$ clear
pas@pass-mbp:~/ibm/software/meteor/simple-todos$ cf push
Using manifest file /Users/pas/ibm/software/meteor/simple-todos/manifest.yml

Creating app pas-todo in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Creating route pas-todo.mybluemix.net...
OK

Binding pas-todo.mybluemix.net to pas-todo...
OK

Uploading pas-todo...
Uploading app files from: /Users/pas/ibm/software/meteor/simple-todos
Uploading 9.5K, 12 files
Done uploading
OK
Binding service todo-mongo-db to app pas-todo in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Starting app pas-todo in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Downloaded app package (216K)
Cloning into '/tmp/buildpacks/bluemix-buildpack-meteor'...
-----> Installing Node
-----> Installing Meteor
Downloading Meteor distribution
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
Dropped log message: message too long (>64K without a newline)
######################################################################## 100.0%
Meteor 1.1.0.2 has been installed in your home directory (~/.meteor).
Writing a launcher script to /usr/local/bin/meteor for your convenience.
This may prompt for your password.
sudo: no tty present and no askpass program specified
Couldn't write the launcher script. Please either:
  (1) Run the following as root:
        cp "/home/vcap/.meteor/packages/meteor-tool/1.1.3/mt-os.linux.x86_64/scripts/admin/launch-meteor" /usr/bin/meteor
  (2) Add "$HOME/.meteor" to your path, or
  (3) Rerun this command to try again.
Then to get started, take a look at 'meteor --help' or see the docs at
docs.meteor.com.
-----> Building Meteor application
-----> Installing dependencies
npm WARN package.json meteor-dev-bundle@0.0.0 No description
npm WARN package.json meteor-dev-bundle@0.0.0 No repository field.
npm WARN package.json meteor-dev-bundle@0.0.0 No README data
       > fibers@1.0.1 install /tmp/staged/app/.bluemix/app/programs/server/node_modules/fibers
       > node ./build.js
       `linux-x64-v8-3.14` exists; testing
       Binary is fine; exiting
       progress@1.1.8 node_modules/progress
       ip@0.3.2 node_modules/ip
       underscore@1.5.2 node_modules/underscore
       semver@2.2.1 node_modules/semver
       chalk@0.5.1 node_modules/chalk
       ├── escape-string-regexp@1.0.2
       ├── ansi-styles@1.1.0
       ├── supports-color@0.2.0
       ├── has-ansi@0.1.0 (ansi-regex@0.2.1)
       └── strip-ansi@0.3.0 (ansi-regex@0.2.1)
       source-map-support@0.2.5 node_modules/source-map-support
       └── source-map@0.1.29 (amdefine@0.1.0)
       fibers@1.0.1 node_modules/fibers
-----> Building runtime environment
-----> Running extras
       MongoDB Service Binding
  #!/bin/sh
  export ROOT_URL=${ROOT_URL:-http://pas-todo.mybluemix.net}
  export MONGO_URL=${MONGO_URL:-mongodb://IbmCloud_r3baqpa6_2hft49g4_f78kb40a:Wb010LLGN9YHYbPR4DdK5JEpSvTt0GZ0@ds055200.mongolab.com:55200/IbmCloud_r3baqpa6_2hft49g4}
-----> Uploading droplet (14M)

0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
1 of 1 instances running

App started


OK

App pas-todo was started using this command `.bluemix/bin/node .bluemix/app/main.js`

Showing health and status for app pas-todo in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: pas-todo.mybluemix.net
last uploaded: Mon Apr 20 06:51:43 +0000 2015

     state     since                    cpu    memory          disk          details
#0   running   2015-04-20 04:56:09 PM   0.1%   70.6M of 256M   57.8M of 1G


http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Deploying a simple Meteor Application To IBM Bluemix

Pas Apicella - Tue, 2015-04-14 23:25
In this post I show what is necessary to deploy a simple Meteor application to IBM Bluemix public instance. In this example we already have a simple Meteor application we have tested and verified using "meteor" itself , running on localhost at port 3000.

1. Lets remove the local DB files, be careful as this will remove the local DB so you should do this when your ready to deploy to Bluemix only.

pas@pass-mbp:~/ibm/software/meteor/myfirst_app$ meteor reset
Project reset.

2. Create a manifest.yml file for the deployed application, the ENV variable ROOT_URL is required and also a buildpack which supports Meteor runtime is being pushed with the application.

applications:
 - name: pas-meteor-firstapp
   memory: 256M
   instances: 1
   path: .
   host: pas-meteor-firstapp
   domain: mybluemix.net
   buildpack: https://github.com/jordansissel/heroku-buildpack-meteor.git
env:
   ROOT_URL: http://pas-meteor-firstapp.mybluemix.net/

3. Push the application as shown below.

pas@pass-mbp:~/ibm/software/meteor/myfirst_app$ cf push -f manifest.yml
Using manifest file manifest.yml

Creating app pas-meteor-firstapp in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Using route pas-meteor-firstapp.mybluemix.net
Binding pas-meteor-firstapp.mybluemix.net to pas-meteor-firstapp...
OK

Uploading pas-meteor-firstapp...
Uploading app files from: .
Uploading 3.7K, 11 files
Done uploading
OK

Starting app pas-meteor-firstapp in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Downloaded app package (4.0K)
Cloning into '/tmp/buildpacks/heroku-buildpack-meteor'...

-----> Moving app source into a subdirectory
       Node engine:         0.10.36
       Npm engine:          unspecified
       Start mechanism:     none
       node_modules source: none
       node_modules cached: false
       NPM_CONFIG_PRODUCTION=true
       NODE_MODULES_CACHE=true
       PRO TIP: Use 'npm init' and 'npm install --save' to define dependencies
       See https://devcenter.heroku.com/articles/nodejs-support
       PRO TIP: Include a Procfile, package.json start script, or server.js file to start your app
       See https://devcenter.heroku.com/articles/nodejs-support#runtime-behavior
-----> Installing binaries
       Downloading and installing node 0.10.36...
-----> Building dependencies
       Skipping dependencies (no source for node_modules)
-----> Checking startup method
-----> Finalizing build
       Creating runtime environment
       Exporting binary paths
       Cleaning up build artifacts
       Build successful!
       /tmp/staged/app
       └── (empty)
-----> Fetching Meteor 1.0.3.2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 72.4M  100 72.4M    0     0  14.3M      0  0:00:05  0:00:05 --:--:-- 15.6M
-----> Unpacking Meteor 1.0.3.2
       Meteor 1.0.3.2 is installed
-----> Building Meteor App Bundle
-----> Installing App's NPM Dependencies
       npm WARN package.json meteor-dev-bundle@0.0.0 No description
       npm WARN package.json meteor-dev-bundle@0.0.0 No repository field.
       npm WARN package.json meteor-dev-bundle@0.0.0 No README data
       > fibers@1.0.1 install /tmp/staged/app/build/bundle/programs/server/node_modules/fibers
       `linux-x64-v8-3.14` exists; testing
       Binary is fine; exiting
       underscore@1.5.2 node_modules/underscore
       semver@4.1.0 node_modules/semver
       eachline@2.3.3 node_modules/eachline
       └── type-of@2.0.1
       chalk@0.5.1 node_modules/chalk
       ├── ansi-styles@1.1.0
       ├── escape-string-regexp@1.0.3
       ├── supports-color@0.2.0
       ├── has-ansi@0.1.0 (ansi-regex@0.2.1)
       └── strip-ansi@0.3.0 (ansi-regex@0.2.1)
       source-map-support@0.2.8 node_modules/source-map-support
       └── source-map@0.1.32 (amdefine@0.1.0)
-----> Uploading droplet (82M)

0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
1 of 1 instances running

App started


OK

App pas-meteor-firstapp was started using this command `node build/bundle/main.js`

Showing health and status for app pas-meteor-firstapp in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: pas-meteor-firstapp.mybluemix.net
last uploaded: Wed Apr 15 05:13:01 +0000 2015

     state     since                    cpu    memory           disk           details
#0   running   2015-04-15 03:18:18 PM   0.1%   149.2M of 256M   351.1M of 1G

4. Verify application is running

pas@pass-mbp:~/ibm/software/meteor/myfirst_app$ cf app pas-meteor-firstapp
Showing health and status for app pas-meteor-firstapp in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: pas-meteor-firstapp.mybluemix.net
last uploaded: Wed Apr 15 05:13:01 +0000 2015

     state     since                    cpu    memory           disk           details
#0   running   2015-04-15 03:18:18 PM   0.0%   149.2M of 256M   351.1M of 1G

5. Access as shown below.

http://pas-meteor-firstapp.mybluemix.net/


Finally if you need to use a data store which most applications will then you need to define an ENV variable for your MongoDB store as shown below. In this example below I am using a service in the Bluemix catalog for MongoDB itself and

   MONGO_URL: mongodb://zzzzzzzzz:yyyyyyyyyyy


More Information

https://www.meteor.com/installhttp://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Bluemix IBM Containers Simple NodeJS Demo

Pas Apicella - Sun, 2015-04-12 01:40
I decided to give the IBM Containers service a quick test drive today. I used this very simple example available at the following GitHub URL

https://github.com/Samze/ibm-containers-simple-node-example

1. Clone the source code as follows

pas@192-168-1-4:~/temp$ git clone https://github.com/Samze/ibm-containers-simple-node-example
Cloning into 'ibm-containers-simple-node-example'...
remote: Counting objects: 63, done.
remote: Total 63 (delta 0), reused 0 (delta 0), pack-reused 63
Unpacking objects: 100% (63/63), done.
Checking connectivity... done.

2. Build as shown below.

pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS/ibm-containers-simple-node-example$ docker build -t simplenode:latest .
Sending build context to Docker daemon 921.6 kB
Sending build context to Docker daemon
Step 0 : FROM registry-ice.ng.bluemix.net/ibmnode:latest
 ---> e9991fa102c2
Step 1 : ADD . /node
 ---> e06d64586fcb
Removing intermediate container 115a1f348c9c
Step 2 : WORKDIR /node
 ---> Running in bbbbb3e2044c
 ---> 341de1dca2a2
Removing intermediate container bbbbb3e2044c
Step 3 : RUN npm install
 ---> Running in c5157b73d74a
npm WARN package.json ibm-containers-simple-node-example@0.0.0 No repository field.
npm ERR! fetch failed https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz
npm ERR! fetch failed https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz
npm ERR! fetch failed https://registry.npmjs.org/on-finished/-/on-finished-2.2.0.tgz
npm ERR! fetch failed https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz
npm ERR! fetch failed https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.7.tgz
npm ERR! fetch failed https://registry.npmjs.org/crc/-/crc-3.2.1.tgz
npm ERR! fetch failed https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz
npm ERR! fetch failed https://registry.npmjs.org/crc/-/crc-3.2.1.tgz
npm ERR! fetch failed https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz
ejs@2.3.1 node_modules/ejs

express@4.12.3 node_modules/express
├── merge-descriptors@1.0.0
├── utils-merge@1.0.0
├── cookie-signature@1.0.6
├── methods@1.1.1
├── cookie@0.1.2
├── fresh@0.2.4
├── escape-html@1.0.1
├── range-parser@1.0.2
├── finalhandler@0.3.4
├── content-type@1.0.1
├── vary@1.0.0
├── parseurl@1.3.0
├── serve-static@1.9.2
├── content-disposition@0.5.0
├── path-to-regexp@0.1.3
├── depd@1.0.1
├── qs@2.4.1
├── proxy-addr@1.0.7 (forwarded@0.1.0, ipaddr.js@0.1.9)
├── debug@2.1.3 (ms@0.7.0)
├── send@0.12.2 (destroy@1.0.3, ms@0.7.0, mime@1.3.4)
├── type-is@1.6.1 (media-typer@0.3.0, mime-types@2.0.10)
├── etag@1.5.1 (crc@3.2.1)
├── on-finished@2.2.0 (ee-first@1.1.0)
└── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
 ---> 6a8303faa142
Removing intermediate container c5157b73d74a
Step 4 : EXPOSE 8080
 ---> Running in 2ef2338c54f0
 ---> 92fcbb0123ac
Removing intermediate container 2ef2338c54f0
Step 5 : ENTRYPOINT node /node/index.js
 ---> Running in 9abbc0dd1b10
 ---> 0c09d70174b1
Removing intermediate container 9abbc0dd1b10
Successfully built 0c09d70174b1

3. Log into IBM Containers

pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS$ ice login
API endpoint: https://api.ng.bluemix.net

Email> pasapi@au1.ibm.com

Password>
Authenticating...
OK

Targeted org pasapi@au1.ibm.com

Select a space (or press enter to skip):
1. dev
2. apple
3. lemon
4. pas

Space> 1
Targeted space dev

API endpoint:   https://api.ng.bluemix.net (API version: 2.19.0)
User:           pasapi@au1.ibm.com
Org:            pasapi@au1.ibm.com
Space:          dev
Authentication with container cloud service at https://api-ice.ng.bluemix.net/v2.0/containers completed successfully
You can issue commands now to the container service

Proceeding to authenticate with the container cloud registry at registry-ice.ng.bluemix.net
Login Succeeded

4. Retrieve your current namespace

pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS$ ice namespace get
apples01

5. Tag the image to point to your private registry.

pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS/ibm-containers-simple-node-example$ ice --local tag -f simplenode:latest registry-ice.ng.bluemix.net/apples01/simplenode:latest
Target is local host. Invoking docker with the given arguments...

6. Push the image to your private registry.

pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS/ibm-containers-simple-node-example$ ice --local push registry-ice.ng.bluemix.net/apples01/simplenode:latest
Target is local host. Invoking docker with the given arguments...
The push refers to a repository [registry-ice.ng.bluemix.net/apples01/simplenode] (len: 1)
Sending image list
Pushing repository registry-ice.ng.bluemix.net/apples01/simplenode (1 tags)
Image 511136ea3c5a already pushed, skipping
Image a1a958a24818 already pushed, skipping
Image d0955f21bf24 already pushed, skipping
Image 9fec74352904 already pushed, skipping
Image a3d3e588211d already pushed, skipping
Image 19a35b496c0d already pushed, skipping
Image 1adb38c035f4 already pushed, skipping
Image f3c84ac3a053 already pushed, skipping
Image bf94729cc072 already pushed, skipping
Image cbc052ac72f1 already pushed, skipping
Image 12433edaed33 already pushed, skipping
Image c4a2c78444b7 already pushed, skipping
Image 300247e5330a already pushed, skipping
Image e9991fa102c2 already pushed, skipping
e06d64586fcb: Image successfully pushed
341de1dca2a2: Image successfully pushed
6a8303faa142: Image successfully pushed
92fcbb0123ac: Image successfully pushed
0c09d70174b1: Image successfully pushed
Pushing tag for rev [0c09d70174b1] on {https://registry-ice.ng.bluemix.net/v1/repositories/apples01/simplenode/tags/latest}

7. Start a new container in IBM Containers from the image you just pushed.

pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS/ibm-containers-simple-node-example$ ice run --name simplenode_1 -p 8080 apples01/simplenode:latest
2261936e-4324-4f28-b800-10099471a306

8.  Verify it's up and running

pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS/ibm-containers-simple-node-example$ ice ps

Container Id                         Name                   Group      Image                          Created      State    Private IP      Public IP       Ports

2261936e-4324-4f28-b800-10099471a306 simplenode_1                      apples01/simplenode:latest     Apr 10 23:13 Running  172.17.200.2                    [8080]

9. The following commands assign a public IP address to my container

pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS/ibm-containers-simple-node-example$ ice ip list
Number of addresses: 0
pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS/ibm-containers-simple-node-example$ ice ip request
Successfully obtained ip: "129.41.233.119"
pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS/ibm-containers-simple-node-example$ ice ip list
Number of addresses: 1

Ip Address

129.41.233.119

pas@Pass-MacBook-Pro:~/bluemix-apps/CONTAINERS/ibm-containers-simple-node-example$ ice ip bind 129.41.233.119 simplenode_1
Successfully bound ip

10. Access the container as shown below.

http://129.41.233.119:8080/



More Information

https://www.ng.bluemix.net/docs/#starters/index-gentopic3.html#containers

http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Collaborate 2015: WebCenter Discussions and Networking in Sunny Las Vegas

In less than a week, Fishbowl’s WebCenter experts will be heading to sunny Las Vegas for Collaborate 2015! We have a wide range of activities planned, and are looking forward to meeting and learning from other WebCenter users. If you’d like to view a full list of what Fishbowl will be participating in at Collaborate, download our Focus on Fishbowl guide. IOUG also has detailed information about Collaborate on their website.

Collaborate Image 1  Collaborate Image 2

Exhibit Information | Booth #948

Stop by Fishbowl’s booth for demos and discussions of Google Search for WebCenter, next-generation portals and intranets, image-enabled accounts payable solutions, and our newest product, ControlCenter, which provides an intuitive user interface along with workflow and review automation for controlled document management. We’ll be holding a special giveaway related to ControlCenter; stop by the booth for more details and to also register for an iPad drawing!

Presentation Information | Room Banyan F

Fishbowl will be holding three presentations at Collaborate, all in room Banyan F at Mandalay Bay. Be sure to attend to hear firsthand how our WebCenter team is working with customers to solve business problems.

Tuesday, April 14, 3:15-4:15 PM: Engaging Employees Through an Enterprise Portal: HealthPartners Case Study
Presented by Neamul Haque of HealthPartners and Tim Gruidl and Jerry Aber of Fishbowl Solutions

  • Issues HealthPartners had with previous portal sites
  • Benefits of deploying a content-centric, portal-focused framework
  • Improvement in end-user experience HealthPartners has seen with the new portal

Wednesday, April 15, 2:45-3:45 PM: The Doctors Company Creates Mobile-Ready Website Using Responsive and Adaptive Design
Presented by Paul Manno of The Doctors Company and Jimmy Haugen of Fishbowl Solutions

  • Importance of The Doctors’ website for educating customers and prospects
  • How responsive and adaptive design transformed user experience
  • Technologies leveraged to create a mobile-optimized site

Thursday, April 16, 8:30-9:30 AM: Using Oracle WebCenter Content for Document Compliancy in Food and Manufacturing
Presented by Kim Negaard and George Sokol of Fishbowl Solutions

  • Techniques for using revision control and automatic conversion
  • How to provide additional security and auditability around document approvals
  • How to increase efficiency and control over changes in documents

If you’d like to schedule a meeting with anyone on the Fishbowl team during Collaborate, feel free to contact us at cmsales@fishbowlsolutions.com. See you in Las Vegas!

The post Collaborate 2015: WebCenter Discussions and Networking in Sunny Las Vegas appeared first on Fishbowl Solutions' C4 Blog.

Categories: Fusion Middleware, Other

IBM Bluemix demo using IBM Watson Personality Insights service

Pas Apicella - Mon, 2015-03-30 04:31
The IBM Watson Personality Insights service uses linguistic analysis to extract cognitive and social characteristics from input text such as email, text messages, tweets, forum posts, and more. By deriving cognitive and social preferences, the service helps users to understand, connect to, and communicate with other people on a more personalized level.

1. Clone the GitHub repo as shown below.

pas@192-168-1-4:~/bluemix-apps/watson$ git clone https://github.com/watson-developer-cloud/personality-insights-nodejs.git
Cloning into 'personality-insights-nodejs'...
remote: Counting objects: 84, done.
remote: Total 84 (delta 0), reused 0 (delta 0), pack-reused 84
Unpacking objects: 100% (84/84), done.
Checking connectivity... done.

2. Create the service as shown below.

pas@192-168-1-4:~/bluemix-apps/watson/personality-insights-nodejs$ cf create-service personality_insights "IBM Watson Personality Insights Monthly Plan" personality-insights-service
Creating service personality-insights-service in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

3. Edit the manifest.yml to use a unique application name , I normally use {myname}-appname

---
declared-services:
  personality-insights-service:
    label: personality_insights
    plan: 'IBM Watson Personality Insights Monthly Plan'

applications:
- name: pas-personality-insights-nodejs
  command: node app.js
  path: .
  memory: 256M
  services:
  - personality-insights-service

4. Push the application as shown below.

pas@192-168-1-4:~/bluemix-apps/watson/personality-insights-nodejs$ cf push
Using manifest file /Users/pas/ibm/bluemix/apps/watson/personality-insights-nodejs/manifest.yml

Creating app pas-personality-insights-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Creating route pas-personality-insights-nodejs.mybluemix.net...
OK

Binding pas-personality-insights-nodejs.mybluemix.net to pas-personality-insights-nodejs...
OK

Uploading pas-personality-insights-nodejs...
Uploading app files from: /Users/pas/ibm/bluemix/apps/watson/personality-insights-nodejs
Uploading 188.5K, 30 files
Done uploading
OK
Binding service personality-insights-service to app pas-personality-insights-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Starting app pas-personality-insights-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Downloaded app package (192K)
-----> Node.js Buildpack Version: v1.14-20150309-1555
-----> Requested node range:  >=0.10
-----> Resolved node version: 0.10.36
-----> Installing IBM SDK for Node.js from cache
-----> Checking and configuring service extensions
-----> Installing dependencies
       errorhandler@1.3.5 node_modules/errorhandler
       ├── escape-html@1.0.1
       └── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
       body-parser@1.11.0 node_modules/body-parser
       ├── bytes@1.0.0
       ├── media-typer@0.3.0
       ├── raw-body@1.3.2
       ├── depd@1.0.0
       ├── qs@2.3.3
       ├── on-finished@2.2.0 (ee-first@1.1.0)
       ├── iconv-lite@0.4.6
       └── type-is@1.5.7 (mime-types@2.0.10)
       express@4.11.2 node_modules/express
       ├── escape-html@1.0.1
       ├── merge-descriptors@0.0.2
       ├── utils-merge@1.0.0
       ├── methods@1.1.1
       ├── fresh@0.2.4
       ├── cookie@0.1.2
       ├── range-parser@1.0.2
       ├── cookie-signature@1.0.5
       ├── media-typer@0.3.0
       ├── finalhandler@0.3.3
       ├── vary@1.0.0
       ├── parseurl@1.3.0
       ├── serve-static@1.8.1
       ├── content-disposition@0.5.0
       ├── path-to-regexp@0.1.3
       ├── depd@1.0.0
       ├── qs@2.3.3
       ├── on-finished@2.2.0 (ee-first@1.1.0)
       ├── debug@2.1.3 (ms@0.7.0)
       ├── etag@1.5.1 (crc@3.2.1)
       ├── proxy-addr@1.0.7 (forwarded@0.1.0, ipaddr.js@0.1.9)
       ├── send@0.11.1 (destroy@1.0.3, ms@0.7.0, mime@1.2.11)
       ├── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
       └── type-is@1.5.7 (mime-types@2.0.10)
       jade@1.9.2 node_modules/jade
       ├── character-parser@1.2.1
       ├── void-elements@2.0.1
       ├── commander@2.6.0
       ├── mkdirp@0.5.0 (minimist@0.0.8)
       ├── with@4.0.2 (acorn-globals@1.0.3, acorn@1.0.1)
       ├── constantinople@3.0.1 (acorn-globals@1.0.3)
       └── transformers@2.1.0 (promise@2.0.0, css@1.0.8, uglify-js@2.2.5)
       watson-developer-cloud@0.9.8 node_modules/watson-developer-cloud
       ├── object.pick@1.1.1
       ├── cookie@0.1.2
       ├── extend@2.0.0
       ├── isstream@0.1.2
       ├── async@0.9.0
       ├── string-template@0.2.0 (js-string-escape@1.0.0)
       ├── object.omit@0.2.1 (isobject@0.2.0, for-own@0.1.3)
       └── request@2.53.0 (caseless@0.9.0, json-stringify-safe@5.0.0, aws-sign2@0.5.0, forever-agent@0.5.2, form-data@0.2.0, stringstream@0.0.4, oauth-sign@0.6.0, tunnel-agent@0.4.0, qs@2.3.3, node-uuid@1.4.3, mime-types@2.0.10, combined-stream@0.0.7, http-signature@0.10.1, tough-cookie@0.12.1, bl@0.9.4, hawk@2.3.1)
-----> Caching node_modules directory for future builds
-----> Cleaning up node-gyp and npm artifacts
-----> No Procfile found; Adding npm start to new Procfile
-----> Building runtime environment
-----> Checking and configuring service extensions
-----> Installing App Management
-----> Node.js Buildpack is done creating the droplet

-----> Uploading droplet (12M)

0 of 1 instances running, 1 starting
1 of 1 instances running

App started


OK

App pas-personality-insights-nodejs was started using this command `node app.js`

Showing health and status for app pas-personality-insights-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: pas-personality-insights-nodejs.mybluemix.net
last uploaded: Mon Mar 30 10:18:37 +0000 2015

     state     since                    cpu    memory   disk     details
#0   running   2015-03-30 09:20:06 PM   0.0%   0 of 0   0 of 0

5. Access Application


This demo is based off the link below.

https://github.com/watson-developer-cloud/personality-insights-nodejs

More information as follows

http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/personality-insights/

http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

WebCenter Portal & SPA (Single Page Application) – Enhancing ADF UI Design and UX Functionality

First of all, you may be wondering: what is SPA and how can it improve Oracle WebCenter Portal?
It’s the future, trust me, especially when it comes to providing the best possible UX and flexible UI to your users and enhancing the power of ADF Taskflows with a radical UI overhaul. ADF is great for creating rich applications fast, but to be honest, it is limited in its capability to provide that rich flexible HTML5 UX  through the ADF UI components and to create that truly interactive design that we all seek in today’s modern web based apps and portals. If we are honest, the developer (or more importantly, the designers) are constrained with the out-of-the-box ADF components/taskflows and their lack of design flexibility, unless they want to create their own and extend the render kit capabilities (but extending the render kit will be for another post – today lets cover SPA with Portal).

SPA fits in perfectly – overhaul the ADF UI using today’s modern techniques and design agency with the skills to build responsive components using the latest frameworks and libraries, such as knockout, backbone, requirejs, socket.io with reactive templating using mustache, handlebars to compliment ADF and WebCenters services via its REST API.

But before taking the next step and thinking SPA is right for you, read these warnings!

  • The taskflow interface is developed using the latest framework and libraries – not all partners and web design agencies are forward thinking and may not be able to develop and achieve SPA components for WebCenter Portal.
  • The cost can be greater, as the interface is usually designed from the ground up and requires browser and device testing. But if it’s done well, it will outmatch anything that the ADF UI layer can provide your users.
  • Experience goes a long way, especially with matching your design agency with ADF-experienced developers to provide responsive web services and inline datasets.

So what is SPA?

A single-page application (SPA) is a web application or website that fits on a single web page with the goal of providing a more fluid user experience. In an SPA, either all necessary code – HTML, JavaScript and CSS – is retrieved with a single page load, or the appropriate resources are dynamically loaded and added to the page (similar to ADFs PPR) as and when necessary, reducing the page load and speeding up page load times.

With our use of SPA within portal, the SPA is made modular and wrapped within a taskflow container, providing the rich capability to have multiple components that can be easily dropped into a page while providing rich interaction between components that are context aware by simply adding them from the resource catalog from within the WebCenter Composer view.

Workspace manager

Here is an example Photoshop design that we can easily convert into a pixel perfect functioning SPA taskflows we have developed that enables logged in users to manage their own list of Application and Spaces. All server side interaction is handled via ADFm (model) layer, which enables the ADF life cycle to be aware of REST calls and prevent memory leaks or other possible session issues. While the UI layer is all custom with reactive dynamic templating that is far superior and faster than the current ADF, PPR calls, as all the interaction and updating of the template is handled client side. Another great thing is that this template can easily transform and support modern responsive design techniques and can be consumed by mobile devices, and could also be deployed to other app environments like Liferay, SharePoint, and WebCenter Content, as the UI layer does not rely on ADF calls and service requests can be proxied or CORS enabled if the calls are handled by AJAX and are not WebSocket requests.

Click here for hi-resolution

Here you can see another example of a SPA Taskflow in action displaying the JIVE Forums (above), compared against the out of the box ADF Forum Taskflow (below).

Conclusion

If you are looking to create applications fast that are functional, use the out of the box taskflows or develop your own ADF components entirely in ADF with your development team and customize the ADF skin to improve on the ADF look.

However, if you are looking to take the experience to the next level and want to invest more to create visually interactive modern and rich dynamic experiences to your users, bring in a good UX/UI team that can help transform your interface layer while enabling components to have the potential to be deployed across multiple platforms while maintaining the power of the ADF back end.

Side Note

I’m currently co-authoring a white paper on modular SPA for ADF taskflows providing examples and different development techniques that can be used to enrich the UI. I hope to get this out to you and on OTN in the next 6 months so keep a look out for it.

The post WebCenter Portal & SPA (Single Page Application) – Enhancing ADF UI Design and UX Functionality appeared first on Fishbowl Solutions' C4 Blog.

Categories: Fusion Middleware, Other

IBM Bluemix demo using IBM Watson Tradeoff Analytics Service

Pas Apicella - Thu, 2015-03-26 03:57
The IBM Watson Tradeoff Analytics service helps you make better choices under multiple conflicting goals. The service combines smart visualization and recommendations for tradeoff exploration.

The following demo application shows how to use the IBM Watson Tradeoff Analytics Service from IBM Bluemix. This is the demo application for this service.

1. Clone the GitHub project as shown below.

pas@pass-mbp:~/bluemix-apps/watson$ git clone https://github.com/watson-developer-cloud/tradeoff-analytics-nodejs.git
Cloning into 'tradeoff-analytics-nodejs'...
remote: Counting objects: 112, done.
remote: Total 112 (delta 0), reused 0 (delta 0), pack-reused 112
Receiving objects: 100% (112/112), 163.05 KiB | 11.00 KiB/s, done.
Resolving deltas: 100% (38/38), done.
Checking connectivity... done.

2. Create the Tradeoff Analytics service as shown below.

pas@pass-mbp:~/bluemix-apps/watson$ cf create-service tradeoff_analytics free tradeoff-analytics-service
Creating service tradeoff-analytics-service in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

3. Create a mainifest.yml as shown below, ensuring you edit the application name to be a unique name

declared-services:
  tradeoff-analytics-service:
    label: tradeoff_analytics
    plan: free
applications:
- services:
  - tradeoff-analytics-service
  name: pas-tradeoff-analytics-nodejs
  command: node app.js
  path: .
  memory: 128M

4. Push the application into Bluemix as follows

pas@pass-mbp:~/bluemix-apps/watson/tradeoff-analytics-nodejs$ cf push
Using manifest file /Users/pas/ibm/bluemix/apps/watson/tradeoff-analytics-nodejs/manifest.yml

Creating app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Creating route pas-tradeoff-analytics-nodejs.mybluemix.net...
OK

Binding pas-tradeoff-analytics-nodejs.mybluemix.net to pas-tradeoff-analytics-nodejs...
OK

Uploading pas-tradeoff-analytics-nodejs...
Uploading app files from: /Users/pas/ibm/bluemix/apps/watson/tradeoff-analytics-nodejs
Uploading 204K, 45 files
Done uploading
OK
Binding service tradeoff-analytics-service to app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Starting app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Downloaded app package (156K)
-----> Node.js Buildpack Version: v1.14-20150309-1555
       TIP: Avoid using semver ranges starting with '>' in engines.node
-----> Requested node range:  >=0.10
-----> Resolved node version: 0.10.36
-----> Installing IBM SDK for Node.js from cache
-----> Checking and configuring service extensions
-----> Installing dependencies
       body-parser@1.10.2 node_modules/body-parser
       ├── media-typer@0.3.0
       ├── bytes@1.0.0
       ├── raw-body@1.3.2
       ├── depd@1.0.0
       ├── qs@2.3.3
       ├── on-finished@2.2.0 (ee-first@1.1.0)
       ├── iconv-lite@0.4.6
       └── type-is@1.5.7 (mime-types@2.0.10)
       express@4.12.3 node_modules/express
       ├── merge-descriptors@1.0.0
       ├── escape-html@1.0.1
       ├── utils-merge@1.0.0
       ├── cookie-signature@1.0.6
       ├── methods@1.1.1
       ├── fresh@0.2.4
       ├── cookie@0.1.2
       ├── range-parser@1.0.2
       ├── finalhandler@0.3.4
       ├── content-type@1.0.1
       ├── vary@1.0.0
       ├── parseurl@1.3.0
       ├── serve-static@1.9.2
       ├── content-disposition@0.5.0
       ├── path-to-regexp@0.1.3
       ├── depd@1.0.0
       ├── on-finished@2.2.0 (ee-first@1.1.0)
       ├── qs@2.4.1
       ├── debug@2.1.3 (ms@0.7.0)
       ├── etag@1.5.1 (crc@3.2.1)
       ├── send@0.12.2 (destroy@1.0.3, ms@0.7.0, mime@1.3.4)
       ├── proxy-addr@1.0.7 (forwarded@0.1.0, ipaddr.js@0.1.9)
       ├── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
       └── type-is@1.6.1 (media-typer@0.3.0, mime-types@2.0.10)
       errorhandler@1.3.5 node_modules/errorhandler
       ├── escape-html@1.0.1
       └── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
       request@2.53.0 node_modules/request
       ├── caseless@0.9.0
       ├── json-stringify-safe@5.0.0
       ├── forever-agent@0.5.2
       ├── aws-sign2@0.5.0
       ├── stringstream@0.0.4
       ├── oauth-sign@0.6.0
       ├── tunnel-agent@0.4.0
       ├── isstream@0.1.2
       ├── node-uuid@1.4.3
       ├── combined-stream@0.0.7 (delayed-stream@0.0.5)
       ├── qs@2.3.3
       ├── form-data@0.2.0 (async@0.9.0)
       ├── mime-types@2.0.10 (mime-db@1.8.0)
       ├── http-signature@0.10.1 (assert-plus@0.1.5, asn1@0.1.11, ctype@0.5.3)
       ├── bl@0.9.4 (readable-stream@1.0.33)
       ├── tough-cookie@0.12.1 (punycode@1.3.2)
       └── hawk@2.3.1 (cryptiles@2.0.4, sntp@1.0.9, boom@2.6.1, hoek@2.12.0)
       jade@1.9.2 node_modules/jade
       ├── character-parser@1.2.1
       ├── void-elements@2.0.1
       ├── commander@2.6.0
       ├── mkdirp@0.5.0 (minimist@0.0.8)
       ├── with@4.0.1 (acorn-globals@1.0.2, acorn@0.11.0)
       ├── transformers@2.1.0 (promise@2.0.0, css@1.0.8, uglify-js@2.2.5)
       └── constantinople@3.0.1 (acorn-globals@1.0.2)
       watson-developer-cloud@0.9.6 node_modules/watson-developer-cloud
       ├── object.pick@1.1.1
       ├── cookie@0.1.2
       ├── extend@2.0.0
       ├── isstream@0.1.2
       ├── async@0.9.0
       ├── string-template@0.2.0 (js-string-escape@1.0.0)
       └── object.omit@0.2.1 (isobject@0.2.0, for-own@0.1.3)
-----> Caching node_modules directory for future builds
-----> Cleaning up node-gyp and npm artifacts
-----> No Procfile found; Adding npm start to new Procfile
-----> Building runtime environment
-----> Checking and configuring service extensions
-----> Installing App Management
-----> Node.js Buildpack is done creating the droplet

-----> Uploading droplet (14M)

0 of 1 instances running, 1 starting
1 of 1 instances running

App started


OK

App pas-tradeoff-analytics-nodejs was started using this command `node app.js`

Showing health and status for app pas-tradeoff-analytics-nodejs in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

requested state: started
instances: 1/1
usage: 128M x 1 instances
urls: pas-tradeoff-analytics-nodejs.mybluemix.net
last uploaded: Thu Mar 26 09:44:55 +0000 2015

     state     since                    cpu    memory          disk          details
#0   running   2015-03-26 08:45:51 PM   0.0%   43.5M of 128M   50.3M of 1G

5. Access the application


6. Click on the "Analyze Sample Data"


The demo can be found on the GutHub link below.

https://github.com/watson-developer-cloud/tradeoff-analytics-nodejshttp://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Hackathon Provides Opportunity for Collaboration and Innovation

Fishbowl team members competed in our third annual Hackathon over the weekend. Our consultants split up into four groups to create an innovative solution, and were given just over 24 hours to complete the task. The goal was to create usable software that could be used in the future when working with clients; some of our most creative products and services originally derived from Hackathon events.

13689_10152683472083053_3545144700959488753_n  10410948_10152683472493053_2066307430651186573_n

10592750_10152683472058053_6810123916371611080_n  11043146_10152683472098053_5907236575559895437_n

 

Here’s a summary of what the teams came up with this year:

Team 1: Integrated Fishbowl’s Control Center with Oracle WebCenter Portal

Team 2: Integrated the Google Search Appliance with Oracle’s Document Cloud Service

Team 3: Worked to connect WebCenter Portal with Oracle’s new Document Cloud Service

Team 4: Got Fishbowl’s ControlCenter to run in the cloud with Google Compute Engine

At the end of the Hackathon, all participants voted on the best solution. The winning team was #2 (GSA-Doc Cloud Service integration), made up of Kim Negaard, Andy Weaver, and Mike Hill. Although there could only be one winner, overall consensus was that each team came up with something extremely useful that could help solve common problems we’ve run into while working with WebCenter and the GSA. If you’re interested in learning more about any of the team’s programs, feel free to contact us at info@fishbowlsolutions.com.

The post Hackathon Provides Opportunity for Collaboration and Innovation appeared first on Fishbowl Solutions' C4 Blog.

Categories: Fusion Middleware, Other

Adding MySQL driver to Spring Boot CLI Groovy Demo

Pas Apicella - Tue, 2015-03-10 15:18
I previously showed how you can use the Spring Boot CLI to create a simple Restful Application saying Hello World as shown in the link below using Groovy.

http://theblasfrompas.blogspot.com.au/2015/02/spring-boot-hello-world-from-command.html

If you wanted to extend that demo to include additional dependencies JAR file such as MySQL driver jar file we would do the following

1. You can add extensions to the CLI using the install command as shown below to add MySQL driver. This is installed in the LIB folder of the Spring Boot CLI location directory

> spring install mysql:mysql-connector-java:5.1.34

2. Package the application into a JAR which now includes the MySQL driver JAR file to enable you to connect to a MySQL instance from your application. You will need to write the code to do that , BUT now the JAR file is packaged in the JAR created to enable you to do that.

> spring jar -cp /usr/local/Cellar/springboot/1.2.1.RELEASE/lib/mysql-connector-java-5.1.34.jar hello.jar hello.groovy

Note: If you find that you reach the limit of the CLI tool, you will probably want to look at converting your application to full Gradle or Maven built “groovy project”

More Information

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#cli-using-the-cli


http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Reading VCAP_SERVICES Postgresql service credentials within Bluemix

Pas Apicella - Thu, 2015-03-05 17:03
The following shows how you can easily read the VCAP_SERVICES postgresql credentials within your Java Code using the maven repo. This assumes your using the ElephantSQL Postgresql service. A single connection won't be ideal but for demo purposes might just be all you need.

1. First add the maven dependency as follows. This will add WebSphere Application Server Liberty Profile to your project
  
<dependency>
<groupId>com.ibm.tools.target</groupId>
<artifactId>was-liberty</artifactId>
<version>LATEST</version>
<type>pom</type>
<scope>provided</scope>
</dependency>

2. In your code , something as follows gets you the Connection details to make a JDBC connection withinyou java code.
  
private static Connection getConnection() throws Exception
{
Map<String, String> env = System.getenv();

if (env.containsKey("VCAP_SERVICES")) {

JSONObject vcap = (JSONObject) JSON.parse(env.get("VCAP_SERVICES"));
JSONObject service = null;

// We don't know exactly what the service is called,
// but it will contain "elephantsql"
for (Object key : vcap.keySet()) {
String keyStr = (String) key;
if (keyStr.toLowerCase().contains("elephantsql")) {
service = (JSONObject) ((JSONArray) vcap.get(keyStr)).get(0);
break;
}
}

if (service != null) {
JSONObject creds = (JSONObject) service.get("credentials");
URI uri = URI.create((String) creds.get("uri"));
String url = "jdbc:postgresql://" + uri.getHost() + ":" +
uri.getPort() +
uri.getPath();
String username = uri.getUserInfo().split(":")[0];
String password = uri.getUserInfo().split(":")[1];
return DriverManager.getConnection(url, username, password);
}
}

throw new Exception("No ElephantSQL service URL found. Make sure you " +
"have bound the correct services to your app.");
}

http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Spring Boot - Hello World from the command line to IBM Bluemix in 1 minute

Pas Apicella - Tue, 2015-02-24 04:23
Here is how simple Spring Boot makes saying Hello World web based application with no IDE and no no need to package it up. Nearly as easy as NodeJS

1. Firstly install the Spring Boot CLI. From mac use brew as follows

pas@192-168-1-4:~$ brew tap pivotal/tap
Cloning into '/usr/local/Library/Taps/pivotal/homebrew-tap'...
remote: Counting objects: 366, done.
remote: Total 366 (delta 0), reused 0 (delta 0), pack-reused 366
Receiving objects: 100% (366/366), 60.09 KiB | 84.00 KiB/s, done.
Resolving deltas: 100% (195/195), done.
Checking connectivity... done.
Tapped 8 formulae
pas@192-168-1-4:~$ brew install springboot
==> Installing springboot from pivotal/homebrew-tap
==> Downloading https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/1.2.1.RELEASE/spring-boot-cli-1.2.1.RELEASE-bin.tar.gz
######################################################################## 100.0%
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
Categories: Fusion Middleware

IBM Bluemix - Deploy your app the way you want

Pas Apicella - Sat, 2015-02-21 03:18
We recently upgraded our capability in the IBM public cloud. Before this new version you could build, test, and deploy apps on Bluemix by using open source Cloud Foundry technology. But now you have more choice bringing two new options as follows

1. IBM Containers Beta

Use IBM Containers to run apps and services in a hosted cloud environment. Port your existing applications to IBM Bluemix and make them publicly accessible and composable. Use a private registry to upload, store, and retrieve your trusted images.

2. Virtual Machines Beta

Get total control over your app's infrastructure by deploying virtual machines. Manage them from the Bluemix dashboard, or from anywhere with OpenStack APIs.


Try it out as follows

https://console.ng.bluemix.net/http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Creating an IBM Bluemix Server Connection from Eclipse

Pas Apicella - Tue, 2015-02-17 04:52
The post below shows how to create an IBM Bluemix server connection into the USA public hosted PaaS using Eclipse. It assumes you already have an existing account setup with http://bluemix.net/

1. Ensure you have added "IBM Eclipse Tools for Bluemix" as shown in the marketplace installed items.


More info can be found here.

http://marketplace.eclipse.org/content/ibm-eclipse-tools-bluemix

2. In the "Servers" tab click the link to create a new server and click on IBM Bluemix as shown below.


3. Click Next
4. Enter your account details, you can target the public cloud depending on the location, the default is USA based PUBLIC cloud instance


5. Click Next
6. Select the space to target for deployed applications


7. Click Finish

By clicking on the connection you can view connection attributes, plus deployed application, services, routes, memory settings plus more.



The following UTube video shows this in more detail.

https://www.youtube.com/watch?v=GpkXgklzOlk
IBM Eclipse Tools for Bluemix IBM Eclipse Tools for Bluemix
http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Spring Boot JPA Thymeleaf application deployed to IBM Bluemix

Pas Apicella - Mon, 2015-02-16 03:27
IBM Bluemix is an open-standards, cloud-based platform for building, managing, and running apps of all types, such as web, mobile, big data, and smart devices. Capabilities include Java, mobile back-end development, and application monitoring, as well as features from ecosystem partners and open source—all provided as-a-service in the cloud.

The example below shows how to deploy an spring boot JPA application to IBM Bluemix. The example is based on the code below.

https://github.com/papicella/BluemixSpringBootJPA

1. Target the IBM Bluemix

cf api https://api.ng.bluemix.net

2. Log in as follows

cf login -u pasapi@au1.ibm.com -p ******-o pasapi@au1.ibm.com -s dev

3. Create a MYSQL service as shown below.

pas.apicella@IBM-XD082415H ~/bluemix-apps/spring-data-jpa-thymeleaf/mysql
$ cf create-service mysql 100 dev-mysql
Creating service dev-mysql in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

4.  At this point lets run the application using an embedded tomcat server as shown below.

pas.apicella@IBM-XD082415H ~/bluemix-apps/spring-data-jpa-thymeleaf/mysql
$ java -jar BluemixSpringBootJPA-0.0.1-SNAPSHOT.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.2.0.RELEASE)

2015-02-16 20:12:18.289  INFO 15824 --- [           main] p.cloud.webapp.ApplesCfDemoApplication   : Starting ApplesCfDemoApplication on IBM-XD082415H with PID 15824 (C:\ibm\bluemix\apps\spring-data-jpa-thymeleaf\mysql\BluemixSpringBootJPA-0.0.1-SNAPSHOT.jar started by pas.apicella in C:\ibm\bluemix\apps\spring-data-jpa-thymeleaf\mysql)
2015-02-16 20:12:18.356  INFO 15824 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6b51dbf6: startup date [Mon Feb 16 20:12:18 AEDT 2015]; root of context hierarchy
2015-02-16 20:12:20.679  INFO 15824 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration' of type [class org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-02-16 20:12:20.779  INFO 15824 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$15fe846f] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-02-16 20:12:20.831  INFO 15824 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'transactionAttributeSource' of type [class org.springframework.transaction.annotation.AnnotationTransactionAttributeSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-02-16 20:12:20.853  INFO 15824 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'transactionInterceptor' of type [class org.springframework.transaction.interceptor.TransactionInterceptor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
.....

class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-02-16 20:12:27.710  INFO 15824 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2015-02-16 20:12:28.385  INFO 15824 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2015-02-16 20:12:28.510  INFO 15824 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080/http
2015-02-16 20:12:28.513  INFO 15824 --- [           main] p.cloud.webapp.ApplesCfDemoApplication   : Started ApplesCfDemoApplication in 10.626 seconds (JVM running for 11.481)

5. Now using a manifest.yml as follows deploy the application to bluemix as shown below.

manifest.yml

applications:
- name: pas-mj-albums
  memory: 512M
  instances: 1
  host: pas-albums
  domain: mybluemix.net
  path: ./BluemixSpringBootJPA-0.0.1-SNAPSHOT.jar
  buildpack: https://github.com/cloudfoundry/java-buildpack.git
  services:
    - dev-mysql

Deployment output

pas.apicella@IBM-XD082415H ~/bluemix-apps/spring-data-jpa-thymeleaf/mysql
$ cf push -f manifest.yml
Using manifest file manifest.yml

Creating app pas-mj-albums in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Creating route pas-mj-albums.mybluemix.net...
OK

Binding pas-mj-albums.mybluemix.net to pas-mj-albums...
OK

Uploading pas-mj-albums...
Uploading app files from: BluemixSpringBootJPA-0.0.1-SNAPSHOT.jar
Uploading 837.2K, 135 files
Done uploading
OK
Binding service dev-mysql to app pas-mj-albums in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

Starting app pas-mj-albums in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Java Buildpack Version: 303bda3 | https://github.com/cloudfoundry/java-buildpack.git#303bda3
-----> Uploading droplet (64M)

0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
1 of 1 instances running

App started


OK

App pas-mj-albums was started using this command `SERVER_PORT=$PORT $PWD/.java-buildpack/open_jdk_jre/bin/java -cp $PWD/.:$PWD/.java-buildpack/spring_auto_reconfiguration/spring_auto_reconfiguration-1.7.0_RELEASE.jar -Djava.io.tmpdir=$TMPDIR -XX:OnOutOfMemoryError=$PWD/.java-buildpack/open_jdk_jre/bin/killjava.sh -Xmx382293K -Xms382293K -XX:MaxMetaspaceSize=64M -XX:MetaspaceSize=64M -Xss995K org.springframework.boot.loader.JarLauncher`

Showing health and status for app pas-mj-albums in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK

requested state: started
instances: ?/1
usage: 512M x 1 instances
urls: pas-mj-albums.mybluemix.net
last uploaded: Mon Feb 16 09:18:28 +0000 2015

     state     since                    cpu    memory           disk
#0   running   2015-02-16 08:20:04 PM   0.0%   393.4M of 512M   129.3M of 1G

6. Once deployed the Bluemix Console page shows it deployed as follows


7. Finally invoking the application using the unique route as follows

http://pas-mj-albums.mybluemix.net/albums





More Information

https://www.ng.bluemix.net/docs/#

http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Making DevOps Business Driven - a service view

Steve Jones - Wed, 2015-01-28 08:59
I've been doing a bit recently around DevOps and what I've been seeing is that companies that having been scaling DevOps tend to run into a problem: exactly what is a good boundary for a DevOps team? Now I've talked before about how Microservices are just SOA with a new logo, well there is an interesting piece about DevOps as well, its not actually a brand new thing.  Its an evolution and
Categories: Fusion Middleware

Big Data and the importance of Meta-Data

Steve Jones - Tue, 2015-01-20 09:00
Data isn't really respected in businesses, you can see that because unlike other corporate assets there is rarely a decent corporate catalog that shows what exists and who has it.  In the vast majority of companies there is more effort and automation put into tracking laptops than there is into cataloging and curating information. Historically we've sort of been able to get away with this
Categories: Fusion Middleware