REST is a stateless, cacheable client-server communication protocol and stands for Representational State Transfer (ReST). It is an architecture style for designing networked applications that uses simple HTTP requests to make calls between machines. This approach makes it easier to have direct communication between devices, rather than implementing complex mechanisms like COBRA, SOAP or RPC. Applications that are using REST as the standard way to communicate are called RESTful applications. These applications are using HTTP requests to create, read, update and delete data (CRUD operations).
OPSWAT uses NetSuite as its CRM and ERP system. Our engineering team has been integrating with NetSuite through its various APIs, to transfer information in and out of the system. As our product family offering has grown, we have needed to constantly maintain and update this information flow by updating the NetSuite scripts. This process has been prone to human error and very challenging to debug as deep NetSuite knowledge is needed in order to trace down sources of issues. Faced with these issues, our engineering team began looking for a solution to externalize the logic for the routing of information from within the NetSuite scripts. In addition, we wanted to make sure that we had tight coupling between our systems, so that if a particular system is unavailable, we would still be able to update records in NetSuite without compromising data consistency.
Hardware modification and hacking has always been a passion of mine, so when I was given the opportunity to develop a prototype for a more portable version of our Metadefender kiosk I was excited to take on the challenge. When I was originally introduced to this project, there were multiple tablet pedestals identified as possible kiosk alternatives. The Lilitab product I was most interested in was designed for an iPad, but Metadefender runs on Windows, so I did some research and found they have an alternative mount that will accommodate a Microsoft Surface Pro.
If you pay attention to Amazon Web Services (AWS), you may have seen an announcement about a year ago that hosting would soon be available in China (Beijing). And if you’ve looked into it, you no doubt noticed that it’s not truly part of AWS – it’s actually a separate company (a joint venture) and requires a separate account. While many of the services are the same, they lack much of the seamless integration with the broader AWS ecosphere.
Perl is one of my favorite scripting languages for quickly automating small tasks. For better or for worse, it’s still my go to language when I need to do something quick and dirty like parsing XML and sending an email based on the results (just try doing that in a batch file!). Using XPath and the Lib::XML Perl module I can parse anything out of an XML file instantly. Unfortunately, the more recent versions of ActiveState Perl on Windows platforms don’t come with a Lib::XML module for you to download so you have to compile it yourself. It wasn’t as straightforward as with other modules since Lib::XML has several dependencies and seems to be mostly maintained with Linux users in mind. For easy-to-follow instructions on installing Lib::XML Perl Module on Microsoft Windows, please refer to the steps below.
Until now, most average Amazon (AWS) users could effectively ignore the distinction between paravirtual instances (PV) and hardware assisted virtual instances (HVM). HVM was a technology reserved for high performance, large-capacity use cases. EG: 10Gbe LAN connection, >64 GB RAM, etc. But with changes being made in AWS, all users can and should be considering HVM for their instances.
Monitoring and maintaining large-scale, complex, highly distributed and interconnected systems can be extremely challenging for network administrators. Traditional IT management approaches are ill-equipped to handle the complexity of today's application architectures and deployment environments. It's common that an IT admin would support hundreds of machines in an enterprise network daily, but having to physically run down to each machine individually in order to issue a simple command is not acceptable. Therefore, being able to execute system commands remotely without too much additional pre-configuration is always a welcomed and appreciated solution.