Pull to refresh
43
0
Александр Вольф @alexwolf

User

Send message

Разработка дополнений только что стала проще

Reading time3 min
Views4.1K
[Developer Hub Logo]С превеликой радостью объявляем, что мы только что запустили Add-on Developer Hub (beta) — всеобъемлющий сборник сведений, где разработчики дополнений могут выяснить, зачем они пожелали бы изготовить дополнение, и как делают дополнения, и управлять списками своих дополнений.

Читать дальше →
Total votes 76: ↑67 and ↓9+58
Comments11

Маленький помощник для менеджмента своего рабочего времени

Reading time1 min
Views784
Не у всех на работе есть хороший и качественный тайм трекер, которым удобно и приятно пользоваться. Врожденная лень, подкрепленная неудобством, отодвигает момент заполнения отработанного времени чуть ли не на следующую неделю. И вот сидит такой задумчивый программист, отчаянно пытаясь вспомнить — а что же он делал ровно неделю назад? В который раз занимаясь подобным времякопанием, в голову пришла мысль сделать простенький бумажный тайм- и таск-трекер.

Превью:
image

На часиках отмечаем время приходов-уходов, в записных полях пишем, что делали.

Скачать .docx
Скачать .png
Скачать .pdf от Ogra
Скачать .pdf от enjoint
Скачать .odt от enjoint
Total votes 13: ↑10 and ↓3+7
Comments10

Краткая, неполная и вымышленная история языков программирования

Reading time4 min
Views4.4K
1801 — Иосиф Мария Жаккард с помощью перфокарт вышивает «hello world» на ткани. Хабровчане тех времен недовольны отсутствием хвостовой рекурсии, многопоточности и заглавных букв.

1842 — Ада Лавлейс пишет первую программу. Её успехам препятствует маленькая проблемка — компьютера для исполнения этой программы ещё не изобрели. Через полтора века архитекторы корпоративных приложений переймут технику Ады по написанию неисполняемых программ и назовут этот метод UML.
Что случилось дальше?
Total votes 95: ↑92 and ↓3+89
Comments21

Некоторые аспекты жизни и чтения с PocketBook (прошел год: недостатки, достоинства, патч 12r7)

Reading time3 min
Views891
Я счастливый владелец PocketBook 301. Я считаю ее самой лучшей книгой всех времен и народов. Что меня больше всего в ней радует?

image

— e-Ink второго поколения, достаточно контрастный, без остаточных следов предыдущей страницы. Вы смотрите не на LCD, а на реальные физические объекты — черно-белые шарики. Это очень важно для сохранности глаз.
— прямая (без конвертации) поддержка всех естественных форматов, txt, html, rtf, fb2, zip, pdf, djvu, jpg, mp3
— отсутствие проприетарных дров и программ, следствие — поддержка под любой ОС без установки ПО. Можно закачать книги в Linux, MacOs, Windows, на любом своем или чужом компьюетере. Или прямо в книгу сохранять из броузера
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments34

Быстрый доступ к оснасткам Windows

Reading time2 min
Views35K
Вводить в диалоге «Выполнить» (Win+R) или в поисковой строке Пуска (начиная с Vista, работает не для всего). Для домашних версий ОС некоторые оснастки могут отсутствовать.

ncpa.cpl — сетевые подключения. Всегда раздражало, что в Vista нет прямого доступа к сетевым подключениям, а смотреть свойства и включать/выключать сетевые интерфейсы надо. Для Windows 7 это менее актуально — там сеть как-то ближе.

compmgmt.msc — управление компьютером. Я часто захожу туда, чтобы посмотреть что расшарено, как размечены диски, чтобы остановить или перезапустить какой-либо сервис. Там же список устройств подключенных к компьютеру.

secpol.msc — политики безопасности. В WinXP SP2, помню, только там можно было поставить флаг чтобы компьютер мог быть перечислен в любом сетевом окружении. Для Vista более интересен флаг, который позволяет убрать UAC для админов. Если ты под админом, то не нужно постоянно подтверждать каждое свое действие. В Windows 7 по умолчанию настройки таковы, что изменения системных предпочтений не приводит к появлению окна UAC. Что сильно уменьшает желание его отломать =)

control userpasswords2 — хранящиеся в системе пароли. Здесь можно обнулить запомненный пароль. Более интересный вариант — возможность зайти в другую системы под другим аккаунтом. А то зайдешь на расшареное на другом компьютере, потом настройки безопасности перетрясешь — а стучишься по-умолчанию со старыми учетными данными.

msconfig — перечисление запускаемых при старте ОС программ. ИМХО лучше использовать Autoruns от SysInternals, но когда их нет, msconfig тоже может помочь отключить всякую гадость, которая тормозит старт системы.

rundll32.exe sysdm.cpl, EditEnvironmentVariables — переменные окружения. Да, запомнить невозможно. Но один раз введя в диалог выполнить, можно потом вызывать из истории команд.
Total votes 125: ↑71 and ↓54+17
Comments48

Дерево категорий с чекбоксами на JQuery

Reading time2 min
Views1.7K

Begin



Делаем каталог. Понадобилось сделать дерево категорий товара/фирм/услуг с бесконечной вложенностью. Каждую категорию можно отметить чекбоксом, чтобы потом можно было получить список/массив всех отмеченных категорий (например для поиска по ним).

Написал такое вот деревце. Реализовал в виде плагина к любимому JQuery )

Что умеет:


  • Если указан пустой див — загружает из указанного скрипта все категории, и подкатегории(вложенные ul, если li имеет класс folder и не имеет вложенного списка(ul) — дерево будет автоматом подгружать этот список из указанного скрипта с указанной глубиной рекурсии(это забота скрипта выдавать запрашиваемые данные с требуемыми параметрами).
  • Если указан готовый список — то можно сворачивать/разворачивать подкатегории, отмечать нужные, которые будут подсвечены заданным классом
  • Получать выбранные номера категорий (value чекбоксов) в массиве
  • Возможность поиска по всем загруженным веткам дерева, вывод результата поиска в указанный див(указывается див для поиска, в котором строка для ввода запроса + див(пустой) для вывода результатов)
  • Число результатов поиска можно ограничить (в параметрах)
  • При клике на одном из найденных результатов — дерево открывается чтобы отобразить заданную ветку и она подсвечивается классом(указывается в параметрах)
  • Можно задать чтобы при клике на родительской категории — внутренние также выделялись
  • Можно задать сообщение которое выдается при попытке выделить лишний чекбокс если число их ограничено.


Вроде ничего не забыл )

Параметры:
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments10

Дональд Кнут

Reading time8 min
Views49K
image

Дональд Эрвин Кнут — американский учёный, почётный профессор Стэнфордского университета и нескольких других университетов в разных странах, преподаватель и идеолог программирования, автор 19 монографий (в том числе ряда классических книг по программированию) и более 160 статей, разработчик нескольких известных программных технологий. Автор всемирно известной серии книг, посвящённой основным алгоритмам и методам вычислительной математики, а также создатель настольных издательских систем TEX и METAFONT, предназначенных для набора и вёрстки книг, посвящённых технической тематике (в первую очередь — физико-математических).
Читать дальше →
Total votes 156: ↑152 and ↓4+148
Comments49

Galaxy Watch — звездное небо на стене спальни

Reading time1 min
Views2K
image

Эти часы придумал китайский дизайнер Кай Ю (Kai Yu) и называются они Галактика. Большая звезда показывает часы, маленькая – минуты. На подложке тускло мерцает еще сотня светодиодных лампочек, формируя картину «реального» звездного неба. Разумеется, лучше всего такие часы будут выглядеть ночью.
Читать дальше →
Total votes 29: ↑22 and ↓7+15
Comments48

Проверка вхождения IP адреса в подсеть

Reading time1 min
Views1.6K
В Интернете множество решений данной проблемы, я тоже искал его, но решения мне не нравились своей не производительностью. В языке Perl есть пакет Net::Patricia, который очень эффективно решает данную проблему, метод основан на Patricia Tree.

Установить данный пакет можно через CPAN

perl -MCPAN -e shell
install Net::Patricia

После установки использовать данный пакет можно следующий образом:

#!/usr/bin/perl -w
use Net::Patricia;
# IP tools
my $pt = new Net::Patricia;
$pt->add_string('212.44.12.0/24');
if(defined($pt->match_string('212.44.12.3'))){
print "IN\n";
}else{
print "OUT\n";
}
Total votes 19: ↑13 and ↓6+7
Comments22

Версионность данных в MySQL

Reading time3 min
Views2.1K
В 1С есть очень полезная фича — периодические реквизиты, с помощью них можно хранить не только значение, но и всю историю его изменения. Например, если мы храним значение курса бакса по отношению к рублю, то хранится не только актуальное значение, но и значение за вчера, позавчера и т.д.(период хранения может быть любой). В MySQL, к сожалению, такой фичи нет(наверное и не надо). Значит сделаем сами ;).
Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments20

Perl & MS Excel

Reading time1 min
Views1.6K
Возникла необходимость создания красивых отчетов в MS Excel? Так сделаем это с помощью языка perl! :)

Итак, приступим:

use OLE; // используем модуль Win32::OLE
my $excel = CreateObject OLE 'Excel.Application' or die $!; // открываем Excel
$excel->{'Visible'} = 1; // советую Excel делать видимым, чтобы он не висел мертвым грузом в фоне, если вдруг случится косяк
my $workbook = $excel -> Workbooks -> Add(); // создаем новый документ
$workbook -> ActiveSheet -> Range("A1")-> {'Value'} = sprintf("Тест"); // заносим в ячейку A1 значение «Тест»
$workbook -> ActiveSheet -> Columns -> AutoFit; // очень полезная вещь – выравнивание ширины всех столбцов по содержимому
$workbook -> SaveAs("$file"); // сохраняем документ
$workbook -> ActiveSheet -> PrintOut; // если надо - распечатываем
$excel -> Quit; // закрываем Excel


Вуаля!

Ну и некоторые полезняшки напоследок:

$workbook -> ActiveSheet -> Range("A1")-> Font -> {FontStyle} = 'Bold'; // устанавливаем жирный шрифт в ячейке
$workbook -> ActiveSheet -> Range("A1")-> {HorizontalAlignment} = 3; // равнение в ячейке – по центру
$workbook -> ActiveSheet -> Range("A1")-> Borders -> {LineStyle} = 1; // рисуем границы ячейки
$workbook -> ActiveSheet -> Range("A1")-> Interior -> {ColorIndex} = 15; // делаем серую заливку ячейки
$workbook -> ActiveSheet -> Range("A1")-> EntireRow -> Delete; // удаляем строку с данной ячейкой
$workbook -> ActiveSheet -> Range("A1:A10") -> Merge; // объединяем ячейки
Total votes 17: ↑10 and ↓7+3
Comments14

Создание палитры

Reading time1 min
Views2.8K
imageОнлайн инструмент для создания цветовых схем. Есть 6 вариантов подборки цветов, возможность корректировки яркости контрастности отобранных цветов или выбор из имеющихся вариантов (темное / светлое и т. п.), возможность просмотреть шестнадцатеричные коды основного цвета и дополнительных, есть функция предпросмотра «сайта» с выбраными цветами со светлым / темным фоном, симуляция различных нарушений восприятия цветов людьми, рандомайзер, а так же API для интеграции с вашим сайтом. www.colorschemedesigner.com
Читать дальше →
Total votes 63: ↑59 and ↓4+55
Comments20

Как создать идеал? Продолжение

Reading time1 min
Views2.2K
Да, мы действительно понимаем, что идеал женщины создать невозможно. Но мы и не ставили такой цели, мы создавали визуальный образ «совершенной программы — Аскина». И коль на хабре пошло такое живое обсуждение и тема уже на 3-ем месте в top 30 — мы, специально для вас, попробовали различные варианты Аскины.

image

под катом еще 3 картинки
Total votes 112: ↑80 and ↓32+48
Comments191

Как создать идеал?

Reading time4 min
Views19K
В далеком 2007 году, мы, агентство «Shiloff Group», занимались ребрендингом группы компаний «АСК». В комплекс работ входило все: начиная от маркетинга и фирменного стиля, заканчивая наружной и медийной рекламой, ну и, разумеется, сайтом. Для придания уникальности этому сайту мы решили создать идеальную девушку.

image

Под катом 1.4 МБ картинок, будъте бдительны!
Как мы это сделали?
Total votes 382: ↑340 and ↓42+298
Comments282

Удобочитаемость веб страниц от Arc90

Reading time1 min
Views1.4K
За таким неуклюжим словом, как удобочитаемость (Readability), скрывается очень элегантная и достаточно эффективная разработка нью-йоркской компании Arc90.

Ребята сделали крайне простую, но от того не менее полезную вещь, а именно: Readabilityбукмарклет (маленькая JavaScript-программа, оформленная как URL и сохраняемая как закладка браузера) или, как они сами говорят, закладка на стероидах, которая избавляет веб-страницу от рекламного мусора и позволяет настраивать текст по вашему вкусу.

Частенько, чтобы нормально прочесть страницу, нам приходится жать Print view. Теперь же достаточно единожды настроить предпочитаемое форматирование текста и добавить Readability в закладки. После этого достаточно, находясь на странице, нажать на закладку, чтобы содержимое страницы преобразовалось волшебным образом, так что даже разухабистый udaff.com, станет возможным читать, не привлекая лишнего внимания.

Before Readbility

After Readbility

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


Readability: An Arc90 Lab Experiment from Arc90 on Vimeo.

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

Для разработчиков открыт и код.

Изменить этот мир к лучшему — в наших с вами силах!
Total votes 14: ↑11 and ↓3+8
Comments5

svn diff notification

Reading time1 min
Views582
Быстрый трюк для получения уведомлений об изменении в svn
Потребовалось получать уведомления об изменениях в svn.
В svn есть возможность настраивать различные hook'и на различные action'ы.
Простой пример получения уведомлений по e-mail(можно использовать команду mail, но в условиях задачи ее не было, так же не было sendmail и прочего. Вообщем можно сделать как угодно, но это самый простой вариант, который подходил под условия задачи).

#!/usr/bin/perl -w
use Net::SMTP_auth;

my $repos=$ARGV[0];
my $rev=$ARGV[1];
my $change_data=`/usr/local/bin/svnlook diff -r $rev /home/svn/masterpanel/`;

$smtp = Net::SMTP_auth->new('smtp.example.com');
$smtp->auth('CRAM-MD5', 'some_login', 'some_pass');

$smtp->mail('svn@example.ru');
$smtp->to('masters@example.com');

$smtp->data();
$smtp->datasend("Subject: svn.example.com\n");
$smtp->datasend('From: svn@example.com');
$smtp->datasend("\n");
$smtp->datasend("$repos\n");
$smtp->datasend("$rev\n");
$smtp->datasend("$change_data\n");
$smtp->dataend();

$smtp->quit;


Теперь этот скриптик необходимо поместить в /home/svn/masterpanel/hooks/post-commit
Дать ему права на выполнения для пользователя владельца.
Total votes 6: ↑6 and ↓0+6
Comments4

YouTube EDU — обучающие видеоматериалы из колледжей и университетов

Reading time1 min
Views3.5K


26 марта 2009 года на youtube открыли раздел YouTube EDU, в котором собраны лучшие обучающие видеоматериалы (в основном — лекции и обучающие материалы из колледжей и университетов).

Среди лидеров просмотров: MIT, Stanford University, индийские универститеты.

Представлены целые курсы в виде плей-листов: курс линейной алгебры, введение в биологию, принципы цифровых коммуникаций и многие другие.

Информации становится более чем достаточно, чтобы изучать всё что угодно. Остаётся только вопрос мотивации.

Upd. Еще один подобный ресурс — academicearth.org (Женя Теплов, спасибо!)
Upd2. University of Washington, Engineering & Computer Science (YasonBy, спасибо!)
Total votes 78: ↑77 and ↓1+76
Comments49

Получение ISBN номера из книги в формате PDF

Reading time1 min
Views4.2K
Написал небольшой скриптик, который ищет в PDF книге ее ISBN номер. Скрипт написан на Python с использованием небольшой библиотеки для работы с ISBN.

По умолчанию поиск производится среди первых 10 страниц.

Библиотека доступна по адресу: www.staff.ncl.ac.uk/d.j.wilkinson/software/isbn.py

Скрипт доступен по адресу: pastebin.com/f7d5c3e90

Вывод выглядит так:

$ ./get-isbn.py test.pdf
ISBN-13: ['978-1-59059-585-5']
ISBN-10: ['1-59059-585-8']
Total votes 31: ↑25 and ↓6+19
Comments37

Почему POST превращается в GET

Reading time1 min
Views6.1K
Долго пытался понять, почему следующий код при нажатии на кнопку дает запрос методом GET, хотя явно указан POST.

<html>
<head>
</head>
<body>
<form method="POST" action="http://myhost/mydir">
<input type="submit" value="→" />
</form>
<? echo $_SERVER['REQUEST_METHOD'] ?>
</body>
</html>


* This source code was highlighted with Source Code Highlighter.


Оказывается, Апач при POST-запросе на URL папки без конечного слеша, перенаправляет на URL со слешем и при этом запрос трансформируется в GET. Если же слеш поставить, то эффект пропадает.

Вывод: В action формы ставьте всегда слеш в конце URL папки, а лучше используйте URL файла.

UPD: Как подсказывает Nikita, эта особенность (перенаправление на URL с слешем в конце) управляется в apache 2.2 директивой DirectorySlash, она по умолчанию включена и отключать ее не рекомендуют.

UPD2: Получается такая схема
1. Мы посылаем POST на mysite/mydir
2. Сервер отвечает нам 301 на mysite/mydir/ (почему это правильно, описано в документации к Апачу)
3. Браузер делает GET без параметров на mysite/mydir/ (так и надо делать, это описано в RFC 2616)

В итоге мы вместо нашего POST с параметрами получаем GET без параметров. Все логично, но несколько неожиданно.
Total votes 22: ↑19 and ↓3+16
Comments41

Information

Rating
Does not participate
Location
Алтайский край, Россия
Date of birth
Registered
Activity