• Skip to main content
  • Skip to footer

INT

Empowering Visualization

COMMUNITY BLOG
CONTACT US SUPPORT
MENUMENU
  • Solutions
    • Overview
    • Real-Time Visualization
    • Visualization Components
    • New Energy Visualization
    • OSDU Visualization
    • Machine Learning
    • Developer Tools
    • Cloud Partners
  • Products
    • IVAAP™
          • SOLUTIONS

            Real-Time Visualization

            OSDU Visualization

            Visualization Components

            New Energy Visualization

            Upstream Data Visualization

          • SUCCESS STORIES

            WEATHERFORD
            Well delivery optimization software

            BARDASZ
            Data management, data quality monitoring

            ANPG / SATEC-MIAPIA
            Virtual data room

            MAILLANCE
            High-performance visualization of ML algorithms

            SEE ALL >

          • SUPPORT

            DEVELOPER COMMUNITY
            Join or log in to the INT Developer Community.

            GET SUPPORT
            Log a ticket for an issue or bug.

            CONTACT US

          • DEMOS

            IVAAP DEMOS
            Cloud-Based Demos

            FIRST TIME HERE?
            Register to access our
            IVAAP demos

    • GeoToolkit™
          • SUCCESS STORIES

            CAYROS
            Field development planning

            TOTALENERGIES
            High-performance large dataset reservoir rendering

            IFP ENERGIES NOUVELLES
            Seismic and structural interpretation validation

            SEE ALL >

          • SUPPORT

            DEVELOPER COMMUNITY
            Join or log in to the INT Developer Community.

            GET SUPPORT
            Log a ticket for an issue or bug.

            CONTACT US

          • DEMOS

            GEOTOOLKIT DEMOS
            Geoscience Demos

    • INTViewer™
          • SUCCESS STORIES

            STRYDE
            Fast seismic QA/QC in the field

            SILVERTHORNE SEISMIC
            Efficient 2D/3D seismic data delivery

            WIRELESS SEISMIC
            Drones, IoT, and Advanced Onsite Seismic Data Validation

            SEE ALL >

          • SUPPORT

            GET SUPPORT
            Log a ticket for an issue or bug.

            CONTACT US

          • PLUG-INS

            EXTEND INTVIEWER
            More than 65 plugins available

  • Demos
    • GeoToolkit Demos
    • IVAAP Demos
  • Success Stories
  • Resources
    • Blog
    • Developer Community
    • FAQ
    • INT Resources Library
  • About
    • Overview
    • News
    • Events
    • Careers
    • Meet Our Team
    • About INT

IVAAP

Jan 31 2020

What Is Kubernetes?: An Introduction and Overview of the Popular Platform

Over the last several years, Kubernetes has been a developing trend in the tech world, gaining popularity as more and more companies begin to take advantage of cloud-based services. As a non-developer living in a developer world, I wanted to understand more about why we develop our software to work with Kubernetes. So I sat down with INT’s Senior Product Manager Steven Reynolds and Senior Architect James Velasco to learn more about Kubernetes and the advantages of working with it.

Christin: So, Steven, tell me — what in the world is Kubernetes??

Steven: Kubernetes is described as an orchestration platform. It’s usually associated with getting big software up and running. For example, with some of our clients, we have our build set up so that all of the software assets are pushed out and deployed using Kubernetes which takes care of monitoring (pods). If a pod fails, Kubernetes will restart it, and it has nice hooks that can spin up new pods if there’s too much work for one pod to handle.

Christin: What are the advantages of using Kubernetes?

James: Traditionally, you have a service provided by a server. If you migrated, changed, or updated the service, there would be a lot of work to change or configure, set up the new server providing it, and with cloud and cloud providers like AWS, they are moving to automating things. So instead of manually going in and doing all of it, you have tools to automate updating an old version, and switching over to the new one automatically.

Christin: The term microservices is used with Kubernetes — can you go into what microservices does?

James: Microservices is an architectural trend happening right now. Instead of having one big server running everything for a web service, you may have that same web service decomposed into little servers that do separate, well defined parts.

Steven: So the idea of Kubernetes and microservice are different concepts, but they’re talked about together. When using a microservice architecture, it’s an advantage, but it’s also a headache to keep track of all the components.

Christin: So when is it best to use Kubernetes?

Steven: We have 15 to 20 services, and it’s a headache to manage, but you can use Kubernetes to help organize it and help it be more manageable for human beings. There are trade-offs because it makes it better to manage, but there are many tradeoffs as in anything else. It’s the engineer’s dilemma.

James: It tends to only be an advantage if you’re managing a lot of services. So if you’re just managing one or two, then it’s iffy. But if you’re managing 10+ or even just 4 or 5 and those 4 or 5 are made up of 10 or 15 subparts, that is when it makes sense. If I divided all my services like that I may have 10 or 20 and then you may have other vendors or services and you can literally have 100 to 200 of these things. You have to swap out in a unique order and all need to come up and down and all need to be monitored, so that’s what Kubernetes helps you do. Kubernetes is also great to scale up or down.

Christin: That’s really cool. So, Steven mentioned that we have built projects to run on Kubernetes. Does that mean IVAAP can be supported on Kubernetes if requested?

James: Kubernetes is one of the environments that IVAAP targets, if a client requests it. It’s important that we do support it because it is one of the modern deployment styles. And it is common that clients use IVAAP running on Kubernetes. Some clients use Azure or AWS so we have to make sure we can run in all different environments.

******

So there you have it. As a growing trend in software development, Kubernetes can be a better way for companies to deploy and maintain software quickly, especially in a cloud environment. For INT, supporting Kubernetes is an important aspect of how we help meet the needs of our many diverse clients. For more information on IVAAP, check out int.com/ivaap or schedule a demo with one of our team.


Filed Under: IVAAP Tagged With: AWS, Azure, cloud, ivaap, microservices

Sep 16 2019

Bluware and Interactive Network Technologies, Inc. (INT) Secure Strategic Partnership

INT and Bluware Partner to Offer Volume Data Store (VDS) Seismic Data Format as part of Open Subsurface Data Universe (OSDU) Release 2

HOUSTON, TX – September 16, 2019 – Bluware Corp., the digital innovation platform for seismic data, is pleased to announce a strategic partnership with Interactive Network Technologies, Inc. (INT), a leader in multi-domain visualization in exploration and production (E&P).

Bluware and INT are early members in the Open Subsurface Data Universe (OSDU), a forum focused on developing a standard that creates a common data platform for all exploration, development, and well data. The standard will transform the way subsurface data is captured, analyzed, and operated.

INT and Bluware are collaborating to integrate Volume Data Store (VDS), a data format with adaptive streaming technology for seismic data storage, into IVAAP, an upstream data visualization platform.

Bluware has more than 20 years of experience enabling customers to store, access, and utilize large signal datasets. At the core of Bluware’s technology portfolio is VDS, which can intelligently manage all types of seismic data, including pre-stack, post-stack, WAZ, and more as demanded by an organization’s business needs, workflows, and infrastructure requirements. It can also transfer legacy formats such as SEG-Y or SEP using advanced on-the-fly transcoding on-premise or in the cloud.

INT has 30 years of experience in subsurface data visualization. IVAAP is an HTML5 data visualization platform for E&P workflows in the cloud that empowers product owners, developers, and architects to accelerate the delivery of subsurface digital solutions for oil and gas. Rather than develop complex G&G and petrophysical visual workflows from scratch, companies can leverage the IVAAP platform and customize it in a fraction of the time. Deployable in any cloud environment (Azure®, GCP®, AWS®), IVAAP can scale to meet the needs of tens to thousands of users.


“We are excited about this partnership. IVAAP multi-domain data visualization will benefit from the adoption of VDS optimized seismic format. Together, the technologies will significantly increase the velocity at which G&G business decisions can be made,” says Dr. Olivier Lhemann, President and Founder of INT.


This partnership will result in the integration of VDS for current IVAAP customers at the end of October 2019. Later this year, INT will offer IVAAP for OSDU Release 2, which will include full support for OpenVDS, the open source version of VDS.


“We are excited to welcome INT to the Bluware platform. The IVAAP solution is one of the first cloud-native visualization solutions in E&P. INT’s extensive industry experience brings further validation to the Bluware platform. Our partnership expedites digital transformation initiatives for our customers looking for early success in their journey to the cloud,” says Dan Piette, CEO at Bluware.


About Bluware Corp.
Bluware enables oil and gas companies to solve the most challenging objectives in the petrotechnical world. E&P companies use Bluware to achieve previously unthinkable workflows using cloud computing, artificial intelligence, and interactive machine learning for seismic data applications and workflows. For further information, visit www.bluware.com.

About Interactive Network Technologies, Inc. (INT)
For three decades, we’ve created products that help oil and gas companies visualize, monitor, and analyze their data. From customizable widgets to out-of-the-box applications, our expert visualization solutions offer unparalleled flexibility for both scientific industries and business, and our HTML5/web-enabled visualization technologies are rock-solid and network-secure. For further information, visit int.flywheelstaging.com.

For more information about IVAAP or INT’s other data visualization products, please visit int.flywheelstaging.com.

Read the press release on PRWeb.

INT, the INT logo, and IVAAP are trademarks of Interactive Network Technologies, Inc., in the United States and/or other countries.

Open Subsurface Data Universe™ and OSDU™ are trademarks of The Open Group.

Filed Under: HTML5, IVAAP Tagged With: Bluware, ivaap, OSDU, VDS

May 15 2019

5 Simple Techniques to Avoid Bugs While Programming

Programming is an activity that requires a special set of cognitive skills. While the industry has developed processes and tools to ensure the quality of software artifacts, the act of writing code is a craft in itself. Developers pride themselves on the “big picture” results they achieve, but the activity of programming is definitely a humbling experience: It’s easy to introduce bugs, and regardless of whether I catch them right away or later in the pipeline, I hate to be reminded I am inherently flawed and have introduced a defect. For this article, I will focus on simple methods to avoid bugs, not before or after you write code, but while you write that code.

Leverage the Hints from the IDE

This one should be obvious to most programmers, but the reality is that the tools we use are a bit smarter than what we give them credit for. It’s easy to miss these hints. They are sometimes buried in build logs, drowned in a sea of flags, visually too subtle to attract our much-needed attention. Listen to your Integrated Development Environment (IDE)—it is telling you something.

One of the most obvious signs that something is up with your code is when the IDE tells you that you are not using a variable you introduced earlier in your code. You had some intent for this variable, but that intent got lost while working on some other aspect. There is certainly a bug lurking there.

Another useful alert is when the IDE detects that there is a logical path for a NullPointerException. Maybe the most common case is well taken care of, but there seems to be a road less-travelled to this ubiquitous exception.

The activity of writing code forces you to concentrate on the text you are typing while keeping a stack of other concerns in mind. This cognitive load is already heavy; I like to reduce it by removing ambiguities. The IDE will tell you when you are using the same variable name for an instance variable and a local variable. I don’t need to risk being confused about which one I am manipulating. I’ll follow my digital assistant’s advice and rename the local variable in question.

Break up Your Content

The brain can only keep so much information. And each coding window only shows you about 50 lines. When the code grows, so does the likelihood of bugs, just from not remembering details implemented a few invisible lines away. One simple technique to avoid such troubles is to break up the code. Keep the methods short. Ideally, a well-focused class shouldn’t have more than 200 lines. It’s not always possible, but where it is, you can avoid bugs when each class has only one responsibility. The class’ code itself is easy to review, and its function is easy to remember in other contexts. If you just wrote a large body of code in one class, it’s time to break it up into smaller pieces.

This is nothing new. When the metric of cyclomatic complexity was developed in 1976, its first applications tried to limit the complexity of each module, splitting them into smaller modules. These modules became easier to write, and easier to test, too. If the most likely place for defects is where complexity lies, reducing complexity automatically reduces the rate of defects.

It’s not just the height of your screen that matters when having “too much to code” might be “too much to cope.” The width matters, too. This is actually a classic source of bugs: a line goes beyond what’s visible without scrolling, meaning it’s not being looked at as often as other lines. Code reviewed less is more likely to be incorrect. Long lines are also bug candidates when overly confident IDEs autofill their content over the developer’s watchful eyes. The simple solution is to break up these long lines, for example, inserting carriage returns when they go over 120 characters. The IDE will often show you this limit graphically.

Use the Java Type System

Object-oriented programming is a great way to abstract sequential instructions into relationships and behaviors. The Java type system is quite powerful. When two pieces of code interact, the parameters of this interaction typically need to meet specific type requirements, so the compiler will prevent code being typed from using the wrong object type in the wrong context.

You can use this type checking to your advantage to reduce opportunities for bugs. Writing a program often requires code where mundane objects are being passed around—a collection of names, an Integer identifying a record, etc. If you inadvertently pass the wrong list of Strings, the compiler won’t be any help. Instead of passing List<String> or Integer, create your own objects, such as “NamesCollection” and “RecordId.” By forcing the passing of functional objects instead of generic ones, you will know immediately, as you type, that you just picked up the wrong collection or the wrong number.

Don’t Leave Your Code to Chance

I have seen many cases where two (or more) classes have the exact same name. They have different package names, but package names are hidden away at the very beginning of each class that uses another class. It’s a good idea to give classes unique names across your code base. This will make sure there is no ambiguity around which one a developer is using. Murphy’s law is not your friend—you will inevitably pick the wrong one otherwise.

The behavior of HashMaps may also be a source of hard-to-troubleshoot bugs. The Java Virtual Machine tends to optimize the behavior of HashMaps when the application load grows. What this means for developers is that you will observe one behavior during development, and a different behavior in production. To avoid this kind of head-scratching riddle, I have learned to use LinkedHashMaps even when not needed as they will always return entries in a consistent manner. This is a trick to use wisely: the performance cost of using LinkedHashMaps should be weighed against the risk of having to solve a problem that only happens in production.

Reuse Existing Code

At the end of the day, there is so much to keep track of, just writing code is doomed to produce bugs. The simplest way to avoid writing bugs is not write any code at all, and leverage some other battle-tested component instead.

Reusing code is the ultimate simplification technique, but I am not just talking about integrating other people’s work into your own software. The code you already have is the result of many refactorings. It has real-world experience you are missing (or that you forgot). Use the code you already have as your template. If the quality of your template is not what you need, refactor this code, then reuse it. There shouldn’t be in your program “two best patterns” to do the same thing.

As I implement a new feature, I typically look at similar code doing similar things: how classes, methods, and variables are (meaningfully) named, which properties and behaviors are exposed, how objects interact with each other, etc. In all the bodies of code I have maintained for several years, I have found that consistency is the easiest constraint to follow, to teach, and the one that brings the most benefits in terms of overall quality.

Filed Under: GeoToolkit, HTML5Viewer, INTViewer, IVAAP Tagged With: developing, IDE, java, programming

Apr 25 2019

The Right Tools to Develop with the IVAAP Backend SDK

One of the unique features of the IVAAP backend SDK is that you can develop your own data connectors and services with the IDE you are already familiar with. The data backbone of IVAAP is meant to be deployed in a cluster made of multiple nodes for scalability and reliability. However, despite the distributed nature of such a deployment, our SDK requires no particular plugin to compile or execute your code. The tools needed to develop a plugin for IVAAP’s backend are identical to the tools you would need to develop classic Java Servlets: a Java SDK (Oracle, OpenJDK), an IDE (Eclipse, NetBeans) and an application server (Tomcat, Glassfish).

From this description, you might think that once you have installed these three components, the installation phase is over. In reality, there are many other tools that are needed on a daily basis to get the job done. I did a brief survey among INT backend developers, and these are some of the tools I found to be commonly installed on their PCs. While some developers may use Linux, for this article we’ll focus on tools found in a Windows environment.

Postman: This is probably the tool backend developers use the most. The IVAAP backend uses a REST API to send data to the front-end, and using Postman is the main way to debug such web calls. The backend’s JSON API uses HATEOAS links, and Postman makes it a breeze to navigate these links. Postman keeps a history of all HTTP calls you tried, measures their performance and is compatible with IVAAP’s default authentication system (OAuth 2.0 bearer tokens).

Google Chrome: This seems obvious since IVAAP is a web-based application. While backend developers don’t work on the user interface, a browser is always needed to validate that the backend and front-end work together well. Google Chrome is preferred because it includes a well-designed “Developer Tools” window allowing an investigation of the HTTP calls made by the HTML5 client. To troubleshoot issues visible on the client, you typically don’t need to know how this client is written, just which HTTP calls it makes. Google Chrome exposes this information very clearly to backend developers, including real-time data passed through web sockets.

Notepad++: The moment you have automated builds, you have configuration files to maintain. While you could use Windows’ built-in Notepad application, Notepad++ is a necessary upgrade: it handles gracefully carriage returns from Linux files and makes it easy to compare the content of two documents. It also provides syntax highlighting, all while keeping Notepad’s advantage against IDEs: it opens text files fast.

Git Extensions: While most of our code will be pushed to our Git repository through the IDE, build configuration files are typically maintained outside of that IDE, requiring additional tools accessible from the file system. Git Extensions provides a graphical interface to Git, and often does a better job than IDEs at showing file revisions.

JProfiler: JProfiler is generally used in two cases: to verify whether the backend has memory leaks, or to detect bottlenecks in the code. It’s one of the rare items in this list of tools that is not free. I found it superior to IDE’s built-in profilers (easier to use and more features), and well worth the purchase.

DbVisualizer: Lots of geoscience data stores are SQL databases. DbVisualizer is versatile—it can connect to all types of database (Oracle RDBMS, Microsoft SQL Server, PostgreSQL, etc.). Writing a connector for a particular database would be impossible without being able to visualize the raw data. You could opt to use the IDE’s built-in SQL tools, but DbVisualizer is also used by project managers (and sometimes clients) to inspect the data you are working with. Using the same software across all stakeholders saves time.

dbKoda: Another popular data repository for geoscience data is MongoDB. To develop IVAAP’s “mongo” connector, developers need a graphical way to inspect data. dbKoda allows you check the syntax and execution of queries, both for reading and writing data. MongoDB Compass Community can be used instead to browse a large number of records at once.

Microsoft Azure Storage Explorer: IVAAP has connectors for Amazon AWS S3, Microsoft Azure Blob Storage and Google Cloud Storage. All these cloud vendors provide a web interface to browse, upload, and download data from the cloud. I prefer to use a desktop application such as Microsoft Azure Storage Explorer when I work with Azure’s Blob Storage. It makes it easy to visualize what’s in a repository and provides a reliable way to upload geoscience datasets. It works for demos as well—when I need to demonstrate an ingestion workflow with INT’s tools, Microsoft Azure Storage Explorer provides a graphical way (“just drag and drop”) to upload data.

Liquid Large File Editor: Notepad++ does a good job in many use cases, but when it comes to inspecting server logs, it chokes at large file sizes. The IVAAP backend outputs a generous amount of logs, very useful for troubleshooting issues. This editor makes it easy to inspect the logs of a server, even after it has been humming along for weeks. It also comes in handy when you need to create small test data files out of large ones.

MobaXterm: The code of IVAAP’s backend offers many deployment options. No two customers use all options, and picking which options to deploy is a key step to any deployment. When things don’t work as planned, you need to know which modules have actually been deployed. You could interrogate the continuous integration system (Jenkins), but the ultimate way to troubleshoot a deployment is to checkout the files directly. With developers working on Windows and deployments on Linux, MobaXterm is a multi-tab user interface to perform SSH against any Linux server that needs inspection.

Visit our products page for more information about IVAAP or contact us for a demo.

Filed Under: IVAAP Tagged With: ivaap, SDK

Apr 05 2019

A Brief Demo of Machine Learning Applied to Subsurface Data in the Cloud

Over the last few months, there have been a lot of activities and discussions with upstream majors on how to make subsurface data easier to search and discover and how to automate some of the geophysical and/or petrophysical workflows.

This process has typically been very challenging. From a user experience perspective, the ideal scenario would be to do this from one system versus doing this very manually from current siloed applications. We’ve been able to do this successfully here at INT.

Since a picture is worth a thousand words, in this case, we went even further and created a short demo video to better illustrate how this works. In this demo, IVAAP (Enterprise Upstream Data Visualization platform) has been deployed in AWS, and we used a model we applied to existing wells. IVAAP is seamlessly integrated with SageMaker using a standard API. The demo shows how you can easily interact with well data, select a well, apply a model, and visualize the results.

Want to know how to Liberate Your Upstream Exploration Data in the Cloud? Download our latest white paper:

AWS-INT-exploration-data-whitepaper

If you want to learn more about the reference architecture that can be used to deploy IVAAP in an AWS environment, feel free to contact us at intinfo@int.com.

Filed Under: IVAAP Tagged With: Amazon, AWS, ivaap, SageMaker

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 7
  • Page 8
  • Page 9
  • Page 10
  • Go to Next Page »

Footer

Solutions

  • Real-Time Visualization
  • Visualization Components
  • New Energy Visualization
  • OSDU Visualization
  • Machine Learning
  • Developer Tools
  • Cloud Partners
  • Customer Success Stories

Products

  • IVAAP
  • GeoToolkit
  • INTViewer
  • IVAAP Demos
  • GeoToolkit Demos

About

  • News
  • Events
  • Careers
  • Management Team

Resources

  • Blog
  • FAQ

Support

  • JIRA
  • Developer Community

Contact

INT logo
© 1989–2024 Interactive Network Technologies, Inc.
Privacy Policy
  • Careers
  • Contact Us
  • Search

COPYRIGHT © 2025 INTERACTIVE NETWORK TECHNOLOGIES, Inc