Изучение команд в Linux

Фото автора =) 31.01.2008 от ROM Комментариев нет »

Оригинал

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

Существует множество сайтов предоставляющих информацию о синтаксисе командной строки в Linux, но не все содержат детальную информацию и описание команды, которую Вы ищите.

Здесь несоклько сайтов, которые предоставляют детальную информацию о команде, которую Вы ищите:
Читать полностью »


Популярность: 18%

Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: Linux, Переводы |

О свободном программном обеспечении вокруг нас

Фото автора =) 30.01.2008 от ROM Комментариев нет »

Как-то зашел на кухню вечером и услышал по радио новости. Зацепила одна фраза. Точно её не воспроизведу, но смысл был такой: сегодня где-то собралась какая-то говорильня, на которой решались вопросы, как побороть пиратство в России. Наверное, для них это сложный вопрос, похожий на вопрос “О жизни, вселенной и вообще” из хорошего фильма “Путеводитель по галактике”.
Но на самом деле ответ лежит на поверхности, но “они” не хотят его увидеть: сделайте стоимость программного обеспечения адекватным. Ну не стоит продукция Microsoft тех денег, за которые она продается вместе со своими глюками и многочисленными проблемами. А не хотят по простой причине - не знают, как получить откаты-благодарности со свободного софта, т. к. он никому не принадлежит. Т. е. принадлежит всем, но не определенной компании, которую можно подоить или, если посмотреть по-другому, с которой можно заключить соглашение на поддержку, развитие и т. д. и наложить на неё всяких ответственностей.

Чтобы помочь пользователям или компаниям узнать, что есть альтернативные бесплатные и свободные операционные системы и программы, я создал сайт alter-nativa.ru.
Сейчас сайт открыт для того, чтобы Вы, читатели этого блога, могли эксклюзивно ;) посмотреть, оценить и рассказать, чего не хватает на сайте. Очень хотелось бы получить отзывы на e-mail: e-mail
Это действительно эксклюзивное предложение, так как сайт до сегодняшнего дня еще нигде не рекламировался и не продвигался.

Выражаю благодарность Александру (блог “Бесплатная альтернатива”) и Владимиру из Липецкого LUG за активное участие в создании сайта.


Популярность: 14%

Похожие посты:
  • None Found
Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: Альтернатива |

6

Фото автора =) 29.01.2008 от ROM Комментариев нет »

Успех в любой области деятельности зависит от умения рационально использовать время.


Популярность: 10%

Похожие посты:
  • None Found
Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: Фразы |

5

Фото автора =) 28.01.2008 от ROM Комментариев нет »

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

Вл. Сухарев


Популярность: 10%

Похожие посты:
  • None Found
Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: Фразы |

День 11й - Волшебная загрузка нескольких файлов одновременно с помощью ненавязчивого javascript.

Фото автора =) 28.01.2008 от ROM Комментарии (2) »

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


Много месяцев тому назад, пытаясь разобраться с шумихой, поднятой вокруг AJAX, я бродил по сайту FiftyFourEleven, разглядывая изумительные примеры новаторского подхода к программированию на javascript, когда совершенно случайно наткнулся на пример кода под названием «Загружайте Несколько Файлов с Помощью Одного Элемента Ввода».

Поэтому когда я решил начать выпуск библиотеки 15 Days of jQuery, он стал одним из первых скриптов, который я хотел переработать с помощью jQuery.

Для Фанатов Общедоступности

Несколько дней назад, просматривая свои файлы server.log с данными о работе сервера, я заметил, что получил trackback-уведомление с неизвестного мне сайта. Я посетил данный сайт и обнаружил, что два моих руководства на jQuery упоминаются в одной статье в качестве примера того, что автор на дух не переносит в языке javascript.

По утверждению этого болвана, любой инструмент или техника, который не ставит общедоступность и удобство на первое место – дефективен и неверен.

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

Два Урока по Цене Одного

Задача №1: Осуществить загрузку нескольких файлов с использованием одного элемента ввода файла… и сделать весь процесс взаимодействия привлекательным.

Задача №2: Сделать загрузку нескольких файлов привлекательной… без ущерба удобства и простоты использования. Поставить в центр внимания ненавязчивый javascript для создания формы поля ввода нескольких файлов.

Примеры

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

Загрузка нескольких файлов с помощью одного поля ввода.

Пример второй – код формы с несколькими полями ввода в файле .(x)html, но jQuery меняет отображение того, что пользователь видит на экране и дает результат, подобный представленному в первом примере. Преимущество этого метода состоит в его ненавязчивости… даже если javascript отключен в настройках браузера посетителя, это все равно не помешает ему загружать файлы.

Загрузка файлов с помощью нескольких полей ввода

Объяснение

Одно поле ввода –

Функция jQuery $(document).ready() делает две вещи:

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

$("input[@type=file]").change(function(){
doIt(this, fileMax);
});

Функция doIt() (ничего имя, да?) проверяет, достигнуто ли максимальное граничное значение файлов, и если нет, то прячет поле ввода файла, добавляет новое в элемент div, вставляет название выбранного файла в div с идентификатором id «files_list» и в конце добавляет кнопку Delete (удалить).

Для перемещения по дереву структуры DOM (объектная модель документов) я использую функцию parent() библиотеки jQuery, а затем удаляю элементы с помощью функции remove(). Я также применяю функции append() и prepend() для добавления названий файлов и новых полей ввода соответственно.

Два ключевых момента:

1- Вы устанавливаете максимально допустимое в этой строке количество файлов

var fileMax = 3;

2- Поля ввода файлов должны быть названы соответственно

<input type="file" class="upload" name="fileX[]"  />

Я делаю это так, что пользователь может добавлять или удалять поля, не беспокоясь о том, чтобы следить за id или названиями. Когда форма передается серверному скрипту, информация отсылается в массиве, по которому можно легко сделать обход.

Ввод нескольких файлов -

Справиться с этой задачей оказалось делом более хитрым.

Во-первых, количество допустимых к загрузке файлов определяется числом полей ввода в вашем документе .(x)html. Во-вторых, вам необходимо называть их так, чтобы информация о поле накапливалась в массиве.

<input type="file" class="upload" name="fileX[]"  />

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

Другими словами, во время исполнения кода он нацеливается на первое поле ввода, второе, либо же третье.

Вышеописанный код вы можете найти здесь:

$("input[@type=file]:nth-of-type("+n+")")

Гибкость библиотеки jQuery предоставляет мне возможность использовать таблицы стилей CSS и язык XPath для доступа и работы с отдельными элементами.

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


Популярность: 90%

Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: 15 дней с JQuery, Переводы |

День 10й - Редактирование на месте с AJAX, используя jQuery библиотеку

Фото автора =) 21.01.2008 от ROM Комментарии (2) »

Впервые я увидел версию этого приложения на сайте www.quirksmode.org, а позже нашел Web 2.0 версию на сайте www.24ways.org.

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

Цель

AJAX (или AHAH) - технология, позволяющая пользователям редактировать просматриваемую страницу HTML, не закрывая ее.

Концепция

Нажмите на текст, который собираетесь редактировать, и перед вами удивительным образом появится текстовая область с расположенными внизу кнопками «Сохранить» и «Отменить редактирование». Изменения с помощью AHAH преобразовываются в скрипты PHP, которые, как правило, используются для обновления баз данных (MySQL или неструктурированных файлов).

Демонстрация

«Edit In Place» - компонент административной панели приложения Ajax 1

В первой демонстрационной версии я использую элемент div с идентификатором ID «editInPlace». Когда курсор стоит на элементе div, задний фон меняет цвет на бледно-желтый. После того, как вы нажимаете на текст, открывается DOM (объектная модель документа), а элемент div удивительным образом превращается в текстовую область, внутри которой можно редактировать текст.

Нажимаем на кнопку «Сохранить», и новая страница HTML преобразуется в скрипты PHP, которые отображают полученные данные с помощью массива $_POST.

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

Но в этом примере информация, отсылаемая в PHP скрипт, возвращается назад в jQuery и показывается в простом окне.

Объяснения

Способ, с помощью которого я все это выполняю, достаточно известен. Запомните, если вы не хотите использовать функцию jQuery document.ready, будьте готовы использовать метод init() function

<!--start_raw-->
$(document).ready(function(){
setClickable();
});
<!--end_raw-->

Первым делом сработает функция setClickable(). Данная функция предназначена для следующего:
Ищет элементы div с ID =”editInPlace” и сообщает jQuery необходимость начинать преобразования после того, как нажат div.

<!--start_raw-->
function setClickable() {
$('#editInPlace').click(function() {
<!--end_raw-->

Вставляет страницы html внутрь элементов div с использованием функции jQuery’s html(). Эта страница html размещается внутри других html, после чего отображается текстовая область и кнопки «Сохранить» и «Отмена».

var textarea = '<div><textarea rows="10" cols="60">'+$(this).html()+'</textarea>';
var button = '<div><input type="button" value="SAVE"
class="saveButton" /> OR <input type="button" value="CANCEL"
class="cancelButton" /></div></div>';
var revert = $(this).html();

Та же страница html размещается в элементе div с ID=”editInPlace” для того, чтобы можно было вернуться к первоначальному виду, в случае, если вы решите использовать кнопку «Отменить».

<!--start_raw-->var revert = $(this).html();<!--end_raw-->

DOM элемент “After” используется для вставки новой текстовой области html после ссылаемого узла div. Сразу же после этого, с целью сохранения места, я отправляю jQuery команду переместить элемент div.

<!--start_raw-->$(this).after(textarea+button).remove();<!--end_raw-->

Используя jQuery, я адаптирую кнопки «Сохранить» и «Отменить», используя их классовые имена. jQuery запускает последнюю функцию “Сохранить изменения” после того, как вы нажмете соответствующую кнопку. Я закрываю окно сообщения jQuery, показывающее необходимые действия, которые выполняются после нажатия элемента div. При этом не ставлю в конце апостроф, так как после этого элемента последует еще несколько действий.

<!--start_raw-->$('.saveButton').click(function(){saveChanges(this, false);});
$('.cancelButton').click(function(){saveChanges(this, revert);});
})<!--end_raw-->

Далее я вписываю в код «mouseover» или «mouseout». Эти команды передают jQuery необходимость добавить или удалить класс, когда курсор направляется на нужный элемент div (id=”editInPlace”).

<!--start_raw-->
.mouseover(function() {
$(this).addClass("editable");
})
.mouseout(function() {
$(this).removeClass("editable");
});
};//end of function setClickable
<!--end_raw-->

Функция “saveChanges” превращает объект кнопки в первую переменную, а отменённая переменная становится ложной или содержит страницу html, которую я сохранял в параметрах возвращения к исходным данным.

<!--start_raw-->
function saveChanges(obj, cancel) {
<!--end_raw-->

Если функция “cancel” является ложной, тогда я сохраняю изменения, преобразовывая html в php скрипты. Я забираю html из текстовой области, используя функции DOM, доступные благодаря библиотеке jQuery: parent() и siblings().

<!--start_raw-->
if(!cancel) {
var t = $(obj).parent().siblings(0).val();
<!--end_raw-->

Основные возможности DOM вне пределов этих функций. Как правило, я задаю команду jQuery “Объект (save button), который имеет родителя (div)… Искать. Этот объект имеет один или более объектов на том же уровне дерева DOM… Мне нужен первый объект. Найти величину объекта”.

(Если подумать… конечно, если вы не знакомы со способом кодировки DOM, пожалуй, мои объяснения не будут иметь для вас никакого смысла. Предлагаю вам найти “DOM javascript” в системе поиска Google, ну или “что-то в этом роде”).

Эта страница html имеет поле переменной “t” и сейчас пришло время передать ее через POST в файл test2.php.

<!--start_raw-->
$.post("test2.php",{
  content: t
},function(txt){
alert( txt);
});
}
<!--end_raw-->

Если отмененная переменная имеет величину, тогда страницу html следует изначально сохранить в переменной возвращения к исходным данным. Итак, в этом случае поле переменной “t” следует передать в первоначальную html.

<!--start_raw-->
else {
var t = cancel;
}
<!--end_raw-->

Следующий шаг - использование функций DOM в рамках библиотеки яваскриптов jQuery, для размещения новых div, с ID “editInPlace” после элемента, содержащего текстовую область… а затем убираем div, содержащий текстовую область.

<!--start_raw-->
$(obj).parent().parent().after('<div id="editInPlace">'+t+'</div>').remove() ;
<!--end_raw-->

Вкратце, это дает следующую команду библиотеке jQuery: “Сделайте два шага назад на ветвь DOM. Поместите HTML после объекта, найденного здесь, а затем переместите объект”.

В итоге, мы снова вызываем функцию «setClickable» и закрываем функцию «saveChanges()». Цель этого вызова - переустановка событий «onMouseover», «onMouseout» и «onClick».

<!--start_raw-->
setClickable();
}
<!--end_raw-->

Второй пример

Второй пример очень похож на первый, но немного сложнее.

«Edit In Place» -компонент административной панели приложения Ajax 2

Вместо одного большого элемента div в этом примере каждый тег P управляет отдельной редактируемой областью.

Трудность возникает в случае, если вы захотите отправить данные на серверные скрипты, и при этом адаптируете верный Р-тег для обновления базы данных.

Я нашел этому решение: нужно пронумеровать каждый Р-тег и отправить коды PHP. В окошке предупреждения вы увидите, что коды PHP «распознали», какие именно P-теги были изменены.

Как узнать результат

Если вы использовали что-то похожее в своей работе, я думаю, вы захотели проверить, действительно ли произошли какие-то изменения перед тем, как сообщать jQuery команду обновить DOM новой страницей html.

Базой данных не предусмотрена подобная демонстрация, поэтому я этот шаг опустил.


Популярность: 86%

Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: 15 дней с JQuery, Переводы |

Солянка от 19.01.08

Фото автора =) 19.01.2008 от ROM Комментариев нет »

Сегодня в выпуске:
- Аккумулятор работы;
- Возмущения по поводу лени местных жителей двух столиц.

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


Популярность: 11%

Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: Без рубрики |

Новая версия jQuery - 1.2.2

Фото автора =) 15.01.2008 от ROM Комментариев нет »

Сегодня вышла новая версия jQuery - 1.2.2

В основном это bugfix, Но есть и улучшения:

  • 300% увеличение скорости в $(DOMElement)
  • .ready() перелана: bcgjkmpetn Diego Perini’s non-document.write() метод, теперь ждем готовности CSS, теперь можем следить за событием документа “готов” через традиционный .bind()
  • события .bind(”mouseenter”) / .bind(”mouseleave”) / .bind(”mousewheel”)
  • Выражение :not()
  • Принимает заголовки
  • Событийное API: jQuery.event.special setup teardown handler

Более подробно на английском можете почитать в блоге jQuery.


Популярность: 46%

Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: JQuery |

4

Фото автора =) 15.01.2008 от ROM Комментариев нет »

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


Популярность: 11%

Похожие посты:
  • None Found
Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: Фразы |

День 9й - Быстрый и грязный Ajax

Фото автора =) 14.01.2008 от ROM Комментарии (2) »

Сегодня я попытаюсь рассказать о чем-то немного другом. Потребовалось время чтобы выяснить почему я не мог открыть свободный аккаунт на Ютюбе в течении 3х недель, но теперь всё нормализовалось и я закачал видео где я рассказываю некоторые простые пути как Вы можете используя jQuery добавить ajax функциональность Вашему сайту.

Виде короткое потому, что как я понял YouTube у меня есть ограничение в 10 минут. Не всё, что я говорю в упражнении 100% правильно. Есть небольшие ошибки, где я называю cgi “скрипт на стороне сервера” (server side script) когда более праильно назвать “язык на стороне сервера”.

Это AJAX, или AHAH, или AXAH?

Всё, что Вы сейчас увидите это больше AHAH чем AJAX.

В чем разница? X в слове AJAX - это XML. Нередко Вы моете брать кусочки текста или javascript из разных файлов не возясь с XML. Здесь лучше написано AJAX против AJAH.

Что касается AXAH… Я оставлю эту темя для объяснения Cody Lindley . Его статья очень хорошая и Вы должны уделить некоторое время если Вы хотите получить несколько больше знаний об AJAX.

Вот страничка на сайте jQuery где я привожу несколько примеров. Ссылка откроется в новом окне.


Популярность: 69%

Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: 15 дней с JQuery, Переводы |

« Раньше


Рубрики:

Управление:

Счетчики:




Рейтинг блогов
Рейтинг блогов
Рейтинг блогов
Яндекс цитирования
Каталог блогов Blogdir.ru
количество читателей онлайн и всего
Каждому своё…
Блог о jQuery, Linux и немного программировании

Узнайте о размещении рекламы в этом блоге. >>>

Узнайте о размещении рекламы в этом блоге. >>>