Uncategorized

...now browsing by category

 

Website launch delayed. It wasn’t me, really!

Thursday, August 18th, 2011

UCM website launch was delayed until September 6th. Now that there are containers and departments are responsible for their own data, the launch progress came to a crawl. People are finally realizing that there is work involved in owning your own data. What a surprise… NOT!

Still working full speed+ on the website, and it is looking good. Now if we could only speed up the searches!

So far, the best piece I coded was the lunch menu display. I used two jQuery plugins: A calendar component, and prettyPhoto. I display the food being served each day in schools in the jQuery calendar plugin. The data was created in an APEX application to populate the backend tables. A little materialized view magic later, and the data is available as a JSON feed from a service call to UCM using the IsJson=1 parameter on the service. I use pretty photo to display a list of food properties (similar to the side panel of a cereal box), and a graphic – also fed by a UCM service call. I’ll post the code for the calendar and popup display with a mockup JSON file for data in a few days. I spent way to much time getting this just right. Better to do a job right the first time, then to spend additional days, sometimes weeks coding again…

Site Studio

Thursday, July 7th, 2011

I’ve been really busy with Oracle Development work. To be more specific – UCM.

Just over two weeks to go before my employer launches a new UCM Website that is built with Site Studio. I think the most difficult part of this project was to not develop a site with any pre-conceived notion of how to do it, but to let go, and do things the Site Studio way. Still working on that part.

I believe we will have a successful launch, but I am not completely satisfied with the site. I really like UCM, but Site Studio puts way too many limitations on the contributors who must enter in the content. I’m sure many Oracle folks may balk at that, and yes, there are many easier ways to edit data, but they are fairly pricey and we just couldn’t afford it.

Maybe the next iteration will simply be a Drupal based Web site that uses UCM data via Service calls to get JSON data. I think this would be much more easy, and would have saved a lot of heartache and money.

Then again, this is the last “just over two weeks left” push. Working late seems normal at this point.

I’m sure looking forward to about three weeks from now!

RMOUG – First University Session

Tuesday, February 15th, 2011

Went to my first University session today. Brad Brown presented on creating applications for Android devices. The topic was very timely as more organizations are working on a way to display content on mobile devices.

Where the presentation excelled, was in explaining the trials and errors that Brad had gone through in developing mobile applications that would make money. This was very interesting to hear, and Brad really drove the point home that this is a prime market to be in. Can’t wait to start developing! Can’t wait to get my first Droid phone in April!

JDeveloper 11g and Windows 7 64 bit – and a few rants

Thursday, October 7th, 2010

Now I have three development environments: an Intel Mac mini, Fedora Linux on my Dell 630 laptop, and I just installed Windows 7 Professional 64bit on my desktop. I thought it would be fun to re-install all of my applications. Actually I have an old Foxpro application that I need to spend some time on, and decided to setup an actual windows machine. I’ve been using a VM for years. There are other reasons, but suffice it to say, I now have development environments setup using three different operating systems.

The biggest surprise I had was JDeveloper. It doesn’t work with a 64 bit JVM in Windows. Crazy, Insane, I say – but it is true! There is a post about it here. I hear complaints about Linux, but I’ve been running JDeveloper under a 64 bit JVM since I first installed 11g without a problem and love the speed.

I am still in shock, something really simple that Linux just does, and Windows can’t.

So… why not too many posts lately? I have been spending a lot of time converting an Oracle Portal website to use Oracle UCM with Site Studio. The original plan was to use WCI, but the price tag was too high. It has been quite an experience, to say the least. I wish I could say that I like developing with IDOCScript, but really can’t. I remember developing with Vignette, which at the time used tcl with a lot of controversy. Vignette seemed to throw in the towel and offered both a JSP and ASP option, but I’m not sure if that really helped. (back to UCM) I’m torn with IDOCScript. It is another language to work with. Why not use something more mainstream? Behind the scenes, all the code becomes Java, so why all the cloak and dagger?

In the end, I am getting paid to write lines of code. And with that said, I will write in any language when I am getting paid. Another day, another language.

Keeping track of tasks

Sunday, July 18th, 2010

At work, I have been using the tool manymoon for tracking todo lists that is well integrated with Google Calendar. It doesn’t matter if you are using gmail or google apps as I am, as the product uses openid to your google account to login. I don’t own stock and actually think the creators could have come up with a better name. I am simply a very satisfied customer!

Why I use Linux as a desktop

Thursday, April 22nd, 2010

Penguins are cool!

I have two Macs, a high-end PC running Linux, my work laptop running Linux, three PCs running Windows XP, and one more laptop also running XP in my house. I have several PCs that are mostly used for parts. An upper end PC running Linux that is my main server that is my file server on the host level, and runs a web server, mail server, database server, test server all as virtual machines. Lastly, I have a left over PC that I am using as a special project database server for APEX applications that is also running Linux.

I have told the kids that as each of their PCs die, they will be replaced by a Mac Mini. The one that I currently have is about five years old, and the only thing I do is turn it off before leaving the house on vacations. I don’t think it has ever crashed. Ever!

So why not use a Mac as my primary platform. Cost for one. I can get much more horsepower for a lot less money with Linux. This year for my Christmas present to myself I built my own dream machine. I already had an LCD monitor, keyboard and mouse and was limited to about $500 dollars. It is amazing what you can purchase at Newegg! I was able to get a 3.2 GHz Quad core processor, 8 GB of high speed ram, and a fast SATA HD. I also replaced the stock fan, just in-case I ever decide to overclock the CPU to 4 GHz or higher. Sometimes just knowing you can is just as good as actually doing.

I still haven’t answered the question. I spend most of my time using ant to build java projects, JDeveloper as an IDE, and SQL Developer working with PL/SQL. Linux is simply so much faster, especially starting up SQL Developer or JDeveloper. Even on my work laptop (which is painfully slow to begin with), I can launch SQL Developer and have the IDE ready to go in 15 seconds, where my colleagues can wait more than a minute, sometimes two – just to see the IDE. I don’t even want to talk about my PPC Mac. Apple doesn’t have a version of Java that will run any of the current version of JDeveloper or SQL Server. Too bad, so sad!

If speed was the only issue, I probably would be running just about everything from the command line as well, but I do have my limits. I love the interface on the Mac. Plain and simple, it is just beautiful. A work of art! I just wish the delete key worked like the backspace key. Delete just doesn’t work right and is really my only complaint. If the Mac was faster and cheaper, I would replace all of my PC’s with them.

Windows. Well, besides re-imaging each PC yearly due to a variety of reasons, blue screens of death when playing games in my free time (ha ha), dealing with viruses that caused another round of re-imaging, etc… I like it. My dream includes buying Windows as a Windows manager that runs in X-Windows like Gnome or KDE. Yea, I would buy start buying Windows again if that happens.

I really don’t have any love for the Window managers in Linux. Just like I really don’t have any particular preference for a specific distribution. Typically, I run Fedora on my Desktops, and Ubuntu LTS for all of my servers and virtual machine servers. I have run Gentoo, and think that is a really great distribution. It just is a lot of work to setup, or at least I think it is. Don’t get upset, one of my favorite coffee mugs is my Gentoo Linux mug, and I don’t have any other Linux mugs.

And what’s wrong with Linux. I can’t run notepad++ or textpad natively. I really dislike vi and emacs even more so. Windows has the best text editors of all the platforms. That will hopefully be fixed one day! Until then, I’ll happily type away using gedit. And yes, I still use Windows running in VMWare for Visio and Microsoft Project. As long as these products run under XP, I will keep waiting for Windows as a Window Manager.

WPTouch Plugin installed

Monday, February 22nd, 2010

For those that use an iPhone or iTouch, I have installed the WPTouch Plugin. This should make viewing much more better!

RMOUG 2010 – February 17 – 18, 2010

Sunday, October 25th, 2009

I will be presenting a fun session titled, “ApEx – From the Garage to the Basement”. This session will discuss how entrepreneurs can build a working environment for ApEx development in their basement with an old PC and Internet connection. In the past where companies like HP started in the garage; today, we have developers creating applications using a PC tucked away in the basement.

Hopefully, this presentation will be a fun time for all. Hope to see you there!

Using JSTL Exception Handling in JDev 10.1.2 Portlet

Friday, June 19th, 2009

The following is a portlet I recently updated for Oracle Portal. The dates were not formatting properly, so I added a JSTL catch tag. This also uses choice tags which help when you need an else tag after an if tag.

<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/ui/jsp/adftags" prefix="adf"%>

<%@page contentType="text/html; charset=UTF-8"%>
<%@page import="oracle.portal.provider.v2.http.HttpCommonConstants"%>
<%@page import="oracle.portal.provider.v2.render.PortletRenderRequest"%>
<%@page import="oracle.portal.provider.v2.render.http.HttpPortletRendererUtil"%>
<%@page import="oracle.portal.provider.v2.url.UrlUtils"%>

<adf:uimodelreference
model="htdocs_busroutesportlet_BusRoutesPortletShowPageUIModel" />
<jsp:useBean id="now" class="java.util.Date" />

<script type="text/javascript"
src="/BusRoutes2009Portlet/scripts/busroutes2009.js"></script>

<c:set var="nowdate" scope="page"><fmt:formatDate value="${now}" /></c:set>
<c:set var="school" scope="page" value="" />

<%
PortletRenderRequest pReq =
(PortletRenderRequest)
request.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);

String paramNameSchool = "sch";
String sSQLQuery = "";
String paramNameSubmit = "submit";

String qualParamNameSchool =
HttpPortletRendererUtil.portletParameter(pReq, paramNameSchool);
String qualParamNameSubmit =
HttpPortletRendererUtil.portletParameter(pReq, paramNameSubmit);

String sSchoolValue = pReq.getQualifiedParameter(paramNameSchool);

String formName = UrlUtils.htmlFormName(pReq,"busroutes_form");

pageContext.setAttribute("school",(Object)sSchoolValue);
%>

<script>
var sSch = <%=sSchoolValue%>;
</script>

<c:set var="sch"><%=sSchoolValue%></c:set>

<form name=<%=formName %> method="POST"
action="<%= UrlUtils.htmlFormActionLink(pReq,UrlUtils.PAGE_LINK) %>">
<%= UrlUtils.htmlFormHiddenFields(pReq,UrlUtils.PAGE_LINK, formName) %>
Select School and press submit to see schedule.
Click on column heading to sort.<br />
<br />
School:
<select name="<%=qualParamNameSchool%>" id="ctlSchool">
<option value="0" >-- Select a School --</option>
<c:forEach var="row" items="${bindings.SchoolsView1.rangeSet}">
<c:choose>
<c:when test="${sch == row.Id}">
<option value="<c:out value="${row.Id}"/>" selected="selected">
<c:set var="mapurl" scope="page">
<c:out value="${row.MapUrl}" />
</c:set>
<c:set var="websiteurl" scope="page">
<c:out value="${row.WebsiteUrl}" />
</c:set>
<c:set var="schooltype" scope="page">
<c:out value="${row.TypeId}" />
</c:set>
</c:when>
<c:otherwise>
<option value="<c:out value="${row.Id}"/>">
</c:otherwise>
</c:choose>
<c:out value="${row.School}" />
</option>
</c:forEach>
</select>
<br />
<br />
<input type=submit name="<%= qualParamNameSubmit %>" value="submit" />
</form>

<br />
<br />

<table border="0" id="urls">
<tbody>
<tr>
<td>
<c:choose>
<c:when test="${not empty mapurl}">
<a href="<c:out value="${mapurl}"/>"
target="_blank">
<font class="titleorimageid1siteid53">
Bus Route Map
</font>
</a>
</c:when>
<c:otherwise>
&nbsp;
</c:otherwise>
</c:choose>
</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td>
<c:choose>
<c:when test="${not empty websiteurl}">
<a href="<c:out value="${websiteurl}"/>"
target="_blank">
<font class="titleorimageid1siteid53">
School Web Site
</font>
</a>
</c:when>
<c:otherwise>
&nbsp;
</c:otherwise>
</c:choose>
</td>
</tr>
</tbody>
</table>

<br />
<br />

<c:set var="vo" scope="page" value="${bindings.BRView_2009_1.viewObject}" />
<%
try {
Object o = pageContext.getAttribute("vo");
oracle.jbo.ViewObject vo = (oracle.jbo.ViewObject)o;
String sWhereClause = "SCHOOL_ID = "   sSchoolValue   " ";

vo.setWhereClause(sWhereClause);
sSQLQuery = vo.getQuery();

vo.executeQuery();
System.out.println("Query: "   vo.getQuery());
System.out.println("sSchoolValue: "   sSchoolValue);
} catch (Exception e) {
System.out.println("Error:"   e.getMessage());
System.out.println("sSchoolValue = "   sSchoolValue);
}
%>

<br />
<br />

<table id="example" class="tablesorter" border="1" width="100%">
<thead>
<tr>
<th style="text-align: center"><c:out value="Route" /></th>
<c:choose>
<c:when test="${schooltype == 3}">
<th style="text-align: center"><c:out value="Route Animal" /></th>
</c:when>
<c:otherwise>
<th style="text-align: center">&nbsp;</th>
</c:otherwise>
</c:choose>
<th><c:out value="Stop" /></th>
<th style="text-align: center"><c:out value="AM" /></th>
<th style="text-align: center"><c:out value="PM" /></th>
<th style="text-align: center"><c:out value="Start Date" /></th>
<th style="text-align: center"><c:out value="Stop Date" /></th>
</tr>
</thead>
<tbody>
<c:forEach var="Row" items="${bindings.BRView_2009_1.rangeSet}" >
<c:catch var="errorvalue">
<fmt:parseDate value="${Row['StartServiceDate']}"
var="startdate"
pattern="MM-dd-yyyy" />
<fmt:parseDate value="${Row['StopServiceDate']}"
var="stopdate"
pattern="MM-dd-yyyy" />
</c:catch>

<c:if test="${not empty startdate}">
<c:set var="startdatedisplay" scope="page">
<fmt:formatDate value="${startdate}" />
</c:set>
</c:if>

<c:if test="${not empty stopdate}">
<c:set var="stopdatedisplay" scope="page">
<fmt:formatDate value="${stopdate}" />
</c:set>
</c:if>

<tr>
<td align=center><c:out value="${Row['Route']}" />&nbsp;</td>
<c:choose>
<c:when test="${schooltype == 3}">
<td align=center>
<img src="someurl.retrieve_image?p_id=<c:out value="${Row['ImageId']}" />"
alt="no image" /></td>
</c:when>
<c:otherwise>
<td align=center>&nbsp;</td>
</c:otherwise>
</c:choose>
<td><c:out value="${Row['Stop']}" />&nbsp;</td>
<td align=center><c:out value="${Row['Am']}" />&nbsp;</td>
<td align=center><c:out value="${Row['Pm']}" />&nbsp;</td>
<c:choose>
<c:when test="${now ge startdate}">
<td align=center>&nbsp;</td>
</c:when>
<c:when test="${now lt startdate}">
<td align=center style="color: blue;">
<c:out value="${startdatedisplay}" />&nbsp;
</td>
</c:when>
<c:otherwise>
<td align=center><c:out value="${startdatedisplay}" />&nbsp;</td>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${now lt stopdate}">
<td align=center style="color: red;">
<c:out value="${stopdatedisplay}" />&nbsp;
</td>
</c:when>
<c:otherwise>
<td align=center><c:out value="${stopdatedisplay}" />&nbsp;</td>
</c:otherwise>
</c:choose>
</tr>
</c:forEach>
</tbody>
</table>

<br />
<br />

Hello world!

Sunday, May 17th, 2009

Welcome to my new blog.  My server crashed a second time, and this time the virtual machine was not recoverable.  I will post new information about Oracle UCM and Oracle WCI as I have time.  Please enjoy your visit!