Archiwum dla kategorii Javascript

Nowości w jTemplates 0.6.6:
- nowy sposób integrowania szablonów w dokumencie XHTML (wygodny w użyciu i zgodny z XHTML 1.1),
- poprawiony błąd z {#cycle} w przypadku użyciu wieloszablonu (Multitemplates),
- “czyszczenie kodu”

Szablony w kodzie XHTML można umieszcza w tagu <textarea/>. Przykład:

<textarea id="template" style="display:none">
  <table>
    {#foreach $T.table as record}
    <tr>
      <td>{$T.record.name}</td>
    </tr>
    {#/for}
  </table>
</textarea>
 

W celu zapewnienia zgodności z XHTML należy użyć:

<p style="display:none"><textarea id="template" rows="0" cols="0"><![CDATA[
  <table>
    {#foreach $T.table as record}
    <tr>
      <td>{$T.record.name}</td>
    </tr>
    {#/for}
  </table>
]]></textarea></p>
 

Przykład można znaleźć na stronie:
http://jtemplates.tpython.com/example4.html

Wprawdzie moja absencja online nie była spowodowana żadnym atakiem wirusa (no, chyba że grypy na pracowników tpsy), ale właśnie temu tematowi pragnę poświęcić kilka następnych zdań.

Ilość komputerów zarażonych koniem trojańskim Storm powiększa się w każdej chwili w zastraszającym tempie. Nazwanie tego epidemią nie oddaje faktycznej stali problemu. Mamy do czynienia z Pierwszą Pandemią Internetową.

Szacunkowe dane ustalają liczbę zainfekowanych komputerów na kilkanaście milionów, a pesymistyczne dane nawet o 50 milionach. Teoretyczna szczepionka już istnieje - jest nią aktualizacją dla przeglądarek IE i FF, bowiem jest to podstawowa droga rozpowszechniania się tego zagrożenia. Niestety jak wykazują badanie nie ograniczyła ona stopnia rozwoju pandemii a obecna moc botnetu powstałego z połączenia wszystkich zarażonych komputerów w klaster obliczeniowy prawdopodobnie przewyższa (i to znacznie) dowolną inną instalację tego typu (legną lub nie) i pozwala między innymi na skuteczne deszyfrowanie danych (haseł, transmisji, itp.; nawet tych bardzo zaawansowanych).

Sam trojan jest bardzo ciekawy. Jego głównym zadaniem jest przejęcie kontroli nad komputerem i połączenia do jako węzła globalnego botnetu. Następnie umożliwia on przeprowadzenie złożonych rozproszonych obliczeń lub ataków typu DDoS. Infekcja przebiega najczęściej poprzez stronę internetową ze spreparowanych odpowiednio kodem JavaScript, który doprowadza do przepełniania bufora przeglądarki i w efekcie ściągnięcia i wykonania pliku wykonywalnego. Ze względu na polimorficzny charakter wirus jest ciężko wykrywalny przez oprogramowanie antywirusowa, co więcej, w pierwszej kolejności instaluje rootkita, który skutecznie dezaktywuje programowanie ochronne (a dokładniej je sandboxuje, co powoduje, iż nie potrafi on wykryć żadnego zagrożenia w systemie, pomimo iż działa normalnie). Storm posiada także wielopoziomowy system wykrywania próby usunięcia trojana. Jeżeli użytkownikowi (lub programowi) powiedzie się usunięcie jednego z zabezpieczeń natychmiast wykrywa to wyższa warstwa i ponawia infekcje. W efekcie usunięcie zagrożenia jest niezwykle kłopotliwe.

Sam miałem raz “przyjemność” walczyć ze Stormem u znajomego i z przykrością muszę stwierdzić, iż po kilku godzinach się poddałem, co ostatecznie skończyło się koniecznością reinstalowania Windowsa.

Artykuł na PC World Komputer:
http://www.pcworld.pl/news/128739.html

Ciekawa prezentacja autorstwa F-Secure:

 

 

Kolejna pełna wersja jTemplates nie przynosi rewolucyjnych zmian. Przede wszystkim uzupełniona została cała dokumentacja, włącznie z nowym opisem API.

Z nowości pojawiła się metoda removeTemplate służąca do usuwania szablonu z elementów.
Zwiększona została także możliwość wykorzystania kodu JavaScript wewnątrz szablonu. Obecnie blok kodu w nawiasach klamrowych {} nie musi zwracać wartości.

Plugin jest kompatybilny z jQuery 1.2.1 (ale nie z 1.2) ale prawdopodobnie będzie działał poprawnie z wersjami 1.0.x i 1.1.x.

Ciężko nie zauważyć wielkiej popularności języka JavaScript wzrastającej nieustannie od kilku lat. Inspiracją do napisania tego posta był kolejny znakomity toolkit (właściwie to nawet pełna biblioteka) javascriptowa do wizualizacji graficznego interfejsu użytkownika. Mam tutaj na myśli OAT Framework.

Obecna wersja 2.6 wspiera kilkanaście atrakcyjnie wyglądających widgetów (między innymi bardzo efektowne Dock lub zintegrowany widget do obsługi RSS) oraz sporo innych przydatnych narzędzi (funkcje kryptograficzne, bazodanowe).

Ale niewątpliwie największe wrażenie pozostawił przykład aplikacji do modelowania baz danych napisany w OAT Framework:

http://demo.openlinksw.com/DAV/home/demo/Public/Design/employee_sales_customer_diagram2.xml

Wróćmy jednak jeszcze do kwestii popularności JavaScript. Niedawno przeczytałem, iż obecne badanie w Stanach Zjednoczonych sugerują, iż najwięcej programistów tworzy obecnie programy w JS.

Potwierdzenia postanowiłem poszukać w danych serwisu Freshmeat. Wprawdzie nie ograniczyłem się do czasu obecnego, ale sprawdziłem ile projektów wykorzystuje ten język. JavaScript znalazł się na szczytnym 7. miejscu (licząc wszystkie projekty; należy pamiętać, iż JS rzadko występuje jako jedyna technologia w projekcie).

Poniżej przedstawiam obecny ranking:

  1. C (8737)
  2. Java (5657)
  3. C++ (4746)
  4. PHP (4203)
  5. Perl (3758)
  6. Python (2826)
  7. JavaScript (1019)
  8. Unix Shell (986)
  9. SQL (538)
  10. TCL (493)

W najbliższym czasie należy się spodziewać wkroczenia na listę języka Ruby, zapewne kosztem tracącego znaczenie TCL.

Z dwudniowym opóźnieniem wynikającym z braku dostępu do Internetu ogłaszam najnowsze wersje:

  • jTemplates 0.4.1 - systemu szablonów w JavaScript
  • Allegro Widget 0.2.1 - plugin do Wordpress pokazujący w na pasu bocznym aktualne aukcje użytkownika

jTemplates 0.4.1

Wersja 0.4 przede wszystkim nacisk kładzie na bezpieczeństwo. Dane wejściowe (oznaczone zmienną $T) są sprawdzane pod kątem występowania znaków specjalnych stosowanych w XHTML: <, >, ‘, ” oraz &. Znaki te są zmieniane na bezpieczne odpowiedniki. Dodatkowo został zaimplementowany detektor funkcji dla danych $T, co ma uniemożliwić dokonywanie ataków wstrzykiwania kodu.

Zabezpieczenia te są domyślnie włączone. Istnieje możliwość ich wyłączenia, co gwarantuje zgodność z wcześniejszymi wersjami jTemplates.

Allegro Widget 0.1.2

Najnowsza wersja wprowadza niewielkie korekty w wyświetlaniu widgetu. Dzięki temu nie wyróżnia się od zbyt mocno od reszty elementów na pasku.

Poprzednia wersja jTemplates (0.2) wprowadziła spore zmiany (zwłaszcza obsługę wielu szablonów w jednym pliku), ale też miała kilka problemów. Jednym z nich był błąd w przypadku wielokrotnego wykorzystania tego samego szablonu w różnych kontekstach. Błąd ten został poprawiony w wersji 0.2.1.

Dodatkowo w wersji 0.2.2 pojawiło się wsparcie dla tagu {#elseif}.

Więcej informacji na stronie projektu: http://jtemplates.tpython.com 

Nowości w jTemplates 0.2:

- MultiTemplates

Pozwalają na umieszczeniu wielu szablonów w jednym pliku, przykład:

{#template MAIN}
 <div id="header">{$T.name}</div>
 <table>
 {#foreach $T.table as r}
  {#include row root=$T.r}
 {#/for}
 </table>
{#/template MAIN}

{#template row}
 <tr bgcolor="{#cycle values=[‘#AAAAEE’,'#CCCCFF’]}">
  <td>{$T.name.bold()}</td>
  <td>{$T.age}</td>
  <td>{$T.mail.link(‘mailto:’+$T.mail)}</td>
 </tr>
{#/template row}

- korekta kilku błędów (na przykład obsługa #literal) i zmniejszenie obciążenia pamięciowego

Więcej na stronie: http://jtemplates.tpython.com

Wczoraj (a właściwie dzisiaj, bo przez ostatnie 24 godziny strona nie wytrzymała obciążenie i była sporadycznie dostępna) ukazała się kolejna (1.1.3) wersja biblioteki JavaScript pod nazwą jQuery.

Wśród nowości na szczególną uwagę zwraca deklarowane przyspieszenie działania nawet kilkukrotne (średnio 867%)!

Więcej informacji w blogu autora.

Na stronie http://jtemplates.tpython.com/ publikuję system szablonów stron w JavaScript o nazwie jTemplates.

jTemplates wcześniej był rozwijany pod nazwą tParser. Obecnie stał się pluginem do biblioteki jQuery. jTemplates dostępny jest na licencjach MIT i GPL.

Najnowsza wersja nosi numer 0.1.9 i zawiera szereg udoskonaleń w stosunku do wersji 0.1.

Więcej informacji na stronie projektu.

Ajax jako młoda i dynamicznie rozwijająca się dziedzina programowania webowego nie narodziła wciąż szablonowych zasad debugowania. Do niedawna programiści byli zmuszeni do stosowania kilku programów: debuggera JavaScriptu, loggera wywołań, inspektora DOM. “Do niedawna” - gdyż historia programu o nazwie FireBug nie jest długa.

Firebug nie jest osobnym programem, ale darmowym pluginem do Firefoxa. Słowo “tylko” jest wyjątkowo niefortunne, gdyż pod względem możliwości Firebug przewyższa większość podobnym komercyjnych programów.

Do dyspozycji mamy zintegrowany debugger JavaScript (z obsługą pułapek warunkowych i edycji zmiennych w czasie wykonania!), rozbudowany inspektor DOM, umożliwiający na pełną edycję strony, logger wywołań ajaxowych, profiler i wiele więcej.

Wywołania ajaxowe są bardzo dobrze przestawione: parametry żądania, nagłówki, pełna odpowiedź. Wbudowany interpreter pozwala na manualne wprowadzenia i wykonania kodu JavaScript.

Prawdę klikając muszę stwierdzić iż jestem pod wielkim wrażeniem Dzieła autora. Aby tak dalej. Polecam.