Search
Write a publication
Pull to refresh
0
Иван & Иван @GKelpiread⁠-⁠only

User

Send message

Io Language: Метапрограммирование

Reading time4 min
Views2.4K

Метапрограммирование в языке io



В продолжении серии статей про чудесный язык io я таки собрался написать про метапрограммирование.
habrahabr.ru/blogs/crazydev/29375
habrahabr.ru/blogs/crazydev/28254
habrahabr.ru/blogs/crazydev/28167
habrahabr.ru/blogs/crazydev/28041

Метапрограммирование — создание программ, которые создают другие программы как результат своей работы (либо — частный случай — изменяющие или дополняющие себя во время выполнения).
© Православная википедия

Совершенно не интересен канонический смысл термина «метапрограммирование», любой тьюринг-полный язык имеющий библиотеки IO способен генерировать исходные тексты программ на произвольном языке. Намного интересней возможность самопознания программы — интроспекция, а так же генерация и модификация самой себя в процессе выполнения.

Если посмотреть на крестных отцов io, то можно увидеть Lisp, Smalltalk, Self и другие динамические языки. Но все они решают проблему метапрограммирования по своему, например Lisp генерирует код в процессе компиляции из макросов, очень мощных штук. Smalltalk содержит развитую систему «отражений» (reflection) позволяющую гулять по дереву объектов в любую сторону. Io пошел по пути smalltalk'а и строит свои динамические механизмы на базе объектной модели, а не универсальности синтаксиса (как лисп).

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

Положительная и отрицательная мотивация

Reading time4 min
Views11K
Представим себе любой небольшой бизнес, оказывающий профессиональные услуги (например, веб-студию).

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

Цели

Какие цели преследует руководитель? На мой взгляд, главные приоритеты это:
— рост прибыли или положительная динамика
— здоровая атмосфера в коллективе
— качество оказываемых услуг

Будем называть это все простым словом эффективность.

По мотивации и управлению персоналом написаны сотни книг, и теория, и практика этого вопроса развиты чрезвычайно.

Эта заметка посвящена одному вопросу: есть ли место в небольших организациях отрицательной мотивации как существенном способу повышения общей эффективности?
Читать дальше →

MarketSplash: капля усилий для успешного бренда

Reading time2 min
Views1.8K
imageНа этой неделе HP запустила новый онлайн-проект MarketSpalsh. Он стал единственным в своем роде «конвейером брендов», на котором производство уникальных отличительных черт для какого угодно бизнеса будет поставлено на поток. К примеру, всего за $579 вы можете получить полный набор бренд-материалов, от логотипа и фирменной печати до набора визиток, созданный целым сообществом профессиональных маркетологов и дизайнеров. Кстати, сделать себе красивую визитку по одному из 1 400 шаблонов вы можете абсолютно бесплатно — вам останется только распечатать ее на домашнем принтере.
Читать дальше →

Хотите умереть быстро?.. Станьте ПМ-ом!

Reading time6 min
Views15K
За 5 лет работы в компании сменилось огромное количество менеджеров проектов.
ПМ-ы мрут как мухи. Как пехота штрафбата, брошенная в бессмысленную лобовую атаку.

Мрут сами (уходят), их убивают (увольняют), устраивают ксеноцид (их увольняют вместе с командой). Бегущие без винтовок, сзади вас товарищи, заменят вас. И проживут свои 2 минуты.

56.51 КБ
Читать дальше →

Убийство форума

Reading time2 min
Views2.3K
Навеяно одим бесчеловечным поступком, произошедшем вчера в российском WAP-сообществе...

Наверное всем старым мобиловодам был известен WAP-ресурс Siemens-Club, в частности его форум. В свое время, в 2005-2006 годах он находился на первых строчках рейтингов по посещаемости, до того момента как перестали производить телефоны данной марки. Как ни странно, после этого события посещаемость ресурса хоть и упала, но не очень сильно. С другой стороны, форум превратился из чисто технического в более свободный, где обсуждались вопросы уже обширной тематики.
Конечно, костяк форума, «технари», остались, но общаясь уже более на равных с нубами (не на кого было молиться)… себя я относил именно к старичкам, т.к. общался там практически с создания этого форума. Но, как говорится, не было печали…

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

Советы для работы в Linux с флешки

Reading time4 min
Views19K
После покупки Asus eeePC и установки туда линукса я задумался о продлении срока службы встроенных ssd-дисков. В поисках по интернету я нашел интересную статью, в которой описано как это можно сделать. Статья мне очень понравилась и я решил сделать ее перевод.
Читать дальше →

Блокнот для иконок

Reading time1 min
Views2.4K


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

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

Памятка дизайнеру сайтов

Reading time10 min
Views246K
Вторая версия статьи, расширенная и дополненая.

Большая часть готовилась для моего выступления на «РИТ: Клиентские технологии», куда я, к сожалению, не доехал.

 

Памятка дизайнеру сайтов

К сожалению огромная армия даже опытных, «модных» и эффектных дизайнеров забывают, что результатом их творчества должен быть сайт, а не только «супер-скриншот» годный только для портфолио.

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

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

Тим О’Рейли. Работа, которая имеет значение: основные принципы

Reading time7 min
Views10K

Work on Stuff that Matters: First Principles


опубликовано 11 января 2009 года

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

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

Ликбез по основам безопасности и криптографии

Reading time6 min
Views12K

Криптография



Три кита криптографии — хеш, шифрование симметричное, шифрование асимметричное (с открытым ключом). Основываются криптографические алгоритмы на сложности вычисления больших чисел, но подробнее об этом, если вас конкретно интересует «начинка», стоит читать не в общих обзорах, именуемых ликбезом. Здесь же содержится простое изложение, без лишних заморочек, то есть поверхностное.
Читать дальше →

10 шагов к постижению форм в Друпале

Reading time1 min
Views3K

Этот урок создан специально для начинающих и средне-продвинутых Друпал-разработчиков. Он должен быстро дать понятие об азах Forms API, а также показать возможность создаия более сложных вещей на примере пошаговых форм.

Когда я только начинал подготовку этого урока, у меня был соблазн поставить под каждым куском кода ссылку для скачивания готового примера, но в послествии, я отказался от этого. Будет намного полезнее, если вы сами будете вставлять код в свои модули, тестируя и набираясь опыта в реальных условиях.

И прежде чем начать, я расскажу вам как все-таки заставить любой из этих кусков кода работать. Предположим, вы уже имеете установленный тестовый сайт на Друпал 6. Вам прийдется проделать следующие действия:
  1. Создать новую директорию в sites/all/modules, например my_module
  2. Создать файл my_module.info в директории my_module, содержащий это:
  3. Создать файл my_module.module. Полностью скопировать отсюда первый пример и вставить в my_module.module.
  4. Включить модуль «My module» на странице модулей (admin/build/modules).
  5. Перейти на страницу my_module/form для запуска кода.
  6. Далее вам предстоит провести для каждого примера, полную замену содержимого my_module.module на код последующего примера. Не забывайте после этого переходить на страницу my_module/form для того, чтобы увидеть результаты своей работы.

А дальше огромная куча кода »

8 советов для соискателей

Reading time2 min
Views728
Ситуация на рынке труда в связи с кризисом осложнилась, думаю ни для кого это не новость. Достаточно даже просто посмотреть на статистику увольнений в забугорье. Несмотря на это, многие компании все-таки не останавливают поиски специалистов. Поэтому на первый план выходит проблема конкуренции. Нужно быть не просто специалистом, а Профессионалом с большой буквы. Вот несколько советов, для тех кто хочет остаться «в теме» несмотря на стремительное изменение ситуации вокруг.
Читать дальше →

Атаки на беспроводные сети. Часть 1

Reading time5 min
Views71K
В прошлой статье о беспроводных сетях мы рассмотрели первый этап — сбор информации, или wardriving. Сейчас же, продемонстрируем несколько способов получения несанкционированного доступа к беспроводным сетям, а также рекомендации по защите от них.

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

Кабельное хозяйство

Reading time4 min
Views12K
По индукции на статью arxontа.

Хотелось бы поделиться опытом учёта сетевых и телефонных кабелей и способам их маркировки (обозначений). Выслушать по этому поводу критику и поинтересоваться, как к этими задачам подходят другие сисадмины.

Опишу правила, которых мы придерживаемся (стараемся придерживаться) в нашей конторе (~80 компов, ~80 телефонов, 8 камер наблюдения, 4 сервера, 8 VoIP шлюзов, 1 стойка, полтора провайдера, полтора сисадмина)
Читать дальше →

Как удобнее читать распечатки книг

Reading time1 min
Views3.5K
Распечатал я на принтере книгу; получилась стопка в сотню листов. И, так как листы заполнены со всех сторон, при чтении мне приходится слишком часто решать: перевернуть лист или отложить его насовсем. Неудобно.

Алгоритм расчёта для каждой страницы у меня примерно такой:
— найти и считать число внизу страницы,
— понять чётное оно или не,
— вспомнить что нечётное соответствует первой стороне листа, чётное — второй,
— вспомнить что если сейчас вторая сторона, то третьей уже не будет и страницу надо отложить; иначе — перевернуть.

При этом кэш для меня не работает — за время увлекательного (да любого) чтения страницы его стирает напрочь. По меньшей мере нет уверенности, а без неё и кэш не кэш.

В итоге, я получаю периодические и частые:
— скрипы мозгами,
— прерывания потока восприятия
— и фрустрации от всего этого.

От этих неприятностей я избавился, массово заштриховав карандашом уголки чётных листов; это было нетрудно:

пример

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

ICQ-маскарад как универсальное решение проблем с изменениями протокола ICQ

Reading time2 min
Views1.4K
Это мой первый пост на хабре, поэтому любые пожелания к стилю написания приветствуются.

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

В данной статье я расскажу об реализации такой прослойки, в виде специализированного прокси — ICQGATE или ICQ-маскарад.
Читать дальше →

Тривиальные задачи по вёрстке

Reading time4 min
Views60K
image

Начинаю вести серию статей Это статья про вёрстку html css js, начинаю с самого простого, потом планирую описать более сложные вещи и всякие тонкости и этим видимо так и закончил

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

25 самых опасных ошибок в программировании

Reading time8 min
Views2.9K
Всем привет.
Под катом — перевод статьи Джеффа Атвуда, в которой он приводит список 25 наиболее опасных ошибок в программировании от Common Weakness Enumeration со своими комментариями.

Сразу хочу сказать. Большинство ошибок, перечисленных там — общеизвестны и многим набили оскому. Несмотря на это, мы продолжаем вновь и вновь наступать на те же грабли. И я в том числе.
Однако, поехали

Инструкция по воплощению

Reading time6 min
Views890
Полезная статья в журнале «Деньги» о том, «можно ли создать универсальный рецепт извлечения денег из идей?». Особенна полезна, как информация к размышлению тем, кто, как говорится, берется за дело, чтобы понять сколько и на каких усливиях можно за него получить.

Полная версия доступна здесь.
Читать дальше →

Системное администрирование. Начало

Reading time6 min
Views222K
Существует много пособий по настройке программ (Операционок, сервисов, сайтов и тд), но редко можно встретить мануал по организационным вопросам связанным с системным администрированием. Сразу скажу, опыт работы у меня достаточный. Рассматриваться предмет будет на моем личном примере работы, сразу скажу что любые аргументированные дополнения, и исправления приветствуются. Также поясню для господ минусующих: «Не нравится? Сделай лучше!», и обязательно пришли ссылку, почитаю с большим удовольствием.
Начнем

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity