Pull to refresh
4
0
Roman Pavlov @romangoward

SysDE @ AWS

Send message

Создаем веб-приложение на Haskell с использованием Reflex. Часть 3

Reading time7 min
Views2.2K

Часть 1.


Часть 2.


Всем привет! В этой части мы рассмотрим использование класса EventWriter и библиотеки ghcjs-dom.


Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments0

Создаем веб-приложение на Haskell с использованием Reflex. Часть 2

Reading time9 min
Views2.6K

Часть 1.


Часть 3.


Всем привет! Продолжаем серию туториалов по разработке веб-приложения на Reflex.
В этой части мы добавим возможность выполнять различные манипуляции со списком задач.


intro

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

Создаем веб-приложение на Haskell с использованием Reflex. Часть 1

Reading time11 min
Views8.5K

Часть 2.


Часть 3.


Введение


Всем привет! Меня зовут Никита, и мы в Typeable для разработки фронтенда для части проектов используем FRP-подход, а конкретно его реализацию на Haskell – веб-фреймоворк reflex. На русскоязычных ресурсах отсутствуют какие-либо руководства по данному фреймворку (да и в англоязычном интернете их не так много), и мы решили это немного исправить.


В этой серии статей будет рассмотрено создание веб-приложения на Haskell с использованием платформы reflex-platform. reflex-platform предоставляет пакеты reflex и reflex-dom. Пакет reflex является реализацией Functional reactive programming (FRP) на языке Haskell. В библиотеке reflex-dom содержится большое число функций, классов и типов для работы с DOM. Эти пакеты разделены, т.к. FRP-подход можно использовать не только в веб-разработке. Разрабатывать мы будем приложение Todo List, которое позволяет выполнять различные манипуляции со списком задач.


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

Кому на Руси жить хорошо? (комфортно/безопасно в климатическом смысле)

Reading time2 min
Views5.2K

Немного ответов на набивший оскомину вопрос "В каких частях России изменение климата наиболее опасно".

От авторов "не все города одинаково комфортны".

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

Где жить-то безопаснее зимой? А где летом?

Читать далее
Total votes 18: ↑9 and ↓90
Comments11

Градиентный спуск в Python

Reading time6 min
Views41K

Рабочая область функции (заданный интервал) разбита на несколько точек. Выбраны точки локальных минимумов. После этого все координаты передаются функции в качестве аргументов и выбирается аргумент, дающий наименьшее значение. Затем применяется метод градиентного спуска.

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments7

Введение в неблокирующие алгоритмы

Reading time8 min
Views23K

Неблокирующие алгоритмы широко применяются в ядре Linux когда традиционные примитивы блокировки либо не могут быть использованы, либо недостаточно быстры. Эта тема многим интересна и время от времени всплывает на LWN. Из недавнего — вот эта июльская статья, которая собственно и сподвигла меня написать свою серию. Ещё чаще разговор заходит про механизм read-copy-update (RCU — руководство 2007 года всё ещё актуально), подсчёт ссылок, и способы сделать более понятные, высокоуровные API ко всему этому разнообразию. Ну а сейчас вас ждёт погружение в идеи, стоящие за неблокирующими алгоритмами, а также их использованием в ядре.


Знание низкоуровневой модели памяти в целом считается продвинутым уровнем понимания, которого страшатся даже опытные программисты-ядерщики. Словами нашего редактора (из его июльской статьи): «Понять модель памяти можно лишь правильно повёрнутым мозгом». Говорят, что моделью памяти Linux (и файлом memory-barriers.txt в частности) можно пугать детей. Порой для достижения эффекта достаточно всего лишь рявкнуть “acquire” или “release”.


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

Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments60

Семинары лаборатории языковых инструментов JetBrains Research

Reading time8 min
Views1.6K
Лаборатория языковых инструментов — совместная инициатива JetBrains и математико-механического факультета СПбГУ.

Сотрудники лаборатории исследуют:

  • формализацию и верификацию семантики языков программирования в контексте слабых моделей памяти;
  • логическое и реляционное программирование;
  • теорию формальных языков и ее применения;
  • метапрограммирование, специализацию и частичные вычисления;
  • формальную верификацию и применение SMT-решателей.

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


Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Создай мозг с нуля: математические модели в нейробиологии

Reading time11 min
Views10K

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

Нейробиология — это наука, изучающая структуру, функционирование и развитие нервной системы человека и животных. Brain science — более узкая дисциплина, посвященная головному мозгу человека. Нейробиология охватывает разные уровни организации — от молекулярного до системного, плавно переходя в молекулярную биологию и биохимию с одной стороны и в нейропсихологию (наука на стыке с психологией) с другой.Некоторые люди, как и в незапамятные времена, продолжают утверждать, что понять работу мозга невозможно, или же отрицают, что мозг порождает наш разум и сознание и т. д. Несмотря на все это, …

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

Распределенное обучение и вычисления в сети. Доклад Яндекса

Reading time15 min
Views5.1K
Все эксперты по сетям знакомы с принципом end-to-end, когда специфичные для конкретной задачи фичи реализовываются на конечных нодах, а промежуточные ноды должны только передавать данные, не взаимодействуя с ними. Но есть случаи, когда полезны вычисления внутри сети — с использованием устройств сети, занятых передачей трафика. Один из примеров таких задач — распределенный ML. В докладе Дмитрий Афанасьев дал краткое введение в особенности вычислений для распределенного ML, паттерны обмена данными и коллективные операции. Вторая половина доклада — о том, как редукция увеличивает производительность при обучении, и о некоторых реализациях.

— Меня зовут Дмитрий Афанасьев, я сетевой архитектор Яндекса. И я сегодня расскажу про достаточно экзотические — по крайней мере пока — технологии. Но думаю, что они будут становиться менее экзотическими, и шансы с ними встретиться возрастают.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments2

JWT аутентификация в CLI приложении на Linux

Reading time8 min
Views5.8K

Когда речь идёт о хранении sensitive data в браузере, достаточно воспользоваться одним из двух доступных вариантов: cookies или localStorage. Тут каждый выбирает по вкусу. Однако я посветил эту статью Secret Service – службе, которая работает через D-Bus и предназначена для хранения «секретов» в Linux.

У службы есть API, которым пользуется GNOME Keyring для хранения аутентификационных данных пользовательских приложений.

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments0

Чистая архитектура с Go

Reading time12 min
Views30K
Меня зовут Эдгар (ZergsLaw), я работаю в компании, которая занимается  финтех-разработкой для b2b и b2c. Когда только устроился в компанию, то попал в команду большого финтех-проекта и получил «в нагрузку» небольшой микросервис. Мне поручили его изучить и подготовить план рефакторинга, чтобы в дальнейшем выделить отдельную команду поддержки для сервиса.



«Мой» сервис — это proxy между определенными модулями большого проекта. На первый взгляд изучить его можно за один вечер и браться за дела поважнее. Но приступив к работе я понял, что ошибся. Сервис был написан полгода назад за пару недель с задачей протестировать MVP. Всё это время он отказывался работать: терял события и данные, или переписывал их. Проект перекидывали из команды в команду, потому что никто не хотел им заниматься, даже его создатели. Теперь стало ясно почему под него искали отдельного программиста.

«Мой» сервис — это пример плохой архитектуры и изначально неправильного проектирования. Все мы понимаем, что так делать нельзя. Но почему нельзя, к каким последствиям это приводит и как попытаться все исправить, я и расскажу.
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments26

Flutter + чистая архитектура: разбираем на примере

Reading time17 min
Views71K

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

Чистая архитектура - это концепция построения архитектуры систем, предложенная Робертом Мартином - в миру "дядюшка Боб". Концепция предполагает построение приложения в виде набора независимых слоёв, что облегчает тестирование, уменьшает связность и делает приложение более простым для понимания.

Flutter - стремительно набирающий популярность фреймворк для разработки кроссплатформенных приложений. В списке поддерживаемых платформ - iOS, Android, web, в бете находится поддержка десктопа.

Под катом - рассказ о том, как построить flutter-приложение с использованием идей чистой архитектуры.

Читать далее
Total votes 26: ↑25 and ↓1+24
Comments36

Нам нужно поговорить про Linux IIO

Reading time11 min
Views12K

IIO (промышленный ввод / вывод) — это подсистема ядра Linux для аналого-цифровых преобразователей (АЦП), цифро-аналоговых преобразователей (ЦАП) и различных типов датчиков. Может использоваться на высокоскоростных промышленных устройствах. Она, также, включает встроенный API для других драйверов.


Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments12

Трюки с SQL от DBA. Небанальные советы для разработчиков БД

Reading time22 min
Views31K

Когда я начинал свою карьеру разработчика, моей первой работой стала DBA (администратор базы данных, АБД). В те годы, ещё до AWS RDS, Azure, Google Cloud и других облачных сервисов, существовало два типа АБД:

  • АБД инфраструктуры отвечали за настройку базы данных, конфигурирование хранилища и заботу о резервных копиях и репликации. После настройки БД инфраструктурный администратор время от времени «настраивал экземпляры», например, уточнял размеры кэшей.
  • АБД приложения получал от АБД инфраструктуры чистую базу и отвечал за её архитектуру: создание таблиц, индексов, ограничений и настройку SQL. АБД приложения также реализовывал ETL-процессы и миграцию данных. Если команды использовали хранимые процедуры, то АБД приложения поддерживал и их.

АБД приложений обычно были частью команд разработки. Они обладали глубокими познаниями по конкретной теме, поэтому обычно работали только над одним-двумя проектами. Инфраструктурные администраторы баз данных обычно входили в ИТ-команду и могли одновременно работать над несколькими проектами.
Читать дальше →
Total votes 76: ↑72 and ↓4+68
Comments38

Встраивание Haskell: компиляторы и компиляция компиляторов

Reading time5 min
Views4K

Эта статья является переводом поста Chris Hodapp Embedding Haskell: Compilers, and compiling compilers В своём посте автор рассматривает различные подходы к использованию Haskell для написания кода для встраиваемых систем. Предоставим слово автору.


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


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


  • Полная компиляция: компиляция кода на Haskell для встраиваемого назначения.
  • Ограниченная компиляция: компиляция некоторого ограниченного подмножества кода на Haskell для встраиваемого назначения.
  • Хостинг EDSL и компилятора: хостинг в Haskell, EDSL и компилятор для встраиваемого назначения.
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments3

Мастер-курсы по Istio и Kafka, книга про Python и немного про навыки веб-разработки

Reading time2 min
Views4.6K
Не перестаем заманивать вас – станьте частью DevNation.



Полезные ссылки на живые мероприятия, видео, митапы, техтолки и книги – ниже в нашем еженедельном посте.
Читать дальше: Мастер-курсы по Istio и Kafka, книга про Python и немного про навыки веб-разработки
Total votes 2: ↑2 and ↓0+2
Comments0

Разработка критически важных алгоритмов: Реализация

Reading time17 min
Views3.5K
  1. Проектирование
  2. Реализация
  3. Интеграция

Когда я только начинал свой путь в профессиональной разработке, я не понимал зачем нужен open source. Я не понимал и сайд-проектов, если уж на то пошло. В конце концов, зачем отдавать ценную работу бесплатно? За прошедшие годы, поработав над проектами с открытым исходным кодом, а также благодаря работе с Apex.AI, ROS 2 и Autoware.Auto, я пришел к некоторому пониманию open-source.

Инженеры любят творить. Люди хотят признания и благодарности.

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

Что касается сайд-проектов, то их очарование я понял только после того, как начал профессионально развиваться и более тщательно подходить к различным аспектам своей работы. Чтобы создать надежный продукт, за который люди будут платить, часто приходится искусственно ограничивать рабочие процессы. Анализ дизайна. Код-ревью. Стандарты написания кода, стайлгайды, метрики тестового покрытия, и так далее и так далее. Не поймите меня неправильно – все это хорошие вещи, которые, скорее всего, необходимы для разработки качественного продукта. Просто иногда разработчик хочет немного свободы. Разработчик может хотеть создавать то, что он хочет, как он хочет и когда он хочет. Никаких встреч, ревью или бизнес-кейсов.
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments3

Наши уникальные бесплатные мастер-курсы Kubernetes, CLI tool для разработчиков Odo, Java в контейнерах и много книг

Reading time3 min
Views4.2K
Окей, мы инновационная ИТ-компания, а значит у нас есть разработчики – и это хорошие разработчики, увлеченные своим делом.



А еще они проводят live streaming, и все вместе это называется DevNation.
Читать дальше: Наши уникальные бесплатные мастер-курсы...
Total votes 4: ↑4 and ↓0+4
Comments2

Как синхронизация времени стала безопасной

Reading time10 min
Views15K

Как сделать так, чтобы время per se не врало, если у вас есть миллион больших и малых устройств, взаимодействующих по TCP/IP? Ведь на каждом из них есть часы, а время должно быть верным на всех. Эту проблему без ntp невозможно обойти.

Представим себе на одну минуту, что в одном сегменте промышленной ИТ инфраструктуры возникли трудности с синхронизацией сервисов по времени. Немедленно начинает сбоить кластерный стек Enterprise ПО, распадаются домены, мастера и Standby узлы безуспешно стремятся восстановить status quo.

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

  • истечет срок действия паролей учетных записей пользователей;
  • истечет срок действия X.509 сертификатов;
  • двухфакторная аутентификация TOTP перестанет работать;
  • бэкапы «устареют» и система удалит их;
  • сломается DNSSec.

Понятно, что каждый первый департамент ИТ заинтересован в надежной работе служб синхронизации времени, и хорошо бы они были надежны и безопасны в промышленной эксплуатации.
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments8

Аллокаторы памяти

Reading time20 min
Views94K
Всем привет! Не так давно, после очень плотного изучения аллокаторов и алгоритмов распределения памяти, а также в последующем применении их на практике мне в голову пришла идея написать статью, в которой будет максимально подробно рассказано о них. Считаю, что данная тема будет достаточно востребованной, так как в сети, особенно в русскоязычной части, на данный момент существует очень мало источников, посвященных этому вопросу.
Читать дальше →
Total votes 43: ↑40 and ↓3+37
Comments15
1
23 ...

Information

Rating
Does not participate
Location
Ирландия
Registered
Activity