Рубрика «Программирование» - 741

image

У нас в команде кто-то ходил в аспирантуру, кто-то на военную кафедру, кому-то служить не позволили здоровье или другие обстоятельства. Короче, служили трое.

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

“У вас неправильные полигоны на танках”, или судьба верстальщика

Читать полностью »

Предисловие: Я пишу на Python более 6 лет и могу назвать себя профессионалом в этом языке. Недавно я даже написал о нем книгу. Однако последние 8 месяцев я переключился на D и уже 4 месяца активно участвую в разработке этого языка по части расширения стандартной библиотеки Phobos. Так же я участвовал в код-ревью модуля std.ndslice о котором и пойдет речь.

std.ndslice так же как и Numpy предназначен для работы с многомерными массивами. Однако в отличие от Numpy ndslice имет крайне низкий оверхэд так как базируется на ranges (диапазонах), которые используются в штатной библиотеке повсеместно. Ranges позволяют избежать лишние процедуры копирования, а так же позволяют красиво организовать ленивые вычисления.

В этой статье мне хотелось бы рассказать о том какие преимущества std.ndslice дает по сравнению с Numpy.
Читать полностью »

C++ SDK для Amazon Web Services - 1
Под конец прошлого года компания Amazon выпустила (наконец-то!) C++ SDK для своей платформы AWS. Непонятно, почему так долго тянули — есть масса приложений, написанных на С++, из которых давно хотелось удобно пользоваться AWS. Не джавой же единой, в самом деле.

Всегда интересно посмотреть на что-то, написанное на С++ в наши дни с нуля, без груза обратной совместимости и странных архитектурных решений, присущих некоторым разработкам прошлого. Я не буду тут пересказывать документацию, но остановлюсь на ключевых моментах, определяющих всё поведение SDK.
Читать полностью »

Данилевский Кирилл

Хочу сегодня поговорить на тему того, на сколько вообще легко можно воплотить свою идею в реальный проект. На уме крутиться один пример неудачи. У одного моего знакомого, дальнего, была идея, создать городской портал. Портал должен был представлять из себя сайт с разными разделами: новости города, афиша и мероприятия, раздел работа в городе и все в том же духе. Естественно, что на рынке есть много подобных проектов, в которые вложены солидные деньги, и которые уже у многих на слуху. Но именно в его городе, такого сайта не было. И в принципе, он был прав в том, что такой проект уже давно просился.

И вот, решил он заняться этим вопросом всерьез. Написал ТЗ, создал бизнес план и финансовый проект с бюджетом. Проект предполагал пол года работы с четырьмя сениор программистами в штате.
Читать полностью »

В Alconost Video мы делаем видеоролики о сервисах и приложениях. За 4 года мы перещупали сотни IT-продуктов, среди которых встречаются интересные разработки, достойные поста на Хабре. Например, недавно мы сделали ролик о плагине HelpDesk for JIRA для компании «Тимлид».

Чем интересен этот проект? Тем, что он прямо конкурирует с родным модулем саппорта для «Джиры», который, кстати, сам по себе довольно неплохой, но дорогой (например, 5 юзеров — $1500). Получается, что плагин решает ту же проблему, что и «материнский» продукт, только дешевле.

Кстати, а вот и ролик, который мы сделали:

Чуть больше информации про HelpDesk for JIRA — под катом.
Читать полностью »

Особенности использования и тестирования кода С++ на микроконтроллерах - 1 Так сложилось, что основным языком для работы с микроконтроллерами является C. Многие крупные проекты написаны именно на нем. Но жизнь не стоит на месте. Современные средства разработки уже давно позволяют использовать C++ при разработке ПО для встраиваемых систем. Однако такой подход до сих пор встречается достаточно редко. Не так давно я попробовал использовать С++ при работе над очередным проектом. Об этом опыте я и расскажу в данной статье.

Читать полностью »

Пара часов из жизни математика-программиста или читаем википедию

Для начала в качестве эпиграфа цитирую rocknrollnerd:

— Здравствуйте, меня зовут %username%, и втайне раскрываю суммы из сигма-нотации на листочке, чтобы понять, что там происходит.
— Привет, %username%!

Итак, как я и говорил в своей прошлой статье, у меня есть студенты, которые панически боятся математики, но в качестве хобби ковыряются паяльником и сейчас хотят собрать тележку-сигвей. Собрать-то собрали, а вот держать равновесие она не хочет. Они думали использовать ПИД-регулятор, да вот только не сумели подобрать коэффициенты, чтобы оно хорошо работало. Пришли ко мне за советом. А я ни бум-бум вообще в теории управления, никогда и близко не подходил. Но зато когда-то на хабре я видел статью, которая говорила про то, что линейно-квадратичный регулятор помог автору, а пид не помог.

Если ПИД я ещё себе худо-бедно на пальцах представляю (вот моя статья, которую с какого-то перепугу перенесли на гиктаймс), то про другие способы управления я даже и не слышал толком. Итак, моя задача — это представить себе (и объяснить студентам, а заодно и вам), что такое линейно-квадратичный регулятор. Пока что работы с железом не будет, я просто покажу, как я работаю с литературой, ведь именно это и составляет львиную долю моей работы.

Раз уж пошёл эксгибиционизм про мою работу, то вот вам моё рабочее место (кликабельно):
Математика на пальцах: линейно-квадратичный регулятор - 1Математика на пальцах: линейно-квадратичный регулятор - 2

Читать полностью »

В данной статье рассмотрена интеграция программируемого логического контроллера CPM713 компании Fastwel, работающего на базе протокола MODBUS TCP, с панелью оператора Weintek, поддерживающей последовательный вариант протокола MODBUS RTU/ASCII, с помощью интерфейсного модуля NIM742 и готовой библиотеки адаптированной среды CoDeSys для Fastwel.

Промышленные протоколы на базе сетей Ethernet приобретают все большую популярность. Использование данной технологии в промышленных системах имеет преимущества, например, возможность гибкой модернизации и масштабирования системы, простоту построения архитектуры и невысокую стоимость создания сетей [1]. Однако внедрение новых технологий в область АСУ ТП происходит достаточно медленно, поэтому до сих пор многими устройствами используются традиционные промышленные сети на базе последовательных шин.

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

Так, контроллер CPM713 компании Fastwel использует для передачи данных протокол MODBUS TCP на базе сетей Ethernet [2]. При работе с данным контроллером возникла задача передавать и получать данные с панели оператора MT6100i компании Weintek, поддерживающей последовательный протокол MODBUS RTU/ASCII (рис. 1).

Реализация MODBUS RTU сервера с помощью интерфейсного модуля Fastwel и программного обеспечения CoDeSys - 1
Рисунок 1. Интеграция контроллера Fastwel I/O с операторской панелью Weintek

Использование бесшовной интеграции всегда является более приоритетным, чем использование сторонних шлюзов. Поэтому для решения данной задачи был взят интерфейсный модуль NIM742 компании Fastwel, позволяющий подключать устройства с интерфейсом RS-232C и работать с ними через пользовательскую программу контроллера CPM713.

Модуль NIM742 совместно с пользовательской программой контроллера CPM713 реализует работу подчиненного узла Modbus RTU. NIM742 подключается в общую линейку модулей и по шине FBUS обменивается данными с контроллером CPM713 (рис.2). Для обеспечения работы NIM742 с протоколом MODBUS RTU используется библиотека CoDeSys FastwelModbusServer.lib, входящая в пакет адаптации Fastwel.

Реализация MODBUS RTU сервера с помощью интерфейсного модуля Fastwel и программного обеспечения CoDeSys - 2
Рисунок 2. Контроллер CPM713 с подключенными модулями
Читать полностью »

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

Для подключения по websocket мы будем использовать SocketIOClientSwift

Скачать можно тут.

Установка там тоже в принципе описывается, но для тех кто совсем в танке расскажу, что есть простой способ, просто добавьте файлы из папки source в свой проект.

В нашем примере мы будем получать тикеты из системы технической поддержки которая работает на node.js
Читать полностью »

Бот-юрист выиграл дел на $3 млн - 1

18-летний британский IT-студент Джошуа Броудер (Joshua Browder) в августе прошлого года открыл сайт donotpay.co.uk, который помогает автовладельцам автоматически составить и отправить апелляцию на полученную квитанцию о штрафе. Самостоятельно люди не могут этим заниматься, потому что процедура для многих сложная, а услуги юристов почти всегда превышают размер штрафа.

Всего за полгода бот-юрист помог вернуть штрафов более чем на 2 миллиона фунтов ($3 млн). Сайтом воспользовались 86 тыс. человек, и почти 40% апелляций были успешными. Сам автор проекта оказался очень удивлён, что бот пользуется такой популярностью.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js