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) .