Обновить

Moose: цепочка билдеров

Введение


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

Как можно видеть из комментариев к статьей по ссылке выше, Moose — продукт несколько противоречивый. Дело в том, что Moose — это не просто реализация ООП для Perl, это реализация ООП с местным колоритом. Об этом колорите далее и будет идти речь.

Поскольку Moose — несколько нетипичная ООП-библиотека, то не все стандартные приемы и ООП-паттерны хорошо на него ложатся. Напротив, некоторые приемы, не свойственные другим языкам, прекрасно на него ложатся.

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

На волнах XSS. Сайт первый

Здравствуй, публика Хабрахабра. Я начинаю цикл статей о небезызвестной, крайне распространенной и неприятной уязвимости — Сross Site Sсriрting (межсайтовый скриптинг, XSS). Что я буду делать? В свободное время я занимаюсь поиском различных уязвимостей на случайных сайтах. Можно назвать это хобби. Сайты с нужной нам уязвимостью я буду освещать здесь. Конечно же, если не будет ответов от администрации. Думаю, все справедливо.
Читать дальше →

Работаем с iBeacon в iOS 7

Как многим известно, Apple, вместе с iOS 7 представила новую технологию микро-позиционирования iBeacon, которая представляет собой некоторое подобие маячка с Bluetooth LE в основе. На хабре есть несколько статей на тему iBeacon, но ни одной о способе взаимодействия с ними. В этой статье я расскажу, как можно произвести поиск данных устройств и получить от них некоторую информацию.
Читать дальше →

Пост новостей с фотографией в группу ВКонтакте (C#)

Недавно решил написать программу, с помощью которой можно будет постить новости с картинкой в группе ВКонтакте. Поискав в интернете чьи-нибудь работы, я нашел куски кода на php, а на C# ничего не было. Нашел библиотеку для работы с VK API на C#, но там не было нужных для меня API. Я решил, что самому будет проще написать, чем искать, заодно и поделюсь с тем, кого это интересует.
Подробнее

Полное доказательство Великой теоремы Ферма

Пьер Ферма утверждал, что:
невозможно разложить куб на два куба или биквадрат на два биквадрата и вообще невозможно разложить какую-либо степень, большую чем два, на две степени с таким же показателем.


Как же подойти к доказательству этого утверждения Ферма?

(картинка для привлечения внимания)
Читать дальше →

Visual Studio добавляет поддержку разработки кросс-платформенных приложений на основе Apache Cordova

image

Друзья, не так давно Microsoft анонсировала поддержку Apache Cordova в качестве инструмента для разработки кроссплатформенных мобильных приложений, включая Android, iOS, Windows8 и Windows Phone 8. До этого для Visual Studio уже была поддержка Xamarin, а теперь у разработчиков появилась еще и возможность разрабатывать гибридные приложения с помощью Html/JavaScript. Официальное название данной фичи Multi-Device Hybrid App development, пока Preview.
Читать дальше →

TrueCrypt. Расшифровка несистемного раздела без использования второго диска

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

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

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

Пара тренировочых javascript игр для тех, кому понравился Untrusted

Думаю, что большинству из вас не хватило уровней в игре Untrusted, и поэтому вы будете рады узнать, что есть еще две учебно-тренировочные игры, посвященные поиску XSS-уязвимостей на сайтах.

Как нетрудно понять, их целью является взлом тренировочного сайта.
Читать дальше →

Сказ о том, как восстановить удаленные контакты из Iphone. Моя версия квеста

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

Выяснилось, что он перед продажей на mac book удалил все контакты, что сказалось через icloud и на iphon'е.
Первый достойный вариант, попавшийся ему на просторах интернета был соседский по ветке.
Пройдя тот самый квест до пункта 6 (Натыкаемся на файл содержащий нечто типа) он столкнулся с проблемами.

Первое и основное, у него отсеилось более ста файлов и каждый из них смотреть — как-то накладно. Я скопировал эти файлы себе и принялся за изучение этой же статьи.
Читать дальше →

PHP для самых маленьких, или свой «Index of / » с преферансом и куртизанками

Предыстория

В процессе написания диплома возникла необходимость создать "он-лайн флешку" для хранения материалов.

Пользоваться облачными сервисами не хотелось, хотелось простоты использования, а именно: скопировал с компа на FTP, а затем с любого девайса выходом в интернет получаешь доступ ко всем файлам.
Читать дальше →

Новая волна взломов QIWI кошельков через мобильных операторов

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

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

In-App Purchase в Windows Phone 8

Пошаговый туториал для организации in-app purchases в своем приложении для WIndows Phone 8


Шаг первый: Добавление продукта в Windows Phone Dev Center

С этим пунктом всё просто, идём в Windows Phone Dev Center -> Apps -> APPName -> Products -> Add in-app product.

Старательно заполняем все поля, обязательно обратите внимание на In-app product ID (это уникальный идентификатор вашего продукта) и Content type. Content type рекумендуется выбирать Electronic software download, при ином выборе, после сборки приложения вы можетес толкнуться с неприятной ошибкой Магазина c101a006. Так же обратите внимание на Type: Durable и Consurable, если говорить по-русски, то первый вариант для одноразовых покупок, а второй для многоразовых (например: покупка монет в играх), в данном примере мы выберем тип Durable. Ошибка проявится в том, что никто не сможет приобрести ваш продукт — всем будет выдаваться эта таинственная ошибка. Почему таинственная? Потому что, на форумах Microsoft тоже не знают причин её возниконовения.
Читать дальше →

Как Google сделал интерактивный объемный дудл с кубиком Рубика

Примечание №1:
Статья является переводом с данного источника. Уточнил, так как в песочнице нельзя отметить «Перевод».


На днях Google запустил впечатляющий doodle: 3D-интерактивный Кубик Рубика. Doodle, получившийся благодаря возможностям CSS и несколько нестандартным дизайнерским решением, является одним из самых трудных интерактивных проектов, выпадавшим на долю doodle-команды.
Читать дальше →

Обходим защиту от копирования в pdf-файле

С января этого года я окончательно пересел на ОС Linux, а конкретно на Ubuntu. Я учусь на третьем курсе по специальности «Информатика и ВТ». На третьем курсе есть такой интересный предмет – схемотехника. А ещё по ним есть лабораторные работы, которые мы можем выполнять дома и отправлять преподавателю по e-mail. Поскольку преподаватель может использовать старую версию Microsoft Office, а я же работаю в LibreOffice, могут возникнуть ошибки при открытии odt на Microsoft Office, либо при сохранении doc\docx в LibreOffice. Я принял решение сохранять работу как pdf-файл и отсылать преподавателю. Кроме того, он выкладывает готовые лабораторные работы на свой сайт, чтобы любой студент мог ознакомиться с другими работами. К сожалению, у меня есть негативная черта – я не люблю, когда у меня копирую текст. Я решил защитить документ от копирования, я точнее установить запрет на копирование и поставил пароль.



Далее сохраняем файл.

Для того, чтобы убедиться, что документ нормально создан и защищён от копирования, я попробовал открыть его в стандартной программе просмотра pdf, который установлен в Ubuntu – а именно Evince. До чего же было моё удивление, когда я обнаружил, что текст можно легко скопировать. «Ну я неправильно сохранил»,- подумал я, и проделал опять те же действия. Открыл второй раз – опять текст легко копируется.

Ну тут я немало удивился и решил отослать одному товарищу этот pdf-файл. Он же сказал, что он не мог скопировать текст ни в Foxit Reader, ни в Adobe Reader.





Ну и дальнейший вполне логичный шаг с моей стороны – я попросил его скачать Evince. Благо продукт с открытым исходным кодом и кроссплатформенный. С установкой на ОС Windows не возникло проблем. Мой товарищ открыл защищённый pdf с помощью свежеустановленной Evince и смог без проблем скопировать текст.

Вывод: для обхода защиты от копирования pdf можно использовать программу Evince. Данный вариант наиболее оптимален и не требует никаких дополнительных действий и является наиболее удобным вариантом. На мой взгляд, конечно.

Я на этом не остановился, ведь возможно, проблема в самом LibreOffice, подумаете вы. Я скачал триальный Adobe Acrobat Pro и создал там pdf-файл и защитил паролем.



Я получил аналогичные результаты, Evince справился без проблем.

Nanoc — генератор статический сайтов

Данная статья описывает генератор сайтов Nanoc и его основные возможности.

О Nanoc'е


Генератор статический сайтов (SSG), чем и является Nanoc — это инструмент для трансформации даных из определенного формата (Markdown или AsciiDoc) в статический контент (обычно HTML). Написан он на языке Ruby, и стает достаточно гибким при знаннии языка.
Читать дальше →

Несколько правил грамотной верстки, которую «любят» поисковые системы

Материалов по SEO верстке в интернете огромное количество, поэтому иногда даже не знаешь, куда лучше пойти первым делом. Я думаю, что если сайт не будет оптимизироваться изнутри, то оптимизация внешняя почти не имеет смысла — эффект будет намного ниже. Я бы хотел рассказать вам о нескольких правилах грамотной верстки, поставив на них вопросы:
Читать дальше →

Терминальный сервер windows 2008 — как разрешить пользователю запуск remoteapp и запретить интерактивный вход в систему

Здравствуйте, уважаемые хабражители!
В этой небольшой статье я расскажу вам свой рецепт решения проблемы с интерактивным входом пользователей на сервер remoteapp.
Проблема заключается в том, что если на сервере терминалов windows 2008 есть опубликованные приложения remoteapp, то помимо запуска самого приложения и работы с ним пользователь может запустить «подключение к удаленному рабочему столу» и войдя на сервер получить доступ к рабочему столу и остальным прелестям gui. С помощью powershell мы разрешим администраторам подключаться и входить в систему, а пользователям оставим только запуск приложений remoteapp.
Читать дальше →

Разработка своего компонента для Битрикс с классами и D7

С 12й версии 1С-Битрикс появилась возможность писать компоненты используя классы, но наиболее примечательной, на мой взгляд, стала возможность наследовать классы компонентов. Таким образом, можно написать стандартный компонент, а потом при необходимости наследоваться от него и добавлять новый необходимый функционал, не копипастя повторяющиеся и стандартные куски кода.
Так же с 12й версии ребята анонсировали появление нового ядра D7 (почему такое название я не знаю), они переписывают ядро, появились неймспейсы, ORM, в 14й версии стали появляться компоненты переписанные под новую идеологию, появился целый раздел в документации, посвященный D7.
Опираясь на эти нововведения попытаемся написать компонент по новому.
Читать дальше →

Ещe один способ создания сериализуемых анонимных функций (замыканий) в PHP

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

Так зачем же, спросите вы, создавать новый велосипед?
  • Мой класс построен на другом принципе
  • Он компактнее и проще, но пока менее функционален


Enso\Closure пригодится в тех проектах, где используется большое число замыканий и необходима экономия системных ресурсов.

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