Как стать автором
Обновить
10
0
Andrey Ostapenko @2king2

Пользователь

Отправить сообщение

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

Время на прочтение8 мин
Количество просмотров33K

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


[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) работает, и, поэтому, могут сделать осознанный выбор.

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


Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии27

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

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

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

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

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

Время на прочтение11 мин
Количество просмотров222K

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


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


image

Читать дальше →
Всего голосов 219: ↑216 и ↓3+213
Комментарии163

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

Время на прочтение2 мин
Количество просмотров126K


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

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

Время на прочтение13 мин
Количество просмотров34K
В офф-топик внесены изменения

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

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


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



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

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

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

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

О последнем пункте и пойдет речь.
Читать дальше →
Всего голосов 142: ↑109 и ↓33+76
Комментарии148

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

Время на прочтение2 мин
Количество просмотров31K


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

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

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

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

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

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

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

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



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


Читать дальше →
Всего голосов 64: ↑51 и ↓13+38
Комментарии50

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

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

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

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

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

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

Из недавнего


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

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

Ниже я расскажу что, как и почему.
Читать дальше →
Всего голосов 137: ↑105 и ↓32+73
Комментарии43

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

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

image
Читать дальше →
Всего голосов 54: ↑45 и ↓9+36
Комментарии74

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

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

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

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

Время на прочтение3 мин
Количество просмотров43K
Программу можно защищать как полезную модель (систему) и как способ.

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

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

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

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

И что же них такого деформированного?
Всего голосов 461: ↑436 и ↓25+411
Комментарии558

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

Время на прочтение4 мин
Количество просмотров99K
Здравствуйте!

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

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

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

Время на прочтение8 мин
Количество просмотров19K

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

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

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

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

Время на прочтение3 мин
Количество просмотров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-файлов, содержащих определения.
Читать дальше →
Всего голосов 33: ↑27 и ↓6+21
Комментарии8

ISO-3166 в .NET Framework

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

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

Время на прочтение2 мин
Количество просмотров67K
Всем привет!

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность