Evgeny Shvarov · May 25, 2017 go to post

Yes, you are right and I agree. George, thank you very much for thorough explanations.

Evgeny Shvarov · May 25, 2017 go to post

So, it's never safe to go without storage schema (even with default storage schema) if you want to either to delete or add new class properties.

Evgeny Shvarov · May 24, 2017 go to post

So, in the end, if I want to store in VCS only class body (without storage schema)  it is safe to do it if:

I use only default storage schema in this project;

I never delete properties and use "deprecated" clause instead.

Right?

Evgeny Shvarov · May 24, 2017 go to post

Right. But I would never delete and change the name of the properties if you have the data behind them already. I prefer "deprecated" approach of "deleting" unused properties.

I think it is a good candidate for another question. 

Evgeny Shvarov · May 24, 2017 go to post

Yes, sure. If you customized the default storage (which is not very recommended, see @Kyle Baxter's answer) on purpose it becomes the part of the solution and should be stored in VCS along with class def. 

Evgeny Shvarov · May 24, 2017 go to post

If you have customised the storage schema

But how can I customize it? Do you mean manually?

When I export the class def to the file I have the regenerated schema every time. So the only way to customize it is to change the schema manually in exported file. And this would be the risk to experience problems after importing that class.

To be clear, I do keep schema with the class def in Git and I never ever changed (hope so) this part of the class definition. It is useful for me only for information purposes to know where  the data is stored.

 So here is my question: why should I export and keep this part of class def if I don't want to know where is the data and don't want to have risk to manually change the storage data?

This can have serious consequences as data may get stored in a different place from data stored by previous versions of the class.

I believe if you change properties and indexes of the persistent class it would definitely cause  serious consequences on the data of previous versions of the class (but happily here we have the recipe of data conversion and etc).

Evgeny Shvarov · May 24, 2017 go to post

Why not: if you import the class without schema it would be generated automatically according to the class description.  So why to export and keep it in VCS?

Evgeny Shvarov · May 22, 2017 go to post

Hi, Rubens!

Thanks for sharing this!

I like to see UDL code in sources and folder=package structure for the source code.

Few ideas:

Why not save code without txt extention? Cls would go with .cls, include files with .inc and etc, like in this project, or  this project or in that one.

Would you please share a small screencast video of the general use cases which shows the key advantages and benefits?

Thank you in advance!

Evgeny Shvarov · May 22, 2017 go to post

First with tools we already have here: drupal and solr.

We keep iFind and iKnow in mind, already did first approach to iKnow Analytics and I think it would be a nice option too.

Evgeny Shvarov · May 20, 2017 go to post

Hi, Ed! Thanks!

I was looking if we have something "out-of-the box" for DeepSee pivots and dashes testing. 

Yes, I think it would work for pivots. We have dashboards also. Any thoughts?

Evgeny Shvarov · May 20, 2017 go to post

Hi, Arockia!

InterSystems Caché is multi-model DBMS - see the official information. Caché comes with 3 models "out-of-the box": Globals, SQL, Caché Objects.

Everything in Caché is stored in Globals, which are multidimensional key-value indexed variables with persistent nature.  The good visible explanation of "what is global" you can find in this Merge command article, or in @Rob Tweed's article.

"Multi-model" means that:

- you can store data in the same database with different data models simultaneously.

- you can access the same data via different data engines if the data models are compatible: e.g.  you can operate with same data via Caché SQL, Caché Objects and Globals because they are compatible. Need to notice, that if you want to access globals, which are part of storage schema for Caché Objects and SQL it is safe to access only for read manipulations(or you should be very confident in what are you doing). For other types of manipulation better use documented model-related functions.

- you can use the data models which come "out-of-the box" (Globals, SQL, Caché Objects) and you can implement your own data-manipulation library with Caché ObjectScipt or bindable languages which would store the data in Globals in your own way, structure and logic. Using this approach you can implement literally any data model e.g. graph, document store, key-value, your-own-unique-extraordinary-database-model, but you would be responsible for the  support as well ;)

Hope that helps.
 

Evgeny Shvarov · May 18, 2017 go to post

Hi, Lasse!

Thanks for the input.

It's not off topic, but a new good question. Would you please introduce it as a new question  regarding security setup in REST and refer to the article? 

You can use member mentioning to ping the member you want to participate in discussion. 

Thank you in advance!

Evgeny Shvarov · May 18, 2017 go to post

Hi, Ponnumani!

$$ is a  way to call label with parameters  in mac or int code and get the result.

See your previous question and answers about that.

$$$ is the way to call macros which was previously defined with #define directive.

See the good article about macros by @Eduard Lebedyuk

And mark this answer as "accepted" if it goes for you ;)

Evgeny Shvarov · May 17, 2017 go to post

Hi, Vibha! Why do you need that? Why not create new namespace and start there?

I would not recommend you to develop anything in SAMPLES namespace. One of the reasons why not is that it would be erased and updated with every Ensemble version update.

If you want the packages from samples you can easily transfer them to your new namespace.

Evgeny Shvarov · May 15, 2017 go to post

Hi, Ponnumani!

Please see some introductory articles from @[Benjamin.deBoe] e.g. Getting started with Text CategorizationiKnow demo apps (part 1) - Knowledge PortaliKnow demo apps (part 2) - Set Analysis demoiKnow demo apps (part 3) - Dictionary Builder DemoiKnow demo apps (part 4) - Rules Builder Demo, and I would suggest to see all the Benjamin's articles and I'm sure articles with iKnow tag would be helpful for you too.

And please see this iKnow playlist on Developer Community video channel.

Evgeny Shvarov · May 12, 2017 go to post

If you can share something which even not cover $LB it would be already suitable for a lot of "Config-in-Global" cases. 

Evgeny Shvarov · May 12, 2017 go to post

Hi, Colleagues!

We have a nice Follow member option, which gives you the way to be notified for all the contributions of a given member.

Here are the Top 10 most visible authors in April.

Number on the right shows the sum of unique views of author's articles gathered in April.

Top 10 Authors to Follow

Chris StewartPosts,  1639

Sean ConnellyPosts,  745

Ward De BackerPosts,  518

John MurrayPosts,  376

Evgeny ShvarovPosts,  216

Eduard LebedyukPosts,  184

Dmitry MaslennikovPosts,  164

Fabio GoncalvesPosts,  128

Daniel KutacPosts,  122

Alex LitkovetsPosts,  108

Top experts shows the sum of positive votes for answers member gathered in a given month.

Top 10 Experts

Sean ConnellyAnswers,  +15

Eduard LebedyukAnswers,  +11

John MurrayAnswers,  +9

Nicole AaronAnswers,  +6

Fabio GoncalvesAnswers,  +5

Timothy LeavittAnswers,  +3

Evgeny ShvarovAnswers,  +3

Dmitry MaslennikovAnswers,  +3

Anil MathewAnswers,  +3

Brendan BannonAnswers,  +2

We would add this "Who to follow" lists in next monthly articles digests.