Как стать автором
Обновить
4
0

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

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

String.Intern делает строки ещё интереснее

Время на прочтение10 мин
Количество просмотров70K
Предисловие от переводчика:

Проходя/проводя собеседования, приходится сталкиваться с вопросами, которые раскрывают общее понимание работы .NET. По моему мнению, наибольшей любовью среди таких вопросов пользуются вопросы о работе “сборщика мусора”, но однажды мне был задан вопрос о интернировании строк. И он, честно говоря, поставил меня в тупик. Поиск в рунете выдал несколько статей, но они не давали ответы на те вопросы, которые я искал. Надеюсь мой перевод статьи Эндрю Стеллмана (автора книги “Head First C#”) заполнит этот пробел. Думаю, этот материал будет полезен для начинающих .NET разработчиков и тем кому стало интересно, что же такое интернирование строк в .NET.

String.Intern делает строки ещё интереснее


Одна из первых вещей, с которой сталкивается каждый начинающий C# разработчик — это работа со строками. Я показываю основу работы со строками в начале «Head First C#», как поступают практически в любой другой книге по C#. Так что не следует удивляться, что C# разработчики уровня джуниор и мидл уровня чувствуют, что они получили довольно хорошую базу по строкам. Но строки интереснее, чем кажутся. Одним из самых интересных аспектов строк в C# и .NET является метод String.Intern. Понимание работы этого метода может улучшить ваши навыки в C# разработке. В этом посте, я сделаю краткий туториал для метода String.Intern, чтобы показать вам как он работает.

Примечание: В конце этого поста я собираюсь показать кое-что «под капотом», используя ILDasm. Если вы никогда не работали с ILDasm раньше, это будет хорошей возможностью что-бы познакомиться с очень полезным инструментом .NET.
Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии16

Noisli: онлайн-генератор фоновых шумов, помогающих сконцентрироваться

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


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

Сайт Noisli содержит коллекцию фоновых шумов на любой вкус и возможность смешивать их в произвольной пропорции. Здесь есть и звуки природы — шум дождя, плеск воды, пение птиц, шуршание листьев, и звуки техногенного характера — стук колёс поезда, звук работающего вентилятора, и звуки многолюдного кафе. Есть и искусственные белый, розовый и коричневый шум. Коллекция звуков постоянно пополняется.
Читать дальше →
Всего голосов 108: ↑103 и ↓5+98
Комментарии64

Обмануть Мигеля?

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

Как-то раз Мигель…
(Хотя нет, история не совсем о нем, попробую начать иначе)
Однажды в мире Open Source…
(Тоже мимо, OSS в истории затронуто лишь частично)
Когда жажду наживы называют здравым смыслом, начинается обман.
(Почти афоризм)

Предыстория

Стукнуло мне в голову написать программу под Мак на C#. Я поблагодарил Мигеля де Икасу за отличный Open Source проект Mono, воздал хвалу за его же библиотеку MonoMac, чуть ругнулся на сыроватый MonoDevelop и принялся за работу. Через некое время был оплачен аккаунт в AppStore, программа была в шаге от завершения, когда начался большой проект по основной работе и ее пришлось отложить. И вот через год пришло сообщение, что пустующий аккаунт в AppStore будет закрыт через 30 дней — это был знак, что надо что-то делать. MonoDevelop, обновившийся сам до Xamarin Studio, предложил сразу проект MonoMac преобразовать в Xamarin.Mac и повел меня на сайт, где было предложено купить этот самый Xamarin.Mac всего за $999, иначе деплоймент в AppStore будет невозможен.
Читать дальше →
Всего голосов 122: ↑105 и ↓17+88
Комментарии50

За что конкретно я ненавижу некоторых отдельно взятых маркетологов — или как айтишник по магазинам ходил

Время на прочтение5 мин
Количество просмотров615K
Знакомьтесь, это обычный «литровый» пакет молока:

image

  • Проверка на внимательность: там 900 грамм. Рядом несколько по 950. Но пакет может быть воспринят как литровый.
  • Проверка на знание физики. Рядом лежит похожий кефир. Объём измеряется в миллилитрах, масса — в граммах. Плотность кефира трагически выше плотности воды. То есть 900 грамм кефира 3,2% жирности — это примерно 874,5 миллилитров.

Второй пациент:



25 лет гарантии. Круто, правда? Есть одна проблема. Надо сохранять чек. Проверка, опять же, на знание физики. Чек у них печатается на обычной кассовой термоленте (я проверил на месте). У меня в офисе лежит много чеков. Мы их ксерокопируем, потому что через год-два они полностью выцветают. Самый старый чек, который видел коллега, держался 3 года в папке в архиве. UPD: смотрите самый низ топика, Икея ответила.

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

Осторожно, трафик: под катом много находок с фотографиями.
Читать дальше →
Всего голосов 814: ↑769 и ↓45+724
Комментарии778

Крупнейшая афера с Bitcoin происходит прямо сейчас

Время на прочтение8 мин
Количество просмотров309K
Одна из крупнейших афер в истории сети Bitcoin происходит прямо сейчас. 96000 BTC, а это почти сто миллионов долларов, по состоянию на текущий момент, было выведено со счетов клиентов, поставщиков и администраторов сайта SheepMarketplace (SMP) в минувшие выходные. SMP был одной из главных площадок, пришедших на замену SilkRoad, который был закрыт в октябре, а теперь, в результате этой аферы закрыт и сам SMP. Пока трудно точно утверждать, что именно происходит, но пользователи сайта пытаются разгадать эту головоломку на популярном сайте reddit.com в саб-реддите r/sheepmarketplace.

image

Вот что известно на данный момент: злоумышленнику (одиночке или группе людей) удалось подделать остатки средств на счетах пользователей, показывая, что у них были биткоины в собственных кошельках на сайте, в то время как на самом деле они уже были переведены. В течение недели весь сайт планомерно опустошался, так что к выходным, когда администрация сайта поняла, что что-то происходит, и закрыла площадку, со счетов пользователей было списано гигантское количество средств. И всё это произошло всего через несколько дней после того как другой конкурент SilkRoad — Black Market Reloaded — объявил, что завершает работу из-за неспособности вместить массовый приток новых пользователей, покидающих SheepMarketplace.
Читать дальше →
Всего голосов 293: ↑268 и ↓25+243
Комментарии298

Предельная производительность: C#

Время на прочтение56 мин
Количество просмотров263K
performanceЯ поделюсь 30 практиками для достижения максимальной производительности приложений, которые этого требуют. Затем, я расскажу, как применил их для коммерческого продукта и добился небывалых результатов!
Приложение было написано на C# для платформы Windows, работающее с Microsoft SQL Server. Никаких профайлеров – содержание основывается на понимании работы различных технологий, поэтому многие топики пригодятся для других платформ и языков программирования.
Читать дальше →
Всего голосов 135: ↑90 и ↓45+45
Комментарии289

Хабрахабр попал в реестр запрещенных сайтов

Время на прочтение1 мин
Количество просмотров126K
9 октября Роспотребнадзор внес Хабрахабр в реестр запрещенных сайтов, сообщает «Роскомсвобода».



Решение было принято из-за комментария к статье «Роскомнадзор и ЛБИ разработали критерии оценки запрещенной информации в интернете о самоубийствах», в котором хабравчанин shara цитировал ироничную запись о способе самоубийства. Там же приводились ссылки на ЖЖ, «ВКонтакте», «Ответы@ Mail.Ru» и другие ресурсы, где был доступен текст этой записи. Сам комментарий уже удален, его автор находится в «read-only».
Читать дальше →
Всего голосов 374: ↑351 и ↓23+328
Комментарии693

Загружаем данные в Oracle

Время на прочтение14 мин
Количество просмотров93K
В своей предыдущей статье я показал, что при использовании асинхронных запросов, скорость опроса устройств по протоколу SNMP может достигать 9000 запросов в секунду (при условии, что у нас есть достаточное количество устройств для формирования такого потока ответов). Вопрос о том, что делать с этим потоком данных остался открытым.

Обычной практикой является обработка данных мониторинга посредством RDBMS (таких как Oracle Database). Но способны ли традиционные реляционные базы данных справиться с такой нагрузкой? Попробуем в этом разобраться.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии136

Добавляем безопасности браузеру Firefox

Время на прочтение5 мин
Количество просмотров71K
image

В современном Интернете мы всё чаще сталкиваемся с различными опасностями, исходящими с Web-страниц. Уязвимые плагины, XSS на сайтах, эксплуатирование уязвимостей с помощью JavaScript, Clickjacking — и это далеко не полный список радостей жизни, которые могут встретиться на сайтах.

Даже если у Вас Linux или Mac OS X, нельзя быть полностью спокойными — в таком случае гадость просто не выйдет за пределы браузера, а вот cookies или LocalStorage извлечь вредоносный код вполне в состоянии. Также мощности компьютера могут быть использованы в совершенно неожиданных целях, вплоть до майнинга биткойнов на компьютере жертвы.

Так что защищать браузер необходимо не только снаружи, но и изнутри. Для этого нужно посмотреть на соответствующие расширения, чему и посвящён этот пост. Также здесь будут рассмотрены некоторые вопросы приватности (но не анонимности!), чтобы вы могли защититься от следящих компаний.
Читать дальше →
Всего голосов 52: ↑41 и ↓11+30
Комментарии65

Опубликованы профессиональные стандарты РФ для программистов, админов БД и других профессий

Время на прочтение1 мин
Количество просмотров89K
В рамках федеральной программы, инициированной указом президента РФ №597 от 7 мая 2012 г., ведётся разработка новых профессиональных стандартов в области ИТ. На днях опубликованы черновики профстандартов админа БД, программиста, руководителя проектов в области информационных технологий, руководителя разработки программного обеспечения и т.д.

11-13 сентября 2013 года пройдут открытые вебинары с подробным обсуждением первой версии каждого из разрабатываемых профессиональных стандартов.
Читать дальше →
Всего голосов 86: ↑77 и ↓9+68
Комментарии132

Создание своего домашнего игрового искусственного интеллекта

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

Детские мечты или Pack-Man своими руками


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

Свою игру, а точнее игровой искусственный интеллект (ИИ) сделать желание было очень давно. Не буду кривить душой: сначала банально не хватало знаний, потом как ни странно времени. У меня было несколько недель относительно свободного времени, что бы реализовать мечту своего детства.

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


Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии12

Как я наказал Firaxis или история о том, как перебрать бинарный движок через глушитель

Время на прочтение6 мин
Количество просмотров114K
image

Речь пойдёт о далёком 2005 году, когда только-только вышла Civilization4 от Sid Meier. К тому времени я плотно висел в Civilization3, прошёл её раз дцать на самых разных картах, и тут вышла долгожданная четвёрка. Это были годы P3-512Mb для mid-end и P4-1Gb в hi-end. Только топовые конфиги в те годы имели два гига памяти на борту.

Civilization 4 вышла с графикой уровня года 2002-2003го, что в принципе нормально для мэинстрима тех времён, особенно учитывая что это пошаговая стратегия, а не шутер. Но жрала с течением игры до 900Mb оперативки, что приводило к жуткому свопу, особенно на больших картах, особенно к концу игры, особенно на ноутбуках. Народ недоумевал, я тоже. Учитывая, что в те же годы вышел Far Cry с куда более красивой графикой, и который вполне игрался на максимуме даже с 512Mb на борту, такое поведение Civilization 4 выглядело крайне странным. Захотелось разобраться и покарать…
Читать дальше →
Всего голосов 551: ↑547 и ↓4+543
Комментарии177

Мозг программиста

Время на прочтение6 мин
Количество просмотров61K
Спасибо за статью habrahabr.ru/post/191210! Хорошую тему подняли.

Поделюсь и своим опытом. Ниже — идентичное содержание и первой, и заключительной лекции в программе подготовки стажеров.

В программировании, помимо ЭВМ, методик и софта с разных сторон, есть еще такой ключевой элемент, как программист.

Почему он самый главный? Потому что, как знают многие, большую часть решений можно создать без ЭВМ, без методик и без софта – карандашом на бумаге или вовсе в воображении. А без программиста создать программу нельзя. Потому что он, программист, как раз программу и создает.

О программисте, как о решающем факторе, и о его мозге, как об основном инструменте, мы сейчас поговорим.
Читать дальше →
Всего голосов 68: ↑52 и ↓16+36
Комментарии11

Знай сложности алгоритмов

Время на прочтение2 мин
Количество просмотров1M
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Всего голосов 312: ↑296 и ↓16+280
Комментарии99

Вода горит! А также ЭГЭ и волны-убийцы

Время на прочтение14 мин
Количество просмотров197K
Водяная спичка — устройство для поджигания воды и проведения интересных опытов с взрывами.
Это конечно не термоядерный взрыв, но что водородный, это точно! Опыт безопасен, так как водород сгорает мгновенно, без накопления опасных объемов.
Предполагаю, что подобная буря в стакане, в масштабах планеты является источником возникновения интересных явлений — волн-убийц и цунами неизвестного происхождения, которые появляются буквально из ниоткуда, обрушиваются на судно и так же бесследно исчезают. На данный момент отсутствует внятное объяснение причин возникновения таких волн.

Возможно, все происходит так…


Анимация “Водяной”

При попадании молнии на поверхность Мирового океана, происходит водородный взрыв, а при удачном сочетании глубины воды и рельефа дна, направления удара и величины напряжения, продолжительности импульса и длительности его фронта — формируется огромная одиночная волна в результате импульсного электролиза поверхностного слоя воды, рассматриваемого в этой статье. Не последнюю роль в явлении играет резонанс.
В районе Бермудского треугольника эти условия выполняются наиболее часто, поэтому он получил свою печальную известность.
Примерно одна миллионная из 250 миллионов молний, ежегодно бьющих по поверхности Мирового океана, рождает супер-волну.
Белая волна — насыщенная газами вода, в которую попадают экипажи низколетящих летательных аппаратов, не является вымыслом и она присутствует в опытах. Вписывается в эту теорию и возникающий при ударе молнии электромагнитный импульс (ЭМИ), выводящий из строя навигационное оборудование.
В отличие от других экзотических способов поджигания воды, рассматриваемый вариант прост и имеет 100% повторяемость. Опыт показывает огромную скорость и производительность электролиза воды при коротком импульсном воздействии, а также позволяет безопасно исследовать электрогидравлический эффект и молнию в лабораторных условиях. Прибор можно использовать для изучения условий формирования блуждающих волн. В дальнейшем станет реальностью создание автоматических устройств, которые сгенерируют встречную волну для гашения разрушительных цунами и волн-убийц в охраняемых прибрежных зонах.

Предположение проверено и подтверждено на небольшом макете. GIF-анимация “Водяной” — формы волн: “одиночная башня”, “белая стена”, а также чудо-юдо с глазами и другие красивые элементы из воды, полученные при начальном для возникновения эффекта напряжении 145 вольт, показаны в тексте выше.
Любой желающий может повторить опыт и проверить предположение.
Читать дальше →
Всего голосов 152: ↑138 и ↓14+124
Комментарии92

Техника для проверки подлинности денег

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

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

Рассмотрим подробно, как защищены современные валюты, как происходит проверка подлинности (валидация) и что за аппаратура для этого применяется.
Читать дальше →
Всего голосов 362: ↑361 и ↓1+360
Комментарии143

Очередной «успех» российской космонавтики

Время на прочтение1 мин
Количество просмотров64K
UPD
«Неудачный запуск ракеты „Протон-М“ This video is no longer available due to a copyright claim by All-Russian State Television and Radio Broadcasting Company.



Неудачный запуск ракеты „Протон-М“. Взрыв ракеты Протон-М. Космодром „Байконур“ (02.07.2013).
2 июля 2013 — На космодроме „Байконур“ (Казахстан), ракета-носитель „Протон-М“ с разгонным блоком ДМ-03 и тремя российскими навигационными космическими аппаратами „Глонасс-М“ при запуске взорвалась в прямом эфире в 06:38 Мск. Ракета „Протон-М“ должна была вывести на орбиту три навигационных спутника „Глонасс-М“.
Читать дальше →
Всего голосов 267: ↑157 и ↓110+47
Комментарии399

Как работает «Освободитель» (Да-да, мы напечатали пистолет)

Время на прочтение3 мин
Количество просмотров231K
image
Есть 3д-принтер, есть чертежи. Что еще надо для того, чтобы напечатать пистолет?

Я не особенно разбираюсь в оружии, поэтому могу бессовестно лажать с описанием и названием некоторых частей. Исправления приветствуются. Так же в комментариях приветствуется срач, треш, угар, содомия, теории заговора, мнения «теперь все будут печатать пистолет и меня убьют» и «теперь я напечатаю пистолет и не буду бояться гопников в бутово».
Не приветствуются вопросы «стреляет ли он?» — я сам не пробовал и вообще, читайте дисклеймер в конце статьи.
Читать дальше →
Всего голосов 350: ↑308 и ↓42+266
Комментарии282

Пилим Adblock

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


Стратегия


Итак, Адблок… Но здесь я буду говорить не столько о блокировке рекламы, сколько об оптимизации и правильном использовании этого интересного своей универсальностью дополнения. Не отношусь к тем, кого раздражает сама реклама — меня раздражает способ ее доставки.
Читать дальше →
Всего голосов 61: ↑50 и ↓11+39
Комментарии64

БД Oracle для программиста

Время на прочтение9 мин
Количество просмотров96K
Нужно ли программисту прикладных приложений понимать как работает БД? Том Кайт, признанный специалист Oracle, автор знаменитой колонки asktom, в своей книге «Oracle для профессионалов. Архитектура и основные особенности.» настаивает, что это просто необходимо. Даже если в вашей команде есть грамотный администратор, знание того, как работает СУБД Oracle поможет вам лучше понимать друг друга и эффективней взаимодействовать, не говоря уже о случае, когда такого специалиста у вас нет. В данном топике я упомяну об основных вещах, понимание которых позволит грамотно работать с БД Oracle и использовать некоторые её особенности с большой отдачей для вашего приложения. Если же вы уже прочитали вышеупомянутую книгу Тома Кайта, то можете просто исползовать эту статью в качестве памятки. Одно замечание — книжку я читал давно, и тогда еще последней версией БД Oracle была 9i, курсы по администрированию я тоже проходил по девятке, так что, если в десятке и выше что-то поменялось и добавилось, то не обессудьте. Хотя я пишу о довольно фундаментальных вещах, которые вряд ли сильно поменяись.
Читать дальше →
Всего голосов 60: ↑51 и ↓9+42
Комментарии27

Информация

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

Специализация

Fullstack Developer, Software Architect
Lead
Oracle
Oracle PL/SQL
C#
WPF
XAML
.NET