Pokazywanie postów oznaczonych etykietą AJAX. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą AJAX. Pokaż wszystkie posty

wtorek, listopada 18, 2014

Ciekawostki ze środy 20 sierpnia 2014

Monografia o Ajax i pokrewnych technologiach - http://ajaxpatterns.org/. Szczególnie jest ciekawy rozdział o IFrame do komunikacji przeglądarka-serwer. Taka ramka ma własny adres źródłowy URL i można go zmieniać. Czytając wynik pobrania tej strony w ramce można dynamicznie w stronie wywołującej ramkę wstrzyknąć ‘obcą’ zawartość. ramka służy jako repozytorium danych dlatego się ją ukrywa poprzez klasę w arkuszu stylów. Można obsłużyć pobranie danych z serwera (GET), z POST-em jest kłopot, ale można go obejść poprzez wysyłanie sygnatury formularza z danymi (<FORM>…</FORM>). To była dobra technologia PRZED pojawieniem się XMLHttpRequest. Teraz to czysta ‘sztuczka’ (hack) nikomu właściwie niepotrzebna. Szczegółowy opis jest tu - http://www.pxl8.com/iframes_3.html – bardzo ciekawa technika ale już ustępująca.

Coś na wirusy i ich pochodne – Malwarebytes Anti-Exploit, oprogramowanie które zabezpiecza komputer przed wykorzystaniem podatności w przeglądarkach, jej dodatkach i Javie (dziur w oprogramowanie użytkowym wykorzystywanych przez złośliwe oprogramowanie). W wersji płatnej również PDF, Office, oprogramowanie mutimedialne. Usuwa nie produkty (złośliwe oprogramowanie) ale problemy przez nie pozostawione.  Jest to uzupełnienie do  ich innego produktu - Malwarebytes Anti-Malware (zabezpiecza przed załadowaniem kodu przez złośliwe oprogr. po fakcie zarażenia komputera). Podobnym produktem jest MS Enhanced Mitigation Experience Toolkit, ale on wymaga jeszcze trochę doszlifowania.

Poradnik inwestora - http://jakoszczedzacpieniadze.pl/

Tutoriale Java:

czwartek, grudnia 30, 2010

Jak zapewnić bezpieczeństwo aplikacji

 

Temat ten jest od dawna najważniejszym tematem w procesie eksploatacji aplikacji. Do tego tematu można podchodzić różnie, ale najlepiej wyodrębnić warstwę zabezpieczeń od aplikacji. W tym przypadku mamy zcentralizowane zabezpieczenia do których mogą się odwoływać wszystkie programy. Zmiana modelu zabezpieczeń jest w jednym miejscu i nie jest zdublowana. Tak właśnie postąpiono w  przypadku MS AZURE – wycięto w nim warstwę WIF (Windows Identification Foundation), szablon w .NET-cie który externalizuje do warstwy aplikacyjnej wszystkie sprawy związane bezpieczeństwem (pod wieloma cechami jest to podobne do obiektów Identity i Principle występujących w .NET tak informacja może przybliży ten temat “zwykłym” programistom). Identyfikacja odbywa się na bazie tzw. Claim – roszczenie, pretendowanie, roszczenie. Warstwa ta przechowuje poświadczenia/certyfikaty oraz stanowi tzw. end point dla wszystkich połączeń internetowych (obsługa protokołów HTTP, SOAP, REST) i odbywa się poza domeną aplikacji. Za sprawy bezpieczeństwa odpowiada moduł MS Azure - App Fabric. Żródło: pcquest.ciol.com. Pamiętaj o lekcjach o AZURE dla biznesu.

Tamże są też i inne artykuły – “PHP Interoperability for Windows Azure”. Na codeplex jest projekt PHP.

ASPALLIANCE – towrzenie aplikacji w chmurach - http://aspalliance.com/2038_Build_Your_First_Cloud_Application_Using_Visual_Studio_2010

Na blogu Mariusza Kędziory o bezpieczeństwie chmury. Jego prezentacje są tu.

Azure wymaga odpowiednich narzędzi – tu je można zdobyć. Pomocny też może być JSFIDDLER

Jakaś inna chmura – może lepsza?

Nauka od MS:

http://www.microsoft.com/learning/en/us/training/vstudio.aspx

http://www.microsoft.com/learning/en/us/training/windows.aspx#tab1

wtorek, grudnia 14, 2010

Praca

  1. Arkusze stylów - http://speckyboy.com/2010/11/08/40-essential-css-templates-resources-and-downloads/, tamże studium na temat upiększania tabel - http://www.smashingmagazine.com/2008/08/13/top-10-css-table-designs/
  2. Serwis linków – technorati i delicious
  3. Zasoby na Google Code - http://code.google.com/intl/pl-PL/
  4. Funkcje anonimowe – po co one są? W JS jest trudno w funkcjach i modułach zasłaniać zmienne globalne (nawet nie wiemy jakie one mogą być). Jednym z wyjść jest deklarowanie jawne w modułach wszystkich użytych zmiennych. Inny sposób to właśnie użycie funkcji tzw. anonimowych (z uwagi na to, że nie mają one nazwy) lub inaczej bezpośrednich (immiediate). Powoduje to deklarowanie funkcji i jej natychmiastowe użycie z wymazaniem wykorzystywanych w niej zmiennych. Przykład (źródło - http://phpadvent.org/2010/javascript-for-php-developers-by-stoyan-stefanov):
  5. // Alerts 3 and leaves no leftover variables.
    (function () {

      var a = 1,
          b = 2;

      alert(a + b);

    }());

  6. W JS często stosuje się mechanizm callback tj wywołaniu w funkcji jako jej argumentu innej funkcji na przykład w  sortowanie:
  7. var a = [2, 1, 30, 15];
    a.sort(); // "1, 15, 2, 30", not what you expect

  8. Lepiej wykorzystać callback i napisać tak:
  9. // anonymous callback
    var a = [2, 1, 30, 15];
    a.sort(function (a, b) {
        return (a > b) ? 1 : -1;
    });
    // "1, 2, 15, 30"

    // Or, provide existing function as a callback.
    var a = [2, 1, 30, 15];

    function numsort(a, b) {
      return (a > b) ? 1 : -1;
    }

    a.sort(numsort); // "1, 2, 15, 30"

  10. Kurs Javascript - http://eloquentjavascript.net/contents.html
  11. MAteriały z konferencji http://jsconf.us/2010/
  12. Materiały z PDC2010 wreszcie - http://player.microsoftpdc.com/schedule/sessions
  13. Jak programować w Androidzie - http://developer.android.com/sdk/index.html
  14. MS o JS - http://msdn.microsoft.com/en-us/scriptjunkie/ff715319.aspx
  15. Teraz jQuery:
    1. http://www.smashingmagazine.com/2009/08/23/50-useful-new-jquery-techniques/
    2. http://www.smashingmagazine.com/2009/01/15/45-new-jquery-techniques-for-a-good-user-experience/
    3. http://www.smashingmagazine.com/2008/09/16/jquery-examples-and-best-practices/
    4. http://www.smashingmagazine.com/2008/09/11/75-really-useful-javascript-techniques/
  16. Ciekawy sklep w AJAX i PHP - http://net.tutsplus.com/tutorials/php/build-an-ajax-powered-shopping-cart/
  17. Ciekawe linki z VFP  - http://lafox.org/FoxFiles.Page.fox?SessionID=_33M1C0XB2 i Grid na sterydach - http://www.dfpug.de/konf/konf_1996/form/e_grid/default.htm
  18. Bardzo pouczająca historia Unix-a - http://catb.org/esr/writings/taoup/html/index.html
  19. Kryptografia dla każdego - http://www.gpg4win.org/download.html
  20. Jak podpisać cyfrowo - http://jakilinux.org/uncategorized/podpis-cyfrowy-w-xml-signature/
  21. Wstęp do MS Azure - http://distributed.cloudapp.net/
  22. WCF - http://www.codeproject.com/KB/WCF/WCFFAQPart3.aspx i http://msdn.microsoft.com/en-us/netframework/first-steps-with-wcf.aspx i screen cast
  23. MS pomaga - http://answers.microsoft.com/pl-pl/default.aspx
  24. JQuery4Java – now projekt - http://code.google.com/p/jquery4j/

piątek, maja 14, 2010

Czym robić?

Tworzenie bogatych aplikacji webowych (pod tym pojęciem jest wiele definicji – ale chyba najprymitywniejszą i najprawdziwszą jest wykorzystanie na najniższym poziomie technologii AJAX-a czyli Javascriptu w przeglądarce) zawsze kojarzy się z wyborem narzędzia. Najczęściej jest to wybór rusztowania wspomagajacego pisanie w JS. Mamy wiele takich platform. Którą wybrać? Ten artykuł pomaga w zorientowaniu się w gąszczu możliwości do wykorzystania. Dla twórców w Javie optymalnym wydaje sie GWT-Ext. Przykładem GWT są znane wszystkim aplikacje Google jak Gmail. Oponenci jednak są sceptycznie nastawieni. Ich zdaniem automatyczne tłumaczenie regularnych i dobrze ustrukturowanych  klas w Javie na podobne konstrukcje w Javascript są jawnym zabiciem ogromnych możliwości lekkiego programowanie obiektowego w JS (przecież uważa się JS jako unowocześnione rozwinięcie języka Lisp). Automatyczna translacja kodu Java (gdzie logika jest powiązana z ścisłym typowaniem zmiennych) do JS (gdzie zmienne są amorficzne, mogą w locie zmieniać typ przechowywanych w nich danych) nie pozwala wykorzystać finezji tkwiącej w JS. Dodatkowym utrudnieniem jest odmienność w implementacji wersji JS oraz funkcji manipulowania na DOM w różnych przeglądarkach. Dlatego oraz częściej stosuje się do tłumaczenia kodu Java jakiegoś rusztowania izolującego różnice w implementacji JS w przeglądarkach. Dobrym kandydatem wydaje się EXT-JS. Dlatego powstała hybryda GWT-EXT – tutaj ukłon w stronę programistów Swing, EXT-JS korzysta z tego samego paradygmatu układu stron i widgetów (wichajstrów). Inne firmy mogące pomóc to w tworzeniu aplikacji w GWT to http://www.instantiations.com/ (GWT Designer) lub Netbeans (Matisse).

Uwaga:

  • Na strona GWT-EXT (http://code.google.com/p/gwt-ext/) jest informacja, że projekt ten ewoluował do SmartGWT. To dobrze i naturalne. Wydaje się, że projektanci GWT (ludzie od Google) zrozumieli niebezpieczeństwo włączenia w swój produkt płatnej biblioteki Ext (czyli mogą być posądzeni o krypto sponsoring kogoś lub konflikt z udostępnianiem czyli licencjonowaniem aplikacji)
  • Istnieje pewne niebezpieczeństwo – licencja na użytkowanie tego projektu – trzeba ją dobrze zrozumieć!

Inny projekt łączący GWT z rusztowaniem JS to Tatami (gdzie tym rusztowaniem jest Dojo). Ciekawe, że oba wspomniane wyżej platformy są udostępniane na code.google.com. Tamże można znaleźć GWTUML.

A co z jMaki - https://ajax.dev.java.net/. Ten projekt jest szerszy w zakresie ponieważ umożliwia tworzenie aplikacji AJAX w różnych środowiskach (Java, Ruby, PHP) ?

Źródło – Infoworld.

piątek, marca 12, 2010

Zasoby AJAX wg. serwisu internetowego AJAXIAN

Ajax Frameworks / Libraries

JavaScript
Java based
PHP
.NET
Cross Language / Other

General Ajax Info

International Ajax

czwartek, czerwca 25, 2009

Przemyślenia o tworzeniu aplikacji w Internecie

Samemu się nic nie wymyśli, trzeba korzystać z prac innych np. bibliotek (wolno stających jak CoolTree, dhtmlx, Paint, O3D (inicjatywa Google), raphael, canvas, walidatorów (mathew valid, walidacja oparta o atrybuty w HTML, Code Contract ), rusztowań (mint Ajax, Tibco, Nitobi, Ext Js, Advanced Ajax, Yahoo, jQuery). Do badania kodu służą wtyczki w FF (Web developer, Firebug), w IE (F12). Do badanie jakości i wydajności aplikacji służą: YSlow, Speed Page (Google), FireBug, Selenium (testy). Aplikacje można zintegrować z portalami np. Google API lub Zoho.

Do przeszukiwania i zapamiętywania stron służy Scrapbook, Xmarks, Google Reader, Notes, Google Bookmark, Opera sync.

poniedziałek, marca 16, 2009

Deweloperka

  1. http://www.ajaxlines.com/ajax/stuff/article/yui_released.php
  2. http://www.ajaxlines.com/ajax/stuff/xmlhttprequest.php
  3. Technicznie o Live Mesh - http://blogs.msdn.com/livemesh/ (www.mesh.com)
  4. Problemy z klasycznym ASP - http://www.aspnetpro.com/newsletterarticle/2009/03/asp200903dk_l/asp200903dk_l.asp
  5. SOA bezpieczeństwo - http://www.computerworld.com.au/article/280020/soa_security_basics?eid=-6787
  6. Najnowszy numer MSDN - http://msdn.microsoft.com/en-us/magazine/default.aspx?pr=flas
  7. ServerSide - http://www.theserverside.com/
  8. Pouczające filmiki o SQL Injection - http://www.betanews.com/article/New-toolkit-makes-Eclipse-into-a-Silverlight-IDE/1236813333
  9. Eclipse wspiera teraz Silverlight - http://www.eclipse4sl.org/learn/
  10. Użyteczne łącza:
    1. Bezpłatne oprogramowanie antywirusowe - http://www.downloadsquad.com/2009/02/23/9-free-antivirus-programs-for-windows/
    2. Ciekawe oprogramowanie na gwizdek - http://www.downloadsquad.com/2008/09/02/24-killer-portable-apps-for-your-usb-flash-drive/
    3. Najlepsze programy do pakowania i składowanie kopii zapasowych - http://www.downloadsquad.com/2008/10/12/13-great-free-backup-programs-for-windows-mac-and-linux/
    4. Szaleństwo na punkcie kolorów - http://www.downloadsquad.com/2008/10/09/color-me-crazy-10-best-online-color-tools/
    5. 15 najlepszych “przyśpieszaczy” Windows - http://www.computerworld.com.au/article/280023/15_free_downloads_pep_up_your_old_pc?pp=6
    6. Tai Chi:
      1. http://www.4minutefitness.com/
      2. http://www.easytaichi.com/photos.htm
  11. Podpis elektroniczny trzeba jakoś zweryfikować – firma Certum proponuje eNotariusa - http://www.certum.pl/certum/cert,oferta_usluga_sprawdzenie.xml
  12. Co jest takiego w ketchupie - (catsup) ? Odp: “

    Lycopene may help reduce certain types of cancer. Wow, but what's lycopene?

    It is that gorgeous red color in tomatoes, grapefruit and watermelon.

    The best source is processed tomato products like catsup, tomato juice, soup and paste.

    Great food is great medicine. Enjoy your tomatoes.”

  13. Jak się uczy mózg? - http://ksiegarnia.pwn.pl/produkt/5207/jak-uczy-sie-mozg.html?kategoria=73 (50zł)
  14. Inne ciekawostki są tutaj - http://www.downloadsquad.com/2008/04/23/microsoft-live-mesh-tech-preview-launches/

     

wtorek, marca 10, 2009

Pożyteczne linki

  1. Jedną z alternatyw do GWT jest ICfaces (na bazie JSP) - http://www.icefaces.org//main/land/sdt01.jsp. Jak każda szanująca się technologia zawiera wiele komponentów GUI (i nie tylko), ponieważ po to wymyślono AJAX. Rywalem do niej jest tandem GWT i Ext JS, może też i komponenty Yahoo. Idea takiego tandemu jest prosta: My (Java) wysyłamy Im (przeglądarce Internetowej) kod, który Oni mają uruchomić u siebie. Jakość kodu jest ważna, więc po co tworzyć go od nowe lepiej wykorzystać istniejące komponenty (frameworki) w JS.
  2. Dla dzieci - http://lifehacker.com/5165730/top-10-happy-hour-hacks?skyline=true&s=x
  3. shindig – balanga ubaw, chattering classes – klasa społeczna zajmująca się dyskusjami politycznymi, gall – gorycz, czelność, odwaga; podrażnienie, irytacja
  4. Andi Gutman stał się CEO firmy ZEND - http://www.sdtimes.com/link/33313 – w dobie kryzysu i oszczędności wiele firm przywraca do łask PHP (“jest łatwy jak ASP i skalowalny jak Java”).
  5. Słynne cytaty (http://www.phpgenious.com/):
  6. “Man often becomes what he believes himself to be. If I keep on saying to myself that I cannot do a certain thing, it is possible that I may end by really becoming incapable of doing it. On the contrary, if I have the belief that I can do it, I shall surely acquire the capacity to do it even if I may not have it at the beginning.”
    - Mahatma Gandhi

    “You can never cross the ocean unless you have the courage to lose sight of the shore.”
    - Christopher Columbus

    “To a brave man, good and bad luck are like his left and right hand. He uses both.”
    - St Catherine of Siena

    “When one door of happiness closes, another opens, but often we took so long at the closed door that we do not see the one that has been opened up for us”
    - Helen Keller

    “We don’t see the things the way they are. We see things the way WE are.”
    - Talmund

    “Formal education will make you a living. Self education will make you a fortune.”
    - Jim Rohn

    “It isn’t what the book costs. It’s what it will cost you if you don’t read it.”
    - Jim Rohn

    “You must be the change you want to see in the world.”
    - Mahatma Gandhi

    “The future has several names. For the weak, it is the impossible. For the fainthearted, it is the unknown. For the thoughtful and valiant, it is the ideal.”
    - Victor Hugo

    “There is nothing more genuine than breaking away from the chorus to learn the sound of your own voice.”
    - Po Bronson

    “Do not go where the path may lead, go instead where there is no path and leave a trail.”
    - Waldo Emerson

    “Use what talents you possess, the woods will be very silent if no birds sang there except those that sang best.”
    - Henry van Dyke

    “Do not fear to be eccentric in opinion, for every opinion now accepted was once eccentric.”
    - Bertrand Russell

     

środa, lutego 20, 2008

Ciekaw strony:

  1. SideJacking - b. niebezpieczne zagrożenie wytypowane w pierwszej 5 zagrożeń 2007. Witryny zwykle szyfrują dane poufne, ale wysyłają "session-id" danej sesji w jawnym tekscie. Trzeba dokładnie poznać "zakamarki" protokołu HTTP/HTTPs oraz narzędzia Wireshark oraz Mozilla cookie editor. Ten obiekt jest przesłany w:
    1. URL jako losowo wybrane dane
    2. jako HTTP cookie, ciasteczka są wysyłane za każdym razem do serwera(chyba, że są zaznaczone jako prywatne)

Hacker może podejrzeć session-id i uzyskać dostęp do konta i np. odczytać zawartość poczty .

  1. Więcej na te tematy - http://blog.icir.org/2008/02/sidejacking-forced-sidejacking-and.html
  2. Uwaga: ciasteczka mogą być zaznaczone jako secure ) GX - wtedy należy stosować SSL (wymuszony jest)

Zasoby środowe:
  1. Ciekawy skrót (z ciekawego bloga):
    1. Things That Get People Excited (let's call them TTGPEs)
    2. KISS
    3. WIL (well I like it)
    4. WMSDT (well Microsoft do that)
    5. Duże ma też znaczenie też podejście "appeal to authority" (np Stefan and Mark Baker są autorytetami od REST)
  2. Trwa walka w standardzie usług webowych - REST (google) lub SOA (MS/IBM)
  3. Inny blog z BEA
  4. Quercus - cyrk na kółkach czyli PHP napisany w czystej Javie
  5. Przyjrzyj się tytanom VFP (Hsia i Rick) + ten rosyjski serwer o VFP.ru
  6. Świetny serwer cytatów (np. Einsteina)
  7. Serwer informacyjny - http://www.it-director.com/
  8. Przy tworzeniu i projektowaniu oprogramowania należy pamiętać o F. Brooks. Czyta to się jak Biblię "wszyscy to znają i czytają ale nikt nie przestrzega...". Są też tam idee spowalniające projekt np. "syndrom drugiego systemu", "mityczne pojęcie człowieko-miesiąca" (nie sumuje się wydajność od zatrudnienia większej ilości osób), "zamiast używania wielu wyspec. narzędzi lepiej używać jednego ale z wieloma dodatkami" , "zespół naczelnego chirurga" (wykonuje on najtrudniejszą część operacji, resztę kończą jego pomocnicy)....
  9. Super historia o Początkach technologii AJAX, która powstała w MS -Alex Hopmann
  10. Bezpieczeństwo - AJAX (a w zasadzie XMLHttpRequest) podlega zasadzie "ograniczenie dostęp do zasobów tej samej domeny" (same origin policy). Można to łatwo obejść ponieważ dostęp do dwóch innych zasobów w przeglądarce nie podlegają tym restrykcją (polityce bezp.). Mowa oczywiście o skryptach i obrazkach. I tu tkwi główne niebezpieczeństwo protokołu HTTP. Z drugiej strony mamy rozproszoną architekturę korporacyjną SOA tzn. wywołanie zdalnych procedur (usług). Często do realizacji usług webowych (WS) wykorzystuje się SOAP, i to działa. Ale w przypadku przeglądarki i lekkiego klienta to jest za ciężkie. Dlatego w architekturze Web 2.0 stosuje się lekki protokół REST. Oferuje on przejrzysty model REST budowanie usług webwych w oparciu o specjalnie zdefiniowany adres do zasobów podawanych w adresie HTTP w zwykłej przeglądarce. Zasada działania REST opiera się o trzy reguły:
    1. Usługa REST wyraża się poprzez URL np. jako adres - http://bea.com/content/getArticles?author=joe
    2. Trzeba podać operację (poprzez żądanie HTTP):
      1. GET odczyt,
      2. POST zapis,
      3. PUT aktualizacja
      4. DELETE usunięcie
    3. Zwracane są dane w formacie XML / JSON
  11. REST ma operacje takie same jak DML w standardzie SQL czyli jest to kolejny dowód na pożyteczność takiego podejścia
  12. Zasoby z powyższego serwisu (http://dev2dev.bea.com/pub/a/2007/05/google-mashups.html):
    1. http://dev2dev.bea.com/pub/a/2005/08/ajax_introduction.html
    2. http://dev2dev.bea.com/pub/a/2007/02/introduction-json.html
  13. Inny problem - dostęp do bazy danych w językach programowania. Nowoczesne języki obiektowe (a nawet dynamiczne jak Python) wymagają ścisłego typowania danych. Powoduje to problemy przy dostępie do danych w bazach relacyjnych i przesyłania ich do pól w językach programowania. Najczęściej wymagane jest mapowanie. I tutaj pojawiają się problemy jakimi narzedziami to opisać. Wyróżniamy generalnie dwa sposoby:
    1. Natywny
      1. zaszłościowy:
        1. przykładowo jak języki 4GL np. Informix 4GL (pożyteczne jest w nim odwzorowanie klasycznego problemu ORM z którym borykają się języki obiektowe np. Java czy C# struktur danych w rekordzie z bazy czy tabeli w pola i struktury w programie - DEFINE ... LIKE)
        2. VFP bardzo nowocześnie, dodatkowo istnieją funkcje do przejścia z bazy to XML (CURSORTOXML) i na odwrót (XMLTOCURSOR)
      2. nowoczesny poprzez ORM - Java Hibernate
      3. nowocześniejszy - poprzez LINQ w C# (wady: działa z natwynym MS SQL Serverem i brak mu automatu do adnotacji/translacji klas - trzeba to robić zewnętzrnym 'sqlmetal' na piechotę)
    2. Inny - np. obudowanie w specjalny wrapper składnie języka SQL jak to ma miejsce w dostępie ADO (ASP) czy ADODB (PHP), ale dane wysyłane i odbierane jako tekst, są też problemy z danymi binarnymi np. pochodzącymi z BLOB-ów.

wtorek, lutego 19, 2008

Zasoby Google API na poważnie:

  1. Strona rozbiegowa z wieloma łączami do API
  2. API w Pythonie - http://pygoogle.sourceforge.net/
  3. Strona główna koderów Google - http://code.google.com/
  4. UrbanMonk - jak przetrwać w chaosie - http://www.urbanmonk.net/258/change-your-thoughts-and-change-your-life-the-art-of-cognitive-reframing/

Inne:

  1. MVC w wiki
  2. Bezpieczeństwo w AJAX - http://www.ajaxonomy.com/2008/security/ajax-security

Zasoby do MS SQL Server Express -strona główna

Paltforma .NET:

  1. Blog dla twórców .NET
  2. Nauka .NET dla początkujących
  3. Oficjalna strona .NET w MS
  4. My learning track - ścieżka edukacyjna MS dla deweloperów

niedziela, grudnia 09, 2007

Niedziela 9 grud. (tu widać zalety szerokiego spojrzenia witryna AJAXIAN.COM)
Wolta dosłownie w MS, niedawno MS ogłosił projekt Volta (pierwsze wzmianki o nim pojawiły się już latem). Teraz więcej szczegółów na betanews i ajaxian. Projekt jest podobny ideologicznie do GWT (Google) ale bardziej dojrzalszy koncepcyjnie (ma do dyspozycji środowisko dojrzałe wytwórcze w postaci VS2008 oraz do dyspozycji całą gammę języków programowania - wszystkie języki dostępne na platformie .NET mogą tworzyć oprogramowanie aplikacji webowych). Powstało nawet całe laboratorium projektu.
Wg. MS aplikacja webowa jest szczególnym przypadkiem aplikacji Client/Server, jedynie jest spozycjonowana (podzielona na różne części wykonujące się w róznych warstwach). Tu ukłon w stronę tradycyjnych programistów Visual Studio, którzy z zazdrością patrzyli na kolegów "dziergających" strony w JS pisania swym tradycyjnym sposobem a potem podzielnia warstw od warstwy prezentacyjnej (front end) aż po warstwę logiki (back end) i dostarczenie warstwy frontowej przez internet do . Teraz mają możliwośćprzeglądarki lub aplikacji klienta. Projekt jest nowy i pozycjonuje się na równi z AIR firmy Adobe, nie bardzo wiadomo jak ma współpracować z Silverlight. Architekt projektu Meijer mówi o nim, że rozszerza on platormę .NET w stronę tego do czego zawsze była przeznaczona - do konkurowania z Javą.
Bardziej technicznie - jest Volta rekompilatorem kodu MSIL na np. JavaScript, który już może wykonywać się w srodowisku przegladarki.

wtorek, grudnia 04, 2007

Barbórka wieczorowo:

  1. Strony ajaxowe - http://mbyte.org.ua/ajax/page/2/ a w nim klasyka - opowieść tworcy koncepcji AJAX - http://www.adaptivepath.com/ideas/essays/archives/000385.php
  2. http://www.ajaxprojects.com/ajax/tutorials.php
  3. Pomysły - inne elementy interfejsu: tree (Yahoo), grid (Nitobi, dojo - http://www.sitepen.com/blog/2007/11/06/simple-dojo-grids/ lub http://www.scbr.com/docs/products/dhtmlxGrid/), windows (zamiast wbudowanych) np. http://www.huddletogether.com/projects/lightbox2/, http://prototype-window.xilinus.com/)
  4. Framework XAJAX jest już calkiem dojrzały - http://www.xajaxproject.org/
  5. Super linki do otwartych projektów Flash (połaczenie z JS) - http://osflash.org/projects
  6. Słynne MVC w wykonaniu JS - http://www.javascriptmvc.com/
  7. Hej, trzeba mysleć otwarcie, tak jak Apache Software Foundation (ASF) w swych projektach np. XAP (eXtensible Ajax Platfrom) - http://www.rockstarapps.com/pmwiki/pmwiki.php?n=XAP.XAP lub http://incubator.apache.org/xap/architecture.html. Apache jest tylko ogniwem a łańcuchu, warrstwą w architekturze trójwarstwowej. Inne warstwy jak serwer aplikacji nie mają z nią żadnych powiązań i zależności poza ustalonym interfejsem. Mogą być posadowione na innym komputerze i innej platformie narzedziowej np. PHP, ASP, J2EE czy .NET.
  8. AJAX w ciągu dwóch ostatnich lat wiele zmienił w aplikacjach webowych - http://www.cio.com/article/160650/Beyond_Ajax_Software_Development_Two_Years_from_Now. Rozmowy z ekspertami - http://www.cio.com/article/160650.
  9. Nowe IDE - Komodo - the release of Open Komodo, Aptana and Panic, the ActiveState
  10. DOJO - http://alex.dojotoolkit.org/ - http://www.cio.com/article/160450
  11. Oba - http://www.25hoursaday.com/weblog/
  12. Forum - http://www.daniweb.com/forums/forum117.html
  13. Różnice między implementacją onkeypress :<script language="javascript" type="text/javascript">
    function enterHere()
    {
    if((event.which && event.which == 13) (event.keyCode && event.keyCode == 13))
    {
    find();
    }
    }
    </script>
  14. a w FF:
  15. function enterHere(e)
  16. {
  17. e = e window.event;
  18. var code = e.keyCode e.which;
  19. if(code == 13)
  20. find();
  21. }
  22. VFP - socjologiczne portale -http://msdn2.microsoft.com/en-us/vfoxpro/bb190228.aspx, prezentacje na http://www.svfpug.com.au/

piątek, lipca 06, 2007

Rozważania na temat technik programowania:
  1. Nastąpiło zbliżenie, środowisko .NET i J2EE stosują technologię Hibernate do przechowywania stanu oraz mapowania obiektów z aplikacji w bazie danych.
  2. Więcej szczegółow u znanego blogisty:
    1. http://www.jonathanbruceconnects.com/jonathan_bruce/
    2. http://devhawk.net/art_sccswitch.aspx
  3. Jeżeli chodzi o Oracle to podobnie jak dla innych baz należy przejść z OLDDB do ADO.NET (mimo, że te modele różnią się istotnie architekturą). Na tym polu króluje firma DataDirect - http://www.datadirect.com/products/net/net_for_oracle/index.ssp.
  4. Przeglądarka API dla Windows - http://www.activevb.de/rubriken/apiviewer/index-apiviewereng.html
  5. Inne przydatne narzędzia programistyczne - http://www.hanselman.com/
  6. Jak to jest z połączeniem PHP-Java:
    1. Thrift - http://developers.facebook.com/thrift/
    2. Krook - http://krook.net/archives/191:
      1. The open source PHP/Java Bridge hosted at SourceForge.
      2. The commercial Zend Platform Java Bridge developed by Zend Technologies.
      3. The free PHP Integration Kit for WebSphere Application Server Community Edition.
  7. REST na podstawie pracy Fielding'a - http://searchwebservices.techtarget.com - REST vs SOAP - the rest story
  8. REST stosuje również Google - http://code.google.com/apis/gdata/overview.html
  9. Dobra kontrola danych jest podstawą bezpiecznej aplikacji webowej : Kevin Beaver- Importance of data validation
  10. A SELENIUM podstawą do testowania gotowej aplikacji w całości - http://www.openqa.org/selenium-core/usage.html
  11. Przemyśl stosowanie JSF (ciągle zbyt uboga w komponenty) - http://www.theserverside.com/tt/articles/article.tss?l=RethinkingJSF
  12. Reminiscensje z JavaONE - http://www.theserverside.com/tt/talks/library.tss#buzek
  13. AJAX i GOOGLE - http://www.softwaredeveloper.com/features/google-ajax-play-nice-061907/
  14. GlassFish - co to jest? https://glassfish.dev.java.net/
  15. Uwaga! Nadchodzi SPRING:
    1. http://blog.interface21.com/main/2007/04/21/what-spring-web-flow-offers-jsf-developers/
    2. http://www.theserverside.com/tt/articles/article.tss?l=SpringNewJavaEE
  16. VFP gości .NET - http://west-wind.com/weblog/posts/104449.aspx
  17. Nowe spojrzenia na AJAX- a http://www.xul.fr/en-xml-ajax.html
  18. Applety z JSC http://jsc.sourceforge.net/
  19. Świetna dokumentacja do bibliotek środowiska JAVA - http://www.jdocs.com/

środa, lipca 04, 2007

Środa - linki:

  1. W latach 80 najb. gorącym tematem w IT były relacyjne bazy danych. Główne skupisko naukowców zajmujących się bazami relacyjnymi było w University of California w Berkely (Mike Stonebraker, Larry Rowe and Gene Wongm Jim Gray). Ci właśnie naukowcy byli twórcami pierwszej bazy danych Ingres obik Informix, Oracle oraz obiecującej Sybase. Na początku lat 90 firmy MS, Oracle i IBM wyssały z uczelni co lepszych naukowców do swych laboratoriów. Wśród trzech modeli baz (sieciowa, relacyjna i hierarchiczna) skłaniano się do relacyjnej. Skutkiem tego wiele problemów baz relacyjnych i nie tylko (np. efektywny model przetwarzania rozproszonego) zostało nierozwiązanych. Pojawiła się walka między zwycięzcą (model relacyjny) a nową koncepcją - bazą obiektową. Pojawiły się różnorodne techniki mapowania obiektów na model relacyjny. Firmy SAP, Siebel wykorzystały w swych produktach połączony model obiektowo-relacyjny. Powstały mappery dla j. programowania takie jak TopLink czy Hibernate. W standardzie SQL-1999 powstały rozszerzenia ułatwiające budowę modelu o-r ale są przez nikogo zauważane. W aplikacjach Web 2.0 informacja jest najczęściej rozproszona po całym świecie i bez wyraźnej struktury najczęściej prezentowana w formacie XML czy JSON. Najczęściej używaną bazą jest MySQL w postaci modelu shard. Wszystkie reguły relacyjności zostały wyrzucone przez okno, robi się wszystko by zapytania były realizowane efektywnie. (Zdnet - http://m.zdnet.com/index.php?id=80921&site=11)
  2. Uwaga na horyzoncie pojawił się nowy rywal Linuxa - http://www.gnusolaris.org/gswiki - Nexenta OS - bazujący na OpenSolaris. Strona do ściągnięcia obraz dla VMWare - http://www.gnusolaris.org/gswiki/Download-form (uwaga!!! Konto: root/livecd)
  3. Dziwne stanowisko MS, niegdyś kiedy WS były tworzone firma ta była aktywnym uczetsnikiem prac w tym zakresie (była obok IBM jednym z filarów specyfikacji WS-* która znalazła się po dachem grupy OASIS. Walczyła o otwartość standardu wymiany przy pomocy usług sieciowych. Teraz kiedy stwarza się okazja do podniesienia poziomu usług sieciowych poprzez prace w OASIS w zakresie implamentacji SOA (czyli na poziomie oprogramowania aplikacyjnego zamiast jak to było w przypadku WS-* na poziomie usługi sieciowej): SCA (Service Component Architecture) oraz SDA (Service Data Architecture) MS unika uczestnictwa. Powód: firma wbudowała WS w system operacyjny jako część stosu aplikacyjnego, podczas gdy inni budują niezależne aplikacje. Dla małych organizacji takie wbudowanie jest korzystne ale dla dużych korporacji gdzie środowisko jest heterogeniczne stanowi to przeszkodę. http://m.zdnet.com/index.php?id=80886&site=11
  4. MS potrzebuje REST - aplikacje spod zanku Web 2.0 polegają na integracji i powiązaniach ze sobą (integration and mashup). Powiązanie te są zewnętrzne tj. między aplikacjami działającymi jak mashup lub wewnętrzne między róónymi źródłami danych dostawcy usług (np. Google ma wiele wewn. źródeł danych tzw. GData stosuje do komunikacji rozszerzony APP). Stosują REST (Representational State Transition) stosowany przez Google i Yahoo lub APP (Atom Publishing Protocol) de facto standard. Microsoft widząc niedoskonałości APP zamiast go udoskonalić wymyślił nowy standard - Web3S (Web Structured Schema and Searchable)
  5. Cała wrzawa wokół otwartego formatu dokumentów w stanie Mass. polega na tym, że mimo uznania OpenOffice za wpełni otwartego to nie ma on wielu funkcji dla osób niepełnosprawnych. Dlatego dopuszczono stosowanie Office Open XML pod warunkiem zainstalowania konwertera do Open Document Format (ODF). Zdnet - "Microsoft document formats gain Mass. favor"
  6. Niebezpieczeństwa stosowania Web 2.0 - Prawdzie jest równanie: te same zagrożenia jak Web 1.0 + dodatkowe wektory zagrożeń = większa złożoność
  7. Jakie to zagrożenia:
    1. web feeds - kanały informacyjne: użytkownicy sami mogą edytować te strumienie i wstrzykiwać do nich "złe" skrypty. Techniki ataku: cross-site request forgery (CSRF), cross-site scripting (XSS) and distributed denial of service (DDOS). Blacklisting i gorsze od whitelisting gdyż na białej liście są wolne od zagrożeń i dopuszczone strony. Należy również sprawdzić dokładnie dane wejściowe. Często strumienie sa konwertowane do HTML, i strony są przechowywane lokalnie w "local" zone, gdzie powinna być zawartość zaufana. Ataki w tej strefie to XMLHttpRequest i ActiveX.
    2. web services - usługi sieciowe: kradzież sesji (właściwie session ID, który jest przechowywany jako cookie lub w adresie URL.
    3. technologie AJAX - sprawdzenie dokładne danych wejściowych
  8. Testowanie aplikacji przy pomocy środowiska SELENIUM - http://www.openqa.org/selenium-core/usage.html
  9. Ataki na www - http://searchsoftwarequality.techtarget.com/tip/0,289483,sid92_gci1214373,00.html
  10. RStrahl - http://west-wind.com/weblog/posts/104449.aspx
  11. CoDe - http://code-magazine.com/article.aspx?quickid=0001061&page=4
  12. Eclipse - http://www.thescreencast.com/2007/07/tour-around-europe-eclipse-for-java-ee.html
  13. AJAX - http://www.softwaredeveloper.com/features/google-ajax-play-nice-061907/
  14. OpenID - http://www.theserverside.com/tt/articles/article.tss?l=OpenID
  15. AJAX i WS - http://www.theserverside.com/tt/articles/article.tss?l=AjaxJavaWebServices_Chapter
  16. REST vs. SOAP - http://searchwebservices.techtarget.com/tip/0,289483,sid26_gci1227190,00.html?track=NL-461&amp;ad=595564&Offer=WStssret73rest&asrc=EM_NLN_1720960&uid=267959
  17. Podpis XML w .NET - http://www.codeguru.pl/article-702.aspx

poniedziałek, czerwca 25, 2007

Lista plików związana z korektami:
  1. mLib_kor.js
    Biblioteka funkcji JS
    testarr.php
    Tworzenie tablicy do edycji korekt
    kor_zapisz.php
    Zapisz korektę do tablicy tymczasowej
    dok_zapisz.php
    Zapisz dokument o korekcie
    korektaZam.php
    Wejście do korekt zamówień
    dok_weryf.php

    pokazKor.php

    style_kor.css

    syle.css

    editKor.php

    kor_pobierz.php

    jestKorekta.php
    Czy jest podobna korketa w toku
    pobierzKlucz.php
    kor_form
    proc wbudowana do korekt
    dod_form
    proc wbudowana do planu










  2. Sprawy organizacyjne - serwer weglokoksowy - 192.168.254.166 (admincoig/ginewr@951)(marekw/zaq12wsx)
  3. VFP gdy wysyła znaki do internetu poprzez XMLHTTP zawsze przekodowuje je na UTF-8 (automatycznie), dlatego skrypt po stronie serwera powinien przekodować je na ISO Latin 2 (bo taki jest standard przechowania danych w polach tekstowych)
  4. Ciekawe strony:
    1. www.ajaxpro.info - przykładowa lekcja: http://www.ajaxpro.info/Examples/DataSets/default.aspx
    2. jsc.sourceforge.ne - przykłady appletów
    3. ajaxrain.com
    4. gliff - dla dzieci
  5. Usuń znaki "dziwne" w polach tekstowych
  6. Co z escape i innymi funkcjami w JS
  7. Quintura - ciekawa przeglądarka
  8. Zasoby publiczne - jarjawor
  9. Wykorzystanie możliwości InterOp Form
  10. Wybór frameworka dla AJAX - "AJAX: selecting a framework that fits" - http://www.drdobbs.com/dept/webservices/199203087
  11. Kursy ASP.NET dla JSP - http://www.learn2asp.net/jsp/Campaign.aspx?RefID=CMP001
  12. Jakis framework musi być dla JS
  13. Tigermouse - framework dla AJAX w PHP - http://tigermouse.epsi.pl/doku.php?id=otherframeworks
  14. IBM DB2 przechowuje XML natywnie - http://www.db2mag.com/story/showArticle.jhtml?articleID=191502768, uwaga na dostęp do nowych typów danych: "C/C++ and scripting solutions such as PHP and Perl often use an ODBC interface to SQL data. The DB2 CLI extends the ODBC 3.51 API with support for additional types, including the new XML type.

    When writing CLI programs, the symbolic SQL data type for XML columns is SQL_XML and the default symbolic C data type is SQL_C_BINARY. Permissible conversions include SQL_C_CHAR, SQL_C_WCHAR, and SQL_C_DBCHAR. The default precision for XML columns is 0, but it's a defined length for external routines.

    IBM is deprecating the type 2 JDBC driver for DB2 9. It suggests moving to the IBM DB2 Driver for JDBC and SQLJ, a single driver that combines type 2 and type 4 features. It supports the Java Transaction Service (JTS), Java Transaction API (JTA), JDBC 3.0 API, and SQLJ capabilities that have JDBC counterparts.

    To access DB2 from Java, developers can use static SQL with SQLJ and dynamic SQL with JDBC. Java does not have an XML type, so invoking the JDBC GetTypeInfo metadata method will report the type of an XML column as java.sql.Types.OTHER.

    Using JDBC ResultSet.getXXX methods, you can retrieve an entire XML column or a sequence from the column. When you retrieve XML data using a JDBC getXXX method, it's in a serialized string format. The getXXX method will output the result in the format corresponding to the method name (for example, getAsciiStream). In the case of ResultSet.getObject, you can cast the object to the DB2Xml type, assign it to a DB2Xmlobject and use a DB2Xml.getDB2XXX method to output the data to the desired type.

    An enhanced set of add-ins for Microsoft Visual Studio 2005 include support for building and testing .Net applications using XML data stored in DB2 9. DB2 includes providers for OLE DB and ADO.Net, including the DB2 .Net Data Provider, the OLE DB .Net Data Provider and the DB2 Data Provider for .Net Framework 2.0. The OLE DB Provider and OLE DB .Net Data Provider don't support the new XML type. To access an XML column with use the ODBC .Net Data Provider, you map it to SQL_LONGVARCHAR."


sobota, czerwca 16, 2007

Sobota

  1. Właśnie wróciłem z Krakowa. Byliśmy tam z synem Piotrusiem w Muzeum Lotnictwa.
  2. Poczatki tworzenia apliacji webowych o dużej inetraktywności - http://www.alexhopmann.com/xmlhttp.htm, autor trochę broni się przed atakami bardziej od niego utytułowanego Adam Bosworth (tu ). Myślę, że prawda leży gdzieś pośrodku.
  3. Waga - należy uznać język JavaScript za pełnoprawny język programowanie do obsługi narzędzia komunikacyjnego z Internetem tj. przeglądarki internetowej. Dopóki sposobem do uruchamiania stron www z Internetu jest przeglądarka dopóki język ten ma rację bytu i musi być uznawany.
  4. MS również nie pozostaje w tyle za twórcami narzędzi wspomagających technologię AJAX - stworzył bibliotekę AJAX 1.0
  5. Blog w MSDN o IE.
  6. Bardzo mądry blog - http://flex2.blogspot.com/feeds/posts/default
  7. Szkolenie - http://www.netbeans.org/kb/55/vwp-helloweb.html
  8. Jak używać XML to we właściwej wersji - http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
  9. Ciekawe czy firmy wspierające J2EE np. JBoss czy BEA ma własne rozszerzenia w postaci jakiś datagrid.
  10. Świetny artykuł na temat interoperability (kooperacji i wymiany) w betanews - rozmowa z TOM ROBERTSON, General Manager for Interoperability and Standards, Microsoft. Cztery filary interoperability:
    1. standardy (nie ma jednego standardu w danej technologii, powinno być kilka standardów do wyboru ale wszystkie one powinny być w stanie współpracować ze sobą),
    2. swobodny dostęp do technologii (na zasadzie open source, podpisania umowy o wymianie IP lub licencji otwartej MS Open Specification Promise),
    3. współpraca zespołów oraz
    4. wymienialność aplikacji

poniedziałek, grudnia 04, 2006

AJAX - brzytwa w rekach malpy?

"OK, let’s return to web application security 101. Web applications must NEVER trust the client (web browser). This is gospel whether the web page interfaces use JavaScript, Flash, ActiveX, Applets, AJAX or any other protocol or language. Every developer should be aware that basic HTTP proxies may alter anything about the HTTP request, even those generated by XHR. Great care should be taken to ensure that all security checks are performed on the server--no exceptions." - cytat ze świetnej pracy na temat rzekomego niebezpieczeństwa stosowania technologii AJAX, który znajduje się na ższych stronach . Nigdy nie ufaj klientowi - to stara zasada i odnosi nie nie tylko do klasycznego rozwiązania (przeglądarki internetowej), ale również i do innych form np. widgetów z Opery czy Yahoo.

Każda przeglądarka ma wbudowany mechanizm wspierający XMLHTTPRequest (XHR). Istotą aplikacji typu Web 2.0 jest pobieranie danych z różnych trzecich serwerów w ten sposób doprowadzając do słynnego "mesh-up" czyli misz-masz. Stwarza to określone zagrożenie dla odbiorcy aplikacji. Na szczęście XHR technologia nie zezwala bezpośrednio na tego rodzaju sztuczki. "XHR has security protections built-in, preventing a user’s browser on Website A from making connections to Website B." Ale są różne obejścia tego ograniczenia. Rozwiązanie polega na stworzenie serwera pośrednika w domenie internetowej tzw. proxy (najczęściej na serwerze internetowym witryny). Odwołanie do witryny B ma przez serwer proxy taka postać http://websiteA/proxy?url=http://websitesB/ - w ten sposób proxy przekazuje żądanie z witryny A do witryny B. Wten sposób można ominąć ograniczenia XHR i apliakcja nie przesyła cookies. Ale w ten sposób witryna A gości odwołania do witryny B. Bezpieczeństwo polega na monitorowaniu do jakich to URL chcą się odwołać strony witryny B. A więc na kontroli i samocenzurze. Odnośnie Cross-Site-Scripting (XSS) to rzeczywiście AJAX na to zezwala, ale stosując wyłącznie JavaScript możemy "osiagnąć" taki sam efekt bez uciekania się do nadmiernej komplikacji w AJAX. Autor (Jeremiah Grossman) zademonstrował to w słynnej prezentacji “Hacking Intranet Websites from the Outside” at BlackHat 2006. Z kolei inna prezentacja pt. “Cross-Site Scripting Worms and Viruses" pokazuje jak możne to osiagnąć poprzez JS.

Zasady bezpiecznej aplikacji internetowej to KROK 1 polegający na:
  1. uwzględnienie aspektów bezpieczeństwa juz na etapie projektowania aplikacji
  2. dogłębne sprawdzania danych podanych przez użytkownika
  3. stosowanie tylko sprawdzonych bibliotek komponentów (dostępnych w branży), obojętne na jakiej licencji (closed lub open source), nie wymyslać na nowo koła (i powtarzać błędy innych) szczególnie przy kryptografii i zarządzaniu sesją.
  4. bezpieczna koniguracja (separacja usług, zasada najmniejszych przywilejów, wyłączenie usług zbędnych oraz komunikatów o błędach)
  5. Stałe poszukiwanie i naprawianie ewentualnych usterek. Stały pomiar i ocena podatności na atak (vulnerability assessment)

KROK 2 polega na nieustajacym monitorowaniu i walidacji rozwiązań.