Software Reliability We live in a society where our dependency on technology is rapidly increasing each day. IoT should make our life easier, at least that’s the idea, and honestly, when most of the people are busy with their careers, having an app that will save you...
Category
Software Development
Custom Infinity Scroll
This blog is written for everyone, but my recommendation for the reader is to have: HTML – basic knowledge CSS – basic knowledge JavaScript – good knowledge AngularJS Framework – good knowledge Npm & Bower – basic knowledge Text editor – basic knowledge To develop...
“instanceof”, Why And How To Avoid It In Code
The java “instanceof” operator is used to test whether the object is an instance of the specified type (class or subclass or interface). It is also known as type comparison operator because it compares the instance with type. It returns either true or false. If we...
Documentum Knowledge Sharing Article Published
My article for the EMC Proven Professional's 2015 Knowledge Sharing Contest, A Language Translation Service for Documentum, has been published! You can read the article for yourself on the ECN in the Proven Professionals' area (if you have access), or on my personal...
VIDEO – How to Create and Manage Legal Holds
In this video Deja Nichols walks you through creating a legal hold within Alfresco Records Management. For more information about Alfresco Records Management, contact our experts today.
Managing Site URLs
A few years ago I started a project with a new customer. When I was granted access to their DEV, QA, and PROD environments I was given a bookmark file that contained all of the URLs I would need to manage and administer their systems (for example: DA, Webtop, and...
Test for and Patch the Heartbleed Bug
OpenSSL versions 1.0.1 through 1.0.1f (inclusive) are compromised with a vulnerability that makes it possible to steal information. Patched versions of the OpenSSL may have been back ported to the "built on" date newer or equal to April 2014 should be a good indicator...
Create a Self-Extracting Installer in Linux
Ultimately many would want to write complex RPMs to install software packages, however, those who are accountable for writing such packages may agree that this task may be cumbersome and impractical. Where the RPM may accomplish the goal of wrapping an application in...
Spring Managed Alfresco Custom Activiti Java Delegates
I recently needed to make a change to have Alfresco 4's Activiti call an object managed by Spring instead of a class that is called during execution. Couple of reasons for this: A new enhancement was necessary to access a custom database table, so I needed to inject...
WordPress Contributors Upload Plugins
My previous post, "Allow WordPress Users to Upload Images" discussed the use of the functions.php file to implement capabilities to the contributors' role that isn't there by original design. As the functions.php file is part of a Wordpress theme, and if an alternate...
ArkCase: Introduction to Data Access Control
Background ArkCase is a framework for developing case management applications. Data Access Control ensures each user sees only records they are authorized to see, and are prevented from seeing unauthorized records. Data access control is applied to individual...
Mule ESB: How to Call the Exact Method You Want on a Spring Bean
The Issue Mule ESB provides a built-in mechanism to call a Spring bean. Mule also provides an entry point resolver mechanism to choose the method that should be called on the desired bean. One such method is the property-entry-point-resolver. This means the...
Writing a Framework is Not Like Developing an Application!
ArkCase is both a framework and an application. As a framework, ArkCase provides a scaffolding to write case management applications tailored to custom-fit a specific customer. As an application, ArkCase provides pre-built web application archives (WAR files)...
Art and Computer Science
I picked up a book in Armedia's technical library by accident the other day, but have come to really appreciate the rewards of that serendipitous event. I first grabbed the book because of its author, Don Knuth, is a well-known innovator in the computer science world....
ArkCase: How I Learned to Make Modules be Self-Sufficient
A while back I said Armedia was investing in the next generation ArkCase. I promised occasional updates. Since then I've written a few technical stories (CLICK HERE to view all of our ArkCase blog posts). Today I want to describe how we've started to achieve...
Spring MVC – setting JSON date format
Spring MVC's message conversion feature is the bomb. I love it; I wish I'd started using it long ago. Just make sure your JSON fields match your POJO property names, and your MVC controller includes a POJO parameter or return value. Then Spring MVC auto-converts...
VMWare Hyperic HQ Agent Automated Install and Configuration
An enterprise size company should require enterprise level software to meet the demands of it's infrastructure and user community. Software vendors offer enterprise class applications and solutions, however, miss the mark when deploying agents to clients. A case may...
Mule Integration with Spring: A New Approach
I've written about using Mule with Spring on my personal blog. In this article I described how to integrate Mule into an existing Spring MVC application. That approach involved configuring the web.xml file to setup a Mule context: <listener>...
Mule and Activiti: Happy Together
Activiti out-of-the-box supports Mule tasks. When Activiti encounters a Mule task, it launches the configured Mule flow. This integration is exactly why my new project uses Mule in the first place. But Activiti also supports execution and task listeners: code that...
ArkCase: Pluggable Authentication Modules with Spring
Over the past several months, I have written several blogs about my project, the ArkCase framework. In this post, I will cover how we have gotten ArkCase to work with Spring Security. It is important to note that each organization has their own user directory, their...
The Sunny Side of Tika
One of the great joys of development comes when you learn about a program making your development task very simple. Apache Tika is one of those programs, and before I even begin to talk about Tika, I have to tip my hat to the developers. Thank you very much for...
Setting Up a Virtual Environment
It wasn't that long ago when a development environment required multiple physical computers to perform tasks from the mundane to the most sophisticated. While the virtualization of these environments became more adopted, software vendors introduced new products and...
How do you Approach your Code?
Building software is more like creating a work of art, it requires creativity in design and ample craftsmanship to complete. Don Wells made this statement in his essay Agile Software Development: A gentle introduction at www.agile-process.org. He made the statement in...
Unable to open any pages in SharePoint 2010
I have SharePoint 2010 installed locally on my laptop where I do my development. I don't develop for SharePoint all the time so there are gaps between when I might be looking at my local SharePoint. Getting back to SharePoint development I attempted to deploy my new...
SQL Server Management Studio Freeze
In this blog I document an issue with SQL Server Management Studio freezing and what I did to resolve the issue. So while trouble-shooting a SharePoint issue (that's another blog) I found that the SQL Server Management Studio froze as soon as it loaded and I could...
WebDAV and Windows 7 Adventure
Like many, Armedia has customers who are upgrading their desktop computing environments from Windows XP to Windows 7 (Did anyone use Vista?). We recently ran into an interesting situation with one such customer who was using a customized WebDAV solution to allow users...
Understanding Spring Security – Part 4 – ACL Security
Spring Security also provides domain object level security in addition to the other types of security discussed in this Spring Security blog series. In simple terms, ACL provides a way to specify permissions based on a combination of role, business object (referred to...
Understanding Spring Security – Part 3 – Method Security
Since version 2.0, Spring Security has improved support significantly for adding security to various service layer methods. Method Security, in nature, is slightly more complicated than the simple allow or deny system seen in URL Based Spring Security. This security...
Understanding Spring Security – Part 2 – URL Based Security
Perhaps the simplest type of security for beginners to think of is URL-based security. Spring Security allows the securing individual pages using role-based authentication. You can define the roles and the pages to secure, the url to go to when login is successful, or...
Understanding Spring Security – Part 1 – Introduction
Spring Security, formerly known as Acegi Security, is an open source security provider that is used extensively in Java based web applications. Due to its power and ability to be customized, Spring Security has evolved itself into the de-facto standard for securing...
Two Approaches to Source Code Management (SCM)
I’ve been thinking about source code management, because I recently encountered two very different approaches to it. Let me begin with a quick overview of some key source code management terms and concepts. First, what do I mean by source code management (SCM)? SCM is...
Printing From a SharePoint Visual Web Part
I recently built a SharePoint (SP) Visual Web Part (VWP) with two calendar controls and a literal control. The calendar controls are used to filter the content of a specific list and the results are displayed in the literal control. The literal control only has the...
Why Open Source?
To really be able to answer the question “Why Open Source?” you must have a thorough understanding of the different benefits of open source software that businesses can experience. Today, there are open source office solutions available for almost every common type of...
The CRASH Report
Cast software, the maker of software quality tools, released their second annual CRASH (Cast Report on Application Software Health) report in December. The report examined the "health" of world-wide software applications by examining the source code of 745...
The Fast/Good/Cheap Rule of Software Development
Triangles have been a staple of mathematics, architecture and engineering for centuries. They have also become important in software development by way of a project management concept. You may have heard of the "Fast/Good/Cheap" rule. This rule uses a triangle to...
Modifying SharePoint Document Content Types and Libraries Using the Client Model
In a current eRoom to SharePoint migration project I wanted to preserve the "Date Created", "Date Modified", "Edited By", and "Created By" fields in the eRoom documents. To do this I created a custom content type (in SharePoint 2010) based on the standard "Document"...
Implementing Multiple Filters in LINQ Query from Visual Studio
A best practice in any application making data calls is to push processing to the server and limit the amount of data that has to come back to the application. I recently worked on a windows application that uses the Microsoft SharePoint Client Object Model to...
I’m in eRoom, Get Me Out of Here!
[turns up amplifier, cranks up volume to 11, puts Huey Lewis and the News vinyl on record player....] I start up Visual Studio 6.0 and settle down to some nostalgic programming with Visual Basic (VB) 6. Ah, college memories come flooding back and strangely not many...
Top 25 Programming Errors
The 2011 CWE/SANS Top 25 Most Dangerous Software Errors report was published by the SANS Institute and MITRE in June (cwe.mitre.org/top25). The report leveraged the SANS Institute's Tops 20 attack vectors (www.sans.org/top20) and MITRE's Common Weakness Enumeration...
Using SharePoint Designer 2010 to Add Custom Buttons
Sharepoint Designer 2010 provides a great quick way to add simple actions to your SharePoint application. I have a project that I wanted to add a couple buttons that would allow the user to navigate away from a "Drop-Off" library to the libraries where files are...
New and improved method for extracting JavaScript from HTML
A few weeks back, I wrote about using HTML5 custom data attributes as an enabling mechanism for extracting JavaScript from HTML pages. Turns out that approach has one significant drawback: HTML attributes are not suitable for storing arbitrary data. Specifically, we...
JSP Pages, Do not get too used to c:out!
I was always one to go ahead and use <c:out> to display model data in my JSP pages. Never had a reason not to! Well, I recently had a reason… As I mentioned in my last post, I am working on a web application that uses several jQuery libraries – another...
A pattern for extracting JavaScript from HTML
When I wrote about separation of concerns in webapps, I said I would consider how to apply separation of concerns in my project. This post is a progress report! I have tried this pattern on several pages and so far, all is well. Step 1 is obvious: just extract all...
HOW TO: Make file uploads work with WizardPro jQuery Library and Spring 3.0
My web application front-end code is built using HTML5, CSS3, and jQuery, using the Spring MVC 3.0 Framework to get back-end data back to the browser. We use the WizardPro jQuery library to aid the user in creating objects in the webapp (WizardPro is a great little...
“Display Intranet Sites in Compatibility View”, or, WTF happened to my webapp???
My project uses a lot of HTML5/CSS3/JavaScript goodies. It works well and looks awesome... in Chrome 10 and Firefox 4. Our User Experience designer tells me it works well and looks awesome in Safari, too. Say, which browser is missing from the lists I just...
Q: Why should I test my CMIS application against multiple repositories?
A: To uncover my hidden assumptions! Let me tell you a story about SharePoint, Alfresco, design choices, and downloading files. My Java-based application uses SharePoint 2010 to store files. CMIS is the obvious tool for my app to talk to SP 2010, and in fact, CMIS...
SharePoint 2010 – REST Atom Service and JAVA, part 2
This is the second of two blogs where I demonstrate how to use the openCMIS library from a JAVA client to connect to a CMIS enabled SharePoint site through the REST Atom service of SharePoint. My previous blog “SharePoint 2010 – REST Atom Service.” provided...
Sharepoint 2010: REST Atom Service and JAVA
This is the first of two blogs where I demonstrate how to use the openCMIS library from a JAVA client to connect to a CMIS enabled SharePoint site through the REST Atom service of SharePoint. The “lessons learned” and tips I include come from examining MSDN and...
Webapps and Separation of Concerns
Separation of concerns is a big deal in software engineering. Program structures should be nicely organized, such that distinct tasks are handled by distinct program elements. In other words: no business logic wrapped up in our SQL statements; no data access in our...
Oracle and Java = Goodness
Two exciting announcements from Oracle the last few days: JCP.Next - Oracle Proposes Changes to JCP: Enforced transparency (open mailing lists, open issue trackers); and greater throughput (more frequent JSR updates, and deactivating JSRs when they stop making...
The Browser is the VM
Just like thousands (millions?) of others, I spent the last 9 years writing services for Web applications. I always concentrated on the server side, and never took the browser seriously as a software development platform. I assume I'm not alone, given the prevalence...
Beginner Thoughts on Alfresco Architecture
If you asked me three months ago if I enjoy developing to Alfresco’s repository and Share UI (specifically Enterprise 3.3.3), it would have been a frustrated “NO…” -- Not frustration about WANTING to learn a new product, since that is always exciting and challenging,...
Software Development and the Perils of Barrel-Dropping Niagara Falls
How do we avoid what philosopher George Santayana warned of when he said, "Those who cannot remember the past are condemned to repeat it”. Today's platforms, frameworks and methodologies all help us learn from the past and can go a long way to help assure our optimum...
More Thoughts on Data
In my previous blog, Data, the Neglected Part of Content Management, I discussed the importance of structured data within a cms. Getting a good structured data design to compliment the design of the overall content management solution can be dirty work; not quite...
Speaking IBM FileNet
In my years of working in the content management space I've experienced the challenges of switching horses, sorry I mean platform vendors more than once. Terminology aside, it's hard to quickly understand let alone master a new platform simply because how each...
So long, farewell, auf Wiedersehen, eRoom
A simple goal – “export, transform, load” – the destination is a matter of choice. EMC eRoom is going away. It has been marked as End of Life (EOL) so what next? EMC Documentum have 2 options: EMC Documentum Collaboration Services; EMC Documentum Centerstage. ...
Doneness!
‘Tis the season for the big sales kickoffs, goal communication, quota setting and the inevitable fudding and jockeying that goes with that. We at Armedia are, of course, not much different and have been dutifully working our list for a while. All roads therefore lead...
Other People of Case Management
For the last few blog posts, we have discussed answers to different aspects of the question "What is Case Management". With the several roles that are involved in controlling and managing components of a Case Management system. Lets discuss a few more: A couple more...
OSGi for business applications
OSGi is a dynamic module system for Java. An OSGi system is a network of components that communicate via defined interfaces. Each component is deployable, manageable, and updatable, with predictable effects on the other deployed components. Each component can be...