понедельник, 30 мая 2011 г.

js for(var i in arr_or_obj)

Эта штука таки применима не только для обьектов, но и для массивов) Особенно полезно, когда у нас массив ассоциативный, тогда мы получаем последовательно индексы и через них можем получать значения:
var a = [];
a['id=1']=5;
a['id=2']=7;
for(var i in a){
   console.log(i);
   console.log(a[i]);
}

суббота, 28 мая 2011 г.

Отгрузка скриптов по требованию аяксом.

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

среда, 25 мая 2011 г.

Y.NodeList.each()

Y.NodeList.each(func, contenxt) -- нод-лист имеет метод ич. Нод-лист можно получить из Y.all(selector).


func(node, position, nodeList)

node - поточный элемент
position - номер поточного элемента в списке нодов(0...n)
nodeList - весь список для которого применялся метод each

Минус этой штукенции в том, что нельзя разрывать цыкл -- тоесть полюбому функция будет применена ко всем айтемам.
Если же нужно при переборе в какой-то момент остановится, то лучше вопсользоваться страндартным цыклом, а получать айтемы можна так NodeList.item(idex)

среда, 18 мая 2011 г.

Интерфейсы жестких дисков

Жесткие диски используют два вида интерфейс:
  • IDE
    1. ATA(PATA) -- паралельный
    2. SATA -- последовательный
  • SCSI

суббота, 14 мая 2011 г.

Как строится урл страницы с портлетами

http://site.domain/uri/of/page#_portlet_id1=%2Fportlet%2Fspecific%2Furi1&_portlet_id2%2Fportlet%2Fspecific%2Furi2

Где
%2F -- это метакод аски-символа "/". Это называется HTML URL-encoding. Это для того, чтобы на стороне сервера весь урл конкретного портлета передался одним значения гет-параметра урла(например параметр "_portlet_id1" равен значению "%2Fportlet%2Fspecific%2Furi1", если же бы у нас урл выглядел так: ....._portlet_id1=/portlet/specific/uri1...., то параметр вообщебы был равен "", а если еще точнее, то сервер бы принял такай урл за испорченный).

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

понедельник, 9 мая 2011 г.

Семафоры, мьютексы, спинлоки

Эти обьекты применяются для синхонизации нитей или процессов:

make

Это утилита юникс-систем(есть версия линкуса и бсд), которая помагает собирать приложения восновном на языке си. Каталог с исходниками приложенения должен содержать специальный файл(возможные имена: GNUmakefile, Makefile, makefile) в котором описаны связи между отдельными файлами, по которому утилита компилирует исходиники в обьектные файлы, а потом их компонует линковщик.

Процесс компиляции утилитой gcc внутри

Выполняя команду gcc, внутри происходят поэтапно следующие шаги:

воскресенье, 8 мая 2011 г.

Форматы в каких может храниться приложение

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

пятница, 6 мая 2011 г.

Создание ветки каталогов одной командой

Иногда нужно создать не одну директорию, а сразу несклько вложенных друг в дружку, для этого нужно исльзовать ключ "парент":
mkdir -p /tmp/a/b/c

четверг, 5 мая 2011 г.

Java launcher


Резюме
java [ options ] class [ argument ... ]
java [ options ] -jar file.jar [ argument ... ]

options
Опции командной строки.
class
Имя класса который нужно вызвать.
file.jar
Имя архива, котрый нужно вызвать. Используется только из ключем -jar.
argument
Аргументы, которые передаются в функцию main.

среда, 4 мая 2011 г.

JNI

JNI(Java Native Interface) -- это фреймворк, который позволяет приложению, которое работает в виртуальной ява-машине, вызывать родные для данной платформы( ОС + хардвеа ), а также быть вызванным из этих родных приложений. Также это позволяет использовать ява-приложению библиотеки родные для данной платформы( написанные на языках С,С++ и ассемблер ).

JVM(ТМ) Tool Interface

Это интерфейс доступа к виртуальной машине джава для утилит разработки и мониторинга(н-р: дебаг, профайлинг, мониторинг работы приложения, аналитика нитей).