Архив за 27 июля 2017

Введение

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

Зачем нам нужен язык Weather?

В комментариях к 1 посту было следующее высказывание

С этой точки зрения, DSL — это как фреймворк, только с более удобным интерфейсом. Ясное дело, под один проект фреймворк делать никто не будет, за исключением совсем уж монструозных случаев. А сделать его под конкретную предметную область — почему бы и нет?..

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

Синтаксис

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

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

Сотрудники НАСА рассказали, почему астронавты не выходят в открытый космос активнее

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

Упоролся на днях и снял кЫно про использование осциллографа. Второй раз, да. Но на этот раз цифрового. За основу взял RIGOL, но в остальных все похоже. К аналоговому тоже все это относится, по крайней мере работа синхронизации в тех возможностях, что там есть.

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

Добрый вечер. У нас тут подходит к концу перевод Appium Essentials. Что уже пройдено:

В этой главе:

  • Автоматизируем набор номера на устройстве Android
  • Автоматизируем форму регистрации на Android
  • Используя Chrome, залогинимся на Gmail
  • iOS. Автоматизируем Body Mass Index (BMI)
  • Автоматизация гибридных приложений на устройствах iOS
  • iOS. Автоматизация веб-приложений

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

Мой проездной + Мобильный билет - 1

Обычно я ношу с собой рюкзак полный всяких “необходимых” вещей, включая токовые клещи и трекер проводов. Но летом рюкзак становится жаркой обузой, и вообще хочется не связывать себя даже проводами. Решил, что сейчас подходящее время провести эксперимент — я выходил из дома только со смартфоном и велосипедом, благо велосипед позволяет заряжать смартфон.
Читать полностью »

Telegram сам добавляет чужие контакты? Это норма - 1
Пользуюсь Telegram не первый год. Всё хорошо, но вот какое-то время назад начала смущать одна странная деталь: время от времени Telegram самостоятельно добавлял в мои контакты неизвестных людей, сопровождая это уведомлением, что они зарегистрировались в Telegram. Вообще Telegram не должен показывать номера телефонов людей, которых нет в вашей телефонной книге, но для таких самопроизвольно появляющихся контактов я видел и номер телефона. Всё выглядело так, будто это контакты из моей телефонной книги. Но их там не было. Тогда я решил, что Telegram автоматически добавляет в мои контакты тех людей, которые добавили мой номер телефона в свою телефонную книгу. Поскольку мой номер телефона несколько лет назад был указан на одном небольшом сайте, я решил, что кто-то из немногочисленных посетителей зачем-то добавил в свои телефонные книги, и это выглядело правдоподобно.
Читать полностью »

Сразу скажу, хаба для F# на хабре нет, поэтому пишу в C#.

Для тех кто не знаком с F#, но знаком с C#, рекомендую наисвежайшую статью от Microsoft.
Она поможет Вам испытывать меньше WTF моментов при прочтении, т.к. моя статья не туториал к синтаксису.

Контекст задачи

Есть сервис, написанный на Akka.NET, он вываливает в разные текстовые логи кучу инфы. Отдел эксплуатации грепает эти логи, жарит по ним регекспами, чтобы узнать о кол-ве ошибок (бизнесовых и не очень), о кол-ве входящих в сервис сообщений и кол-ве исходящих. Далее эта информация заливается в ElasticDB, InfluxDB и показывается в Grafana и Kibana в разных срезах и агрегациях.

Звучит сложно, да и парсить текстовые логи сервиса, который генерит несколько десятков ГБ текстового мусора в день — занятие неблагодарное. Поэтому встала задача — сервис должен быть способен поднять ендпоинт, который можно дёрнуть и получить сразу всю инфу о нём.

Решать задачу будем так:

  1. Напишем доменную модель для метрик
  2. Замапим доменную модель метрик на реализацию App.Metrics и поднимем апишечку
  3. Сделаем структурированный доменный логгер, который натянем на внутренний логгер Akka
  4. Сделаем обёртку для функциональных акторов, которая спрячет работу с метриками и логгером
  5. Соберём всё вместе и запустим

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

Отработанное ядерное топливо (ОЯТ) является одной из неприятных проблем и в какой-то степени болевой точкой ядерной энергетики. Свежее ОЯТ предельно смертоносно — стоя в метре от извлеченной из реактора ТВС ОЯТ вы рискуете за 10-20 секунд получить смертельную дозу. Полежавшее лет 30 ОЯТ становится менее губительно с точки зрения излучения, но вот его радиотоксичность (т.е. токсичность при облучении тканей тела изнутри) остается вполне на уровне — смертоносным является кусочек в 20-30 мг ОЯТ.

image
Тема сегодняшнего поста — геологическое захоронение ОЯТ. Наиболее продвинутый проект — финский, предполагает хранение в таких колодцах глубоко под землей
Читать полностью »

Самые необычные испытания и эксперименты - 1

На Хабре мы публикуем серию дайджестов «Стартап дня», в которую попадают самые интересные молодые IT-компании со всего мира. В процессе отбора материала приходится сталкиваться с разными удивительными идеями, некоторые из которых действительно потрясают.

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

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


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