JAVA → Идея реализации пакета I/O в Java
Совершенство достигается не тогда, когда уже нечего прибавить,
а когда уже ничего нельзя отнять.
Антуан де Сент-Экзюпери, Ветер, песок и звезды, 1939
Часто приходится проектировать и разрабатывать пакеты ввода/вывода для приложений на Java. С одной стороны есть java.io, которого бывает более чем достаточно. Однако, на практике редко удается обойтись набором стандартных классов и интерфейсов.
В статье, приводится практический пример идеи для реализации пакетов ввода/вывода на платформе Java.
Node.JS → NodObjC — мост между Objective-C и Node.JS
Я просто хотел бы шокировать вас моими последними достижениями в области хакинга: я создал двунаправленный мост к библиотекам выполнения Objective-C из среды Node. Эта сумасшедшая штука позволяет делать замечательные вещи, например, писать родные приложения для MacOS X и iOS полностью на Node и JavaScript!
Я создал высокоуровневую библиотеку, которую назвал NodObjC, и она предлагает лёгкий для использования API, непосредственно формируемый из API библиотек Objective-C. Вот пример из README:
Я создал высокоуровневую библиотеку, которую назвал NodObjC, и она предлагает лёгкий для использования API, непосредственно формируемый из API библиотек Objective-C. Вот пример из README:
var $ = require('NodObjC');
// First you need to "import" the Framework
$.import('Foundation');
// Setup the recommended NSAutoreleasePool instance
var pool = $.NSAutoreleasePool('alloc')('init');
// NSStrings and JavaScript Strings are distinct objects, you must create an
// NSString from a JS String when an Objective-C class method requires one.
var string = $.NSString('stringWithUTF8String', 'Hello Objective-C World!');
// Print out the contents (calling [string description])
console.log('%s', string);
// → Prints "Hello Objective-C World!"
pool('drain');
Проектирование и рефакторинг → Идиомы Pimpl и Fast Pimpl – указатель на реализацию из песочницы
Другие названия: Bridge, Compilation Firewall, Handle/Body
Допустим, нам необходимо написать кроссплатформенное сетевое приложение с использованием сокетов. Для этого нам необходим класс GeneralSocket (“Видимый класс”), который будет инкапсулировать в себе детали реализации конкретной платформы (“Скрываемый класс”). Часто требуется скрыть детали реализации от пользователей или других разработчиков:
Допустим, нам необходимо написать кроссплатформенное сетевое приложение с использованием сокетов. Для этого нам необходим класс GeneralSocket (“Видимый класс”), который будет инкапсулировать в себе детали реализации конкретной платформы (“Скрываемый класс”). Часто требуется скрыть детали реализации от пользователей или других разработчиков:
HTML5 → Дворовой бридж — соревнование ИИ (libcanvas)

Предлагаю устроить спортивное программирование — написание ИИ на Javascript для игры в дворовой бридж. Предоставляю уже готовую игру на libcanvas и изящный интерфейс для создания AI. Все, что вам надо — браузер, немного азарта и знание JavaScript. Первый этап — вы программируете свой ИИ, играя против него. Второй этап — вы программируете свой ИИ и он играет против лучших из первого этапа. После второго этапа проводим турнир и объявляем итоги. Уверен, что получим много фана и удовольствия. Победителям — слава и почет. Если победят не зарегистрированные на Хабре — готов предоставить инвайты.
*BSD → FreeBSD Netgraph на примере Ethernet тоннеля
Всем привет.
Думаю многим системным администраторам, работающим с FreeBSD, известно о существовании ядерной подсистемы Netgraph. Но не многие знают/понимают как это работает, и что из этого можно построить.
Расскажу что это такое, а также разберу на простом примере сборку Ethernet моста через интернет.
Думаю многим системным администраторам, работающим с FreeBSD, известно о существовании ядерной подсистемы Netgraph. Но не многие знают/понимают как это работает, и что из этого можно построить.
Расскажу что это такое, а также разберу на простом примере сборку Ethernet моста через интернет.
Совершенный код → Паттерн проектирования «Мост» / «Bridge»
upd: Изменил диаграмму и код. Расширил пример и описание.
Почитать описание других паттернов.
Вернувшись домой, после непродолжительных посиделок у старого друга, я обнаружил, что оставил у него свой мобильный телефон, а вместе с тем и единственный в квартире будильник. Ситуация осложнялась тем, что завтра в 8:00 надо было быть на работе. Вариант вернуться за мобильником в 11 часов вечера я даже не рассматривал. И первое, что пришло мне на ум — написать свой будильник, причем с применением паттерна «Мост», который мне и без того надо было реализовать в рамках спецкурса. Как говорится, двух зайцев… Я думаю, не стоит пояснять что лег спать я под утро, но довольный собой. А утром, ровно в 7:00 меня победоносно разбудил мой bridge-будильник, весело наигрывая мотив из TBBT.
Как я до такого докатился, читайте под хаброкатом.
Почитать описание других паттернов.
Предыстория
Вернувшись домой, после непродолжительных посиделок у старого друга, я обнаружил, что оставил у него свой мобильный телефон, а вместе с тем и единственный в квартире будильник. Ситуация осложнялась тем, что завтра в 8:00 надо было быть на работе. Вариант вернуться за мобильником в 11 часов вечера я даже не рассматривал. И первое, что пришло мне на ум — написать свой будильник, причем с применением паттерна «Мост», который мне и без того надо было реализовать в рамках спецкурса. Как говорится, двух зайцев… Я думаю, не стоит пояснять что лег спать я под утро, но довольный собой. А утром, ровно в 7:00 меня победоносно разбудил мой bridge-будильник, весело наигрывая мотив из TBBT.
Как я до такого докатился, читайте под хаброкатом.
Ruby → Мост Руби ⇋ Хаскелль
Вы — Руби-разработчик? После серии статей (1,2,3) про Хаскелль у вас появилось новое хобби? Вы бы хотели использовать это кунг-фу в своём коде? Нет?
Apple → Opera в Adobe Bridge CS4?
Подскажите пожалуйста, у меня одного под макосью после очередного апдейта Adobe Photoshop вместе с ним установилась Opera?
Дело было так — кликаю на .torrent-файл, и вместо uTorrent запустилась Opera. Сказать, что это был шок — ничего не сказать. Трясущимися руками нажал на «Show in Finder», и обнаружил, что Opera — скрытый компонент Adobe Bridge, который не виден в Spotlight, но, тем не менее, каким-то образом смог поменять файловые ассоциации без моего ведома, чем и спалился.
Зачем Адобу Opera? И зачем она мне? :/
Дело было так — кликаю на .torrent-файл, и вместо uTorrent запустилась Opera. Сказать, что это был шок — ничего не сказать. Трясущимися руками нажал на «Show in Finder», и обнаружил, что Opera — скрытый компонент Adobe Bridge, который не виден в Spotlight, но, тем не менее, каким-то образом смог поменять файловые ассоциации без моего ведома, чем и спалился.
Зачем Адобу Opera? И зачем она мне? :/
Социальные сети → Разведчики США против закрытия социальных сетей
Управление директора Национальной разведки США распорядилось в целях безопасности закрыть популярные среди разведчиков платформы коммуникации uGov и Bridge. Обе системы производства компании Intel имеют выход в интернет, что и стало поводом для их закрытия.
У разведывательного сообщества США (в него входит 16 учреждений) остаётся в распоряжении ряд экспериментальных коммуникационных веб-сервисов, в том числе Chirp (шпионская версия Twitter) и Intellipedia, но эти инструменты гораздо менее популярны, ещё не все агенты их освоили.
Новость о закрытии интернет-сервисов была разослана в пятницу по внутренней почте нескольких секретных подразделений. Рядовые сотрудники выражают своё возмущение через прессу, а среди агентов начался сбор подписей (доступ по паролю). Есть надежда, что под напором общественности разведчикам всё-таки оставят их любимые социальные сервисы, тем более что они реально помогают в работе.
У разведывательного сообщества США (в него входит 16 учреждений) остаётся в распоряжении ряд экспериментальных коммуникационных веб-сервисов, в том числе Chirp (шпионская версия Twitter) и Intellipedia, но эти инструменты гораздо менее популярны, ещё не все агенты их освоили.
Новость о закрытии интернет-сервисов была разослана в пятницу по внутренней почте нескольких секретных подразделений. Рядовые сотрудники выражают своё возмущение через прессу, а среди агентов начался сбор подписей (доступ по паролю). Есть надежда, что под напором общественности разведчикам всё-таки оставят их любимые социальные сервисы, тем более что они реально помогают в работе.
Linux для всех → VPN-мост в локальную сеть
Прочитал топик habrahabr.ru/blogs/linux/67209/ и решил выложить сюда свою статью, которая была до этого видна только в закрытой корпоративной Wiki.
Обычно, при создании VPN, используется подключение типа точка-точка к некоторому серверу, либо установка ethernet-туннеля с некоторым сервером, при котором туннелю назначается определённая подсеть. Сервер VPN при этом выполняет функции маршрутизации и фильтрования трафика для доступа к локальной сети через VPN.
Данная статья рассматривает другой подход к созданию виртуальной сети, при котором удалённые системы включаются в уже существующую локальную подсеть, а сервер VPN выполняет роль Ethernet-шлюза. При использовании такого подхода мы всё ещё имеем возможность фильтровать трафик на основании способа подключения (например, использовать для локальной сети и для удалённых пользователей разные фильтры), но исключается необходимость настройки маршрутизации, а удалённые машины включаются прямо в локальную сеть, видят ресурсы, даже способны использовать широковещательные посылки вообще без дополнительной настройки. Через такой VPN у них отображаются все компьютеры локальной сети Windows, все доступные XDMCP-серверы при XDMCP broadcast и т. д.
Обычно, при создании VPN, используется подключение типа точка-точка к некоторому серверу, либо установка ethernet-туннеля с некоторым сервером, при котором туннелю назначается определённая подсеть. Сервер VPN при этом выполняет функции маршрутизации и фильтрования трафика для доступа к локальной сети через VPN.
Данная статья рассматривает другой подход к созданию виртуальной сети, при котором удалённые системы включаются в уже существующую локальную подсеть, а сервер VPN выполняет роль Ethernet-шлюза. При использовании такого подхода мы всё ещё имеем возможность фильтровать трафик на основании способа подключения (например, использовать для локальной сети и для удалённых пользователей разные фильтры), но исключается необходимость настройки маршрутизации, а удалённые машины включаются прямо в локальную сеть, видят ресурсы, даже способны использовать широковещательные посылки вообще без дополнительной настройки. Через такой VPN у них отображаются все компьютеры локальной сети Windows, все доступные XDMCP-серверы при XDMCP broadcast и т. д.