Я делаю много презентаций, и часто нужно показать код «по частям», то есть показать ход мысли в процессе последовательного написния кода. К сожалению, PowerPoint не настроен для таких целей. Поэтому я решил написать расширение для PowerPoint 2007 которое автогенерировало бы последовательность слайдов с «прогрессивной разверткой» кода и комментариев. Собственно об этом и будет рассказ.
Killy @Killy
User
UserJS. Часть I: Введение
3 min
14KЭто первая статья из серии, посвященной написанию пользовательских скриптов для Opera. Изначально планировалась одна единственная статья, но она уже перевалила за 10 экранов и все ещё дописывается.
Статьи расчитаны на аудиторию, хорошо знающую javascript и DOM. Описаны только особенности использования javascript в userjs.
- Первая статья является кратким описанием пользовательских скриптов (далее userjs), их возможностей и соответствующих настроек Opera. Это вольный пересказ официальной документации. Все, кто написал хоть один userjs, могут с чистой совестью эту часть пропустить.
- Вторая статья посвящена вопросам переиспользования кода в userjs, а также различным трюкам при написании пользовательских скриптов (далее userjs) для Opera, вроде сохранения настроек, доступа к буферу обмена и кросс-доменных запросов.
- Третья статья посвящена вопросам безопасности при написании userjs, особенно при использовании продвинутых трюков, которые дают доступ к важным данным или файловой системе.
- Четвертая статья посвящена userjs framework'у, который является готовой реализацией описанных трюков.
Статьи расчитаны на аудиторию, хорошо знающую javascript и DOM. Описаны только особенности использования javascript в userjs.
+14
Настройка IDE для автоматического запуска тестов
4 min
9KTranslation
Источник

Когда я программирую, то сначала пишу тесты. Частый ручной прогон тестов может превратиться в утомительное занятие.
Опишу обычный сценарий разработки кода:
Ваши тесты «зеленые» и вы приступили к рефакторингу, который на ваш взгляд простой и безопасный. После этого вы запустили тесты и увидели, что что-то сломалось. Но перед этим вы уже сделали десять маленьких изменений и не знаете какое из них поломало программу. Решение заключалось в более частом запуске тестов (после каждого изменения), но вы забывали сделать это.

Когда я программирую, то сначала пишу тесты. Частый ручной прогон тестов может превратиться в утомительное занятие.
Опишу обычный сценарий разработки кода:
Ваши тесты «зеленые» и вы приступили к рефакторингу, который на ваш взгляд простой и безопасный. После этого вы запустили тесты и увидели, что что-то сломалось. Но перед этим вы уже сделали десять маленьких изменений и не знаете какое из них поломало программу. Решение заключалось в более частом запуске тестов (после каждого изменения), но вы забывали сделать это.
+14
4 способа как создать блоки одинаковой высоты
5 min
232KTranslation

Раньше, когда все верстали с использованием таблиц, создать колонки одинаковой высоты было очень просто. Достаточно создать таблицу, например, с 3мя колонками и все они автоматически будут иметь одинаковую высоту. Но в блочной верстке не все так просто.
В этой статье я расскажу вам о некоторых способах создания колонок равной высоты и о совместимости этих методов с браузерами (включая IE6). Все эти способы описывают создание 3х колоночного макета.
+54
Визуализация зависимостей между проектами
1 min
2.5K
+5
10 приемов, разрушающих хрупкую красоту кода
19 min
102KСтатья приводится в сокращении из-за ограничения на объем материала.
Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.
Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:

- Объявление всех переменных в начале программы;
- Возврат результата функции через ее параметр;
- Отсутствие локальных функций;
- Отсутствие
else if
; - Использование параллельных массивов;
- Хранение размера массива в отдельной переменной;
- Доступ к свойствам объекта через
obj.getProperty()
иobj.setProperty(value)
; - Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
- Отсутствие именованных параметров функции;
- Невозможность объявления объектов «на лету».
Объявление всех переменных в начале программы
В двух словах:
Переменные должны объявляться в начале логического блока, в котором они используются, а НЕ в начале функции или программы.
+246
Разбор опций командной строки в UNIX-подобных системах
7 min
44KTutorial
Введение
Одной из важных задач любой программы, будь она консольной или графической является интерпретация аргументов командной строки. Формально аргументами называются все слова в командной строке(в том числе и имя самой команды) разбитые разделителем (как правило, это пробел и табуляция), кавычки же позволяют включать разделители в аргументы.
Аргументы можно подразделить на опции и операнды. Опции изменяют поведение программы или предоставляют ей дополнительную информацию. У опции могут быть свои аргументы, которые являются информацией необходимой только для этой опции.
+66
Личный тайм-менеджмент
9 min
93KПочитав недавний топик про лягушек я понял, что Хабрасообщество не очень хорошо ориентируется в вопросах тайм-менеджмента и многие никогда не занимались построением своей тайм-системы.
Поэтому я попробую исправить этот недочёт.
Под катом Вы не найдёте каких-то инновационных моделей управления временем. Это будет фундамент, основа, без которой нельзя обойтись людям, которые заботятся о своём будущем, о своём благосостоянии и личностном развитии.
Welcome!
Поэтому я попробую исправить этот недочёт.
Под катом Вы не найдёте каких-то инновационных моделей управления временем. Это будет фундамент, основа, без которой нельзя обойтись людям, которые заботятся о своём будущем, о своём благосостоянии и личностном развитии.
Welcome!
+160
SVN merge for dummies
7 min
30KПростыми словами и с большим количеством картинок на примере Eclipse рассказывается, как сделать svn merge. Статья будет полезна тем, у кого выполнение слияния веток еще не стало повседневной частью работы.
+16
Разработка через задницу
2 min
9.9KTranslation
Индустрия программного обеспечения — это, наверное, крупнейший в мире питомник новых систем управления. Agile, Экстремальное Программирование, Разработка Через Тестирование (Test Driven Development, TDD) — акронимы и фреймворки продолжают плодиться. Почему?
Кто-то скажет: незрелость — производство ПО еще молодая промышленность и все эти изменения — путь к некоторым истинным основам. Другие говорят, это потому, что люди от программирования просто любят выдумывать всякие штуки и сами не могут разобраться. А я скажу так: раз уж мы идем к тому, чтобы иметь дюжины моделей, хотя бы некоторые из них могут быть честными, хотя и циничными, по отношению к тому, что на самом деле происходит большую часть времени.
Кто-то скажет: незрелость — производство ПО еще молодая промышленность и все эти изменения — путь к некоторым истинным основам. Другие говорят, это потому, что люди от программирования просто любят выдумывать всякие штуки и сами не могут разобраться. А я скажу так: раз уж мы идем к тому, чтобы иметь дюжины моделей, хотя бы некоторые из них могут быть честными, хотя и циничными, по отношению к тому, что на самом деле происходит большую часть времени.
+97
Атомарная группировка, или Ни шагу назад!
8 min
17K0. Присказка
В некотором царстве, в некотором государстве жил-был программист. Звали его, как полагается, Иван. Был он настоящим спецом, обладал всеми Тремя Великими Добродетелями Программиста, то есть был ленив, спесив и нетерпелив. Случилась в том царстве печаль великая: кризис. И выгнали Ваню с работы без выходного пособия. Горевал Ваня долго, а потом собрался с духом и разослал резюме по всему белу свету. Долго ли, коротко ли, вызвали Ваню на собеседование. Требований к соискателю было много, но главное — требовалось хорошо владеть регулярными выражениями. До собеседования — почти месяц, готовься — не хочу. Будучи человеком серьёзным, готовиться Иван решил обстоятельно. 3 недели и 3 дня он лежал на печи, почитывал Хабр и думал, как же неслыханно обстоятельно он будет готовиться. До собеседования остался 1 день. Ванюша мысленно обругал работодателей, которые назначают собеседование так скоро, что совсем подготовиться не успеваешь, слез с печи, сдал пивные бутылки и на вырученные деньги купил книжку по регексам. Читал он её до полного изнеможения, пока не отключился. Утром мы найдём сонную физиономию Ванюши лежащей, как на подушке, на этой самой книжке под Хабракатом.
+85
Ускорение сборки Qt компилятором Visual C++
1 min
6.4KQt под Visual C++ собирается с помощью nmake. nmake — инструмент старый, давно не развивающийся. В то время, как пользователи GNU инструментария получали полную отдачу от новых двух- и четырехядерных процессоров, распараллеливая сборку с помощью make -j, пользователи Visual C++ собирали Qt в один «поток».
Но разработчики Qt не забыли о пользователях Visual C++ и выпустили для них утилиту jom (исходники, бинарник). jom определяет количество ядер в системе и распараллеливает сборку.
Пользоваться утилитой предельно просто — нужно положить её в директорию из PATH и запускать вместо nmake.
Happy building!
Но разработчики Qt не забыли о пользователях Visual C++ и выпустили для них утилиту jom (исходники, бинарник). jom определяет количество ядер в системе и распараллеливает сборку.
Пользоваться утилитой предельно просто — нужно положить её в директорию из PATH и запускать вместо nmake.
Happy building!
+5
Многоуровневое дерево с маркерами (только HTML, CSS, без Javascript)
5 min
24K
Позже это дерево дало мне плоды в виде habrahabr.ru/blogs/css/53792
+103
Panda USB and AutoRun Vaccine — лекарство от autorun-вирусов на флешке
5 min
26K5 марта я написал свою статью о скрипте AUTOSTOP для защиты флешек от autorun-вирусов, получившую немалый отклик. И только я сегодня собрался писать новую статью об альтернативном (более надежном) методе, как на одном из ресурсов, в теме, посвященной обсуждению скрипта, мне подсказали программу Panda USB and AutoRun Vaccine, работающую именно по методу, который я хотел описать. Причем работающую просто блестяще! Файл autorun.inf, создаваемый ею на флешке (дабы предотвратить создание такого файла вирусом) невозможно ни удалить, ни переименовать (в чем была слабость моего скрипта), ни модифицировать, ни открыть.

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

Познакомимся с программой поближе, рассмотрим ее возможности и метод, на котором базируется принцип работы.
+92
Автогенерация CSS Sprites
2 min
750Свершилось. Долгие бессонные ночи не прошли даром и мысль, заявленная Вадимом aka pepelsbey, обрела более-менее физические очертания.
sprites.webo.in (сырая-сырая альфа-версия) — название, собственно, говорит само за себя. Вводим URL CSS-файла — на выходе получаем архив с минимизированным (никакой сортировки селекторов, просто базовая минимизация) CSS-файлом и набором свеженьких спрайтов. Здорово?
sprites.webo.in (сырая-сырая альфа-версия) — название, собственно, говорит само за себя. Вводим URL CSS-файла — на выходе получаем архив с минимизированным (никакой сортировки селекторов, просто базовая минимизация) CSS-файлом и набором свеженьких спрайтов. Здорово?
+68
Named Capturing Group и Backreferences
3 min
6.5KДанная заметка не предназначена для начинающих изучать регулярные выражения, для начинающих я бы посоветовал книгу Ben Forta "Teach Yourself Regular Expressions in 10 Minutes" (ISBN: 0-672-32566-7).
Для тестирования и отладки регулярных выражений идеально подходит программа RegexBuddy (http://www.regexbuddy.com). Чтобы отлаживать следующие примеры нужно во вкладку Test скопировать HTML какой-либо страницы или вбить несколько тегов самим.
Задача — найти в HTML все теги IMG и вытащить из тегов значения атрибутов SRC и ALT.
Для тестирования и отладки регулярных выражений идеально подходит программа RegexBuddy (http://www.regexbuddy.com). Чтобы отлаживать следующие примеры нужно во вкладку Test скопировать HTML какой-либо страницы или вбить несколько тегов самим.
Задача — найти в HTML все теги IMG и вытащить из тегов значения атрибутов SRC и ALT.
+48
Asterisk GUI. Первые шаги
3 min
100KПочти всякий раз, когда речь заходит о выборе web-интерфейса к asterisk, в ход идут рекомендации «тяжелой артиллерии»: trixbox, elastix, freepbx. Asterisk GUI остается эдакой «темной лошадкой»: вроде и слышали о нем, вроде и скриншоты симпатишные, а реально работающих систем — с гулькин нос. Частично это объясняется новизной, необкатанностью продукта. Частично — отсутствием документации. Частично — иннертностью сообщества. Попытаемся сдвинуть дело с мертвой точки…
В статье — пошаговые инструкции, как установить и настроить Asterisk с Asterisk GUI.
В статье — пошаговые инструкции, как установить и настроить Asterisk с Asterisk GUI.
+5
Трюки со специализацией шаблонов C++
4 min
110K
+43
Asterisk – система компьютерной телефонии уровня предприятия
9 min
274K
+105
Google Translator
1 min
2.1KНедавно я писал о классе, который реализовывает перевод текстов через Google Translator.
Несколько времени поразмыслив я решил пойти дальше. Зачем людям какой-то класс? Они хотят видить как все работает.
Именно поэтому я написал маленький open-source проект.

Несколько времени поразмыслив я решил пойти дальше. Зачем людям какой-то класс? Они хотят видить как все работает.
Именно поэтому я написал маленький open-source проект.

+108
Information
- Rating
- Does not participate
- Location
- Россия
- Registered
- Activity