Search
Write a publication
Pull to refresh
20
0
Dmitriy Beykun @RZK333

Linux Engineer

Send message

Код, который невозможно поддерживать (часть 2)

Reading time7 min
Views3.5K
Продолжение этого топика — вторая и третья главы эссе «Unmaintainable Code». Несколько перекликается с первой, но описанные методы уже не так очевидны (а некоторые отличаются поистине дьявольской изобретательностью и не меньшей злокозненностью). Ах да, с заявленного в прологе языка Java автор незаметно переключился на C/C++.

Камуфляж



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

Читать дальше →

Раскрыт самый большой секрет Skype

Reading time2 min
Views20K

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

Upd с enrupt.com:

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

Наша публикация никак не влияет на приватность звонков, сообщений или передач файлов. Они защищены с помощью AES-256, а согласование ключей происходит с помощью 1024битного RSA. Так что без паники )

В следующем месяце мы может быть выложим програмку, которая расшифровывает UDP пакеты Skype и проверяет их CRC :)
Читать дальше →

10 способов облажаться в программировании

Reading time5 min
Views7.5K
10ways
Недавно по наследству от грязного, вонючего контрактора (который утверждал, что его знания и умения так хороши, чтоб не трогать его пока, он не закончит проект) мне досталось веб-приложение. К сожалению, мы поверили ему на слово. На первый взгляд большинство функционала веб-приложения работало как надо. Однако, как только клиент начал использовать приложение в реальных условиях, – весна показала, кто где срал оно начало барахлить. Контрактор исчез после оплаты (умри репутация!), а я остался, чтобы попытаться починить то, с чем пока мучился клиент.
Я решил описать некоторые из тех ошибок, с которыми столкнулся. Это ошибки, которые, каждый хороший программист давно уже должен уметь избегать… но, очевидно, что некоторым людям нужно о них напоминанать.

Читать дальше →

Синдром многорукого Шивы: Знания vs Навыки

Reading time7 min
Views18K
В продолжение предыдущего поста.


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

Путь о котором я говорю — путь «многорукого Шивы». Путь множества навыков и относительно малого знания. Те, кто переключился на путь знания идут вверх. Те, кто остался на пути навыков — остаются примерно там же, где и были.
Читать дальше →

Экономим деньги — покупаем в США

Reading time5 min
Views54K
Это первый наш пост в новоиспечённом корпоративном блоге компании Ebaytoday, так что ежели где что не так – милостиво просим, как говорится «не пинать сильно ногами».

Итак – представляем уважаемым читателям Хабра наше детище – проект EbayToday.ru. Этот сервис уже более 2-х лет помогает жителям России и СНГ с лёгкостью совершать покупки не где-нибудь, а в самих Соединённых Штатах Америки.

image


Чем именно мы занимаемся:
1) помогаем в приобретении товаров на аукционе eBay,
2) помогаем совершать покупки в любых американских интернет-магазинах,
3) предоставляем услуги мейлфорвардинга.

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

Ну что? Поехали?

Читать дальше →

Коварный и ужасный sndrec32.exe

Reading time3 min
Views22K
Sound RecorderВ этом топике вы найдете немного ностальгии, каплю гнева и килограмм реверс-инжиниринга. Посвящается тем, кто знаком с программой «Звукозапись» не понаслышке :)

Когда небо было голубее, Солнце светило ярче, а Интернет был таким недоступным… Короче, в далеком детстве мне почему-то полюбилась стандартная программа «Звукозапись» из Windows 98. Не глядя на минимальную функциональность, я даже умудрялся делать в ней простейшие «ремиксы» ей же записанных мелодий из игр.

Шли годы. Железо становилось мощнее, а ОС функциональнее. Но «Звукозапись» не менялась. Даже в Windows XP она оставалась такой же, как и тогда. Пришло время обновить железо. 3 гигабайта оперативной памяти — раньше и мечтать о таком не приходилось. Этого уж точно должно хватить всем! Так и было, пока дело не дошло до той самой «Звукозаписи». После попытки записать небольшой звук программа невозмутимо возразила, что ей недостаточно оперативной памяти.
Читать дальше →

Фотографируем гаджеты для обзора или сайта по-быстрому

Reading time3 min
Views13K
Топики с обзорами всевозможных гаджетов появляются на хабре достаточно часто и возможно, мой рассказ покажется полезным как раз для такого случая – сделать фотографию гаджета для обзора. Здесь я расскажу как быстро сфотографировать небольшой гаджет с максимально возможным качеством. В крайнем случае, это можно сделать даже камерой телефона, я так и поступлю. Поскольку технические средства в этом топике ограничены, практически любое улучшение используемой техники приведёт к повышению качества результата.
Читать дальше →

Проходим сквозь стены NAT-ов

Reading time2 min
Views2.6K
image Повсеместное распространение NAT казалось препятствует свободному обмену трафиком между компьютерами, находящимися за одним из них, и практически делает это невозможным, если оба компьютера скрыты за разными NAT серверами, естественно если вы не администратор обоих NAT серверов. Однако Samy Kamkar легко и непринужденно не только преодолел это, но и сделал программу которая позволяет преодолевать подобные препятствия. В настоящее время данная программа доступна только пользователям *nix подобных систем.

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

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

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

Как сделать хорошую фотографию глянцевого телефона

Reading time2 min
Views19K
Каждый день на сайте выходит несколько хороших обзоров новых и интересных гаджетов. И если все особенности устройства обычно описаны «на отлично», то вот фотографии гаджета зачастую не выдерживают никакой критики. Часто приходится видеть подобное:
вспышка в лоб
А ведь для получения качественного фото даже глянцевого телефона не потребуется никаких особых приспособлений, даже затраты времени на получение качественных фото будут минимальны. Все нужное есть практически в каждом доме, а фотографировать можно и на телефон, хотя даже самая простая цифромыльница даст более качественный результат.
Читать дальше →

Планирование задач в сервере при помощи boost.task

Reading time10 min
Views9.9K
Недавно на профильном ресурсе один программист задал вопрос: «Что использовать в сервере ММО для работы с потоками?». Программист склонялся к Intel TBB, но даже не к базовым примитивам, а к кастомному планированию задач (task scheduling). Ну нравится TBB — ну и ладно. А немного позже я увидел исходники сервера ММО другого программиста, который недавно начал переписываться его с нуля для улучшения архитектуры. И там было очень много велосипедов, которые писались самим программистом вместо того что бы использовать сторонние компоненты такие как boost (к примеру класы обертки над pthread-ом, и это в 2010 году, когда boost.thread уже почти в стандарте). Была там реализована и поддержка пула потоков с планировщиком задач. Тема эта мне очень интересна и я начал копать информацию о готовых решениях планировки задач (как в TBB) и нашел boost.task, про что и решил написать.
Читать дальше →

ANDNA — служба именования узлов сети Netsukuku

Reading time6 min
Views8.7K

Всем привет! Это вторая из статей о Netsukuku — проекте создания P2P альтернативы современному Интернету.

В этот раз я расскажу об ANDNA (A Netsukuku Domain Name Architecture) — службе разрешения имен в IP адреса, являющейся местным аналогом службы DNS и протокольно совместимой с ней.

Тем кто не знает о чем вообще речь, рекомендую прочитать первую часть.
Читать дальше →

Пробуем 3D с помощью jMonkeyEngine

Reading time6 min
Views29K
Практически каждый, кто занимался геймдевом, понимает, что наилучшей производительности в этой области, по понятным причинам, можно добиться лишь на языках С/С++/asm. С данным утверждением в этой статье я спорить не буду, да и раньше даже как-то не задумывался о создании realtime-игр на других языках. Однако, игры бывают разные, и надо отдавать себе отчёт в том, насколько оправданы трудозатраты на реализацию очередного продукта. Если проект монструозен, с «тяжёлой» графической составляющей, даже после проведения весьма агрессивной оптимизации всё равно требующий от конечных пользователей (геймеров) топового железа на борту, то особых конкурентов на данный момент среди языков разработки у С/С++ в этом случае нету. Но если игрушка — не более чем обыкновенная казуалка, для запуска которой и нетбука будет достаточно, то можно позволить себе куда больший простор для фантазии в вопросе выбора инструментов для разработки. Исходя из этого принципа, в данной статье попробуем разобраться, чем может похвастаться в области геймдева такой, казалось бы, не совсем подходящий для этого, но удобный в целом язык Java, на примере движка jME.
Читать дальше →

ООП с примерами (часть 1)

Reading time4 min
Views616K
Волею судьбы мне приходится читать спецкурс по паттернам проектирования в вузе. Спецкурс обязательный, поэтому, студенты попадают ко мне самые разные. Конечно, есть среди них и практикующие программисты. Но, к сожалению, большинство испытывают затруднения даже с пониманием основных терминов ООП.

Для этого я постарался на более-менее живых примерах объяснить базовые понятия ООП (класс, объект, интерфейс, абстракция, инкапсуляция, наследование и полиморфизм).

Первая часть, представленная ниже, посвящена классам, объектам и интерфейсам.
Вторая часть иллюстрирует инкапсуляцию, полиморфизм и наследование

Читать дальше →

Обзор midi-контроллера за 60 долларов

Reading time3 min
Views12K
imageКонечно, большие вещи имеют свои преимущества, но когда свободное пространство ограничено, на первое место выходят компактность и портативность. Серия миниатюрных MIDI контроллеров от Korg под названием Nano как раз и была разработана для музыкантов, которые много путешествуют, хотя нельзя сказать, что эти контроллеры будут совсем бесполезными в большой студии.

В серию входят три контроллера: Nano Key, Nano Kontrol и Nano Pad. Представьте себе большую MIDI клавиатуру, которую взяли и разрезали на три отдельные части, — клавиши, ручки и фейдеры и ударные пэды. В результате получается Nano, которые очень маленькие и аккуратные, можно даже сказать милые.

Каждый контроллер размером 320х83 мм и не больше 15 мм в толщину. Кстати, ширина точно соответствует ширине MacBook. Контроллеры можно использовать как отдельно, так и все вместе, если у вас есть достаточно USB портов. Никакого дополнительного питания не требуется, что сводит количество кабелей, который Вам надо будет носить с собой, к минимуму.

Сегодня я расскажу подробнее о Korg Nano Pad!
Читать дальше →

Где погрызть гранит науки

Reading time4 min
Views28K
image Здравствуй, хабрасообщество. Я знаю, ты любишь халяву. А еще ты любишь учиться. Ведь так? А что может быть лучше для хабравчанина бесплатного образования? Вот и решил собрать специально для тебя подборку из ссылок, где можно набраться уму-разуму в области IT.
Все нижеперечисленные ресурсы абсолютно и официально бесплатны и свободны, что не может не радовать.

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

Большое спасибо в помощи добавлении ресурсов vansickle, RedFox, kagen, theinterman, sM1Le.

Англоязычные ресурсы



Компьютерные науки



OpenCourseWare MIT




Одно из самых больших хранилищ учебных курсов. Здесь собраны практически все курсы, которые преподаются в Massachusets Institute of Technology, который по праву считается одним из лучших в мире. На сайте всего 1900 курсов, а тех, которые преподаются на факультете Electrical Engineering and Computer Science я насчитал более 200. Состав большинства курсов: краткие конспекты лекций, подробное описание курса, календарный план, задания на лабораторные работы, задания на курсовые проекты и экзамены, промежуточные модули. К некоторым курсам прилагаются и видеолекции.

смотреть другие сайты

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

Reading time5 min
Views8.2K
Кевин Митник в одном из своих интервью журналистам, сказал, что самое слабое звено в системе безопасности — это человек. Именно благодаря навыкам социальной инженерии, ему удалось стать одним из известнейших хакеров современности. Если вы считаете, что Кевин, как показывают в фильмах про хакеров, сидел в темной комнате с кучей мониторов с циферками и взламывал всех и вся оттуда, никогда эту комнату не покидая, то вы глубоко заблуждаетесь.

Ладно. Задайте себе вопрос — что уже интернет знает о Вас? Скорее всего, интернет о вас знает уже все, а что, как говорится, seen can not be unseen в глобальной сети. Теперь второй вопрос — как этим могут воспользоваться злоумышленники.

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

У вас есть блог? Твиттер? Страничка во вконтакте или фейсбуке? Вы активный пользователь форумов? Тогда мы идем к вам…

Я перечитал свой же текст и мне стало страшно. Серьезно.
Читать дальше →

WiMAX в России

Reading time7 min
Views14K
Продолжаем "Пять недель с компанией Intel" — совместными усилиями мы добрались до середины ;)

image

Cегодня у нас в гостях Дмитрий Ларюшин. В компании Intel он давно — примерно с начала тысячелетия. В последние годы Дмитрий занимается вопросами продвижения технологии беспроводного интернета WiMAX в России.
Читать дальше →

Учить информатику в Германии или

Reading time6 min
Views36K
Прочитав предыдущий пост, а именно его часть про «Образование на Западе», не мог удержать себя, чтобы не написать данный пост.

Так получилось, что после окончания (по настоянию родителей) медицинского университета в России судьба занесла меня в Германию, где я принял решение в 28 лет пойти снова учиться, выбрав в качестве профессии информатику (которая до этого была моим основных хобби). Сейчас я заканчиваю второй курс (как раз экзамены до конца сентября), перехожу от «вводного курса» (Grundstudium) в «основной курс» (Hauptstudium).

Итак, как проходит обучение информатике в Германии.
Читать дальше →

Почему программистов не учат?

Reading time2 min
Views24K
Еще будучи студентом, особенно на последних курсах, я часто ловил себя на мысли, что тот или иной предмет мне совершенно не интересен и никак не помогает мне стать хорошим программистом. Это усугубилось тогда, когда на 4м курсе пошел работать программистом и где-то почти год я только и делал, что учился работать программистом. Не могу себя назвать отличником, скорее наоборот, но так или иначе институт (ИТМО в Питере, кафедру Парфенова) я закончил, получив магистра математики.

Большинство из моих коллег-студентов также как и я к шестому курсу уже работали программистами в разных IT-компаниях. Дипломы у нас почти все были про всевозможные информационные системы, порталы, базы и так далее. Однако дипломная комиссия каждого, кто защищал подобный диплом, спрашивала: «Где здесь математика? Вы же готовитесь стать магистром математики!». Думаю, вам не нужно объяснять, что в большинстве случаев ответить на этот вопрос было очень сложно. Некоторые, как например я, нарочито придумывали, прикручивали, допиливали, чтобы хоть какие-то формулы в презентации фигурировали, но возникает вопрос, почему?
Читать дальше →

Information

Rating
Does not participate
Location
Токио, Токио, Япония
Date of birth
Registered
Activity