Pull to refresh
3
0.2
Send message

Умная «Квартира»

Reading time7 min
Views65K
Всем привет! Наконец-таки подошел к концу капитальный ремонт в квартире, и в связи с этим хочу поделиться с Вами, реализованным проектом «Умной квартиры» с базовыми возможностями управления освещением, подогревом теплых полов, контроля температуры и влажности помещений, и прочими плюшками. Описательная часть будет выполнена в виде мануала (так проще излагать что ли).

image
Читать, если интересно!
Total votes 42: ↑40 and ↓2+38
Comments91

API BIM-системы Renga

Reading time6 min
Views6.8K
Всем привет! В этой статье я расскажу об API BIM-системы Renga. О самой системе можно почитать тут, здесь же можно запросить версию для некоммерческого использования. Если вкратце, то Renga это трехмерная система автоматизированного проектирования в архитектуре и строительстве. В ней проектировщик/архитектор/конструктор работает с информационной моделью здания, получает ассоциативные чертежи, спецификации, в общем, создает проект.



Зачем нужно API CAD-системы


Сначала, как водится, немного водички.

Разработка расширений для CAD систем довольно распространена, поскольку в любом проектировании существуют различные направления, разделы и стандарты оформления проектной документации, которые требуют разной узкоспециализированной функциональности. Кроме того существуют задачи интеграции с программами расчета, визуализации, документооборота и многими другими. Выход — создание подключаемых модулей, расширяющих функциональность системы.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments5

Эксплуатация зданий: что будет, если один раз подойти с умом

Reading time7 min
Views18K
Карточка оборудования на модели здания — к ней прикреплены работы, затраты по единице железа, все документы (договоры, гарантия и пр.), инструкции и регламенты.

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

И все расчёты дальше идут лесом. Звучит дико, но так почти на каждом объекте.

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

Естественно, BIM-приложения дают много и в том случае, если здание уже построено и надо эксплуатировать рациональнее. Да, бывает, что модели нет (а иногда даже и простой 2D-документации), но все эти проблемы решаемы. Мы же в будущем, чёрт побери, тут всё продумано!
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments7

BIM: как мы строим строителей на стройке

Reading time6 min
Views78K
По нашей примерной оценке, основанной на 20-летней практике, на земляных работах можно «потерять» до 50-60 % бюджета. На железобетоне и отделке точно 30 %. На ошибках перезаказа при коллизиях стоимость инженерки увеличивается примерно на 10 %. Именно по этой простой причине, когда «злой заказчик» внедряет BIM-модель здания, со всех сторон начинаются дикие крики и стоны.

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


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

Что такое BIM-модель? Это трёхмерная модель здания, где все системы состыкованы и увязаны в одном едином плане. Поставили розетку в комнате — в общей смете тут же появилась новая розетка и соответствующий метраж кабеля. Погрешность такой модели по материалам — 2 %. На бумаге обычно берут запас 15 %, и излишки этого запаса отчаянно «теряются».

Давайте лучше покажу примеры, чем буду рассказывать.
Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments88

Советский HI-FI и его создатели: путешествие «Брига» «капитана» Лихницкого

Reading time9 min
Views50K
Этот пост является пилотным в цикле публикаций о культовой аппаратуре в советской аудиотехнике. Мы сравнительно давно обещали этот цикл, но как-то «не доходили руки». В серию статей войдут несколько УМЗЧ, виниловых проигрывателей, акустических систем высокой верности воспроизведения. Иными словами, писать буду про устройства, которые оставили след в истории СССР, а для многих стали символами эпохи. Я постараюсь не обойти стороной историю создания этих девайсов, а также некоторые значимые моменты в биографии их создателей.



Полагаю, будет справедливо первую публикацию посвятить усилителю «Бриг» и его создателям Анатолию Лихницкому и Алле Каляевой, как первопроходцам серийного HI-FI в СССР. Признаюсь, что не редко я иронизирую по поводу маргинальных взглядов Лихницкого на звук и некоторые аспекты схемотехники, о которых этот человек много писал в конце жизни, что никак не умаляет его заслуг как инженера и организатора работ по созданию первого советского HI-FI УМЗЧ. Следует также отметить существенный вклад в создание усилителя инженера Николая Слесарева и дизайнера Владимира Ратаева.
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments76

Взаимодействие веб-страницы с Ethereum

Reading time4 min
Views19K
В сети появилось довольно много материалов про разработку для блокчейн Ethereum и про смарт-контракты, а так же про то, как создавать эти самые смарт-контракты.

В конце концов, есть официальная документация и stackoverflow.

В то же время, долго разбираться в документации не хочется, и многие разработчики в последнее время хотят побыстрее что-то пощупать руками и написать что-нибудь под эфириум, а так как вопросов возникает масса и источники разрознены, я решил собрать в одном месте простой пошаговый мануал с картинками по созданию своего первого dapp (от decentralized app) — децентрализованного приложения. Он будет представлять из себя связку смарт-контракта с веб-интерфейсом. То есть чтобы с помощью веба можно было доставать информацию из блокчейна и пихать ее туда. Постараюсь быть кратким, шаги буду объяснять по ходу дела.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments1

Структура и модель выполнения .NET Core приложений

Reading time15 min
Views53K
В этой статье я рассмотрю компоненты платформы .NET Core 2.0, необходимые для загрузки и выполнения .NET Core-приложений, а также артефакты для двух возможных типов развертывания.

Текст объемный и рассчитан на:

  • начинающих разработчиков, которые только знакомятся с платформой .NET Core;
  • опытных разработчиков, выполняющих роль DevOps-инженеров в produсtion-окружении.

В статье не упоминается процесс создания приложений при помощи SDK (dotnet CLI), однако эта информация будет полезной для понимания, как работает SDK, а именно её основной компонент (ядро) — «драйвер» dotnet.dll, поскольку эта библиотека является управляемой сборкой и выполняется на .NET Core.

Примеры процессов выполнения описаны для ОС Windows, но работают по тому же принципу и на других ОС (с учетом различных расширений исполняемых файлов и нативных библиотек).
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments10

Договоры — это как отладка

Reading time7 min
Views29K
7.2. Как форс-мажор указана забастовка в отрасли и регионе, это лучше вычеркнуть, т.к. неясно, в какой отрасли и в каком регионе.

Чтобы быть плохим юристом, не надо обладать специальными навыками: достаточно здравого смысла, чтобы разбираться в документах. Чтобы быть приемлемым юристом — ещё нужна хорошая память для того, чтобы помнить, что и где в нормативах и прецедентах. А чтобы быть отличным — ещё иметь огромную практику и нездоровое чувство юмора. Хотя последнее необязательно, конечно.

Каждый наш договор страхует юрист-отладчик, который как брекпоинтами размечает точки рисков. Сейчас покажу пару примеров того, что он видит и чувствует.
Читать дальше →
Total votes 85: ↑82 and ↓3+79
Comments91

Сомнительный скрипт замены ссылок mamydirect на Geektimes

Reading time10 min
Views35K
Geektimes присоединился к некой «партнерской программе», заменяющей прямые ссылки ссылками со скриптом перенаправления.

В код HTML добавился следующий внешний скрипт:

<script src="//js.mamydirect.com/js/?h=CqwpgTi7" type="text/javascript" async></script>

Скрипт, подключенный на страницы гиктаймза, заменяет ссылки, ведущие не на файлы .jpg, .bmp, .pdf, .png, .zip и .gif, находящихся не на доменах из черного списка, ссылкой с редиректом через скрипт http://js.mamydirect.com/redir/clickGate.php, вида:

http://js.mamydirect.com/redir/clickGate.php?u=RGm1L5B5&m=1&p=8d1pun3ZhJ&t=CqwpgTi7&st=&s=&splash=0&abp=1&url=https%3A%2F%2Fmeduza.io%2Fnews%2F2017%2F06%2F09%2Fdyru-v-reestre-roskomnadzora-ispolzovali-protiv-platezhnyh-serverov-rossiyskih-bankov&r=https%3A%2F%2Fgeektimes.ru%2Fpost%2F289947%2F

Он же, в свое время, добавляет куки PHPSESSID и совершает перенаправление на URL, указанный в ссылке.
Читать дальше →
Total votes 144: ↑136 and ↓8+128
Comments172

Опрос пользователей Хабра

Reading time1 min
Views20K
Дорогие друзья! Мы совершили несколько итераций и за последнее время изменили дизайн наших сайтов: Хабрахабр и Гиктаймс. Мы получили немало фидбэка в комментариях и в обращениях — спасибо за советы, найденные баги фичи, мы всё учли, сделали и записали.


Мы знаем, сколько вас из какой страны и региона, какие вы по полу и даже немножко — по увлечениям. И мы обязательно продолжим знакомство. Но ни одна аналитика не расскажет нам то, что вы можете рассказать словами о том, как вы пользуетесь Хабром и Гиктаймс. Поэтому просим вас уделить несколько минут нашему опросу.
Читать дальше →
Total votes 128: ↑126 and ↓2+124
Comments339

Flightradar24 — как это работает?

Reading time4 min
Views124K
Наверное каждый, кто хоть раз встречал или провожал родственников или друзей на самолет, пользовался бесплатным сервисом Flightradar24. Это весьма удобный способ отслеживания положения самолета в реальном времени.



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

Восполним этот пробел. О том, как это работает продолжим под катом.
Читать дальше →
Total votes 130: ↑129 and ↓1+128
Comments190

Взлом Bitcoin по телевизору: обфускуй, не обфускуй, все равно получим QR

Reading time13 min
Views48K

История про то, как секретный ключ для Bitcoin’a в виде QR-кода восстановили из размазанной картинки


image

Мы могли бы просто назвать этот пост «Насколько хорош QR-код и как мы его восстановили практически из ничего». Но гораздо интереснее, когда QR-код является ключом к кошельку на сумму $1000 в битках.
Total votes 126: ↑122 and ↓4+118
Comments29

Создание языка программирования с использованием LLVM. Часть 7: Расширение языка: Изменяемые переменные

Reading time37 min
Views8.1K
Оглавление:

Часть 1: Введение и лексический анализ
Часть 2: Реализация парсера и AST
Часть 3: Генерация кода LLVM IR
Часть 4: Добавление JIT и поддержки оптимизатора
Часть 5: Расширение языка: Поток управления
Часть 6: Расширение языка: Операторы, определяемые пользователем
Часть 7: Расширение языка: Изменяемые переменные
Часть 8: Компиляция в объектный код
Часть 9: Добавляем отладочную информацию
Часть 10: Заключение и другие вкусности LLVM



7.1. Введение


Добро пожаловать в главу 7 руководства “Создание языка программирования с использованием LLVM”. В главах 1-6 мы построили полноценный, хотя и простой, функциональный язык программирования. На этом пути мы изучили некоторые техники парсинга, изучили, как строить и и как представлять AST, как построить LLVM IR, и как оптимизировать результирующий код, и как JIT компилирует его.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments0

Поддержка пользователей, или экстренная компьютерная помощь. Как это делается и сколько стоит

Reading time9 min
Views34K
Восстановление работоспособности компьютеров на рабочих местах и решение  проблем бизнес-пользователей в случае каких-либо инцидентов часто напоминает тушение пожаров – реакция на сбои и поломки должна быть как можно более оперативной. Без специальной службы здесь не обойтись. Но не так-то просто без цифр и примеров ответить на вопрос, стоит ли создавать собственный отдел или лучше обратиться к аутсорсеру. Я посчитал, во сколько может обойтись техподдержка для средних и крупных компаний.



Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments96

EmerDNS – альтернатива DNSSEC

Reading time5 min
Views16K
image

Классический DNS, который специфицирован в rfc1034 не пинает только ленивый. При весьма высокой эффективности работы, он действительно никак не защищён, что позволяет злоумышленникам переводить трафик на подставные сайты, путём подмены DNS-ответов для промежуточных кеширующий серверов (отравление кэша). Как-то с этой напастью борется https с его SSL-сертфикатами, которые позволяют обнаружить подмену сайта. Но пользователи обычно ничего не понимают в SSL, и на предупреждения о несоответствии сертификата автоматически кликают «продолжить», вследствие чего время от времени страдают материально.

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments19

Создание языка программирования с использованием LLVM. Часть 5: Расширение языка: Поток управления

Reading time29 min
Views7.4K
Добро пожаловать в Главу 5 учебника «Создание языка программирования с LLVM». Предыдущие главы (1-я, 2-я, 3-я и 4-я) описывали реализацию простого языка программирования Kaleidoscope и включение в него поддержки генерации LLVM IR, а также последующей оптимизации и JIT-компиляции. К сожалению, в текущем виде Kaleidoscope почти бесполезен: он не имеет никакого потока управления, за исключением вызовов и возвратов. Это означает, что в коде не может быть условных переходов, что значительно ограничивает язык программирования. В этой главе мы расширим Kaleidoscope, добавив в него выражение if/then/else и простой цикл "for".
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments3

Создание языка программирования с использованием LLVM. Часть 4: Добавление JIT и поддержки оптимизатора

Reading time20 min
Views10K
Добро пожаловать в Главу 4 учебника «Создание языка программирования с LLVM». Предыдущие главы (1-я, 2-я и 3-я) описывали реализацию простейшего языка программирования и добавление в него ​​поддержки генерации LLVM IR. В этой главе описаны две новых техники: добавление поддержки оптимизатора и добавление поддержки JIT-компилятора. Эти дополнения продемонстрируют как получить хороший, эффективный код для нашего языка программирования Kaleidoscope.
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments4

Создание языка программирования с использованием LLVM. Часть 3: Генерация кода LLVM IR

Reading time22 min
Views16K
Добро пожаловать в Главу 3 учебника «Создание языка программирования с LLVM». В этой главе мы рассмотрим, как преобразовать AST (Абстрактное Синтаксическое дерево), построенное в Главе 2, в LLVM IR. Она расскажет вам о некоторых аспектах работы LLVM, а также продемонстрирует, насколько он прост в использовании. Вы увидите, что гораздо больше труда потребовалось на лексический и синтаксический анализ, чем на непосредственное создание кода LLVM IR.

Обратите внимание: код из этой главы требует наличия LLVM 2.2 или более поздней версии. С версиями по LLVM 2.1 включительно этот код работать не будет. Также стоит отметить, что вам стоит использовать версию этого учебника, которая соответствует вашему релизу LLVM: вы можете использовать документацию, которая прилагается к официальным выпускам или посетить страницу с релизами на llvm.org.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments11

Создание языка программирования с использованием LLVM. Часть 2: Реализация парсера и AST

Reading time20 min
Views36K
Добро пожаловать в Главу 2 учебника «Создание языка программирования с LLVM». В этой главе мы увидим, как использовать лексический анализатор, созданный в Главе 1, чтобы построить полный синтаксический анализатор для нашего языка Kaleidoscope. После того, как у нас будет готов парсер, мы будем строить Abstract Syntax Tree (AST) (Абстрактное синтаксическое дерево).
Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments6

Создание языка программирования с использованием LLVM. Часть 1: Введение и лексический анализ

Reading time7 min
Views59K
Добро пожаловать в учебник «Создание языка программирования с LLVM». Этот учебник знакомит вас с созданием простейшего языка программирования, и при этом показывает, каким оно может быть легким и интересным, а также даёт вам начальные знания, которые вы затем сможете применить на других языках программирования. Код в этом учебнике также может быть использован в качестве стартовой площадки для ваших творений с помощью LLVM.

Целью данного учебника является постепенное представление нашего языка, описание его пошагового создания. Это позволит нам охватить достаточно широкий спектр вопросов проектирования языков и использования LLVM, попутно показывая и объясняя код без огромного количества ненужных деталей.
Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments28

Information

Rating
2,715-th
Registered
Activity