Хабрахабр:
С давних времён использую декораторы в JavaScript. Недавно увидел хабротопик про примеси, который натолкнул меня на мысль поделиться собственным опытом, ибо технологии немного похожие. Что меня не устраивает в известных реализациях? Реализации, предлагаемые по первым ссылкам в Google, работают не тем образом, как это работает в Python. Во многих статьях предлагается создать объект, заполнить его поля функциями и осуществлять вызовы отдекорированных через эти поля. На первой странице есть несколько ссылок, где используются методы, сходные с моими, Есть ещё много реализаций, но они мне неинтересны. Расскажу наиболее правильную с моей точки зрения. Нормальный декоратор Итак, что такое декоратор? Декоратор, это функция, которая добавляет функции-аргументу функционала. Читать дальше →
Данный текст является переводом документации 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-код в структуру, представляющую его. Читать дальше →
Всем привет! Сегодня мы бы хотели поговорить про нашу образовательную программу для начинающих программистов. Кто-то из вас наверняка знает, что мы регулярно проводим бесплатные образовательные тренинги для всех желающих писать программы на Qt ? и кто-то из вас на них даже успел побывать. Для тех же, кто про эти тренинги не слышал, но с радостью бы на них сходил, мы предлагаем под катом посмотреть полную видеозапись одного подобного мероприятия. Видеозаписи, представленные ниже, были сделаны на трехдневном тренинге по Qt, который мы проводили с 16 по 18 мая этого года в Москве. Он был рассчитан на начинающих Qt-программистов, у которых всё же был опыт программирования на C++. Тренинг проводил Кирилл Кринкин, руководитель лаборатории FRUCT Open Source & Linux Lab, целью которой является продвижение знаний в массы. День первый Знакомство с Qt В первом видеоролике рассказывается про историю Qt, различные отличия этого фреймворка от других. Кирилл Кринкин рассказывает про основные компоненты Qt SDK, отдельно останавливаясь на основных модулях Qt. В окончании видео речь заходит о сравнении Qt в GTK. Остальные записи под хабракатом
Некоторое время назад на Хабре упоминалась инициатива одного из советников Google, цель которой ? дать возможность пользователям точек доступа управлять возможностью участия своего устройства в геолокационных сервисах поискового гиганта. Главной причиной этого были, конечно, всем известные скандалы с Street View и другие проблемы в ряде европейских стран, когда Google был уличен в сборе ?лишней? информации с точек доступа ? такой как MAC-адреса устройств. Вчера Google опубликовала способ влиять на факт включения своего Wi-Fi-устройства в базу данных геолокационных сервисов компании. Все оказалось довольно практично ? пользователям предлагается изменить SSID точки доступа таким образом, чтобы, чтобы он оканчивался строкой "_nomap". После этого, если сигнал точки доступа потребуется одному из Google Location серверов для установления местоположения чего-либо, то такая точка доступа просто будет исключена из базы данных доступных устройств и впредь использоваться не будет. Любопытно, что в Google, по всей видимости, сочли задачу изменения SSID нетривиальной операцией, поскольку предложили достаточно подробную инструкцию для пользователей о том, как это можно осуществить, описывая манипуляции с командной строкой не только в Windows и MacOS, а и для Linux в том числе. [Источник, источник]

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