Функциональный C#

Автор: admin от 30-03-2017, 22:55, посмотрело: 215

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

Категория: Программирование

 

Как мы портировали программно-аппаратное решение из SPARC Solaris в AMD64 Linux и виртуализировали все это

Автор: admin от 30-03-2017, 20:55, посмотрело: 183

Эта статья для тех, кто все еще сильно любит древние Unix, но уже понимает, что срочно нужно мигрировать на Linux...

Как мы портировали программно-аппаратное решение из SPARC Solaris в AMD64 Linux и виртуализировали все это

Началась эта история с того, что наш уважаемый заказчик решил уменьшить риски эксплуатации оборудования 10-ти летнего возраста, сэкономить на лицензиях и перейти с Unix на Linux, а заодно и виртуализировать это программно-аппаратное решение. Не то, чтобы заказчик не любил Solaris и Unix, просто сама возможность виртуализировать серверное приложение, жестко привязанное к специфической на сегодняшний день архитектуре SPARC и «седеющей» операционной системе Solaris, выглядела для заказчика очень привлекательной. Отдельным пунктом стоял вопрос замены специализированной карты с PCI интерфейсом на доступное «виртуализированное» решение. Мы решили взяться за такую интересную задачу.

Категория: Программирование, Системное администрирование, Веб-разработка, Linux

 

Подводные камни для самодельной распределенности «из коробки» в С++ном акторном фреймворке

Автор: admin от 30-03-2017, 20:50, посмотрело: 201

В комментариях к последней статье про шишки, которые нам довелось набить за 15 лет использования акторов в C++, вновь всплыла тема отсутствия в SObjectizer-5 распределенности «из коробки». Мы уже отвечали на эти вопросы множество раз, но очевидно, что этого недостаточно.


В SObjectizer-5 нет распределенности потому, что в SObjectizer-4 поддержка распределенности была, но по мере того, как расширялся спектр решаемых на SObjectizer задач и росли нагрузки на SObjectizer-приложения, нам пришлось выучить несколько уроков:



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

  • реализация back-pressure для асинхронных агентов — это сама по себе непростая штука. А когда сюда еще и примешивается общение по сети, ситуация становится гораздо хуже;

  • сегодня какие-то куски распределенного приложения обязательно будут написаны на других языках программирования, а не на C++. Поэтому требуется интероперабильность и наш собственный протокол, заточенный под C++ и SObjectizer, мешает разработке распределенных приложений.


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

Категория: Программирование, Веб-разработка

 

Сертификаты от StartCom и WoSign окончательно превратились в тыкву

Автор: admin от 30-03-2017, 20:00, посмотрело: 188

Сертификаты от StartCom и WoSign окончательно превратились в тыкву

Эти органзиации известны тем, что они до запуска Let's Encrypt бесплатно выпускали свои сертификаты. И все было прекрасно до недавней поры: 21 октября 2016 года. Все сертификаты, выпускаемые после этой даты были заведомо невалидны. Но выпущенные до этой даты работали нормально. Это коснулось всех сертификатов, даже платных (включая Extended Validation):

Сертификаты от StartCom и WoSign окончательно превратились в тыкву

Но и это длилось не долго.

Категория: Информационная безопасность, Криптография

 

Фальшивые обещания, агрессивная реклама, трояны-загрузчики и другие сюрпризы Google Play

Автор: admin от 30-03-2017, 19:35, посмотрело: 184

Специалисты ESET обнаружили на сервисе Google Play очередную партию вредоносных и нежелательных приложений. Они маскируются под легитимные программы и/или используют методы социальной инженерии для увеличения рейтинга. Общее число загрузок «героев» этого обзора превышает полтора миллиона, причем в большинстве ситуаций изучение отзывов пользователей в сервисе Google Play позволило бы избежать установки потенциально опасного ПО.

Фальшивые обещания, агрессивная реклама, трояны-загрузчики и другие сюрпризы Google Play

Категория: Google, Android

 

Вращение изображения на FPGA

Автор: admin от 30-03-2017, 18:50, посмотрело: 249

Вращение изображения на FPGA

Пол года назад я наткнулся в сети вот на это видео.

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

Категория: Программирование

 

Приглашаем на Go meetup 14 апреля

Автор: admin от 30-03-2017, 18:20, посмотрело: 174

Приглашаем на Go meetup 14 апреля

В пятницу 14 апреля мы приглашаем вас в наш московский офис на Go meetup. Мы послушаем доклады экспертов и пообщаемся на профессиональные темы. В программе встречи пять докладов.

Приглашаем на Go meetup 14 апреля— Go Template Toolkit
Сергей Свистунов, Lazada

В докладе речь пойдет о трансляторе шаблонов в Go-код (https://github.com/go-qbit/template). Получаемый шаблонизатор работает в более чем 10 раз быстрее html/template из стандартной библиотеки. Будет сделан краткий обзор синтаксиса шаблонов, сходства и различия с Perl Template Toolkit. Также спикер расскажет, как Go YACC помог описать грамматику для построения AST, и как из AST получается Go-код. Продемонстрирует, как go tool pprof помог найти неочевидные места, требующие оптимизации.

Категория: Программирование

 

Шаблон проектирования «Спецификация» в C#

Автор: admin от 30-03-2017, 17:30, посмотрело: 392

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

Я познакомился с этим термином в процессе чтения DDD Эванса. На Хабре есть статьи с описанием практического применения паттерна и проблем, возникающих в процессе реализации.

Если коротко, основное преимущество от использования «спецификаций» в том, чтобы иметь одно понятное место, в котором сосредоточены все правила фильтрации объектов предметной модели, вместо тысячи размазанных ровным слоем по приложению лямбда-выражений.

Классическая реализация шаблона проектирования выглядит так:
public interface ISpecification
{
    bool IsSatisfiedBy(object candidate);
}

Что с ним не так применительно к C#?



  1. Есть Expression и Func, сигнатура которых совпадает с IsSatisfiedBy

  2. Есть Extension-методы. alexanderzaytsev с помощью них делает вот так:
    public class UserQueryExtensions 
    {
      public static IQueryable<User> WhereGroupNameIs(this IQueryable<User> users,
    string name)
      {
          return users.Where(u => u.GroupName == name);
      }
    }
    


  3. А еще можно реализовать вот такую надстройку над LINQ:
    public abstract class Specification<T>
    {
      public bool IsSatisfiedBy(T item)
      {
        return SatisfyingElementsFrom(new[] { item }.AsQueryable()).Any();
      }
    
       public abstract IQueryable<T> SatisfyingElementsFrom(IQueryable<T> candidates);
    }
    



  4. В конечном итоге возникает вопрос: стоит ли в C# пользоваться шаблоном десятилетней давности из мира Java и как его реализовать?

Категория: Программирование, Веб-разработка

 

Технокубок: итоги финального раунда и разбор задач

Автор: admin от 30-03-2017, 16:10, посмотрело: 253

Технокубок: итоги финального раунда и разбор задач


Пятого марта прошел финальный раунд Технокубка — олимпиады по программированию для школьников. В этом году в ней приняли участие 3000 человек, 400 из которых прошли в финал. Предлагаем вам взглянуть итоги финала и разбор задач:


A. Андрюша и носки
B. Место встречи изменить нельзя
C. Андрюша и разноцветные шарики
D. Иннокентий и футбольная лига
E. Подземная лаборатория
F. Аксель и Марстон в Битландии
G. Андрюша и живые барьеры
H. Автобусы и интранет


Что такое Технокубок? Это олимпиада по программированию для учащихся 8-11 классов, организуемая Mail.Ru Group совместно с МГТУ им. Баумана и МФТИ. Она состоит из трех этапов: ознакомительного (онлайн), отборочного (онлайн) и заключительного (очно).

Категория: Программирование

 

Конспект лекции про дизайн игровых механик сэндбокс-проектов от создателя Life is Feudal

Автор: admin от 30-03-2017, 15:25, посмотрело: 170

В феврале в Высшей школе бизнес-информатики НИУ ВШЭ проходила однодневная лекционная сессия по игровой индустрии, открытая для посещения всем желающим. Своим опытом с гостями делились преподаватели программы «Менеджмент игровых интернет-проектов» и приглашенные эксперты. Предлагаем вашему вниманию конспект и видео с лекции генерального и технического директора компании Bitbox, создателя популярной игры Life is Feudal: Your Own Владимира Пискунова.
Конспект лекции про дизайн игровых механик сэндбокс-проектов от создателя Life is Feudal

Категория: Веб-разработка, Game Development

 
Назад Вперед