发布新帖

查找

文章
· 23 hr 前 阅读大约需 3 分钟

Continuous Delivery of your InterSystems solution using GitLab - Part XIII: Optimizing build times

Welcome to the next chapter of my CI/CD series, where we discuss possible approaches toward software development with InterSystems technologies and GitLab.

Today I want to share a few approaches that will decrease your compilation time (especially if you're doing incremental/diff compilation rather than a full build).

Compiler flags and qualifiers

Code load and compilation are affected by a variety of flags and qualifiers. If you write deployment scripts for InterSystems platforms, I highly recommend reading them at least once through. While most have very specific uses, knowing what is possible can save you a lot of time one day. To list all of them, call:

Do $system.OBJ.ShowFlags()
Do $system.OBJ.ShowQualifiers()

They are also described in the docs. In any case, the most important flag here is u (update only) - if present, it skips compilation of classes that are already up-to-date. In the case where you're doing incremental compilation, having this flag saves 99% of time since only the modified code would be compiled. 
 

Load only the modified code

Recursive Import is good, but if you have a thousand classes and changed only two of them in the last commit, that's 998 classes to load for no reason at all (besides simplicity). Thankfully, git can easily answer questions, such as "what files were changed between commits abc and xyz?" Here's a sample code that accepts two git identifiers (commits, branch names, tags) and returns three lists:

  • Added files
  • Modified files
  • Deleted files

Added and modified files can be simply loaded; however, for deleted files, you'll need to write an extra handler that can determine the class name from the filename. So, in effect, you need to implement the following flow:

  1. Get the last commit hash deployed into the environment.
  2. Get the commit has to deploy.
  3. Build a diff between commits.
  4. Load and compile all added/modified classes.
  5. Delete classes based on deleted files.
  6. Store the latest commit hash (2) in IRIS.

Which is a bit more complicated to implement and maintain than just Import, but you'll considerably decrease load times.

 

Minimize passes 

Ideally you'll call Import and Compile once, each (or just import with compile flags). The worst flow (from the time perspective) is to load and compile each class one by one. While in some cases multi-stage load/compile is unavoidable, try to minimize the number of passes, especially compilation passes. 

Import method returns a local with all loaded items, so if you have several unrelated directories and you compile like this:

  • Load and compile dir A
  • Load and compile dir B
  • Load and compile dir C

You can speed things up by doing it like this instead:

  • Load dir A and get a list of loaded items
  • Load dir B and get a list of loaded items
  • Load dir C and get a list of loaded items
  • Combine lists A, B, and C
  • Compile combined list A, B, and C

Conclusion

In some cases it's possible to decrease compilation times a lot. Are there any tricks and trips you're using? Please share them in the comments. 

讨论 (0)1
登录或注册以继续
公告
· 23 hr 前

InterSystems 2026 全栈竞赛

Hi开发者们!

我们很高兴地宣布今年首次举办 InterSystems 在线编程竞赛:

🏆InterSystems 全栈竞赛 🏆

比赛时间:2026年2月2日至22日(美国东部时间)

奖金:12,000 美元


主题

使用 InterSystems IRIS、InterSystems IRIS for Health 或 IRIS Cloud Service 作为后端,开发一个全栈解决方案。所谓全栈,是指一个前端网页或移动应用,通过 REST API、Native API、ODBC/JDBC 或嵌入式 Python 在 InterSystems IRIS 中插入、更新或删除数据。

基本要求

  1. 应用程序或库必须功能完备。它不应该是另一种语言中已有库的导入或直接接口(C++ 除外,您确实需要做大量工作来为 IRIS 创建接口)。不得复制粘贴现有应用程序或库。
  2. 可接受的应用程序:新的 Open Exchange 应用程序或现有的应用程序,但有重大改进。我们的团队将对所有申请进行审核,然后批准其参加比赛。
  3. 应用程序应在 IRIS Community Edition 或 IRIS for Health Community Edition 上运行。这两个版本都可以从Evaluation site 下载主机(Mac、Windows)版本,也可以从InterSystems Container Registry 或 Community Containers 中拉取容器版: intersystemsdc/iris-community:latest or intersystemsdc/irishealth-community:latest 。
  4. 应用程序需为开源项目,并发布在GitHub或GitLab上。
  5. 应用程序的README文件需为英文,包含安装步骤,以及视频演示或/和应用工作原理的描述。
  6. 每位开发者最多提交三个作品。

注意。我们的专家将根据复杂性和实用性标准,对应用程序是否获准参赛拥有最终决定权。他们的决定为最终决定,不得上诉。

奖项设置

1. 专家提名奖(Experts Nomination)——获奖者由我们特别挑选的专家团选出:

🥇第一名 - 5,000 美元

🥈第二名 - 2,500 美元

🥉第三名 - 1,000 美元

🏅第四名 - 500 美元

🏅第五名 - 300 美元

🌟第 6-10 名 - 100 美元

2. 社区提名奖(Community Nomination)—— 获得总票数最多的应用程序:

🥇第一名 - 1,000 美元

🥈第二名 - 600 美元

🥉第三名 - 300 美元

🏅第四名 - 200 美元

🏅第五名 - 100 美元

❗ 若多名参赛者获得相同票数,则均视为获奖者,奖金由获奖者平分。
❗ 奖金仅发放给能验证身份的获奖者。如有疑问,组织方将联系参赛者要求提供额外信息。

谁可以参加?

开发者社区成员均可参加,InterSystems内部员工除外(InterSystems contractor员工可以参加)。还没有账号?现在来建一个!       

👥开发人员可以组队创建协作应用程序。一个团队允许 2 到 5 名开发人员。

请注意,要在您的README文件中标注您的团队成员(社区用户主页)。

重要截止日期:

🛠 应用程序开发和注册阶段:

  • 美国东部时间 2026 年 2 月 2 日(00:00):竞赛开始。
  • 美国东部时间 2026 年 2 月15 日(23:59):提交截止日期。

投票阶段:

  • 美国东部时间 2026 年 2 月 16 日(00:00):投票开始。
  • 美国东部时间 2026 年 2 月 22 日(23:59):投票结束。

 

注:在整个参赛期间(开发与投票期间),开发者可持续改进其应用程序

资源助力

✓ 示例应用程序:

✓ 我们建议从以下模板开始:

✓ 对于刚开始使用 IRIS 的开发者:

对于刚开始使用 ObjectScript 包管理器 (IPM) 的开发者: 

✓ 如何在竞赛中提交应用程序:

需要帮助?

加入 InterSystemsDiscord 服务器上的竞赛频道,或在本帖评论中与我们交流。

我们期待您的作品——加入我们的编程马拉松,赢取大奖! 👍


参加本次竞赛即表示您同意此处列出的竞赛条款。请在参赛前仔细阅读这些条款。

文章
· 一月 24 阅读大约需 1 分钟

Destaque de Interoperabilidade HTTP 2024.3 - Novas Configurações de OAuth 2.0 de Saída

Em sua Produção de Interoperabilidade, você sempre pôde ter uma Business Operation que atua como um cliente HTTP utilizando OAuth 2.0 para autenticação, mas era necessário customizar a Operation para essa metodologia de autenticação. Desde a v2024.3, que foi lançada recentemente, há uma nova capacidade, fornecendo novas configurações para lidar com isso de forma mais fácil.

Em sua Business Operation que utiliza o HTTP Outbound Adapter, você encontrará novas Configurações (Settings), sob o grupo OAuth.

Por exemplo:

  • Access Token Placement (Header | Body | Query)
  • Grant Type (Password | JWT Authorization | Client Credentials)

Veja toda a documentação das novas configurações relacionadas ao OAuth aqui

E aqui está uma captura de tela de exemplo das configurações de uma Operation relacionada:

讨论 (0)1
登录或注册以继续
问题
· 一月 24

Why Jig and Fixture Design Is Essential for CNC Accuracy

Effective jig and fixture design is a cornerstone of precision CNC machining. Well-engineered jigs and fixtures ensure secure workholding and accurate part positioning, which reduces setup time and minimizes machining errors. By controlling vibration and maintaining consistent reference points, proper fixture design helps achieve tight tolerances and better surface finishes. Custom jig and fixture design is especially important for complex parts and repeat production runs, where consistency directly impacts quality and cost efficiency. Investing in the right tooling approach allows manufacturers to improve productivity, reduce scrap, and deliver reliable results in demanding CNC environments.

讨论 (0)1
登录或注册以继续
问题
· 一月 24

Why Medical Scrubs Are Designed in Blue and Green Colors

When you walk into a hospital or clinic, one thing you’ll notice almost immediately is the color of the Premium medical Scrubs staff’s uniforms. Doctors, nurses, and surgeons are most commonly dressed in blue or green scrubs. This is not a random fashion choice. In fact, these colors are carefully selected based on science, psychology, and practicality. Let’s explore why blue and green dominate medical scrubs and how these colors improve both patient care and medical performance.


The Historical Shift From White to Color

In the early days of modern medicine, doctors traditionally wore white coats. White symbolized cleanliness, purity, and professionalism. However, as surgical procedures became more complex, white clothing started to reveal its flaws. Blood, bodily fluids, and stains were highly visible on white fabric, which could be distracting and stressful for medical professionals.

By the mid-20th century, hospitals began switching to blue and green scrubs, especially in operating rooms. These colors proved to be more practical and visually comfortable during long medical procedures.


Reducing Eye Strain for Medical Staff

One of the main reasons blue and green scrubs are used is their effect on human vision. During surgeries, doctors and nurses spend hours looking at red tones, such as blood and internal tissues. Constant exposure to red can cause eye fatigue and visual distortion.

Blue and green are opposite red on the color wheel. When medical staff look at these colors, it helps reset their vision and reduces eye strain. This allows surgeons and nurses to stay focused, alert, and accurate for longer periods, which is crucial in high-pressure medical environments.


Improving Focus and Concentration

Blue and green are known as calming colors. Psychologically, they promote concentration, stability, and mental clarity. In hospitals, where stress levels are naturally high, these colors help create a more controlled and focused atmosphere.

For medical professionals, wearing calming colors can subtly reduce anxiety and improve decision-making. This is especially important during surgeries and emergency situations where focus and precision can save lives.


Helping Patients Feel Calm and Safe

The color of medical scrubs doesn’t only affect staff—it also impacts patients. Many patients experience anxiety when visiting hospitals. Bright white uniforms can feel intimidating or cold, while blue and green tones appear softer and more reassuring.

These colors are associated with nature, cleanliness, and healing. When patients see medical staff dressed in blue or green, it often helps them feel more relaxed, safe, and confident in their care.


Better Visibility and Cleanliness Perception

Another practical reason for blue and green scrubs is visibility. Stains, wrinkles, and wear are less noticeable on these colors compared to white. This helps maintain a neat and professional appearance throughout long shifts.

Additionally, blue and green give a strong impression of cleanliness without showing every small mark. This balance is important in medical settings where hygiene and professionalism must always be maintained.


Standardization and Professional Identity

Over time, blue and green scrubs have become a universal symbol of healthcare professionals. These colors help create a sense of unity and professionalism within hospitals. In many facilities, different shades are also used to distinguish between departments, making it easier for patients to identify staff roles.

This standardization improves efficiency and builds trust between patients and medical teams.


Conclusion

Medical scrubs are designed in blue and green colors for practical, psychological, and scientific reasons. From reducing eye strain and improving focus to calming patients and maintaining a professional appearance, these colors play a vital role in healthcare environments. What may seem like a simple uniform choice is actually a well-researched decision that supports better medical performance and patient care.


讨论 (0)1
登录或注册以继续