Pull to refresh
60
0
Яков @XaBoK

Enterprise Architect

Send message

Правостороннее присваивание и другие необычные приёмы программирования в C#

Reading time7 min
Views28K
В этой статье будут рассмотрены с нового ракурса такие привычные и фундаментальные вещи, как присваивание и передача параметров в методы.

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

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

За дело!

image
Читать дальше →
Total votes 45: ↑39 and ↓6+33
Comments369

Сегодня день толстой полярной лисички розницы — ошибка касс Штрих-М по всей стране

Reading time5 min
Views72K

А я было думал, что больше никогда не увижу ком-9 нуль-модем

В час ночи по Москве во Владивостоке отказали кассы. Не только у нас, а по всему городу. Похоже, все модели Штрих-М, которые стоят много у кого в сетевой рознице. В два часа ночи по Москве бага перепрыгнула в соседний часовой пояс. В три часа ночи — в следующий. К утру накрыло и Москву.

Штрих-М стоят, например, по данным РБК, в Пятёрочках, в Магнитах, в Магнолии, на заправках Газпрома и Роснефти. И у нас.

Работать без кассы нельзя. Это нарушение закона. Та же Магнолия около нашего офиса вообще сегодня, как мы увидели, закрылась. Некоторые небольшие сети по всей стране тоже не открывали магазины.
Читать дальше →
Total votes 192: ↑192 and ↓0+192
Comments262

Деловая переписка на английском языке: фразы и советы

Reading time18 min
Views616K
Елена Соловьева, менеджер проектов в компании Лаборатория Касперского, специально для блога Нетологии поделилась советами о том, как вести деловую переписку с иностранными коллегами и партнерами на английском языке. Статья участвует в конкурсе.

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

Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
Читать дальше →
Total votes 104: ↑100 and ↓4+96
Comments80

Типичные распределения вероятности: шпаргалка data scientist-а

Reading time11 min
Views132K

У data scientist-ов сотни распределений вероятности на любой вкус. С чего начать?


Data science, чем бы она там не была – та ещё штука. От какого-нибудь гуру на ваших сходках или хакатонах можно услышать:«Data scientist разбирается в статистике лучше, чем любой программист». Прикладные математики так мстят за то, что статистика уже не так на слуху, как в золотые 20е. У них даже по этому поводу есть своя несмешная диаграмма Венна. И вот, значит, внезапно вы, программист, оказываетесь совершенно не у дел в беседе о доверительных интервалах, вместо того, чтобы привычно ворчать на аналитиков, которые никогда не слышали о проекте Apache Bikeshed, чтобы распределённо форматировать комментарии. Для такой ситуации, чтобы быть в струе и снова стать душой компании – вам нужен экспресс-курс по статистике. Может, не достаточно глубокий, чтобы вы всё понимали, но вполне достаточный, чтобы так могло показаться на первый взгляд.
Читать дальше →
Total votes 86: ↑85 and ↓1+84
Comments28

Шаблоны проектирования с человеческим лицом

Reading time32 min
Views510K

image


Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.


Как сказано в Википедии:


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

image Будьте осторожны


  • Шаблоны проектирования — не «серебряная пуля».
  • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
  • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

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

Читать дальше →
Total votes 148: ↑134 and ↓14+120
Comments98

Опыт кастомного анализа c# кода

Reading time6 min
Views9.8K
Довольно давно я делился проблемой тестирования кода в финализаторе и недавно жаловался на падение теста (Как тестировать код финализатора (c#) и Как тестировать код финализатора (c#). Послесловие: тест все-таки упал).
В ходе обсуждения комрадом withkittens была высказана идея:
Финализатор (при правильной реализации IDisposable pattern) должен (should) вызывать Dispose(false). Этот факт можно тестировать статическим анализом. Соответственно, если Dispose(false) вызывает удаление файла (вы же написали тест?), то можно быть уверенным, что и финализатор тоже вызовет удаление файла, unit-тест излишен.

Мне эта идея показалась очень здравой, кроме того, иногда хочется контролировать исходный код более кастомно, чем дает встроенный анализ кода или решарпер.
Опыт реализации кастомных правил анализа кода под катом + «как ozcode помог в процессе исследования внешней библиотеки»
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments25

Коаны о программировании

Reading time4 min
Views36K
От переводчика: The Codeless Code — сборник побасенок о философии программирования. Побасенки в сборнике разные — некоторые весьма кровожадные, некоторые достаточно хардкорные с технической точки зрения (родной язык автора — Java), но встречаются очень емкие. Представляю вам перевод семи наиболее полюбившихся мне историй, остальные 30+ (новые добавляются каждую неделю) можно найти на сайте.

Пустяк


Три дня и три ночи мастер не появлялся из своей кельи. На четвертый день монахи отправили послушника проведать его.

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

Мастер ответил: «Здесь есть изъян, и я размышляю, как лучше его исправить.»
Читать дальше →
Total votes 253: ↑240 and ↓13+227
Comments74

Рекомендации по написанию кода на C# от Aviva Solutions

Reading time40 min
Views81K
Представляю вашему вниманию перевод документа "Coding Guidelines for C# 3.0, 4.0 and 5.0".

Целью создания этого списка правил является попытка установить стандарты написания кода на C#, которые были бы удобными и практичными одновременно. Само собой, мы практикуем то, что создали. Эти правила являются одним из тех стандартов, которые лежат в основе нашей ежедневной работы в AvivaSolutions. Не все эти правила имеют четкое обоснование. Некоторые из них просто приняты у нас в качестве стандартов.

Статический анализатор кода VisualStudio (который также известен как FxComp) и StyleCop могут автоматически применять многие из правил кодирования и оформления путем анализа скомпилированных сборок. Вы можете сконфигурировать их таким образом, чтобы анализ производился во время компиляции или был неотъемлемой частью непрерывной или ежедневной сборки. Этот документ просто добавляет дополнительные правила и рекомендации, но его вспомогательный сайт www.csharpcodingguidelines.com предоставляет список правил анализа кода, необходимых в зависимости от того, с какой базой кода вы работаете.
Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments36

Математика в природе

Reading time1 min
Views1.6K
Молодая девушка Nikki Graziano увлекаясь математикой и фотографией делает вот такие интересные работы:

image

Вот так вот всё прекрасное можно описать парочкой формул. Девушке пока 21, думаю через пару лет она будет описывать не только кривые =)
Ещё несколько работ.
Total votes 260: ↑216 and ↓44+172
Comments118

Wi-Fi сети: проникновение и защита. 3) WPA. OpenCL/CUDA. Статистика подбора

Reading time24 min
Views362K


Баста карапузики, кончилися танцы.

В предыдущей части мы детально рассмотрели «читерские» приёмы обхода «защит» (скрытие SSID, MAC-фильтрация) и защит (WPS) беспроводных сетей. И хотя работает это в половине случаев, а иногда и чаще — когда-то игры заканчиваются и приходится браться за тяжёлую артиллерию. Вот тут-то между вашей личной жизнью и взломщиком и оказывается самое слабое звено: пароль от WPA-сети.

В статье будет показан перехват рукопожатия клиент-точка доступа, перебор паролей как с помощью ЦП, так и ГП, а кроме этого — сводная статистика по скоростям на обычных одиночных системах, кластерах EC2 и данные по разным типам современных GPU. Почти все они подкреплены моими собственным опытом.

К концу статьи вы поймёте, почему ленивый 20-значный пароль из букв a-z на пару солнц более стоек, чем зубодробительный 8-значный, даже использующий все 256 значений диапазона.

Оглавление:
1) Матчасть
2) Kali. Скрытие SSID. MAC-фильтрация. WPS
3) WPA. OpenCL/CUDA. Статистика подбора
По традиции, под катом ещё 15 страниц
Total votes 168: ↑167 and ↓1+166
Comments57

Аспектно-ориентированное программирование: изучи и сделай сам!

Reading time17 min
Views58K
Статья родилась из того, что мне потребовался удобный и простой механизм перехвата для некоторых задач, который легко реализуется техниками АОП. Существует довольно много перехватчиков (Casle.net, Spring.net, LinFu и т.д.), требующих внедрять динамические дочерние классы в IL-код во время исполнения и приводящих практически всегда к одним и тем же ограничениям, накладываемым на перехватываемые классы: не статические, не запечатанные, методы и свойства должны быть виртуальными и т.д…

Другие механизмы перехвата требовали изменения процесс сборки или покупки лицензии. Ни то ни другое я себе позволить не мог…
а дальше было...
Total votes 33: ↑33 and ↓0+33
Comments8

Клуб анонимных Дедов Морозов 2013 — 2014

Reading time2 min
Views78K

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

Что, вы тоже, нося очки, свитер и имея выход в Интернет, еще «не в теме»? Ооо, ну тогда бросайте все дела и продолжайте читать дальше!
Читать дальше →
Total votes 148: ↑139 and ↓9+130
Comments551

Прекратите скручивать (восклицательный знак)

Reading time6 min
Views1.7M
Ну действительно, прекратите. Есть куча прикольных штук для соединения самых разнообразных проводов, а все равно технология «откусить зубами изоляцию, скрутить, замотать изолентой» жива до сих пор.

Дальше много текста, фотографий, разборок. Ну все как обычно
Total votes 682: ↑667 and ↓15+652
Comments360

О сортировке контента на основе оценок пользователей

Reading time4 min
Views17K
Написать этот пост меня привлекла эта статья. Многие ее помнят по вот этой картинке.
image
Статья затрагивает правильную тему, однако с точки зрения математики и здравого смысла она в корне не верна.
Читать дальше →
Total votes 133: ↑117 and ↓16+101
Comments62

Обзор инструментов для визуального сравнения и разрешения конфликтов слияния

Reading time6 min
Views139K
На хабре уже было много статей о распределенных системах управления версиями (DVCS), их сравнений, а также сравнений GUI-клиентов для них. Также были обсуждения плагинов к IDE для работы с git и mercurial. Но практически не было информации об инструментах визуального сравнения и разрешения конфликтов слияния.

diff and merge
Недавно я «перескочил» с mercurial (который до сих пор считаю более удобным и логичным) на git, потому что, подавляющее большинство проектов, которые мне интересны, используют git и хостятся на github. В связи с этим, встал вопрос о пересмотре арсенала инструментов, в частности вопрос выбора инструмента визуального сравнения и слияния (diff and merge). Дабы восполнить недостаток информации на хабре, я решил написать этот мини-обзор. Как говориться — по горячим следам.

Под катом Вы также найдете примеры настроек Git для использования с DiffMerge и WinMerge под Windows. Думаю многим сэкономит время.
Читать дальше →
Total votes 53: ↑46 and ↓7+39
Comments45

Скрытые послания в музыке

Reading time7 min
Views74K


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

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

Бэкмаскинг


Потенциал подобной техники увидел ещё изобретатель фонографа Томас Эдисон, а впервые ею воспользовались пионеры электронной музыки в 50-ых годах прошлого века, хотя, конечно, популяризации приемов бэкмаскинга мы обязаны группе Beatles. В частности, под воздействием марихуаны Леннон прокручивал пленки задом наперед, и полученный звук его очень заинтересовал. Первой песней со скрытым сообщением была Rain.
Читать дальше →
Total votes 163: ↑156 and ↓7+149
Comments42

CS Source кратко о создании чита All in One

Reading time16 min
Views39K
Добрый день.

Решил поделиться, с Вами, своим небольшим опытом создании чита для Counter-Strike Source v34. Данное приложение было написано исключительно ради спортивного интереса(служит, исключительно, для ознакомления), так как в годы своей юности (изрядно убил времени за этой игрой :() всегда интересовало как же устроены эти программы, хотя теоретически знал как они работают. И вот спустя пол десятка лет (в 2010 году), после игры с коллегами в канун одного из праздников я опять вспомнил о своем давнем *интересе*…

Думаю с прелюдиями стоит закончить, скучно это, переходим к практике.
Будет много кода.
Полных исходников выкладывать не буду, а отдам только абстрактные куски кода, но это рабочие фрагменты.
Для раззадоривания скажу, что в данном чите реализована функция, позволяющая стрелять в любое место и убивать противников которые могут находиться где угодно, главное, чтобы был прострел (можно бежать и убивать всех за спиной), ее я назвал AssShot — для настоящих читеров, не привыкших скрываться (что наглядно продемонстрировано в видео). VAC его не обнаруживает, но это пока кто-то не выложит его в свободный доступ.
Читать дальше →
Total votes 105: ↑82 and ↓23+59
Comments78

Лайтпак 6 доступен для предзаказа

Reading time1 min
Views27K
Уже сегодня стала доступной для предзаказа 6я версия Лайтпака.
В новой ревизии устройства улучшена цветопередача в диапазоне цветов с низкой яркостью. Новая плата получила акриловую защиту, которой прикрыты все разъемы на плате. По словам разработчиков это самое удобное и лучшее решение для такого типа устройств. Лайтпак 6 получил квадратный корпус с удобными разъемами, теперь не придется зачищать проводки и прикручивать их отверткой. Скоро появится видео.

image
Читать дальше →
Total votes 105: ↑100 and ↓5+95
Comments109

Как объединить две Wi-Fi сети, или работа роутера в режимах repeater и repeater bridge

Reading time5 min
Views289K
Доброго времени суток.

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

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments35

Information

Rating
Does not participate
Location
Тель-Авив, Израиль
Date of birth
Registered
Activity