Pull to refresh
10
0
Andrey Ostapenko @2king2

User

Send message

ConfigureAwait, кто виноват и что делать?

Reading time 8 min
Views 32K

В своей практике я часто встречаю, в различном окружении, код вроде того, что приведен ниже:


[1] var x = FooWithResultAsync(/*...*/).Result;

//или
[2] FooAsync(/*...*/).Wait();

//или
[3] FooAsync(/*...*/).GetAwaiter().GetResult();

//или
[4] FooAsync(/*...*/)
    .ConfigureAwait(false)
    .GetAwaiter()
    .GetResult();

//или
[5] await FooAsync(/*...*/).ConfigureAwait(false)

//или просто
[6] await FooAsync(/*...*/)

Из общения с авторами таких строк, стало ясно, что все они делятся на три группы:


  • Первая группа, это те, кому ничего не известно о возможных проблемах с вызовом Result/Wait/GetResult. Примеры (1-3) и, иногда, (6), типичны для программистов из этой группы;
  • Ко второй группе относятся программисты, которым известно о возможных проблемах, но они не знают причин их возникновения. Разработчики из этой группы, с одной стороны, стараются избегать строк вроде (1-3 и 6), но, с другой, злоупотребляют кодом вроде (4-5);
  • Третья группа, по моему опыту самая малочисленная, это те программисты, которые знают о том, как код (1-6) работает, и, поэтому, могут сделать осознанный выбор.

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


Читать дальше →
Total votes 34: ↑34 and ↓0 +34
Comments 27

Собеседование на английском: как правильно рассказать о себе

Reading time 5 min
Views 54K
Все больше рекрутеров в современных компаниях предпочитают проводить собеседования с соискателями на английском языке. Для HR-специалистов это выгодно, ведь можно одновременно проверить знания английского у соискателя и узнать больше информации о нем.

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

Преподаватели онлайн-школы английского языка EnglishDom поделились мнениями, как построить презентацию самого себя на английском, чтобы вас взяли на работу.
Читать дальше →
Total votes 40: ↑34 and ↓6 +28
Comments 27

Стажёр Вася и его истории об идемпотентности API

Reading time 11 min
Views 220K

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


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

Читать дальше →
Total votes 219: ↑216 and ↓3 +213
Comments 163

Надёжное хранение информации в ДНК (2,2 петабайта на грамм)

Reading time 2 min
Views 126K


На Хабре неоднократно упоминались экспериментальные технологии записи/считывания информации в ДНК. Молекула ДНК хранит информацию в четверичной системе счисления, по количеству нуклеотидов (0 = A, 1 = T, 2 = C, 3 = G). Это компактный контейнер с плотностью записи в тысячи раз больше, чем у существующих носителей. Однако, чтобы технология перешла от научных испытаний к коммерческому использованию, требуется решить ряд проблем. Одна из них — специфика цифровой информации, в которой одни и те же биты могут многократно повторяться (CCCCCCCCCCCCCCC). Если многократно повторять один и тот же нуклеотид в молекуле ДНК, то это негативно влияет на стабильность кластера и информация может быть потеряна, даже при использовании избыточного дублирования и коррекции ошибок.
Читать дальше →
Total votes 92: ↑87 and ↓5 +82
Comments 130

Квантовый компьютер: любое сложное состоит из набора простого

Reading time 13 min
Views 34K
В офф-топик внесены изменения

Пост написан по следующей задумке алгоритму

1.Попытка взглянуть на потенциальные (почти фантастические) возможности квантовых компьютеров
2.Обзор новых исследований и достижений
3.Обьяснить феномен квантовой сцепленности на простом примере
4. Литература


Уплотняя с помощью JPEG и MPEG визуальные материалы, вдруг странная мысль пришла в голову: в случае с виртуальной картинкой или видео речь идет сжатии двухмерного обьекта. А как же быть с трехмерным объектом (например, описанием и сжатием информационного эквивалента антропоморфного обьекта)?



Все программы сжатия данных работают по одному и тому же принципу. Программа просматривает картинку строка за строкой и разыскивает смежные пикселы, имеющие один и тот же цвет. Ясно, что описание трехмерного обьекта потребовало колоссальной по объему информации. В большом компьютере Tianhe-1A (TH-1A), предназначенном для параллельной обработки данных, содержится эквивалент 50 тыс. процессоров. А что произойдет, если заставить работать в параллель эквивалент 32 млрд процессоров?
Читать дальше →
Total votes 89: ↑61 and ↓28 +33
Comments 59

«Плотность времени» (с) Н.А.Козырев

Reading time 9 min
Views 165K
Эпиграф:
— А чем вам не нравится Второй Закон Термодинамики?
— Ну, хотя бы тем, что Больцман повесился. И сын Циолковского тоже.
ответ приписывают Н.Козыреву

Кто такой Николай Александрович Козырев?
— обладатель «алмазной звезды» Международной Академии Астронавтики (МАА) — высочайшей награды среди астрономов (только двое советских граждан имели такую награду — Ю.Гагарин и Н.Козырев).
— автор теории протяженных звёздных атмосфер
— автор теории солнечных пятен
— создатель «Несимметричной причинной механики» одной из интереснейших научных теорий о свойствах времени.

О последнем пункте и пойдет речь.
Читать дальше →
Total votes 142: ↑109 and ↓33 +76
Comments 148

Учёные из Гарварда записали 643 килобайта данных в молекулу ДНК

Reading time 2 min
Views 31K


Молекулы ДНК — это идеальный носитель информации: они фантастически компактны, стабильны, энергетически эффективны и надёжны: доказанная продолжительность хранения информации в ДНК составляет 3,5 миллиарда лет. Четыре грамма молекул ДНК, теоретически, могут вместить всю информацию, созданную человечеством за год.

Неудивительно, что учёные упорно пытаются найти удобный способ записи и считывания информации из ДНК. Два года назад биологи из Гонконга сумели внедрить в клетку бактерии E.coli синтетическую ДНК с несколькими килобайтами зашифрованной информации. В одном грамме бактерий около 10 млн клеток, а информационная плотность такого хранилища можно оценить в 900 ТБ на 1 грамм бактерий.

Сейчас специалисты из Кембриджского университета под руководством Джорджа Чёрча (George Church) бросили вызов китайским коллегам и поставили новый рекорд по количеству информации, внедрённой в синтетическую ДНК. Они смогли записать текст целой книги в 1 пикограмм молекул (пикограмм — одна триллионная грамма). Научная работа опубликована 16 августа 2012 года в журнале Science.
Читать дальше →
Total votes 100: ↑95 and ↓5 +90
Comments 114

Автозапуск и автовыключение ВМ в VmWare ESXi 5.0 Update 1

Reading time 5 min
Views 5K
Решил я начать внедрять виртуализацию в одном государственно учреждении. Мой выбор пал сначала на Citrix XenServer, т.к. в нем можно было организовать программный RAID1 (т.к. из-за нехватки бюджета в сервере не был установлен аппаратный RAID-контроллер), но потыкавшись с ним все таки выбил деньги на аппаратный RAID-контроллер и перешел на VmWare ESXi 5.0. Что хорошо, оба они предоставляются бесплатно.

Все было прекрасно, нужные задачи были виртуализированны, виртуалки исправно работали, но тут случился Update 1 для ESXi 5.0. После обновления перестали работать функции автозапуска и автовыключения виртуальных машин. Казалось бы, мелочь, но питание у нас оставляло желать лучшего, и периодически возникал вопрос с автоматическим стартом виртуалок, после перезагрузки самого сервера. Ну и иногда сервер тоже приходится выключать, и для этого приходилось подключаться VMware vSphere Client к гипервизору и поочереди гасить виртуалки, что было очень лень.
Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Comments 2

Юридически законная подпись документов, не выходя из Gmail

Reading time 1 min
Views 78K
HelloSign for Gmail — простое и удобное расширение к Chrome, чтобы ставить факсимиле на приходящие по электронной почте документы. Раньше нужно было распечатать документ, расписаться, отсканировать документ с подписью. Теперь процедура максимально упрощается: достаточно нажать кнопку Sign, которая появилась в интерфейсе.



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


Читать дальше →
Total votes 64: ↑51 and ↓13 +38
Comments 50

Разработчик передал свою работу на аутсорсинг в Китай и проводил время на Reddit

Reading time 2 min
Views 220K
В прошлом году в ходе аудита безопасности неназываемой компании, являющейся одним из ключевых инфраструктурных предприятий США, было выявлено, что один из топовых разработчиков нашел успешный способ не работать, «гулять» целый день по Интернету и оставаться одним из лучших работников буквально таки по сценарию новостного выпуска юмористической газеты фальшивых новостей Onion: он передал свою собственную работу на аутсорсинг китайскому подрядчику, а сам проводил рабочее время на сайтах социльных сетей, «Ибее» и смотрел видео с кошками на «Реддите».

Его хитрый приём был раскрыт после того, как в логах входа в служебный VPN компании были найдены фрагменты входов с IP-адресов диапазона КНР. VPN был настроен специально для того, чтобы разработчики могли работать из дома. Логи показали регулярную последовательность входов на главные сервера компании из китайского Шэньяна, при этом использовалась учетная запись определенного сотрудника, Б.

Первоначально IT специалисты компании были уверены, что это — результат какого-то вредоносного программного обеспечения, использующего уязвимость нулевого дня, что позволяло устанавливать соединения с рабочего компьютера Б. с внешним прокси-сервером, а затем и открывать VPN-соединение с машиной в Китае, но эта догадка не подтвердилась.
Читать дальше →
Total votes 280: ↑271 and ↓9 +262
Comments 226

Я устал, я ухожу…

Reading time 8 min
Views 12K
Когда я говорил, что нужно вкладывать в сообщество и User Groups, вы вкладывали в теннисные столы. Теперь у нас много средненьких теннисистов и нет коммюнити.

Из недавнего


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

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

Ниже я расскажу что, как и почему.
Читать дальше →
Total votes 137: ↑105 and ↓32 +73
Comments 43

Официальный Unlock от AT&T

Reading time 1 min
Views 51K
Недавно стало известно о решении AT&T самостоятельно делать unlock айфонов, купленных у нее. И сегодня это случилось… Казалось бы — «дело в шляпе», если бы не несколько «но».

image
Читать дальше →
Total votes 54: ↑45 and ↓9 +36
Comments 74

ПриватБанк и их акция по поиску уязвимостей

Reading time 1 min
Views 6.4K
Некоторое время назад, а точнее сразу после нового года, я наткнулся на заманчивое предложение от ПриватБанка за поиск уязвимостей, которое гласило, что за поиск уязвимости есть шанс получить до 10 000 грн (пр. 1250уе)
Потыкался… ничего не нашел и забил на это дело.

Но через время, удалось обнаружить уязвимость типа ХСС, благодаря которой, можно было украсть данные кредитки, cvv2, exp. Все данные в общем.
Читать дальше →
Total votes 98: ↑87 and ↓11 +76
Comments 46

Как я патентовал программу (интернет-сервис)

Reading time 3 min
Views 43K
Программу можно защищать как полезную модель (систему) и как способ.

Лучше одновременно готовить отдельные заявки и на способ, и на полезную модель. Когда будут готовы — патентный поверенный подаст их одновременно в один и тот же день — тогда обе эти заявки не опорочат патентную новизну друг друга, но зато обеспечат защиту с разных сторон.
Читать дальше →
Total votes 62: ↑42 and ↓20 +22
Comments 51

Психологическая деформация программистов. Взгляд с обеих сторон баррикад

Reading time 6 min
Views 136K
Само наличие психологической деформации у какой-либо профессии, как правило, достаточно спорный момент ввиду того, что у разных людей она проявляется по-разному. Однако общую тенденцию можно выделить и, пожалуй, настало то время когда можно достаточно смело говорить, что программисты всё же имеют свой особенный психологический портрет который обусловлен их профессиональной деятельностью.

Я достаточно часто сталкивался с подобным мнением и не придавал ему особого значения, но когда женский коллектив нашей организации поздравил программистов с 23-м февраля по доброму назвав их «космическими войсками», решил всё же расставить определенные акценты в данном вопросе, т.к. одна из моих профессий связана напрямую с психоанализом. Да и баш уже не молчит.

И что же них такого деформированного?
Total votes 461: ↑436 and ↓25 +411
Comments 558

Entity Framework Code First на практике

Reading time 4 min
Views 99K
Здравствуйте!

В этой публикации хочу поделиться личным опытом использования Entity Framework (EF) в реальном приложении и дать несколько полезных советов использования данного фреймворка.

Я занимаюсь разработкой enterprise приложений на платформе .NET больше 7 лет, за это время перепробовал несколько ORM библиотек, но сейчас для новых проектов использую Entity Framework Code First.
Читать дальше →
Total votes 24: ↑21 and ↓3 +18
Comments 22

Как выбрать алгоритм для адресного фильтра

Reading time 8 min
Views 19K

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

Эта статья для всех, кто хранит данные клиентов и хочет решить одну из следующих задач:
  1. убедиться, что адрес существует, чтобы не отправить посылку или письмо в никуда;
  2. разбить адрес на компоненты, чтобы понять, где идут лучше продажи;
  3. дополнить адрес недостающей информацией, чтобы оптимизировать план работы курьеров;
  4. стандартизовать адреса, чтобы найти дублирующие записи одного и того же клиента;
  5. актуализировать и привести адреса к формату справочника, чтобы пройти проверки регуляторов.

Задача автоматического разбора почтовых адресов кажется довольно простой на первый взгляд — бери да сопоставляй адресному справочнику (например, ФИАСу) слова из входной строки. Но все, кто за неё берутся, утопают в большом количестве особенностей адресов…
Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Comments 19

Большой набор примеров кода расширений для Visual Studio 2013

Reading time 3 min
Views 24K
Команда Visual Studio выпустила агрегированный набор примеров кода Visual Studio 2013 SDK Samples, который содержит множество готовых для использования, тестирования и изучения проектов кода расширяющих возможности среды разработки.



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

Загрузить все примеры кода одним пакетом можно по следующей ссылке.

Build Progress Bar – VS 2013
Пакет для Visual Studio, который предлагает новый инструмент “Build Progress” показывающий индикатор на WPF отображающий прогресс построения решения в среде разработки.

Caret Fish Eye – VS 2013
Расширение, которое визуально масштабирует линии текста кода, уменьшая их в зависимости от удаления от текущего положения указателя.

Code Sweep – VS 2013
Этот пример позволяет пользователю указать набор терминов для поиска указав набор XML-файлов, содержащих определения.
Читать дальше →
Total votes 33: ↑27 and ↓6 +21
Comments 8

ISO-3166 в .NET Framework

Reading time 1 min
Views 6K
В одном из проектов возникла потребность — по названию страны на английском языке получить её двухбуквенный код.
Как известно, двухбуквенные обозначения для стран мира указаны в стандарте ISO 3166-1.
Разочарованием для меня стало то, что в .NET Framework нет прямой поддержки этого стандарта.
Пришлось изобрести свой велосипед.
Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Comments 6

Мануал для установки ESXi и vCenter (novice mode enabled)

Reading time 2 min
Views 67K
Всем привет!

На руках появился лишний сервер и вдруг почему-то очень захотелось создать виртуальную среду=) Большого опыта с виртуализацией у меня нет. С чего начать? Регимся на vmware и скачиваем образ продукта под названием Esxi (vSphere). Download completed! Теперь нужно бы сделать загрузочное устройство. Можно нарезать диск или использовать съемное устройство.
Читать дальше →
Total votes 14: ↑4 and ↓10 -6
Comments 13

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity