Search
Write a publication
Pull to refresh
0
0
Vasiliy @JMS

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

Send message

Сравнение библиотек для архивации в .Net

Reading time5 min
Views16K
Недавно для моего проекта понадобилась мне библиотека для архивирования. С полгода назад по работе я пользовался библиотекой zlibnet и впечатления остались не очень приятные, так что решил поискать альтернативу. После недолгих поисков наткнулся на обзор библиотек для архивации, которая и сподвигла меня написать этот обзор.
Читать дальше →

Защита RDP по ГОСТ с помощью Рутокен ЭЦП. Двухуровневый TLS

Reading time4 min
Views28K
image

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

В данном топике с помощью open source приложений OpenSSL и sTunnel мы защитим RDP-соединения по протоколу TLS c поддержкой российских шифрсьютов (GOST2001-GOST89-GOST89), клиентская аутентификация по ГОСТ-вым сертификатам будет проводиться аппаратно на борту USB-токена Рутокен ЭЦП с выработкой ключа согласования по схеме VKO GOST 34-10.2001. При этом ключ аутентификации является неизвлекаемым и его невозможно украсть. Так же Рутокен ЭЦП будет использоваться в качестве аппаратного ДСЧ.

Для случая аутентификации на терминальном сервере об Active Directory по сертификатам RSA мы обернем TLS по RSA в TLS по ГОСТ. Таким образом, мы получим двухуровневый TLS — RSA с клиентской аутентификацией будет идти внутри канала, защищенного ГОСТами.

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

Руководство Apple «Как стать разработчиком под iOS»

Reading time1 min
Views38K
Компания Apple приглашает новичков начать разработку своих приложений под iOS, и в помощь опубликовала руководство "Start Developing iOS Apps Today", где указаны все необходимые действия на каждом этапе, даются советы по выбору языка программирования, дизайну интерфейса приложения и максимизации прибыли в App Store.



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

Отказ от использования CMS при проектировании веб-приложений

Reading time4 min
Views17K
Уже довольно давно решая задачи проектирования веб-приложений, или веб-ресурсов я использую подход при котором проектирую логику работы исходя из предметной области к которой будет относится веб-приложение. Этот подход ни разу меня не подводил, и зачастую результат работы всегда меня удовлетворял (насколько вообще результат работы может удовлетворять — ведь всегда кажется, что можно сделать еще чуть чуть лучше, и процесс улучшения может быть бесконечным). Однако иногда среди коллег мне приходится встречать мнение, что проектирование с использованием CMS гораздо эффективнее. После последней такой беседы я решил написать статью и поделится своими мыслями с хабра-сообществом.

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

Этой статьей я не пытаюсь доказать что использование CMS не эффективно. Оно эффективно, но по моему мнению только тогда, когда в будущий ресурс новый функционал вносить не предполагается. И когда изначальный функционал не выходит за пределы «сайта-визитки» (хотя и «визитка» порой может быть достаточно технологичной и требовать для реализации того, чего с ограниченными возможностями CMS добиться достаточно трудоемко).

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

Шокирующий Objective-C для Java программистов

Reading time4 min
Views26K

О чем эта статья?


Два факта. В мире много Java программистов. Популярность Objective-C растет. Вывод: Java программист, изучающий Objective-C не такая уж редкость. Если знать ключевые различия между языками, то можно эффективно использовать существующие знания Java и быстрее начать писать на Objective-C.
Читать дальше →

Яндекс.Пробки: получаем области покрытия пробками + альтернативный пробочный гаджет

Reading time2 min
Views3.7K
Не так давно Яндекс стал отдавать данные о пробках для большого количества других регионов, кроме Москвы, Питера, Киева и Екатеринбурга. Как разместить слой с пробками на своей карте я писал ранее. Сегодня разберемся как можно получить список регионов, в которых обрабатываются пробки.

У Яндекс.Пробок наряду с trf.maps.yandex.net/trf/stat.js есть еще trf.maps.yandex.net/trf/coverage.js. Этот скрипт рассказывает нам, какие регионы покрыты данными о пробках (ну или хотя бы такая информация поддерживается).

Вот что отдает данный скрипт...

Неверное использование паттерна проектирования «Мост» / «Bridge»

Reading time8 min
Views11K
Предистория

Я прочитал эту статью о паттерне проектирования «Мост». Увы, его очень часто используют неверно. Более того, я затем открыл книгу Приемы объектно-ориентированного проектирования. Паттерны проектирования. Оказалось — и там авторы очень смутно декларируют причины его наличия и когда его использовать. Поэтому ниже я вам сообщу, как и зачем подобное использовать.

Обновление

Это поверхностная статья, которую можно не совсем точно трактовать. Но её достоинство, что она короткая и вводит в проблематику. У специалистов она может вызвать вопросы более глубокого содержания, а у молодых разработчиков некоторые недоразумения, т.к. я спорю по сути с «Бандой четырех», но полностью согласен с Фаулером и его подходом к рефакторингу (да и у них между собой есть противоречия) — но типа а кто я такой, чтобы спорить.

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

Уже есть ответвление этой статьи Правильное использование паттерна «Мост» (Мост с двухсторонним движением) или MVC->«Бизнес-сущность — Визуализация — Контроллер». Где показано, что Мост/Посредник можно использовать в некой комбинации при разделении визуализации и бизнес-логики, но это практически единственная сфера для этих шаблонов. В чистой бизнес-логике и низкоуровневых/системных задачах этих паттернов следует избегать.

Но публиковать не могу — нету кармы, а как я понимаю других вариантов нет, пока не наберу. Поэтому хотите прочитать, знаете что делать :)

Что такое паттерн проектирования «Мост» на самом деле

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

Посмотрим, что такое паттерн «Мост», что кроется за этим заумным термином. Это не что иное как комбинация применения наследования и агрегации. Увы, часто не знают, что такое агрегация. По- простому, это когда один объект включается в другой.

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

Отличия == и === в JavaScript

Reading time2 min
Views214K
Сразу предупрежу, да, статья немного некорректная, добро пожаловать в комментарии, там неплохие уточнения ).

Доброго времени суток.


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

Оператор == сравнивает на равенство, а вот === — на идентичность. Плюс оператора === состоит в том, что он не приводит два значения к одному типу. Именно из-за этого он обычно и используется.

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

Javascript Parser Extension для VisualStudio

Reading time2 min
Views4.3K
Эта статья будет полезна разработчикам, которые используют Visual Studio для работы с JavaScript. Для ознакомления предлагается плагин для Visual Studio — Javascript Parser Extension. Поддерживаются версии VS2008, 2010, 2011. Проект с открытым исходным кодом, хостится на Google Code, также опубликован в Visual Studio Gallery.

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

Основная функциональность состоит в построении дерева функций и отображения его в удобном виде в виде панели Visual Studio. При клике на название функции осуществляется навигация в начало декларации. Также показываются комментарии к функции в виде всплывающей подсказки. Существует возможность добавлять «метки» на функции в виде 6-ти различных флажков. Шрифт и цвет помеченных функций может настраиваться дополнительно. Это очень удобно — требующие внимания функции будут сразу бросаться в глаза.
Читать дальше →

Фриланс против бизнеса

Reading time5 min
Views1.8K
Фриланс, как массовое явление, появился совсем недавно, думаю не больше 10 лет назад, вместе с глобальным распространением и социализацией интернета, и на сегодняшний день эта модель деловой активности еще очень мало изучена, сегодняшние фрилансеры по сути — первопроходцы, изучающие новый способ жизни прямо на себе.

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

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

Алгоритм Ляна-Кнута для расстановки мягких переносов

Reading time4 min
Views13K
При работе с текстом часто возникает потребность корректно расставить переносы. Задача на первый взгляд не такая уж очевидная, нужно учитывать особенности каждого языка, чтобы решить, в каком месте разорвать слово. Как правильно формализовать такие требования, и как потом применить их в алгоритме? Одно из самых распространенных на сей день решений предложил Франклин Марк Лян, студент известного профессора Дональда Кнута. Алгоритм так и называется – «Алгоритм Ляна-Кнута», он применяется в издательской системе TeX, автор которой опять же Д. Кнут.

Алгоритм основан на сравнении исходного слова с набором правил (шаблонов). Чем больше правил и чем качественнее они составлены, тем лучше будут расставляться переносы. В пакете TeX можно найти готовые бесплатные наборы правил для многих языков, нужно только внимательно смотреть на условия использования и распространения.
Узнать больше

Изучая Skype — редактируем цитаты

Reading time4 min
Views22K
По сравнению с предыдущей статьёй (которая, судя по изменениям моей кармы, не всем пришлась по нраву) эта совсем безобидная.

Можно ли доверять цитатам из Skype? Казалось бы, их нельзя редактировать, а после недавнего отключения поддержки html тэгов (в windows версиях), это должно быть невозможным. Ответ на вопрос на скриншоте ниже:



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

И снова скриншоты в один клик (C#)

Reading time4 min
Views28K

Синопсис


Не так давно начал изучать C# и очень скоро эксперименты переросли в желание написать какое-нибудь легкое, простое, но вместе с тем полезное и удобное приложение. Постепенно родилась идея программы, предназначенной для быстрого снятия скриншотов и автоматической загрузки их на хостинг. Удовлетворяющих моим требованиям аналогов я не нашел, поэтому я решил все же сделать её самостоятельно, а уже после этого один хороший человек подал идею написать статью об этом.
Читать дальше →

Как подписать свой первый скрипт за 48 часов

Reading time3 min
Views39K

Проблема


Когда задача, требующая решения, небольшая, совсем не хочется писать для её решения отдельную утилиту, особенно, если ты — .NET-программист.
Скрипт? Однозначно, да, но ставить на боевую машину под управлением Windows сторонний интерпретатор совсем уж не по-христиански. Так почему бы не воспользоваться Windows Powershell? Готов сразу честно признаться: практически никакого опыта с ним не было, но уж больно заманчиво выглядел.
Скрипт, решающий задачу, был готов через 15 минут, если не учесть одно «но». Скриптом пока назвать это было сложно, потому что это был набор инструкций, непригодный для выполнения в виде скрипта. Непригодный, с точки зрения PowerShell.
Читать дальше →

Видеоплеер на базе ffmpeg

Reading time8 min
Views64K
Привет, Хабр!

В этой статье речь пойдет о разработке простейшего плеера с использованием библиотек из проекта FFmpeg.
Я не нашел на хабре статей на данную тематику, поэтому решил восполнить этот пробел.
Декодирование видео будет осуществляться с помощью библиотек FFmpeg, отображение — с помощью SDL.

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

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

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

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

Обработка всех исключений в контроллерах с помощью атрибута

Reading time3 min
Views14K
Всё мы знаем, что в ASP.NET MVC есть такой атрибут HandleErrorAttribute, который как сказано в MSDN
Представляет атрибут, используемый для обработки исключения, вызываемого методом действия.

Но нигде, в том же MSDN не сказано (ткните меня носом дайте ссылку где это написано, если я просмотрел), что он обрабатывает только исключения, устанавливающие код ответа сервера в 500.

Посмотрев на исходный код HandleErrorAttribute легко убедиться в этом. Там имеются следующие строки:

// If this is not an HTTP 500 (for example, if somebody throws an HTTP 404 from an action method),
// ignore it.
if (new HttpException(null, exception).GetHttpCode() != 500) {
    return;
}

Не знаю, как вам, а мне удобнее при возникновении исключения, чтобы пользователи видели специальную страницу для этого, а не «жёлтую страницу смерти» или вообще как браузер отображает стандартную для него страницу с кодом ответа сервера (зависит от настроек в Web.config, но об этом позже).

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

Взлом капчи LostFilm (php)

Reading time4 min
Views16K
Решив скачать очередную серия Хауса я заглянул на LostFilm и обнаружил, что теперь на сайте, чтобы скачать нужно регистрироваться.
Только я решил зарегистрироваться, как на глаза мне попалась их новомодная капча:


Капча показалась мне довольно простой (хоть и не лишена она дольки оригинальности).
Читать дальше →

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity