Tech Kraft

Documentum, AWS, Java, Ruby on Rails, Linux, Windows, App Servers


  • DQL: Hidden DQL Tricks and Behaviors

    Here are a few DQL tricks and behaviors that are not always obvious. Using r_object_id in the select statement changes the resultset. The following DQL for any r_folder_path will return multiple rows for the same object. select object_name, r_folder_path from dm_folder where any r_folder_path is not nullstring By adding r_object_id to the select statement, the Continue reading

  • AWS: How to setup a simple website

    In order to setup a simple website on Amazon AWS, you will need to first acquire a domain. Although not technically necessarily in order to view it, it looks better than the default url that you get from amazon. I used Namecheap to register my domain, which was a little cheaper than GoDaddy, one of Continue reading

  • AWS: A Quick Guide to some main AWS Services (Not Comprehensive)

    I would like to record here the list of AWS Services. I will attempt to get this list as comprehensive as I can, but you have to start somewhere 🙂 Service Name Link to Service Console Service Description AWS https://aws.amazon.com/ S3 https://console.aws.amazon.com/s3  Simple object storageDurability, Scalability Route 53 https://console.aws.amazon.com/route53 EC2  https://console.aws.amazon.com/ec2/v2 RDS  https://console.aws.amazon.com/rds CodeCommit  https://console.aws.amazon.com/codecommit Continue reading

  • DQL: How to find Documentum folders with 0 (zero) documents in any subfolders

    I was recently asked to find all custom folders in a cabinet which may have other nested folders, but no documents. In other words, folders can have other folders, but not documents. In order to find empty folders, with no documents or sub-folders, is straightforward: select * from dm_folder where i_reference_cnt=0 But what we are Continue reading

  • Documentum: Software to Download Documents and Metadata

    I have written a software in Java using DFC. This software performs the following tasks: Performs export or import of documentum data Download all documents given a folder/cabinet in Documentum Download all document metadata, including custom metadata without having to specify the specific fields All the metadata is saved in an xml file The field Continue reading

  • DQL: Listing documents with their Folderpaths

    Here’s a DQL to get a listing of Documents along with their folderpaths in the repository: select fld.r_folder_path, doc.r_object_id, doc.object_name, doc.r_content_size, doc.acl_name, doc.r_creation_date, doc.r_modify_date, doc.r_creator_name, doc.title, doc.subject, doc.keywords from dm_document doc, dm_folder fld where folder(‘/<CABINET_NAME>’, descend) and fld.r_object_id = doc.i_folder_id and any r_folder_path is not nullstring enable (ROW_BASED) Continue reading

  • DQL: Total Document Content Size By Cabinet

    Here is a DQL statement to find the total document size by cabinet. You may be aware that dm_document has two different attributes for content size: r_content_size, r_full_content_size The first one, r_content_size, can only store sizes upto 2 GB. r_full_content_size stores the correct size if the content is larger than 2 GB. Weird. I know. Continue reading

  • JavaScript: PigLatin!

    Pig Latin takes the first consonant (or consonant cluster) of an English word, moves it to the end of the word and suffixes an “ay”. If a word begins with a vowel you just add “way” to the end. function translatePigLatin(str) { var firstVowelIndex =0; while(str.charCodeAt(firstVowelIndex)!=97 && str.charCodeAt(firstVowelIndex)!=101 && str.charCodeAt(firstVowelIndex)!=105 && str.charCodeAt(firstVowelIndex)!=111 && str.charCodeAt(firstVowelIndex)!=117 && str.charCodeAt(firstVowelIndex)!=65 Continue reading

  • JavaScript: Convert to Roman Numbers

      function convertToRoman(num) { var romanNumberMap = { 1: “I”, 2: “II”, 3: “III”, 4: “IV”, 5: “V”, 6: “VI”, 7: “VII”, 8: “VIII”, 9: “IX”, 10: “X”, 20: “XX”, 30: “XXX”, 40: “XL”, 50: “L”, 60: “LX”, 70: “LXX”, 80: “LXXX”, 90: “XC”, 100: “C”, 200: “CC”, 300: “CCC”, 400: “CD”, 500: “D”, 600: Continue reading

  • JavaScript: Array Manipulations

    Remove all elements from the initial array that are of the same value as the arguments: function destroyer(arr) { for(var j=1; j<arguments.length; j++){ arr = arr.filter(checkVal, arguments[j]); } return arr; } function checkVal(value){ return (value != this); } destroyer([1, 2, 3, 1, 2, 3], 2, 3) should return [1, 1]. destroyer([1, 2, 3, 5, 1, Continue reading

About Me

Senior Software Engineer professional with over 16 years of success with multiple open source technologies and various Content Management platforms and solutions.

Proven technical abilities through numerous projects involving enterprise web application design and development, application installation, configuration and support, and workflow and collaboration system designs.

  • Ability to learn new technologies and platforms quickly and apply them to the task at hand.
  • Excellent analytical skills, and strong communication and collaboration abilities.
  • Technical emphasis in including but not limited to Java, Ruby on Rails, Documentum and Alfresco
    in both Linux and Windows based environments

Newsletter