Pull to refresh
Александр @Almetread⁠-⁠only

Пользователь

Send message

Сила композиции

Reading time20 min
Views18K


Функциональное программирование может отпугивать сложностью и непрактичностью: «Я далек от всех этих монад, пишу на обычном C#, в докладе про функциональщину ничего не пойму. А если даже напрягусь и пойму, где мне потом это применять?»


Но когда объясняет Скотт Влашин, все совершенно не так: его доклад о композиции с конференции DotNext 2019 Moscow — пример того, как можно доносить функциональные идеи простыми словами. Он за час перешел от бананов к монадам так, что второе кажется немногим сложнее первого. А в конце объяснил, почему осмыслить композицию полезно даже тем, кто не собирается покидать мир ООП. Примеры кода в докладе как на F#, так и на C#.


Уже завтра начнется новый DotNext, где я помогу Скотту выступить с другим докладом, а пока что публикую перевод его выступления про композицию. Далее повествование будет от лица Скотта.

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

Оптимизация ASP.NET — практические советы по работе с IIS

Reading time12 min
Views96K
В данной публикации речь пойдёт о настройке важных параметров пула ASP.NET-приложений при вызове удалённых веб-сервисов и активной работе с сетью на стороне сервера через стандартные классы .NET.



Введение


Приходилось ли вам когда-нибудь самим настраивать производственные веб-сервера (production servers) под управлением ОС Windows Server 2008 R2/IIS 7.5 и выше? Для системных администраторов, имеющих большой опыт работы с IIS, скорее всего, это тривиальная задача, но вот для веб-разработчиков, которым по различным причинам порой приходится самим участвовать в настройке «боевых» серверов, данная информация может оказаться весьма полезной.

Итак, приступаем. Ускоряем сайт на ASP.NET — экономим деньги предприятия и нервы администратора.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments6

Мое знакомство с ASP.NET MVC в Visual Studio 2015 на примере построения прототипа МИС

Reading time30 min
Views51K
В этом году в качестве курсовой работы мне нужно было написать несложную медицинскую информационную систему (МИС) для небольшой частной клиники по лечению эпилепсии.

База данных пациентов в клинике уже была, написана она была еще в далеком 1998 году в Microsoft Access того времени (причем даже с красивым пользовательским интерфейсом), но вот работала она только в одном месте — на компьютере заведующего, да еще и поддерживать ее стало совершенно невозможно. Значит, давно назрела необходимость внедрять что-то новое!

Сказано — сделано. Работать надо было быстро (все-таки сдавать курсовую пора) и при этом хотелось сделать работу максимально интересной для себя. Я давно хотел разобраться с ASP.NET MVC, был немного знаком с C# и общими принципами MVC, поэтому скачал последнюю Visual Studio 2015 RC и принялся за работу.

Под катом — весь процесс знакомства с технологией и разработки такой системы со всеми встретившимися подводными камнями. Данная статья пригодится всем, кто знаком с программированием и когда-то делал блог по туториалу для любого MVC фреймфорка и хочет узнать, как же сделать что то более интересное.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments8

Добавляем CRUD в ASP.NET Core проект за 10 минут с помощью EasyData

Reading time6 min
Views9.8K

image


Одной из первых задач для большинства бизнес-приложений на ASP.NET Core является реализация операций CRUD (Create, Read, Update, Delete) для основных объектов, с которыми работает ваше решение.


Каждый разработчик, которому нужно решить эту задачу, знает, что создание CRUD-страниц и форм — очень скучный и трудоемкий процесс.


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


Можно воспользоваться инструментом scaffolding'а, доступным в Visual Studio. Но даже в этом случае это будет совсем не быстрый процесс, поскольку его нужно запускать для каждого класса модели. В итоге вы получаете множество .cs/.cshtml файлов, которые нужно поддерживать и атуализировать по мере изменений в классах модели или просто когда нужно что-то исправить в поведении или внешнем виде CRUD страниц. Если количество сущностей в вашей БД превышает десяток, то весьма велики шансы того, что файлы для реализации CRUD операций занимают больше 50% всей кодовой базы вашего проекта. Более того это решение все равно не обеспечивает некоторых важных, а порой и необходимых функций, таких как разбитие на страницы в режиме просмотра (pagination) или банальные поиск/фильтрация.


Решение: использовать библиотеку с открытым кодом EasyData, о которой и пойдет речь в данной статье.

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

Cоздание переиспользуемых Linq фильтров (построителей предикатов для Where), которые можно применять для разных типов

Reading time4 min
Views4.5K

Способ создания переиспользуемых Linq фильтров (построителе предикатов для условия Where), которые можно применять для разных типов объектов. Поля объектов для фильтрации указываются с помощью MemberExpression.

Способ подходит для Entity Framework, включая Async операции.

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

ASP.NET MVC Урок 8. View, Razor, страница ошибки

Reading time8 min
Views74K
Цель урока. Научиться делать вывод данных в html, использование Razor. Helperы. PageableData. Динамические формы. RedirectToLogin, RedirectToNotFoundPage. Страница ошибки. RssActionResult.

Основа

Итак, рассмотрим как устроена часть View.
В контроллере все action-методы возвращают тип ActionResult. И для вывода результата мы используем:
return View(modelData);

Читать дальше →
Total votes 136: ↑92 and ↓44+48
Comments1

100500-ая автоматика полива для растений. Часть 2: Сенсоры и электроника

Reading time15 min
Views9.5K


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

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

5 шагов к оформлению интеллектуальной собственности в IT-стартапе для привлечения инвестиций

Reading time16 min
Views7.5K

Цель любого стартапа – выход на рынок в течение минимального срока, постцель – создание условной монополии своим продуктом, как это сделали Я.Такси. Больше никто не мыслит об открытии колл-центров для таксопарков. И хотя Яндекс и его продукты сложно назвать стартапами, принцип развития продукта один – вкладываться в интеллектуальную собственность.

Проблема российских стартапов в том, что в головах их участников укоренили мысль: "Защита интеллектуалки и ее последующая монетизация возможна только с помощью патента", – это вызывает new big aim получение патента, чтобы опираться на него при получении инвестиций и выходить на рынок под защитой.
На деле способ охраны (авторское право, патент, товарный знак, ноу-хау) – это всего лишь способы для защиты технологии, а не цель.

В статье даны пошаговые инструкции, как стартапу правильно проработать свой продукт и защитить права на него в сжатые сроки (до недели) и без глобальных трат, чтобы повысить стоимость проекта на 30%, выходить на питчинги с доказательствами правообладания на продукт и без боязни стать донором идей на рынке!

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments5

Плавность хода, шум и момент шагового двигателя при управлении микроконтроллером

Reading time11 min
Views36K

В данной статье я опишу решение поставленной мне задачи по снижению шума и повышению плавности движения механизма, движимого шаговым двигателем (далее просто ШД) при ускорении. Данная задача довольна специфична. Описанное мною решение будет полезно при разработке модулей управления ШД .

Далее опишу алгоритм управления ШД с помощью микроконтроллера.

Перед тем, как начать описывать задачу, я изложу основы управления ШД, которые будут включать необходимый минимум для рассмотрения, описанных в статье способов управления.

Рассмотрим необходимый минимум основ управления ШД , необходимый для понимания принципа управления, описанного ниже. А именно:

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

Изменение полярности обмотки с помощью Н-моста.

Принципиальная электрическая схема, включающая в себя 4 драйвера полумоста и 2 Н-моста.

Способ модуляции синусоидального сигнала с помощью широтно-импульсной модуляции (далее просто ШИМ).

Способы подключения обмоток.

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

Бесплатные сервисы для разработчиков — огромный список

Reading time8 min
Views54K

Бесплатное хранилище артефактов PackageCloud

Удивительно, но в интернете сотни сервисов, которыми разработчик может пользоваться совершенно бесплатно. «Бесконечное» время (пока компания не обанкротится или не изменит условия), без рекламы, пробного периода и других подводных камней.

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

Но для некоторых бесплатный тариф — единственный способ завлечь новых клиентов. Это просто замечательно с точки зрения самих пользователей. Ведь перед нами десятки бесплатных хостингов, API, CMS, CDN, сервисов обработки данных, поисковых движков, репозиториев, инструментов проверки кода и других. Бесплатный тариф идеален для опенсорс-разработчиков, любительских и некоммерческих проектов, маленьких стартапов. Ни за что не надо платить.
Читать дальше →
Total votes 83: ↑77 and ↓6+71
Comments15

MQTT-SN + ESP8266

Reading time9 min
Views11K

В процессе поисков более легковесного протокола, похожего на полюбившийся мне MQTT для проекта беспроводных датчиков отслеживания положения на базе ESP8266 - оказалось, что существует, но пока не сильно распространена, версия протокола с названием MQTT For Sensor Networks (MQTT-SN).

“MQTT-SN спроектирован как можно более похожим на MQTT, но адаптирован к особенностям беспроводной среды передачи данных, таким как низкая пропускная способность, высокие вероятность сбоя в соединениях, короткая длина сообщения и т.п. Также оптимизирован для дешевых устройствах с аккумуляторным питанием и ограниченными ресурсами по обработке и хранения.”

В интернете довольно мало информации о данном протоколе, ковыряние в которой и стало основой для написание данной заметки.

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

Как магия машинного обучения меняет нашу жизнь

Reading time4 min
Views4.9K

Много лет назад я загорелась идеей – научиться программированию, создав собственный сайт. Тогда я ничего не понимала в компьютерах и тем более в серверах. И только одна мысль о том, сколько же мне предстоит узнать нового, будила во мне необыкновенный интерес. Перед сном я обдумывала сотни вариантов своего сайта – от параллакс-эффекта при прокручивании до шрифтов из Google Fonts – и мечтала о будущих проектах.

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

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

Работая в сфере технологий, вы посвящаете свою жизнь учебе. Глазом не успеешь моргнуть, как самое совершенное ПО моментально заменяется чем-то более продвинутым (хотя я все никак не могу отвыкнуть от старого доброго Vim).

Одно из интереснейших направлений в ИТ – машинное обучение. Большинству из нас не рассказывали о нем в вузах (а у некоторых вообще не было уроков информатики), но скоро машинное обучение станет повсеместным, и оно изменит процесс разработки ПО во всех областях. Неудивительно, что меня часто спрашивают, с чего лучше начать изучение машинного обучения.

Обычно я советую обратиться к таким ресурсам, как курс компании Google под названием Machine Learning Crash Course, а также книга Прикладное машинное обучение с помощью Scikit-Learn, Keras и TensorFlow и курс на сайте Coursera Машинное обучение (автор: Andrew Ng), который нацелен не только на теоретические основы, но и на практику.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments0

Вы можете создавать эти элементы, не используя JavaScript

Reading time4 min
Views16K

Мы привыкли создавать некоторые элементы пользовательского интерфейса с помощью JavaScript, например аккордеоны, всплывающие подсказки (тултипы), усечение текста и т. д. Но, поскольку HTML и CSS постоянно получают новые функции, а старые браузеры больше не нужно поддерживать, мы можем использовать намного меньше JavaScript-кода для создания элементов пользовательского интерфейса и больше фокусироваться на логической части (проверки, обработка данных и т. д.). Специально к старту новых потоков по специализации Frontend-разработчик и Веб-разработчик делимся с вами несколькими хитростями.

Читать далее
Total votes 24: ↑19 and ↓5+14
Comments23

Перехват и анализ сетевого трафика с помощью библиотеки pcap

Reading time5 min
Views10K

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

● посещение нежелательных сайтов;

● скачивание файлов, потенциально зараженных;

● просмотр видеозаписей и скачивание изображений;

● общение в соц. сетях, онлайн-игры.

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

Packet Capture позволяет создавать программы, анализирующие данные, поступающие на сетевую карту компьютера, и (в более новых версиях), передающие пакеты в сеть. В различных подходах к мониторингу и тестированию сети, так называемых программах-снифферах (англ. sniff - нюхать), используют эту библиотеку. Она предназначена для использования совместно с языками C/C++, а для работы с библиотекой на других языках используют обертки. Для Unix-подобных систем - библиотека libpcap, а для Microsoft Windows - WinPcap.

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

Читать далее
Total votes 3: ↑0 and ↓3-3
Comments4

Умная квартира на JavaScript. От светодиода до распознавания лица в камере домофона

Reading time12 min
Views20K

Привет! Меня зовут Антон, я ведущий разработчик в команде рекламного фронтенда ВКонтакте. Мои рабочие задачи связаны с развитием рекламного кабинета и возможностей для продвижения сообществ в приложении VK. Здесь результаты можно видеть только в браузере и телефоне, но мне давно хотелось научиться управлять объектами и в реальном мире — например, в своей квартире. Таким опытом я и хочу поделиться в этой статье: опишу, как создал и развивал свой умный дом, с какими проблемами столкнулся по ходу проекта и как их решал.

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

Мои machine learning тулы для инвестирования

Reading time17 min
Views35K

В последнее время все больше людей приходит к тому, чтобы не держать деньги под матрасом, а куда-то их инвестировать в надежде сохранить и преумножить свой капитал. Вариант с матрасом плох тем, что с повышением цен на товары и услуги(инфляция) покупательная способность денег падает и через какое-то время купить на них можно значительно меньше, чем раньше. Есть много вариантов, куда вложить деньги(недвижимость, банковский вклад, ценные металлы), но в последнее время популярным становится инвестирование в акции. Только у брокера Тинькофф Инвестиции за несколько лет число клиентов превысило 3.5 млн. В статье я постараюсь описать свой подход к выбору бумаг и поделюсь инструментами, которые для этого разрабатываю.

Читать далее
Total votes 55: ↑54 and ↓1+53
Comments39

Юнит-тестирование для чайников

Reading time15 min
Views1.1M
Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.



То что вы делаете, называется интеграционным тестированием. Современные приложения достаточно сложны и содержат множество зависимостей. Интеграционное тестирование проверяет, что несколько компонентов системы работают вместе правильно.

Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?

We need to go deeper
Total votes 70: ↑63 and ↓7+56
Comments65

14 полезных инструментов, ускоряющих и упрощающих веб-разработку

Reading time4 min
Views35K
Я занимаюсь разработкой сайтов уже много лет и не верю в то, что если буду держать в секрете используемые мной инструменты, это даст мне серьёзное преимущество на рынке труда.

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



Здесь я расскажу о 14 инструментах, которые помогают мне в решении моих рабочих задач.
Читать дальше →
Total votes 49: ↑36 and ↓13+23
Comments15

По-настоящему яркий, надёжный и безопасный источник света для растений

Reading time15 min
Views29K

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

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

В посте приводится относительно длинный текст про причины, выбор, технологию производства, слегка разбавленный фотографиями того, что там растёт.

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

Полное руководство по созданию Docker-образа для обслуживания системы машинного обучения в продакшене

Reading time8 min
Views17K


Команда Mail.ru Cloud Solutions перевела полное пошаговое руководство для создания образа Docker (GPU или CPU) вместе с объяснением всех передовых методов, которые следует использовать для обслуживания любого программного обеспечения на основе машинного обучения. Далее текст от лица автора.


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


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


  • об общей работе Docker;
  • о том, как собирать и запускать Docker;
  • о создании и синтаксисе Dockerfile.
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments4

Information

Rating
Does not participate
Location
Сызрань, Самарская обл., Россия
Date of birth
Registered
Activity