Search
Write a publication
Pull to refresh
27
0
Iceg @Iceg

User

Send message

Что слушают разработчики: от классики до игровых саундтреков — обсуждаем все самое интересное

Reading time5 min
Views37K
Написание кода — это сложная и творческая задача, требующая высокого уровня концентрации. И согласно ряду исследований, помочь настроиться на продуктивный день может музыка.

Вопрос только в том, какой музыкальный жанр выбрать.

На таких площадках, как Reddit, Hacker News и Хабр обсуждению этого вопроса посвящен не один тред. Мы решили проанализировать мнения разработчиков и отобрать наиболее интересные.

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

Что почитать в июле: 19 книжных новинок для диджитал-специалистов

Reading time5 min
Views19K
Подборка книжных новинок ведущих издательств России от редакции Нетологии. Обложки кликабельные.


Программирование, data science и математика


«Регулярные выражения», Джеффри Фридл


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

Как мы добавили подъезды на карту и сократили размер баз на 10%

Reading time12 min
Views31K


В конце прошлого месяца 2ГИС начал отображать подъезды. Входы в организации мы показываем аж с 2013 года, а подъезды — вроде бы те же входы. Так почему только сейчас? Все внутренние продукты и процессы готовы, всего-то нужно дособрать ещё чуть-чуть да подправить отображение в UI.

Кроме стандартного ответа «Были другие приоритеты» есть и не совсем стандартный: «Не всё так просто». Эта статья про то, какие были сложности и как мы их решили.
Заходим!

Скорость работы скомпилированного Linq Expression Tree

Reading time5 min
Views5.6K
Вот в этой статье в комментариях произошёл не то, чтобы спор, но некоторое «не схождение» в сравнении скорости IL Emit и скомпилированного Linq Expression Tree.

Данная мини статья — код теста скорости + результаты прогона этого теста.
Читать дальше →

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

Reading time9 min
Views273K

К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.


Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.


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

Рыбий жир и Омега-3 — механизм действия и нужно ли принимать добавки

Reading time13 min
Views294K

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


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


Некоторые авторы книг о продлении жизни и предотвращения падения мозговых функций в 80+ лет считают прием рыбьего жира одним из важных компонентов программы действий. Также он является одной из самых изученных и долго применяемых добавок к пище.


Однако, вопросы по его действию все равно есть, особенно для людей среднего и пожилого возрастов.


В нашей статье мы разберем:


  • что такое Омега-3
  • отличия рыбьего жира от растительных источников (льняное масло и т.п.)
  • рассмотрим текущие и будущие клинические исследования по теме
  • сравним разных производителей и подумаем обоснована ли разница в ценах

А еще у нас новость. В конце статьи будет анонс и ссылка на установку нашего приложения, мы наконец-то его запустили и мы теперь работаем с Инвитро, что даст нашим пользователям некоторые скидки (пока только в СПб).


Ну и конечно бонус — многие из нас при выборе лекарств и добавок задаются вопросом, какую купить? Просто дороже? Просто по картинке и словам производителя, что он самый самый? Мы решили исследовать вопрос и есть первый результат. Он тоже в статье.


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

50 (или 60) лет разработки процессоров… ради этого?

Reading time12 min
Views52K
«Закон масштабирования Деннарда и закон Мура мертвы, что теперь?» — пьеса в четырёх действиях от Дэвида Паттерсона

«Мы сжигаем мосты, по которым сюда мчимся, не имея других доказательств своего движения, кроме воспоминаний о запахе дыма и предположения, что он вызывал слёзы» — «Розенкранц и Гильденштерн мертвы», абсурдистская пьеса Тома Стоппарда

15 марта д-р Дэвид Паттерсон выступил перед аудиторией из примерно 200 наевшихся пиццы инженеров. Доктор вкратце изложил им полувековую историю конструирования компьютеров с трибуны в большом конференц-зале здания E в кампусе Texas Instruments в Санта-Кларе во время лекции IEEE под названием «50 лет компьютерной архитектуры: от центральных процессоров до DNN TPU и Open RISC-V». Это история случайных взлётов и падений, провалов и чёрных дыр, поглотивших целые архитектуры.

Паттерсон начал с 1960-х годов и новаторского проекта IBM System/360, основанного на ранних работах Мориса Уилкса по микропрограммированию 1951 года. По меркам IT это было давным-давно… Ближе к концу выступления Паттерсон показал потрясающую диаграмму. Она наглядно демонстрирует, как именно смерть закона масштабирования Деннарда, за которой следует смерть закона Мура, полностью изменили методы проектирования компьютерных систем. В конце он объяснил посмертные технологические последствия этих потрясений.
Читать дальше →

Белый ящик Пандоры

Reading time15 min
Views16K
Обсуждая тестирование, чаще всего спикеры говорят об особенностях подхода, известного как «черный ящик». Но здесь мы поговорим о противоположном сценарии — «белом ящике», позволяющем формулировать вопросы к коду, понимая его внутреннюю структуру.



В основе статьи — расшифровка доклада Никиты Макарова (Одноклассники) с нашей декабрьской конференции Heisenbug 2017 Moscow.

Как спрятать DNS-запросы от любопытных глаз провайдера

Reading time16 min
Views250K

Настройка 1.1.1.1 от Cloudflare и других DNS-сервисов по-прежнему требует навыков работы в командной строке



Шифрование трафика между вашим устройством и DNS-сервисом помешает посторонним лицам отслеживать трафик или подменить адрес

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

DNS — это телефонный справочник Сети, выдающий фактический сетевой адрес IP, связанный с хостингом и доменными именами сайтов и других интернет-служб. Например, он превращает arstechnica.com в 50.31.169.131. Ваш интернет-провайдер предлагает DNS в пакете услуг, но он также может журналировать DNS-трафик — по сути, записывать историю ваших действий в интернете.

«Открытые» DNS-сервисы позволяют обходить сервисы провайдеров ради конфиденциальности и безопасности, а кое в каких странах — уклоняться от фильтрации контента, слежки и цензуры. 1 апреля (не шутка) компания Cloudflare запустила свой новый, бесплатный и высокопроизводительный DNS-сервис, предназначенный для повышения конфиденциальности пользователей в интернете. Он также обещает полностью скрыть DNS-трафик от посторонних глаз, используя шифрование.
Читать дальше →

Генерация кода во время работы приложения: реальные примеры и техники

Reading time19 min
Views22K

Генерация кода в рантайме — очень мощная и хорошо изученная техника, но многие разработчики все еще неохотно её используют. Обычно изучение Expression Trees начинают с какого-нибудь простого примера типа создания предиката (фильтра) или математического выражения. Но не Expression Trees единым жив .NET-разработчик. Совсем недавно появилась возможность генерировать код, используя сам компилятор — это делается с помощью API библиотек Roslyn/CodeAnalisys, предоставляющих, кроме всего прочего, еще и парсинг, обход и генерацию исходников.


Эта статья основана на докладе Raffaele Rialdi (Twitter: @raffaeler) на конференции DotNext 2017 Moscow. Вместе с Рафаэлем мы проанализируем реальные способы использования кодогенерации. В отдельных случаях они позволяют очень сильно улучшить производительность приложения, что в свою очередь приводит нас к дилемме — если сгенерированный код так полезен и мы собираемся его часто использовать, то как же отлаживать этот код? Это один из фундаментальных вопросов, возникающих в реальных проектах.


Рафаэль — практикующий архитектор, консультант и спикер, имеющий MVP в категории Developer Security начиная с 2003 года, который прямо сейчас занимается бэкендами enterprise-проектов, специализируясь на генерации кода и кроссплатформенной разработки для C# и C++.


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

Защита ASP.NET приложений от взлома

Reading time13 min
Views31K

ASP.NET MVC — не самый хайповый, но довольно популярный стек в среде веб-разработчиков. С точки зрения (анти)хакера, его стандартная функциональность дает тебе кое-какой базовый уровень безопасности, но для предохранения от абсолютного большинства хакерских трюков нужна дополнительная защита. В этой статье мы рассмотрим основы, которые должен знать о безопасности ASP.NET-разработчик (будь то Core, MVC, MVC Razor или Web Forms).


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

[DotNetBook] Stackalloc: забытая команда C#

Reading time8 min
Views30K
С этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом. Вся книга будет доступна на GitHub (ссылка в конце статьи).

В C# существует достаточно интересное и очень редко используемое ключевое слово stackalloc. Оно настолько редко встречается в коде (тут я даже со словом «редко» преуменьшил. Скорее, «никогда»), что найти подходящий пример его использования достаточно трудно а уж придумать тем более трудно: ведь если что-то редко используется, то и опыт работы с ним слишком мал. А все почему? Потому что для тех, кто наконец решается выяснить, что делает эта команда, stackalloc становится более пугающим чем полезным: темная сторона stackalloc — unsafe код. Тот результат, что он возвращает не является managed указателем: значение — обычный указатель на участок не защищенной памяти. Причем если по этому адресу сделать запись уже после того как метод завершил работу, вы начнете писать либо в локальные переменные некоторого метода или же вообще перетрете адрес возврата из метода, после чего приложение закончит работу с ошибкой. Однако наша задача — проникнуть в самые уголки и разобраться, что в них скрыто. И понять, в частности, что если нам дали этот инструмент, то не просто же так, чтобы мы смогли найти секретные грабли и наступить на них со всего маху. Наоборот: нам дали этот инструмент чтобы мы смогли им воспользоваться и делать поистине быстрый софт. Я, надеюсь, вдохновил вас? Тогда начнем.

Примечание


Глава, опубликованная на Хабре не обновляется и возможно, уже несколько устарела. А потому, прошу обратиться за более свежим текстом к оригиналу:





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

Анонс встреч Apache Ignite в Москве и Санкт-Петербурге в марте

Reading time2 min
Views1.5K

Москва, 20 марта


Видеозаписи выступлений на “Moscow Apache Ignite #1”

Внимание! Дата перенесена с 13 марта на 20 марта, время, место и программа без изменений

При организации второго митапа мы учли ваши пожелания: места будет БОЛЬШЕ, и Алексей Гончарук выступит с докладом для архитекторов.

Программа:
19:00 — 19:30 — приветственный кофе, сбор гостей

1. «Что нового в Apache Ignite 2.4» — Артем Шитов, инженер GridGain.
2. «Масштабирование Apache Ignite кластера для архитекторов» — Алексей Гончарук, главный архитектор GridGain.
3. «Операционный кэш данных на базе Apache Ignite. Практика построения и использования решения для страховой компании» — Дмитрий Косицын, технический директор Unitarius.

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

Учимся быть фуллстек разработчиками. Пишем приложение на React/Redux/Webpack/ASP.NET Core 2.0/EF Core

Reading time23 min
Views105K
Ни для кого не секрет, что .net сейчас используется в большинстве случаев как инструмент бэкенд разработки, а в клиентской разработке последние лет 5 правит js сообщество с своей экосистемой и инструментами для разработки. Это все безобразие с каждым годом усиливает пропасть между фронтэндом и бэкендом, и планка вхождения в область становится все выше и выше, разработчики начинают делиться на два лагеря и уходит такое понятие как фуллстек.

Да, под Node.js можно написать сервер, но для бэковой разработки, все же, .net бесспорный лидер. На js, на мой взгляд, очень сложно написать гибкий и легко поддерживаемый бэкенд, хотя возможно многие со мной и не согласятся.

Давайте ударим автопробегом по бездорожью попытаемся вопреки всему этому написать SPA приложение с бэком на .net core и клиентом на js, из инструментов разработки будем использовать горячо любимую Visual Studio.

После этого туториала, я надеюсь, веб и бэк разработчикам будет проще найти почву под ногами в вражьей области и понять в какую сторону двигаться для более углубленного изучения. Поехали!
Читать дальше →

Три аспекта оптимизации (БД и ПО)

Reading time31 min
Views68K

Предисловие


Довольно часто пользователи, разработчики, администраторы и т д СУБД MS SQL Server встречаются с проблемами производительности БД или СУБД в целом.

В данной статье будут даны общие рекомендации по настройке оптимизации как БД, так и всей СУБД в целом. Также будут даны основные рекомендации по взаимодействию приложения .NET и MS SQL Server. Будут даны примеры решения на большинство из приведенных ниже рекомендаций.

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

Как лучше разбираться в людях

Reading time31 min
Views107K
Рассказывать айтишникам про психологию то еще дело, некоторые читатели скажут: «Bullshit!», и вообще не поверят, потому что психологию, даже прикладную, нельзя назвать точной наукой. Тем не менее, задача этой статьи — показать и доказать вам, что некоторые модели действительно работают. В основе доклад Сергея Котырева из UMI на РИТ++ 2017, от его лица дальше и пойдет повествование.



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

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

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

3D-движок, написанный на формулах MS Excel

Reading time9 min
Views118K

Скриншот экрана игры

Эта статья посвящена тому, как я смог написать 3D-движок только на формулах Excel. Я реализовал следующий функционал:

  • бесконечная процедурно генерируемая карта лабиринта
  • рендеринг трассировкой лучей в реальном времени
  • вычисление окклюзии
  • рендеринг простейшего освещения
  • шейдер освещения и вычислений
  • движок естественного движения
  • в 3D-движке не используются макросы

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

Можете скачать файл и протестировать его самостоятельно!

Релиз первой беты кросс-платформенного XAML UI-тулкита Avalonia

Reading time6 min
Views23K

Состоялся релиз первой бета-версии Авалонии.


Avalonia — кроссплатформенный .NET UI-тулкит, вдохновлённый технологиями WPF и распространяемый под лицензией MIT. Он полностью поддерживает .NET Core 2.0, XAML, дата-биндинги, lookless-контролы и многое другое. Avalonia позволяет писать на C# приложения под Windows, Linux и Mac OS X. Возможность запуска на iOS и Android находится в экспериментальном состоянии.



Данная версия стабильна и имеет полное право называться бетой: тулкит не разваливается в руках и имеет приличный базовый набор контролов (см. видео). На нём создано два достаточно больших приложения с открытым исходным кодом: AvalonStudio — кроссплатформенная IDE для разработки на C# и C++ и Core2D — редактор 2D-схем и диаграмм.

Интересные сюрпризы ConcurrentDictionary (+разбор задачи с DotNext 2017 Moscow)

Reading time5 min
Views32K

Привет всем, кто пишет код для .NET, особенно многопоточный. Редко встретишь потокобезопасный код без потокобезопасных коллекций, а значит, нужно уметь ими пользоваться. Я расскажу о самой популярной из них — ConcurrentDictionary. В ней спрятано на удивление много интересных сюрпризов: как приятных, так и не очень.


Сначала разберём устройство ConcurrentDictionary и вычислительную сложность операций с ним, а затем поговорим об удобных трюках и подводных камнях, связанных с memory traffic и сборкой мусора.


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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity