Skip navigation.

Fusion Middleware

Invoking the Billing API for Bluemix Public Organizations

Pas Apicella - Tue, 2016-02-09 17:09
The ability to view usage data from a billing perspective on IBM Bluemix Public is available as a REST based API. To use it follow the steps below.

In order to use the API you have to have the Billing Manager Role or be the Account Owner of the organization as shown below.



Steps

1. Log into the PUBLIC Bluemix region as shown below

pasapicella@Pas-MacBook-Pro:~$ cf login -u pasapi@au1.ibm.com -p ***** -o pasapi@au1.ibm.com -s dev
API endpoint: https://api.ng.bluemix.net
Authenticating...
OK

Targeted org pasapi@au1.ibm.com

Targeted space dev

API endpoint:   https://api.ng.bluemix.net (API version: 2.40.0)
User:           pasapi@au1.ibm.com
Org:            pasapi@au1.ibm.com
Space:          dev

2. List all your Organizations as shown below

pasapicella@Pas-MacBook-Pro:~$ cf orgs
Getting orgs as pasapi@au1.ibm.com...

name
iwinoto@au1.ibm.com
vralh@au1.ibm.com
MobileQualityAssurance
arthur.proestakis@au1.ibm.com
abentley@au1.ibm.com
shawmale@au1.ibm.com
ANZ-Innovation-Lab
pasapi@au1.ibm.com
NAB Experimentation
Telstra-CustomerA

3. Determine the GUID of the Org you wnat to get metering usage from

pasapicella@Pas-MacBook-Pro:~$ cf org pasapi@au1.ibm.com --guid
e270a605-978e-45fc-9507-00a50dec2469

4. Determine the region name for the PUBLIC instance your connected to as follows

pasapicella@Pas-MacBook-Pro:~$ curl http://mccp.ng.bluemix.net/info
{
  "name": "Bluemix",
  "build": "221004",
  "support": "http://ibm.com",
  "version": 2,
  "description": "IBM Bluemix",
  "authorization_endpoint": "https://mccp.ng.bluemix.net/login",
  "token_endpoint": "https://mccp.ng.bluemix.net/uaa",
  "min_cli_version": null,
  "min_recommended_cli_version": null,
  "api_version": "2.40.0",
  "app_ssh_endpoint": "ssh.ng.bluemix.net:2222",
  "app_ssh_host_key_fingerprint": null,
  "app_ssh_oauth_client": "ssh-proxy",
  "routing_endpoint": "https://api.ng.bluemix.net/routing",
  "logging_endpoint": "wss://loggregator.ng.bluemix.net:443",
  "doppler_logging_endpoint": "wss://doppler.ng.bluemix.net:4443",
  "console_endpoint": "https://mccp.ng.bluemix.net/console",
  "region": "us-south"
}

5. Determine the OAUTH token for your connected session as follows

pasapicella@Pas-MacBook-Pro:~$ cf oauth-token
Getting OAuth token...
OK

bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI0ODAzOWM1My0yODZhLTQ5Y2YtYWIzYi0yNGVhZTY
4ZmFmYzIiLCJzdWIiOiJiNmMwMjBiNC1lMTFhLTQ2MzAtYTZhMi0zZjIwZmNlYzdmOTAiL
CJzY29wZSI6WyJjbG91ZF9jb250cm9sbGVyLnJlYWQiLCJwYXNzd29yZC53cml0ZSIsImNsb3
VkX2NvbnRyb2xsZXIud3JpdGUiLCJvcGVuaWQiXSwiY2xpZW50X2lkIjoiY2YiLCJjaWQiOiJj
ZiIsImF6cCI6ImNmIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6ImI2YzAyMGI0L
WUxMWEtNDYzMC1hNmEyLTNmMjBmY2VjN2Y5MCIsIm9yaWdpbiI6InVhYSIsInVzZXJf
bmFtZSI6InBhc2FwaUBhdTEuaWJtLmNvbSIsImVtYWlsIjoicGFzYXBpQGF1MS5pYm0uY29t
IiwicmV2X3NpZyI6IjVjOGMyODQ4IiwiaWF0IjoxNDU1MDU3NzQxLCJleHAiOjE0NTUxMD
A5NDEsImlzcyI6Imh0dHBzOi8vdWFhLm5nLmJsdWVtaXgubmV0L29hdXRoL3Rva2VuIiwiem
lkIjoidWFhIiwiYXVkIjpbImNsb3VkX2NvbnRyb2xsZXIiLCJwYXNzd29yZCIsImNmIiwib3Blbm
lkIl19.EUEIXZ-XgxQbvTQnSgrToODHbNmKvhx0PtAp9CaiPTk

At this point we are ready to invoke the Billing/Metering API. The format is as follows

Bluemix Endpoint:

https://rated-usage.ng.bluemix.net/v2/metering/organizations/us-south:ORG_ID/YYYY-MM

  1. ORG_ID : Account GUID
  2. YYYY-MM: Year and month for which usage is required
Format as follows:

curl -v -X GET -H "Authorization: bearer {oauth-token}" "https://rated-usage.ng.bluemix.net/v2/metering/organizations/us-south:e270a605-978e-45fc-9507-00a50dec2469/usage/2016-02" | python -m json.tool
 
6. To invoke using curl we should do it as follows

Output:

pasapicella@Pas-MacBook-Pro:~$ curl -v -X GET -H "Authorization: bearer {oauth-token}" "https://rated-usage.ng.bluemix.net/v2/metering/organizations/us-south:e270a605-978e-45fc-9507-00a50dec2469/usage/2016-02" | python -m json.tool
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 75.126.70.44...
* Connected to rated-usage.ng.bluemix.net (75.126.70.44) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate: *.ng.bluemix.net
* Server certificate: DigiCert SHA2 Secure Server CA
* Server certificate: DigiCert Global Root CA
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0> GET /v2/metering/organizations/us-south:e270a605-978e-45fc-9507-00a50dec2469/usage/2016-02 HTTP/1.1
> Host: rated-usage.ng.bluemix.net
> User-Agent: curl/7.43.0
> Accept: */*
> Authorization: bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI0ODAzOWM1My0yODZhLTQ5Y2YtYWIzYi0yNGVhZTY4ZmFmYzIiLCJzdWIiOiJiNmMwMjBiNC1lMTFhLTQ2MzAtYTZhMi0zZjIwZmNlYzdmOTAiLCJzY29wZSI6WyJjbG91ZF9jb250cm9sbGVyLnJlYWQiLCJwYXNzd29yZC53cml0ZSIsImNsb3VkX2NvbnRyb2xsZXIud3JpdGUiLCJvcGVuaWQiXSwiY2xpZW50X2lkIjoiY2YiLCJjaWQiOiJjZiIsImF6cCI6ImNmIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6ImI2YzAyMGI0LWUxMWEtNDYzMC1hNmEyLTNmMjBmY2VjN2Y5MCIsIm9yaWdpbiI6InVhYSIsInVzZXJfbmFtZSI6InBhc2FwaUBhdTEuaWJtLmNvbSIsImVtYWlsIjoicGFzYXBpQGF1MS5pYm0uY29tIiwicmV2X3NpZyI6IjVjOGMyODQ4IiwiaWF0IjoxNDU1MDU3NzQxLCJleHAiOjE0NTUxMDA5NDEsImlzcyI6Imh0dHBzOi8vdWFhLm5nLmJsdWVtaXgubmV0L29hdXRoL3Rva2VuIiwiemlkIjoidWFhIiwiYXVkIjpbImNsb3VkX2NvbnRyb2xsZXIiLCJwYXNzd29yZCIsImNmIiwib3BlbmlkIl19.EUEIXZ-XgxQbvTQnSgrToODHbNmKvhx0PtAp9CaiPTk
>
  0     0    0     0    0     0      0      0 --:--:--  0:00:04 --:--:--     0< HTTP/1.1 200 OK
< X-Backside-Transport: OK OK
< Connection: Keep-Alive
< Transfer-Encoding: chunked
< Content-Type: application/json; charset=utf-8
< Date: Tue, 09 Feb 2016 22:54:44 GMT
< Etag: W/"3bcc-JgmFioUYI4v46tUXnGY1SQ"
< Vary: Accept-Encoding
< X-Cf-Requestid: 7b5cea8c-1a24-4114-44b2-a45e5d6e6f40
< X-Heap-Used: 136304240
< X-Instance-Id: 657c5e04638a49788a1053e7bb4e22ff
< X-Instance-Index: 5
< X-Node-Version: v0.10.41
< X-Powered-By: Express
< X-Process-Id: 93
< X-Response-Time: 3374.537ms
< X-Uptime: 16055
< X-Client-IP: 124.180.37.173
< X-Global-Transaction-ID: 750960253
<
{ [4055 bytes data]
100 15308    0 15308    0     0   3019      0 --:--:--  0:00:05 --:--:--  3967
* Connection #0 to host rated-usage.ng.bluemix.net left intact
{
    "organizations": [
        {
            "billable_usage": {
                "spaces": []
            },
            "currency_code": "AUD",
            "id": "e270a605-978e-45fc-9507-00a50dec2469",
            "name": "pasapi@au1.ibm.com",
            "non_billable_usage": {
                "spaces": [
                    {
                        "applications": [
                            {
                                "id": "121ccef0-2417-49c4-9f8f-47958b6d819d",
                                "name": "pas-bmspringboot-demo",
                                "usage": [
                                    {
                                        "buildpack": "0154f971-ae72-4882-9695-bda6e31310b7",
                                        "cost": 8.531996000805556,
                                        "quantity": 107.45586902777778,
                                        "runtime": {
                                            "id": "0154f971-ae72-4882-9695-bda6e31310b7",
                                            "name": "liberty-for-java_v2_1-20151006-0912"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "2d7dfb5f-0900-4c4a-a936-edaf3b7febb8",
                                "name": "pas-tonynode",
                                "usage": [
                                    {
                                        "buildpack": "f0bff590-8b49-4c7d-bc4a-3ff24adcd411",
                                        "cost": 8.531996000805556,
                                        "quantity": 107.45586902777778,
                                        "runtime": {
                                            "id": "f0bff590-8b49-4c7d-bc4a-3ff24adcd411",
                                            "name": "sdk-for-nodejs_v2_8-20151209-1403"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "3a962319-e7c4-456f-a2a4-b1f356a5d142",
                                "name": "pas-dotnet-helloworld",
                                "usage": [
                                    {
                                        "buildpack": "0a566654-d250-463e-b413-67782482e903",
                                        "cost": 4.265998000402778,
                                        "quantity": 53.72793451388889,
                                        "runtime": {
                                            "id": "0a566654-d250-463e-b413-67782482e903",
                                            "name": "aspnet5-experimental"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "54629864-0e43-488f-bfca-3f9c9d806de6",
                                "name": "pas-mysql-local",
                                "usage": [
                                    {
                                        "buildpack": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                        "cost": 7.498824610083008,
                                        "quantity": 94.44363488769531,
                                        "runtime": {
                                            "id": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                            "name": "java_buildpack"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "59f15702-1c42-444b-a1fb-94fbaf6cb27a",
                                "name": "pas-mobile-web",
                                "usage": [
                                    {
                                        "buildpack": "0154f971-ae72-4882-9695-bda6e31310b7",
                                        "cost": 8.531996000805556,
                                        "quantity": 107.45586902777778,
                                        "runtime": {
                                            "id": "0154f971-ae72-4882-9695-bda6e31310b7",
                                            "name": "liberty-for-java_v2_1-20151006-0912"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "926900dd-ccd7-4442-8f58-413df2bc0237",
                                "name": "pas-mongodb-local",
                                "usage": [
                                    {
                                        "buildpack": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                        "cost": 7.498824610083008,
                                        "quantity": 94.44363488769531,
                                        "runtime": {
                                            "id": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                            "name": "java_buildpack"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "ab5a3278-a1c1-44f6-9113-713a4d800131",
                                "name": "bluemix-apples-springboot",
                                "usage": [
                                    {
                                        "buildpack": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                        "cost": 8.531996000805556,
                                        "quantity": 107.45586902777778,
                                        "runtime": {
                                            "id": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                            "name": "java_buildpack"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "b448fd3a-5350-47d2-820d-7f739a057f22",
                                "name": "pas-SpringBootJARDemo",
                                "usage": [
                                    {
                                        "buildpack": "eb0b11e9-8982-4b93-adcb-7350d0bf2ae4",
                                        "cost": 8.531996000805556,
                                        "quantity": 107.45586902777778,
                                        "runtime": {
                                            "id": "eb0b11e9-8982-4b93-adcb-7350d0bf2ae4",
                                            "name": "liberty-for-java_v2_3-20151208-1311"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "b7d3d442-5546-41b4-b5c0-4ef737734e7b",
                                "name": "pas-sb-elastic",
                                "usage": [
                                    {
                                        "buildpack": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                        "cost": 7.498824610083008,
                                        "quantity": 94.44363488769531,
                                        "runtime": {
                                            "id": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                            "name": "java_buildpack"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },


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

Adding community based Plugins to the CF CLI Tool

Pas Apicella - Tue, 2016-01-26 17:02
I needed a community based plugin recently and this is how you would add it to your CF CLI interface.

1. Add Community based REPO as shown below

$ cf add-plugin-repo community http://plugins.cfapps.io/

2. Check available plugins from REPO added above


pasapicella@Pas-MacBook-Pro:~/ibm$ cf repo-plugins community
Getting plugins from all repositories ...

Repository: CF-Community
name                      version   description
Download Droplet          1.0.0     Download droplets to your local machine
Firehose Plugin           0.8.0     This plugin allows you to connect to the firehose (CF admins only)
doctor                    1.0.1     doctor scans your deployed applications, routes and services for anomalies and reports any issues found. (CLI v6.7.0+)
manifest-generator        1.0.0     Help you to generate a manifest from 0 (CLI v6.7.0+)
Diego-Enabler             1.0.1     Enable/Disable Diego support for an app (CLI v6.13.0+)
3. Install plugin as shown below

pasapicella@Pas-MacBook-Pro:~/ibm/$ cf install-plugin "Live Stats" -r community

**Attention: Plugins are binaries written by potentially untrusted authors. Install and use plugins at your own risk.**

Do you want to install the plugin Live Stats? (y or n)> y
Looking up 'Live Stats' from repository 'community'
7874156 bytes downloaded...
Installing plugin /var/folders/rj/5r89y5nd6pd4c9hwkbvdp_1w0000gn/T/cf-plugin-stats...
OK
Plugin Live Stats v0.0.0 successfully installed.

4. View plugin commands

pasapicella@Pas-MacBook-Pro:~/ibm/$ cf plugins
Listing Installed Plugins...
OK

Plugin Name       Version   Command Name                                           Command Help
IBM-Containers    0.8.788   ic                                                     IBM Containers plug-in

Live Stats        N/A       live-stats                                             Show browser based stats
active-deploy     0.1.22    active-deploy-service-info                             Reports version information about the CLI and Active Deploy service. It also reports the cloud back ends enabled by the Active Deploy service instance.
http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

ServletContextAware Controller class with Spring

Pas Apicella - Mon, 2016-01-25 03:55
I rarely need to save state within the Servlet Context via an application scope, but recently I did and here is what your controller class would look like to get access to the ServletConext with Spring. I was using Spring Boot 1.3.2.RELEASE.

In short you implement the "org.springframework.web.context.ServletContextAware" interface as shown below. In this example we retrieve an application scope attribute.
  
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.json.JsonParser;
import org.springframework.boot.json.JsonParserFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.context.ServletContextAware;

import javax.servlet.ServletContext;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Controller
public class CommentatorController implements ServletContextAware
{
private static final Logger log = LoggerFactory.getLogger(CommentatorController.class);
private static final JsonParser parser = JsonParserFactory.getJsonParser();

private ServletContext context;

public void setServletContext(ServletContext servletContext)
{
this.context = servletContext;
}

@RequestMapping(value="/", method = RequestMethod.GET)
public String listTeams (Model model)
{
String jsonString = (String) context.getAttribute("riderData");
List<Rider> riders = new ArrayList<>();

if (jsonString != null)
{
if (jsonString.trim().length() != 0)
{
Map<String, Object> jsonMap = parser.parseMap(jsonString);
List<Object> riderList = (List<Object>) jsonMap.get("Riders");

for (Object rider: riderList)
{
Map m = (Map) rider;
riders.add(
new Rider((String)m.get("RiderId"),
(String)m.get("Cadence"),
(String)m.get("Speed"),
(String)m.get("HeartRate")));
}

//log.info("Riders = " + riders.size());
model.addAttribute("ridercount", riders.size());
}
}
else
{
model.addAttribute("ridercount", 0);
}

model.addAttribute("riders", riders);

return "commentator";

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

Nativity

Greg Pavlik - Thu, 2015-12-24 09:24
Shadows flicker against the wall
within the cave it is perpetually night
(I find my vision gets dimmer with age
- when we are alleged to see more sharply -
in the low light of a single candle flame
it is getting much harder to read
year by year)
there is a form I barely am able to perceive.
I wonder if it is better here than the open air
where my eyes would surely be closed against the sun
where all forms find their origin in the one.

2015

A nice list this holiday season…Top 10 Takeaways on Oracle WebCenter 12c, The Cloud, and User Experience from OpenWorld 2015

//www.pinterest.com/pin/154389093449771355/

Everyone likes lists. They are easy to follow, easy to cross off, and easy to add to. And since it is the holiday season, and you are (hopefully) putting the finishing touches on your gift giving or meal preparation lists, I thought what better way to summarize what we learned from Oracle OpenWorld 2015 in a Top 10 list. However, one caveat to that is these are not listed in any particular order, and they represent Fishbowl’s perspective on what was shared at the event regarding Oracle WebCenter Content and Portal 12, The Oracle Cloud, and front-end user experience. You can get more information on the items in this top 10 list by listening to the recording of our webinar that we delivered on December 10th.

  1. Oracle is definitely in the enterprise sync and share space. You’ve probably used Dropbox, Box, or Google Drive, and if you have you would probably agree that they were easy to use. Oracle Documents Cloud Service (ODCS) couples this ease of use with more manageability – especially for Oracle WebCenter Content customers. Content customers can maintain their content repositories on site, and easily and securely share and sync content with ODCS. New in WebCenter 12c is the ability to collaborate on content in the cloud, capture content in the cloud (emails or scanned documents), and mirror content between your on premise WebCenter instance and ODCS.
  2. Oracle’s clouds offerings help usher in new ways to engage with content and facilitate business processes. For example, you could use Oracle’s Mobile Cloud Service to build a mobile app for human resources to help with employee on boarding. We all have been through the on boarding process before, and in most cases the tasks to complete are contained within archaic HR systems and must be viewed on a desktop. With Mobile Cloud Service, coupled with Oracle’s Process Cloud Service, new employees could go through training videos, ethic courses, etc., on a mobile device – even downloading the videos for watching offline. Then, Process Cloud Service could be used to build a simple form where the user could check off their on boarding list, and any checked off items would trigger a workflow update to managers and HR. Dashboards could also be created for users to see their overall on boarding process status, and gamification elements could be incorporated rewarding employees for prompt training/on boarding.
  3. Oracle WebCenter has a new interface and it is really cool. Oracle released the ADF-based user interface with 11.1.1.8, but in 12c the new interface is present out of the box and does need to be enabled/turned on. This new UI, based on the Oracle Alta UI is modern, allows for more visual content, and was designed with mobile in mind.
  4. You can now annotate (mark up) images within WebCenter Content. This feature makes it even easier to collaborate on documents in WebCenter. Annotations include highlighting or redacting text and adding notes or watermarks. This feature should help speed up document-centric workflow processes.
  5. The Document Imaging Server from Oracle WebCenter Imaging has been consolidated with the Oracle Content Server. No more having to maintain separate repositories for transactional content (invoices) and business content (legal documents).
  6. WebCenter Portal has made major improvements with contribution, publishing, and mobile responsive. Again, the interface improvements alone will help contributors and developers build, launch and maintain a portal site in less time.
  7. Oracle JET will help front-end web developers create better user experiences. Oracle JET (Java Extension Toolkit) is a set of JavaScript libraries to build applications that interact with Oracle products. JET will especially be useful in building applications that consume and interact with Oracle Cloud Services. Again, the future looks bright from a user interface perspective at Oracle.
  8. Hybrid Content Management and Portal deployments may be the most logical progression. Fishbowl’s sees scenarios where WebCenter customers deploy their dev, test and staging environments on premise, and then deploy a production portal or content repository to the cloud using Oracle’s Platform as a Service (PaaS) and Java Cloud Service.
  9. Customers are talking cloud but don’t necessary have a strategy to get there. Most organizations are using cloud-based solutions (Google Drive, Dropbox, etc.), but some of these may not be approved for use. With Oracle’s comprehensive offerings across content, portal, mobile, workflow, and the cloud, organizations do not need to look outside the Oracle stack to fulfill business requirements. When you consider integrations, interoperability, and scalability, Oracle customers look to benefit from a total cost of ownership perspective.
  10. The event is growing! Estimated attendance this year was 60,000 people. 5 years ago, my first OpenWorld, it was around 40,000 if I remember correctly. Oracle is investing heavily in The Cloud, business process automation, and user experience, and if OpenWorld attendance is any indication their customer list is growing. Oracle has a great ecosystem of developers, thought leaders, and users. This growing community will only help strengthen the products further.

Again, for more information on any of the items in the list above, check out the recording of our webinar on YouTube.

Happy Holidays!

The post A nice list this holiday season…Top 10 Takeaways on Oracle WebCenter 12c, The Cloud, and User Experience from OpenWorld 2015 appeared first on Fishbowl Solutions' C4 Blog.

Categories: Fusion Middleware, Other

Brazil

Greg Pavlik - Sun, 2015-12-20 23:11
Blown away to get my purple belt in Brazilian Jiu Jitsu from 10th Planet black belt Alex Canders.


How Fishbowl’s Enterprise Support Program Keeps Your WebCenter System Running Smoothly

JohnFishbowl introduced our Enterprise Support program during the summer of 2014, and since then we have helped numerous customers keep their WebCenter environments running smoothly. Enterprise Support Engineer John Lundgren often talks with WebCenter users who are interested in Fishbowl’s support program. He recently created a list of FAQ’s for those who are considering Fishbowl’s product support or in supplementing their Oracle maintenance agreement with Fishbowl’s enterprise support.

 

Q: What kinds of support does Fishbowl offer?

A: Fishbowl offers four different kinds of support.

  • Product support deals directly with Fishbowl products, and is included with an active maintenance agreement.
  • Basic enterprise support supplements an Oracle maintenance agreement by providing personalized service and proprietary knowledge of your WebCenter environment.
  • Premium enterprise support includes all features of basic support, as well as an added level of care and attention to ensure fast resolution of issues.
  • Administrative support provides assistance with day-to-day tasks like administering security and user access or creating schema rules and profiles to meet business needs.

Product Support

Q: What does product support provide me?

A: Product support provides break/fix support for the out of the box products. This includes configuration assistance, installation problems, and bug fixes to the product.

 

Q: My maintenance has lapsed for my Fishbowl products. How do I renew my maintenance?

A: There are a few different ways that this could be done. The easiest would be to reach out to support to begin the process. You can also reach out to your sales representative and ask them as well.

 

Q: How do I obtain new versions of the Fishbowl products?

A: To get new versions of any of the Fishbowl products, contact Fishbowl support and request them. Fishbowl support can be reached at support@fishbowlsolutions.com or 952-465-3407.

 

Q: Can I get new versions of the Fishbowl products or licenses without being current on my maintenance?

A: No. Being current on maintenance is required in order to obtain new versions of products and obtaining licenses.

 

Q: I am moving the Fishbowl products to a new environment on a new system. Will I need a new license for the Fishbowl products?

A: The licenses for Fishbowl products are based off of the host name of the environment. This is the “HTTP Server Address” of the environment when viewed in the WebCenter Content configuration. If this value changes at all, then a new license will need to be generated for the new system.

 

Q: I’d like to see a feature added to a Fishbowl product. How would I go about requesting that feature?

A: Simply contact Fishbowl support and we will first ensure that the functionality does not exist or cannot be obtained with the current product. Provided that it cannot be done we will file an “Enhancement Request” (a.k.a. ER) to development. This ER will be evaluated by Fishbowl development and project management to determine if it is feasible during the planning of the next MAJOR release of the product. Fishbowl does not guarantee that all ERs will be implemented.

A customization could also be created to bring that functionality into the product. This customization would have to be created by either Fishbowl’s consulting services or another 3rd party and would not be supported by Fishbowl.

 

Basic and Premium Enterprise Support

Q: How do I know if Enterprise Support is a good investment?

A: Fishbowl’s enterprise support is aimed at companies whose WebCenter admin is new or even non-existent. If you have someone at your company that knows the products very well then enterprise support may not be the best option for your company.

 

Q: Does Fishbowl’s enterprise support replace Oracle support?

A: No. Fishbowl is a supplement to Oracle support. You must maintain an Oracle support contract during the duration of the Fishbowl enterprise support contract. You can think of enterprise support as being the system administrator of the WebCenter environment.

 

Q: Does enterprise support cover the Fishbowl products as well?

A: Yes. However, you must be current on the maintenance for those products in order for them to be supported.

 

Q: What are the differences between “basic” support and “premium” support?

A: The main difference between the two options is that you can think of premium support being more proactive support and basic is more reactive. The premium provides additional reports sent quarterly about the SR history and a quarter “health check” of the environment where we ensure that there are no underlying issues with the environment.

 

We provided an extensive overview of the various support offerings we provide for Oracle WebCenter in this webinar. If you would like to hear directly from another WebCenter customer about the benefits they have seen with Fishbowl enterprise support, jump to minute 34. Judy Headrick with Cascade Corporation describes their experience as going from putting out small fires with WebCenter every day, to now blazing a new trail as she has more time to focus on building out value-add business applications.

If you’re interested in learning more about Fishbowl’s product support and enterprise support, visit our website.

The post How Fishbowl’s Enterprise Support Program Keeps Your WebCenter System Running Smoothly appeared first on Fishbowl Solutions' C4 Blog.

Categories: Fusion Middleware, Other

IBM Containers running Spring Boot Applications with IBM Bluemix

Pas Apicella - Wed, 2015-12-02 16:56
There is now a new command line plugin for IBM containers on Bluemix so you can push and run docker images using CF CLI itself. The steps below show you how to set this up and I use a basic spring boot application as a docker image to test this out.

Steps

Take a note of the docker local host IP. In this example it was as follows, as I test my docker image on my laptop prior to pushing it to Bluemix.

-> docker is configured to use the default machine with IP 192.168.99.100

1. Install the latest CF command line, I used the following version.

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers/gs-rest-service/complete$ cf --version
cf version 6.14.0+2654a47-2015-11-18

https://github.com/cloudfoundry/cli

2. Install IBM Containers Cloud Foundry plug-in

pasapicella@pas-macbook-pro:~$ cf install-plugin https://static-ice.ng.bluemix.net/ibm-containers-mac

**Attention: Plugins are binaries written by potentially untrusted authors. Install and use plugins at your own risk.**

Do you want to install the plugin https://static-ice.ng.bluemix.net/ibm-containers-mac? (y or n)> y

Attempting to download binary file from internet address...
9314192 bytes downloaded...
Installing plugin /var/folders/rj/5r89y5nd6pd4c9hwkbvdp_1w0000gn/T/ibm-containers-mac...
OK
Plugin IBM-Containers v0.8.788 successfully installed.

Note: Default plugin directory as follows

$HOME/.cf/plugins

3. Login to IBM Containers

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS$ cf ic login
Client certificates are being retrieved from IBM Containers...
Client certificates are being stored in /Users/pasapicella/.ice/certs/...
Client certificates are being stored in /Users/pasapicella/.ice/certs/containers-api.ng.bluemix.net/0bcbcada-bd11-4372-b416-955dff3078a1...
OK
Client certificates were retrieved.

Deleting old configuration file...
Checking local Docker configuration...
OK

Authenticating with registry at host name registry.ng.bluemix.net
OK
Your container was authenticated with the IBM Containers registry.
Your private Bluemix repository is URL: registry.ng.bluemix.net/apples

You can choose from two ways to use the Docker CLI with IBM Containers:

Option 1: This option allows you to use "cf ic" for managing containers on IBM Containers while still using the Docker CLI directly to manage your local Docker host.
    Use this Cloud Foundry IBM Containers plug-in without affecting the local Docker environment:

    Example Usage:
    cf ic ps
    cf ic images

Option 2: Use the Docker CLI directly. In this shell, override the local Docker environment to connect to IBM Containers by setting these variables. Copy and paste the following commands:
    Note: Only Docker commands followed by (Docker) are supported with this option.

     export DOCKER_HOST=tcp://containers-api.ng.bluemix.net:8443
     export DOCKER_CERT_PATH=/Users/pasapicella/.ice/certs/containers-api.ng.bluemix.net/0bcbcada-bd11-4372-b416-955dff3078a1
     export DOCKER_TLS_VERIFY=1

    Example Usage:
    docker ps
    docker images4. View docker images

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS$ cf ic images
REPOSITORY                                        TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.ng.bluemix.net/ibm-mobilefirst-starter   latest              5996bb6e51a1        6 weeks ago         770.4 MB
registry.ng.bluemix.net/ibm-node-strong-pm        latest              ef21e9d1656c        8 weeks ago         528.7 MB
registry.ng.bluemix.net/ibmliberty                latest              2209a9732f35        8 weeks ago         492.8 MB
registry.ng.bluemix.net/ibmnode                   latest              8f962f6afc9a        8 weeks ago         429 MB
registry.ng.bluemix.net/apples/etherpad_bluemix   latest              131fd7a39dff        11 weeks ago        570 MB

5. Clone application to run as docker image

$ git clone https://github.com/spring-guides/gs-rest-service.git

6. Create a file called Dockerfile as follows in the "complete" directory

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers/gs-rest-service/complete$ cat Dockerfile
FROM java:8
VOLUME /tmp
ADD target/gs-rest-service-0.1.0.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

7. Package the demo

$ mvn package

8. Build docker image

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers/gs-rest-service/complete$ docker build -t gs-rest-service .
Sending build context to Docker daemon 13.44 MB
Step 1 : FROM java:8
8: Pulling from library/java
1565e86129b8: Pull complete
a604b236bcde: Pull complete
5822f840e16b: Pull complete
276ac25b516c: Pull complete
5d32526c1c0e: Pull complete
0d61f7a71c59: Pull complete
16952eac0a64: Pull complete
2fb3388c8597: Pull complete
ca603b247c8e: Pull complete
1785f2bc7c99: Pull complete
40e61a6ae215: Pull complete
32f541968fe6: Pull complete
Digest: sha256:52a1b487ed34f5a76f88a336a740cdd3e7b4486e264a3e69ece7b96e76d9f1dd
Status: Downloaded newer image for java:8
 ---> 32f541968fe6
Step 2 : VOLUME /tmp
 ---> Running in 030f739777ac
 ---> 22bf0f9356a1
Removing intermediate container 030f739777ac
Step 3 : ADD target/gs-rest-service-0.1.0.jar app.jar
 ---> ac590c46b73b
Removing intermediate container 9790c39eb1f7
Step 4 : RUN bash -c 'touch /app.jar'
 ---> Running in e9350ddebb75
 ---> 697d245c6afb
Removing intermediate container e9350ddebb75
Step 5 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
 ---> Running in 42fc22473930
 ---> df853abfea57
Removing intermediate container 42fc22473930
Successfully built df853abfea57

9. Run locally

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers/gs-rest-service/complete$ docker run --name gs-rest-service -p 80:8080 -d -t gs-rest-service
a392aa15da81fb4ca6c16a6307e0bd1c6b22f9a046228f1fc477d3fe12e15f16

10. Test as follows

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers$ curl http://192.168.99.100/greeting
{"id":1,"content":"Hello, World!"}

11. PUSH TO BLUEMIX AS follows

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers/gs-rest-service/complete$ docker tag gs-rest-service registry.ng.bluemix.net/apples/gs-rest-service
pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers/gs-rest-service/complete$ docker push registry.ng.bluemix.net/apples/gs-rest-service
The push refers to a repository [registry.ng.bluemix.net/apples/gs-rest-service] (len: 1)
Sending image list
Pushing repository registry.ng.bluemix.net/apples/gs-rest-service (1 tags)
Image 5822f840e16b already pushed, skipping
Image 276ac25b516c already pushed, skipping
Image 5d32526c1c0e already pushed, skipping
Image a604b236bcde already pushed, skipping
Image 1565e86129b8 already pushed, skipping
Image 0d61f7a71c59 already pushed, skipping
Image 2fb3388c8597 already pushed, skipping
Image 16952eac0a64 already pushed, skipping
Image ca603b247c8e already pushed, skipping
Image 1785f2bc7c99 already pushed, skipping
Image 40e61a6ae215 already pushed, skipping
Image 32f541968fe6 already pushed, skipping
22bf0f9356a1: Image successfully pushed
ac590c46b73b: Image successfully pushed
697d245c6afb: Image successfully pushed
df853abfea57: Image successfully pushed
Pushing tag for rev [df853abfea57] on {https://registry.ng.bluemix.net/v1/repositories/apples/gs-rest-service/tags/latest}

12. List all allocated IP

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers/gs-rest-service/complete$ cf ic ip list
Number of allocated public IP addresses:  2

IpAddress        ContainerId
134.168.13.83
134.168.15.105

13. Create a container from the uploaded image

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers/gs-rest-service/complete$ cf ic run -p 8080 --memory 512 --name pas-sb-container registry.ng.bluemix.net/apples/gs-rest-service:latest
b1fe3159-0c19-4d54-b0f5-cdd938618deb

14. Assign IP to container

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers/gs-rest-service/complete$ cf ic ip bind 134.168.13.83 pas-sb-container
OK
The IP address was bound successfully.

15. Verify it's running

pasapicella@pas-macbook-pro:~/bluemix_apps/CONTAINERS/ibm-containers/gs-rest-service/complete$ cf ic ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                  PORTS                          NAMES
3794802b-b0c                  ""                  4 minutes ago       Running 3 minutes ago   134.168.13.83:8080->8080/tcp   pas-sb-container
16. Invoke as follows

$ curl http://134.168.13.83:8080/greeting

More Information

Plugin Reference ->

https://www.eu-gb.bluemix.net/docs/containers/container_cli_reference_cfic.html

Installing cf ci plugin ->

https://www.eu-gb.bluemix.net/docs/containers/doc/container_cli_cfic.html

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

What did you miss at Oracle OpenWorld regarding WebCenter, The Cloud, and Front-End Website and Portal Development? Find out in this webinar.

fbweb_003072Fishbowl Solutions has been attending and sponsoring Oracle OpenWorld for many years, and every year we get questions from customers asking why they should attend, how is Oracle OpenWorld different from Collaborate, and if they do attend what sessions should they go to? Although there is no single answer to these questions, our general response is OpenWorld provides so many continuous learning, networking, and fun events that going isn’t hard to justify. However, as the old saying goes “you get out of it what you put into it” definitely applies to OpenWorld. The event is so big (60,000+ attendees), so busy (1,000+ sessions), and so much fun (Elton John concert), that first-time attendees and even alumni need to build out their schedules before the event. This can help ensure they are going to the sessions that will teach them something new that they can apply within their work, or they learn about the road map for the product areas they manage so that they can understand and plan for upgrades, new technology, or integrations.

Even with this proactive planning, attending OpenWorld just isn’t an option for all WebCenter customers, so my colleagues and I at Fishbowl will be hosting a webinar on December 10th that will give you a recap of what you missed as it applies to Oracle WebCenter 12c; The Cloud – Sites Cloud Service, Documents Cloud Service, Mobility Cloud Service, and Process Cloud Service; and new front-end development technologies that can be used for WebCenter-based websites and portals. The webinar will include a Q & A session, so even if we don’t cover a topic that you are interested in or have a question about, our WebCenter and Cloud experts will be available to fill you in. The webinar details are included below, and we hope you will be able to join us.

Date: December 10, 2015
Time: 1:00 – 2:00 PM EST, 12 – 1:00 PM CST

Register here.

 

 

The post What did you miss at Oracle OpenWorld regarding WebCenter, The Cloud, and Front-End Website and Portal Development? Find out in this webinar. appeared first on Fishbowl Solutions' C4 Blog.

Categories: Fusion Middleware, Other

IBM Bluemix Secure Gateway Service with Oracle

Pas Apicella - Thu, 2015-11-19 22:47
I previously blogged about using the IBM Bluemix Secure Gateway Service as follows

http://theblasfrompas.blogspot.com.au/2015/11/ibm-bluemix-secure-gateway-service-step.html

I decided I would extend on this and Connect a Spring Boot Application to Oracle and consume Oracle data using the Secure Gateway Service.

The full demo is as follows

https://dl.dropboxusercontent.com/u/15829935/bluemix-docs/secure-gateway-oracle/index.html


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

IBM Bluemix Secure Gateway Service Step by Step Demo

Pas Apicella - Tue, 2015-11-17 21:15
I created this simple step by step guide on how to use the IBM Secure Gateway Service. Very simple demo which shows how easy it is to set this up and open a world of possibilities from on premise resources directly exposed via Bluemix whether it's PUBLIC or Dedicated/LOcal Instances

https://dl.dropboxusercontent.com/u/15829935/bluemix-docs/secure-gateway/index.html



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

Oracle OpenWorld 2015 Recap – The Forecast Includes Clouds and a Better WebCenter User Experience

12189830_10153162421878053_7938706606449034768_nOracle OpenWorld 2015 wrapped 2 weeks ago. For those of you unable to attend, it was sunny all week with temperatures in the 70s, yet clouds were everywhere. My apologies for the pun, but you could have easily not noticed the blue skies and bright sun as The Cloud was really everywhere. Attendees even had the chance to immerse themselves in the cloud with an interactive display consisting of a few thousand plastic balls you could jump into and roll around in.

Sadly I wasn’t able to partake in this fun, but I was able to attend most of the keynotes, so I got pretty well immersed myself. The Cloud was the theme of the keynotes, with Oracle making it very clear that the future of their applications, middleware, and database technologies are in the cloud – as part of their software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS) offerings. In fact, the future is really now as Oracle announced they have over 1,300 customers already using their Oracle ERP Cloud.

All of this is very exciting from an IT and technology perspective, as the cloud makes it easier to innovate and deploy home-grown or 3rd-party applications across business functions. But what about Oracle WebCenter? Can that innovation and deployment flexibility be extended to Oracle WebCenter in the cloud? Not yet, or not entirely. WebCenter is currently in a hybrid mode when it comes to the cloud. WebCenter customers will continue to manage their content on premise, but use Oracle Documents Cloud Service for file syncing and sharing in the cloud. Despite this, Oracle did have some exciting announcements regarding Oracle WebCenter 12c, which was released on October 26th. Here are some highlights:

  • User Experience (UX) is a major priority for Oracle WebCenter. UX has been a problem area for WebCenter for many years, but a lot of enhancements have been made that customers should be excited about. I saw a lot of these demonstrated during the WebCenter Portal Strategy and Vision session, and I came away impressed with the improvements they have made with contribution, publishing, and mobility.

    Specific examples include a new inline editor (WYSIWYG) entirely written in Oracle’s Application Development Framework (ADF), which will make it easier for contributors to add content to the portal in-context of the page. Overall, the page composer is just more intuitive, and the click stream to add, edit, and publish content on the portal was easy to follow during the demonstration. Lastly, the page templates are now mobile responsive meaning they will adjust for the form factor of the device (desktops, tablets, and smartphones) being used to view the portal.

  • WebCenter Content also received some user interface improvements. This includes a new image viewer featuring annotations so users can mark up images. And speaking of images, the imaging server has been merged with the content server.
  • And for the front-end developers out there, Oracle was heavily promoting their new JavaScript framework called JET. If you like to use frameworks like bootstrap you should check out JET’s component library. JET will be Oracle’s framework of choice for the cloud and its applications going forward.

Fishbowl Solutions will be sharing more about what we learned regarding Oracle WebCenter 12c, Oracle’s cloud offerings, and Oracle’s front-end design and development technologies during a webinar in early December. Check back to this blog or the Fishbowl website for more details soon.

More information on Oracle WebCenter 12c can be found on the Oracle WebCenter blog and within this press release.

For more information on Oracle’s cloud offerings, see this Forbe’s article.

The post Oracle OpenWorld 2015 Recap – The Forecast Includes Clouds and a Better WebCenter User Experience appeared first on Fishbowl Solutions' C4 Blog.

Categories: Fusion Middleware, Other

IBM Bluemix Admin Console Command Line (CLI) Installation

Pas Apicella - Mon, 2015-11-09 20:32
The IBM Bluemix Dedicated/Local Administration Console also includes support for CLI to enable common management tasks to be performed using the Cloud Foundry Command Line by adding a plugin to enable support for it's commands.

Note: The Bluemix Admin CLI plugin requires version 6.11.2 or later.

Admin Console UI


Admin Console - Installing Command Line

The CLI to the admin console is installed as follows. The reference to this is found in your own Dedicated/Local install via a link as follows with "cli" appended to the Admin Console URL

https://opsconsole.mylocalinstance.bluemix.net/cli


pasapicella@pas-macbookpro:~$ cf add-plugin-repo BluemixAdmin https://opsconsole.mylocalinstance.bluemix.net/cli
OK https://opsconsole.mylocalinstance.bluemix.net/cli/list added as 'BluemixAdmin'
pasapicella@pas-macbook-pro:~$ cf install-plugin bluemix-admin-cli -r BluemixAdmin Looking up 'bluemix-admin-cli' from repository 'BluemixAdmin' 8889440 bytes downloaded... Installing plugin /var/folders/rj/5r89y5nd6pd4c9hwkbvdp_1w0000gn/T/bluemix-admin... OK Plugin BluemixAdminCLI v0.0.1 successfully installed. pasapicella@pas-macbook-pro:~$ cf plugins Listing Installed Plugins... OK
…...
Finally target admin API endpoint:
pasapicella@pas-macbook-pro:~$ cf baa https://opsconsole.mylocalinstance.bluemix.net The API endpoint has been updated to 'https://opsconsole.mylocalinstance.bluemix.net'
At this point you can now run Admin Console commands as follows. To get help issue "cf {command} --help" The current supported commands are as follows: bluemix-admin-api, baa                              
bluemix-admin-add-user, baau                        
bluemix-admin-remove-user, baru                     
bluemix-admin-set-organization, baso                
bluemix-admin-unset-organization, bauo              
bluemix-admin-set-quota, basq                       
bluemix-admin-add-report, baar                      
bluemix-admin-delete-report, badr                   
bluemix-admin-retrieve-report, barr                 
bluemix-admin-enable-service-plan, baesp            
bluemix-admin-disable-service-plan, badsp           
bluemix-admin-add-service-plan-visibility, baaspv   
bluemix-admin-remove-service-plan-visibility, barspv
bluemix-admin-edit-service-plan-visibilites, baespv 
bluemix-admin-set-region-access, basra              
bluemix-admin-create-organization, baco             
bluemix-admin-delete-organization, bado    http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Spring Security Demo with a Bootstrap Look and Feel

Pas Apicella - Sun, 2015-11-08 21:31
I decided to take the Spring Security demo at the following link , and add Bootstrap to it. In the end it's basically the same code and the Form Based Login will accept one user "pas/welcome1".

http://spring.io/guides/gs/securing-web/

Here is the updated demo with Bootstrap added to the UI pages. You can deploy this to Bluemix using the "Deploy to Bluemix" directly from GitHub and it will as you to Sing into IBM devOps prior to deploying it directly into your Bluemix Environment.

https://github.com/papicella/SpringBootSecurityBootstrap

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

This blog is now closed.

Billy Cripe - Mon, 2013-10-14 12:14

Thank you for visiting.  This blog has been closed down and merged with the WebCenter Blog, which contains blog posts and other information about ECM, WebCenter Content, the content-enabling of business applications and other relevant topics.  Please be sure to visit and bookmark https://blogs.oracle.com/webcenter/ and subscribe to stay informed about these topics and many more.   From there, use the #ECM hashtag to narrow your focus to topics that are strictly related to ECM.

See you there! 

Categories: Fusion Middleware

New Continuous Integration tutorial published

Lynn Munsinger - Mon, 2012-07-02 09:44
Hot off the press – a new continuous integration tutorial. It’s really not just about continuous integration, though! You’ll find it useful even if you aren’t using a continuous integration server like Hudson. It’s useful if you are doing any part of the scenario it documents: Setting up Team Productivity Center for your team and [...]

Advanced ADF eCourse, Part Deux

Lynn Munsinger - Tue, 2012-06-19 15:11
In February, we published the first in a series of FREE(!) online advanced ADF training: http://tinyurl.com/advadf-part1 The response to that course has been overwhelmingly positive as more and more people are moving past the evaluation/prototype stages with ADF and looking for more advanced topics. I’m pleased to relay the good news that the 2nd part [...]

Fun with Hudson, Part 1.1

Lynn Munsinger - Tue, 2012-06-05 09:19
Earlier I posted that I had used the following zip command in the ‘execute shell’ action for my Hudson build job: zip -r $WORKSPACE/builds/$JOB_NAME-$BUILD_NUMBER * -x ‘*/.svn/*’ -x ‘*builds/*’ This zips up the content of the exported source, so that I can send it on to team members who need the source of each build [...]

Hiring a Curriculum Developer

Lynn Munsinger - Tue, 2012-05-15 09:34
If you are an instructional designer with an eye for technologies like ADF, or if you are an ADF enthusiast and excel at creatively producing technical content, then ADF Product Management would like to hear from you. We’re looking for a curriculum developer to join our ADF Curriculum team, which is tasked with ensuring that [...]