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

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

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

[DotNetBook] Реализация IDisposable: правильное использование

Время на прочтение22 мин
Количество просмотров38K
С этой статьей я начинаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом. Тема IDisposable была выбрана в качестве разгона, пробы пера. Вся книга будет доступна на GitHub: DotNetBook. Так что Issues и Pull Requests приветствуются :)

Disposing (Disposable Design Principle)



Сейчас, наверное, практически любой программист, который разрабатывает на платформе .NET, скажет, что ничего проще этого паттерна нет. Что это известный из известнейших шаблонов, которые применяются на платформе. Однако даже в самой простой и известнейшей проблемной области всегда найдется второе дно, а за ним еще ряд скрытых кармашков, в которые вы никогда не заглядывали. Однако, как для тех, кто смотрит тему впервые, так и для всех прочих (просто для того, чтобы каждый из вас вспомнил основы (не пропускайте эти абзацы (я слежу!))) — опишем все от самого начала и до самого конца.

IDisposable



Если спросить, что такое IDisposable, вы наверняка ответите что это

public interface IDisposable 
{
	void Dispose();
} 


Для чего же создан интерфейс? Ведь если у нас есть умный Garbage Collector, который за нас чистит всю память, делает так, чтобы мы вообще не задумывались о том, как чистить память, то становится не совсем понятно, зачем ее вообще чистить. Однако есть нюансы.

Примечание


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




Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии66

Где лучше всего жить и работать разработчику

Время на прочтение7 мин
Количество просмотров71K
Алёна Лазарева, редактор-фрилансер, перевела для блога Нетологии статью Benjamin Martin о городах, в которых разработчиков ждут лучшие зарплаты.



Где лучше всего искать работу разработчику? В Нью-Йорке? Сан-Франциско?

Если судить по уровню заработной платы, Кремниевая долина явный победитель — среднегодовой доход для разработчика там составляет 110 554 $, согласно данным Glassdoor. Но стоимость аренды в области залива Сан-Франциско настолько высока, что не все разработчики могут позволить себе снимать там жильё.
Читать дальше →
Всего голосов 43: ↑38 и ↓5+33
Комментарии170

Бризер TION O2: опыт эксплуатации

Время на прочтение14 мин
Количество просмотров111K
▌Intro
История банальная — моя улочка, некогда тихого и находящегося на окраине парка района, внезапно стала очень оживленной. Там, где раньше можно было смело играть в футбол на проезжей части, нынче каждые несколько секунд проезжает машина, а в час пик так может и пробка образоваться на всю улицу длиной. А где машины, там пыль и шум. В общем, открыть окна в моей рабочей комнате и спальне оказалось решительно нельзя — шумно. А я шум не люблю. Жена так вообще немедленно закрывает окно, не давая даже проветрить. Особенно ситуация усугубилась с установкой пластиковых окон. Если старые деревянные были кривые и косые, что в щели палец сунуть можно, то новые герметичные как в холодильнике.

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

Возникла мысль о организации какой-нибудь более продвинутой вентиляции. Правда пока мысль возникла, пока решил что НАДО, пока собрался и поискал имеющиеся решения… Такие вещи, от идеи до реализации, у меня идут годы…



Но на счастье, как у меня это бывает, если Магомед не идет к горе, то гора сама к нему устремляется вприпрыжку. Постучались мне в почту представители компании TION и сделали предложение, от которого я не смог отказаться — они мне ставят свою вентиляционную систему, а я пишу все, что я о ней думаю. Это они удачно зашли.
Читать дальше →
Всего голосов 55: ↑54 и ↓1+53
Комментарии124

Вы неправильно пишете животных

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


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Всего голосов 442: ↑438 и ↓4+434
Комментарии352

Сага о светодиодных лампах. Часть 3 — как это устроено

Время на прочтение6 мин
Количество просмотров61K
В прошлой статье мы провели небольшое сравнение параметров светодиодных (и не только) ламп, в ходе которого убедились, что почти одинаковые на вид, на цвет и на ощупь лампы могут иметь самые разные характеристики, простирающиеся от «очень хорошо» до «отвратительно», причем даже лампы одного производителя могут показывать самое разное качество. Теперь наступило время посмотреть, что внутри этих ламп и разобраться, что делает хорошие лампы хорошими, а плохие – плохими.

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



Внимание — много фотографий.
Читать дальше →
Всего голосов 52: ↑51 и ↓1+50
Комментарии54

Сага о светодиодных лампах. Часть 2 — о том, чего не пишут на коробках

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


Читать дальше →
Всего голосов 72: ↑71 и ↓1+70
Комментарии165

Сага о светодиодных лампах. Часть 1 — история и терминология

Время на прочтение9 мин
Количество просмотров37K
Этой статьей я хотел бы начать серию публикаций, посвященных приборам, которые человечество применяет для освещения. Как явствует из заголовка, основное внимание планируется уделить светодиодным лампам, их сравнению и рассказу о том, почему одни лампы получаются хорошими, а другие — плохими, сопровождаемому наглядными примерами того и другого. Да-да, все верно — планируются замеры, распиливания и раскручивания. Однако прежде чем начинать что-то мерять и сравнивать, всегда полезно немного погрузиться в историю вопроса и поговорить о том, что же и зачем надо мерять.
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии35

Возможности роутера ZyXEL Keenetic на прошивке второго поколения NDMS v2.00

Время на прочтение10 мин
Количество просмотров527K
Некоторое время назад на сайте ZyXEL в разделе загрузок для интернет-центра Keenetic появилась бета-версия прошивки под названием NDMS 2.0. Приглашение погонять ее получили также зарегистрированно-заинтересованные владельцы обычных «Кинетиков». В аннотации говорится, что это не очередное обновление, а второе поколение программной платформы, кардинально отличающееся от предыдущего и адресованное продвинутым пользователям. Наиболее интересное из заявленного (по сравнению с микропрограммами первого поколения):
  • Полнофункциональный механизм трансляции адресов (Full feature NAT) с поддержкой нескольких внешних IP-адресов; перенаправление портов с возможностью выбора порта назначения в локальной сети; переназначение ролей сетевых интерфейсов.
  • Поддержка множественных PPP-туннелей для доступа в Интернет и подключения к виртуальным частным сетям (VPN).
  • Возможность назначения нескольких дополнительных физических WAN-интерфейсов на порты встроенного коммутатора Ethernet.
  • Резервирование подключения к интернету через USB-модемы 3G/4G и дополнительно назначаемые WAN-интерфейсы.
  • Профессиональный интерфейс настройки через командную строку (Cisco like CLI). Все функции могут быть настроены с командной строки и сохранены в виде текстового файла.
  • Пакетная сборка прошивки «по требованию». Функциональность устройства выбирается пользователем в веб-интерфейсе устройства и прошивается автоматически.
Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Комментарии79

Мульти-WAN без лишней головной боли, или TP-Link TL-R480T+

Время на прочтение4 мин
Количество просмотров139K
На днях, вернувшись с работы, в очередной раз выяснил, что Билайн-инетернет домашний благополучно лежит…
Всё-бы ничего, но сеть нужна была до зарезу, GPRS — ни в коем разе не спасает и вообще…
В принципе — почти год назад подключил QWERTY как дублирующего, благо у них акция была, но настроить на D-Link 320 с Олеговской прошивкой Мульти-WAN так и не удалось, как и на отдельно поставленном компе-роутере: всё банально — авторы «подробных» инструкций вечно считают, что вот их набор провайдеров совершенно универсален и вообще, плюс очепятки, глюки и т.д. и т.п. В итоге при пошаговом следовании инструкции не выходит в лучшем случае ничего, а в худшем — сброс или переустановка системы.
Продолбавшись в эту стену год назад в течении месяца я плюнул и забил: у Бии начался очередной период «просветления» и актуальность вроде-бы отпала…

Ну и вот очередной «заскок»… Гррр…
Повторять наступание на грабли как-то не хотелось, так что был открыт Маркет и начались поиски «жертвы».

image

Читать дальше →
Всего голосов 59: ↑44 и ↓15+29
Комментарии92

Солнечная энергетика: надежда человечества?

Время на прочтение9 мин
Количество просмотров223K
Любят на Хабре солнечную энергетику: вот Гугл строит солнечные электростанции (1 2 3 4 5 6), вот Германия однажды генерировала треть текущего энергопотребления на солнечных электростанциях…

Комментарии делятся на 2 категории: «Вот молодцы, а мы только нефть жгем» и "EROEI! Производство солнечных батарей требует больше энергии чем они производят!".

Въедливый читатель наверняка подумает: Как это производит меньше, чем требуется на производство? Их же поставил — они работают, каши не просят, 10 лет, 50лет, 100лет — значит суммарная произведенная энергия равна бесконечности, и они должны быть выгодны при любой стоимости постройки…

Как обстоит все на самом деле, какие есть подходы к солнечной генерации, что ограничивает КПД солнечных элементов, какие гениальные идеи уже были реализованы и почему солнечная энергетика как-то не активно захватывает мир — под катом.
Читать дальше →
Всего голосов 178: ↑172 и ↓6+166
Комментарии456

Заземление. Что это такое и как его сделать (часть 3)

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


1 часть. Заземление
(общая информация, термины и определения)


2 часть. Традиционные способы строительства заземляющих устройств
(описание, расчёт, монтаж)


3 часть. Современные способы строительства заземляющих устройств
(описание, расчёт, монтаж)



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

Д. Основные способы строительства

Д1. Модульное заземление (для обычных грунтов)

Д1.1. Особенности решения
Д1.1.1. Универсальность и простота применения
Д1.1.2. Долгий срок службы
Д1.1.3. Зависимость уменьшения сопротивления заземления от увеличения глубины электрода
Д1.1.4. Суперкомпактность
Д1.1.5. Никакой сварки
Д1.2. Расчёт получаемого сопротивления заземления
Д1.3. Монтаж
Д1.4. Достоинства и недостатки

Д2. Электролитическое заземление (для вечномёрзлых или каменистых грунтов)

Д2.1. Особенности решения
Д2.1.1. Простота применения в вечномёрзлых или каменистых грунтах
Д2.1.2. Компактность
Д2.1.3. Образование талика
Д2.1.4. Никакой сварки
Д2.2. Расчёт получаемого сопротивления заземления
Д2.3. Монтаж
Д2.4. Достоинства и недостатки


Д. Основные способы строительства

Напомню о достоинствах и недостатках традиционных способов строительства заземлителей, описанных в прошлой части:
Читать дальше →
Всего голосов 86: ↑75 и ↓11+64
Комментарии61

Налоги в США. Часть 1. Введение, income tax, федеральный налог, налог штата, Social Security taxes

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

Введение


Последние месяцы на Хабре мне часто попадаются обсуждения налогов в США. Как правило, это происходит в топиках, где обсуждение по какой-то причине скатилось к вечным темам «у нас все плохо — у них хорошо», «у нас хорошо — у них все плохо», «пора валить отсюда», «Да в США такие налоги, что непонятно, как бедные люди вообще там выживают» и т.п.

В очередной раз наткнувшись на такое обсуждение, я спросил тут же в комментарии и даже задал соответствующий хабравопрос — народ, а может вместо того, чтобы беспорядочно спорить о налогах в США в куче разных топиков, давайте я напишу отдельный подробный пост на эту тему, и там и будем спорить? За этот комментарий и хабравопрос я получил изрядно кармы и хабрасилы, и, собственно, на этом можно было бы и остановиться ибо цель достигнута, муа-ха-ха. Однако, меня уже начинают спрашивать некоторые люди, где же обещанная статья, и судя по всему, отвертеться от написания поста мне не удастся…

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

  • Те, кто о налогах в США знает мало, но хотел бы узнать побольше из первых рук, а так же задать в одном месте все интересующие вопросы и получить ответы всего за 0.99$ за один ответ!
  • Те, кто реально разбирается в предмете (в 90% случаев это люди, работающие и живущие в США). В обсуждениях участвуют обычно короткими репликами, так как вопрос сложный и расписывать все в деталях каждый раз лень и вообще дело неблагодарное.
  • Те, кто о налогах в США знает из разных сомнительных источников, вроде блогпостов диванных аналитиков, но мнение имеет.

Для первых я и решил написать этот пост. От вторых я с благодарностью приму замечания и дополнения. Третьи могут не беспокоиться.

В первой части я напишу про налоги вообще, про федеральный налог и налог штатов и как они вычисляются и про Social Security / Medicare tax.

Во второй части (coming soon) — про годовой цикл налогообложения и различные формы — W-2, W-4, 1040NZ и прочее и прочее.

В третьей части (coming soon) — про процесс подачи Tax Return, про сайты которые помогают заполнять здоровенные формы, про применение налоговых вычетов, и, ГЛАВНОЕ о налогах в США — если есть основания, как можно получить обратно существенную часть удержанных с вас налогов. Поэтому, читая этот пост, держите в голове — большинство людей платит существенно меньшие налоги, чем те, которые я тут вычисляю для примера без учета возможных вычетов.

Поехали.
Читать дальше →
Всего голосов 129: ↑122 и ↓7+115
Комментарии103

Заземление. Что это такое и как его сделать (часть 2)

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


1 часть. Заземление
(общая информация, термины и определения)


2 часть. Традиционные способы строительства заземляющих устройств
(описание, расчёт, монтаж)


3 часть. Современные способы строительства заземляющих устройств
(описание, расчёт, монтаж)



2 часть. Традиционные способы строительства заземляющих устройств (описание, расчёт, монтаж)


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

Г. Основные способы строительства

Г1. Несколько коротких электродов (“уголок и кувалда”)
Г1.1. Особенности решения
Г1.1.1. Промерзание грунта зимой
Г1.1.2. Взаимное “экранирование”/ “затенение” электродов
Г1.2. Расчёт получаемого сопротивления заземления и необходимого количества заземляющих электродов
Г1.3. Монтаж
Г1.4. Достоинства и недостатки
Г1.5. Уменьшение количества электродов
Г2. Одиночный глубинный электрод (“обсадная труба”)
Г2.1. Особенность решения
Г2.2. Расчёт получаемого сопротивления заземления
Г2.3. Монтаж
Г2.4. Достоинства и недостатки


Г. Основные способы строительства


Напомню, в прошлой части я остановился на общем подходе…
Читать дальше →
Всего голосов 65: ↑64 и ↓1+63
Комментарии30

Новая технология для полностью экологичного получения электричества

Время на прочтение12 мин
Количество просмотров25K
Все мы много раз задумывались над тем, откуда берётся то самое электричество, благодаря которому возможна работа твоего компьютера, Интернета, огромного количества всевозможного оборудования, и, конечно, Хабрахабра.

Сейчас у нас есть ТЭЦ, АЭС, ГЭС и довольно большое количество других технологий получения энергии. У большей части из этих технологий есть очень существенные недостатки — это либо значительный вред окружающей среде, либо расход медленно возобновляемых природных ресурсов, либо низкая эффективность. Некоторые технологии кажутся почти идеальными, но только до того момента, пока не знаешь их стоимость.

Но что, если бы у нас появилась возможность найти такой способ получения энергии, который не имел бы всех этих недостатков? И что, если бы он также давал дополнительные преимущества, такие как, например, чистая питьевая вода? И если бы он стоил около ста долларов (около трёх тысяч рублей) на человека и всё необходимое оборудование при этом имело бы очень длительный срок эксплуатации (то есть заплатив единожды $100 можно было бы много лет не задумываться о счетах за электричество и воду), а установить такой комплекс можно было бы в любом месте на Земле?

У нас есть этот способ. И мы скоро будем готовы к производству. Поэтому, если вам интересно, читайте дальше.

(Девочка на картинке неодобрительно смотрит на тех, кто не хочет ничего слышать.)

Фотография

Читать дальше →
Всего голосов 208: ↑145 и ↓63+82
Комментарии247

Обзор зарядного устройства TechnoLine BC-700, или мой опыт восстановления Ni-MH аккумуляторов

Время на прочтение6 мин
Количество просмотров314K
Опыт восстановления Ni-MH аккумуляторов, или обзор зарядного устройства Techno Line BC700

Так случилось, что после двух лет активного увлечения фотографией я немного подзабил на всё это дело. И, вот, спустя год, недельки 3 назад, меня «пробило» на фото. Достал фотоаппарат, аккумуляторы, побежал на радостях фотографировать. Сделал 2 фотки, получил сообщение: «Замените аккумуляторы». «С кем не бывает, захватил случайно разряженный комплект», подумал я. Поставил другой комплект — одна-две фотки и фотоаппарат просит новые батарейки. Так со всеми моими четырьмя парами аккумуляторов. Не въехав в ситуацию, пошел, воткнул их в зарядку, пока читал на ночь хабр, заметил, что от момента установки на зарядку не прошло и пяти минут, а светодиод зарядного устройства уже оповещает о полной зарядке. С этого момента и началась история. Добро пожаловать под кат!
Читать дальше →
Всего голосов 133: ↑125 и ↓8+117
Комментарии188

Как унизительно делать работу скрипта

Время на прочтение2 мин
Количество просмотров68K
Время от времени на меня что-то находит и я считаю, что «Человек — это звучит гордо!». Потом я возвращаюсь в суровую реальность, которая доказывает, что нифига подобного.

Затеяло как-то моё государство (Украина) менять такую штуку как КВЭД. Необходимость замены понятна — со временем появляются новые виды деятельности, существующие делятся на подгруппы или объединяются и т.д. Надо обновить — значит надо. Есть однозначное соответствие старых и новых КВЭДов. Есть закон, по которому все должны перейти на новые КВЭДы до 2013 года.

Давайте подумаем, как это по-хорошему должно было бы произойти.
Читать дальше →
Всего голосов 116: ↑108 и ↓8+100
Комментарии185

Разрегистрация оконного крюка

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

Холмс. А скажите, друг мой Ватсон, доводилось ли вам разрегистрировать оконный крюк, в особенности глобальный?

Ватсон. Хм… что же может быть проще, дорогой Холмс.
    ::UnhookWindowsHookEx( hhookMy);

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

В. Вот, ничего себе!
Читать дальше →
Всего голосов 129: ↑110 и ↓19+91
Комментарии61

Вход в систему по подключению определенной флешки

Время на прочтение9 мин
Количество просмотров39K
Одним ужасным пятничным вечером мне стало интересно как реализован вход в систему(Windows 7) по отпечатку пальца, так часто использующийся на ноутбуках. Что меня большего всего интересовало – как сделана такая прозрачная интеграция с WinLogon(механизм входа в систему).

С помощью знакомого я узнал что сие называется Credential Provider(по крайней мере начиная с Vista, до неё – был другой механизм). И тут-то я вспомнил что давно хотел сделать чтобы система разблокировалась при подключении одной определенной флешки. Поэтому я захотел быстренько наваять такой проект.
читать дальше
Всего голосов 147: ↑135 и ↓12+123
Комментарии63

Про поддержку «USB Mass Storage» в Ice Cream Sandwich

Время на прочтение5 мин
Количество просмотров77K
Из ранних обзоров девайсов (а именно Galaxy Nexus) на новой версии Андроида 4.0 (он же ICS, он же «мороженный бутерброд») выяснилось, что они не поддерживают такую замечательную фишку, как USB Mass Storage, т.е. использование телефона как флешки, без дополнительных ухищрений. Пользователи андроид-аппаратов, вплоть до версии 3.0 «Honeycomb» (а, как оказалось, изменения произошли именно в этой версии) знают, что чтобы перекинуть файлы на телефон или с него, достаточно было просто воткнуть его в компьютер без связи с тем какая операционная система или софт на нем установлены. Логично, что новости об исчезновении этой опции в новых версиях не вызвали энтузиазма среди пользователей андроида, и даже заставили многих задуматься о наличии некой проблемы или недоработки. К счастью, один их инженеров Google Дан Морилл (Dan Morrill) в комментариях к гневному посту в reddit, прояснил ситуацию, подробно объяснив о том, что, собственно произошло, и почему. По моему это очень любопытно, так что ниже перевожу перевод его комментариев.

Читать дальше →
Всего голосов 79: ↑70 и ↓9+61
Комментарии150

Как работает инжектор?

Время на прочтение10 мин
Количество просмотров185K
В заметке пойдет речь о работе «мозгов», управляющих двигателем вашего автомобиля или мотоцикла. Попытаюсь на пальцах и в общем объяснить что же и как происходит.

Чем занимаются те самые «мозги» и для чего они нужны? Электроника — альтернатива другим системам, выполняющим те же функции. Дозированием топлива занимался карбюратор, зажиганием управлял механический или вакуумный корректор угла опережения зажигания. В общем не электроникой единой возможно реализовать все это и достаточно продолжительное время именно так и было. На автомобилях, мотоциклах, бензопилах, бензогенераторах и во многих многих других местах работали и продолжают работать те самые системы, которые призван заменить инжектор.
Зачем же понадобилось что-то менять? Зачем сносить существующие проверенные и весьма надежные системы? Все просто — гонка за экономичностью, экологичностью и мощностью. Точность работы описанных выше систем недостаточна для обеспечения желаемого уровня экологичности и мощности, а сами по себе электронные системы управления двигателем начали появляться достаточно давно.
Читать дальше →
Всего голосов 200: ↑184 и ↓16+168
Комментарии101

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность