пятница, 27 августа 2010 г.

Ищутся желающие

> Ищутся желающие помочь в разработке IDE
> Ищется желающий перешить сидушку
> Ищутся желающие поехать в Далянь
> Ищется желающий пошэрить время
> Ищутся желающие организовать вечеринку в честь Windows 7
> Ищутся желающие переехать в зюзю на газельке
> Ищутся желающие на запчасти

Найдётся всё

Джумля


Картинка


Всего 2052 варнинга.


Никогда себе такое не поставлю. "Армия поклонников по всему миру", "самая популярная CMS"... всем пофиг.

Курение убивает...


Картинка


з.ы. не курю

вторник, 24 августа 2010 г.

XML, HTML, BBCODE, WYSIWYG ==> WIKI

Наконец-то разместил спецификацию XML-разметки словарей Glossword 1.8.x.

http://glossword.biz/kb-16

Документ, мягко говоря, запоздал, — ведь он был создан ещё в далёком 2003 году и поставлялся вместе с архивом Глоссворда в папке с документацией. Изначально файл генерировался на локальной машине посредством Sablotron XSLT — php + xslt + xml. Такой файл сложно редактировать и ещё сложнее размещать на вебе.

И вот через 7 лет, после ряда экспериментов, я таки сделал своё средство размещения статей, которое меня устраивает и которое мне позволило опубликовать документ.

По моему мнению, для веба лучше всего писать на вики. XML, HTML, BBCODE, визивиг — всё не то.

Однако вики-синтаксис вики-синтаксису рознь. Например, в привлекательном баг-трекере Youtrack для обозначения полужирного и наклонного текста нужно указать пять (!) апострофов - ''''' Bold & Italic ''''' — это уже перебор.

Стандарта у вики-синтаксиса нет, но есть попытки этот стандарт сформировать — http://www.wikicreole.org/

Признаюсь, перед публикацией, моё средство пришлось немного доработать, чтобы движок понимал Definition Lists (в HTML-представлении это теги dl dt dd). Кстати, на Google.Сode, где тоже применяется вики-разметка для статей, эти Definition Lists так и не сделали. Некоторые пользователи, в том числе и я, просили реализовать это ещё в 2007 году.

Ну и про визивиг — предлагаю ссылку на таблицу сравнения популярных визивиг-редакторов с сайта стандарты-шмандарты.



Картинка

среда, 11 августа 2010 г.

Safari - тру браузер

Наконец-то! http://extensions.apple.com/

Маст хев:

- Awesome Screenshot
- BetterSource
- Validator
- VSS (View Style Sheets)

среда, 28 июля 2010 г.

Long live бНОПНЯ

> Hello Dmitry-Sh,
> We at тХМКЪМДХЪ ОН-ПСЯЯЙХ would like to wish you a happy birthday today!

яОЮЯХАН!

---
Legend:
тХМКЪМДХЪ ОН-ПСЯЯЙХ = Финляндия по-русски
яОЮЯХАН! = Спасибо
бНОПНЯ = Бнопня.

четверг, 10 июня 2010 г.

Мобильный Интернет – без ограничений!

> Для снятие ограничений, воспользуйтесь опцией «Продли скорость Мега»

http://www.moscow.megafon.ru/services/internet/unlim_internet.html

среда, 12 мая 2010 г.

Война

Война, товарищи, война. Ногинский телецентр взорвали. Сейчас включил телевизор - ни одна программа не показывает!

...

Профилактика - это как окно установки шрифтов в MS Windows - оно не менялось со времен Windows 3.11.

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

В Ногинске даже нет телевидения.

воскресенье, 9 мая 2010 г.

Хотите закачать файл? Получите головную боль!

Как должна выглядеть HTML-форма закачки файла?

1. На экране — красивая, кастомизированная кнопка «Закачать файл».
2. После её нажатия появляется системное окно выбора файла.
3. Пользователь выбирает файл и закачка автоматически начинается.
4. Во время закачки под кнопкой отображается прогресс-бар, с процентами и визуальными делениями.
5. По завершению закачки — сообщение «файл закачен».

Головная боль #1

HTML-поле с выбором файла кастомизировать невозможно. Назначить визуальные CSS-свойства нельзя. Это такое техническое ограничение, оно существовало всегда (более 10 лет уже), и для изменения такого положения сделать тоже ничего невозможно. HTML-код для поля: `<input type="file" name="myfile">`.

Головная боль #2

При автоматическом старте закачки отменить действие нельзя. Разве что закрыть браузер и потерять страницу, с которой закачивался файл. А если это было AJAX-приложение, то придётся заново проходить все этапы, предшествующие закачке файла.

В Firefox отсутствует поддержка метода `.click()` и автостарт не работает.

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

Головная боль #3

Сделать прогресс-бар стандартными средствами без установки плагинов в браузер, на сервер, в том числе без Flash — никак нельзя.

Если бы можно было узнать системное имя закачиваемого файла до начала закачки, тогда можно было бы обновлять прогресс-бар AJAX-запросами. Но в PHP имя файла становится известным после закачки (переменная `$_FILES`).

Головная боль #4

Осуществить загрузку файла способом, который стал своего рода стандартом (объект XMLHttpRequest, сокращенно XHR) и без перезагрузки страницы — невозможно. Но это можно сделать:

* с помощью методов ADODB (только для IE);
* с помощью методов [@mozilla] (только для Firefox);
* с помощью W3C File API (только для Firefox 3.6+, Chrome, Safari и только частично);
* c применением страшного, ужасного и опасного тега `<iframe>`;
* с куда более страшным и дырявым Flash'ем.

Ни одного нормального метода!

Головная боль #5

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

Есть ли лекарство?

Учитывая множество вариантов и кривизну их реализации в браузерах, наиболее подходящим, компромиссным методом является загрузка файла через динамически создаваемый iframe. Это ни разу не AJAX, но тоже «без перезагрузки страницы».

Засада с iframe есть только у Internet Explorer — скрипт, передающий данные в iframe (как правило, это JSON-данные) должен сообщать неправильный MIME-тип: `text/html`. Иначе IE будет предлагать сохранить страницу.

Красивую, «нормальную» кнопку сделать можно, но очень хитрым способом, требующим смекалки и поддержки CSS-свойства `.opacity` со стороны браузера в любом виде, будь то `.style.filter`.

Если кратко — поле `input type="file"` с помощью CSS делается прозрачным и растягивается на всю область «нормальной» кнопки. При наведении курсора на «нормальную» кнопку, прозрачное поле подставляется под курсор, пользователь кликает будто бы на кнопку, а на самом деле на HTML-поле, тем самым вызывая системное окно выбора файла.

Автор: Шильников Дмитрий, testsistema.ru