Pull to refresh
22
0
Send message

Настройка PostgreSQL под Linux

Level of difficultyEasy
Reading time10 min
Views106K

Время от времени приходится слышать мнение от некоторых системных администраторов, а также некоторых 1С-разработчиков, что установка, настройка и поддержка PostgreSQL под Linux очень сложна. Что гораздо дешевле покупать лицензии Windows и Microsoft SQL Server, чем нанимать высококвалифицированных администраторов, которые будут администрировать все эти open-source системы.

На наших бизнес-приложениях, использующих в качестве СУБД PostgreSQL, работают 70% крупнейших розничных сетей в Беларуси. Во всех из них одновременно работают от 500 до 1500 пользователей. В приложениях реализованы практически все основные процессы розничных сетей (демо, чтобы оценить сложность). Размер баз данных на данный момент составляет от 2 до 4ТБ. И все они работают практически со стандартными настройками PostgreSQL на одиночных серверах без какой-либо кластеризации. При этом даже в самых загруженных серверах есть еще значительный резерв по ресурсам для дальнейшего увеличения нагрузки без потребности в кластеризации.

Да, конечно же, многое зависит от запросов к СУБД, и несколькими кривыми запросами можно положить весь сервер. Однако, точно также можно положить и Oracle, и MSSQL. Да, платформа lsFusion, на которой написаны наши приложения, делает много различных оптимизаций запросов конкретно под PostgreSQL. Но вручную SQL-запросы можно оптимизировать еще лучше.

В этой статье я полностью опишу все настройки PostgreSQL (и немножко ОС), которые мы делаем на наших системах. Кроме того, мы специально стараемся не изменять те настройки, которые не дают видимого изменения в производительности, чтобы потом не гадать, почему в одном окружении есть проблема, а в другом - нет.

Читать далее
Total votes 44: ↑41 and ↓3+38
Comments16

Использование Crosstab в бесплатной библиотеке отчетности JasperReports

Reading time9 min
Views4K

В автоматизации отчетности очень часто используют открытую Java-библиотеку JasperReports, например статья Опенсорс-решение для автоматизации отчетности рассказывает об ее использовании для получения PDF форматов отчетности между делом упомянув о возможности экспорта в другие форматы.

Однако нередко возникает потребность получать данные не в твердой копии, а в форматах электронных таблиц и в этом направлении в библиотеке JasperReports есть мощный инструмент Crosstab. Вместе с механизмом экспорта в форматы электронных таблиц данный инструмент может быть востребован для получения форматированных документов, которые годны как отчеты для анализа, так и для дальнейшей обработки данных.

Основная цель использования печатной формы - выгрузка данных в электронные таблицы для дальнейшего использования данных. Разработку печатной формы будем делать в среде TIBCO Jaspersoft® Studio

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

Почему lsFusion, а не 1С?

Reading time32 min
Views27K


Предыдущая статья “Почему не 1С?” вышла больше года назад и вызвала достаточно живой интерес (совсем немного не дотянула до 100к просмотров и 2к комментариев). Впрочем, как и ожидалось, у многих возник резонный вопрос: “Если не он, то кто?” Безусловно, как многие поняли, та статья писалась не просто так, а чтобы вслед за ней выпустить еще одну, где было бы рассказано, как описанные в первой статье проблемы можно и нужно решать. Однако, по различным причинам, выпуск этой “ответной” статьи был отложен на весьма долгое время. Но, как говорится, лучше поздно, чем никогда.

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments362

MyCompany — бесплатное и открытое решение для небольшого бизнеса

Reading time11 min
Views16K


Около года назад мы выпустили открытую и бесплатную платформу для разработки бизнес-приложений lsFusion. В первую очередь, мы ориентировались на разработчиков, которые могут на ней быстро и легко создавать различные информационные системы. Тем не менее, разработка “с нуля” системы управления, даже небольшим бизнесом, остается достаточно трудоемким процессом.

По этой причине мы решили создать базовое решение с названием MyCompany, которое реализует основные бизнес-процессы малого бизнеса. Оно полностью бесплатно, выпускается под Apache лицензией, и ее исходники находятся на Github. Решение легко устанавливается и поддерживает российское законодательство.

В качестве системы управления базой данных используется PostgreSQL. На сервере решение устанавливается и запускается как Java приложение, состоящее из сервера приложений и веб-приложения под управлением Apache Tomcat. В качестве GUI может использоваться как веб-интерфейс, так и десктоп-клиент, запускающийся через Java Web Start.
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments33

lsFusion 5, 6: больше асинхронности, агрегация / расширение / пользовательская настройка форм, новые представления

Reading time11 min
Views2.5K


После выпуска первой публичной (третьей) версии платформы мы получили огромное количество фидбэка, большая часть работы над которым нашла отражение в недавно вышедшей четвертой версии платформы. Впрочем, значительная часть этого фидбэка осталась “за бортом”, но не была забыта, и соответственно сформировала план развития платформы на ближайшее будущее. Именно об этом плане и пойдет речь в этой статье.


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

Расшифровка эфира с Джоном Ромеро: байки о том, как создавался DOOM

Reading time16 min
Views10K

10 августа в наших соцсетях прошел стрим с Джоном Ромеро — создателем игр Doom, Quake и Wolfenstein 3D. Это был вечер теплых ламповых историй по заявкам: вы задавали вопросы в комментариях, а Джон рассказывал, как все было.

Вопросы задавал автор телеграм-канала и подкаста Запуск завтра Самат Галимов.

Мы подготовили для вас расшифровку и перевод на русский, но если вы хорошо говорите на английском, рекомендуем посмотреть в записи — все же это вечер ламповых историй.

Тебя знают во всём мире как создателя DOOM и Dangerous Dave. Это очень популярные игры, а какую игру ты создал первой?


Наверное, приключенческую игру, когда начал учиться программировать на языке BASIC на мэйнфрейме в университете.

Total votes 43: ↑43 and ↓0+43
Comments15

Монады как паттерн переиспользования кода

Reading time24 min
Views68K


В предыдущей статье мы обсуждали, почему функциональное программирование это совсем не то, что распиарено, и что оно совершенно не противоречит ООП, так, что даже сам "Дядя Боб" пишет про хороший ФП дизайн порождающий хороший ООП дизайн программы (и наоборот).


Сейчас же я хочу рассказать, что такое монады на самом деле, чем они полезны для обычного практикующего разработчика, и приведу примеры, почему недостаточная поддержка их в распространенных языках приводит к копипасте и ненадежным решениям.


Но ведь в интернете буквально сотни статей про ФП и монады, зачем писать еще одну?


Дело в том, что все их (по крайней мере те что я читал) можно поделить условно на две категории: с одной стороны это статьи где вам объяснят что монада это моноид в категории эндофункторов, и что если монада T над неким топосом имеет правый сопряжённый, то категория T-алгебр над этой монадой — топос. На другой стороне располагаются статьи, где вам рассказывают, что монады — это коробки, в которых живут собачки, кошечки, и вот они из одних коробок перепрыгивают в другие, размножаются, исчезают… В итоге за горой аналогий понять что-то содержательное решительно невозможно.


Получается, что первые обычно полезны тем, кто и так знает обсуждаемую тему, а вторые даже не знаю на кого рассчитаны: сколько я их не прочитал, ничего полезного понять из них мне не удалось.


Я же хотел бы занять промежуточную позицию, и рассказать про монады без заумных терминов, но и без котиков, используя понятные ООП разработчикам термины: интерфейсы, паттерны, копипаста, инкапсуляция сложности, бойлерплейт, и так далее. В процессе работы над статьёй ни один термин теории категории использован не был.

Читать дальше →
Total votes 108: ↑104 and ↓4+100
Comments256

Особенности реализации динамических списков в пользовательских интерфейсах

Reading time9 min
Views8.9K
image

В интерфейсе каждого современного приложения в том или ином виде присутствуют списки объектов. При работе с ними у пользователя часто возникают потребности в однотипных действиях вроде сортировки, фильтраций, экспорта и так далее. Реализация этих операций часто осложняется тем, что списки могут быть “динамическими”. В этом случае данные будут по мере необходимости считываться не только с сервера на клиент, но и с сервера базы данных на сервер приложений.

В открытой и бесплатной платформе lsFusion все списки по умолчанию являются динамическими и добавляются на любую форму в несколько строк кода. В этой статье я расскажу некоторые технические подробности их реализации, а также возможности в интерфейсе, которые автоматически предоставляются пользователю при работе с любым списком на любой форме.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments9

15 лучших и крупнейших библиотек иконок

Reading time3 min
Views35K


В этой статье ознакомимся с 15 лучшими и крупнейшими доступными библиотеками иконок для веб-сайтов. Многие из них предлагают тысячи, а то и миллионы пиктограмм, так что обязательно найдётся именно то, что нужно.

Сразу уточняем: это не 15 самых лучших библиотек, а 15 из лучших. Разумеется, есть и другие, не менее замечательные, о которых я не упомянул или не знаю.
И, нет, это не рейтинг — список маркированный, а не нумерованный.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments12

Финал WorldSkills, разработка IT-решений для бизнеса — что это, как это было и почему там победили 1С-программисты

Reading time14 min
Views14K
image
WorldSkills — это международное движение, занимающееся проведением профессиональных соревнований для молодых людей в возрасте до 22 лет.

Международный финал проводится раз в два года. В этом году местом проведения финала стала Казань (прошлый финал был в 2017 году в Абу-Даби, следующий будет в 2021 году в Шанхае).

Чемпионаты WorldSkills — это самые большие мировые чемпионаты профессионального мастерства. Начались они с рабочих профессий, а в последние годы все больше внимания уделяется “профессиям будущего”, включая IT-дисциплины, под которые на чемпионате в Казани был выделен отдельный огромный кластер.

image

В IT-блоке есть компетенция (конкретный «вид спорта») под названием «Программные решения для бизнеса» (IT Software Solutions for Business).

В каждом из соревнований ограничивается разрешенный список используемых инструментов. И если, например, для «ландшафтного дизайна» ограничивается именно список возможных инструментов (конечно, без указания явного производителя или цвета), то в компетенции «Программные решения для бизнеса» список допущенных технологий, которые могут использовать участники, жестко ограничен с указанием конкретных технологий и конкретных платформ (.NET и Java с определенным набором фреймворков).

Позиция фирмы 1С по этому вопросу следующая: информационные технологии – это очень динамичная область, в мире постоянно появляются новые технологии и средства разработки. С нашей точки зрения правильно позволить специалистам использовать те инструменты, с которыми они хотят и привыкли работать.

Осенью 2018 г дирекция WorldSkills услышала нас. Теперь предстояло обкатать методику включения новых технологий в соревнования. Это непросто.

В инфраструктурный лист чемпионата в Казани включили платформу 1С:Предприятие (1С:Enterprise) и организовали экспериментальную площадку IT Software Solutions for Business Sandbox.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments42

Где же начинается программирование

Reading time9 min
Views16K
image


Давным давно мы разработали высокоуровневую платформу для разработки бизнес-приложений lsFusion. Оставалось дело за малым: найти того, кто будет на ней писать. Было решено разместить на сайтах по поиску работу соответствующую вакансию. Но возник вопрос: что указывать в качестве должности или профессии.

По уровню сложности язык платформы не сильно отличался от SQL, который изначально создавался не для программистов, а для бизнес пользователей. Поэтому мы также решили указать в качестве должности “Бизнес аналитик”.

Соискателям мы предлагали решить относительно несложное тестовое задание, в котором нужно было немного доработать простой пример. Некоторые люди справились, но от многих пришли гневные письма с возмущением вроде: “Вы ищите программиста или бизнес аналитика ?”.

В итоге мы нашли нужных нам людей, но анализируя этот опыт, я невольно задавался вопросом: где заканчивается бизнес анализ и начинается программирование?
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments75

Мой опыт работы в Фирме 1С

Reading time8 min
Views127K

Кажется, писали уже обо всех: от Яндекса до Мэйлру, от Люксофта до Туту. Но про самую отстраненную, самобытную и изолированную компанию на ИТ рынке еще не было. Расскажу о своем опыте работы в отечественной Корпорации зла.

К тому чтобы поделиться своим опытом меня подтолкнула эта статья, а не состоявшееся накануне увольнение, я работал в фирме несколько лет назад, поэтому что-то я могу помнить не совсем точно, а что-то могло уже измениться. С другой стороны, 1С — не стартап и изменения там происходят неспешно.
Читать дальше →
Total votes 277: ↑271 and ↓6+265
Comments318

Почему не 1С?

Reading time55 min
Views109K


Совсем недавно мы опубликовали статью с описанием проблем одной из самых популярных технологий, используемых в IT, и на наше удивление она вызвала достаточно живой интерес (во всяком случае для технической статьи). Поэтому мы решили на этом не останавливаться, и сегодня мы «идем в гости» к одному из самых популярных продуктов на российском рынке разработки бизнес-приложений — платформе 1С.

Так сложилось, что на хабре многие 1С не любят, но порой складывается впечатление, что немногие из этих людей хорошо понимают, за что они его не любят. Этой статьей мы восполним этот пробел и убьем сразу двух зайцев: с одной стороны, расскажем, как в 1С все устроено изнутри, а с другой стороны — почему это все работает не так как нужно / хотелось бы. Надо сказать, что 1С многими своими решениями смог реально нас удивить, впрочем, не будем забегать вперед.

Статей с критикой 1С на Хабре достаточно (например, один, два, три), но, на мой взгляд, они либо слишком много внимания уделяют всяким мелочам, вроде неправильной организации меню, либо рассуждают о слишком абстрактных вещах, в которых 1С, возможно, и не виноват. В этой же статье, как и в статье про SQL, речь пойдет исключительно о фундаментальных (и вполне осязаемых) проблемах, которые касаются всех и каждого, кто разрабатывает / дорабатывает решения на 1С, и приводят либо к существенному росту порога вхождения, либо к серьезному падению производительности, либо к значительным трудозатратам со стороны разработчика.
Читать дальше →
Total votes 108: ↑98 and ↓10+88
Comments1789

Управление параметрами в бизнес-приложениях по аналогии с системой контроля версий

Reading time13 min
Views3.6K
image

В различных приложениях регулярно возникает задача по поддержке логики изменения во времени некоторого атрибута объекта относительно некоторого субъекта (или субъектов). Например, это может быть изменение розничной цены товара в магазинах или показателей KPI для сотрудников.

В этой статье я покажу, какую доменную логику и интерфейсы можно построить для решения этой задачи. Сразу оговорюсь, что речь будет касаться именно управленческого воздействия пользователем на атрибут, а не отражения исторического изменения.

Реализация будет представлена на базе открытой и бесплатной платформы lsFusion, но подобную схему можно применять и при использовании любой другой технологии.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments18

Работа с иерархиями в lsFusion

Reading time6 min
Views2.9K
image

В различных приложениях часто возникает потребность в реализации иерархического представления объектов. Как правило, это используется для их классификации путем задания групп. Эти группы образуют дерево динамической глубины, которая в дальнейшем используется для навигации, агрегирования данных, задания параметров.

В этой статье я покажу, каким образом эту логику можно реализовать в открытой и бесплатной платформе lsFusion.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments0

Расчет странового коэффициента УЕФА

Reading time14 min
Views3.1K
image

В футболе есть два популярных турнира: Лига Чемпионов и Лига Европы. На основании их результатов рассчитывается так называемый Рейтинг футбольных ассоциаций. На базе этого рейтинга в дальнейшем определяется, какое количество команд от каждой страны будет участвовать в последующих турнирах.

В этой статье я создам приложение на основе открытой и бесплатной платформы lsFusion, которое будет рассчитывать этот рейтинг. Оно будет хранить все свои данные в PostgreSQL, предоставлять веб интерфейс по их изменению и отображению с возможностями фильтрации и сортировки, а также импортировать результаты матчей при помощи специального API.

Весь код для реализации этого приложения будет состоять из около 300 значащих строк.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments5

Вся мощь IntelliJ IDEA на примере одного языка (в картинках)

Reading time8 min
Views25K
Классическая модель разработки любых приложений подразумевает наличие хорошей документации по пользовательскому интерфейсу и API, а также, при необходимости, хорошего покрытия исходного кода комментариями. В этом случае, доработка системы начинается с изучения документации, затем непосредственно изменяется код и, наконец, обновляется вся необходимая информация.

Однако, одна из проблем такого подхода заключается в том, что это значительно удорожает и замедляет сам процесс разработки. Что если всего этого нет? Тогда на помощь приходит IDE, благодаря которой можно изучить текущую логику по “голому” коду.

Когда мы разрабатывали платформу lsFusion со встроенным языком, то у нас было несколько вариантов. Либо изобретать велосипед, и писать с нуля свою собственную IDE, как сделал в свое время 1С, или реализовать плагин к уже существующей. Мы пошли по второму пути, и в этой статье я покажу, что получилось.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments10

Как могли бы выглядеть регистры в 1С при наличии ООП

Reading time9 min
Views20K
image

В 1С одним из ключевых элементов системы являются регистры. Этот термин имеет свой аналог в английском языке — ledger. Он первоначально появился в бухгалтерской практике, но со временем его логика начала использоваться и в других сферах.

В отличие от 1С, где регистры являются одним из встроенных типов, в самой платформе lsFusion такого понятия нет. Зато в ней есть наследование, полиморфизм и агрегации, что, в частности, позволяет реализовать аналогичную логику регистров. В этой статье на примерах я покажу как именно.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments241

Строим интерфейс по вводу документов через подбор

Reading time9 min
Views6.3K
image

В различных бизнес-приложениях часто возникает задача по вводу документов. Обычно документ состоит из заголовка и некоторых строк, каждая из которых ссылается на некоторый объект (например, товар). Чаще всего, для ввода записей в документ используется обычная таблица, в которой пользователь может добавлять и удалять строки, а также изменять их содержимое.

Однако, в некоторых случаях, такая схема не всегда удобна для пользователей. В этой статье я расскажу, как можно строить удобный пользовательский интерфейс при помощи техники подбора товаров.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments101
1

Information

Rating
Does not participate
Works in
Registered
Activity