<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="FeedCreator 1.7.2" --><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Star Base Inc.</title>
        <description>Star Base Inc.</description>
        <link>http://blog.starbaseinc.com/blog/star-base-inc</link>
        <lastBuildDate>Sun, 19 Jul 2009 14:32:38 +0100</lastBuildDate>
        <generator>FeedCreator 1.7.2</generator>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/starbaseinc/qoUu" type="application/rss+xml" /><feedburner:emailServiceId>starbaseinc/qoUu</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
            <title>What’s new at JavaOne Part 3 - The Sun Cloud and The End?</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/z7XtrYnoTrY/whats-new-at-javaone-part-3-the-sun-cloud-and-the-end</link>
            <description>&lt;p&gt;This is the last of a three part series; part one is &lt;a href="http://blog.starbaseinc.com/blog/star-base-inc/0/0/whats-new-at-javaone-2009-part-one-open-solaris-and-virtualbox"&gt;here &lt;/a&gt;and part two is &lt;a href="http://blog.starbaseinc.com/blog/star-base-inc/0/0/whats-new-at-javaone-2009-part-2-javafx-jafafx-designer-and-the-java-store"&gt;here&lt;/a&gt;.&amp;nbsp;Many application development guys are wondering, what is the Cloud, and what is the Sun Cloud? Think of Cloud computing as a virtualized data center. In part one I talked about VirtualBox, which allows you to virtualize network components and resources. Think of VirtualBox working on the atomic level, taking small resources to create a virtualized network. Now Cloud computing takes all of the virtualized networks and utilizes them as resources in a virtualized data center. The &lt;a href="http://kenai.com/projects/suncloudapis/pages/Home"&gt;Sun Cloud &lt;/a&gt;is a set of APIs to let you manage networks and storage areas as resources. You can cluster or categorize networks in any way you wish. You can manage user access to the resources, not unlike application development teams utilize in web applications.&lt;br /&gt;What does all this mean to application development and management? It means that you can create a single network and copy or clone it. For example, you can create a single network instance with servers, storage areas databases, and clone the entire network for each region you manage. That means all networks are&amp;nbsp;managed in one spot,&amp;nbsp;and all regions are setup exactly the same. No application compatibility issues.&amp;nbsp;You can, of course, add or remove components, but they are all have the same infrastructure. You can upgrade the virtual network, and pass the changes to the other regions. The electricity saved by running virtualized&amp;nbsp;datacenters would be significant. You can connect to your partners&amp;rsquo; virtualized networks to access their data. For application development teams, that would change how we design applications if we have access to external data and applications.&lt;/p&gt;&lt;p&gt;This was my fifth JavaOne conference. Since it is always at the Moscone center, I know pretty much every nook and cranny of JavaOne. Although smaller this year, I thought this was the best one yet. The people there were truly happy to be there, and combined with takeover news and a bad global economy, a bigger sense of cooperation. I would highly recommend coming to one if they still have one. Nobody, not even James Gosling (I was in a group of 20 who had a 45 minute meeting with him) knows if there will be one next year. The reason you come to JavaOne is not the presentations (they are great!), but the people. Meeting and befriending people who created your favorite blog, book, or technology is the reason to come. I remember meeting Craig McClanahan (co-creator of struts) in 2004, and saying &amp;quot;that&amp;rsquo;s Craig freaking McClanahan!&amp;quot; Last year, I was honored a share a picture of beer with him, Jarda Tulach (inventor of NetBeans), and Geertjan Wielenga (JavaLobby blogger extraordinaire). Application development people get to &amp;quot;network&amp;quot; with the best and brightest architects, technical press, and business owners. This year I got hang with the JUG leaders, NetBeans Dream Teamers, and the JavaFX guys. I wrote, and helped edit a YouTube video &amp;quot;&lt;a href="http://www.youtube.com/watch?v=urbQApO2gEY"&gt;pushing Java&lt;/a&gt;&amp;quot;, and met more of my fellow Java music software developers. I literally have friends from all over the world (yes Cincinnati too), and I am considered an honorary Brazilian because of JavaOne. Larry Ellison, if you are reading this, please don&amp;rsquo;t stop JavaOne!&lt;/p&gt;</description>
            <pubDate>Tue, 14 Jul 2009 13:34:39 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/whats-new-at-javaone-part-3-the-sun-cloud-and-the-end</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/whats-new-at-javaone-part-3-the-sun-cloud-and-the-end</feedburner:origLink></item>
        <item>
            <title>Quantum Leap, Part 3</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/RsZj25_Xis8/quantum-leap-part-3</link>
            <description>&lt;p&gt;&lt;img height="150" alt="" width="200" align="left" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/9c4aa521-1c50-4754-ae2d-3b4f59c8e5a6/Image/033700c06f20c7ada527b85cda74e992.gif" /&gt;In &lt;a target="_blank" href="http://blog.starbaseinc.com/blog/jeffs-blog/0/0/quantum-leap-part-1"&gt;part one&lt;/a&gt;, I introduced the concept of &amp;ldquo;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Quantum_superposition"&gt;quantum superposition&lt;/a&gt;&amp;rdquo; and in &lt;a target="_blank" href="http://blog.starbaseinc.com/blog/jeffs-blog/0/0/quantum-leap-part-2"&gt;part two &lt;/a&gt;I talked about &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Qubit"&gt;qubits.&lt;/a&gt;&amp;nbsp; One of the things an IT strategy consultant should do, is&amp;nbsp;make things that can be really quite complex and turn them into something practical.&amp;nbsp; Today I&amp;rsquo;m continuing the topic of Quantum computing.&lt;/p&gt;&lt;p&gt;Quantum computing also offers the means of making our communications and business transactions far more secure than they are today. Quantum cryptography exploits several remarkable effects of &amp;ldquo;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Quantum_entanglement"&gt;quantum entanglement&lt;/a&gt;.&amp;rdquo; One of these is the ability to generate pairs of utterly unique and unbreakable keys. Basically, two random but identical particle keys can be created using entanglement. Since reading a quantum particle alters it, any effort to eavesdrop on communication is detected and that communication is either disrupted or ended.&lt;/p&gt;&lt;p&gt;Using this technology, we can create completely secure communications networks. Recently, Toshiba&amp;rsquo;s R&amp;amp;D labs announced the successful testing of quantum cryptography over fiber-optic networks.&lt;/p&gt;&lt;p&gt;IT Solutions based upon Quantum computing will not only change Cincinnati and Dayton, but the entire world.&amp;nbsp; How is this going to happen?&amp;nbsp; I wish I knew exactly how it is going to play out.&amp;nbsp; I&amp;rsquo;m still waiting on my flying car!&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
            <pubDate>Tue, 14 Jul 2009 11:54:00 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/quantum-leap-part-3</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/quantum-leap-part-3</feedburner:origLink></item>
        <item>
            <title>Quantum Leap, Part 2</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/1m-2vVKug9E/quantum-leap-part-2</link>
            <description>&lt;p&gt;&lt;a target="_blank" href="http://blog.starbaseinc.com/blog/star-base-inc/0/0/quantum-leap-part-1"&gt;&lt;img height="133" width="200" align="right" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none" alt="" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/9c4aa521-1c50-4754-ae2d-3b4f59c8e5a6/Image/1c9a29c86cdc9fd2b3c4cabac683a53e_w640.jpeg" /&gt;In part 1 of this post&lt;/a&gt;, I talked about the 80&amp;rsquo;s television show &lt;a target="_blank" href="http://www.imdb.com/title/tt0096684/"&gt;Quantum Leap&lt;/a&gt;, that wasn&amp;rsquo;t the point of the post. It is fun to imagine traveling around in time; but then again, I digress.&amp;nbsp;&amp;nbsp; In &lt;a target="_blank" href="http://blog.starbaseinc.com/blog/star-base-inc/0/0/quantum-leap-part-1"&gt;part one&lt;/a&gt;, I introduced the concept of &amp;ldquo;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Quantum_superposition"&gt;quantum superposition&lt;/a&gt;&amp;rdquo;; big words, even for an IT strategy consultant.&lt;/p&gt;&lt;p&gt;Have you heard of the &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Wave%E2%80%93particle_duality"&gt;particle wave theory&lt;/a&gt;? In practical terms, it means that bizarre and counterintuitive effects occur on very small scales, and they can be harnessed.&lt;/p&gt;&lt;p&gt;This &amp;ldquo;quantum superposition&amp;rdquo; effect will, for example, will transform how we do &amp;ldquo;computer math.&amp;rdquo;&amp;nbsp; Currently, everything done by computers is in binary. The smallest piece of information a computer handles, the bit, is either a one or zero. A quantum computer, though, would be able to store and work with number systems other than binary.&lt;/p&gt;&lt;p&gt;This means computers would become exponentially more powerful because each &amp;ldquo;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Qubit"&gt;quantum bit&lt;/a&gt;&amp;rdquo; (&lt;a href="http://en.wikipedia.org/wiki/Qubit"&gt;qubit&lt;/a&gt;) could store a much greater range of numbers than the two that binary math restricts us to. Imagine a laptop with the computing power of the world&amp;rsquo;s 10 most powerful supercomputers. Then you begin to grasp the potential of quantum computing.&lt;/p&gt;&lt;p&gt;Designing chips and IT infrastructure to take advantage of &amp;ldquo;higher level&amp;rdquo; math than binary is years away.&amp;nbsp; The more immediate impact will be in storage.&amp;nbsp; Most application developers know that 8 bits make up a byte or 1 character.&amp;nbsp; What if a qubit could hold many bytes or characters?&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Next time, I will share another quantum idea. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
            <pubDate>Thu, 09 Jul 2009 19:06:29 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/quantum-leap-part-2</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/quantum-leap-part-2</feedburner:origLink></item>
        <item>
            <title>What’s new at JavaOne 2009 – Part 2 JavaFX, JavaFX Designer, and The Java Store</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/mGcr4cwDZec/whats-new-at-javaone-2009-part-2-javafx-jafafx-designer-and-the-java-store</link>
            <description>&lt;p&gt;Part one discussed Open Solaris. Part Two is all about what is new with JavaFx and the Java Store.&lt;/p&gt;&lt;p&gt;I have talked about, and been impressed with JavaFX since its debut at JavaOne 2007. It was a key part of my presentation to Cincinnati area application development members that year. For those application development people who don&amp;rsquo;t know what JavaFx is, I blogged about it &lt;a title="JAvaFx part II" href="http://blog.starbaseinc.com/blog/the-java-rocker/0/0/javafx-part-2"&gt;here.&lt;/a&gt; So what&amp;rsquo;s new really with it? The JavaFx in 2007 was JavaFX &lt;i&gt;script&lt;/i&gt;. JavaFX was limited in where you could run the script. In January, JavaFX released its first runtime, and now JavaFX 1.2 is out. You can have graphic designers create media for your application using JavaFX production and easily import them into JavaFx. The JavaFx language can now be run on the desktop, web page or mobile device. JavaFx has been integrated with the new version of web start, but more on that later. New widgets have been created, and third-party widgets are being created at &lt;a title="WdigetFX" href="http://widgetfx.org"&gt;JavaFx widgets&lt;/a&gt;. There still are issues, though. Some swing like widgets like menus and tables have not been completely done. You can create a wrapper around Swing components, but it&amp;rsquo;s not the same as a native widget. Integration with NetBeans 6.7 isn&amp;rsquo;t there because of the new designer isn&amp;rsquo;t ready, but an update is scheduled at the end of July The reason I think application development teams should use JavaFX, is that the same code can run in multiple areas. I can now create a desktop application and have it run on the web and mobile devices without having to rewrite my code.&lt;/p&gt;&lt;p&gt;The JavaFX designer will help in a wider adoption rate of JavaFX for the things it can do. A big part of JavaFx is making animation simple to create. With the timer piece of designer, it&amp;rsquo;s a breeze. In the demo &lt;a title="JavaFX Designer" href="http://link.brightcove.com/services/player/bcpid22207469001?bclid=24589760001&amp;amp;bctid=25474033001"&gt;here,&lt;/a&gt;&amp;nbsp;(starts 10:25 in)&amp;nbsp;you can take an image, give it a starting point, and pick intermediate points and the times and the designer creates all of timings for you. You can bind media and widgets to data or events. For example you can drop a video and some buttons on the scene. You then drag a link from a button to the media, and all available actions popup (play, pause, etc.). Select the action in the popup and it&amp;rsquo;s done. Application development guys can create a media player in minutes. You can open different windows with different screen sizes, and all of the children inherit their changes from the parent. You can edit each screen though, and those changes are kept for that window.&lt;/p&gt;&lt;p&gt;What is the &lt;a title="Java Store" href="http://www.java.com/en/store/index.jsp"&gt;Java Store&lt;/a&gt;, and why do I need it? The Java store is a warehouse for free, and for fee Java applications. Right now, everything is for free while the community decides the best way to charge (or not) for applications. If you need an application quickly, you can check the store without having to do extensive searching, or worse, recreating the wheel. The cool thing about the store is its use of the new Web Start technology. Users can preview the application before keeping the application. If you decide to keep the application, just drag it to your desktop. It&amp;rsquo;s just that easy.&lt;/p&gt;</description>
            <pubDate>Thu, 09 Jul 2009 16:32:53 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/whats-new-at-javaone-2009-part-2-javafx-jafafx-designer-and-the-java-store</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/whats-new-at-javaone-2009-part-2-javafx-jafafx-designer-and-the-java-store</feedburner:origLink></item>
        <item>
            <title>Quantum Leap, Part 1</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/JZmWFZKxabo/quantum-leap-part-1</link>
            <description>&lt;p&gt;&lt;img height="152" width="200" align="left" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none" alt="" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/9c4aa521-1c50-4754-ae2d-3b4f59c8e5a6/Image/9d1dd6b86d3f757fc6b205c2e7c729d3_w640.jpeg" /&gt;By the title of this post you might think that it is about an 80&amp;rsquo;s television show by the same name.&amp;nbsp;&amp;nbsp; I really enjoyed &lt;a target="_blank" href="http://www.imdb.com/title/tt0096684/"&gt;Quantum Leap&lt;/a&gt; when it first aired and you can still catch re-runs if you have cable or satellite TV, but I digress.&lt;/p&gt;&lt;p&gt;In the past, I have &lt;a target="_blank" href="http://blog.starbaseinc.com/blog/jeffs-blog/0/0/you-havent-seen-anything-yet"&gt;talked about rate of change &lt;/a&gt;and its impact on IT infrastructure and application development. Today, I&amp;rsquo;m continuing along that line.&lt;/p&gt;&lt;p&gt;IT infrastructure is going to go through a massive transformation in the years ahead. Quantum technologies that were only theories in scientific journals just a few years ago are being prototyped in labs now. These new components will change the way we live forever.&lt;/p&gt;&lt;p&gt;Currently, data is processed by moving bunches of electrons about in huge batches. Think of the components in your PC as electrical plumbing. Data is usually stored as batches of electrons or in computer terms, bits. Imagine your computer&amp;rsquo;s hard drive as a bunch of very small buckets, some full of water, some not. This would represent the on and off that current computers understand or binary language.&amp;nbsp; This will change:&lt;/p&gt;&lt;p&gt;Improved technologies from emerging nanosciences are allowing us to replace batches of electrons with the smallest individual unit: the electron. As a result, computers will work at far higher speeds. Additionally, far less electricity will be required to do the same amount of work.&amp;nbsp; So what&amp;rsquo;s the big deal you may be thinking, that&amp;rsquo;s been happening for years.&lt;/p&gt;&lt;p&gt;The big difference now is &amp;ldquo;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Quantum_superposition"&gt;quantum superposition&lt;/a&gt;&amp;rdquo;.&amp;nbsp; In a nutshell, this means that a quantum particle can exist in multiple states and everything in between at the same time. This is because a quantum particle, such as an electron, behaves as both a particle and a wave.&amp;nbsp; Quantum physics is going to have a huge role in how we store and represent data in the future.&lt;/p&gt;&lt;p&gt;Next time, I will take a quantum dive deeper into this.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
            <pubDate>Tue, 07 Jul 2009 16:36:00 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/quantum-leap-part-1</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/quantum-leap-part-1</feedburner:origLink></item>
        <item>
            <title>What’s new at JavaOne 2009 Part One – Open Solaris and VirtualBox</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/PYc91l5mBBs/whats-new-at-javaone-2009-part-one-open-solaris-and-virtualbox</link>
            <description>&lt;p&gt;This is my third year at trying to boil down 4 days of experiences into an abbreviated post or presentation for application development teams and management of the Cincinnati and Dayton areas. &lt;br /&gt;As mentioned previously, the major topics were Cloud computing and JavaFX, but a new item that I am impressed with is &lt;a title="Open Solaris" href="http://opensolaris.org/os/"&gt;Open Solaris&lt;/a&gt;.&amp;nbsp;Version 2009.06 was released at CommunityOne. I am not a Sun representative and I have not been a Solaris user, but there are some great features that I think are cool. Before I get into the new features, let me give you some background. Solaris was Sun's proprietary OS that has&amp;nbsp;a&amp;nbsp;reputation&amp;nbsp;as a fast, enterprise operating system, using &lt;a title="ZFS" href="http://opensolaris.org/os/community/zfs/"&gt;ZFS&lt;/a&gt; as their file system. Sun open sourced Solaris a couple of years ago. Application development teams who use Solaris will tell you about the worthiness of &lt;a title="DTrace" href="http://opensolaris.org/os/community/dtrace/"&gt;DTrace&lt;/a&gt;, a system debugging tool. It is the one thing that Linux engineers really want to integrate. &lt;br /&gt;There is not a lot of Solaris usage in Cincinnati, and I don&amp;rsquo;t have a dedicated box for Solaris, so I never used it, but that may change. Like Linux, you can get a &amp;quot;live&amp;quot; version on a disc to try out. I am currently playing with &lt;a title="virtualbox" href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;, a open source virtualizer. Unlike VMware, both the player and recorder are free. To tell you how cool it is, I was running an Ubuntu VM on a live Solaris session with Windows as the host OS! &lt;br /&gt;The other reason for my excitement is &lt;a title="project crossbow" href="http://opensolaris.org/os/project/crossbow/"&gt;project Crossbow&lt;/a&gt;. Project Crossbow is a networking virtualization project aimed for usage in the cloud. Before my application development friends tune out due to buzzword overkill, let me explain. Project Crossbow can virtualize your entire network including your NICs and switches. The really cool part is that they have a cool GUI that allows you to drag and drop your network pieces. You need a firewall? Drop it into your network. It&amp;rsquo;s already configured and ready to use. Need another server? Just drop it in and connect it to your network. Since the network is virtualized, you can create your own network from virtualized pieces from any VM. That&amp;rsquo;s where the cloud comes in. Virtual networks and hardware can be added or removed at any time, if they were not virtualized by you. You could connect to your partner&amp;rsquo;s network, and if anything changes on their end, the changes would be reflected in their VM. I would strongly urge application development people who dislike/don't understand networking to use project Crossbow, and for free virtualization, use VirtualBox.&lt;/p&gt;</description>
            <pubDate>Thu, 02 Jul 2009 12:52:52 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/whats-new-at-javaone-2009-part-one-open-solaris-and-virtualbox</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/whats-new-at-javaone-2009-part-one-open-solaris-and-virtualbox</feedburner:origLink></item>
        <item>
            <title>Swweeet!</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/QLu5v45Yf80/swweeet</link>
            <description>&lt;p&gt;&lt;img height="150" width="200" align="right" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none" alt="" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/9c4aa521-1c50-4754-ae2d-3b4f59c8e5a6/Image/18d6c59932ae9af7759fe67b19f0c97d.jpg" /&gt;Web application development is a must for Cincinnati and Dayton companies.&amp;nbsp; We at STAR BASE, Inc. have written much lately about open source IT solutions.&amp;nbsp; Since we have been on a roll with that, why stop now?&amp;nbsp;&lt;/p&gt;&lt;p&gt;Another open source IT solution we have worked with is &lt;a target="_blank" href="http://www.sugarcrm.com/crm/community/sugarcrm-community.html"&gt;Sugar CRM&lt;/a&gt;.&amp;nbsp; Sugar CRM falls in to a relatively new software category that I&amp;rsquo;m going to call Commercial Open Source or COS for short.&amp;nbsp; (Remember you saw the TLA&amp;nbsp;(three letter acronym) COS here first!)&amp;nbsp; COS applications have a free version that you can download and implement and they also have a commercial version that can be licensed and supported like any other software application.&lt;/p&gt;&lt;p&gt;What we have found to be very effective; is to use the open source version and customize and tailor it to meet specific business needs.&amp;nbsp;&amp;nbsp; No need to re-invent the wheel.&amp;nbsp; Swweeet!&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
            <pubDate>Wed, 01 Jul 2009 15:08:42 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/swweeet</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/swweeet</feedburner:origLink></item>
        <item>
            <title>Open Up and Say... Ahh!</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/Ryxv_Nvkf6E/open-up-and-say-ahh</link>
            <description>&lt;p&gt;&lt;img alt="" align="left" style="border-right: medium none; border-top: medium none; border-left: medium none; width: 164px; border-bottom: medium none; height: 146px" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/9c4aa521-1c50-4754-ae2d-3b4f59c8e5a6/Image/8c6473dff22ba1c909ec30d46bc0d171.jpg" /&gt;For several years now STAR BASE, Inc. has been delivering open source IT Services in Cincinnati and Dayton.&amp;nbsp; I don&amp;rsquo;t know, but maybe we are IT consulting trend setters for Cincinnati.&amp;nbsp; Seems I have seen quite a bit in the last week about open source.&lt;/p&gt;&lt;p&gt;This is not the first time I have written about open source. In a &lt;a target="_blank" href="http://blog.starbaseinc.com/blog/star-base-inc/0/0/not-invented-here"&gt;previous post&lt;/a&gt;, I talked about Magento e-commerce.&amp;nbsp; I just saw &lt;a target="_blank" href="http://news.cnet.com/8301-13505_3-10271683-16.html?tag=mncol"&gt;this article&lt;/a&gt; about Magento.&amp;nbsp; As my fellow STAR BASE, Inc. IT strategy consultant, Matt Warman says, &amp;quot;&lt;em&gt;&lt;a target="_blank" href="http://blog.starbaseinc.com/blog/star-base-inc/0/0/come-on-in-were-open"&gt;come on in, we&amp;rsquo;re open&lt;/a&gt;&lt;/em&gt;.&amp;quot;&lt;/p&gt;&lt;p&gt;Open source can substantially lower your cost of application development services.&amp;nbsp; You know what?&amp;nbsp; &amp;ldquo;&lt;em&gt;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Open_Up_and_Say...Ahh!"&gt;It don&amp;rsquo;t get better than this&lt;/a&gt;&lt;/em&gt;&amp;rdquo;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
            <pubDate>Fri, 26 Jun 2009 14:30:00 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/open-up-and-say-ahh</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/open-up-and-say-ahh</feedburner:origLink></item>
        <item>
            <title>Browser Wars Redux</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/3XTKi4x11IA/browser-wars-redux</link>
            <description>&lt;p&gt;&lt;img height="200" alt="" width="200" align="left" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/9c4aa521-1c50-4754-ae2d-3b4f59c8e5a6/Image/edb03d6262af160d11d317bc9a5d5073.jpg" /&gt;Just when I thought the browser wars were pretty much a thing of the past, they are heating up again.&amp;nbsp; Web application development is difficult enough without having to worry about what version of what browser a client may be using.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;We just upgraded a couple of machines to IE 8 and guess what?&amp;nbsp; IE 8 is not compatable with our web based CRM!&amp;nbsp; IE 7 and FireFox 3 work fine, but in IE 8 the search fields are not input capable.&amp;nbsp; IE 8 provides for a &amp;ldquo;&lt;em&gt;compatablity mode&lt;/em&gt;&amp;rdquo;, but hey that doesn&amp;rsquo;t work either.&amp;nbsp; I was wondering if Google Chrome would work, but in Chrome, the search fields don&amp;rsquo;t show up at all; the field labels are repeated.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I was thinking about trying Opera, but stopped because how many web browsers do I really need on my machine any way?&lt;/p&gt;&lt;p&gt;In order for web applications to continue to flourish and expand, there has got to be adherence to standards by both application developers and software companies.&amp;nbsp; There are so many other applications that could be developed and expanded.&amp;nbsp; But what do we do with IT solutions?&amp;nbsp; Both vendors and developers shoot themselves in the foot by delivering applications and software that &amp;ldquo;&lt;em&gt;stops working&lt;/em&gt;&amp;rdquo;.&amp;nbsp;&lt;/p&gt;&lt;p&gt;What's the business impact?&lt;br /&gt;-&amp;nbsp;Increased support costs.&lt;br /&gt;-&amp;nbsp;Increased applications development and testing time&lt;br /&gt;-&amp;nbsp;Less confidence by the user community of &amp;ldquo;&lt;em&gt;IT not&amp;nbsp; being able to do anything right&lt;/em&gt;&amp;rdquo;.&lt;br /&gt;-&amp;nbsp;Less time and money to develop new applications.&lt;/p&gt;&lt;p&gt;As a reformed, application developer, maybe I should retitle this post &amp;ldquo;&lt;em&gt;The Return of the Angry White Guy&lt;/em&gt;.&amp;rdquo;&amp;nbsp; I think instead, I&amp;rsquo;m going outside and shouting, &lt;em&gt;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Network_(film)"&gt;&amp;ldquo;I&amp;rsquo;m mad as hell and I&amp;rsquo;m not going to take it anymore&lt;/a&gt;&lt;/em&gt;&amp;rdquo;.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
            <pubDate>Tue, 23 Jun 2009 15:21:01 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/browser-wars-redux</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/browser-wars-redux</feedburner:origLink></item>
        <item>
            <title>Balance vs Blend</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/LmhNrEFNgaQ/balance-vs-blend</link>
            <description>&lt;p&gt;&lt;img height="200" width="200" align="left" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none" alt="" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/9c4aa521-1c50-4754-ae2d-3b4f59c8e5a6/Image/f97851ce7b7c448dbae3fea15af2051e.jpg" /&gt;I&amp;rsquo;ve heard a lot of talk recently about finding some balance.&amp;nbsp; Lets face it, whether you are an application developer in Cincinnati or Dayton or outside of the IT services field, its tough to balance out all of the demands of life.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I think of someone balancing on a tight rope or a balance beam.&amp;nbsp; Its hard to do for long periods of time for most of us.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I think its easier to blend rather than balance. What do I mean by that?&amp;nbsp; For me, its doing a little bit of a lot of different things.&amp;nbsp; For example, I&amp;rsquo;m not getting out on my motorcycle as much as I would like.&amp;nbsp; I did get a chance to ride into the office over the week end.&amp;nbsp; Its not my ideal ride, but at least I got on the &amp;ldquo;horse&amp;rdquo; this week.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
            <pubDate>Mon, 22 Jun 2009 20:23:44 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/balance-vs-blend</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/balance-vs-blend</feedburner:origLink></item>
        <item>
            <title>Come On In, We’re Open</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/zXfa1YePhSo/come-on-in-were-open</link>
            <description>&lt;p&gt;The Cincinnati market is known for being conservative when it comes to using software. Most application development people I know would say that big software, from the big firms, either three lettered companies, or their name ending in &amp;ldquo;soft&amp;rdquo;, are the only code found in shops. There is the occasional open source item here and there, but usually in smaller shops. Why is that? Well, some firms don&amp;rsquo;t create their custom application development, they just enhance out of the box software. They need a vendor to yell at and fix things when it breaks, because their staff can&amp;rsquo;t fix the code, or don&amp;rsquo;t have access to it. For many firms, it is better to pay a vendor for support than to maintain it themselves. As long as you can point to somebody, it&amp;rsquo;s ok. Some firms actively fear that open source means that everyone will have their intellectual property somehow. They fail to realize that it is the same proprietary code that everyone uses too. Since, you have the source code, you can see if there is a backdoor coded in the application, something you can&amp;rsquo;t do with proprietary code.&lt;br /&gt;&lt;br /&gt;With these fears aside, many firms, even in Cincinnati, are looking to use open source solutions for their issues. Certainly many are using the free (as in beer) code to save costs. I hope though that some firms will see how this free (as in liberty) also helps their business. It&amp;rsquo;s a tough call whether to purchase a pre-made business process package (I am looking at you SAP), or to roll your own. I think the best of both worlds would be to use an open source application, and to enhance it. It is a popular misconception that you MUST contribute code, or that you can&amp;rsquo;t change the code. You can create your own code for use; you can&amp;rsquo;t sell the application with YOUR enhancements as YOUR&amp;nbsp;NEW application. There is some legal wrangling, yes, but the bottom line is that you have application development teams, so use them. Your best business plan is to use your process as a competitive advantage, not to shoehorn your process into software that all of your competitors use. I think the goal is to beat them, not join them. &lt;br /&gt;The best thing to do is to give your application development team a couple of old boxes to play with, and let them do some research on applications that can save your money, and are flexible enough to work with your processes. You may end up with an inexpensive system, and get that application that outperforms your competitors.&lt;/p&gt;</description>
            <pubDate>Mon, 22 Jun 2009 17:43:42 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/come-on-in-were-open</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/come-on-in-were-open</feedburner:origLink></item>
        <item>
            <title>Object-Role Modeling - Part 4 - Ring Constraints and Subtypes</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/A-2Nk2cMamA/object-role-modeling-part-4-ring-constraints-and-subtypes</link>
            <description>Ok, I have two things to talk about today, neither of which can be modeled directly in an E-R diagram or in UML.&amp;nbsp; As an application development team member, I tend to see patterns.&amp;nbsp; For example, a manager is a kind of employee that has subordinates, or vendors and customers are very similar, and have pretty much the same roles, except we buy things from vendors, and sell things to customers.&amp;nbsp; Wouldn't it be nice to say in your model that a manager is a type of employee, or that both vendors and customers are individuals in my address book.&lt;br /&gt; &lt;br /&gt; In this example an Employee is identified by an id, and has a Name.&amp;nbsp; In addition, a Manager is a type of Employee that has a budget.&amp;nbsp; Manager is the subtype.&lt;br /&gt; &lt;br /&gt; &lt;img src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/1677f4d2-fb5c-4421-a50b-f654522dd822/Image/63fe3a03e92ab5935d6bd83f3ab53fbf.gif" style="width: 267px; height: 192px;" alt="" /&gt; &amp;nbsp; In addition to having a budget, another thing that differentiates a manager from other employees is that the manager has subordinates.&amp;nbsp; We can model that by saying that Manager supervises Employee.&amp;nbsp; &lt;br /&gt; &lt;br /&gt; &lt;img height="180" width="251" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/1677f4d2-fb5c-4421-a50b-f654522dd822/Image/04c84c6d6f6bb6e4ea2dbb6e431a535f.gif" alt="" /&gt; There is one last thing to do here.&amp;nbsp; We want to make sure that a Manager is not his own supervisor.&amp;nbsp; If we did not put any constraints in place, then any employee could supervise any other employee, including himself, or his supervisor.&amp;nbsp; To do this comprehensively we would want to make sure the structure did not eventually end up in a ring where A supervises B who supervises C who supervises A.&amp;nbsp; The constraints that restrict how these structures can be built are called ring constraints, and there are several types with very mathematical names.&amp;nbsp; Unfortunately each tool represents these ring constraints differently so you need to know the names.&amp;nbsp; In ORM there are six of them, and they have names that conjure up notions of higher mathematics:&amp;nbsp; &lt;ol&gt;     &lt;li&gt;Irreflexive&amp;nbsp; - means that the two roles cannot be filled by the same instance of an object.&amp;nbsp; Our Manager supervises Employee fact type is irreflexive meaning a particular manager cannot be his own supervisor.&amp;nbsp;&lt;/li&gt;     &lt;li&gt;Symmetric - means that if a relationship exists between two instances of an object, then the same relationship exists in the opposite direction.&amp;nbsp; If Ohio borders Indiana, then Indiana borders Ohio.&amp;nbsp; Our Manager supervises Employee fact type is &lt;u&gt;not&lt;/u&gt; symmetric.&lt;/li&gt;     &lt;li&gt;Asymmetric - is mostly the opposite of symmetric.&amp;nbsp; If a relationship between two instances of an object, then the same relationship does not exist in the opposite direction.&amp;nbsp; Our Manager supervises Employee fact type is asymmetric.&amp;nbsp; Note that asymmetry implies irreflexivity.&lt;/li&gt;     &lt;li&gt;Antisymmetric - is kind of like symmetric with asymmetry in specific instances.&amp;nbsp; So in the antisymmetric relationship, if the same instance of an object is playing both roles of a fact, then it is symmetric, but if different instances of the object are playing the roles of a fact, then it is asymmetric.&amp;nbsp; Here is an example of an antisymmetric fact type: Number is greater than or equal to Number.&amp;nbsp; It is symmetric as long as the numbers are the same, otherwise it is asymmetric.&lt;/li&gt;     &lt;li&gt;Intransitive - Intransitive has to do with chaining relationships together.&amp;nbsp; If Object A relates to object B, and Object B relates to Object C, then intransitivity say that Object A may not have that same relation with Object C.&amp;nbsp; Consider parents and children.&amp;nbsp; Joe is the father of Mark who is the father of Tom, then Joe can't be the father of Tom unless there are some illegal behavior going on.&amp;nbsp; That is intransitive.&amp;nbsp; In most organizations, the Manager -&amp;gt; Employee relationship is intransitive.&amp;nbsp; Note Intransitivity implies Irreflexivity.&lt;/li&gt;     &lt;li&gt;Acyclic - Means that for any object, I can't follow the chain far enough to get back to the starting object.&amp;nbsp; A parent can not be it's own descendant.&amp;nbsp; This constraint is very expensive to impliment in terms of processing resources, so it is typically not specified.&amp;nbsp; Usually Acyclic relationships are specified as Asymmetric.&amp;nbsp; Note Acyclic implies Asymetric which implies Irreflexive.&lt;/li&gt; &lt;/ol&gt; If your brain now hurts as much as mine did when I was first trying to figgure out these ring constraints, you might find &lt;a href="http://www.orm.net/pdf/VBR12.pdf" target="_blank"&gt;Verbalizing Business Rules: Part 12&lt;/a&gt; by Terry Halpin useful.&amp;nbsp; Much of this post was inspired by this document.&amp;nbsp; However, be prepared to spend a lot of time in deep thought, and possibly additional research.&amp;nbsp; As I said, different tools depict ring constraints differently, so here is what the Manager supervises Employee looks like in Norma (a Visual Studio ORM plugin).&lt;br /&gt;&lt;br /&gt;&lt;img height="180" width="251" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/1677f4d2-fb5c-4421-a50b-f654522dd822/Image/c23fe6ea2f8dbddde779cf40e81d5383.gif" alt="" /&gt;&lt;br /&gt;&amp;nbsp;That Star Treck badge looking icon means Asymmetric, Intransitive.&lt;br /&gt;&lt;br /&gt;Well, that's enough on that topic.&amp;nbsp; If you are looking for more information, here are some resources:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ormfoundation.org/" target="_blank" title="The ORM Foundation"&gt;www.ormfoundation.org/&lt;/a&gt; &lt;a href="http://www.orm.net/" title="Object Role Modeling" target="_blank"&gt;www.orm.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and a book by Terry Halpin and others:&lt;br /&gt;Database Modeling with Microsoft Visio for Enterprise Architects&lt;br /&gt;&lt;br /&gt;</description>
            <pubDate>Wed, 17 Jun 2009 15:38:58 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/object-role-modeling-part-4-ring-constraints-and-subtypes</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/object-role-modeling-part-4-ring-constraints-and-subtypes</feedburner:origLink></item>
        <item>
            <title>Signature Block Marketing</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/bvbz7jqndSc/signature-block-marketing</link>
            <description>&lt;p&gt;&lt;img align="left" style="border-right: medium none; border-top: medium none; border-left: medium none; width: 193px; border-bottom: medium none; height: 220px" alt="" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/9c4aa521-1c50-4754-ae2d-3b4f59c8e5a6/Image/240819ba4786e9dfe58175c8f3b1a054.jpg" /&gt;If you have seen one of my &lt;a target="_blank" href="http://blog.starbaseinc.com/blog/jeffs-blog/0/0/can-you-hear-me-now-part-one"&gt;previous posts&lt;/a&gt;, you know that I have a new cell phone and new wireless provider.&amp;nbsp; We are Lotus Notes / Domino mail users here at Star Base, Inc. and we have installed the &lt;a target="_blank" href="http://www-01.ibm.com/software/lotus/products/notes/traveler.html"&gt;Lotus Notes Traveler&lt;/a&gt; plug in on one of our Domino servers&amp;nbsp; This gives us the ability to get two way, email, calendar and contacts over the air.&amp;nbsp; Since we have this capability, I&amp;rsquo;m in the process of updating my contacts in Notes.&amp;nbsp;&lt;/p&gt;&lt;p&gt;One of the things that I don&amp;rsquo;t like about the Nokia 5800 phone is if the person calling is not in the contacts, it shows the city and state of the caller and not the phone number.&amp;nbsp; I have not found an easy way to display the phone number, so hence my updating of the contacts.&amp;nbsp;&lt;/p&gt;&lt;p&gt;With that as background, I am using the add to contacts feature from emails that contacts have sent me in the past.&amp;nbsp; I&amp;rsquo;m surprised at how many people don&amp;rsquo;t use an signature block at the end of their email.&amp;nbsp; If you don&amp;rsquo;t, you are missing out on a great way to promote your business.&amp;nbsp; Its also a really convenient way to make sure your email recipients have your up to-date contact information.&amp;nbsp;&amp;nbsp; My signature block is below.&amp;nbsp; (Note: I have left off the phone, fax and email because of spammers.)&lt;/p&gt;&lt;p dir="ltr"&gt;Jeffrey A. Welsh&lt;br /&gt;President&lt;br /&gt;STAR BASE Consulting, Inc.&lt;br /&gt;12059 Sheraton Lane&lt;br /&gt;Cincinnati, OH 45246-1611&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p dir="ltr"&gt;Vision: Help every organization that engages us to realize their full information technology potential.&lt;/p&gt;&lt;p dir="ltr"&gt;Mission: We transform our clients' IT into a competitive advantage.&lt;/p&gt;&lt;p&gt;&amp;quot;Celebrating 18 Years of Excellence&amp;quot; 1991-2009&lt;/p&gt;(Phone, Fax, Email Omitted)&lt;br /&gt;Web: &lt;a href="http://www.starbaseinc.com/"&gt;&lt;u&gt;HTTP://www.STARBASEinc.com&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;a target="_blank" href="http://blog.starbaseinc.com/blog/jeffs-blog"&gt;See what I&amp;rsquo;m talking about on my blog.&lt;/a&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;</description>
            <pubDate>Tue, 16 Jun 2009 16:49:47 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/signature-block-marketing</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/signature-block-marketing</feedburner:origLink></item>
        <item>
            <title>Am I There Yet?</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/reQKKecYbsg/am-i-there-yet</link>
            <description>&lt;p&gt;Coming back to Cincinnati is the hardest part of JavaOne. On a physical level, my body just got acclimated to west coast time, and now I am subjecting it back to east coast time. It&amp;rsquo;s more than just sleep, its food too. Instead of eating breakfast at 8:00 am, I am having it at 11:00 am. It takes me until Wednesday until I feel like I am in the right time zone. On an application development level, it&amp;rsquo;s a mixed bag. I have the emails and duties that I left for a week, and now I need to complete 2 weeks worth of work in one week. I also forgot that I was presenting a JavaScript lunch and learn. On the plus side, I do feel motivated to work on my JFrets project, and continue on my new project called history slider. It&amp;rsquo;s amazing how a TODO list goes from avoidable task to an application development imperative after meeting with your peers. I have some new contacts and great ideas for new enhancements after presenting again. Last week seemed like both 2 days and 2 months, and sleeping as often as I could, I think I am back to normal.&lt;/p&gt;</description>
            <pubDate>Tue, 16 Jun 2009 15:38:36 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/am-i-there-yet</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/am-i-there-yet</feedburner:origLink></item>
        <item>
            <title>Creating and Object-Role Model - Part 3 - External Constraints</title>
            <link>http://feedproxy.google.com/~r/starbaseinc/qoUu/~3/VjHSK-ZbynE/creating-and-object-role-model-part-3-external-constraints</link>
            <description>Previously I talked about some ORM basics, and internal constraints.&amp;nbsp; With just these parts one can build a fairly sophisticated information model.&amp;nbsp; But there are times that one fact type will depend on another in some way.&amp;nbsp; For example say I want to model a telephone survey of some type.&amp;nbsp; A caller will make phone calls and ask the person on the other end some questions.&amp;nbsp; The answers to these questions will be recorded either as a multiple-choice selection, or as a free-form &amp;quot;essay&amp;quot; type answer.&amp;nbsp; For a given question, an answer must be recorded in exactly one of these two forms.&amp;nbsp; We have a couple things going on here, so I am going to break it up into logical parts.&lt;br /&gt;&lt;br /&gt;First an Answer is given for a Question during a Call.&amp;nbsp; This is not the typical binary fact type that we have been dealing with so far, but in ORM we can still record these fact types and give them internal constraints.&amp;nbsp; Going to the diagram we have the following:&lt;br /&gt;&lt;img height="176" width="378" src="http://local.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/1677f4d2-fb5c-4421-a50b-f654522dd822/Image/1865305dacbe440a84ea05cb2b145003.gif" alt="" /&gt;&lt;br /&gt;There are no external constraints here, but you can get a decent idea of just what can be modeled with more advanced fact types.&amp;nbsp; Note the mandatory constraint requiring a question and a call for each answer given, and the uniqueness constraint saying that a question asked during a specific call identifies a particular answer.&lt;br /&gt;&lt;br /&gt;Here is another way to model the same information using binary fact types and an external unique constraint:&lt;br /&gt;&lt;img src="http://local.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/1677f4d2-fb5c-4421-a50b-f654522dd822/Image/5ee6d4680306bcac9480166ddf4387c0.gif" alt="" /&gt;&lt;br /&gt;In this case an external uniqueness constraint is applied to the Call and Question roles of the Answer applies to Call and Answer given for Question fact types.&amp;nbsp; There is a difference between these two models though.&amp;nbsp; Can you detect it?&amp;nbsp; In the first model, the same answer can be given for more than one question as long as it is given on a different call.&amp;nbsp; Functionally this means that in the second model, each answer given is it's own answer with it's own answer id.&amp;nbsp; I modeled this in Visio for Enterprise Architects.&amp;nbsp; And though I would like to put a uniqueness constraint on the Answer role in the first model, Visio does not allow that.&amp;nbsp; I have not tried this with other tools.&lt;br /&gt;&lt;br /&gt;What about that part where I want to require either a multiple-choice answer or a text answer?&amp;nbsp; I have another external constraint for you.&amp;nbsp; Here is the diagram.&lt;br /&gt;&lt;br /&gt;&lt;img height="122" width="241" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/1677f4d2-fb5c-4421-a50b-f654522dd822/Image/11ccd6b9612ef030b5300baaa4e12de2.gif" alt="" /&gt;&lt;br /&gt;This is a mandatory constraint on the answer role relating the two fact types.&amp;nbsp; This means that an Answer bust have a choice, or some text.&amp;nbsp; Still it could have both, so I need another constraint.&amp;nbsp; One that means that I can't have more than one of each of the related roles in play.&amp;nbsp; I have not talked about this constraint type yet because it really doesn't apply to internal constraints.&amp;nbsp; It is called an exclusion constraint, and this is what it looks like on the diagram.&lt;br /&gt;&lt;br /&gt;&lt;img height="122" width="241" src="http://cdn.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/1677f4d2-fb5c-4421-a50b-f654522dd822/Image/fa656a07799b953ee3f28d63c60f7a65.gif" alt="" /&gt;&lt;br /&gt;Note that both the mandatory and the exclusion constraints are attached to the answer role while the uniqueness constraint is on the other role.&amp;nbsp; Note that for a given answer, the answer cannot be unique across the two fact types, it has to be the same on the same fact.&amp;nbsp; The uniqueness constraint applies to the roles it is attached to.&amp;nbsp; Mandatory and exclusion constraints apply to the other role.&amp;nbsp; For a given Answer (role the constraint is attached to, at most one of the fact types is allowed.&amp;nbsp; If we combine the mandatory and exclusion fact types we get an exclusive or construct that would mean for each Answer, exactly one of the two related fact types are required.&amp;nbsp; See the diagram:&lt;br /&gt;&lt;br /&gt;&lt;img height="122" width="241" src="http://local.content.compendiumblog.com/uploads/user/b134318f-e016-4056-8d6b-d46deeb0acda/1677f4d2-fb5c-4421-a50b-f654522dd822/Image/598222a6045e8fb4321aa28886caa673.gif" alt="" /&gt;&lt;br /&gt;It is hard to see, but if you look closely you will see the X in the circle behind the dot.&amp;nbsp; Note also, that these constraints can be extended beyond two fact types to mean exactly 1 of n or at least 1 of n or no more than 1 of n.&lt;br /&gt;&lt;br /&gt;Next time I will talk about ring constraints and something that no case tool based on ER models (that I have used) can do.&lt;br /&gt;&lt;br /&gt;</description>
            <pubDate>Wed, 10 Jun 2009 19:40:22 +0100</pubDate>
            <guid isPermaLink="false">http://blog.starbaseinc.com/blog/star-base-inc/0/0/creating-and-object-role-model-part-3-external-constraints</guid>
        <feedburner:origLink>http://blog.starbaseinc.com/blog/star-base-inc/0/0/creating-and-object-role-model-part-3-external-constraints</feedburner:origLink></item>
    </channel>
</rss>
