czwartek, kwietnia 22, 2010

Uruchamianie apletów u klienta

Na podstawie dokumentacji SUN-a – jest to fragment większej całości dokumentacji sunowskiej  pt. “Applets”. Uruchomienie aplety odbywa się albo poprzez wyspecyfikowanie charakterystyk apletu w znaczniku “APPLET” (lub w nowej edycji HTML 4 “OBJECT”), lub w znaczniku “JNLP” (zastosowanie technologii JNLP). Aplet ładuje się u klienta podczas uruchomienia strony HTML która go zawiera. Model ochrony klienta powoduje, że tylko podpisane aplety są uruchamianie poza piaskownicą przeglądarki. Aplety które mają mieć większe prawa dostępu do zasobów lokalnych muszą być podpisane przez certyfikat. Podczas uruchamiania aplet pyta o zgodę na dostęp do zasobów. Bez zgody użytkownika aplet nie ma dostępu do zasobów lokalnych komputera. Uwaga: dodatkowa konfiguracja maszyny wirtualnej java jest możliwa poprzez przystawkę Java Control Panel w pasku podczas uruchamiania strony z apletem.

W przypadku apletów nie podpisanych (“gołych”) zaleca się wykorzystanie protokołu JNLP do definiowania zakresu praw dostępu do zasobów lokalnych. JNLP ma specjalne ustawienia  do definiowania zakresu dostępu do lokalnych zasobów. Do korzystania z JNLP potrzebna jest konfiguracja serwera www (uczulenie na tworzenie nagłówków MIME o typie JNLP) lub podstawienie pod nazwę pliku JNLP plik z rozszerzeniem PHP. Oto przykład:

<?php

header("Content-Type: application/x-java-jnlp-file");

readfile('uruchomPodpis.jnlp');

?>

plik jnlp:

<applet name="CA",
        jnlp_href = 'uruchomPodpis.php',
        width = 300,
        height = 300 >
    <PARAM NAME=Server-Library VALUE=
https://dvcl4.coig.com:10066/podpisAplet/ext>
    <PARAM NAME=Properties-File VALUE=cryptoapplet.properties>
</applet
>

“Goły” aplet może niewiele. Może m.in. – połączyć się ze serwerem  z którego została załadowana strona. Aplet załadowany z lokalnych zasobów (a więc ktoś go tam zainstalował) nie ma żadnych ograniczeń.

Aplety nie podpisany załadowane poprzez JNLP mają większe prawa m. in. mogą czytać i pisać do lokalnych zasobów. Uwaga: wśród parametrów konfiguracyjnych nie ma mowy o uruchamianiu procesu zewnętrznego np. jakieś aplikacji desktopowej (takie sztuczki może dokonać wyłącznie aplet podpisany).

Wywołanie nawet podpisanych apletów z poziomu kodu JS na stronie HTML powoduję ograniczenie zakresu działania apletu tak jakby był niepodpisany.

Z przykładu zamieszczonego w rozdziale “Invoking Applets Methods from javascript code” widać, że jest bardzo łatwo sterować metodami zawartymi w aplecie z punktu widzenia JS. Sytuacja odwrotna tj. dostanie się do elementów strony HTML czy też skryptów na niej jest również możliwa dzięki technologii LiveConnect. Funkcjonalność ta zawarta jest w pakiecie ‘netscape.javascript’ lub można ją włączyć poprzez wyspecyfikowanie pakietu ‘…/jre/lib/plugin.jar’

Ciekawa definicja apletu na stronach pomocy Eclipse – “An applet is a bean that is designed to be run inside a Web browser and inherits from java.applet.Applet or javax.swing.JApplet .”

Przygotowanie stacji użytkownika do skłądania podpisu

    Instalacja oprogramowania niezbędnego do obsługi podpisu na stacji klienckiej

  1. Środowisko pracy - Windows Client (od XP przez Vista do W7).
  2. Instalacja sterowników do obsługi czytników kart inteligentnych (tzw. Smart Card - SC):
    • Najniższy poziom - programowanie CryptoCard Suite ze strony firmy Crypto Tech. Jest to prawdziwy kombajn funkcjonalny. Potrafi m.in. sprawdzić poprawność komponentów sprzętowych i programowych, zainstalować certyfikat w repozytorium, ustawić parametry wielopodpisu. Dodatkowo instaluje się jako usługa MS Windows dzięki czemu po włożeniu karty do czytnika automatycznie rejestruje ją w repozytorium.
    • Na tej bazie należy zainstalować oprogramowanie firmy dostarczajacych certyfikaty:
      • Sigillum - nic (dziwne) - korzysta ze sterownika sprzętowego CCPKIP11.dll wgrywanego po cichu przez CCS
      • KIR - nic (trzeba to jeszcze sprawdzić)
      • Unizeto/Certum - najpierw sterownik do czytnika np. ACR38, potem aplikację proCertum Card Manager. Wszystko jest dostępne na stronie CERTUM. Korzysta ze sterownika cryptoCertumPKCS11.dll
  3. Całość sprawdzamy przy pomocy CCS. Wynik powinien być taki:
  4. clip_image001
  5. Struktura obsługi kart kryptograficznych w MS Windows jest taka (idąc od dołu w górę):
    • SC Base - wbudowany komponent systemu operacyjnego (sterownik sprzętowy w postaci .DLL)
    • Warstwa standardów kart inteligentnych. Są dwa niezależne standardy:
      • PKCS#11 (promowany przez środowisko Java) - API do obsługi kart, bazuje bezpośrednio na sterowniku sprzetowym (taki jest standard zaimplementowany w języku Java)
      • CSP + Crypto API (promowany przez MS) - warstwa dostawców usług kryptograficznych oraz API do korzystania z nich z poziomu aplikacji
    • System operacyjny - MS Windows - ma jeszcze dodatkową warstwę służącą do przechowywania informacji o dostępnych certyfikatach w tzw. repozytorium. Do obsługi jego służy polecenie: certmgr.msc. Windows ma dodatkowe narzędzia wspierające weryfikację certyfikatów końcowych i pośrednich które są zintegrowane z narzędziami do zarządzania. W przypadku rozwiązań Java (np. w postaci implementowanej przez KIR) są one przechowywane jawnie bezpośrednio w pliku. Udostępnia funkcje kryptograficzne (crypto API) poprzez technologię CAPICOM (stara, już nie zalecana dla Vista i W7 ale wciąż poprawnie na nich działająca) oraz poprzez platformę .NET
    • Aplikacje - w każdym języku programowania są dostępne biblioteki z funkcjami do obsługi SC bądź poprzez platformę MS .NET bądź JSE. Dodatkowo można na poziomie poleceń systemu wykonywać skrypty korzystające z CAPICOM (instalując CAPICOM SDK z witryny MS - tworzy się katalog z przykładowymi skryptami) lub przy pomocy PowerShell (korzysta ze wszystkich dobrodziejstw .NET)

środa, kwietnia 21, 2010

Kurs PHP i nie tylko

Na stronach SITEPOINT jest świetny kurs programowania w PHP i korzystania z bazy MySQL - http://articles.sitepoint.com/article/publishing-mysql-data-web/2

Nauka JPA wg. Oracle - http://www.oracle.com/technology/products/enterprise-pack-for-eclipse/troubleticket/part_1_jpa/jpatutorial.htm?msgid=8667883&eid=4835439881&lid=1

Wybieranie danych z Google przy pomocy openssl - http://code.google.com/intl/pl/apis/gdata/articles/using_cURL.html

Deployment JAVA Applet - http://java.sun.com/docs/books/tutorial/deployment/applet/deployingApplet.html i http://www.javaworld.com/javaworld/jw-05-2008/jw-05-newapplet.html?page=4

Tworzenie PDF w ActionScript - http://www.alivepdf.org/

Forum CISCO - https://supportforums.cisco.com/community/etc/netpro-polska

Zły filtr XSS w IE8 - http://blogs.zdnet.com/security/?p=6221&tag=nl.e019

Co nowego  w VS 2010 - http://blogs.techrepublic.com.com/programming-and-development/?p=2475&tag=nl.e019

Biill Gates - http://blogs.zdnet.com/BTL/?p=33259&tag=nl.e019

Konfiguracja HD - http://www.pcworld.pl/news/358144_3/Jak.optymalnie.skonfigurowac.twardy.dysk.html

Napraw za darmo - http://www.pcworld.pl/news/358172/7/Napraw.swoje.Windows.z.programem.Microsoft.Fix.It.html

Integracja appletu z .NET - http://java.sun.com/developer/technicalArticles/appletAspIntegration/index.html

Web Start - http://java.sun.com/docs/books/tutorial/deployment/webstart/index.html

Rgagnon - http://www.rgagnon.com/howto.html

…………………………..

poniedziałek, kwietnia 19, 2010

Google API dla programistów

Google API dla programistów
Na tej stronie jest rozkład jakich API udostępnia Google:
  1. Biblioteki otwarte ajaksa - Ajax Library API - są ładowane przy pomocy google.load(). Ładnie to zrobione np. biblioteke jQuery podzielono na jądro jQUery - do manipulowania DOM i CSS oraz jQueryUI - do zapewnienia efektownego interfesju. Ciekawy link do tutoriali o JS.
  2. Biblioteka wizualizacyjna - http://code.google.com/intl/pl/apis/visualization/
  3. Spis wszystkich API  - http://code.google.com/intl/pl/more/
  4. Google Data Protocol - http://code.google.com/intl/pl/apis/gdata/
  5. Google Documents List - http://code.google.com/intl/pl/apis/documents/overview.html - praca z dokumentami (przykład upload-u dokumentu z .NET)
  6. Fusion tables - http://code.google.com/intl/pl/apis/fusiontables/
  7. Market dla aplikacji - http://www.google.com/enterprise/marketplace/
  8. Dostęp do arkuszy - http://code.google.com/intl/pl/apis/spreadsheets/
  9. Język programowania GO - http://golang.org/doc/go_tutorial.html
  10. Bomba! - http://www.offisync.com/ - pozwala miłośnikom MS Worda na używanie tego edytor i jednocześnie stosowanie Google Docs jako repozytorium dokumentów. Nacisk położono na wsparcie pracy grupowej. 
 

Ciekawostki

  1. ALA serwis jest składnicą ciekawych i nietrywialnych pomysłów z zakresu przeglądarek i Internetu. Są tam podrozdziały jak: scripting, server side, html, css itd.
  2. Taki pomysł – do testowania można używać FireBug (z wkładką FirePHP) lub w IE8 wbudowanego debuggera (lub nieco okrojoną wersję FireBuga).
  3. Biblioteka BASE2 autorstwa Dean’a Edwadrds jest najmniejszym (niskopoziomowym) wspólnym mianownikiem wyrównującym różnice implementacyjne w JS dla różnych przeglądarek.
  4. Informacja o pracach badawczych w MS – m.in.  nad nową przeglądarką Gazelle.
  5. Jak powstają ataki CSS - http://crypto.stanford.edu/cs155/papers/CSS.pdf (dużo informacji na ten temat znajduje się w OWACS). Generalnie cookie można łatwo wyłudzić…
  6. Więcej o bezpieczeństwie:
    1. Strona w Stanford - http://crypto.stanford.edu/cs155/
    2. Badania w Stanford w zakresie bezpieczeństwa - http://seclab.stanford.edu/websec/ z kursami!!!
    3. Podręcznik bezpłatny do kryptografii - http://www.cacr.math.uwaterloo.ca/hac/
    4. http://www.collinjackson.com/
  7. Blog pracownika Gartner’a - http://blogs.gartner.com/ray_valdes/2009/07/08/google-chrome-microsoft-gazelle-and-the-cloud-oriented-os/ – na temat ogłoszenia przez Google prac nad OS Chrome. Z punktu widzenia informatyka przeglądarka Chrome (17 mln linii kodu w C++) zawiera wiele zaawansowanych technik wykorzystywanych również w OS np. izolacja (sandbox), wielowątkowość (wielozadaniowość), komunikacja między procesami (IPC) – jest to około 700 tyś wierszy. Kompetencje wykorzystane w pisaniu tak zaawansowanej technologicznie przeglądarki można wykorzystać przy tworzeniu OS. Ale tu należy pamietać, że OS to również obsługa urządzeń I/O a tuż już trzeba mieć zaplecze w postaci sterowników do urządzeń napisanych przez firmy tworzące te urządzenia. Ale tę “dziurę” można zalatać polegając na wsparciu jądra z Linux’a. MS też wykorzystuje elementy wielozadaniowości w swych IE 8 i dlatego też rozpoczyna prace badawcze nad nową przeglądarką Gazelle, podobną do Chroma i OS Chrome. OS Chrome startuje od zera na bazie przeglądarki - http://news.cnet.com/8301-27080_3-10292435-245.html?tag=nl.e703
  8. Książki do Java - http://www.mindviewinc.com/Books/ –Ekcela – nie tylko Java ale również J2EE.
  9. Jak zostać programistą:
    1. http://samizdat.mines.edu/howto/HowToBeAProgrammer.html
    2. http://norvig.com/21-days.html
  10. Zasoby ARITMA:
    1. Forum - http://www.artima.com/forums/forum.jsp?forum=1
    2. Blog - http://www.artima.com/weblogs/viewpost.jsp?thread=261930
    3. AIR - http://www.artima.com/articles/air_15.html
  11. Bezpieczeństwo – nowa inicjatywa THAWTE mająca na celu upowszechnienie PKI w firmach - http://reddevnews.com/whitepapers/2009/03/thawte-dev-starter-kit/asset.aspx

JSON i bezpieczeństwo

Wyjściem z sytuacji jest wsparcie natywne w przegladarkach (ma je IE i FF) oraz wykorzystanie go w frameworkach (Yahoo, jQuery, dojo i mootools). Rozwój JSON wspiera ECMA na stronie http://wiki.ecmascript.org/doku.php.

Wejściem do zagadnień JSON-a jest rozbiegówka na wiki - http://en.wikipedia.org/wiki/JSON#Native_JSON

JSON jest niebezpieczny ponieważ używa albo ‘eval’ (var myObj = eval( '(' + jsontext + ')' );) albo skryptu Crockforda - http://www.json.org/json.js.  Jedno i drugie jest mało bezpieczne. Oto zwięzła definicja wg. yahoo:

JSON is a very simple text format based on JavaScript's object notation. The notation contains these basic elements:

  • Objects. Objects begin and end with curly braces ({}).
  • Object members. Members consist of strings and values, separated by colon (:). Members are separated by commas.
  • Arrays. Arrays begin and end with braces and contain values. Values are separated by commas.
  • Values. A value can be a string, a number, an object, an array, or the literals true, false, or null.
  • Strings. Strings are surrounded by double quotes and contain Unicode characters or common backslash escapes.

Obecnie JSONa wspiera wiele j. programownia w tym PHP i VFP.

Nowe podejście do drukowania

Wg. firmy Google, która chce wdrożyć nowy typ systemu operacyjnego OS Chrome, największą przeszkodą we wdrożeniu przetwarzania w chmurze (gdzie każde urządzanie ma dostęp do zasobów w Internecie) był system wydruków (a nawet cały ekosystem składający się z setek różnych sterowników do drukarek nawet pochodzących z tej samej firmy). Dodatkowo sterowniki te musiały być przygotowywane pod różne systemy operacyjne a nawet ich wersje. Propozycja Google jest taka  - stworzenie platformy Google Cloud Print – która przyjmowała by dane do wydruku i sama (zamiast lokalnego systemu operacyjnego), centralnie kierowała wydruk na wybraną drukarkę i pilnowała by procesu wydruku. Zamierzenia są śmiałe, ale jest parę wątpliwości:

  • bezpieczeństwo – kto pozwoli sobie na udostępnienie KAŻDEGO swojego wydruku firmie trzeciej (tj. Google)
  • zaczyna się zarysowywać mroczne widmo Wielkiego Brata – kontrolującego każdą informację wychodzącą na wydruk
  • co z prywatnością i bezpieczeństwem
  • co zapewnieniem poufności i jaka jest gwarancja niezmienności danych wysyłanych na wydruk
  • poważnie należy się zastanowić czy jest zapewniona globalna w obszarze Internetu skalowalność – wraz ze wzrostem ilości użytkowników i ilości wydruków
  • czy będzie kontrola  i zabezpieczenie przed atakami typu DDS (lub wypuszczenie w Internet ogromnego wydruku na 1000 stron – to marnotrawstwo pasma) na taki serwer drukarkowy
  • czy usługa będzie zawsze bezpłatna czy też po iluś kopiach trzeba będzie zapłacić extra

Wizja jest śmiała – HP zainteresowała się tym pomysłem – przecież nic nie ryzykuje a ponadto umożliwia sobie wzrost sprzedaży drukarek dla właścicieli choćby skromnych telefonów komórkowych.

Podobna wizja jest już od dawna zrealizowana w Windows np. mój komputer nie ma drukarki lokalnej ale mogę skierować wydruk z niego na drukarkę  sieciową lub na inny komputer który udostępnia swoją drukarkę.

piątek, kwietnia 16, 2010

Nauka

  1. Office Online – portal z ćwiczeniami oraz poradnikami na temat tego pakietu biurowego - http://office.microsoft.com/en-us/training/FX100565001033.aspx
  2. Pytania i odpowiedzi na temat Office - http://answers.microsoft.com/en-us/office/default.aspx#tab=1
  3. Dodatek do MS Word – chemia - http://research.microsoft.com/en-us/projects/chem4word/
  4. Nowy, profesjonalny framework do testowania – Seleneese jest to połączenie Selenium z Fitnesee (serarchsoftwarequality.techtarget.com). Z tegoż samego portalu pochodzi artykuł na temat SoapUI
  5. Nowe aplikacje typu express na portalu MS (teraz w wersji 2010)
  6. Jak poznać możliwości Azure – oto są filmy - Front Runner for Azure, Tony's training videos oraz Four-minute Windows Azure virtual lab.
  7. Z innej beczki – sterowanie serwisami Google Data poprzez cURL - http://code.google.com/intl/pl/apis/gdata/articles/using_cURL.html
  8. Podpis XAdES w MS Office 2010 – na czym polega rola sygnatury wizualnej - http://blogs.technet.com/office2010/archive/2009/12/08/digital-signitures-in-office-2010.aspx. Jak do tego doszło? MS Office 2007 pozwala na podpisywanie zgodnie z XML-DSig (starsze wersje tego pakietu używały mniej zaawansowanego podpisu binarnego) – standardem http://www.w3.org/Signature. Najnowsza wersja MS Office 2010 stosuje nowe algorytmy wspierane przez Windows Vista  (krzywe elityczne), można również stosować bardziej zaawansowany algorytm mieszający (hash)  taki jak SHA-252. Uporano się także z problemem wygasanie certyfikatów i starych dokumentów je zawierających (podpis cyfrowy dokumentu któremu nie można zaufać po wygaśnięciu certyfikatu, odpowiedź na pytanie czy w momencie składania podpisu certyfikat był ważny czy nie?) – poprzez przejście na rozszerzenie standardu XML-DSign tj. XAdES. Dzięki temu uzyskano zgodność z dyrektywą EU -  Advanced Electronic Signature Criteria Directive 1999/93/EC. mamy wiele wersji XAdES: najprostsza XAdES-BES/EPES – zawiera informację o samym certyfikacie, już odporna na czas wersja XAdES-T gdzie jest oznakowanie czasem oraz jeszcze bardziej zaawansowane. Żeby oznakować czasem należy skonfigurowac serwer czasu zgodny z RFC 3161. Odnośnie podpisu – można stosować wiersz podpisu (signature line) lub pieczęć (signature stamp).
  9. Podglądanie stron webowych - http://fireshark.org/
  10. Ciekawy portal – TOAD – wtyczka do VS 2K10 – na razie jest w wersji beta i można ja testować za darmo - http://toadextensions.com/beta.jspa. Uwaga dla mySQL jest też swój TOAD – free. Na stronie http://www.toadworld.com/DOWNLOADS/Freeware/tabid/680/Default.aspx jest wiele ciekawych darmowych aplikacji.

środa, kwietnia 14, 2010

Prace z aplikacjami Google os strony programistów

  • Bomba! na Google codes – jest biblioteka do obsługi SOAP-a - http://www.google.com/google-d-s/scripts/soap_geoip_example.html#section2
  • Jak dostać się do serwisu SOAP - http://www.google.com/google-d-s/scripts/soap_geoip_example.html#section5
  • A to wszystko powyżej zaczyna się tutaj - http://www.google.com/google-d-s/scripts/soap_overview.html. Ostrzeżenie – niestety biblioteka wchodząca w skład Google Apps Script jest dostępna wyłącznie a aplikacjach Google!
  • Biblioteka kliencka Google – Client Libraries – mają pomóc w pisaniu aplikacji klienckich które odwołują się do API dokumentów tzw. Documents List Data API. Są przykłady – Doc Uploader napisany w C#, przeglądając źródło można wiele się nauczyć od strony programowania w C# i .NET. Bardzo ważny problem to autentykacja, na to też mamy sposób – jest tutorial. Wszędzie stosuje sie format json, lista przykladów jest tu. Praojciec tego wszystkiego zaczyna się tu - http://code.google.com/intl/pl/apis/documents/overview.html
  • Opis protokołu data API - http://code.google.com/intl/pl/apis/documents/docs/3.0/developers_guide_protocol.html
  • W celu ręcznego grzebania w API wykorzystuje sie cURL - http://code.google.com/intl/pl/apis/gdata/articles/using_cURL.html
  • Ostatnio G robi wszystko by “dozbroić” swe aplikacje on-line szczególnie Docs i Spreadsheet np. o moduł DRAW
  • Można się też przypatrzeć jak tworzyć rozszerzenia w Chrome - http://blog.chromium.org/2009/12/extensions-beta-launched-with-over-300.html

  • wtorek, kwietnia 13, 2010

    Wspólny mianownik dla kryptografii w różnych rozwiązaniach

    1. W blogu coolthingoftheday jest wzmianka o ciekawym instalatorze dla Windows – Windows Installer XML (WiX)  - jest on bardzo trudny w użyciu chociaż piekielnie uniwersalny
    2. Portal o bezpieczeństwie – net-security.org
    3. Taki rodzynek – praca Rijndaela - http://csrc.nist.gov/archive/aes/rijndael/Rijndael.pdf
    4. W tymże portalu jest opis biblioteki kryptograficznej Botan C++, inna biblioteka też w C++ to pkif, jeszcze  - http://polarssl.org/reference_docs. Widać, że bibliotek w C i C++ jest bardzo dużo na pewno można coś znaleźć.
    5. Prace nad przenaszalną biblioteką kryptograficzną – temat badawczy dla naszej firmy – można rozpocząć od wyboru platformy deweloperskiej. Jedno z podejść polega na wybraniu platformy deweloperskiej wspólnej dla wszystkich środowisk uruchomieniowych (od AIX,poprzez Linux i Windows). Mamy do wyboru środowiska maszyn wirtualnych:
      1. OpenSSl – wszędzie dostępna i wywołuje się nią z linii poleceń
      2. C/C++ – jak w punkcie 4
      3. Platforma Java – tutaj jest wiele implementacji – chyba najbardziej pełna i jednocześnie będąca uzupełnieniem wbudowanych bibliotek JSE jest BC. Obok niej jest także pakiet na google code – Keyczar (dla Pythona też istnieje). I wiele innych o których nie mam pojęcia…
      4. PHP – implementuje wiele standardów kryptograficznych które są wbudowane w dystrybucję tego języka. I pewnie jest wiele innych…
      5. Python – jest standardowa biblioteka oraz pakiet Keyczar od google code
      6. Platforma .NET – standardowe, wbudowane moduly oraz BC lub Bonnie.NET. I pewnie wiele innych…
    6. Warunkiem wyboru jednego języka z punktu 5 jest jego przenaszalność – tj. obecność jej w środowiskach gdzie jest potrzeba szyfrowania/podpisywania.
    7. Innym podejściem jest wybranie takiego algorytmu kryptograficznego, który działa na wszystkich wymaganych przez aplikacje platformach serwerów aplikacyjnych (np. jest implementowany w PHP i Zope)
    8. Dosyć pełna lista bibliotek kryptograficznych - http://www.homeport.org/~adam/crypto/

    środa, kwietnia 07, 2010

    Bezpieczeństwo AJAX-a

    1. Na stronach MSDN można znaleźć na ten temat:
      1. Rozbiegówka - http://msdn.microsoft.com/en-us/library/dd756894%28VS.85%29.aspx
      2. O bezpieczeństwie - http://www.microsoft.com/security/
    2. O AJAX - http://msdn.microsoft.com/en-us/library/dd464678%28VS.85%29.aspx
    3. Natywne wsparcie XMLHTTP w IE 8.0 -  http://msdn.microsoft.com/en-us/library/ms537505%28VS.85%29.aspx
      if (!window.XMLHttpRequest) {
      window.XMLHttpRequest = function() {
      try {
      return new ActiveXObject('MSXML2.XMLHTTP.3.0');
      }
      catch (ex) {
      return null;
      }
      }
      }


    Linia rozwoju produktów dla programistów od firmy Google

    Przeglądarka internetowa Chrome jest nowym zjawiskiem w świecie aplikacji firm trzecich. Tak to nie przeglądarka tylko ale pełnoprawne narzędzie – zrąb (inni mówią framework) do tworzenia własnych aplikacji internetowych typu web 2.0. Nadaje się do tego doskonale. Wystarczy spojrzeć na nią z boku: łatwo się instaluje, jest szybka i bezpieczna, spełnia wszystkie standardy HTML (a nawet je wyprzedza). Użytkownik nie ma żadnych wymówek aby jej nie zainstalować i od razu używać.

    Ciekawe – do zbadania jest możliwość sterowania przeglądarką poprzez COM oraz czy wtyczki mogą obejść barierę bezpieczeństwa i zapisywać coś lokalnie?

    Ma on wiele rozszerzeń tej coraz popularniejszej przeglądarki, w przyszłości będzie ich jeszcze więcej. Ostatnio jest ciekawe rozszerzenie to implementacja – netsocket – zgodna z zaleceniami w3c. Jak podaje ajaxian.com jest to wersja deweloperska. Rozszerzenia są napisane w JS z wykorzystaniem HTML/CSS oraz API udostępnianych przez Google. Można je testować przy pomocy wbudowanych narzędzi przeglądarki

    Mamy teraz do wykorzystania trzy możliwości (okazje) dostępne od Google:

    1. Wtyczki – to nic innego jak możliwość wywołanie własnej strony poprzez skrót na pasku narzędziowym przeglądarki.  Dają okazję do wzbogacenia przeglądarki o ciekawą funkcjonalność (może to być trywialne pobranie kursów walut z NBP).
    2. W aplikacjach google DOCs (tzw. google Apps)  można teraz programować posługując się JavaScriptem oraz specjalną biblioteką Google – ta technika nosi nazwę Google Apps Script. Wzbogaca to doskonale możliwości tej aplikacji on-line. Można w ten sposób “zanurzyć” swoją aplikację w google Apps – np. arkusz, który wczytuje dane z naszego portalu, dokumenty tworzone w edytorze google docs i wysyłane do portalu.
    3. Możliwość wklejania dokumentów google Apps do własnych stron – można sobie wyobrazić taki scenariusz – nasz portal ma tam gdzieś stronę z wklejonym dokumentem (arkuszem) z google Apps. Taki arkusz jest aktywny – może uruchomić jakiś swój skrypt w JS i wykonać pożyteczną pracę – ale trzeba dopracować sposób wymiany danych między nim a goszczącą go stroną. Jak to zrobić - http://docs.google.com/support/bin/answer.py?hl=pl&answer=78052

    wtorek, kwietnia 06, 2010

    Ciekawe oprogramowanie z sourceForge

    1. TCPDF – biblioteka do tworzenia plików o formacie PDF w PHP (pozwala na konwersję HTML do PDF i tworzenie formularzy PDF z elementami HTML-wego dialogu ze wsparciem JS w dokumencie PDF)
    2. ZK – Simply Ajax and Mobile. Obiecujący framework – ciekawe podejście – tworzymy wszystko w Ajax, zaś serwer aplikacji jest nam potrzebny po to aby zassać lub zapisać dane do baz na serwerze. Mam nawet swego RAD-a w oparciu o Eclipse
    3. TinyMCE – znany komponent do wspierania edycji wzbogaconej o możliwości zbliżone do MS Word
    4. Inny framework w Javie – OpenXAVA – strona domowa - http://www.openxava.org/web/guest/home – to samo podejście ale w oparciu o PJO + JPA
    5. Portal IBM o technologii Java - http://www.ibm.com/developerworks/java/index.html
    6. Nauka JPA - http://www.ibm.com/developerworks/rational/library/08/0819_mutdosch/index.html

    poniedziałek, marca 29, 2010

    Ciekawostki do pobrania

    1. PC World ->Sandra 2010 SP1 – kompleksowe narzędzie do badania komputera (pod katem sprzętu i oprogramowania). Wersja Lite jest bezpłatna.
    2. NetWorld - Jak wzmocnić bezpieczeństwo aplikacji webowych – skaner ? Są skanery płatne i darmowe. Ostatnio Google udostępnił darmowy skaner SkipFish autorstwa pracownika tej firmy Michała Zalewskiego. Jest szybkie. Co do oceny to nie próbowałem.
    3. ItWorld - chiny rządzą DNS – błąd (prawdopodobnie w protokole BGP (Border Gateway Protocol) spowodował załadowanie do kilku serwerów głównych DNS (root DNS server) adresów z serwera rządowego Chin (osławiony Chinas Great Firewall) . Lista adresów blokowała dostęp do stron niezależnych i nieprzychylnych rządowi ChRL. Powodowało to efekt przekierowania  szukania adresów IP nazw stron do serwerów chińskich które miały reguły blokujące swobodny obieg informacji (dostęp do stron m.in. falung). W efekcie niektórzy dostawcy usług internetowych z Chile i USA stali się de facto cenzorami treści uważanych za niewłaściwe dla interesu Chin. Niedługo będzie ogólnoświatowa akcja wzmocnienia ochrony serwerów DNS – poprzez szyfrowanie i certyfikaty – czy to coś pomoże? Zobaczymy.
    4. Tamże  - tegoroczna konferencja Pwn2Own  zgodnie z oczekiwaniami pokazała słabość popularnych przeglądarek (IE w ciągu 2 min, Safari – 2s, Fireofx – też nie lepiej). Ostał się jedynie Chrome. Być może to za sprawą podejścia do otwierania każdej strony w piaskownicy i na dodatek z minimalnymi uprawnieniami. Dlatego mimo, że Chrome zbudowany jest na popularnej bibliotece WebKit (bazuje na niej m.in.  Safari) jest to jedyna przeglądarka do której nie było nawet prób podejścia do jej złamania poprzez atak typu drive-in  (spreparowanie strony tak by uzyskać specjalne przywileje w systemie operacyjnym). Może gdyby organizatorzy zmienili warunku konkursu znalazłby się chętny na 10 tyś dolarów i sławę białego hackera.  Wniosek dla naszej firmy jest taki – Chrome jest przeglądarką przyszłościową – jest szybka i bezpieczna – może dlatego trzeba się jej lepiej przyjrzeć u nas w firmie?
    5. Tamże -SVG – temat rzeka. Brak natywnego wsparcia tej technologii w IE mimo, że jest ono w innych przeglądarkach od 2002 (co prawda nie zawsze jest to do końca zrealizowane). MS ogłosił natywne wsparcie SVG (poprzez znaczniki HTML) w IE 9. Sporo wody upłynie zanim popularność IE 9 osiągnie poziom IE 7, ciągle są strony w technologii IE 6. Znaczenie nabiera fakt wykorzystania do renderowania grafiki  mocy procesorów graficznych. Daje to niesamowitego “kopa” aplikacjom korzystającym z HTM 5 i SVG i stanowi to poważne zagrożeni dla wszechobecnego Flasha.
    6. A pro po mam tu zasoby na temat SVG:
      1. Samouczek opracowany przez W3C
      2. Edytor na google
      3. Dema

    piątek, marca 26, 2010

    Usprawnić swoje działanie

    Ciekawy artykuł na lifehackerze – jak zdefragmentować swój umysł aby działał efektywniej,. Jest to fragment większej całości ‘Are you the better version of yourself”. Defragmentację trzeba przeprowadzać okresowo, ponieważ w różnych chwilach potrzebujemy innego uporządkowania. Należy również korzystać z techniki mind-mapping (min meister jest takim narzędziem on-line), Przykłady map - http://www.dragosroua.com/downloads/. Jak zostać produktywnym umysłowo - http://www.dragosroua.com/the-productivity-map/. Za co kochamy swe życie - http://www.dragosroua.com/77-reasons-to-love-your-life/.

    czwartek, marca 25, 2010

    Wyrzuć liska

    22 marca br. niemiecka federalna agencja bezpieczeństwa proponuje na jakiś czas zaprzestania korzystania z Firefox’a (do momentu wydania oficjalnych poprawek). Dotyczy to wersji najnowszej 3.6. Podobny komunikat w odniesieniu do IE został wydany przez tę samą agencję 2 miesiące temu.

    wtorek, marca 16, 2010

    Google rozdaje

    1. Google Apps Script - http://googleappsdeveloper.blogspot.com/2010/03/publish-your-scripts-to-apps-script.html
    2. Pomoc - http://www.google.com/google-d-s/scripts/scripts.html
    3. Strona główna tego projektu - http://googledocs.blogspot.com/2010/03/apps-script-gallery-for-google.html

    C# i .NET

    1. Wprawki w tworzeniu formularzy - http://www.codeproject.com/KB/cs/Study00.aspx
    2. DevExpress rozdaje:
      1. Kontrolki - http://www.devexpress.com/Products/Free/WebRegistration60/
      2. Refaktoryzację - http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/

    Nowości w HTML

    1. Blog na temat kierunków rozwoju IE - http://blogs.msdn.com/pablo/archive/2010/01/04/html5-does-databases.aspx – w szczególności indexed DB
    2. Pionierem jest pojęcie LocalStorage wspierane w IE i FF (a nawet w Chrome) znane jak DOM Storage. Na ten temat są różne opinie - http://przemelek.blogspot.com/2009/11/localstorage-odsona-2-zaczynaja-sie.html.
    3. Jak zapamiętać stan w przeglądarce internetowej - http://www.niallkennedy.com/blog/2007/01/ajax-performance-local-storage.html
    4. Blog na temat JS - http://blogs.msdn.com/jscript/
    5. JS na Channel 9 - http://channel9.msdn.com/posts/Charles/IE-9-First-look-at-the-new-JS-Engine/
    6. Zadanie – piramida - http://orac.amt.edu.au/aio/sample03/stack.html (http://orac.amt.edu.au/aio/#sample)
    7. Tu można poćwiczyć -http://orac.amt.edu.au/aioc/train/
    8. Krytyczne spojrzenie na przeglądarki - http://www.favbrowser.com/the-difference-between-internet-explorer-firefox-google-chrome-opera-and-safari/
    9. Rośnie IE - http://www.betanews.com/article/That-wasnt-supposed-to-happen-IE-usage-share-steady-since-choice-screen/1268168524
    10. Ciekawy portal - http://www.favbrowser.com/
    11. Obroty obrazków - http://www.useragentman.com/blog/2010/03/09/cross-browser-css-transforms-even-in-ie/
    12. Sześcian - http://www.useragentman.com/tests/cssSandpaper/cube3.html
    13. Wzorce w JS - http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth