The following post outlines an architectural design of intermediate complexity for DeepSee. As in the previous example, this implementation includes separate databases for storing the DeepSee cache, DeepSee implementation and settings. This post introduces two new databases: the first to store the globals needed for synchronization, the second to store fact tables and indices.

5 5
0 735
InterSystems Developer Community is a community of 20,242 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!

One of the many benefits of using Atelier for your ObjectScript development is its integration with a wide range of source control systems. This integration enables you to use modern development workflows which increase collaboration while minimizing the risk inherent to volatile code bases.

Veteran ObjectScript developers can tell you about the workarounds that were needed before they could use source control systems with products like Caché and Ensemble. One of these was to treat the data store itself effectively as a code repository. And so shared development environments became essential for many of our customers to be productive and successful.

For code shops that rely on shared development environments, adopting Atelier might seem too complicated. This article aims to provide a practical example to guide your team towards success with Atelier.

You can find an overview of the problems and solutions in this article here, which is a good place to start. This article assumes that you are familiar with the concepts introduced there.

8 1
0 870

There's a new and exciting enhancement to QEWD that has just been released - it's an additional layer of abstraction known as QEWD-Up. QEWD-Up hides away all the mechanics of QEWD itself, allowing you to focus on just your REST APIs and the code that implements them.

Additionally, and importantly, QEWD-Up simplifies the maintenance of your REST APIs, allowing you (and others) to quickly and easily understand their life-cycle and implementation.

3 3
4 807

Hey Developers!

Advent of Code 2018 is over! Thanks for participating in our small but productive COS marathon!

And now we're pleased to introduce the winners and distribute all the prizes!

Big applause goes to these winners:

Fabian Haupt (w/ repo: github.com/kazamatzuri/AoC)

Bert Sarens (w/ repo: bitbucket.org/bertsarens/aoc2018/)

Dmitry Maslennikov (w/ repo: github.com/daimor/AdventOfCode)

4 0
0 324
Article
· Dec 28, 2018 2m read
Docker-compose default network conflicts

I recently had to diagnose a networking problem I was having when attached to our corporate network. I was seeing an unknown bridge network being defined that shared the same IP address space as the company network thus blocking access to company resources. This bridge network was separate from the Docker0 bridge network which the docker engine sets up. Docker was configured with a bip (bridge ip) address to prevent docker form using an address space that create a conflict.

1 2
1 5.2K

Hi Community!

New session recording from Global Summit 2018 is available on InterSystems Developers YouTube Channel:

An Outlook on Scaling Out

https://www.youtube.com/embed/lyACfOWDFFg
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

0 0
0 240
Article
· Dec 27, 2018 2m read
Use %XML.Node to walk a DOM

The following code walks a DOM using %XML.Node. It also prevents %XML.Writer to change whitespace. Run the code using the class method "test":


Class objectscript.walkDOM Extends %Persistent
{
    ClassMethod dfs(node As %XML.Node)
    {
        s entrynode=node.NodeId
        do {
        //element nodes with one whitespacetyped child are the ones we want to change
        if (node.NodeType=$$$xmlELEMENTNODE){
            s snode=node.NodeId     
            if (node.MoveToFirstChild())            
                {
                    i ('node.MoveToNextSibling()){
                        i (node.NodeType=$$$xmlWHITESPACENODE){
                            s node.NodeType=$$$xmlTEXTNODE
                            s node.NodeId=snode
                        }
                    }
            }
            s node.NodeId=snode     
        }   
        if (node.HasChildNodes()){
            d node.MoveToFirstChild()
            d ..dfs(node)
        }
        } while (node.NodeType'="" && node.MoveToNextSibling())
        s node.NodeId=entrynode
         
    }
     
    ClassMethod test()
    {
      set xml = "abcdefg"
     
      s reader=##class(%XML.Reader).%New()
      do reader.OpenString(xml)  
      set writer = ##class(%XML.Writer).%New()
      //do some magic
      d ..dfs(reader.Document)
       
      w !,"with indent=1:",!
      set writer.Indent = 1
      do writer.OutputToString()
      do writer.Document(reader.Document)
      w writer.GetXMLString()
      set writer.Indent = 0
      w !,"with indent=0:",!
      do writer.OutputToString()
      do writer.Document(reader.Document)
      w writer.GetXMLString()
    }
}

Here's a link to the code on GitHub: https://github.com/intersystems-community/code-snippets/blob/master/src/...

1 0
0 336
Question
· Dec 19, 2018
How to deal with Large PDF

Hi

We have a few large PDFs coming into our engine - when it goes thru the Process and hits the Data Transformation it gets cut off before it sends it outbound to the receiving system.

Whats the best way to handle large PDFs?

0 4
0 517

Hi Community!

Thank you for being with InterSystems Developer Community yet another year! We appreciate it very much!

We want to know how helpful DC for you today and how could we make it better.

Could you please go through this short 5 min survey which will let us know what do you think about DC and what could be improved.

We wish you a Merry Christmas and a Happy New Year!

Sincerely,

Your InterSystems Developer Community Team

1 0
0 201

InterSystems products (IRIS, Caché, Ensemble) already include a built-in Apache web server. But the built-in server is designed for the development and administration tasks and thus has certain limitations. Though you may find some useful workarounds for these limitations, the more common approach is to deploy a full-scale web server for your production environment. This article describes how to set up Apache to work with InterSystems products and how to provide HTTPS access. We will be using Ubuntu, but the configuration process is almost the same for all Linux distributions.

7 2
9 2.6K

I am trying to use Entity Framework with Visual Studio 2017. After following the Intersystems documentation ("Using the Caché Entity Framework Provider") I still cannot see the data source in Server Explorer. Any ideas why?

1 9
1 1.1K
Question
· Dec 20, 2018
RemoteDatabase Creation Error

How to configure Remotedatabase into our local instance. While connecting remote database i am getting "ERROR #463: Database C:\InterSystems\HealthShare2\mgr\Remote\ is not allowed for ECP Mirror Connection". so can anyone help me to sort this out.

0 1
0 186

Hi,

I'm working on my first SQL service using the SQL inbound adaptor, and I'm having trouble.

I've been following the documentation but it errors on set req=##class(ESQL.request).%New()

Would anyone be kind enough to share a working example?

Kind regards,

Stephen

0 1
0 470

Hi Community!

Please welcome a new video on InterSystems Developers YouTube Channel:

Alexa: Connect Me with the World of IoT

https://www.youtube.com/embed/ZGYIdCTEqoQ
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

1 0
1 613

I've been looking at the idea of developing a Time Travel Debugger utility.

It would take a debug target and have a few options such as stack depth and disclude system code.

The debugger would either be started from an external tool, or triggered from a line of code inserted into a method that I want to record.

The debugger would execute the code from start to end and record the full stack on each step to the configured depth.

0 4
0 400