Pull to refresh
82
0
Send message

Почему карма на Хабре — это хорошо?

Reading time3 min
Views13K
Заканчивается неделя постов про карму. В очередной раз разжевано, почему карма — плохо, в очередной раз предлагаются изменения. Давайте прикинем, почему карма — это хорошо.

Начнем с того, что Хабр это (около)технический ресурс, позиционирующий себя как «вежливый». Оскорбления и безграмотность здесь не приветствуются, и это указано в правилах сайта. Как следствие, под запретом находится политика — из неё очень легко перейти на личности, в невежливой форме.

Основа основ Хабра — это посты. Под многими встречаются ценные комментарии, иногда даже ценнее поста. Время «активной» жизни большинства постов — два-три дня. Затем обсуждение затихает, и пост открывают либо из закладок, либо по выдаче гугла.

У авторов должна быть мотивация писать посты. Вариантов несколько.

  1. Деньги. Это редакция, возможно, потоковые переводчики.
  2. Проф-заказ. В основном, статьи в корпоративных блогах.
  3. Личность. Хочется поделиться чем-то важным (или интересным), структурировать собственные знания, показать себя перед условным будущим работодателем.
Читать дальше →
Total votes 137: ↑100 and ↓37+63
Comments812

Характеристики квантовых компьютеров

Reading time4 min
Views45K
Мощность квантового компьютера измеряется в кубитах, базовой единице измерения в квантовом компьютере. Источник.

Я делаю фейспалм после каждого прочтения подобной фразы. До добра это не довело, начало садиться зрение; скоро придется обращаться к Meklon.

Думаю, пора несколько систематизировать основные параметры квантового компьютера. Их несколько:

  1. Количество кубитов
  2. Время удержания когерентности (время декогеренции)
  3. Уровень ошибок
  4. Архитектура процессора
  5. Цена, доступность, условия содержания, время амортизации, инструменты программирования, и т.д.
Читать дальше →
Total votes 80: ↑79 and ↓1+78
Comments83

Квантовые вычисления в играх, или сходим с ума по-серьезному

Reading time12 min
Views7.8K
Если живешь среди сумасшедших, надо и самому научиться быть безумным

Вы когда-нибудь пробовали «научиться быть безумным»? Нетривиальная задачка. Даже нормальной методики не найдешь, ибо каждый сходит с ума по-своему. Моя первая попытка: теория заговора. Теория не предполагает практики, а значит не придется много работать. Опять-таки, при любом раскладе никто не пострадает.

Как создавать теории заговора?
Создать теорию заговора относительно просто. Нужна идея, достаточно простая для того, чтобы её восприняли 90% населения. Она должна быть спорна, чтобы 5% населения могли объяснять 90% какие они идиоты. Наконец, нужны какие-либо исследования, которые эти 95% людей не понимают, но которые используются 90% как аргумент «люди поумнее нас доказали...».

Квантовые вычисления — отличная область для такого исследования. Можно накатать простую схему, но слово «квантовые» придаст веса результатам.

Объект исследования — игра, ибо объект должен простым и привычным молодежи. Кто у нас занимается квантовыми вычислениями и играми? Google.

Итак, еретическая теория: через 5 лет Пейдж и Грин решат, кто будет главным в Google, и сделают это с помощью игры. У каждого из них есть группа исследователей. Команда AlphaGo со своими боевыми нейросетями натянула соперников в Го. Оппоненты вынуждены были искать новые методы, и таки обнаружили инструмент тотального превосходства: квантовые вычисления.

Можно ли использовать Квантовые Вычисления для игр? Легко. Покажем для примера, что игра «охотник на лис» может быть «решена» за 6 ходов. Ради правдоподобности ограничимся 15 кубитами (онлайн-редактор quirk больше пятнадцати не эмулирует), ради простоты проигнорируем ограничения архитектуры процессора и коррекцию ошибок.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments12

Проблемы современной записи математических текстов

Reading time8 min
Views41K
В недавней статье товарищ KvanTTT поднял вопрос:
Можете пояснить что вам не нравится в современной записи (математических положений и) формул и как ее можно улучшить?
Я постарался ответить в одном комментарии, но размер текстового поля не позволил закончить выкладки. Данная статья — чрезмерно развернутый ответ.

Сразу скажу, материал холиварный. Местами слишком эмоциональный. Очень спорный. Слишком личный — часто основан на собственном опыте, небогатом, хоть и разнообразном. Пост касается школьных и университетских текстов учебников: у «профессиональной» литературы своя специфика, своя аудитория. Решения у проблемы в текущих реалиях нет. При этом, часть «моих» наблюдений задолго до меня высказывали такие авторитеты, как Кнут и Хэмминг; чуть менее популярные ребята даже запилили инструкцию "Как читать математику".

Итак, на мой взгляд, основные претензии не столько к записи формул, сколько к подаче материала. Причем, к подаче материала на практически всех уровнях образования, начиная со школы, и заканчивая передовой наукой. Начало текущей ситуации положил Евклид, заявивший про отсутствие царской дороги в математике. Царскую дорогу не проложили до сих пор. Евклид обходился, и мы сможем.
Какие же проблемы есть у подачи материала?
Total votes 123: ↑112 and ↓11+101
Comments593

Организация стажировки для студентов: грабли и хитрости

Reading time9 min
Views3.8K
Стажировки очевидно бывают разные. В моей компании стажируют джунов. Чтобы был понятен контекст: компания в ~300 человек, разрабатываем на Java\C#\10 видов JS, разработчиков стажируем только в 2 городах в Литве. Веб-сайты, банки, электростанции, зоопарки — проекты самые разные. Компания растет, нужны люди. Один из вариантов найма: стажировка.

Обычный стажер-разработчик — студент 2-4 курса, IT, математика; стажируется параллельно учебе в Вильнюсе или Каунасе. Начинает стажировку 40 человек, заканчивает 30-35, 10 нанимается джунами.

10 человек — это не просто красивое число. Для нанятого джуна нужен хотя бы один сеньор\лид, имеющий свободное время и проект, куда стажера можно безболезненно ввести и загрузить, где он получит экспу и принесет пользу (и пройдет клиентскую проверку безопасности). Плюс, нет резона вешать джуна на сеньора, который не горит желанием быть наставником. Плюс, джависты не горят желанием нанимать .NET стажеров.
Хотит узнать откуда берутся джуны?
Total votes 8: ↑6 and ↓2+4
Comments0

Как я учился читать

Reading time3 min
Views19K
Читать я начал в 5-4-3 года. Цифра, называемая моей мамой, почему-то уменьшается со временем. До сих пор помню диван, пушистое одеяло на нем, и несколько букв вырезанных из цветной бумаги. «Мама», «папа», «Саша» — составление слов казалось чудом.

Научившись составлять слова, я незаметно научился их разбирать. Сказки Андерсена, «Денискины рассказы», энциклопедии — столько всего можно было прочитать! И я читал. Чтение уже не казалось чудом, но сколько же чудес было в описываемых мирах.
Читать дальше →
Total votes 55: ↑42 and ↓13+29
Comments52

Code Coverage — хочу верить

Reading time4 min
Views39K
Разработчик обязан знать свои инструменты! Знание инструментов увеличивает продуктивность, эффективность, производительность, потенцию разработчика! Не могу программировать без R#!

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

Правда, инструкция к инструменту обычно не содержит раздел «Противопоказания», не указываются ситуации когда НЕ стоит применять утилиту. Между тем, подобный раздел мог бы сэкономить тонны времени на неудачные эксперименты.

Сегодня я пошвыряю камни в огород Code Coverage (CC). Достаточно полезная метрика, под которой лежат несколько скудно документированных граблей.
CC в посте не описывается. Читайте на свои страх и риск.
Total votes 36: ↑35 and ↓1+34
Comments32

Анализаторы Roslyn: повадки и места обитания

Reading time3 min
Views4.6K
На днях объяснял одному товарищу что такое анализаторы Roslyn и как их писать. Ответ получился массивным, и я решил вынести его в отдельную публикацию.

Что такое анализаторы Roslyn? Если коротко — это отличный способ писать рефакторинги вроде Решарперовских. Постоянно встречаете одну и ту же ошибку в процессе ревью? Напишете анализатор с фиксером и забудьте про эту ошибку. Техническая сторона довольно проста, для первоначального знакомства отлично подойдут вот эта статья, вот это видео, вот эта серия постов, и вот этот туториал. Я же попытаюсь описать грабли моменты, которые лично у меня вызывали затруднение.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments5

Неправильно именуйте непеременные

Reading time3 min
Views8.7K
brainFuckProgrammImage Все началось лет 8 назад. Я тогда писал одну программу для математических расчетов, и мой преподаватель указал, что я неверно именую переменные. Он был прав: x, xx, xxx сложновато различить в коде. После переименования они превратились в redSegment, greenSegment, blueSegment (в контексте задачи именование было подходящее). Потом были «Рефакторинг» Фаулера, «Совершенный код» Макконнелла, «Паттерны проектирования» банды четырех… каждый день я погружался все глубже в бездну.

В моей текущей компании никто не упоминает о правильном именовании переменных, это несерьезно. Мы обсуждаем с коллегами стили именования тестов, стоит ли использовать TestCase атрибут в nUnit, спорим о целесообразности #region в C#, пишем кастомные анализаторы для своих проектов и пьем смузи вообще всячески наслаждаемся жизнью.
Однако вчера все изменилось
Total votes 22: ↑11 and ↓110
Comments52

Как оценить свою публикацию?

Reading time2 min
Views7.1K
Близится Новый Год. В Хабаровске он уже наступил, поздравляю!

По традиции, нужно подвести итоги уходящего года, и я решил перечитать свои посты. Перечитать-то перечитал, но как их оценить? Карма? Рейтинг? Просмотры? Слишком сухо и серьезно. Попугаи? Слишком несерьезно. Я решил измерять в Milfgard-ах.

Итоговый результат: 8 Alizar-ов
Total votes 48: ↑33 and ↓15+18
Comments16

Голос Сиэтла: разговариваем с Сергеем Тепляковым

Reading time16 min
Views6.7K
Последние две мои статьи — интервью со спикерами одной прошедшей конференции. Мне показалось интересным поговорить с человеком, который в свое время отказался выступать на этой конференции, “из за одного маленького семейного обстоятельства”. Этот человек — Сергей SergeyT Тепляков, MVP, автор отличной книги про паттерны проектирования, адепт TDD, ныне разработчик Tools for Software Engineers в Microsoft и мейнтейнер библиотеки Code Contracts.

Под катом много текста про конференции, TDD, парное программирование, архитектуру Code Contracts, Хабру.
Чем же занимаются разработчики в Сиэтле
Total votes 22: ↑22 and ↓0+22
Comments5

.NET Tools. Интервью с Сергеем Шкредовым (JetBrains), Павлом Авсениным и Александром Захаровым (DevExpress)

Reading time14 min
Views10K

Некоторые разработчики программируют взглядом. Другие слепы и программируют на слух\ощупь. Отдельным товарищам достаточно маркера и доски. Но все-таки большинство .NET-разработчиков пользуется Visual Studio для кодирования и дебага, парочкой профайлеров, декомпилятором, плагином для VCS, браузерными инструментами, R#\CodeRush, тулзой для контроля базы данных, баг-трекером, билд-системой и кофемашиной.


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


Под катом — скучная и совершенно неинтересная реклама, немного Roslyn, чуть-чуть Rider, минимум CodeRush, малость описаны фичи C# 7.0, бегло рассмотрены перспективы .NET и один раз упоминается PVS-Studio.


Читать дальше →
Total votes 46: ↑37 and ↓9+28
Comments16

.NET и CLR: Взгляд изнутри

Reading time12 min
Views20K


Что такое C#? Объектно-ориентированный эсперанто со сборщиком мусора, функциональными примочками и бесплатным массажем после обеда. Он позволяет писать Действительно Важные Вещи, скрывая от нас ненужные детали работы с памятью, процессором и прочее низкоуровневое программирование. Естественно, находятся люди с повышенным уровнем любопытства в крови, желающие знать как же .NET работает на самом деле (само собой, они изучают .NET исключительно ради повышения производительности разрабатываемого софта). Сегодня с нами разговаривают:
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments18

Константы не меняются: небольшой экскурс в глубины dotNet

Reading time2 min
Views11K
image Приветствую. Недавно я наткнулся на статью товарища Dywar «Интересные заметки по C# и CLR» и заинтересовался пунктом 13:

«Константы помещаются в метаданные сборки, поэтому если были изменения, нужно перекомпилировать все использующие ее сборки. Т.к. DLL с константой может даже не загружаться.»

Да ладно, подумал я, и полез ставить эксперименты. Создал проект TestConstants, в нем класс,

public class Master
    {
        public const string Const = "Hello world";
    }

затем проект TestConstantsSlave,

static void Main()
        {
            Console.WriteLine(Master.Const);
            Console.ReadKey();
        }

Заменил константу на “Hello habr”, перебилдил основной проект, запустил по F5…
Читать дальше →
Total votes 29: ↑19 and ↓10+9
Comments18

Четыре способа извлечения значений из скрытых полей в C#

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

public class Example
{
  private int JustInt;

  // Some code here

  public void DoSomething(Example example)
  {
    this.JustInt = example.JustInt; // Вполне валидная строка, некоторых удивляет
  }
}

Почему бы не пойти дальше, и не забирать данные из скрытых полей иных классов?
Total votes 20: ↑18 and ↓2+16
Comments27

Замеряем производительность с помощью BenchmarkDotNet

Reading time6 min
Views34K
imageДобрый день. Неделю назад я в третий раз применил библиотеку для создания\запуска .NET бенчмарков BenchmarkDotNet. Библиотека оказалась достаточно удобной, но практически не освещенной на хабре, что я сейчас и исправлю.

Под бенчмарком я подразумеваю измерение времени выполнения метода(ов). Для начала представим процесс написания бенчмарка руками. Создаем тестируемый метод, выбираем Release билд, создаем «замеряющий» метод, в нем собираем мусор, ставим StopWatch в начале и в конце, запускаем прогрев, запускаем тестируемый метод. Если тестируемый метод выполняется быстрее одного «тика» StopWatch, запускаем тестируемый метод много раз (пусть будет миллион), делим суммарное время на миллион, получаем результат (при этом нужно не забыть вычесть из суммарного времени время «холостого» прогона цикла на миллион операций).

А ведь это еще не все!
Total votes 20: ↑17 and ↓3+14
Comments19

Как приготовить DTO?

Reading time5 min
Views17K
За последние полтора месяца мне довелось поработать над backend-ом трех проектов. В каждом требовалось подготовить классы для взаимодействия с удаленным сервисом посредством обмена XML-документами; в частности, требовалось подготовить DTO-классы для каждого из типов сообщений. Для каждого из сервисов шло описание от разработчиков, с примерами XML-документов, так что работа была относительно простая: взять пример, прогнать через утилиту xsd, получить класс, поправить типы, добавить недостающие поля\свойства, протестировать. Операции рутинные, после десятка классов думать уже особо не требовалось, так что в голове начали скапливаться мысли, как ускорить процесс разработки либо улучшить выходной результат. Получилось и то, и другое.
Как же готовить DTO?
Total votes 12: ↑11 and ↓1+10
Comments12

Information

Rating
Does not participate
Registered
Activity