Pull to refresh
41
0
Александр Коблов @adaptun

Пользователь

Send message

Релиз InterSystems IRIS 2020.1

Reading time7 min
Views1.1K


В конце марта вышла новая версия платформы данных InterSystems IRIS 2020.1. Даже пандемия коронавируса не предотвратила релиз.


Из важного в новом релизе — повышение быстродействия ядра, генерация REST-приложения по спецификации OpenAPI 2.0, шардинг для объектов, новый вид Портала Управления, поддержка MQTT, универсальный кеш запросов, новый фреймворк для создания элементов продукции на Java или .NET. Полный список изменений и Upgrade Checklist на английском языке можно найти по ссылке. Подробнее — под катом.

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Релиз InterSystems IRIS 2019.1

Reading time6 min
Views1.1K

В середине марта вышла новая версия платформы данных InterSystems IRIS 2019.1


Представляем вашему вниманию список изменений на русском языке. Полный список изменений и Upgrade Checklist на английском языке можно найти по ссылке.


Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments0

Просмотр глобалов в Портале Управления СУБД Caché

Reading time2 min
Views3.5K

Вызывает антирес и такой ишо разрез
(Царь из «Про Федота-стрельца»)


Всё в Caché хранится в глобалах. Данные, метаданные, классы, программы. Для просмотра глобалов в Портале управления существует удобный инструмент — страница «Просмотр данных глобала». Её-то мы сегодня и рассмотрим.


Примером глобала нам будет служить ^DeepSee.Cubes. Это глобал, в котором хранится список кубов DeepSee. Для чтения этой статьи знать DeepSee вам совершенно не обязательно.


Чтобы попасть на страницу «Просмотр данных глобала», откройте Портал Управления, выберите «Обозреватель системы» (System Explorer) → «Глобалы» (Globals). Затем слева нужную область, и нажмите «Просмотр» рядом с нужным глобалом.

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments0

Таблицы сортировки в СУБД Caché

Reading time8 min
Views6.9K
Зато какая сортировка!
(А. С. Пушкин)


Если бы это была запись для твиттера, то она была бы следующей: «Программисты на Caché ObjectScript! Используйте Cyrillic4 вместо Cyrillic3!». Но тут Хабр, поэтому придётся развернуть мысль – добро пожаловать под кат.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments16

Собственные типы индексов в СУБД Caché

Reading time7 min
Views7.2K
В объектной и реляционной моделях данных СУБД Caché есть три типа индексов — обычные, bitmap и bitslice. Если по каким-то причинам этих индексов не хватает, начиная с версии 2013.1 программист может определить свой тип индексов и использовать его в любых классах.

Подробности под катом (если вас не пугают слова типа метод-генератор).
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments2

А вы уже поменяли $Increment на $Sequence?

Reading time8 min
Views10K
Если бы это была запись для твиттера, то она была бы следующей: «Программисты на Caché ObjectScript! Используйте $Sequence вместо $Increment для генерации Id». Но тут Хабр, поэтому придётся развернуть мысль – добро пожаловать под кат.


Читать дальше →
Total votes 21: ↑15 and ↓6+9
Comments23

Юнит-тесты в Caché – это просто

Reading time5 min
Views8K
Больше всего программисты любят программы, в которых не нужно исправлять баги. Шагом на пути к этой несбыточной мечте является написание юнит-тестов. В Caché, как и в любой современной СУБД, есть реализация фреймворка для автоматического выполнения тестов.


Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments9

Борьба с тридцатилетним багом

Reading time5 min
Views55K
В первой редакции говорилось о двадцатилетнем баге. На самом деле ему 30 лет. Спасибо Sidnekin.

Сегодня, считывая какие-то данные, моя программа обработала 36'916 возможных дат. Две из этих 36'916 не прошли проверку. Я не придал этому значения, потому что эти даты были из данных предоставленных клиентом, а такие данные часто удивляют. Однако, взглянув на исходные данные, выяснилось, что проверку не прошли 1 января 2011 и 1 января 2007. В программе, написанной мной месяц назад, был баг. Но оказалось, что этому багу 30 лет.

Любому человеку, который не очень понимает экосистему программного обеспечения, написанное ниже покажется странным, но в этом есть смысл. Из-за решения, принятого давным-давно, чтобы принести деньги одной компании, мой $клиент потратил деньги на оплату мне, чтобы я исправил баг, внесённый одной компанией случайно, а другой специально. Чтобы объяснить это, мне придётся рассказать о третьей компании, добавившей особенность, ставшую в конечном счёте багом, и ещё о нескольких фактах, повлиявших на непонятный баг, который я исправил сегодня.
Читать дальше →
Total votes 107: ↑97 and ↓10+87
Comments26

Код как аргумент в Caché ObjectScript

Reading time4 min
Views5.3K
Язык InterSystems Caché ObjectScript (COS) развивается с каждым годом, в него добавляются новые команды и функционал. К сожалению, в настоящий момент подпрограммы в COS не являются объектами первого класса, то есть подпрограмму (функцию, метод) нельзя передать как параметр в подпрограмму или вернуть из подпрограммы.

Тем не менее, существуют способы смягчить эти ограничения.

Под катом рассмотрим несколько вариантов передачи кода как аргумента подпрограммы.
Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments8

Разработка в Caché Studio с использованием TortoiseGit

Reading time4 min
Views7.4K
Caché-Git — это модуль контроля версий для Caché Studio, который обеспечивает вызов диалоговых окон TortoiseGit непосредственно из Studio и полуавтоматическую синхронизацию рутин между Caché и локальным репозиторием.

В каждой области выбираются пакеты, проекты, классы, рутины, dfi-файлы, csp-страницы, csp-приложения которые будут остлеживаться Caché-Git.

Всякий раз при сохранении отслеживаемой программы, она будет экспортироваться на диск в репозиторий. При открытии программа будет загружаться из репозитория, если версия, находящаяся в нём свежее.

Caché-Git работает только на компьютерах, на которых установлен и сервер и клиент Caché. Caché-Git не будет работать при соединении с удалённым сервером.

Где взять


Репозиторий с Caché-Git находится по адресу github.com/intersystems-ru/cache-tort-git. Там же есть wiki, в которой описаны шаги по установке и использованию
Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments1

Будьте добры к программистам

Reading time2 min
Views110K
— Тебе так повезло, что ты программист. Хотел бы я быть программистом.
— А почему ты не научишься?
— Я пытался, заходил на codeacademy и другие сайты, но это не моё.
— Да, программирование, действительно, не для всех.
— Тебе хорошо платят и ты можешь создавать разные вещи. Почти каждый день к тебе поступают сумасшедшие предложения минимум на 100 тысяч долларов.
— Да, это очень лестно. Немножко сносит крышу, если честно.
— Ты получаешь свою долю в компании, все уважают инженеров. Ты можешь воплотить любую идею в приложение и стать богатым. И тебе не нужно для этого никого нанимать.
— Вообще-то программирование делает меня несчастным.
Читать дальше →
Total votes 320: ↑251 and ↓69+182
Comments152

Разработка в Caché Studio с использованием Subversion

Reading time6 min
Views6.5K

Было разработано расширение Caché Studio, которое называется Caché-SVN. Это расширение позволяет работать с репозиторием (хранилищем) SVN, не покидая Caché Studio. С его помощью можно выполнять checkout, commit и update.

Caché-SVN работает не с отдельными файлами (классами, программами, csp-страницами и т.д.), а с проектом целиком.

Caché-SVN создаёт временную папку на сервере, где установлено Caché, выгружает туда файлы проекта и выполняет svn commit. Аналогично при svn update полученные xml-описания файлов импортируются в Caché.
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments8

Создание cue-плэйлистов для списка mp3-файлов из папки

Reading time2 min
Views2.8K
Очень часто, скачав с торрентов очердную музыку, я вижу, что автор раздачи то ли не прописал тэги в mp3, то ли прописал их не правильно. Если исправить эти mp3-файлы и прописать в них нормальные тэги, то я не смогу сидировать только что скачанное. Что не очень хорошо. С другой стороны, я собираю свою музыкальную статистику в last.fm и хочется тэги поддерживать в актуальном состоянии. Есть, конечно, вариант скопировать только что скачанную музыку в отдельное место и исправить тэги там, но это как-то неспортивно.

Первые десять раз я создавал cue-плэйлист вручную, но потом вспомнил, что всё-таки имею отношение к программированию и написал небольшой скрипт на Perl, который по списку mp3 файлов создаёт cue-плэйлист. Теперь менять информацию об исполнителе, альбоме, названиях песен можно менять в нём, никак физически не трогая mp3-шки. Эти плейлисты прекрасно читаются foobar'ом.

У скрипта один параметр: pattern — код, который выполняется для каждого файла. В этом фрагменте кода должны устанавливаться переменные $track, $title и $performer — это соответственно номер трека, название песни и исполнитель.
Например, для имён файлов типа «22. Baby I Need Your Loving — Four Tops.mp3» скрипт нужно вызывать так:
perl c:\util\playlist_cue.pl "--pattern=($track,$title,$performer)= $f=~ /(\d\d)\. (.+) — (.+)\.mp3/;" >> playlist.cue
Считается, что в файле playlist.cue уже содержится информация об альбоме.

сам скрипт
Total votes 3: ↑2 and ↓1+1
Comments3

Information

Rating
Does not participate
Location
Россия
Registered
Activity