Search
Write a publication
Pull to refresh
2
Shishka @Shishkaread⁠-⁠only

ИТ

Send message

C# как замена VBA в Excel

Level of difficultyMedium
Reading time14 min
Views16K
Я довольно много пишу на C#, и это мне нравится. Время от времени мне хочется, чтобы можно было использовать C# внутри других приложений.

Думаю, одним из таких приложений, в которых хорошо приживётся C#, был бы Excel, этим языком можно было бы заменить VBA. Язык VBA уже немного отстаёт от времени, а Microsoft не планирует его апгрейдить. Вместо него — компания предлагает среду-песочницу для JavaScript под названием Office Scripts.

Я понимаю привлекательность JavaScript для веб-версии Excel, но не в качестве хорошей замены VBA.

Так как этим не собирается заниматься Microsoft, я решил, что могу попробовать сам. В конце концов, если Microsoft так увлечена JavaScript, маловероятно, что она выдавит меня с обширного рынка использования C# в Excel.

Итак, вот что я создал:

QueryStorm IDE, выполняющая запрос LINQ для таблицы Excel

«Это что, IDE языка C#, выполняющая запросы LINQ для таблиц Excel?» Именно. Всё так и есть.

Я назвал это QueryStorm. Моя работа над этим проектом началась ещё в 2014 году. Изначально у него имелась только поддержка SQL, и с тех пор я продолжал над ним работать, постепенно добавляя поддержку скриптинга на C#, пользовательских функций C#/Excel, поддержку NuGet, отладчик и даже магазин приложений!
Читать дальше →

Перевод второй части учебника Patterns.dev

Reading time5 min
Views6.8K

И снова всем привет! Судя по реакциям и количеству закладок к переводу первой части книги Patterns.dev, этот материал оказался для вас полезен. Поэтому я решил поделиться переводом второй части.

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

Напомню, что авторы Patterns.dev:
Лидия Холли — штатный консультант и преподаватель по разработке программного обеспечения, которая в основном работает с JavaScript, React, Node, GraphQL. Она также занимается наставничеством и проводит личные тренинги.
Эдди Османи — технический менеджер, работающий над Google Chrome. Его команды работают над такими проектами, как Lighthouse, PageSpeed ​​Insights, Chrome User Experience Report и другими.

Материал книги будет полезен не только React‑разработчикам, но и всем, кто так или иначе интересуется или сталкивается с frontend‑разработкой. Это ознакомительная часть перевода учебника https://www.patterns.dev/. Перевод всей второй части учебника можно найти здесь.

P. S.: На данный момент выложено в виде pdf, в дальнейшем планируется полноценная публикация на github для удобства изучения.

P. P. S.: Вторая часть взята из книги: https://www.patterns.dev/, переведена на русский язык. Книга находится под лицензией CC BY-NC 4.0

Данный адаптированный материал распространяется на условиях лицензии Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

Читать далее

Тук-Тук! Кто там? Микросервис

Level of difficultyEasy
Reading time2 min
Views3.2K

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

Читать далее

Теория ограничений Голдратта и проектное управление. Что не так со сроком задачи?

Level of difficultyEasy
Reading time4 min
Views3.8K

Можно сказать, что я фанат мыслительных инструментов ТОС. Я не совсем одержима и не предлагаю использовать их по поводу и без. И всё же, мне кажется, даже просто наличие знания и понимания этих инструментов не может не изменить подход к анализу и принятию решений. Как я понимаю мыслительные процессы — это формализация мышления Голдратта. Того самого мышления, которое позволяло ему видеть ясно и чётко, игнорируя "так заведено".

Например, в проектном управлении был, и есть распространённый подход к планированию проекта — диаграмма Ганта. Всё больше команд отказывается от него в пользу гибких подходов. Частая причина отказа от жёсткого плана — в начале проекта мы не можем спланировать необходимый конечный результат. Голдратт тоже отказался от "Ганта", но по другой куда более распространённой причине.

В стандартном подходе есть понятие срока задачи. Сроки задач складываются в срок проекта. Для того чтобы успеть проект в срок, каждая задача должна быть выполнена в срок. Мы с вами знаем, что крайне мало проектов вокруг нас заканчивается в срок. Ну или в срок, но с превышением бюджета, или с урезанием содержания (спецификации) .

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

Читать далее

Создаем скелеты микросервисов быстро и без боли

Reading time4 min
Views8.5K

При создании новых сервисов повсеместно используют шаблонизацию, в крайнем случае — в формате ручного копирования кода. Но ручное копирование не исключает ошибок, а еще это муторно и долго. Быстрее и приятнее ответить CLI-утилите на несколько вопросов о будущем проекте и получить на выходе готовый «скелет» сервиса. Остается только начать писать бизнес-логику.

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

Читать далее

Лучшие книги и статьи по Kubernetes для системного аналитика с noob-level в DevOps

Level of difficultyEasy
Reading time6 min
Views17K

Всё началось с того, что команде, с которой я работаю, предложили заказ на миграцию приложений из Docker Compose «во что‑нибудь более масштабируемое, отказоустойчивое и гибкое». Например, Ansible или Kubernetes. И всё это прекрасно, но у меня возникли проблемы. Как системному аналитику и по совместительству PM проекта, с минимальным опытом в DevOps, пришлось изрядно попотеть с пониманием многих вещей, касающихся Kubernetes. Под катом подробно о статьях и книгах, которые помогли мне разобраться с оркестратором, понять, чего хочет заказчик, сформировать требования к работе системы в целом, отказоустойчивости, масштабированию и безопасности.

Читать далее

Почему мы стали дороже в этом году

Level of difficultyEasy
Reading time8 min
Views16K
Про такое обычно не пишут посты и вообще всеми силами стараются аккуратно спрятать под ковёр. Но вы нас уже раза три спросили, почему мы подняли цены.

Отвечаю: потому что мы очень жадные!


Настолько жадные, что учли инфляцию, колебания курса, повышение стоимости лицензий Microsoft (а мы всё ещё не пиратим), допиздержки на серый импорт железа, повышение цен на IP-адреса и глобальное потепление. Повысили цены и всё равно остались примерно в 2–4 раза дешевле облака одного очень российского поисковика.

В общем, такие времена. Кто-то разливает молоко в пакет по 0,9 литра, а кто-то покупает в VDS-хостинг десктопное железо. Но мы уже выросли достаточно, чтобы понимать, что такое планирование вдолгую, и знаем, что важно нашим клиентам.

А нашим клиентам важно, чтобы всё шло без сюрпризов. Последние три года и так выдались удивительные, и какие-нибудь новости от хостинга — это не то, что они хотели бы.
Читать дальше →

Внедрение CRM: полный чек-лист

Level of difficultyEasy
Reading time14 min
Views7.1K

Внедрение CRM-системы — нетривиальный процесс, который отнимает силы, время, ресурсы и стоит денег. Увы, до сих пор часть внедрений заканчивается тем, что система не работает на полную мощность, а сотрудники компании остаются разочарованными и перестают верить в возможности автоматизации. Как показывает опыт, причина чаще всего кроется не в самой CRM-системе, а в том, как компания подошла к внедрению. Ну это примерно как пробежать полный марафон, встав с дивана и отложив в сторону пиво и ведёрко крылышек: как минимум, вы не пробежите и 5 км, а в худшем случае вам станет очень, очень нехорошо. А вот если хотя бы три месяца потренироваться, разогреться перед стартом, соблюдать адекватную диету за три дня, пройти чекап, то можно если не пробежать марафон, то хотя бы получить свой личный рекорд, нужный и приемлемый именно для вас. 

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

Читать далее

Почему реляционные базы победили

Level of difficultyEasy
Reading time4 min
Views14K

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

Читать далее

Организуем окружение Rust и сборку Docker с применением Nix Flakes

Level of difficultyHard
Reading time8 min
Views7.7K
image

Чем интересен Nix


В Rust новое окружение для разработки обычно настраивается без труда – просто воспользуйтесь rustup и в добрый путь. Но при использовании такого сборочного инструмента как язык Nix, вы можете приобрести гораздо больше, лишь немного потрудившись. Ведь Nix позволяет:

  • Указывать в коде зависимости от проектов, не написанных на rust;
  • Автоматически добавлять в путь все инструменты/зависимости ваших проектов при помощи direnv;
  • С лёгкостью собирать тонкие контейнеры Docker.

Стоит начать применять Nix при работе в репозитории – и «как раньше» уже не захочется. Никаких больше README со списком команд Homebrew, apt, pacman и др., которые было бы необходимо выполнять. Сборка тонких контейнеров Docker делается в два счёта, без необходимости вручную вручную обрабатывать множество слоёв, из которых требуется копировать сборочные артефакты.
Читать дальше →

Алгоритм, сделавший ChatGPT таким «человечным» — Reinforcement Learning from Human Feedback

Reading time8 min
Views18K

ChatGPT генерирует разнообразный и привлекательный для человека текст. Но что делает текст «хорошим»? Это субъективно и зависит от контекста. Например, если вы попросите сочинить историю, нужен творческий подход. Если вы запрашиваете информацию, то хотите, чтобы она была правдивой. А если вы просите написать код, то ожидаете, что он будет исполняемым.

Вы наверняка слышали о том, что OpenAI привлекали сотрудников из Африки для помощи в разметке токсичности их ассистента. Менее известен факт найма реальных разработчиков, чтобы подготовить данные с пояснениями к коду на человечском языке.

Именно данные с фидбеком от людей позволили дообучить их языковую модель и сделать продукт таким «человечным».

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

Читать далее

От собеседования до амбассадора: пирамида потребностей разработчика

Reading time11 min
Views23K

Привет, Хабр! На связи DevRel-команда inDrive. Мы прошли путь от стартапа из Якутии до компании с продуктом, которым пользуются в 47 странах мира. В процессе мы поняли важность culture fit — насколько хорошо вписывается разработчик в инженерную культуру компании. Мы представили её в виде пирамиды по аналогии с пирамидой Маслоу. 

Уровни пирамиды разделены в соответствии с потребностями инженера на работе и проиллюстрированы примерами из нашего опыта. В основе пирамиды — комфортное рабочее окружение, на вершине — самоактуализация на конференциях.

А вот что между ними

GPT агент для запросов к большим структурированным документам с «пошаговым сохранением информации»

Level of difficultyEasy
Reading time3 min
Views5.1K

Хотел бы продемонстрировать сообществу экспериментальный подход к решению проблемы ограниченного размера контекста в GPT-4. Модель GPT-4 имеет ограничение в 8 тысяч токенов (32 тысячи токенов пока еще недоступны?), что эквивалентно примерно 32 Кбайт английского текста (128 Кбайт для 32 тысяч токенов). Это ограничение подразумевает, что суммарный размер вашего запроса и ответа модели должен быть в пределах этих ограничений. В результате модель не может отвечать на вопросы о больших документах (или обширных программных проектах), так как они не умещаются в контексте модели.

Читать далее

Docker и сети

Reading time5 min
Views67K

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

Читать далее

Rust 1.69.0: автоматические исправления предупреждений, отсутствие информации об отладке в скриптах сборки

Level of difficultyEasy
Reading time2 min
Views2.7K

Команда Rust рада сообщить о новой версии языка — 1.69.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.


Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.69.0 вам достаточно выполнить команду:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.


Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta) или nightly (rustup default nightly) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Читать дальше →

Это не чат, это GigaChat. Русскоязычная ChatGPT от Сбера

Level of difficultyMedium
Reading time14 min
Views121K

Хайп вокруг нейросетей, выровненных при помощи инструкций и человеческой оценки (известных в народе под единым брендом «ChatGPT»), трудно не заметить. Люди разных профессий и возрастов дивятся примерами нейросетевых генераций, используют ChatGPT для создания контента и рассуждают на темы сознания, а также повсеместного отнимания нейросетями рабочих мест. Отдадим должное качеству продукта от OpenAI — так и подмывает использовать эту технологию по любому поводу — «напиши статью», «исправь код», «дай совет по общению с девушками».

Но как достичь или хотя бы приблизиться к подобному качеству? Что играет ключевую роль при обучении — данные, архитектура, ёмкость модели или что-то ещё? Создатели ChatGPT, к сожалению, не раскрывают деталей своих экспериментов, поэтому многочисленные исследователи нащупывают свой путь и опираются на результаты друг друга.

Мы с радостью хотим поделиться с сообществом своим опытом по созданию подобной модели, включая технические детали, а также дать возможность попробовать её, в том числе через API. Итак, «Салют, GigaChat! Как приручить дракона?»

Читать далее

5 ошибок, способных уничтожить клиентский сервис в компании

Level of difficultyMedium
Reading time5 min
Views1.6K

Правильно организованный клиентский сервис — залог успешного бизнеса. От него зависит уровень удотворенности и лояльности аудитории, репутация компании. Как показывает практика, даже самые крупные организации допускают серьезные ошибки в работе с клиентами.

Читать далее

DataHub: веб-песочница для тех, кто изучает SQL

Level of difficultyEasy
Reading time4 min
Views18K

Привет! Меня зовут Андрей Шмиг, я разработчик платформы DataHub, платформа для совместной работы над данными - своего рода GitHub для данных. В этой статье покажу на что способен веб-редактор MySQL хранилища и почему это отличный инструмент для работы тем, кто изучает SQL.

Читать далее

VR и обучение персонала. За и против

Level of difficultyMedium
Reading time22 min
Views4.3K

Вернемся к вопросу оценки эффективности систем формирования виртуальной реальности в контексте обучения персонала, т.е. при использовании VR в компьютерных имитационных тренажерах. Данная статья является продолжением темы https://habr.com/ru/articles/508390/.

Тема данного поста является актуальной, поскольку в образовательном сообществе есть запрос на исследование эффективности VR. В данном посте я также попытаюсь ответить на некоторые вопросы, обсуждаемые практиками в группе "VR/AR в обучении "(https://t.me/dl_vr_in_digitallearning)

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

с использованием стандартных средств (клавиатура/мышь);

с использованием точной копии органов управления;

с использованием VR;

VR + реальные копии систем управления;

AR и другие варианты.

Читать далее

Как собирать поведенческие данные? Руководство для дата-инженеров и аналитиков

Reading time8 min
Views2.7K

Задача статьи — рассмотреть различные технологии сбора поведенческих данных, а также популярные инструменты в рамках каждой технологии. Но сначала я хотел бы пролить свет на то, почему поведенческие данные важны и откуда они берутся.

Читать далее

Information

Rating
Does not participate
Location
Макеевка, Донецкая обл., Украина
Date of birth
Registered
Activity