Архив за 04 ноября 2012 - 3

Я не люблю программировать. Мне нужен результат.

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

Но главное — чтоб заработало. И чем раньше — тем лучше.

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

Так вот. Современные языки программирования мешают излагать мысли, обременяя множеством деталей, не относящихся к решаемой задаче, и требующихся лишь для того, чтобы до транслятора языка «дошло». И речь даже не о синтаксисе, хотя многие, особенно компилируемые, языки чрезмерно многословны. Речь, прежде всего, о языковых сущностях, что и есть те «термины», в которых должно изъясняться. Эти сущности — например функции, переменные, классы, методы, пакеты, пространства имён, обобщения, шаблоны — слишком узкие, специализированные, предназначенные больше для машинного представления, нежели для человеческого понимания. Они заставляют переводить мысли на их язык. Это не сложно, конечно. Но это совершенно не относится к решаемой задаче. Выбор подходящих языковых сущностей и перевод на них отвлекают от задачи, снижают концентрацию и, следовательно, снижают эффективность разработки. И, я подозреваю, существенным образом. Понимание же сути в процессе чтения такого кода ещё более затруднительно, что также не лучшим образом влияет на производительность труда, особенно при командной разработке.

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

Основная идея o42a — автоматизировать труд программиста. И достигается это путём радикального сокращения видов языковых сущностей до одного-единственного, способного непосредственно заменить их все. Задача же эффективного машинного представления такой сущности целиком ложится на компилятор.

Читать полностью »

Apple не смогла отстоять права на торговую марку iPhone в Мексике

В Мексике, похоже, судьи способны вполне логично мыслить и принимать рациональные решения. Все дело в том, что Apple проиграла судебный процесс за торговую марку iPhone в Мексике. Торговая марка iFone была зарегистрирована одноименной мексиканской компанией iFone еще в 2003 году, кроме того, это единственная в Мексике компания, которая имеет право использовать и торговую марку iPhone. Регистрация торговой марки iFone была произведена за 4 года до того, как корпорация Apple выпустила свой смартфон. А ведь в некоторых других странах Apple выигрывала почти аналогичные судебные процессы, причем суд не обращал внимания на то, что другие компании регистрировали свои торговые марки задолго до того, как iPhone появился хотя бы в виде рабочего проекта.

Читать полностью »

Минэкономразвития включило в проект основных направлений деятельности правительства России на период до 2018 года пункт о борьбе с распространением нелегального контента. Борьба с торрентами, по словам министерства, является одной из задач в рамках «области обеспечения безопасного интернета». Наряду с уничтожением p2p сетей, предлагается развивать системы фильтрации контента и усилить борьбу с детской порнографией.

Читать полностью »

После установки kubuntu 12.10 на ноутбуке HP Pavilion DV6 практически все оборудование
запустилось «из коробки». Одна важная функция — энергосбережение не активировалась из-за того, что KDE не могла определить подключен ли к сети сетевой адаптер или нет.
Гугление не помогло, но подсказало куда можно копать — в скрипт — /etc/acpi/power.sh, который «дергается» по нужному нам событию.
Решение простейшее:

#!/bin/sh

on_ac_power

test -f /usr/share/acpi-support/key-constants || exit 0

. /usr/share/acpi-support/policy-funcs

if [ -z "$*" ] && ( [ `CheckPolicy` = 0 ] || CheckUPowerPolicy ); then
    exit;
fi

pm-powersave $*

Добавить в /etc/acpi/power.sh строку с командой on_ac_power.
Выдержка из man on_ac_power:

Читать полностью »

Штрих коду исполнилось 60 лет

На Хабре следят за разного рода юбилеями и годовщинами — и людей, и железа, и программ. Но один юбилей все же пропущен, причем дата достаточно значительная. Речь идет о круглой дате в 60 лет — именно столько прошло со времени получения патента на штрих код. Правда, со времени получения патента до внедрения технологии прошло 22 года. Только в 1974 году система штрих-кодов начала активно использоваться, во многом благодаря появлению технологии, оказавшейся способной считывать штрих коды. Речь идет о лазерах. (Осторожно, под катом «тяжелая» инфографика).

Читать полностью »

Как говорится — лень — двигатель прогресса. Я не открыл ничего нового и так же ничего нового не придумал. Взяться за реализацию этой идея меня подтолкнуло то, что универсальные мониторилки не в состоянии работать с некоторыми нашими трекерами (например rutracker.org), да и функционал немного не тот, что мне нужен. Проект изначально писался исключительно под себя, под свои требования и задачи, а потом захотелось поделиться им с людьми.

Список возможностей приложения выглядит следующим образом:
— слежение за темами на nnm-club.ru
— слежение за темами на rutracker.org
— слежение за релизерами на nnm-club.ru
— слежение за релизерами на rutracker.org
— поиск новых серий на lostfilm.tv
— поиск новых серий на novafilm.tv

Если вам стало хоть немного интересно, добро пожаловать под кат.
Читать полностью »

Часто ли вам приходилось просматривать список изменений что бы понять — затронуло ли оно вас?
Хотели бы вы бегло просмотрев комментарий знать всю необходимую информацию?
Хочу поделиться сокращениями устоявшимися в нашей команде.
Читать полностью »

В этом посте пойдет речь об одной интересной фичи в C++11, которая называется делегирующие конструкторы (delegating constructors): почему она интересна, и как ее можно применить для более эффективного управления ресурсами, т.е. реализации идиомы RAII.

Читать полностью »

Обычно box-shadow применяется для создания простых теней на веб-страницах, но также этот инструмент можно использовать намного шире.

Прекрасные особенности CSS3 box shadow

Для начала рассмотрим параметры box-shadow:

  • inset: добавление внутренней тени, необязательный параметр.
  • x-offset: горизонтальное смещения тени, обязательный параметр, может быть отрицательным
  • y-offset: вертикальное смещения тени, обязательный параметр, может быть отрицательным
  • blur: радиус размытия тени, значение «0» по умлочанию
  • spread: плотность, важный параметр, о котором пойдет речь ниже
  • color: цвет тени, можно использовать строчные значения, hex-код, rgb, hsla, rgba и т.д. Необязательный параметр, но некоторые браузеры используют черный цвет по умолчанию

Читать полностью »

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

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js