Search
Write a publication
Pull to refresh
52
0
Killy @Killy

User

Send message

Опыт использования VSTO для PowerPoint 2007

Reading time6 min
Views1.6K
Я делаю много презентаций, и часто нужно показать код «по частям», то есть показать ход мысли в процессе последовательного написния кода. К сожалению, PowerPoint не настроен для таких целей. Поэтому я решил написать расширение для PowerPoint 2007 которое автогенерировало бы последовательность слайдов с «прогрессивной разверткой» кода и комментариев. Собственно об этом и будет рассказ.
Читать дальше →

UserJS. Часть I: Введение

Reading time3 min
Views14K
Это первая статья из серии, посвященной написанию пользовательских скриптов для Opera. Изначально планировалась одна единственная статья, но она уже перевалила за 10 экранов и все ещё дописывается.
  • Первая статья является кратким описанием пользовательских скриптов (далее userjs), их возможностей и соответствующих настроек Opera. Это вольный пересказ официальной документации. Все, кто написал хоть один userjs, могут с чистой совестью эту часть пропустить.
  • Вторая статья посвящена вопросам переиспользования кода в userjs, а также различным трюкам при написании пользовательских скриптов (далее userjs) для Opera, вроде сохранения настроек, доступа к буферу обмена и кросс-доменных запросов.
  • Третья статья посвящена вопросам безопасности при написании userjs, особенно при использовании продвинутых трюков, которые дают доступ к важным данным или файловой системе.
  • Четвертая статья посвящена userjs framework'у, который является готовой реализацией описанных трюков.

Статьи расчитаны на аудиторию, хорошо знающую javascript и DOM. Описаны только особенности использования javascript в userjs.
Читать дальше →

Настройка IDE для автоматического запуска тестов

Reading time4 min
Views9K
Источник

Блог Google Testing

Когда я программирую, то сначала пишу тесты. Частый ручной прогон тестов может превратиться в утомительное занятие.

Опишу обычный сценарий разработки кода:

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

Лекарство от забывчивости...

4 способа как создать блоки одинаковой высоты

Reading time5 min
Views232K
fourmethodsbanner
Раньше, когда все верстали с использованием таблиц, создать колонки одинаковой высоты было очень просто.  Достаточно создать таблицу, например, с 3мя колонками и все они автоматически будут иметь одинаковую высоту.  Но в блочной верстке не все так просто.
В этой статье я расскажу вам о некоторых способах создания колонок равной высоты и о совместимости этих методов с браузерами (включая IE6). Все эти способы описывают создание 3х колоночного макета.
Читать дальше →

Визуализация зависимостей между проектами

Reading time1 min
Views2.5K
Недавно наткнулся на CodeProject’е на статью Марка Клифтона, посвященную поиску зависимостей между проектами в солюшне. К сожалению самого графа представленная программа не генерилровла и поэтому, будучи вдохновленным подходом Евгения Кучерука к визуализации содержимого Windsor-контейнера решил быстренько реализовать тот же функционал для зависимостей между проектами. Вот, собственно, что получилось.

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

10 приемов, разрушающих хрупкую красоту кода

Reading time19 min
Views102K
Статья приводится в сокращении из-за ограничения на объем материала.

Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

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


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

Разбор опций командной строки в UNIX-подобных системах

Reading time7 min
Views44K

Введение


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

Личный тайм-менеджмент

Reading time9 min
Views93K
Почитав недавний топик про лягушек я понял, что Хабрасообщество не очень хорошо ориентируется в вопросах тайм-менеджмента и многие никогда не занимались построением своей тайм-системы.

Поэтому я попробую исправить этот недочёт.

Под катом Вы не найдёте каких-то инновационных моделей управления временем. Это будет фундамент, основа, без которой нельзя обойтись людям, которые заботятся о своём будущем, о своём благосостоянии и личностном развитии.

Welcome!

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

SVN merge for dummies

Reading time7 min
Views30K
Простыми словами и с большим количеством картинок на примере Eclipse рассказывается, как сделать svn merge. Статья будет полезна тем, у кого выполнение слияния веток еще не стало повседневной частью работы.
читать дальше

Разработка через задницу

Reading time2 min
Views9.9K
Индустрия программного обеспечения — это, наверное, крупнейший в мире питомник новых систем управления. Agile, Экстремальное Программирование, Разработка Через Тестирование (Test Driven Development, TDD) — акронимы и фреймворки продолжают плодиться. Почему?

Кто-то скажет: незрелость — производство ПО еще молодая промышленность и все эти изменения — путь к некоторым истинным основам. Другие говорят, это потому, что люди от программирования просто любят выдумывать всякие штуки и сами не могут разобраться. А я скажу так: раз уж мы идем к тому, чтобы иметь дюжины моделей, хотя бы некоторые из них могут быть честными, хотя и циничными, по отношению к тому, что на самом деле происходит большую часть времени.
Читать дальше →

Атомарная группировка, или Ни шагу назад!

Reading time8 min
Views17K

0. Присказка


В некотором царстве, в некотором государстве жил-был программист. Звали его, как полагается, Иван. Был он настоящим спецом, обладал всеми Тремя Великими Добродетелями Программиста, то есть был ленив, спесив и нетерпелив. Случилась в том царстве печаль великая: кризис. И выгнали Ваню с работы без выходного пособия. Горевал Ваня долго, а потом собрался с духом и разослал резюме по всему белу свету. Долго ли, коротко ли, вызвали Ваню на собеседование. Требований к соискателю было много, но главное — требовалось хорошо владеть регулярными выражениями. До собеседования — почти месяц, готовься — не хочу. Будучи человеком серьёзным, готовиться Иван решил обстоятельно. 3 недели и 3 дня он лежал на печи, почитывал Хабр и думал, как же неслыханно обстоятельно он будет готовиться. До собеседования остался 1 день. Ванюша мысленно обругал работодателей, которые назначают собеседование так скоро, что совсем подготовиться не успеваешь, слез с печи, сдал пивные бутылки и на вырученные деньги купил книжку по регексам. Читал он её до полного изнеможения, пока не отключился. Утром мы найдём сонную физиономию Ванюши лежащей, как на подушке, на этой самой книжке под Хабракатом.
Читать дальше →

Ускорение сборки Qt компилятором Visual C++

Reading time1 min
Views6.4K
Qt под Visual C++ собирается с помощью nmake. nmake — инструмент старый, давно не развивающийся. В то время, как пользователи GNU инструментария получали полную отдачу от новых двух- и четырехядерных процессоров, распараллеливая сборку с помощью make -j, пользователи Visual C++ собирали Qt в один «поток».

Но разработчики Qt не забыли о пользователях Visual C++ и выпустили для них утилиту jom (исходники, бинарник). jom определяет количество ядер в системе и распараллеливает сборку.

Пользоваться утилитой предельно просто — нужно положить её в директорию из PATH и запускать вместо nmake.

Happy building!

Многоуровневое дерево с маркерами (только HTML, CSS, без Javascript)

Reading time5 min
Views24K
Многоуровневое дерево с маркерами (только HTML, CSS)До того как заняться верской гитарных аккордов (статьи 1,2,3) я столкнулся с необходимостью сделать человеку на сайте меню-дерево. Рисовать не хотелось вообще, поэтому я взял старый добрый HTML с CSS и начал делать это дерево, начал с простого одноуровневого, а позже сделал многоуровневое с маркерами, которое и представлю.

Позже это дерево дало мне плоды в виде habrahabr.ru/blogs/css/53792
Читать дальше →

Panda USB and AutoRun Vaccine — лекарство от autorun-вирусов на флешке

Reading time5 min
Views26K
5 марта я написал свою статью о скрипте AUTOSTOP для защиты флешек от autorun-вирусов, получившую немалый отклик. И только я сегодня собрался писать новую статью об альтернативном (более надежном) методе, как на одном из ресурсов, в теме, посвященной обсуждению скрипта, мне подсказали программу Panda USB and AutoRun Vaccine, работающую именно по методу, который я хотел описать. Причем работающую просто блестяще! Файл autorun.inf, создаваемый ею на флешке (дабы предотвратить создание такого файла вирусом) невозможно ни удалить, ни переименовать (в чем была слабость моего скрипта), ни модифицировать, ни открыть.

image

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

Автогенерация CSS Sprites

Reading time2 min
Views750
Свершилось. Долгие бессонные ночи не прошли даром и мысль, заявленная Вадимом aka pepelsbey, обрела более-менее физические очертания.

sprites.webo.in (сырая-сырая альфа-версия) — название, собственно, говорит само за себя. Вводим URL CSS-файла — на выходе получаем архив с минимизированным (никакой сортировки селекторов, просто базовая минимизация) CSS-файлом и набором свеженьких спрайтов. Здорово?
Читать дальше →

Named Capturing Group и Backreferences

Reading time3 min
Views6.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.

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

Asterisk GUI. Первые шаги

Reading time3 min
Views100K
Почти всякий раз, когда речь заходит о выборе web-интерфейса к asterisk, в ход идут рекомендации «тяжелой артиллерии»: trixbox, elastix, freepbx. Asterisk GUI остается эдакой «темной лошадкой»: вроде и слышали о нем, вроде и скриншоты симпатишные, а реально работающих систем — с гулькин нос. Частично это объясняется новизной, необкатанностью продукта. Частично — отсутствием документации. Частично — иннертностью сообщества. Попытаемся сдвинуть дело с мертвой точки…
В статье — пошаговые инструкции, как установить и настроить Asterisk с Asterisk GUI.

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

Трюки со специализацией шаблонов C++

Reading time4 min
Views110K
imageСпециализация шаблонов является одной из «сложных» фичей языка с++ и использутся в основном при создании библиотек. К сожалению, некоторые особенности специализации шаблонов не очень хорошо раскрыты в популярных книгах по этому языку. Более того, даже 53 страницы официального ISO стандарта языка, посвященные шаблонам, описывают интересные детали сумбурно, оставляя многое на «догадайтесь сами — это же очевидно». Под катом я постарался ясно изложить базовые принципы специализации шаблонов и показать как эти принципы можно использовать в построении магических заклинаний.

Ознакомиться с заклинаниями

Asterisk – система компьютерной телефонии уровня предприятия

Reading time9 min
Views274K
Я хочу рассказать о свободном решении для компьютерной телефонии от компании Digium. Asterisk – это ATC созданная хакерами (в первоначальном смысле этого слова), а точнее, это супер конвергентная платформа компьютерной телефонии, распространяемая по лицензии GNU GPL, изначально разрабатываемая Марком Спенсером (Mark Spenser), позже ставшим президентом и техническим директором компании Digium. Благодаря коммерческой поддержке Его компании и лицензии GNU GPL Asterisk активно развивается и поддерживается тысячами людей со всей планеты.

Дaлее

Google Translator

Reading time1 min
Views2.1K
Недавно я писал о классе, который реализовывает перевод текстов через Google Translator.
Несколько времени поразмыслив я решил пойти дальше. Зачем людям какой-то класс? Они хотят видить как все работает.
Именно поэтому я написал маленький open-source проект.
image
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity