Three Open Source javascript UI Tools

Friday, October 30, 2015

This week we have another article courtesy of Todd, our Technical Lead at Robert Stephen Consulting, LLC.  Enjoy!

At RSC, we specialize in installing, hosting and managing ARCHIBUS IWMS systems.  We also write our own software to enhance ARCHIBUS capabilities.  These days, more and more of that software is written in javascript and HTML5.

In this post, I’m going to briefly talk about three open source tools I find make the job of building and managing a javascript user interface simpler.  Here’s the list:
  1. jQuery
    • A set of tools that make it easier to work with DOM objects (among other things)
  2. Block UI
    • A handy tool to “freeze” the UI while something important is happening
  3. mustache
    • A templating tool for easily rendering the contents of arrays and variables
And now a more detailed description of each, and why each is useful:

1.    jQuery

Link:    https://jquery.com/
I’ve been using jQuery for about 6 months now, and know I’m only scratching the surface of what it can do.  I use it to easily find and manipulate DOM (Document Object Model) objects (“find me an object with this ID”), and to easily use ajax to send data to and receive data from the server.  jQuery does a LOT of things:  HTML/DOM manipulation, CSS manipulation, HTML event methods, Effects and animations and Ajax.  It also does some cool things with storing and retrieving data.   It’s probably the most popular javascript library there is, and because it’s open-source, this means there are ALSO a lot of plugins that extend what it can do.  Here’s a great link to get starting finding these:

 https://learn.jquery.com/plugins/finding-evaluating-plugins/

Also, a quick list of the best reasons to use jQuery yourself:
  • jQuery is light; the code needed to run it is small, so it won’t significantly increase the time for server response.
  • Even with all the power it brings to bear, the jQuery library is open source and free.
  • It’s easy to learn; if you can program javascript already, this will just look like a toolbox of easily-mastered shortcuts to you.
  • It’s cross-platform, running on all major browsers and on computers and mobile devices.
To be open about it, there IS some criticism of jQuery by javascript purists, particularly in the way it handles an important component of asynchronous operations called “promises.”  Given the problems it solves, these are problems I’m more than willing to live with.

2.    BlockUI

Link:    http://malsup.com/jquery/block/ 
Speaking of jQuery plugins, here’s one now!  BlockUI  will “freeze” a web page by fading it out, showing a spinning “busy” indicator, and a custom message.  It also prevents user interactions with the page.  This can be very handy when you’re doing things like loading a lot of data in the background, or busy building the page objects, and the code to handle what pushing a button will do.

Once you include the library, blocking the UI, even with a custom message, is pretty easy.  Here’s the code to do it:

$.blockUI({ message: '<h1><img src="busy.gif" /> Just a moment...</h1>' });

Unblocking is just as simple.

I was impressed with this plugin because I’m trying to blend the old and new worlds of forms and javascript for the short term, until I get a complicated form-based UI re-written in modern Responsive Design fashion.  BlockUI (in combination with jQuery) allowed me to handle this gracefully, freezing the whole frameset, instead of worrying about each individual “page” within it.

3.    mustache

Link:    https://mustache.github.io/
Do you have a lot of data (arrays, variables, objects) that you’re trying to show your user as HTML?
Tired of writing loops to get you through the arrays, or “if” tests to decide whether particular things should be shown at all?  mustache is a neat little library that allow you to create what the creators call “Logic-less templates.”  You just include the mustache library, define your HTML as a template, add some specially-formatted tags, then populate the variables, and tell mustache to render the template using the variables.  Simple goodness.  A quick example, so you can see how easy it is: 

A typical Mustache template:

Hello {{name}}
You have just won {{value}} dollars!
{{#in_ca}}
Well, {{taxed_value}} dollars, after taxes.
{{/in_ca}}
Given the following hash:
{"name": "Chris",
  "value": 10000,
  "taxed_value": 10000 - (10000 * 0.4),
  "in_ca": true}
Will produce the following:
Hello Chris
You have just won 10000 dollars!
Well, 6000.0 dollars, after taxes.

As you can see, the tags tend to look like this:  “{{name}}”, and the curly brace on its side looks not unlike a mustache.  So the name is pretty easy to understand.



Like what you read?  Subscribe to the blog and follow us on Twitter, Facebook, Linkedin and Pinterest to keep up to date with the latest news from Robert Stephen Consulting, LLC.

Thoughts? Questions?  Comment below and let us know what you think!  We'd love to hear your insights.

 
Here’s hoping you find these as useful as I have!

October's BAATUG at Monterey Bay Aquairum

Tuesday, October 27, 2015

Last Friday's Bay Area ARCHIBUS Training & User Group (BAATUG) was amazing!  The Monterey Bay Aquarium outdid themselves!  The food, venue, views, training, conversation, and company were all perfect! We are so grateful to have clients who are willing to host our training events.

Here are some images from the training/day.

Isn't this view just gorgeous?!




And the Aquarium's catering department was phenomenal! We ate like Kings & Queens.















 



After the training on SLA's we were allowed access to the Aquarium.  Such a fun and gorgeous place!  This really was the BAATUG of a lifetime!



 

 







Thank you to all our clients who came out for the event.  We can't wait to start planning our 2016 BAATUG events.  If you are interested in attending or hosting, please contact us at training@rsc2lc.com

All pictures courtesy of Megan Fosson Photography.


Like what you read?  Subscribe to the blog and follow us on Twitter, Facebook, Linkedin and Pinterest to keep up to date with the latest news from Robert Stephen Consulting, LLC.

Thoughts? Questions?  Comment below and let us know what you think!  We'd love to hear your insights.

 

10 Keys to a Successful IWMS Integration: pt. 5: Understanding Your Business Process

Friday, October 16, 2015


This week we are excited to bring to you part 5 of our series, 10 Keys to a Successful IWMS Integration: Understanding your Business Process. If you haven't read the previous article, read Part 4: Standards here.













Business processes are a set of structured activities or tasks that will accomplish the goals a company has.  All successful companies have a business process implemented that they consistently follow.

What does a business process have to do with IWMS?

An IWMS contains workflows for carrying out various, organization-specific processes.

Each IWMS has levels of capability and customization, which can be tailored to meet a specific organization’s business process. Therefore, in order to most successfully implement an IWMS into your organization, it is crucial to examine and refine your current business process, then select a system that is powerful and flexible enough to not only fit into your current business process, but to optimize it!

Though many IWMS systems are flexible enough to accommodate a business’ current processes, others require businesses to change their process in order to fit the capabilities of the system.

Example 1: Work Orders

Computerized Maintenance Management System) maintains a computer database of information about an organization's maintenance operations and work orders.  Some work orders are preventative maintenance, which means they are generally a scheduled event fired off on a set increment (3 months, 1 month, 1 week, etc).  When the scheduled work order is initiated, a specific business process, or workflow, will trigger. One such workflow might be that the work order is sent to a dispatcher, who would then pass it off to the proper supervisor, who would then assign it to a craftsperson to accomplish the job.  Once the craftsperson has completed the job, s/he will
update it in the system, which will indicate that the job is complete. Then finally, the supervisor will review the job and send it to Accounts Payable to be closed out.

On the other hand, a less complicated workflow might have the work order sent directly to the craftsperson, notifying the supervisor but bypassing the dispatcher. So the work can begin immediately.

Within a flexible IWMS, the workflow should be able to be modified so that it suits however simple or complicated your business process is.

Example 2: Required Estimate & Approval

Consider an activity for which an estimate and approval is required. In many cases, this means that:
  1. A work request is generated 
  2. A threshold is met that triggers the need for an estimate
  3. The estimate request is routed to the estimator
  4. The estimate is completed and routed to the approver
  5. The approver accepts the estimate and routes the request to the supervisor
  6. The supervisor routes this to the craftsperson
When this happens, the estimate often generates a second approval, which is dropped into a similar dispatching process as described in example one before, requiring various hand-offs and approvals.  

In both of the above examples, a more flexible IWMS could help work on an activity to commence (and likely finish) even sooner.

Having a firm understanding of your business process allows you to select an IWMS that is flexible enough to meet your company's needs.  A successful IWMS implementation will accept your business process in such a way that the system can be modified so there is very little disturbance to the work force.









If you have bought a system that is not robust enough to meet the needs of your company's business process, you may have to alter the what is currently in place or look to another IWMS system.

The benefits of selecting a flexible IWMS are clear - it can easily make any organization more efficient and alleviate unnecessary responsibilities.  However, the vital aspect of every successful IWMS implementation is to first familiarize yourself with  your current business process.  Doing so will allow you to adopt a system that can meet or (ideally) optimize workflows and streamline your entire enterprise!



Like what you read?  Subscribe to the blog and follow us on Twitter, Facebook, Linkedin and Pinterest to keep up to date with the latest news from Robert Stephen Consulting, LLC.

Thoughts? Questions?  Comment below and let us know what you think!  We'd love to hear your insights.

 

Four Free Tools to Manage ARCHIBUS in a Windows Environment










This week's article is brought to you by Todd.  Todd is the Technical Lead at Robert Stephen Consulting, LLC.  RSC specializes in installing, hosting and managing ARCHIBUS IWMS systems.  The article Todd is sharing with us today is one of a series of posts on how to make that process easier.

Most of the ARCHIBUS Environments we build are on the Microsoft Windows Server platform.  In this post, Todd briefly shares some phenomenal tips about four FREE (or nearly free) tools he finds make the job of managing ARCHIBUS in a Windows environments much easier. 

The four tools include:
  1. Notepad ++
    • A text editor with some very nice extra features
  2. Agent Ransack
    • A file search utility
  3. WinDirStat
    • A filesystem management utility
  4. PortQury
    • A Microsoft command line utility for checking the status of TCP/UDP ports

1. Notepad++

Link:       https://notepad-plus-plus.org/
Notepad++ is mostly a text editor.  I know what you’re thinking:  “Well, I already HAVE a text editor.  I don’t really need another one.  Mine works just fine!”

Yes, but can your text editor do these things?:
  • Open a “live” file (like a log) without getting in way of other processes accessing it.  That way, you can look at the log in real time, without making a copy.
  • Search for all the instances of a text string in all the files in a directory you name, and allow you to quickly jump to that string in the file where it’s located.
  • Mark up source code, and help you find missing parentheses or curly braces.  I find the XML, Javascript, Java and HTML options very handy in dealing with ARCHIBUS custom views and their supporting workflow rules.  It’s also quite nice to be able to collapse expand sections of code (like an “if” block) to see how they fit into the larger code flow.
Don’t get me wrong, this isn’t an Integrated Development Environment (or IDE).  It doesn’t require that kind of setup or learning curve.  But it is a very powerful tool that a sometimes-programmer or troubleshooter can use to make their work a lot easier.
I find this very useful when I need to change the way a particular variable is used, or to change all instances of a function call, for example.  It’s very easy to find them all quickly, and to work my way through the search results, updating as I go.

Notepad++ is also more forgiving than other editors I’ve used.  Most will let you “undo” up to the last save.  Notepad++ will let you undo up to the time you opened the file.

2. Agent Ransack

Agent Ransack is a file search utility.  And it’s ALMOST free.  At $10/copy, less for larger numbers, it’s definitely well worth the normal investment.  What it does isn’t complicated, but it is powerful.  Agent Ransack lets you:
  • Search for a filename or directory / folder name
  • Search for text inside the file, including using regular expressions (basically wildcard searches)
  • Specify the time the file was saved, created or last accessed
…all without the files / filesystem in process needing to be indexed, as is needed for Windows Filemanager Search.  And it’s quite fast.

I find these capabilities very useful in finding a file or view in ARCHIBUS’ very complex schema.  WebCentral will give you the filename, but won’t tell you the location.  Agent Ransack solves that problem.

3. WinDirStat

Link:       https://windirstat.info/
It seems that no matter how big your drives are, they’re still not big enough.  How many times have you found that your drive is ALMOST full, then had a very difficult time freeing up the space you need?  It seems like the hardest task is just FINDING the offending file or application.  You have click on the properties of each folder to see its size, then look inside the biggest, look at all the folders there to find where the space is being used up, ad infinitum. 

WinDirStat does all of that for you, and builds a cool and very intuitive visual representation of the things on your drive that lets you INSTANTLY see if you have a very large file gumming up the works.  Often, it’s an old log file that can be deleted instantly once you know where to find it, and your drive is once again healthy and trim.

4. PortQry

OK, this one doesn’t look cool AT ALL.  It’s a Microsoft-written command-line utility without even an install package.  But it’s SO useful.  One of the most common problems in setting up or troubleshooting an ARCHIBUS environment is for components of the application not to connect as they should.  But is the problem with the network or firewall, or the database server setup, or with the Project setup on the ARCHIBUS side?  One of the toughest things to see easily is whether the network port you’re trying to connect to is open and listening, or filtered in some way.  This is what PortQry does.  With a single command line query, you can find that out in real time, and stop fiddling with all the components hoping something will work.

Like what you read?  Subscribe to the blog and follow us on Twitter, Facebook, Linkedin and Pinterest to keep up to date with the latest news from Robert Stephen Consulting, LLC.

Thoughts? Questions?  Comment below and let us know what you think!  We'd love to hear your insights.