Pull to refresh
2
0
Send message

Некоторые малоизвестные фичи, фокусы и причуды языка C

Reading time19 min
Views19K

В этом посте разобраны некоторые фокусы, причуды и фичи языка C (некоторые из них – весьма фундаментальные!), которые, казалось бы, могут сбить с толку даже опытного разработчика. Поэтому я потрудился сделать за вас грязную работу и (в произвольном порядке) собрал некоторые из них в этом посте. Примеры сопровождаются ещё более вольными краткими пояснениями и/или листингами (некоторые из них цитируются).

Конечно же, здесь я не берусь перечислять абсолютно всё, так как факты из разряда «функция nan() не может устанавливать errno, поскольку в определённых ситуациях поведёт себя как strtod()» не слишком интересны.

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

Читать далее
Total votes 63: ↑63 and ↓0+80
Comments44

13 причин не быть управленцем

Reading time12 min
Views464K
Так уж сложилось, что последние несколько лет я занимал самые разнообразные руководящие должности в полудюжине компаний, занимающихся разработкой программного обеспечения разного рода. Довелось побывать и тимлидом, и менеджером проекта, и группы проектов, руководителем отдела и руководителем технического направления; подопечных бывало от двух до ста пятидесяти человек, да и размеры компании варьировались от трёх до двухсот тысяч работников. Неизменным оставалось только одно: чисто управленческая работа, постепенный и окончательный отход от технических задач.

А сейчас, в период между Рождеством и Новым Годом, когда особенно обострена склонность к углублённой рефлексии, приходит понимание того, что, знай я некоторые «инсайдерские» подробности управленческой деятельности заранее – сделал бы совсем другой выбор лет эдак семь назад.

Вот поэтому и родился этот немного хаотичный и очень разнокалиберный список моментов, которые очень хотелось бы передать куда-то обратно, примерно в 2005 год – дайте знать, если кто-то вдруг уже научился это делать! А пока, может быть кто-то найдёт некоторые из перечисленных ниже пунктов не до конца очевидными, или даже полезными для себя; было бы приятно осознавать, что удалось помочь кому-то сделать более осознанный выбор профессии – или просто о чём-нибудь важном задуматься.
Итак, поехали
Total votes 441: ↑410 and ↓31+379
Comments340

Нейронные оптимизаторы запросов в реляционных БД (Часть 1)

Level of difficultyMedium
Reading time15 min
Views6.8K

В 1970-х годах известный программист Эдгар Кодд разработал математически выверенную теорию организации данных в виде таблиц (реляций). С тех пор утекло немало воды — появилось большое количество различных коммерческих и open-source реляционных систем управления базами данных (РСУБД). Скоро стало понятно, что эффективное получение данных из базы — задача далеко не тривиальная. Если говорить прямо, она нелинейная и в общем случае NP-сложная.

Когда SQL-запрос становится немного сложнее: SELECT * FROM table, у нас появляется огромная вариативность его исполнения внутри системы — и не всегда понятно, какой из возможных вариантов эффективнее как по памяти, так и по скорости. Чтобы сократить огромное количество вариантов до приемлемого, обычно используются так называемые эвристики — эмпирические правила, которые придуманы человеком для сокращения пространства поиска на несколько порядков. Понятное дело, эти правила могут отсечь и сам оптимальный план выполнения запроса, но позволяют получить хоть что-то приемлемое за адекватное время.

В последние годы в связи с активным развитием ML начали развиваться и нейронные оптимизаторы запросов —особенность которых в том, что они самостоятельно, без участия человека, находят необходимые закономерности в выполнении сложных планов исходя из обучения на огромном количестве данных. Тенденция началась приблизительно в 2017 году и продолжается до сих пор. Давайте посмотрим, что уже появилось в этой области в хронологическом порядке и какие перспективы нас ждут.

Читать далее
Total votes 24: ↑23 and ↓1+31
Comments9

Как безопасно использовать открытый код и не лишиться прав на ПО

Level of difficultyMedium
Reading time9 min
Views6.6K

Привет! Я Олег Макаров, ведущий юрист ispmanager. Эта статья будет полезна всем, кто зарабатывает на ПО с открытым кодом. Расскажу, как безопасно работать с лицензиями Open source и что бывает с нарушителями — а уже попадались D-Link и Cisco Systems. Российский разработчик Антон Мамичев выиграл дело о нарушении его авторских прав на открытый код у Veeam Software, дочерней компании Amazon.

Читать
Total votes 23: ↑20 and ↓3+22
Comments22

Памятка по BPMN и BPMN-диаграммам

Level of difficultyEasy
Reading time7 min
Views31K

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

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

Читать далее
Total votes 49: ↑47 and ↓2+60
Comments35

Почему «утекают» данные в больших языковых моделях. Часть 3

Level of difficultyHard
Reading time11 min
Views1.3K

Добрый день, уважаемые читатели. Это третья часть статьи, посвящённой «утечке» конфиденциальных данных на примере больших языковых моделей, реализуемой посредством кибератак. В первых двух частях (раз и два) мы рассмотрели возможные причины и последствия таких атак. Также отдельно затронули их виды, детально остановились на механизмах и методах сбора и формирования наборов данных, их структуре и свойствах. 

А здесь мы рассмотрим свойства получаемых графов знаний, а также инструменты для их отображения. Прежде всего, нас интересует получение графа знаний (раз и два) и верная его интерпретация, а также подбор инструмента, который бы объективно отражал граф и мог поддерживать очень быстрое масштабирование, ведь количество данных в модели постоянно растёт, а узлы постоянно мигрируют. Более того, как оказалось, они не статичны и могут быть подвержены слияниям, распадам и перетеканию в смежные области. 

Читать далее
Total votes 15: ↑14 and ↓1+24
Comments0

Использование UAVCAN для модульной электроники БПЛА, или как не спалить дрона, перепутав провода

Reading time7 min
Views14K
Привет! Меня зовут Роман Федоренко, я доцент Центра компетенций НТИ по направлению «Технологии компонентов робототехники и мехатроники» на базе Университета Иннополис. Я работаю с командой робототехников, которая специализируется на беспилотных летательных аппаратах. По большей части мы занимаемся «высокоуровневым» управлением БПЛА: планирование движения, обход препятствий, решения для киносъёмки и сканирования местности. Хотя собственные небольшие коптеры тоже собирали и с «железом» работали. В прошлом году мы начали разработку большого самолёта вертикального взлёта и посадки, который включает все уровни — от изготовления носителя до обвески датчиками и интеллектуального управления. И при разработке этого проекта познакомились с UAVCAN.

UAVCAN — это открытый лёгкий протокол для бортовой сети подвижных объектов. Недавно его разработчик и мейнтейнер Павел Кириенко Spym рассказал о протоколе на PX4 Developer Summit, крупной конференции сообщества разработчиков дронов с использованием open-source экосистемы вокруг автопилота PX4, частью которой является UAVCAN. А ещё Павел подготовил подробную статью для русскоязычного сообщества на Хабре по следам своего доклада.

В этом материале я расскажу о практической стороне использования протокола с позиции разработчиков систем автоматического управления для БПЛА: как мы выбрали UAVCAN, что делаем с помощью него и какие возможности видим в будущем.


Total votes 12: ↑12 and ↓0+12
Comments6

Как обмануть автопилот PX4: настоящая HITL-симуляция на шине UAVCAN

Reading time10 min
Views8K

Мы разработали и хотим представить новый вариант HITL-симуляции дронов, когда автопилот может даже не знать, работает ли он с реальными датчиками на шине или же в симулируемом окружении. Набор программных модулей, работающих в «боевом» режиме и в режиме симуляции (почти) идентичен, в отличие от альтернативного MAVLINK-HITL подхода. Этот проект — наш вклад в экосистему вокруг PX4 и UAVCAN. Будем рады адоптерам и контрибьюторам.

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

Фокусы с опторазвязкой

Level of difficultyMedium
Reading time9 min
Views25K

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

Читать далее
Total votes 125: ↑124 and ↓1+160
Comments63

Что такое Универсальный решатель проблем — программа из 1955 года

Reading time8 min
Views20K
Когда Герберт Саймон и Алан Ньюэлл в 1955 году начали придумывать Logic Theorist, понятия «искусственный интеллект» ещё не существовало.

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

А потом они решили сделать ещё более крутую штуку — программу, которая сможет решить любую проблему, поставленную перед людьми. Они назвали её GPS — General Problem Solver. По идее, у них должен был получиться разумный электронный советчик, который точно знает, как лучше всего поступить в сложной ситуации из серии «аккумулятор на машине разрядился, а вам срочно нужно отвезти ребёнка в детский сад». Ну или дать ответ на главный вопрос жизни, Вселенной и всего такого.

Но вот получилось вообще не то.

image
«Ты только посмотри, что GPS предлагает нам сделать!»
Читать дальше →
Total votes 37: ↑37 and ↓0+55
Comments10

Психология убеждения. Как убеждать других и уметь распознавать манипуляции

Reading time14 min
Views136K

Эта статья — некраткий конспект книги Роберта Чалдини «Психология убеждения». Будет полезна всем, кто имеет дело с людьми, продажами и бизнесом. Книга настолько полезна, что должна оказаться на полке каждого. Помимо того, что мы хотим влиять на окружающих, очень полезно знать, когда окружающие пытаются повлиять на нас. Внутри вы найдёте множество способов убеждения и, сразу после прочтения, будете с лёгкостью замечать, когда вами пытаются манипулировать.
Читать дальше →
Total votes 90: ↑67 and ↓23+44
Comments50

Открытый AI в коммерческом продакшене: обзор h2oGPT

Reading time13 min
Views5.7K

Крупные компании пока используют проприетарные нейросети, мягко говоря, неохотно или не используют вовсе. Как правило, их применяют отдельные сотрудники. Частично это можно объяснить опасениями со стороны специалистов по информационной безопасности, ведь тот же ChatGPT, например, открыто общается с интернетом. И в этот момент на сцену выходит open source.

В этой статье поговорим, из чего состоит h2oGPT, на каких моделях функционирует, какими метриками оценивается и в какой сервис «завернут». Дополнительно взглянем на конкурентов и ситуацию на рынке в целом.
Читать дальше →
Total votes 40: ↑36 and ↓4+43
Comments12

Септик и автономная канализация. Часть 2. Проектирование

Level of difficultyEasy
Reading time15 min
Views10K

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

Читать далее
Total votes 20: ↑18 and ↓2+18
Comments14

Как от одного датчика дойти до полу-умной квартиры

Level of difficultyMedium
Reading time12 min
Views14K

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

Читать далее
Total votes 33: ↑33 and ↓0+37
Comments39

Умная квартира айтишника: хотел всё на Wi-Fi, но передумал

Level of difficultyEasy
Reading time7 min
Views64K

Артур — айтишник из Минска, который любит все технологичное и современное. После покупки новой квартиры с черновой отделкой все сомнения были отброшены: она будет умной!

Как тогда казалось Артуру, беспроводные технологии — самое передовое и удобное решение для инженерных систем умного дома. Тем более многие кондиционеры, пылесосы, приводы штор, лампы, регуляторы теплых полов и другая бытовая техника поддерживают Wi-Fi «из коробки».

Однако появились аргументы против. В итоге Артур выбрал гибридное решение, сочетающее как проводные технологии, так и Wi-Fi с Zigbee.

В статье мы расскажем о выборе Артура и инженерных системах, которые работают в его умной квартире. Интересно? Ныряйте под кат.

Читать далее
Total votes 31: ↑30 and ↓1+31
Comments134

9 Синтез и коррекция систем автоматического регулирования (САР)

Reading time14 min
Views4K

Продолжаем публикацию лекций по предмету "Управление в технических системах". Кафедра "Ядерные энергетические установки" МГТУ им. Н.Э. Баумана. Автор: Олег Степанович Козлов.

1. Введение в теорию автоматического управления.2. Математическое описание систем автоматического управления 2.1 — 2.32.3 — 2.82.9 — 2.13

3. Частотные характеристики звеньев и систем автоматического управления регулирования. 3.1. Амплитудно-фазовая частотная характеристика: годограф, АФЧХ, ЛАХ, ФЧХ3.2. Типовые звенья систем автоматического управления регулирования. Классификация типовых звеньев. Простейшие типовые звенья3.3. Апериодическое звено 1–го порядка инерционное звено. На примере входной камеры ядерного реактора3.4. Апериодическое звено 2-го порядка3.5. Колебательное звено3.6. Инерционно-дифференцирующее звено3.7. Форсирующее звено.  3.8. Инерционно-интегрирующее звено (интегрирующее звено с замедлением)3.9. Изодромное звено (изодром)3.10 Минимально-фазовые и не минимально-фазовые звенья3.11 Математическая модель кинетики нейтронов в «точечном» реакторе «нулевой» мощности

4. Структурные преобразования систем автоматического регулирования.

5. Передаточные функции и уравнения динамики замкнутых систем автоматического регулирования (САР).

6. Устойчивость систем автоматического регулирования. 6.1 Понятие об устойчивости САР. Теорема Ляпунова. 6.2 Необходимые условия устойчивости линейных и линеаризованных САР. 6.3 Алгебраический критерий устойчивости Гурвица. 6.4 Частотный критерий устойчивости Михайлова. 6.5 Критерий Найквиста.

Читать далее
Total votes 9: ↑8 and ↓1+8
Comments0

Современный вариант развития старых аналоговых компьютеров

Reading time11 min
Views22K

Учёные и инженеры могут с выгодой использовать давно заброшенный подход к вычислениям



Этот аналоговый механический компьютер использовался для прогноза приливов. Он был известен, как «старый латунный мозг», или, более официально, «Машина предсказания приливов №2». Она служила Прибрежной и геологической службе США для подсчёта таблиц приливов начиная с 1912 года, и не уходила на пенсию вплоть до 1965, когда её заменили электронным компьютером.

Когда Нил Армстронг и Базз Олдрин опустились на Луну в 1969 году в рамках миссии Аполло-11, это, вероятно, было величайшим достижением в инженерной истории человечества [не считая, конечно, запуска первого спутника и первого человека в космос, первого выхода человека в открытый космос, а также создания автоматического космического корабля многоразового использования / прим. перев.]. Многие люди не отдают себе отчёта в том, что важным ингредиентом в успехе миссий Аполло и их предшественников были аналоговые и гибридные (аналогово-цифровые) компьютеры, которые НАСА использовала для симуляций, а в некоторых случаях, даже для управления полётами. Многие из живущих сегодня людей даже не слышали об аналоговых компьютерах, считая, что компьютеры, по определению, являются цифровыми устройствами.
Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments28

С новым годом: GPT в 500 строках на SQL

Reading time42 min
Views39K

В минувшем году все только и говорили об ИИ и о том, как он может всё за вас сделать.

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

«Эй, ChatGPT. А ты можешь реализовать большую языковую модель на SQL?»
«Нет, SQL не подходит для реализации больших языковых моделей. Язык SQL предназначен для выполнения запросов к данным, хранящимся в РСУБД и для управления этими запросами. Для реализации большой языковой модели требуются сложные алгоритмы, обширные датасеты, а зачастую — и фреймворки для глубокого обучения. SQL всеми этими возможностями не обладает.»

Что ж, лишний раз убеждаешься, что, если хочешь что‑то сделать хорошо – сделай это сам.

Давайте же воодушевимся этим оптимистическим планом и реализуем большую языковую модель на языке SQL.

Читать далее
Total votes 179: ↑175 and ↓4+205
Comments21

Microsoft представила небольшую модель Phi-2, которая лучше «старших сестёр». Что это за проект?

Reading time4 min
Views5.7K

IT-компании сейчас создают различные языковые модели, стараясь превзойти друг друга. Одна из таких организаций — корпорация Microsoft. Не так давно она представила модель Phi-2, при этом разработчики утверждают, что она равна или превосходит гораздо более масштабные проекты. Подробности — под катом.

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

3D-принтер на прокачку

Level of difficultyEasy
Reading time12 min
Views42K

Всем привет! Меня зовут Влад, и я алкоголик самодельщик. Сегодня мы поговорим про доработку популярного 3Д принтера Flying Bear Ghost 5. Я знаю, что уже вышла шестая версия медведя, но я начал заниматься этим проектом еще до 24 февраля 2022 года. 

Эта статья — продолжение нашей серии публикаций по следам DIY-митапа в офисе VK. Предыдущая статья.

Читать далее
Total votes 31: ↑29 and ↓2+39
Comments28

Information

Rating
4,564-th
Registered
Activity