poniedziałek, lipca 12, 2010

Chmura cz. 2

O poważnym potraktowaniu zagadnień powstających podczas przetwarzania w chmurze świadczy powołanie przez IBM konsorcjum do badań nad nowymi modelami przetwarzania w chmurze mającymi na celu redukcję kosztów hostingu i utrzymania serwisów webowych. W ramach prac tego konsorcjum IBM wraz z EU oraz wybranymi uniwersytetami europejskimi będzie prowadził badania naukowe w celu opracowania modelu integrującego serwisu pochodzące od różnych platform sprzętowych i środowisk programistycznych jedno elastyczne środowisko do przetwarzania aplikacji użytkowych w chmurze. Tak wypracowane projektowania i wdrażania pozwolą nie tylko na zwiększenie elastyczności integracji ale znacznie zredukują koszty w porównaniu z konwencjalnymi modelami wymagającymi wielu operacji manualnych w celu dostosowania serwisów do pracy ze sobą. Badania będą prowadzone w ramach projektu ACSI (Artifact-Centric Service Interoperation) bazującego na koncepcji kooperujących ze sobą hubów (interoperation hub) wprowadzonej w ubiegłym roku przez ośrodek badawczy IBM Research. Ten właśnie huby pozwolą na stworzenie w chmurze środowiska integracyjnego w którym będzie można łatwo, szybko i w elastyczny sposób tworzyć i wdrażać usługi webowe oraz oprogramowanie wykorzystujące Internet różnych dostawców. Firma IBM słynie ze swego rozmachu w badaniach podstawowych, które czasami mają utylitarne wykorzystanie. Takim spektakularnym wynikiem jest zainicjowanie i w pierwszej fazie wsparcie finansowe i intelektualne projektu Eclipse, który w efekcie tych działań po fazie inkubacji pod skrzydłami IBM okrzepł i rozwinął się w samowystarczalną fundacje. Inna sprawa, że IBM ma tyle środków finansowych, że może sobie pozwolić na pewne ekstrawaganckie ruchu mające na celu przyszłe korzyści (np. zablokowanie prac nad wymienialnością i integracją serwisów w chmurach innych firm zwłaszcza, że oferta IBM w zakresie chmury jest mało konkretna, żeby nie powiedzieć mglista). Źródło - http://www.itworld.com/saas/113287/ibm-and-eu-establish-cloud-computing-consortium?source=ITWNLE_nlt_today_2010-07-08

Podstawowym komponentem do stworzenia aplikacji w chmurach w technologii MS Azure jest Microsoft Hyper-V (wcześniej zwany jako Windows Server Virtualization) o nazwie kodowej Viridian. Firma Microsoft miała trudny orzech do zgryzienia, musiała wybrać oprogramowanie do zarządzania wirtualizacją na możliwie najniższym poziomie (najbliższym warstwie sprzętowej) oraz dokonać wyboru samego sprzętu na którym ma zostać uruchomiona wirtualizacja. Jeżeli chodzi o oprogramowanie to wybrała własny produkt działający jedynie na sprzęcie o architekturze Intel 86-64. Być może dlatego, że już go miała (wyłonił się on w trakcie prac na uproszczonym, “gołym” do minimum serwerem Windows Server 2008W) oraz dlatego, że programiści w Microsoft nie mieli narzędzi ani bibliotek ani doświadczenie w wytwarzaniu aplikacji na inne platformy sprzętowe). Wybór własnego narzędzia niejako zdeterminował sprzęt na którym będzie wirtualizacja – tylko platforma procesorów Intel. Tak że wybrano  technikę wirtualizacji zasobów sprzętowych w oparciu o koncepcję hyperwizora (hypervisor – nadzorca) i w implementacji Microsoft działa wyłącznie na sprzęcie o architekturze zgodnej z x86-64 (czyli procesorami wytwarzanymi przez Intel i AMD). Schemat architektury pokazany jest tu 

800px-Hyper-V    Hypervisor zapewnia izolację między systemami operacyjnymi na zasadzie separacji logicznych partycji. W każdej partycji działa jeden system operacyjny. Instancja hyperwizora ma co najmniej jedną partycję rodzica (parent partition) w której uruchomiana jest wersja MS Windows Sever 2008. Ta partycja główna ma bezpośredni dostęp do urządzeń sprzętowych i przerwań. Wszystkie maszyny wirtualne są uruchamiane i zarządzane przez ta partycję (proces ten nazywa się virtualization stack). Partycja główna tworzy partycje potomne (child partition – dzieci) w których uruchamiane są systemy operacyjne (potocznie mówi się, że host czyli partycja główna uruchamia potomne partycje aby one gościły inne nadrzędne OS-y). Partycje potomne nie mają dostępu do zasobów fizycznych sprzętu, to partycja główna udostępnia im wirtualny widok na zasoby sprzętowe (m. innymi na ilość dostępnych procesorów). Dostęp do wirtualnych zasobów odbywa się poprzez VMB (Virtual Machine Bus), VMB ma kanał logiczny pozwalający na komunikację między partycjami. Hypervisor wspiera wszystkie systemy operacyjne MS od klientów XP/Sp3 poprzez Vista i Windows 7 aż do Windows Server 2000/2003/2008 oraz systemy operacyjne oparte o Linux: SUSE Linux Enterprise i Red Hat Enterprise Linux. Dodatkowo wspiera modny ostatnio pomysł wirtualizacji pulpitu klienckiego (VDI –virtual destop interface) służący do przechowywania i zarządzania środowiskiem wykonawczym stacji klienckich (głownie pulpitu komputera ale też i innych zasobów). Dzieje się to poprzez oprogramowanie firm trzecich  jak vWorkspace (Quest Software), View (VMware), RDS (Microsoft) czy  XenDesktop (Citrix) lub Wyse. Źródlo - http://en.wikipedia.org/wiki/Hyper-V. Do tej pory największym wezwaniem jest wydajna obsługa grafiki oraz uproszczenie wsparcia dla portów USB.

Podczas fazy wyboru oprogramowania do wirtualizacji Microsoft mógł nie mieć potrzebnej wiedzy jakie rozwiązanie wybrać. Obecnie rynek aplikacji wirtualizacyjnych okrzepł na tyle, że wyłoniło się trzech głównych graczy. Są to WMware z ESX/ESXi 4.0, Microsoft z Windows 2008 R2 z Hyper-V oraz Citrix Xen Server 5.5. Porównując te trzy rozwiązania można wysnuć następujące wnioski:

  • bezpłatny produkt WMware ESX jest “gołym” hypervisorem podobnie jak Hypervisor-V firmy Microsoft, abstrahuje od nałożonych na niego  systemów operacyjnych, aby uruchomić system operacyjny trzeba go jeszcze dokupić
  • z racji swego doświadczenia w tworzeniu systemów operacyjnych firma Microsoft włączyła w paczkę darmowy Hypervisor-V z systemem operacyjnym typu Server, po jego zakupie paczki ma się od razu kompletne środowisko do wirtualizacji
  • firma Citrix znana ze współpracy z Microsoft w obszarze zdalnego dostępu do zasobów Windows nie mając własnego rozwiązania przejęła projekt open-source Xen (inny projekt to KVM). Oba te projekty są darmowe i bazują na dostosowaniu jądra Linux-a do wymogów wirtualizacji co napotyka wiele trudności (chociażby niechęć utrzymujących jądro Linuxa programistów do zmian odchodzących od uniwersalnego charakteru Linuxa). Dwa powyższa produkt zostały stworzone od początki z myślą o wirtualizacji  i być może dlatego są bardzie wydajne.
  • Microsoft jak i WMware mają znaczne doświadczenie w tworzeniu maszyn wirtualnych przy pomocy własnych, wbudowanych technologii

Wydaje się, że koncepcja prezentowana przez firmę VMware jest bardziej zaawansowana technologicznie. Jest schemat wygląda tak:

vSphere_Diagram_Large

Niestety rozwiązanie to nie jest tanie - http://www.vmware.com/files/pdf/vsphere_pricing.pdf

piątek, czerwca 25, 2010

O JS

Pisze to zwolennik mootools. Nie ulega wątpliwości  że ważne jest wykorzystanie frameworków, problem tylko jaki wybrać. Pomóc nam w tym zadaniu może witryna http://mootools.net/slickspeed/. Tam graficznie można zobaczyć jak wygląda wydajność poszczególnych rusztowań. Nie wnikając w szczegóły najlepiej sie prezentuje się jQuery i mootools.

Podobne strony:

  • When JavaScript Frameworks Collide
  • DomReady Event Methods in JavaScript Frameworks
  • 8 Considerations For Choosing Your JavaScript Framework
  • SXSW: Secrets of JavaScript Libraries
  • Create Your Own Custom JavaScript Dollar Function To Select An Element
  • php - http://www.craigfrancis.co.uk/features/code/phpForm/

     

    Dodatki:

    1. http://ejohn.org/blog/i-learned-some-things-about-jquery-today/
    2. http://alternateidea.com/blog/articles/2007/11/9/prototype-vs-jquery

  • Zasoby o PHP

    1. Ciekawy blog a tam o tym jak połączyć php z json i jQuery - http://www.phpriot.com/articles/php-json-jquery-ajax-screencast/purchase
    2. Tam chyba był tutorial na temat PHP - http://www.smashingmagazine.com/2010/04/15/php-what-you-need-to-know-to-play-with-the-web/ – jest tam także o curl np. korzystanie z regexpr do “zlizywania” stron przy pomocy ‘curl’.
    3. Wiele ciekawych artykułów jest na witrynie phpmagazine, tutoriale są w http://www.askaboutphp.com/5/getting-started-with-php.html, a w szczególności w zakładce tutorial

    piątek, czerwca 18, 2010

    Bezpieczenstwo przesyłania

    Przed atakami typu wstrzyknięcie kodu można się chronić poprzez przenoszenie danych w kodzie BASE64 pozbawiając ich możliwością błędnej interpretacji (to oszukanie, że w miejsce danych o pewnym formacie są podstawiane dane o innym i poprzez to są błędnie interpretowane (ponieważ nie są umieszczone w  swoim rodzimym kontekście)jest podstawą ataków XSS i SQL injection). Tak mówi artykuł http://blog.securitystandard.pl/news/359723.html. Pomysł jest autorstwa Kaminskiego (tak tego od DNS)

    czwartek, czerwca 17, 2010

    Testowanie technologii rest czyli restowanie

    1. Bardzo ciekawy blog deweloperski - http://marxsoftware.blogspot.com/
    2. Nalezy oczywiście zaliczyć wiki
    3. Klient do REST w pythonie - http://restclient.org/ (wymaga wxPythona)
    4. Aplikacja graficzne do REST w Javie - http://code.google.com/p/rest-client/
    5. Tam na temat implementacji Jersey - http://marxsoftware.blogspot.com/search/label/REST oraz tutorial - JAX-RS with Jersey- An Introduction
    6. Dobry wstep:
      1. http://marxsoftware.blogspot.com/2009/01/using-restclient-with-javas-httpservlet.html
      2. http://marxsoftware.blogspot.com/2009/01/easy-java-based-rest-testing-tools.html
    7. Inny ciekawy blog deweloperski - http://ayende.com/blog/archive/2010/03/27/that-no-sql-thing.aspx (o NoSQL i twierdzeniu CAP – czyli pięcie Achillesowej baz relacyjnych tzn. braku skalowalności. CO to jest baza relacyjna? Oto jej atrybuty:
      1. ACID
      2. Relacje
      3. Wsparcie pojęcia tablica/wiersz
      4. Klucze obce
      5. Schemat
      6. Elastyczne możliwości wykonywania zapytań
    8. REST można także testować przy pomocy cURL - http://blogs.plexibus.com/2009/01/15/rest-esting-with-curl/ np.:
      1. curl -i -H "Accept: application/json" -X POST -d "firstName=james" http://192.168.0.165/persons/person
      2. curl -i -H "Accept: application/json" –X GET http://192.168.0.165/persons/person/1

    środa, czerwca 16, 2010

    Nowinki

    1. Coraz więcej deweloperów Eclipse skłania się do tworzenia aplikacji w środowisku Linux Desktop (z uwagi na właściwość Eclipse – jego neutralność względem systemu operacyjnego). Mówi o tym najnowszy raport społeczeństwa Eclipse Community (na bazie ankiety z kwietnia/ maja wynika, że Linuksa używa 30%, wzrost o 10%, a Win 58% spadek z 74% ). Odnotowano również spadek “zwrotów” wyprodukowanych w Eclipse narzędzi do repozytorium Eclipse (spadek z 48% do 35%) – częściowo wynika to z polityki firm zabraniających dzielenia się swymi pracami poza firmą. Jeżeli chodzi o framework do tworzenia aplikacji internetowych to wygrał minimalnie Spring Framwork (19.7%) przed EJB (18.6%). Znamienne jest to, że jQury jest najpopularniejszym frameworkiem do tworzenia aplikacji RIA po stronie klienta (26%).
    2. Najpopularniejszy język dla aplikacji serwerowych to Java (69.7%), potem C/C++ (10.5%) i PHP (9%) .

    środa, czerwca 09, 2010

    wtorek, czerwca 08, 2010

    RSA na temat Cloud Computing

    Oczywiście zabiera głos na temat bezpieczeństwa:

    Miś na wirusy

    Proszę Państwa oto Miś – firma Panda nadal sie rozwija. Ich produkt Panda Cloud Antivirus oferuje wersję płatną (30$), wzbogaca wersję darmową. I to wszystko w chmurze. Jest bardzo oszczędny – zajmuje się 15 MB Ram i ma bardzo dobrą ocenę w oczach AV-Test.org

    środa, czerwca 02, 2010

    Chmura

    W serwisie polskim NetWorld są dostępne artykuły na temat przetwarzania w “chmurze” - http://www.itstandard.pl/whitepaper/1199-Cloud.Computing.gdzie.jest.ryzyko.html i http://www.itstandard.pl/whitepaper/892-Cloud.Computing.bez.tajeminic.html ale COIG je blokuje.

    CAS

    Jest o większą całością projektu -http://www.jasig.org/. Jego miejsce jest tu - http://www.jasig.org/cas

    Ciekawe blogi

    1. Różny, ale ciepły: http://notatnik.mekk.waw.pl/archives/144-Bajka_o_programujacym_durniu.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+NotatnikZapisywanyWieczorami+%28Notatnik+zapisywany+wieczorami%29
    2. Dewelopera z BSINT - http://mbartyzel.blogspot.com/
    3. Sieraczkiewicz - http://msieraczkiewicz.blogspot.com/
    4. Pochodna z niej - http://www.mistrzprogramowania.pl/sklep?page=shop.product_details&flypage=garden_flypage.tpl&product_id=1&category_id=1
    5. Oni (2/3) są z http://www.bnsit.pl/lang-pl/materialy-szkoleniowe
    6. Ciekawe materiały tutorialne –w3c school (o jQuery i CSS itd)
    7. Hindusi tez uczą - http://www.roseindia.net/

    Narzędzie popularyzujące kryptografię

    1. http://www.cryptool.de/index.php/pl/features-topmenu-43.html
    2. Używa bibliotek BC oraz FlexiProvider - http://www.flexiprovider.de/documentation.html
    3. Inny link - http://jcryptool.sourceforge.net/JCrypTool/Home.html

    W czym programować Google App?

    Wybór jest duży ale dla szarego człowieka dostępny jest App Script – oto przykład - http://www.google.com/google-d-s/scripts/docslist_tutorial.html – wszystko można zrobić przy pomocy JS okraszonego niewielką ilością API do Google.

    Wstęp do GG App -http://www.google.com/apps/intl/en/business/index.html:

    1. Bezpieczeństwo - http://www.google.com/apps/intl/en/business/infrastructure_security.html
    2. Zalety - http://www.google.com/apps/intl/en/business/cloud.html

    Aplikacje Google – Google Apps

    1. Strona główna – rozbiegówka do aplikacji - http://code.google.com/intl/en/
    2. Google udostępnia API np. do AJAX-a - http://code.google.com/intl/en/apis/ajaxlibs/
    3. Google App Engine – silnik napędzający aplikacje w chmurze Google - http://code.google.com/intl/en/appengine/. Wskaźnik do ciekawych linków - http://code.google.com/intl/en/appengine/whyappengine.html, http://code.google.com/intl/en/appengine/docs/whatisgoogleappengine.html
    4. Pełny zestaw API - http://code.google.com/intl/en/more/:
      1. http://code.google.com/intl/en/apis/predict/
      2. http://www.google.com/webelements/
    5. Fusion table google co to takiego?

    wtorek, czerwca 01, 2010

    Zbiorówka z Chroma w pracy

    1. Portal EvansData mam tam konto i hasło. Są tam dostępne raporty dla użytkowników - http://www.evansdata.com/net/reports.php
    2. Można wziąć  udział ankiecie – za punkty - http://surveys.evansdata.com/EDC_Cloud_2010_1/EDC_Cloud_2010_1.html
    3. IE też można zabezpieczyć - http://blogs.techrepublic.com.com/window-on-windows/?p=2479&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+techrepublic/window-on-windows+(TechRepublic+Window+on+Windows) przy pomocy IEControllera.
    4. Cloud Computing - http://www.infoworld.com/cloud-deepdive?source=fssr – jest tam też PDF oraz lista dyskusyjna. DO CC można zaliczyć również wszelkiego rodzaju maści pamięci np. heroku, google fusion tables itd.
    5. Inny przejaw CC – bazy NoSQL - http://www.theregister.co.uk/2010/05/25/voltdb_cloud_database_nosql/
    6. Ciekawe aplikacje open-source: http://www.infoworld.com/d/open-source/open-source-innovation-the-cutting-edge-582?page=0,0, np Alchemy - Karl D. D. Willis and Jacob Hin, lub Bespin od Mozilli
    7. Przejaw “usieciowenia” apliakcji w Google i przygotowanie do tworzenia aplikacji w chmurze:
      1. Google Apps Engine - http://code.google.com/intl/pl-PL/appengine/
      2. Apps Script - http://www.google.com/google-d-s/scripts/scripts.html do automatyzacji i nie tylko
      3. Cytat z powyższego adresu (są tam też tutoriale) :“With scripts, you can:
        • Create your own custom spreadsheet functions
        • Automate repetitive tasks (e.g. process responses to Google Docs forms)
        • Link multiple Google products together (e.g. send emails or schedule Calendar events from a list of addresses in a Spreadsheet)
        • Customize existing Google products (e.g. add custom buttons or menus to run your own scripts)

        Google Apps Script provides:

        • Easy interaction with different Google Products and capabilities using JavaScript APIs
        • Fast development:
          • use standard JavaScript
          • use Google's online Web Script Editor or your favorite Desktop development tool
          • Basic collaboration and sharing support
        • Execution and hosting of scripts on the Google cloud
        • Basic support for event handling that can run even when users are offline
        • Easy deployment and maintenance
        • Standard methods of security using OAuth: users or domain administrators have to grant each script access to the data it needs to run.”

    Chmura

    W serwisie polskim NetWorld są dostępne artykuły na temat przetwarzania w “chmurze” - http://www.itstandard.pl/whitepaper/1199-Cloud.Computing.gdzie.jest.ryzyko.html i http://www.itstandard.pl/whitepaper/892-Cloud.Computing.bez.tajeminic.html ale COIG je blokuje.

    Rozwój ogólny a szczególnie JS i jQUERY

    1. 15 najpopularniejszych rusztowań i bibliotek w JS do robienia GUI - http://www.dzone.com/links/r/15_javascript_web_ui_libraries_frameworks_and_too.html
    2. 10 innych - http://www.dzone.com/links/r/top_10_javascript_web_ui_libraries_frameworks_and.html
    3. jQuery UI - http://jqueryui.com/home
    4. Sieci semantyczne dla OLI - http://www.dzone.com/links/r/introduction_to_semantic_web_2.html
    5. Kolejny super autor – David Flanagan - "Javascript. The definitive guide” - http://www.davidflanagan.com/javascript5/index.html – tutaj są przykłady
    6. Narzędzie do wparcia komputerowego – TeamViewer - http://www.teamviewer.com/ – do użytku osobistego jest bezpłatny
    7. Wysyłanie formularzy poprzez AJAX - http://jquery.malsup.com/form/#getting-started – w środowisku jQuery

    niedziela, maja 23, 2010

    RoR 2

    http://www.tutorialspoint.com/ruby-on-rails/rails-scaffolding.htm
    http://guides.rubyonrails.org/getting_started.html

    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.

    czwartek, maja 13, 2010

    Myśli dzikie

    • Rusztowania (framework) są potrzebne. Również w JS. mamy tutaj dwa ważne podstawowe:
      • jQuery i
      • Prototype
    • Do nich dochodzą dodatki UI (odpowiednio):
      • jQuery UI i
      • scryptaculus
    • Inne rusztowanie to Ext JS, które głownie skierowane jest na GUI
    • Dla projektów wykorzystujących karty z certyfikatami ważne jest:
      • przewidzieć zapamiętanie Id karty w opisie konta osoby upoważnionej do zalogowania się do serwisu – ważne przy WS
      • ludzie z zewnątrz dzięki zastosowaniu Web SSL VPN mogą być potraktowani jako logujący się w sieci wewnętrznej

    Cloud

    1. Porównanie Google i Microsoft - http://www.networkworld.com/keywords/google-v-microsoft.html
    2. LA wybrało Google Apps -
    3. Yahoo zapowiada otwarcie swojej chmury na początku przyszłego roku - http://www.theregister.co.uk/2010/05/12/yahoo_to_open_source_cloud/
    4. Rozbiegówka przekonywująca do Google Apps - http://www.google.com/apps/intl/en/business/index.html
    5. MS ma teraz nowy produkt – Office Web Applications - Oznacza to, że pakiet ten pojawi się wraz z MS Office 2K10 w dwóch wersjach:
      1. konsumencka (oparta o MS SkyDrive oraz aplikacji facebookowskiej - docs.com) oraz
      2. biznesowa -jako dodatek do SharePoint 2010 lub nawet do darmowego SharePoint Foundation.
      3. Jeżeli chodzi o Facebook to jest to nie tylko ukłon  w stronę serwisów socjalnych ale również decyzja biznesowa – wejście w obszar współpracy z najpotężniejszym twórcom platformy socjalnej – Facebookiem. Może MS myśli o zaoferowaniu usług socjalnych w obszarze biznesowej.
      4. Należy zwrócić uwagę na fakt zaistnienia platformy serwerowej w postaci SP 2010 – chyba chodzi o to aby utrzymać wpływy z aplikacji biurowych
    6. Raport roczny O’Reilly - http://radar.oreilly.com/2010/04/handicapping-internet-platform-wars.html
    7. Niezawodny The Register:
      1. Szum wokół MS Office 2010 - http://www.theregister.co.uk/2010/05/12/office_2010_vesus_the_competition/
      2. Zalecenia komisji edukacyjnej Wielkiej Brytanii – zamiast C/C#/PHP uczymy Java (warunkowo ponieważ Stany z niej zrezygnowały)  oraz takich “staroci” jak Delphi/Pascal/Python/VB - http://www.theregister.co.uk/2010/05/12/aqa_c_php/. Pascal ma kompilator z rodziny bloodshed - http://pascalprogramming.byethost15.com/downloads.html, do Dephi - http://www.festra.com/freetutor/ i http://www.delphibasics.co.uk/ i vb - http://www.programmingtutorials.com/vb6.aspx
    8. Ciekawe co na to nasz MEN?

    wtorek, maja 11, 2010

    REST

    1. Opis WADL oraz jego generatora - http://searchsoa.techtarget.com/tip/0,289483,sid26_gci1265367_mem1,00.html
    2. IBM naucza co to jest REST - https://www.ibm.com/developerworks/webservices/library/ws-restful/
    3. Zasoby o REST na INFOQ - http://www.infoq.com/minibooks/emag-03-2010-rest
    4. Implementacje REST-a:
      1. OpenRasta - http://trac.caffeine-it.com/openrasta/wiki/Doc/Configuration/HowTos
      2. Restlet - http://en.wikipedia.org/wiki/Restlet
      3. RestEasy – JBOSS
      4. Jersey – wzorcowa implementacja

    CURL

    Jest wiele implementacji tego protokołu w tym również dla VFP i .NET. Istnieją ponadto inne rozwiązania np. http://curl.haxx.se/libcurl/competitors.html. Wśród nich jest wymieniony:

    1. HTTPClient - http://www.innovation.ch/java/HTTPClient/. Jest tam ciekawy odnośnik jak wyświetlić w applecie stronę HTML.
    2. Inna implementacja klienta – HTTPCLIENT z projektu Jakarta
    3. XML Http z MS
    4. WININET – chociaż nie jest zalecany, jak już to lepiej stosować – WinInet

    piątek, maja 07, 2010

    Aplety

    1. Interakcja apletu z platformą ASP.NET - http://java.sun.com/developer/technicalArticles/appletAspIntegration/index.html. Tu się przyda trochę teorii - http://java.sun.com/docs/books/tutorial/networking/urls/readingWriting.html
    2. “Klasyczne” rozważania na temat interakcji JS z Java w aplecie - http://www.rgagnon.com/javadetails/java-0172.html
    3. Wykorzystanie technologii zaprezentowanej w JSC
    4. Co nam daje Web Start - http://java.sun.com/docs/books/tutorial/deployment/webstart/security.html

    Ciekawe

    1. Google – web elements - http://www.google.com/webelements/ - nowości
    2. Google pokazuje jak działają hackerzy, nawet zamieszcza tutorial - tutaj
    3. Google kupuje firmę specjalizującą się w grafie 3D dla swego pulpitu - http://www.theregister.co.uk/2010/05/03/google_acquires_bumptop/
    4. Google dostarcza narzędzi programistycznych - 15 tools that Google provides for developers
    5. Bezpłatne oprogramowanie dostępu do zdalnego komputera - http://www.itworld.com/hardware/105990/infoworld-review-free-remote-access-tools-windows-and-mac?page=0%2C2&source=ITWNLE_nlt_windows_2010-05-04. Wg. nich najlepsze jest gBridge
    6. Co lepsze GoogelApps czy MS Office? Odpowiedź na to pytanie jest tutaj. Są tu rozważane głównie względy ekonomiczne np. powszechność stosowania poczty, funkcjonalnośc gmal względem Exchange, sklp z dodatkami Google Apps market, jakość wsparcie, koszty po zainstalowaniu, konkurencja ze strony bezpłatnych edytorów, wdrożenie WIndows 7, integracja z chmurą pakietu Office 2010, wersja lite tego pakietu, praca zespołowa nad edycją (50 edytorów w Google Docs).
    7. Tutoriale na temat przetwarzania w chmurze - http://www.itworld.com/saas/97423/cloud-computing-tutorial
    8. IronPytho to juz jest stabilna wersja - http://www.ironpython.net/
    9. MS .NET – różnice między:
      1. Datagrid.
        1. .Code requires to handle the SortCommand event and rebind grid required.
        2. Code requires to handle the PageIndexChanged
        3. Need extensive code for update operation on data.
        4. When compared to gridview less events supported.
      2. gridView
        1. No code required.
        2. No code required for PageIndexChanged
        3. Needs little code for update operation.
        4. GridView supports events fired before and after database updates
    10. Mogą być kłopoty z DNS –em ponieważ od dzisiaj wdrożony nowy, bezpieczniejszy protokół (zamiast UDP będzie TCP) związany z szyfrowaniem ramek – stary sprzęt (który oczekuje zapisy 512) może zawieść (teraz ramki będą dłuższe)
    11. Nowa 3 w jednym przeglądarka internetowa - http://www.lunascape.tv/
    12. Easy-Peasy – EasyEclipse – wszystko zebrane do kupy - http://www.easyeclipse.org/site/plugins/index.html – duże ułatwienie
    13. Jacob Nielsen Alert – badania wykazały, że wszyscy sie patrzą w lewy fragment strony - http://www.useit.com/alertbox/horizontal-attention.html

    Linki do domu o REST (na RESzcie!)

    1. WCF Rest – starter Kit  z MS - http://msdn.microsoft.com/en-us/netframework/cc950529.aspx
    2. Tu - http://www.asp.net/downloads/starter-kits/wcf-rest:
      1. http://msdn.microsoft.com/en-us/netframework/dd547388.aspx
      2. http://aspnet.codeplex.com/releases/view/24644
    3. Połączenie do usługi REST z poziomu jQuery - http://www.west-wind.com/weblog/posts/324917.aspx
    4. Konfigurowanie REST-a - http://www.west-wind.com/WebLog/posts/310747.aspx. A tu do ściągnięcia - http://www.west-wind.com/WebLog/posts/336745.aspx
    5. To samo ale w szerszym zakresie na donetkick - http://dotnetkicks.com/ajax/jQuery_AJAX_calls_to_a_WCF_REST_Service
    6. Tak na początek to wystartuj tego WCF - http://consultingblogs.emc.com/anthonysteele/archive/2008/03/15/rest-from-wcf-3-5.aspx lub http://blog.skyknight.info/2009/01/klient-rest-w-wcf/, http://damianm.com/tech/building-a-rest-client-with-wcf/, http://www.developer.com/net/article.php/10916_3695436_3/Creating-RESTful-Web-Services-with-Windows-Communication-Foundation.htm

    środa, maja 05, 2010

    Ciekawe

    1. Google – web elements - http://www.google.com/webelements/ - nowości
    2. Google pokazuje jak działają hackerzy, nawet zamieszcza tutorial - tutaj
    3. Google kupuje firmę specjalizującą się w grafie 3D dla swego pulpitu - http://www.theregister.co.uk/2010/05/03/google_acquires_bumptop/
    4. Google dostarcza narzędzi programistycznych - 15 tools that Google provides for developers
    5. Bezpłatne oprogramowanie dostępu do zdalnego komputera - http://www.itworld.com/hardware/105990/infoworld-review-free-remote-access-tools-windows-and-mac?page=0%2C2&source=ITWNLE_nlt_windows_2010-05-04. Wg. nich najlepsze jest gBridge
    6. Co lepsze GoogelApps czy MS Office? Odpowiedź na to pytanie jest tutaj. Są tu rozważane głównie względy ekonomiczne np. powszechność stosowania poczty, funkcjonalnośc gmal względem Exchange, sklp z dodatkami Google Apps market, jakość wsparcie, koszty po zainstalowaniu, konkurencja ze strony bezpłatnych edytorów, wdrożenie WIndows 7, integracja z chmurą pakietu Office 2010, wersja lite tego pakietu, praca zespołowa nad edycją (50 edytorów w Google Docs).
    7. Tutoriale na temat przetwarzania w chmurze - http://www.itworld.com/saas/97423/cloud-computing-tutorial
    8. IronPytho to juz jest stabilna wersja - http://www.ironpython.net/
    9. MS .NET – różnice między:
      1. Datagrid.
        1. .Code requires to handle the SortCommand event and rebind grid required.
        2. Code requires to handle the PageIndexChanged
        3. Need extensive code for update operation on data.
        4. When compared to gridview less events supported.
      2. gridView
        1. No code required.
        2. No code required for PageIndexChanged
        3. Needs little code for update operation.
        4. GridView supports events fired before and after database updates
    10. Mogą być kłopoty z DNS –em ponieważ od dzisiaj wdrożony nowy, bezpieczniejszy protokół (zamiast UDP będzie TCP) związany z szyfrowaniem ramek – stary sprzęt (który oczekuje zapisy 512) może zawieść (teraz ramki będą dłuższe)
    11. Nowa 3 w jednym przeglądarka internetowa - http://www.lunascape.tv/
    12. Easy-Peasy – EasyEclipse – wszystko zebrane do kupy - http://www.easyeclipse.org/site/plugins/index.html – duże ułatwienie
    13. Jacob Nielsen Alert – badania wykazały, że wszyscy sie patrzą w lewy fragment strony - http://www.useit.com/alertbox/horizontal-attention.html

    Ciekawe

    1. Google – web elements - http://www.google.com/webelements/ - nowości
    2. Google pokazuje jak działają hackerzy, nawet zamieszcza tutorial - tutaj
    3. Google kupuje firmę specjalizującą się w grafie 3D dla swego pulpitu - http://www.theregister.co.uk/2010/05/03/google_acquires_bumptop/
    4. Google dostarcza narzędzi programistycznych - 15 tools that Google provides for developers
    5. Bezpłatne oprogramowanie dostępu do zdalnego komputera - http://www.itworld.com/hardware/105990/infoworld-review-free-remote-access-tools-windows-and-mac?page=0%2C2&source=ITWNLE_nlt_windows_2010-05-04. Wg. nich najlepsze jest gBridge
    6. Co lepsze GoogelApps czy MS Office? Odpowiedź na to pytanie jest tutaj. Są tu rozważane głównie względy ekonomiczne np. powszechność stosowania poczty, funkcjonalnośc gmal względem Exchange, sklp z dodatkami Google Apps market, jakość wsparcie, koszty po zainstalowaniu, konkurencja ze strony bezpłatnych edytorów, wdrożenie WIndows 7, integracja z chmurą pakietu Office 2010, wersja lite tego pakietu, praca zespołowa nad edycją (50 edytorów w Google Docs).
    7. Tutoriale na temat przetwarzania w chmurze - http://www.itworld.com/saas/97423/cloud-computing-tutorial
    8. IronPytho to juz jest stabilna wersja - http://www.ironpython.net/
    9. MS .NET – różnice między:
      1. Datagrid.
        1. .Code requires to handle the SortCommand event and rebind grid required.
        2. Code requires to handle the PageIndexChanged
        3. Need extensive code for update operation on data.
        4. When compared to gridview less events supported.
      2. gridView
        1. No code required.
        2. No code required for PageIndexChanged
        3. Needs little code for update operation.
        4. GridView supports events fired before and after database updates
    10. Mogą być kłopoty z DNS –em ponieważ od dzisiaj wdrożony nowy, bezpieczniejszy protokół (zamiast UDP będzie TCP) związany z szyfrowaniem ramek – stary sprzęt (który oczekuje zapisy 512) może zawieść (teraz ramki będą dłuższe)
    11. Nowa 3 w jednym przeglądarka internetowa - http://www.lunascape.tv/
    12. Easy-Peasy – EasyEclipse – wszystko zebrane do kupy - http://www.easyeclipse.org/site/plugins/index.html – duże ułatwienie
    13. Jacob Nielsen Alert – badania wykazały, że wszyscy sie patrzą w lewy fragment strony - http://www.useit.com/alertbox/horizontal-attention.html

    attention

    piątek, kwietnia 23, 2010

    Otwarcie Google

    Firma Google zbiera cięgi za brak przejrzystości. Dlatego uruchomiła stronę wyświetlającą wszystkie swoje serwisu wybrane przez danego użytkownika - http://rcardon.free.fr/websign/wakka.php?wiki=DownloadPage

    Projekty e-Faktury

    Na świecie jest wiele projektów otwartych z efakturą. Jednym z nich jest projekt eID powiązany z administracją Belgii. Założycielem i Architektem jest Frank Cornelis (zaczął pracę w projekcie openxades). Strona domowa - http://code.google.com/p/eid-mw/. Innym projektem jest:

    1. openxades
    2. projekt estoński (na bazie http://www.openxades.org/files/JDigiDoc-2.0-eng.pdf)
    3. projekt kataloński
    4. projekt polski- PEMI
    5. samodzielny projekt - http://rcardon.free.fr/websign/wakka.php?wiki=DownloadPage
    6. Linki  nie rozpoznane (jeszcze):
      1. http://www.openoces.org/
      2. http://www.rgagnon.com/javadetails/java0480.html
      3. http://java.sun.com/developer/technicalArticles/J2SE/security/
      4. http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deploymentguide/keystores.html
      5. http://java.sun.com/j2se/1.5.0/docs/guide/security/p11guide.html
      6. http://www.openxades.org/pipermail/openxades/2006October/000075.html
      7. http://projectestic.uji.es/

    Do tego dochodzi świetne źródło informacji na temat podpisu –portal OPENPDF - http://openpdf.com/ebook/xades-java-pdf-6.html

    Projekty e-Faktury

    Na świecie jest wiele projektów otwartych z efakturą. Jednym z nich jest projekt eID powiązany z administracją Belgii. Założycielem i Architektem jest Frank Cornelis (zaczął pracę w projekcie openxades). Strona domowa - http://code.google.com/p/eid-mw/. Innym projektem jest:

    1. openxades
    2. projekt estoński
    3. projekt kataloński
    4. projekt polski- PEMI

    czwartek, kwietnia 22, 2010

    Docs wg MS

    Do tej pory portal Docs kojarzył się z Google-em teraz ma go tez Microsoft - http://docs.com/

    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.