Search
Write a publication
Pull to refresh
0
@GromHSCRread⁠-⁠only

User

Send message

Мириады запущенных задач на C#

Reading time7 min
Views52K

Недавно на ресурсе Medium были опубликованы две статьи от одного и того же автора, затрагивающие функциональность C# async/await.


Основными выводами были:


  • рекурсивный вызов асинхронного метода в C# подвержен StackOverflowException
  • goroutine'ы лучше задач (тасков) в .NET в плане производительности

Но главная проблема вышеприведенных публикаций — абсолютное непонимание модели кооперативной многозадачности в C# с вводом читателей в заблуждение. Сами же бенчмарки — бессмысленные, как мы увидим позже.


Далее в статье я попытаюсь раскрыть суть проблемы более подробно с примерами решения.


TL;DR

После небольшой правки кода исходных примеров, реализация бенчмарка на .NET оказывается быстрее варианта Go. Попутно решаем проблему переполнения стека у рекурсивных асинхронных методов.


NB: использоваться будут свежевыпущенный .NET Core 2.0 и Go 1.8.3.

Читать дальше →

AsyncCollections: история одного велосипеда

Reading time15 min
Views18K
С давних времён я был большим поклонником System.Collections.Concurrent и BlockingCollection в особенности. Сколько раз это чудо инженерной мысли выручало в самых разнообразнейших ситуациях — не счесть.

С чуть менее давних времён в обиход прочно вошли async/await. Казалось бы, жизнь прекрасна, но есть одно «но»: асинхронный код миксовать с блокирующим кодом как-то не очень-то хочется. А BlockingCollection, как несложно догадаться (хотя бы из названия), в ряде случаев поток блокирует.
Что же делать?

C# — Моделирование «разумной» жизни на базе нейронных сетей

Reading time4 min
Views84K
Данная статья посвящена исследованию возможностей нейронных сетей при их использовании в качестве основы для индивидуального разума моделируемого объекта.

Цель: показать, способна ли нейронная сеть (или ее данная реализация) воспринимать «окружающий» мир, самостоятельно обучаться и на основе собственного опыта принимать решения, которые можно считать относительно разумными.

image
Читать дальше →

Создаём отзывчивые письма для будущего без медиа-запросов

Reading time26 min
Views35K
Создавая HTML код для email, приходится иметь дело с изрядным количеством больных вопросов. И вряд ли для кого то будет приемлемо, если нам к тому же ещё и придётся следить за новыми email-клиентами и размерами устройств, которые появляются каждую неделю. Поддержка media query как и сам CSS разнятся среди приложений, в следствии этого, каждый раз когда вы слышите что появилось новое восхитительное почтовое приложение, для которого тоже нужно провести тесты, вас неизбежно одолевает страх.

Но что если бы вы могли создать шаблон, который был бы отзывчивым даже в окружениях с наименьшей поддержкой современного CSS? Что если каждый раз, услышав о каком-то очередном почтовом приложении, которое все испытывают, вместо того чтобы предаваться страху, можно было бы чувствовать себя спокойно и уверенно, зная что ваши email наверняка будут выглядеть хорошо?

Приведенный ниже метод, сторонником которого я являюсь, всецело ориентирован на создание положительного опыта взаимодействия при работе с email-клиентами, у которых вообще отсутствует поддержка media query.

Он называется fluid-hybrid method, иногда упоминается как spongy метод для email разработок. Часть fluid предполагает что мы используем изрядной количество процентных вычислений. Часть hybrid означает что мы также используем max-width дабы ограничить некоторые из наших элементов на экранах большего размера.
Читать дальше →

Как я взломал Starbucks для безлимитного кофе

Reading time3 min
Views178K
Это история о том, как я нашел способ нагенерить неограниченное число денег на подарочные карты старбакса, тем самым обеспечить себе пожизненный бесплатный кофе, ну или украсть у них пару миллионов другими способами.

Итак, не так давно мне в голову пришла идея купить 3 карты Старбакса по $5 каждая.

image
Читать дальше →

Scrollport.js — новая анимация скролла

Reading time3 min
Views45K
image

Анимация скролла к месту страницы с момента изобретения почти не подвергалась никаким модификациям, никак не украшалась. Да никому и не надо вроде, и так все работает. Говоришь куда скроллить и за сколько нужно добраться. Всё.

Я решил на анимацию скролла посмотреть под другим углом. Не потому что сейчас с ним что-то не так, а потому что можно и поинтереснее. В результате некоторых наблюдений и всплесков фантазии удалось придумать 3 способа для более интересной анимации. В итоге завернул все в плагин «Scrollport.js» с 3 новыми и 1 классическим режимом. Смотрите демо и проходите под кат.
Читать дальше →

Отправляем SMS из .Net приложения на C#

Reading time7 min
Views62K

Все что нам понадобится для отправки SMS это 3G USB модем, SIM карта, Visual Studio и немного времени. Моей целью не является описать все возможные настройки COM порта или формата PDU. Я хотел бы предоставить вам готовое решение, которое можно использовать в качестве сниппета в своих проектах.
В качестве примера рассмотрим 2 консольных приложения. Почему консольных? Да потому, что в них нет ничего лишнего и проще разобрать код. Почему два? Потому, что есть два распространенных варианта отправки сообщений. Самый простой вариант – это отправка сообщений в текстовом режиме. Минусом этого варианта является то, что он не поддерживает отправку кириллицы. Плюсом то, что возможна отправка 160-ти символов. Второй вариант, более сложный, позволяет отправлять текст длиной до 70-ти символов в формате Unicode.
Читать дальше →

C# 5 — об async/await с начала

Reading time5 min
Views257K
В недавно вышедшей Visual Studio 11 Beta встроена новая и главная фишка будущего C# 5 — асинхронное программирование с помощью async/await. Про нее уже написано достаточно много статей в том, числе на хабре — например, эта серия статей. Однако, я для себя так и не понял в чем суть нового синтаксиса, пока сам не попробовал его в деле. Данная статья — попытка самому структурировать и до конца разобраться с этим достаточно интересным инструментом и поделиться результатами с сообществом, рассказав про него немного иначе. Итак, поехали…
Читать дальше →

Компьютерные интерфейсы в кино — эволюция воображения

Reading time10 min
Views84K
TL;DR. Мы пытались охватить многое, поэтому статья получилась пугающе объемной. Но, надеюсь, познавательной. А еще под нее ностальгировать можно.



У интерфейсов в поп-культуре — целая история, которая заслуживает отдельного внимания. Сегодня поговорим о том, как люди представляли и изображали интерфейсы в кино. Приоритет будет за компьютерами (от домашних до бортовых) однако стоит понимать, что любая система, с помощью которой человек взаимодействует с другой системой — это интерфейс.
Читать дальше →

Издеваемся над Google Cast, или мышь для телевизора

Reading time4 min
Views31K


Как только я узнал про такую замечательную вещь, как Chromecast, сразу побежал его покупать, ведь превратить свой ТВ в SmartTV (ну или на худой конец не перетыкать больше HDMI для просмотра фильмов) за две тысячи рублей — очень весёлая перспектива. Однако ещё более весёлая перспектива — это начать программировать под него.

Большинство задач для Хромкаста, которые реализуют сейчас — это простейшие приложения-видеоплееры. Форменная несправедливость для среды, которая может выполнять HTML5 на уровне свежего Хрома. Но вот незадача: нет в этой среде никаких событий мыши, что логично. Но и это не проблема для нас с вами.
Читать дальше →

Сети для самых маленьких. Часть десятая. Базовый MPLS

Reading time45 min
Views408K
Сеть нашей воображаемой компании linkmeup растёт. У неё есть уже магистральные линии в различных городах, клиентская база и отличный штат инженеров, выросших на цикле СДСМ.
Но всё им мало. Услуги ШПД — это хорошо и нужно, но есть ещё огромный потенциальный рынок корпоративных клиентов, которым нужен VPN.
Думали ребята над этим, ломали голову и пришли к выводу, что никак тут не обойтись без MPLS.

Если мультикаст был первой темой, которая требовала некоторого перестроения понимания IP-сетей, то, изучая MPLS, вам точно придётся забыть почти всё, что вы знали раньше — это особенный мир со своими правилами.



Сегодня в выпуске:


А начнём мы с вопроса: «Что не так с IP?»

Читать дальше →

Джентльменский набор разработчика Access

Reading time5 min
Views138K
За время работы разработчиком Access набралась куча полезностей, которую считаю своим долгом выложить на Хабр. Многие из этих сниппетов находятся в сети, а некоторые находятся с трудом или безнадежно затеряны.


Читать дальше →

NeuroSky: генератор программных и аппаратных нейростартапов

Reading time5 min
Views58K
DARPA и Kickstarter уже взялись за мозг, теперь ваша очередь

В 2013 году DARPA обратилось к сообществу мэйкеров и хакеров с предложением создать бюджетный вариант портативного ЭЭГ. (Статья The Verge, запись выступления на fora.tv). Наступил момент которого я так долго ждал, а именно, что в Москве появилось много нейрогарнитур. (Одна из них живет в Хакспейсе, можно приходить и тестить)


Впервые я заинтересовался нейроинтерфейсами в 2011 году, но в те времена в Москве был только MindBall (за 60.000 руб если не ошибаюсь), пару лет спустя, благодаря Хабрастарожилу sasha237, мне удалось потестить Emotiv (он стоил тогда 15.000+ рублей) и даже выступить с ним в НИУ ВШЭ, сейчас же на всех выставках гаджетов присутствует нейрогаджет NeuroSky (примерная цена 5.000 рублей), что меня очень радует, ибо с тех пор как на моей голове побывали электроды от Emotiv, я ждал того момента, когда в руки разработчиков попадет подобный девайс и начнется развитие этой отрасли.

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

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

Под катом обзор софтины по прокачке мозга и нескольких нейропроектов с кикстартера
Читать дальше →

Проверьте своего хостера на уязвимость Shellshock

Reading time2 min
Views33K
В связи «открытием» повсеместно обсуждаемой в последнее время Shellshock-уязвимости (например, здесь и здесь), а также преследуя благую цель устранения возможных неприятных последствий использования этой уязвимости, сервис мониторинга сайтов ХостТрекер предоставляет возможность мгновенно определить наличие этой самой уязвимости на линуксовых серверах и установленным веб-сервером (проверка результата происходит через http).

image

Читать дальше →

Немного о Tor и русскоязычном .onion-пространстве

Reading time5 min
Views300K

Вместо вступления


Статьи о Tor — не такая уж редкость. Действительно, последние несколько лет эта замечательнейшая сеть набирает всё большую популярность. Жаль, что происходит это не столь стремительно и совсем не так, как нам, её обитателям, хотелось бы. На первый взгляд, причины этих событий лежат на поверхности. Но если с ростом популярности всё относительно понятно, то на его скорости и структуре стоит остановится несколько подробнее. Попробуем разобраться, как и почему мы пришли к текущему состоянию этой сети, что делать и даже кто (или, скорее что) виноват(о).
Читать дальше →

Почему трава зеленая, а программисты крутые

Reading time6 min
Views156K


Я люблю находить на новостных ресурсах статьи о том, что программисты получают очень много денег. Я сразу пролистываю их до комментариев и с теплом в душе читаю гневные отзывы о том, что программисты ничего не делают и не заслуживают таких денег. Но после прочтения возникает мысль: знают ли они, кто такие программисты? Или они исходят в своих суждениях из неверного знания, даже не подозревая об этом. Например, мало кто знает, почему трава зеленая. Подумайте об этом. Следует ли из ваших объяснений зелености травы именно зеленый цвет?
Читать дальше →

Розыгрыш призов в честь Дня программиста

Reading time3 min
Views83K


Привет, Хабр. Сегодня канун профессионального праздника таких важных, нужных и полезных людей, как программисты. И в честь этого события мы стартуем гик-розыгрыш призов, который совместно проводят Mail.Ru Group и Хабрахабр.

Принять участие в розыгрыше может каждый, у кого есть аккаунт на Хабре, даже read-only. Сделать это проще простого: достаточно авторизоваться, перейти на страницу розыгрыша и нажать там на кнопку. Призов для победителей розыгрыша заготовлено много, и все ценные, так что рекомендуем принять участие. Подробности — под катом.
Читать дальше →

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

Reading time14 min
Views131K


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

Рассматриваем. Ёж – не жилец. Слишком худой, не откормится, нет гнезда – да и вообще вылезать в локальное потепление ноября перед первым снегом было не лучшей идеей. «Ну, хочешь спасать – держи» — Стас отодрал шар от вязаной перчатки.

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

Новые возможности Google Поиска в ссылках сайта

Reading time2 min
Views21K
Уровень подготовки веб-мастера: любой

Хотим поделиться с вами небольшим обновлением в возможностях Google Поиска. Теперь на главной странице при поиске того или иного сайта, может появляться обновленная и улучшенная строка поиска в ссылках сайта.
окно поиска в ссылках сайта
Узнать больше

Information

Rating
Does not participate
Registered
Activity