Wednesday, November 16, 2011

Хабрахабр

КупиКупон - скидки от 50% до 90%

Хабрахабр:

С давних времён использую декораторы в JavaScript. Недавно увидел хабротопик про примеси, который натолкнул меня на мысль поделиться собственным опытом, ибо технологии немного похожие. Что меня не устраивает в известных реализациях? Реализации, предлагаемые по первым ссылкам в Google, работают не тем образом, как это работает в Python. Во многих статьях предлагается создать объект, заполнить его поля функциями и осуществлять вызовы отдекорированных через эти поля. На первой странице есть несколько ссылок, где используются методы, сходные с моими, Есть ещё много реализаций, но они мне неинтересны. Расскажу наиболее правильную с моей точки зрения. Нормальный декоратор Итак, что такое декоратор? Декоратор, это функция, которая добавляет функции-аргументу функционала. Читать дальше →




Данная cтатья вводная, рассчитана на знакомство с Qt+OpenGL для новичков, которые планируют изучать Qt (как кросс-платформенный инструментарий разработки ПО на языке программирования C++) + OpenGL (как графическую библиотеку). Что потребуется новичку: 1) Qt Creator (имеет хорошую встроенную документацию и подсказки во время набора кода). Скчаать 2) doc.qt.nokia.com ? официальная документация на английском языке 3) doc.crossplatform.ru ? документация на русском языке 4) Обязательно прочесть про Qt и OpenGL 5) Отличная статья для начала изучения Что мы будем делать Поскольку данная статья посвящена конкретно основам, в нашей задаче будет следующее: 1) Разобрать как создается приложение 2) Как рисовать объекты 3) Как работать с указателем мыши и событиями(нажатие клавиш на клавиатуре и на мышке) 4) Работа с таймером 5) Создадим нашу первую банальную игру. Будем с помощью таймера, случайным образом перемещать квадрат. После наведения на квадрат указателя и кликнув по нему левой кнопки мышки, в случае попадания по квадрату, будем прибавлять к полученным очкам +1. Этапы построения


Данный текст является переводом документации Template Haskell, написанной Булатом Зиганшиным. Перевод всего текста разбит на несколько логических частей для облегчения восприятия. Далее курсив в тексте ? примечания переводчика. Другие части: Часть 1. Необходимый минимум Монада цитирования Поскольку шаблоны должны возвращать свои значения обёрнутыми в монаду Q, для этого имеется набор вспомогательных функций, которые ?поднимают? (оборачивают в Q) конструкторы типов Exp, Lit, Pat: lamE (соотв. LamE), varE, appE, varP и т.д. В их сигнатурах так же используются переобозначенные поднятые типы: ExpQ = Q Exp, LitQ = Q Lit, PatQ = Q Pat? (все их можно найти в модуле Language.Haskell.TH.Lib). Используя эти функции, можно значительно сократить код, реже используя do-синтаксис. В TH также есть функция lift, которая поднимает до Q Exp значение любого типа из класса Lift. В некоторых редких случаях, вам может понадобиться не генерация уникального имени, а использование точного имени идентификатора из внешнего (по отношению к шаблону) кода. Для этих целей есть (чистая) функция mkName ? String ? Name. Есть также вспомогательная функция dyn s = return (VarE (mkName s)), которая возвращает значение Exp представляющее переменную с данным именем (dyn ? String ? Q Exp). Цитирующие скобки Построение значений Exp, представляющих абстрактное синтаксическое дерево ? трудоёмкая и скучная работа. Но к счастью, в Template Haskell есть цитирующие скобки, которые преобразуют конкретный Haskell-код в структуру, представляющую его. Читать дальше →


Про Unsafe в Java не слышал только ленивый, однако это не единственный магический класс в Sun/Oracle JDK, стирающий границы Java платформы и открывающий тропинки, не нанесенные на карту публичного API. Я расскажу про некоторые из них, принесшие пользу в реальных проектах. Но помните: недокументированные возможности лишают ваше приложение переносимости на другие Java платформы и, кроме того, являются потенциальным источником нетривиальных ошибок. Я даже зря написал слово ?приложение?. Лучше сказать, что описанные ниже классы вовсе не годятся для приложений! Скорее, они представляют интерес лишь для системного ПО и для любознательных программистов, т.е. для вас :) Читать дальше →



Всем привет! Сегодня мы бы хотели поговорить про нашу образовательную программу для начинающих программистов. Кто-то из вас наверняка знает, что мы регулярно проводим бесплатные образовательные тренинги для всех желающих писать программы на Qt ? и кто-то из вас на них даже успел побывать. Для тех же, кто про эти тренинги не слышал, но с радостью бы на них сходил, мы предлагаем под катом посмотреть полную видеозапись одного подобного мероприятия. Видеозаписи, представленные ниже, были сделаны на трехдневном тренинге по Qt, который мы проводили с 16 по 18 мая этого года в Москве. Он был рассчитан на начинающих Qt-программистов, у которых всё же был опыт программирования на C++. Тренинг проводил Кирилл Кринкин, руководитель лаборатории FRUCT Open Source & Linux Lab, целью которой является продвижение знаний в массы. День первый Знакомство с Qt В первом видеоролике рассказывается про историю Qt, различные отличия этого фреймворка от других. Кирилл Кринкин рассказывает про основные компоненты Qt SDK, отдельно останавливаясь на основных модулях Qt. В окончании видео речь заходит о сравнении Qt в GTK. Остальные записи под хабракатом


Вместо введения отправляю читателя к отличной статье Использование Spring в OSGi-контейнере которая и послужила отправной точкой для практического изучения. Итак, к делу. Рассмотрим классический вариант ? есть бизнес-логика приложения и она как-то взаимодействует с внешним миром. Используем такую связку: клиент транспорт приемник сериализатор/десериализатор метод бизнес логики. Сериализатор напрашивается заменяемым модулем, например сериализация в JSON или сериализация в XML. Про бизнес-логику далее можно забыть, и сосредоточиться на связке приемника и сериализатора. В качестве приемника используем сервлет, а для сериализатора, для простоты, используем реализацию следующего интерфейса: Читать дальше →


Однажды у меня возник вопрос о том, как управлять геометрией окон в X Window из командной строки. На первый взгляд все просто ? при запуске программы достаточно указать дополнительный параметр -geometry и передать размер и положение для создаваемого окна. Пример: xclock -geometry 150x150+0+0, где 150x150 ? размер окна по горизонтали и вертикали, а 0+0 ? положение окна относительно верхнего левого угла экрана. Впрочем, это все есть в мануале по X. Ну а как насчет уже запущенных приложений? Как управлять ими? Для этой цели можно использовать небольшую программу xlayout. О ней и ее использовании дальше в посте. Читать дальше →


Я и коллега aib представляем вашему вниманию экспериментальный выпуск  ?еще одного? IT-тематического подкаста ?Разбор Полетов? В этом выпуске: Прощай Неуловимый Джо — Apache Harmony Finale 1 2 Github пошел по рукам — GitHub Enterprise 1 Успеют ли большие игроки вскочить на подножку вагона NoSQL 1 2 Перебивка — Интересная штуковина Mozilla Tilt Учиться, учиться, учиться — NoSQL from RDBMS perspective 1 2 Новые тучки на небосклоне 1 Как связаться: twitter: @a_abashev G+: gplus.to/gAmUssA


Сегодня в Москве был официально представлен новый (если не сказать очередной) флагман компании Samsung ? Galaxy Note, который уже вызвал достаточно бурные дискуссии, в особенности вокруг своих размеров ? 5 дюймов для смартфона не шутка. Небольшой видеоотчет и превью новинки: На презентации присутствовал известный художник Андрей Бильжо. По его словам, Galaxy Note отлично подойдет творческим людям. Хотя судя по немалой заявленной цене (34 990 р.), на данном этапе производители больше рассчитывают на бизнес-аудиторию. Напомним его основные характеристики: Читать дальше →




Некоторое время назад на Хабре упоминалась инициатива одного из советников Google, цель которой ? дать возможность пользователям точек доступа управлять возможностью участия своего устройства в геолокационных сервисах поискового гиганта. Главной причиной этого были, конечно, всем известные скандалы с Street View и другие проблемы в ряде европейских стран, когда Google был уличен в сборе ?лишней? информации с точек доступа ? такой как MAC-адреса устройств. Вчера Google опубликовала способ влиять на факт включения своего Wi-Fi-устройства в базу данных геолокационных сервисов компании. Все оказалось довольно практично ? пользователям предлагается изменить SSID точки доступа таким образом, чтобы, чтобы он оканчивался строкой "_nomap". После этого, если сигнал точки доступа потребуется одному из Google Location серверов для установления местоположения чего-либо, то такая точка доступа просто будет исключена из базы данных доступных устройств и впредь использоваться не будет. Любопытно, что в Google, по всей видимости, сочли задачу изменения SSID нетривиальной операцией, поскольку предложили достаточно подробную инструкцию для пользователей о том, как это можно осуществить, описывая манипуляции с командной строкой не только в Windows и MacOS, а и для Linux в том числе. [Источник, источник]


IP-телефоны от Cisco, например, популярный 7911G (на анигифе именно он) и более старшие модели, поддерживают возможность выполнения http-запросов для создания сервисов, в частности, телефонного справочника организации. Как всё это работает. Мы настраиваем скрипт на веб-сервере, которых в ответ на GET-запрос от телефона возвращает строго определённый XML, отображаемый телефоном. Для телефонной книги сначала отображается список отделов: Administration http://webserver/phone/telbook.asp?depid=10 При выборе отдела телефон делает второй запрос по адресу из URL и отображает уже список сотрудников и их телефонов. Вот картинка и пример структуры для списка из официального хелпа: Заголовок Подсказка/подзаголовок Имя Телефон Со стороны администратора телефонов требуется прописать вызов нашего скрипта при нажатии какой-то из клавиш или выборе пункта меню, конкретно с 7911G мы используем Application->Help. Читать дальше →



Хотел бы рассказать как на днях решил задачу организации домашнего аудиохранилища. Для начала, что имеем: 1) стационарный компьютер(ОС ? ArchLinux); 2) ноутбук, к которому часто подключается домашняя акустика (ОС ? ArchLinux x64); 3) фонотеку ~ 500 Гб, которая находиться на (1). Что хотелось бы получить в результате (задачи): 1) централизованную библиотеку, к примеру, чтобы созданный на одной машине список воспроизведения был доступен и на другой тоже; 2) возможность управления воспроизведением с любого компьютера; 3) возможность выводить звук на аудиовыход любого компьютера, к примеру, работая на стационарнике и управляя с него слушать музыку на акустике подключенной к ноуту. Реализация. Читать дальше →


В этой статье дается описание новых возможностей веб-фреймворка ASP.NET MVC 4, представленных в первой Developer Preview версии. Мобильный веб Одним из самых устойчивых и набирающих силу трендов в современной разработке является тренд мобильного веба. Иметь мобильную версию сайта ? это уже не просто предложение удобного доступа для некоторых пользователей, но средство зарабатывания денег и расширения аудитории. Именно поэтому в ASP.NET MVC 4 большой упор сделан на предоставление специальных возможностей разработчику, который желает сделать мобильную версию сайта. Мобильный сайт ? два подхода При создании мобильной версии сайта можно воспользоваться двумя подходами: создать отдельную мобильную версию сайта; добавить основному сайту возможность корректно отображаться на мобильных устройствах (адаптивная разметка). Оба подхода нашли свою поддержку в ASP.NET MVC 4. Читать дальше →


.NET Framework 4.5 ? обновление, которое заменит .NET Framework 4 (они не смогут быть установлены одновременно). Наша цель во время работы над .NET 4.5 ? быть полностью совместимы с приложениями собранными под.NET 4. Мы расскажем историю о .NET 3.5 в следующих постах. Одной из первых вещей, которую мы хотим сказать о .NET 4.5 ? это номер версии (4.0.30319) мажорный номер совпадает с .NET 4, эта практика будет использоваться и в дальнейших изменениях. Читать дальше →


Отписаться от этой рассылки

No comments:

Post a Comment