F#, несмотря на строгую типизацию, отлично подходит для решения разовых задач и исследований. В статье описываются исследования несложной олимпиадной математической задачи при помощи этого языка. В спойлерах приведены пояснения по синтаксису для новичков в F#.
Все потоки
Новости
Производительность и стабильность Knime на слабых компьютерах
Наступают времена, когда офисному сотруднику недостаточно знать Word и Excel в качестве минимального обязательного базиса программных продуктов. No-code/Low-code платформы и продукты - вот что незаметно становится обязательным для владения каждым. Эти платформы есть самый быстрый на сегодня способ без изучения языков программирования овладеть навыками использования искусственного интеллекта, машинного обучения, анализа big data, причём очень бигдата - на сотни миллионов строк.
Платформа Knime - один из таких инструментов. На первый взгляд это улучшенный Excel+BI. Но, когда посмотришь поглубже его возможности, то, очевидно - это обязательный инструмент будущего, по крайней мере для тех кто не являясь программистом хочет получить навыки как у программиста. Для простоты - Knime это "графическое" программирование. Берёшь квадратики, размещаешь в виде бизнес-процесса, соединяешь их между собой и оп! - уже провёл анализ маркетингового плана или парсинг сайтов конкурентов или анализ рекламных текстов с помощью NLP. Или, даже строишь приборную доску управления производственного предприятия будучи простым менеджером/инженером. Или ведёшь обработку научных данных.
Knime позволяет, конечно, и код писать, причём на трёх языках Python, Java, R, но это не обязательно. Бизнес-процессы знаешь, рисуешь? Вперёд!
Разумеется, при работе с огромными массивами данных, требования к компьютерным ресурсам возрастают. И что делать, если вам доступен простенький офисный или домашний компьютер? Или, если вы видите что аренда облачного ресурса на месяц дороже, чем купить компьютер с 64Гб оперативной памяти и процессором гоняющим Atomic Heart или Hogwartz Legacy на среднемалках?
TypeScript здорового человека, или почему с Enum лучше
Наверное, большинство фронтенд-разработчиков в какой-то момент сталкивались с задачей внедрения TypeScript на проект. Обычно это задача выполняется не сразу, а постепенно. Сначала просто переименовываются все файлы из .js в .ts с проставлением везде типа "any", просто чтобы проект запустился, и только потом постепенно разработчики начинают заниматься планомерным переводом.
Если разработчики к тому времени не имеют серьезного опыта работы с TypeScript и изучают его по ходу дела, то очень часто перевод заканчивается на этапе создания модели данных, то есть внедрения типов и интерфейсов для всех основных сущностей, типизации API.
Зачастую, при создании типов и интерфейсов, описывая какое-то свойство, которое может принимать определенное, конечное количество строковых значений, разработчики указывают тип поля string или в крайнем случае перечисляют эти значения через "или".
Так, при создании интерфейса какого-либо сотрудника, у которого есть имя, возраст и должность в компании наиболее простой и быстрый вариант представлен ниже:
interface Person {
name: string;
age: number;
position: string;
}
Ошибок нет. Вроде бы все работает, однако какие проблемы это может создать? Если имя - это строка, которая может принимать любое значение, то должность в компании - это тоже строка, но принимать она может только вполне определенное и конечное количество строковых значений. Например, в нашей компании есть только директор и продавец. В случае, если мы попытаемся создать объект с должностью "бухгалтер", такой тип ошибки не выдаст:
Mediastreamer2. Применение Lua-машины в фильтрах
Ранее мы рассматривали фильтры, поведением которых, после старта, можно управлять лишь частично - вызывая предусмотренные в них методы. В этой статье мы создадим программируемый фильтр, поведение которого будет полностью определяться встроенной в него Lua-машиной, точнее загруженным в неё скриптом. Это позволит менять алгоритм работы фильтра без перекомпиляции исполняемого кода.
Код программ данной главы можно скачать с Github по ссылке:
https://github.com/chetverovod/Mediastreamer2_LuaFilter
Приступим к практической реализации. Для этого можно вспомнить как создается новый фильтр, см. главу 4. В этой схеме источником звукового сигнала может быть либо сигнал с линейного входа звуковой платы (sound_card_read) либо генератор DTMFсигнала (dtmf_generator). Далее данные попадают на вход разрабатываемого Luaфильтра (lua_filter), который осуществляет их преобразование в соответствии с загруженным в него скриптом. Затем данные поступают на разветвитель (Tee), который из входного потока образует две копии, которые выдает на два выхода. Один из этих потоков поступает на регистратор (recorder) и на звуковую карту для воспроизведения (sound_card_write). Регистратор (*recorder*), он сохраняет их на диск в формате raw (wavфайл без заголовка). Таким образом мы сможем прослушать и записать результат работы Lua-фильтра.
Истории
GNS3 как открытая замена Packet Tracer в процессе учебной деятельности
В статье будет рассматриваться версия использования GNS3 внутри виртуальной машины VMware Workstation 16, используется дистрибутив Ubuntu c LXQt
Ссылка на установочный скрипт автора статьи.
Можете выполнить его с помощью
chmod +x ./gns3-install.sh
./gns3-install.sh.
Сегодня самыми распространенными курсами для начинающего системного администратора являются курсы академии Cisco. Они позволяют ознакомиться с популярными протоколами и понять базовые концепции защиты, настройки и построения различных сетей.
При прохождении курса, в конце почти каждой главы встречаются задания, выполненные в виде практических работ в Cisco Packet Tracer, и для новичка Packet Tracer довольно удобен, среди его плюсов:
• интуитивно понятный интерфейс
• низкие требования к железу
• возможность пользоваться функциями перемотки времени
• режим симуляции, в котором можно наглядно посмотреть путь каждого пакета и также проверить его содержимое.
Однако при глубоком изучении современных сетевых технологий c Packet Tracer возникают некоторые сложности, среди которых:
• поддержка только Cisco устройств
• баги с оборудованием на комплексных схемах, особенно при настройке STP у коммутаторов (часто приходится просто копировать схему, вставляя её рядом, и тогда она чудесным образом начинает работать)
• неполная командная среда, т.е. практически ничего, что не входит в рамки CCNA, на нём собрать не получится. Например, создание сценариев для автоматизации EEM недоступно, не все функции расширенных ACL доступны
• нет совместимости со старыми версиями. К примеру, версия 8.1.1 не совместима с 8.2.0, при этом я могу взять и открыть файл проекта на новой версии, нажать CTRL+C, зайти в старую версию и нажать CTRL+V, и тогда все заработает
Около 1/4 откликов на вакансию Python разработчика сделали с помощью ChatGPT
*Речь идёт об откликах на UpWork.
ChatGPT не просто входит в нашу жизнь, а стремительными темпами проникает туда, где его можно применить.
Стоило ожидать что ChatGPT прорвется и в автоматизацию откликов на вакансии на UpWorke. Мы задали соискателям простой вопрос:
What is latest Python release (including beta)?
РЖД — это мираж: как они отстают и теряют рынок
Вы когда-нибудь видели мираж? Это явление, когда вместо реального объекта вы видите его искаженное отражение. Представьте что вы в пустыне, когда на горизонте мерещится оазис. Но на самом деле там нет ни воды, ни деревьев, ни жизни. Только песок и жара. Так вот, РЖД - это тоже мираж. Они выглядят как крупная и успешная транспортная компания, которая обслуживает миллионы пассажиров и грузовладельцев. Но на самом деле они - устаревший и неэффективный монополист, который теряет свои позиции на рынке и не способен конкурировать с другими видами транспорта. В этой статье я покажу вам, почему РЖД скоро рассеется под давлением реальности.
Разбираем примеры хороших стратегий. Часть 1
Что такое хорошая стратегия? Чем она отличается от плохой? И какие примеры хороших стратегий могут наглядно это показать?В этой и следующей публикации я раскрываю примеры хороших стратегий и того, что именно делает их хорошими. В общей сложности в этой и следующей части приведу более 30 разных случаев в максимально сжатом формате.
Эта часть будет посвящена разборам конкретных успешных стратегий с выделением основных тезисов, которые бы были свойственны хорошим стратегиям. В следующей части я подробно остановлюсь на проблемах в таком подходе, на ограничениях и тому подобному.
Много букв.
Аутсорсинг ИБ. Плюсы, минусы, подводные камни
Рассматриваем основные преимущества от передачи функции обеспечения информационной безопасности профессионалам «со стороны». Рассказываем, что предусмотреть при заключении договора аутсорсинга для его максимальной эффективности
Как программный код привел к потерям большого количества денег и даже трагедиям
В настоящее время программирование играет огромную роль в нашей жизни и экономике. Все больше компаний, организаций и государств испытывают большую потребность в создании различных программных продуктов. Но не все проходят гладко и безопасно.
Зачастую сложности возникают из-за ошибок, которые программисты допускают в своей работе. И даже одна небольшая ошибка может привести к потере большого количества денег или даже трагедиям. Такое происходит далеко не редко и многие примеры известны всему миру.
В этой статье мы рассмотрим несколько примеров случаев, когда неправильный программный код привел к негативным последствиям и как это можно было бы избежать.
Если вы отказались от регулярных выражений, то теперь у вас три проблемы
Известная шутка программистов гласит, что если решение вашей проблемы включает в себя парсинг текста при помощи регулярного выражения, то теперь у вас есть две проблемы. Некоторые программисты, прочитав шутку, решают попробовать иной подход. Возможно, регулярные выражения не так уж нужны. Возможно, задачу можно решить простым split строки или чем-то подобным. Однако другие могут задуматься немного глубже и задаться вопросом: «А если я сделаю нечто настолько дерзкое, что в результате получу три проблемы?» Мой пост написан в таком духе!
В нём используется код на Python, однако его легко можно адаптировать под любой язык с поддержкой функций высшего порядка.
Блокчейн как принуждение к беспристрастию: краткая история технологии в патентах и лицах
Блокчейн-технологии сейчас у всех на слуху, они находят всё новые применения и в финтехе, и в других сферах. О них защищаются диссертации, издаются монографии и десятки специализированных журналов с сотнями научных статей. Патентных заявок на блокчейны самых разных вариаций в развитых странах мира действительно много. Сейчас блокчейн рассматривается не только как основа криптовалют и инструмент экономики нового типа. Варианты применения блокчейна — умные контракты, хранилища данных и т.д. Список будет длинным, потому что блокчейн-технологии применимы везде, где желательно устранить «человеческий фактор». Ответственность за достоверность операций и целостность данных берут на себя наука математика и компьютер, которые в этом смысле гораздо надежнее.Про патенты на блокчейн как новую веху в его истории в нашей статье.
Дизайн сетей ЦОД. Часть 3. Управление трафиком
В этой статье мы продолжим тему дизайна сетей ЦОД. Мы уже поговорили про надежность, рассмотрели организацию кабельной инфраструктуры в ЦОД и теперь самое время перейти к рассмотрению вопросов управления и оптимизации трафика. Немаловажную роль в оптимизации трафика на логическом уровне играет построение кабельной инфраструктуры, поэтому далее будем предполагать, что рекомендации по физическому построению сети из предыдущей статьи выполнены.
Ювелирный бренд Sokolov рассказал о тестировании и внедрении умных бейджей от VocaTech
В 2021 году ювелирный дом Sokolov вместе с компанией VocaTech внедрили умные бейджи для всех сотрудников, напрямую работающих с покупателями. Как рассказали Хабру в компании, в результате внедрения индекс потребительской лояльности увеличился на 10% и достиг 90%. При этом на запуск бренд потратил на 30% меньше, чем в 2020 ушло на аналитику тайных покупателей. В разговоре с Хабром Алина Колпакова, руководитель Аналитического центра в компании Sokolov, рассказала о бейдже, его внедрении и результатах использования.
Будущее Ethereum. Обновление Shanghai обвалит ETH или позволит ему обогнать BTC по капитализации?
12 апреля выходит масштабное обновление сети Эфириум Shanghai, после которого все пользователи, отправившие в стейкинг свои Эфиры, смогу его вывести и продать. Как поведет себя цена на монету ETH после этого события? В чем заключается суть обновления Shanghai? Что такого инновационного привносят в блокейн-индустрию смарт-кошельки и ликвидный стейкинг и почему так участились разговоры о том, что Эфириум в перспективе нескольких лет обгонит Биткоин по капитализации и станет главное движущей силой отрасли? На все эти вопросы (и многие другие) мы постараемся ответить в этой статье. Поехали!
Мы тоже отправили сотрудникам компании фишинговое письмо
Как говорили китайские юниты в С&С: Generals "No system is safe" – все системы уязвимы. И люди уязвимы не меньше. Про фишинг вроде бы все знают, но он по-прежнему остаётся самым популярным и результативным методом получения доступов и данных. В частности в сезоны праздников или распродаж, когда атакующие особенно активны.
Компании нередко рассказывают на Хабре истории об отправке «учебных» фишинговых писем клиентам или сотрудникам. Мы тоже поделимся деталями предновогодней атаки на собственных сотрудников, о которой не знала даже команда реагирования безопасности (SOC). В статье вас ждёт процесс подготовки, схема атаки, а также поминутная хроника событий.
Улучшение реактивности с помощью VueUse
VueUse — это библиотека из более чем 200 служебных функций, которые можно использовать для взаимодействия с целым рядом API, включая интерфейсы для браузера, состояния, сети, анимации и времени. Эти функции позволяют разработчикам легко добавлять реактивные возможности в свои проекты Vue.js, помогая им с легкостью создавать мощные и отзывчивые пользовательские интерфейсы.
Одна из самых интересных фич VueUse — поддержка прямого манипулирования реактивными данными. Это означает, что разработчики могут запросто обновлять данные в режиме реального времени, не используя сложный и подверженный ошибкам код. Благодаря этому легко создавать приложения, которые могут реагировать на изменения в данных и соответствующим образом обновлять пользовательский интерфейс без необходимости ручного вмешательства.
Цель этой статьи — изучить некоторые утилиты VueUse, которые помогут нам улучшить реактивность в нашем приложении Vue 3.
Как мы строим архитектуру микросервисов для мобильного приложения СберБизнес
Привет, Хабр! Прежде чем погружаться в проблемы, давайте я расскажу, как у нас устроена микросервисная архитектура и куда мы идём. К сожалению или к счастью, в сегменте B2B в банковском и околобанковском обслуживании клиенты чаще пользуются веб-версиями приложений. Большие списки, зарплатные ведомости, работа с документами — всё это проще делать на большом экране. Постепенный переход в мобильную среду начинается только сейчас.
Непарадная сторона: каково сегодня работать в ИИ
Все мои знакомые из тех, кто сегодня трудится в ИИ (как в академической, так и в промышленной сфере), сейчас буквально наэлектризованы тем импульсом, что пошёл от ChatGPT. Первый момент в истории ИИ, сравнимый с выходом iPhone. Работать в этой среде крайне обременительно сразу по множеству причин: выгорание, амбиции, помехи, законодатели мнений, потенциал финансового роста, этические соображения, пр.
ChatGPT сработала как вспышка, повлекшая карьерные перемены, забрасывание проектов, а также масса попыток запустить новые компании в этой области. Вся индустрия претерпела всеобщую встряску, благодаря чему система преисполнилась энергии. Теперь практически ежедневно поступают новые анонсы о моделях и продуктах. Когда мне довелось поговорить об этом с другом — он профессор, занимающийся NLP (обработкой естественного языка) — он сказал, что мы уже дошли до точки, когда пёстрая братия состоявшихся исследователей готова бросать кафедры и основывать компании, либо вступать в них. Такие вещи происходят не каждый день, так что можно считать оглушительным успехом наступившую ситуацию, в которой удалось отбить у учёных охоту заниматься академическими исследованиями. Ландшафт просто бурлит.
ChatGPT против интеллекта
Для неискушенных пользователей ChatGPT стал самим воплощением «искусственного интеллекта», а под этим термином в 2021 году большинство россиян понимали «разумные машины» или «сверхразум, превосходящий человека». Из-за этого легко возникает путаница, и многие люди не подвергают ответы машины критическому осмыслению, ошибочно полагают, что чат-бот всегда прав.
Возможно, со скорым выходом новой модели GPT-4 или даже GPT-5 мы сможем с большей уверенностью сказать о какой-либо осмысленности, но пока дела обстоят совершенно иначе. Чтобы показать это, просто заставим ChatGPT думать и посмотрим на примерах, насколько сейчас его ответы заслуживают титула «искусственного интеллекта». А заодно рассмотрим несколько проблем, которые нечасто обсуждают на фоне дискуссий о будущем рынка труда.