niedziela, lipca 15, 2007

AJAX in PHP

  1. Zasoby
    1. - http://ajaxmatters.com/default.aspx
    2. http://www.php-learn-it.com/tutorials/mod_rewrite_dynamic_urls_to_static_urls.html
    3. http://swik.net/Ajax/How+to+use+XMLHttpRequest
    4. http://www-128.ibm.com/developerworks/web/library/wa-ajaxintro4/
    5. Wzorce - http://ajaxpatterns.org/
  2. XAJAX - http://www.xajaxproject.org/
  3. wiki - http://wiki.xajaxproject.org/0.5_Documentation
  4. tutorial - http://wiki.xajaxproject.org/Tutorials:Learn_xajax_in_10_Minutes
  5. Propozycja grid'a - http://ajaxian.com/archives/xajax-php-live-datagrid
  6. Ajax dla mass - http://www.i-marco.nl/weblog/archive/2005/11/12/easy_ajax_for_the_masses_with_
  7. Projekty ajaxowe - http://www.ajaxprojects.com/ajax/projects/PHP_Frameworks/XAJAX_Library.php
  8. z IBM - http://www-128.ibm.com/developerworks/web/library/wa-ajaxintro4/
  9. Frameworki Ajaxowe - http://ajaxpatterns.org/PHP_Ajax_Frameworks
  10. AJAX w swiki - http://swik.net/Ajax/How+to+use+XMLHttpRequest
  11. Inne implementacje AJAX w PHP:
    1. JPSPAN
    2. SAJAX
    3. NAJAX
    4. jPOP
    5. XOAD
    6. Zestaw framework-ów: http://ajaxpatterns.org/PHP_Ajax_Frameworks
    7. HTML_AJAX:
      1. http://wiki.bluga.net/HTML_AJAX/start?
      2. http://bluga.net/projects/HTML_AJAX/examples/ -przykłady
    8. Zend Framework
  12. http://blog.joshuaeichorn.com/archives/2005/08/17/ajax-hello-world-with-html_ajax/ - wskazówka na SAJAX i JPSPAN
  13. Jest możliwość uruchamiania kodu PHP wraz z J2EE (projekt RESIN ) - http://quercus.caucho.com/.
  14. Ważna jest też problem kompresji plików wspierających rozwiązania szkieletowe (frameworki) w JS. Są to wielkości ok. 100KB. Można je kompresować w źródłach ale to utrudnia poprawianie błędów. Istnieje inna opcja - wykorzystanie technologii Content Encoding obecnej w każdej nowoczesnej przegladarce. Polega to na tym, że przegladarka rozpoznaje rozszerzenia .gz i dekoduje je przed kompilacją wstepną w silniku interpretera JS. Wymaga to jednak skonfigurowania serwera Apache (tu jest jak to zrobić ). Należy skonfigurować dwa moduły: mod_deflate (tylko kompresja) lub mod_gzip (kompresja z cacheowaniem skompresowanych plików). Plki .js należy oczywiście ręcznie skompresować we własnym zakresie.
  15. Projekt QUERCUS - 100% implementacja PHP 5 w Javie. Jest łączone podejście to rozwoju aplikacji internetwowych - http://quercus.caucho.com/ - Pozwala pisać kod w php i ma API do korzystania z funkcji i frameworków J2EE. Przykład JSON - http://quercus.caucho.com/quercus-3.1/examples/quercus-json/index.xtp
  16. Bardzo ważne zasoby (m.in. Grid) - http://www.codango.com/php/dir/components/ajax/?gclid=CI_O_ubVuo0CFQpXZwodsQlxKA
  17. Dywagacje na temat wykorzystania AJAX w PHP - http://cesarodas.com/2007/07/php-implementing-a-heavy-use-of-ajax.html

piątek, lipca 13, 2007

Piątek ... początek
  • Wzorce korzystania z JDBC - mimo pojawienia się wielu technologii przeźroczystego dostępu do baz danych (tzw. data persistance: jak entity beans, JDO, Hibernate) nadal ze względów praktycznych króluje JDBC. Wskazówki:
    • korzystanie z puli połączeń (ustanowienie połączenia z bazą kosztuje od 30 do 1000ms). Prawie wszystkie kontenery servletowe i EJB korzystają z tej techniki. Poza ramami J2EE można skorzystać z projktów open-source np. Commons-DBCP
    • zamykać należy połączenie - close() zwykle zwraca połączenie do puli a nie odłącza sie od bazy, powoduje to "wyciek" pamięci. Ułatwić to może projekt CementJ
    • celowość stosowania procedur wbudowanych (przenaszalność kontra wydajność) tu należy stosować kryterium "ile będzie mniej transmisji sieciowych poprzez zastosowanie sp". Przetwarzanie logiki biznesowej (obciążającej CPU) w sp nie jest wskazane.
    • podejście do generowanych automatyczne przez motor bazy kluczy - znajomość klucza nowego (po Insert) rekordu jest ważna np. do wpisania go do rekordów podrzędnych. Specyfikacja JDBC 3.0 wymaga od sterownika żeby zwrócił ten klucz - getGeneratedKeys().
    • oddzielenie kodu JDBC od logiki biznesowej - należy kod JDBC zebrać w oddzielną klasę po to aby odseparować ten kod na wypadek konieczności dokonania zmiany oraz ułatwić współdzielenie kodu .
    • korzystanie z "query fetch size" przy przeglądaniu dużych wyników zapytań. Zwykle ustala się go (pole fetchSize) na poziomie 100. Ma znaczenie przy wolnych połączeniach sieciowych (pobiera rzadziej dane)
    • stosuj przetwarzanie wsadowe - grupowanie instrukcji SQL do wykonania jako jeden ciąg
    • nowości w JDBC 3.0 - wsparcie dla RowSet (dla wsparcia JavaBeans): może być connected lub disconnected oraz możliwość serializacji do XML.
  • Lista zaleceń wydajnościowych JDBC - http://www.javaperformancetuning.com/tips/jdbc.shtml
  • Generalnie należy przeglądać serwis - http://jdj.sys-con.com/read/46653.htm z którego pochodzą w/w informacje
  • Świetne tutoriale - http://www.j2eebrain.com/
  • Jeszcze raz o Grasshopper ma się świetnie - http://linux.sys-con.com/read/393685.htm - projekt jest na poziomie Developer Edition bezpłatny i umożliwia pisanie w .NET, przenosić do Javy i uruchamiać na Linuksie.
  • Ważne - ZEND Framework 1.0.0 już jest - (można się włączyć do prac Przemka) - http://linux.sys-con.com/read/397441.htm - ma wsparcie dla ORM
  • Opis platformy ZEND - http://framework.zend.com/whyzf/components/
    • Wstęp do JDBC:opis (dokumentacja JDBC) - http://java.sun.com/products/jdbc/download.html
    • samouczek - http://java.sun.com/developer/onlineTraining/Database/JDBC20Intro/JDBC20.html
  • Uwagi o JDBC - dla wersji 2.x wymagany jest pakiet JDBC core API (zawiera się w Java 2 SDK, Standard Edition - java.sql package) gdy programujemy po stronie klienta, strona serwerowa używa innej biblioteki zawartej w Java 2 SDK, Enterprise Edition (java.sqlx), która zapewnia wiekszą funkcjonalność (pulę, RowSet). Można też ściągnąć indywidualnie w/w bibliotekę X.

czwartek, lipca 12, 2007

Czwartek ciekawy jak zwykle:
  1. Wielowatkowość w VFP - http://www.codeplex.com/mtmyvfp
  2. Przegląd najlepszych stron wykonanych w Web 2.0:
    1. http://www.realsoftwaredevelopment.com/2006/10/best_of_the_bes.html
    2. http://virtualkarma.blogspot.com/2006/01/complete-list-of-web-20-applications.html
  3. Co to właściwie jest JQuery - http://jquery.com/
  4. Tutorial - http://www.tizag.com/javascriptT/index.php
  5. Visual GUI świetne - http://www.visualwebgui.com/
  6. http://www.codeguru.com/vb/gen/vb_general/idelanguage/article.php/c9621/
  7. CODE GURU po ang. Autentykacje na czym to polega - proces walidacji użytkownika na bazie jego przedstawionych akredytacji (emial, hasło, konto) i porównaniu ich ze wzorcem przechowywanym u siebie (np w bazie lub pliku XML, dla małych aplikacji może to być Web.Config). Najpolularniejszyą formą jest FORM AUTHENTICATION (autentykacja formularza):
    1. http://www.codeguru.com/csharp/.net/net_security/authentication/article.php/c7377/ - jest tam sourcecode.zip
    2. http://www.codeguru.com/csharp/.net/net_security/authentication/article.php/c4701/
    3. http://www.codeguru.com/csharp/.net/net_security/authentication/article.php/c8585/
    4. http://www.codeguru.com/csharp/.net/net_security/encryption/article.php/c4703/
  8. Tworzenie WS w .NET JS - http://www.codeguru.com/csharp/.net/jscript/essamahmedonjscriptnet/article.php/c4271/
  9. Podłącz się do Oracle - http://www.codeguru.com/csharp/csharp/cs_network/database/article.php/c13627/
  10. EasyEclipse - http://sourceforge.net/forum/forum.php?forum_id=644682
  11. Linki do JAva z WROX:
    1. JSP - http://p2p.wrox.com/forum.asp?FORUM_ID=86
    2. J2EE - http://p2p.wrox.com/forum.asp?FORUM_ID=88
    3. Generalnie to forum ma listę tematów do wybrania
    4. Super linki do przykładów z Wrox - http://www.wrox.com/WileyCDA/Section/id-105127.html
  12. Ciekawe dla developerów - http://www.packtpub.com/
  13. Implementacja stronicowania:
    http://jsptags.com/tags/navigation/pager/index.jsp
    http://www.javaworld.com/javaworld/jw-07-2004/jw-0726-pagination.html
    http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=58&t=007230
    http://servlets.com/archive/servlet/ReadMsg?msgId=274095&listName=struts-user
    http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=58&t=007715
    http://displaytag.sourceforge.net/10/tagreference-displaytag-12.html
    http://www.junlu.com/msg/153352.html
    http://jsptags.com/tags/navigation/pager/pager-taglib-2.0.html
  14. Dokumentacja Apache - http://tomcat.apache.org/tomcat-5.0-doc/appdev/deployment.html
  15. Przykłady JAVA - http://www.devarticles.com/c/a/Java/Socket-Programming-in-Java/2/
  16. Jak zacząć z JSTL - http://www.exampledepot.com/egs/javax.servlet.jsp.jstl.core/usejstl.html


środa, lipca 11, 2007

Linki w srodę:
  1. https://www.spidynamics.com/products/webinspect/WIdirect.html - bezpieczeństwo
  2. Wiele odwołań do implementacji AJAXa - http://web2magazine.blogspot.com
  3. Tam też są prezentacje - https://www.spidynamics.com/spilabs/education/presentations.html
  4. Patrz też SPI Labs - https://www.spidynamics.com/spilabs/education/articles/index.html
  5. Europa w piątek prezentuje nowe podejście do Eclipse (synchronizacja projektów)- http://news.zdnet.com/2100-3513_22-6193596.html:
    1. (17 mln linii kodu o 7 mln więcej niż Callisto, zeszłoroczna edycja)
    2. BRIT i BI - wejscie z WS a wyjście do formatu MS Office
    3. wprowadznie DLR do IDE (Ruby, TCL w przyszłości Python i Perl)
    4. narzędzie do "rysowania" stron webowych
  6. Super strona rozbiegowa na temat programowania - http://updates.zdnet.com/tags/Programming.html (szukaj MSDN Webcast o events i delegatach)
  7. Programowanie jest sztuka podobnie jak dziennikarstwo - http://blogs.zdnet.com/open-source/?p=1192
  8. Scriptus Free - http://downloads.zdnet.com/download.aspx?docid=303501
  9. Uruchom zdalnie narzędzia rationala na serwerze w IBM
  10. Wyszukiwarka w J2EE przy pomocy API Google - http://www.regdeveloper.co.uk/2007/06/24/google_search_ajax/
  11. BBC - http://news.bbc.co.uk/

wtorek, lipca 10, 2007

Niezwykle ciekawe linki na tematy deweloperskie:
  • IBM:
    • AJAX + J2EE (servlety) - http://www.ibm.com/developerworks/library/j-ajax1/
    • Rozbiegowka do artykułów nt. AJAX - http://www.ibm.com/developerworks/views/web/libraryview.jsp?search_by=Mastering+Ajax
    • JSNOML - http://jsonml.org/
    • Poznaj JsonML w IBM - http://www.ibm.com/developerworks/xml/library/x-jsonml/?S_TACT=105AGY01&S_CMP=PODCAST#resources
  • Microsoft (CodeProject):
    • Using JS to select GridView rows - http://www.codeproject.com/aspnet/JavaRowSelect.asp
    • Code .NET 2.0; Build Java; Run Linux - http://www.codeproject.com/showcase/mainsoft.asp
    • Code .NET 2.0; Build Java; Run Linux - http://www.codeproject.com/useritems/Net_COM__Interop.asp
    • Dynamic Table using html and javascript - http://www.codeproject.com/useritems/html.asp
    • ASP.NET Web Controls for the Yahoo! User Interface Library - http://www.codeproject.com/aspnet/YahooInterfaceLibWebCtrls.asp
    • Interop Forms Toolkit 2.0 Tutorial - http://www.codeproject.com/useritems/VB6InteropToolkit2.asp
    • Using .NET Controls in VB6 - http://www.codeproject.com/vb/interop/UsingDotNETControlsInVB6.asp
    • http://www.codeproject.com/vb/interop/csCom.asp - http://www.codeproject.com/vb/interop/csCom.asp

poniedziałek, lipca 09, 2007

ASTORIA - nowy projekt MS
Jet to projekt zamknięty (komercyjny) mający na celu zbadanie wykorzystania najnowszych technik i koncepcji webowych na platformie Microsoft Data platform. Polega na eksponowaniu swoim klientom danych sererowych jako sieciowego serwisu danych (WS). Korzysta się z najprostszych, zna
nych i nie wymagających przechodzenia przez sito standardów protokolów HTTP (GET, POST, PUT, DELETE). Wymagane jest Visual Studio beta zwane "ORCA".

Wojna pomiędzy REST i SOAP
Prawda jest taka, że SOAP bez wsparcie środowiska RAD, robiony na "piechotę" jest koszmarny. Ale nawet ukrycie jego złożności przygotowania nie ukrywa faktu, że skład się z wielu warstw obejmujących wszystkie aspekty komunikacji od bezpieczeństwa aż po tranzakcyjnośc i zarządzanie.

To z lewej jest schemat REST (na podstawie dysertacji Fieldinnga). Przydatność REST potwredza Amazon.com oraz wiele publikacji na O'reilly.
Strona propagatora RESR: http://hinchcliffe.org/default.aspx




Projekt "Zero" IBM (http://www.linuxworld.com.au/index.php?id=2095861668&eid=-50)
Zero - oznacza 0 złożoności i narzutu. Środowisko do budowy aplikacji internetowych bazujących na popularnych technologiach Web 2.0:
  1. standard wywołania - REST lub ATOM
  2. standard wymiany danych - JSON lub XML
  3. standard interfejsu - AJAX
Zawiera runtime dla Groove i PHP. Model tworzenia tego projektu - "community-driven commercial development process" projekt komercyjny przy współudziale społeczności otwartej. Nie ma mowy o licencji otwartej. Hey, nic nowego, przecież podobne projekty ma SUN (JCP) i MS (CPT)! IBM broni się przed oskarżeniem o komercyjność tym, że używa przecież wiele technologii open-source które znacząco inwestuje i finansuje IBM. Takie dwulicowe podejście do wykorzystania open-source spotkało się z ostrą krytyką analityków i witryny "theserverside".
Strona IBM samego projektu www.projectzero.org.


Nowości w poniedziałek
Wg.: The story of Web 2.0 and Web 2.0 continues p.1
  1. Historia SOA i Web 2.0 - Co widzimy? Duże firmy softwarowe kierują się ku SOA w wydaniu lekkim, przez co zbliżają się coraz bardziej do technologii Web 2.0. Widzimy konwergencję tych dwóch fundamentalnych pojęć. SOA polega na dekompozycji aplikacji na serwisy, które mogą się wzajemnie wywoływać oraz co najważniejsze z punktu widzenia Web 2.- mogą się łączyć (w sposób zwany mashup) tworząc nowe usługi. Dodatkowo, nieformalne podejście w Web 2.0 zostało zamapowane do formalnego podejścia SOA. Innymi słowy można powiedzieć, że są to dwa podejścia: dekompozycja (w stylu SOA) i kompozycja (w stylu Web 2.0).
  2. Podobieństwa między nimi reprezentuje diagram Vienna
  3. Wspólne jest przeświadczenie, że oprogramowanie jest częścią większego ekosystemu.
  4. Główną koncepcją Web 2.0 są dane, natomiast w SOA to serwis (usługa która przy okazji przenosi również dane).
  5. WOA, rozwinięcie Web 2.0 - oznacza web oriented architecture (oparcie się na REST i ATOM).
  6. SOA z kolei opiera się na SOAP (nie jest zbyt popularny w Web 2.0, Google porzucił rozwój API w oparciu o SOA, Amazon daje podwójny interfejs (SOA i REST) inni wybierają tylko REST.
  7. Wygląda na to, że istnieje stan wojny między REST i SOA.
  8. Coraz więcej firm skłania się do przedstawienia danych w formie WOA (każdy rozmawia w HTTP i stosuje XML) a nie SOAP (jest wiele platform i wymagane jest przestzreganie bardzo ścisłe WS-* i ujednoliconej wersji SOAP)
  9. Do pary dane/usługi dochodzi trzeci element (chyba najważniejszy) - człowiek. Tutaj Web 2.0 zezwalający na mashup daje dla niego najwięcej.
  10. Dużo informacji na ten temat tu.
  11. Porównanie między SOA i Web 2.0

niedziela, lipca 08, 2007

Na jutro do zrobienia:

  1. Języki dynamiczne w srodowisku Java - http://www.oreillynet.com/onjava/blog/2007/06/scripting_language_for_the_jav.html
  2. Szpiegowanie klas - reflection- http://www.onjava.com/pub/a/onjava/2007/03/15/reflections-on-java-reflection doskonały przykład.
  3. Blog na temat J2EE - servlet v. 3.0 - http://java.sun.com/javaee/community/blogs/?feed=JSC
  4. Wreszczcie JSF 2 - http://www.oreillynet.com/onjava/blog/2007/05/jsf_20_is_here_1.html
  5. Przeechowywanie stanu i or-mapping bez Hibernate - doskonaly przyklad - http://www.ibm.com/developerworks/java/library/j-db4o4.html?ca=drs-
  6. Kursy JSP/Servlet/Applet/WebStart/SSL
  7. http://www.pluralsight.com/fritz/webcasts.aspx
  8. Google Gear z OnJava: http://www.onlamp.com/lpt/a/7055 i http://www.oreillynet.com/databases/blog/2007/06/post_1.html
  9. Prosy przykład AJAX w protoype- http://24ways.org/2005/easy-ajax-with-prototype
  10. Bradzo ciekawe prezentacje - http://www.webstandards.org/
  11. http://whitepapers.zdnet.co.uk/?r=1 , http://whitepapers.zdnet.co.uk/0,1000000651,260283228p-39000361q,00.htm?r=1 , http://whitepapers.zdnet.co.uk/0,1000000651,260282894p-39000361q,00.htm?r=1
  12. http://simonwillison.net/2006/openid-screencast/ , http://whitepapers.zdnet.co.uk/0,1000000652,260283112p,00.htm?r=1
  13. http://www.sitepoint.com/article/painless-javascript-prototype/4
  14. Super tutorial na temat J2EE autorstwa SUNa - http://java.sun.com/j2ee/1.4/docs/tutorial/doc/
  15. Świetny tutorial nt. Atlasa - http://www.asp.net/learn/videos/default.aspx?tabid=63#ajax
  16. Wspomaganie AJAX w prototype - http://www.sitepoint.com/article/painless-javascript-prototype/4
  17. AJAX i FORM ale troche inaczej
    W artykule (http://www.xul.fr/en-xml-a) przedstawiono inne podejście do wysyłania formularza. Buduje się formularz w tradycyjn sposób (ale bez action=""), wśród pól jest przycisk z onclick który wysyła zawartość innych elementów do funkcji w JS która z kolei wysyła te dane do serwera. Sprytnie podciągnięty AJAX pod tradycyjne przetwarzanie. Proszę pamiętać, że podobnie jak zwolennicy REST, aplikacja webowa polega na wysyłaniu danych do serwera i przyjmowania od niego informacji zwrotnej. Linki:
    1. Dodatek do WTP w Eclipse - http://www.eclipse.org/atf/
    2. Framework - http://www.xul.fr/ajax-frameworks.html
    3. Opis JSON - http://www.xul.fr/ajax-javascript-json.html

Czego MS naprawdę chce ?

MS mówi, że zależy mu na interoperability. Nie jest to altriuzm ale wyrafinowana gra biznesowa w której wszyscy są zwycięzcami. Chodzi tu o cztery zasady:

  1. produkty
  2. społeczność
  3. dostępność
  4. standardy

MS bierze czynny udział w pracy komitetów standaryzacyjnych: IETF, W3C, OASIS, IEEE, ETSI, OMA, ECMA, ISO/IEC, and ITU.

Jeżeli chodzi o sprawę standardów to mowa o standardach otwartych a nie open source, tak uważa również EU (http://www.comptia.org/issues/docs/interopwhitepaper0204.pdf) .

sobota, lipca 07, 2007

Nowe cechy Javy:
Java powinna być bezpieczna z założenia, że działa w "piaskownicy" parametry bezpieczeństwa której można definiować. Model bezpieczeństwa Java składa się z dwóch warstw Core Java 2 Security Architecture i Java Cryptography Architecture. Stanowią one podstawowy poziom bezpieczeństwa nad którym są różne rozszerzenia (extension). Od wersji 1.4 Java ma własne mechanizmy obsługi kryptografii i nie trzeba uciekać się do bibliotek firm trzecich np. Bouncy Castle.
Opis J2SA składa się z:
  1. byte code verifier - sprawdza ponownie poprawność użytych konstrukcji języka (czy klasy mają cechę public, czy klasa final ma podklasę itd)
  2. class loader - ładuje klasy do maszyny wirtualnej i sprawdza poprawność odwołań do klas w ramach języka i do zasobów lokalnych
  3. security manager - klasa stworzona przez twórcę aplikacji zezwala na dostęp do zasobów
  4. access controller - niskopoziomowe sprawdzenie wykonywania się aplikacji (zarządzanie pamięcią, typowanie danych, naruszenie konwersji danych)
Opis JCA - realizuje funkcje kryptograficzne i udostępnia API do nich.
Rozszerzenia:
  1. Java Cryptographic Extension
  2. Java Security Socket Extension
  3. Java Autentication and Authorization Extension Service

piątek, lipca 06, 2007

Klasyczne opracowania o XML-u

Ronald Bourret - http://www.rpbourret.com/xml/XMLAndDatabases.htm:

  1. XML data products
  2. XML data bindings resources
  3. XML and database
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/

czwartek, lipca 05, 2007

Linki ciekawe:
  1. Tworzenie aplikacji wykorzystujacej open-source: http://www.onjava.com/pub/a/onjava/2004/04/07/wiringwebapps.html
  2. jsc for C#
  3. Baldwin Java - Servlets
  4. Przeechowywanie stanu i or-mapping bez Hibernate - doskonaly przyklad - http://www.ibm.com/developerworks/java/library/j-db4o4.html?ca=drs-
  5. OnJava - Google Gears p. 1.
  6. RH i MS rozmawiają o interoperability - http://www.eweek.com/article2/0,1759,2154521,00.asp?kc=EWRSS03129TX1K0000616
  7. Jak to jest z zabezpieczeniem SSL - http://webdesign.about.com/od/ecommerce/a/aa070407.htm
  8. Blog na temat J2EE - servlet v. 3.0 - http://java.sun.com/javaee/community/blogs/?feed=JSC
  9. Wreszczcie JSF 2 - http://www.oreillynet.com/onjava/blog/2007/05/jsf_20_is_here_1.html
  10. Języki dynamiczne w srodowisku Java - http://www.oreillynet.com/onjava/blog/2007/06/scripting_language_for_the_jav.html
  11. Szpiegowanie klas - reflection- http://www.onjava.com/pub/a/onjava/2007/03/15/reflections-on-java-reflection doskonały przykład.
  12. Doskonały serwis o Javie - http://www.onjava.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&ad=595564&Offer=WStssret73rest&asrc=EM_NLN_1720960&uid=267959
  17. Podpis XML w .NET - http://www.codeguru.pl/article-702.aspx

poniedziałek, lipca 02, 2007

Nowości w poniedziałek:
  1. Paul Deitel - JSON w poczcie " Deitel Buzz Online Newsletter: JSON (JavaScript Object Notation) Resource Center 29 June"
  2. Jak wygląda porównanie Google z Microsoft - http://no2google.wordpress.com/2007/06/24/life-at-google-the-microsoftie-perspective/
  3. Różnorodne skrypty - http://www.jdhitsolutions.com/scripts
  4. Jak wystartować z XAML - http://msdn2.microsoft.com/en-us/library/ms752299.aspx
  5. Grożna ORCA mimo, że beta - http://redmondmag.com/columns/article.asp?EditorialsID=1813
  6. Linuks powoli nabiera sił - http://redmondmag.com/features/article.asp?editorialsid=742:
    1. Sprawa cała polega na wypracowaniu przez ruch wokół Linuksa tzw. stosu aplikacji (STACK). Dopóki takiego stosu się Linuks nie dorobi dopóty nie będzie traktowany poważnie w kręgach korporacyjnych. Stos stanowi platformę na której mogł wyrosnąć cały ekosystem aplikacji. Drugim ważnym celem jest integracja i współdziałanie (interoperability and integration) a funkcjonalność była na drugim planie.
      1. Myślenie twórców Linuksa polega na rozwiązywaniu problemów informatycznych bez szerszego spojrzenia na całość. Tworzyli wiele nieskoordynowanych projektów.
      2. Pierszwy stos w środowisku Linuks to LAMP.
      3. Innym podejściem są prace Linux Foundation nad projektem LSB (Linux Standard base) tak aby LSB-certyfikawana aplikacja działała na dowolnej LSB-certyfikowanej dystrybucji Liniksa.
      4. W obszarze tworzenia aplikacji jest projekt Eclipse
      5. Ciągle jednak brakuje tego, co najbardziej liczy się w rozwiązaniach korporacyjnych - interoperability. Aplikacje open-source tworzyły tzw. point solution (wyspowe rozwiązania)
      6. Obok LAMP powstaje stos WAMP
      7. Firma SpikeSource - jako pierwsza dostrzegła potrzebę wypracowania takiego stosu aplikacyjnego. W maju doszło do porozumienia m. nią a MS w sprawie kooperacji. Bill Hilf - ogłosił, że w/w firma będzie certyfikowała swoje rozwiązania na platformie Windows.
    1. Przykład takiego stosu:
    2. Open Source Stacks on Windows
      Enterprise open source isn't just for GNU/Linux anymore. The following selection of applications also runs on Windows.

      Web Server

      Database

      Middleware

      Business Intelligence

      Enterprise Content Management

      CRM

      ERP

      Porównanie stosów:

Gillmor’s Internet plate tectonics by ZDNet's Dan Farber -- Steve Gillmor riffs on my post about Yahoo’s lack of a social networking hub, where I state: “Yahoo is about making connections, but right now its more of loose federation of Web applications and services–many spokes without a strong hub to hold together a social Web. Yahoo 360 has been a failure as a social [...]

niedziela, lipca 01, 2007

Tworzenie aplikacji przy pomocy Eclipse. Mnóstwo opcji wprost poraża. Ale z tego początkowego chaosu wyłania się taki obraz, należy:
  1. Ściągnąć Eclipse IDE for Java EE Developers - http://www.eclipse.org/downloads/moreinfo/jee.php# (zawiera narzędzia do obsługi stron www, oraz dodać jakiś serwer aplikacyjny
  2. Jakiś serwer aplikacyjny, są dostępne takie:
    1. Apache Tomcat
    2. Websphere - http://www.ibm.com/websphere
    3. JBoss - http://sourceforge.net/projects/jboss/
    4. JOnAS -http://wiki.jonas.objectweb.org/xwiki/bin/view/Main/WebHome
    5. Oracle OC4J - http://www.oracle.com/technology/tech/java/oc4j/index.html
    6. Inne poprzez wizarda - opcja New server
  3. Zasoby do JBoss: This is the jboss-4.0.4.GA release for the Java EE? 1.4 codebase. For information on the APIs that make up Java EE 1.4, see Java EE v1.4 Documentation.
    For a comprehensive tutorial on Java EE 1.4, see The Java EE? 1.4 Tutorial. A jboss-4.0.x getting started guide that is based on contents from the tutorial can be found in JBoss Application Server Documentation Library
  4. Inne zasoby javy:
    1. Tworzenie + zaosby nt. nowości i WS: http://java.net/
    2. JavaPedia - http://wiki.java.net/bin/view/Javapedia
    3. JavaScripting - inne języki w implementacji Java:
      1. Rhino - http://developer.mozilla.org/en/docs/Rhino_JavaScript_Compiler
    4. WebStart - http://wiki.java.net/bin/view/Javapedia/JNLP
    5. Jak to naprawdę skorzystać z JNLP - http://java.sun.com/developer/technicalArticles/Programming/jnlp/
    6. Subskrybcja kanałów IBM - http://www.ibm.com/developerworks/library/wa-gizmos/#custom
    7. Jak pracować z OC4J - http://www.eclipse.org/webtools/community/tutorials/OracleServerAdapter/OracleServerAdapter.html
    8. Moduł do pobierania z HTTP - http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-httpclient/doc/how-to-httpclient.html
    9. http://www.ibm.com/developerworks/java/library/os-jws/
    10. http://www.eclipse.org/webtools/community/tutorials/OracleServerAdapter/OracleServerAdapter.html
    11. http://www.onlamp.com/pub/a/onlamp/2007/06/28/the-power-of-google-gears-part-1.html
    12. http://spring.javabeat.net/articles/2007/06/spring-mvc-web-framework-introduction/4
  5. Artykuł IBM (stary) o servletach:
    1. Jedną z wbudowanych metod jest init. Może ona służyć do "ładowania domyslnych danych lub połączeń z bazą"
    2. Servlet jest wielowątkowy. Dla każdego żądania tworzy własny jego wątek. Patrz rys. niżej.
    3. Uwaga na ważny szczegół: żądania request/response są przetwarzane niezależnie w każdej instancji servleta.
    4. "Ręczne" uruchamianie servletów jest proste: należy sobie skompilować .java do .class i następnie "wrzucić" do katalogi servlet.

piątek, czerwca 29, 2007

Piątek
  1. Przy podejściu do wytwarzania aplikacji na platformie Java można wybrać dwie drogi:
    1. ewolucyjna - powoli przechodzić na tę platformę (impelmentując najpierw servlety i ajax - tka jak to zademosntrowałem. Muszę jeszcze nagrać show jak to się robi
    2. rewolucyjna - rzucamy wszystko i uczymy się. Po roku może będzie jakiś efekt.
  2. Google dostrzegł nową możliwość marketinową - ogłosił epokę gadżetów (tzw. gadget ecosystem) - jest to segment oprogramowania zorientowany wokół małych programów dodatkowych, uruchamianych w środowisku desktop pracujących w tle. Do ich uruchomienia wymagane jest runtime. W przypadku Google jest to oparty o XML Desktop platform. Produkcję wichajstrów zapoczątkował Apple. Googel oferuje swoje w dwóch wersjach: lokalnej jako Desktop lub ze swojej strony. Dodatkowo firma ta ogłosiła projekt open-source Jackfield do uruchamiania gadżetów na Linuksie (docelowo ma uruchamiać gadżety z Yahoo Widget Engine, MS Sidebar i Mac). Na podstawie betanews.
  3. Informacja o Yahoo:kupiła w zeszłym (2006) roku serwis photo-sharing Flickr oraz Konfabulator, który wytwarza aplikacje desktopowe zwane "widgets," lub dodatki (add-ons).
  4. Należy przeszukać Google API dla: Gear, Base, Docs and Spreadsheets ...
  5. Tutaj jest strona do API dla gadżetów - http://www.google.com/apis/gadgets/
  6. Tworzenie, zbieranie i udostępnianie danych w środowisku pracy grupowej to dopiero czybek góry lodowej, następny poziom to publikowanie tych danych w postaci strumienia RSS. Google zachęca by w swych produktach do wizualizacji danych wykorzystywać dokumenty i arkusze poprzez API.
  7. Uwaga Google faktycznie ma już wykresu w arkuszu.
  8. Ciekawe odnośniki:
    1. Blog na temat dokumentów - http://google-d-s.blogspot.com/
    2. GData - http://code.google.com/p/google-gdata/
    3. Data API blog - http://googledataapis.blogspot.com/2007/05/see-your-google-spreadsheet-data-in.html
    4. Gadgets API - http://www.google.com/apis/gadgets/
    5. Najprostszy - http://www.google.com/apis/gadgets/gs.html
    6. Więcej o tym - http://www.google.com/apis/gadgets/docs-home.html
    7. GWT - http://googlewebtoolkit.blogspot.com/
    8. Gears - http://gearsblog.blogspot.com/

środa, czerwca 27, 2007

Ciekawe adresy zebrane w środę:
  1. http://msdn2.microsoft.com/en-us/library/ms268890(VS.80).aspx - wprowadzenie do SMART TAG
  2. Poszukiwarka rozwiązań programistycznych - http://www.koders.com/
  3. Szukanie prawdy - What’s Your Ethics IQ? (http://www.hemispheresmagazine.com/nov06/cybersidebar.html)
  4. By Bruce Weinstein, Ph.D.The Ethics Guy®

    Introduction
    The secret to living a satisfying, happy life is to be found in five simple principles. We’ve known about these principles for more than 5,000 years. Nearly every religious tradition in the world teaches them, as do parents in every country. Without them, civilization would be impossible, because there would be nothing but chaos. These principles have a transforming effect on who we are and where we go in life. They are the principles of ethics, and they are as follows:

    1. Do no harm.
    2. Make things better.
    3. Respect others.
    4. Be fair.
    5. Be loving.

    Yes, these principles are simple, but deceptively so, because too often we let fear, anger, or other negative emotions get us off track. This creates a downward spiral, and it’s sometimes difficult to get back to where we want to be.

    For example, how often do we really keep “do no harm” in mind during our daily interactions with people? If a clerk at the grocery store is nasty to us, don’t we return the nastiness and tell ourselves, “Serves them right?” We may, but if we do, we harm the other person. In so doing, we harm our own soul—and this is one of the reasons why we shouldn’t return nastiness with more of the same.
    You might wonder, “If these principles are so commonplace, why do I need to be reminded about them?”

    It’s true that they’re commonplace, but it’s also true that in our hectic, overcommitted lives, we get so caught up in the details of getting through the day that it’s easy to forget how important these principles are in everything we do. We’re also tempted every day to ignore them and to place value on things that ultimately aren’t that important. So taking a few steps back to consider these principles is helpful.

    On the surface, the principles are about making a difference in the lives of other people. To this extent, taking them seriously seems like something we have to do, something we ought to do, something that, quite frankly, we’d rather not do.
    What we’ll discover through this quiz, however, is that making ethics our central concern is actually the best way to lead a richer, more fulfilled life. A life that helps us get the things we want: the right partner, a job we love, and a place where we want to live. By taking ethics seriously, we serve as role models to our children and increase the chances that they will go into the world and make us proud.

    Recent scandals in the news show the risks we take when we neglect these principles: public humiliation, shame, and in some cases, a lengthy visit to prison. But the main reason for taking ethics seriously is not the dangers of failing to do so, but rather because it’s the right thing to do.

    The path to a happier, more fulfilled life lies in becoming reacquainted with the principles of ethics, which tell us how we should treat one another. When we act with integrity, we feel better about ourselves. We then create the conditions for making many wonderful choices in our own lives. When we take the high road in all that we do, we give a gift to others—and ourselves. It’s the greatest gift of all.

    I’ll show you why

  5. Problem JINI - http://www.infoq.com/articles/in-process-java-net-integration, http://reyelts.dyndns.org:8080/jace/release/docs/index.html
  6. Co robi RH - http://blogs.tedneward.com/2007/03/22/RedHat+Inc+The+Next+Microsoft.aspx
  7. Co może RESIN - http://www.caucho.com/download/ - łączy PHP i J2EE
  8. InterOp Forms Toolkit dla VFPhttp://weblogs.foxite.com/bernardbout/archive/2007/06/20/4126.aspx
  9. http://openid.net/ - OpenID