czwartek, listopada 03, 2011

środa, listopada 02, 2011

Dart–atak klonów JS

Konwersja DART do zwykłego, brudnego JS - przy pomocy specjalnego edytora - http://www.dartlang.org/docs/getting-started/editor/index-win.html (do pobrania). Prezentacje - http://www.dartlang.org/news/2011/10/26/dart-slides-from-senchacon.html. Strona główna -  http://www.dartlang.org/. Tutoriale - http://www.dartlang.org/docs/getting-started/class.html. Dziwne – pokazowa aplikacja DART w Dart IDE nie chce się uruchomić w żadnej innej przeglądarce tylo Chrome, czyżby już się zaczął rozłam w aplikacjach JS wspieranych natywnie w przeglądarkach?

wtorek, października 25, 2011

Co z językami skryptowymi?

Języki dynamiczne potrzebują środowiska uruchomieniowego (zresztą obecnie każdy język poza assemblerem musi mieć jakiś wspomagający go run-time). Najczęściej jest to silnik tłumaczący kod źródłowy w locie do kodu półskompilowanego i wykonujący w swym środowisku (wspomagającym o różne biblioteki). Nazywamy to interpreterem. Interpreter natywny wspiera jeden język. Ale teraz coraz częściej w roli takiego interpretera wykorzystuje się maszyny wirtualne. W przypadku platformy .NET mamy do czynienia z DLR (Dynamic Language Runtime) wspierającym m.in. Python, Ruby. W przypadku Javy mamy JVM (Java Virtual Machine). Język dynamiczny to taki, który aktualnie coś robi a nie bawi się w ceremoniał owijania wszystkiego (programu źródłowego) w bawełnę w imię optymalizacji kodu – języki dynamiczne ułatwiają programowanie czyniąc to krótko i treściwie.

W JVM mamy do wyboru wiele języków dynamicznych, do najpopularniejszych zaliczamy wg. infoworld):

  1. JVM scripting language No. 1: Groovy -- powerful, high-level, enterprise-friendly
  2. JVM scripting language No. 2: JRuby -- a better Ruby than Ruby?
  3. JVM scripting language No. 3: Scala -- fast, multiparadigm programming
  4. JVM scripting language No. 4: Fantom -- Java and .Net plus performance
  5. JVM scripting language No. 5: Jython -- Python for the JVM
  6. Clojure, JavaFX, and NetRexx

Uratowane projekty z laboratorium Google

Mimo cięć oszczędnościowych w portfelu laboratorium Google jest jeszcze wiele ciekawych projektów:

  1. Google Transliteration – tłumaczenia foneyczne (to nie to samo co Google Translate)
  2. Swiffy – tłumaczy Flash do HTML5
  3. Google Shared Spaces – teraz włączony do G+ handsOut
  4. Google Body
  5. Google App Inventor

piątek, października 07, 2011

Co z tą Javą

Java po przejęciu przez Oracle rozwija się nadal tak wolno jak za czasów Suna ale dzieje się dużo ciekawych rzeczy. Ostatnio o wielu nowościach można się dowiedzieć z materiałów konferencji Java. Pokazano technologię JavaFX na urządzeniach mobilnych (będzie ona otwarta) oraz projekt Avatar – dynamicznego klienta w przeglądarce urądzeń mobilnych wykorzystującego HTML5 oraz Javę EE 7 w chmurze w architekturze klient-serwer. Projekt Nashron ma zbliżyć JavaScript do maszyny wirtualnej VM. Jednym słowem CHMURY i wykorzystanie Java 7. Wg. Computerworld.  Wrażenie z implementacji przetwarzania w chmurach w środowisku Java: defragmentacja – wiele ofert (SPring, Red Hat i inni), rozliczanie – czasami za parę kliknięć można zapłacić bardzo drogo, integracja GWT z chmurą na przykładzie Google App Engine.

czwartek, października 06, 2011

Linki do SAP-a

  1. Struktura produktów rozwiązań SAP w zakresie raportowania SAP Crystal Solutions (tam też można ściągnąć wersje próbne):
    1. Tworzenie raportów:
      1. SAP Crystal Reports - projektowanie raportów
      2. SAP Crystal Interactive Analysis - interakcja z danymi raportowymi, analiza danych
    2. Przeglądanie, udostępnianie, zarządzanie raportami:
      1. SAP Crystal Reports viewer - bezpłatna przeglądarka raportów
      2. SAP Crystal Server - serwer raportowy: przeglądanie, analiza, współdzielenie, zarządanie raportami, udostępnianie w innych aplikacjach (np. biurowych)
      3. SAP BusinessObjects OnDemand
    3. Osadzanie funkcjonalności raportowania w innych aplikacjach (aplikacje serwerowe i tylko one wymagają licencji):
      1. SAP Crystal Reports, version for Eclipse
      2. SAP Crystal Reports, version for Visual Studio .NET
      3. SAP Crystal Reports runtime server license  - licencja na wersję serwerową aplikacji
  2. Główne źródło informacji na temat zarządzania produktami - blog Blaira W. http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/14514%3Fpage%3Dlast%26x-order%3Ddate
  3. Ważne zmiany - SAP Crystal Reports 2011 nie zawiera już narzędzi wspierających tworzenie raportów w środowisku Visual Studio. Tworząc raporty w środowisku VS 2010 można jednak stosować bezpłatny pakiet SAP Crystal Reports for Visual Studio 2010 (dostępny do pobrania bez rejestracji). Wersje starsze SAP CR 2008 zawierają sobie (w jednej paczce) narzędzia dla VS (runtime) - na podstawie http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/24515 (Blair Wheadon).
  4. Dodatkowo przejście na nową wersję (SAP Crystal Reports 2011) dostajemy wiele nowych funkcjonalności opisanych w artykule http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/24531. Należy zwrócić uwagę, że nadal dostępne są runtime (biblioteki) dla środowisk .NET i Java (cytat - “This doesn't mean there's nothing in SAP Crystal Reports 2011 for developers - in fact, it's quite the opposite. To review, we provide, for free, report designers and runtime engines for both .NET 4.0 and Java.”). Wg tego artykułu pakiety te zawierają:
    1. Simplified report design tools.
    2. Runtime engines
    3. APIs
    4. IDE tooling
  5. Jak dostać bezpłatną wersję dla deweloperów. Opis produktu SAP Crystal Reports, version for Visual Studio 2010. Produkt ten można ściągnąć stąd. Są cztery wersje do pobrania: SAP Crystal Reports, version for Visual Studio 2010 - Standard, SAP Crystal Reports, version for Visual Studio 2010 - Click Once, SAP Crystal Reports, version for Visual Studio 2010 - Merge Modules oraz SAP Crystal Reports runtime engine for .NET Framework 4 (32-bit). Czym one się różną. Którą wersję wybrać?
  6. Nowy runtime - Crystal Reports for Visual Studio 2010 Runtimes - nie będzie wspierał instalacji w trybie msm - http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/18828 tylko Click Once i MSI.
  7. Różne scenariusze licencjonawania produktów - http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/70bd6328-4128-2d10-7882-d7b95418dbaa. Materiał w PDF.
  8. Informacja o licencji na runtime - http://www.sap.com/solutions/sap-crystal-solutions/query-reporting-analysis/sapcrystalreports/licensing/index.epx dla kogo za darmo (gruby klient) a dla kogo trzeba kupić licencję - dla rozwiązań serwrowych.
  9. Źródła wsparcia dla deweloperów:
    1. Forum jest tu - http://forums.sdn.sap.com/thread.jspa?threadID=1006683&tstart=0.
    2. społeczność - http://www.sdn.sap.com/irj/sdn/bi-sdk-dev
    3. Powstał nowy, oficjalny materiał dla deweloperów - What's New, Release Notes, Fixed Issues - SAP Crystal Reports for Visual Studio 2010 Developer Guide
    4. Przykład - http://www.sdn.sap.com/irj/boc/samples
    5. Intergracja rozwiązań - http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/t/31
  10. Tutaj zaczyna się informacja o SAP CR for VS - http://www.sap.com/solutions/sap-crystal-solutions/query-reporting-analysis/sapcrystalreports-visualstudio/index.epx
  11. Co nowego w SAP CR 2011 - http://help.sap.com/businessobject/product_guides/CR2011/en/xi4_cr_whatsnew_en.pdf i http://service.sap.com/bosap-support i http://help.sap.com/businessobject/product_guides/cr2011/en/xi4_cr2011_release_notes_en.pdf
  12. Dalsze linki (z grubsza):
    1. http://www.tek-tips.com/viewthread.cfm?qid=1661522&page=1
    2. http://www.codeforest.net/jquery-mobile-rc1-released-whats-new
    3. http://www.sdn.sap.com/irj/boc/downloads
    4. http://www.sdn.sap.com/irj/boc/articles
    5. W chmurze - http://kenhamady.com/cru/archives/1783
    6. licencjonowanie - http://kenhamady.com/cru/archives/1810
    7. narzędzia - http://kenhamady.com/cru/archives/1833
    8. http://kenhamady.com/cru/comparisons/server-based-deployment-options
    9. http://kenhamady.com/cru/comparisons/server-based-deployment-options
    10. http://www.businessobjects.com/jump/xi/crvs2010/default.asp
    11. http://www.sdn.sap.com/irj/sdn/bi-sdk-dev
    12. http://www.sdn.sap.com/irj/boc/samples

środa, października 05, 2011

Ciekawostki

Jest wzmianka o propozycji firmy Qualsys zorganizowania inaczej struktury PKI – na bazie pracy Moxin Marlinspike w projekcie Convergence project który polega na luźnej federacji urzędów notarialnych głosujących za przyjęciem danego certyfikatu. Projekt przypomina bardziej PGP w którym użytkownik ufa opinii innych użytkowników w rozproszonej sieci urzędów. Kłopoty są w tym, że nie ma takiej struktury urzędów i nikt nie pali się do jej utworzenia. Wg. Reg.

Nowe trendy – NFC – near field communictaion – co to jest? Jest podobno już w Androidzie. Wg. Reg.

Nowe zjawisko – działania firmy Heroku należącej do Salesforce. Wzbogaca ona swój portfel oferty PaaS poprzez ogłoszenie wsparcie dla Pythona i PHP (w chmurze EC Amazona ma już wsparcie dla Ruby, node.js, java i Clojure). Wsparcie dla Pythona w chmurze daje od dawna Google w swej ofercie Google App Engine. Wg. Reg.

Perfidne plany Google w odpowiedzi na zagrożenie Apple. Google wymyśla nowy język programowania w aplikacjach webowych wewnątrz przeglądarki. Wg. Reg.

Pochwalam też edytory HTML on-line jak np. http://www.htmlinstant.com/ czy http://apps.bryanlynn.com (https://chrome.google.com/webstore/detail/nglgdmkkiemejlladcdjegcllaieegoe),  działają w Chrome i są jak jFiddle a są za darmo!

Dziwne Jing-Jang: jest w środowisku Google Chrome wtyczka IE for Chrome (umożliwia w środku Chroma otworzyć zakładkę w której strona jest renderowana silnikiem IE) i na odwrót w środowisku IE jest wtyczka Google Chrome Framework umożliwiająca uruchomienie w zakładce strony która będzie renderowana przez Chrome. Odnośnie GCF – to naprawdę działa! Zainstalowałem na IE8 i strona napisana z wykorzystaniem HTML 5 (grafika w oparciu o canvas) wyświetla się prawidłowo. W ten sposób użytkownicy zmuszeni do korzystania z IE mogą się przenieść do lepszego świata HTML 5 bez koniczności instalowanie IE 9 (i przejścia z Windows XP na Vistę lub 7). Pochwalam!

Jak wyświetlić symbole matematyczne w HTML-u starym i nowym - http://www.2ality.com/2011/10/html-square-root.html

Top 10 most annoying songs - http://www.theregister.co.uk/2011/09/29/catchiest_song_ever/. By their reckoning, these are the top ten catchiest songs of all time:

    We are the Champions, Queen (1977)
    Y.M.C.A, The Village People (1978)
    Fat Lip, Sum 41 (2001)
    The Final Countdown, Europe (1986)
    Monster, The Automatic (2006)
    Ruby, The Kaiser Chiefs (2007)
    I’m Always Here, Jimi Jamison (1996)
    Brown Eyed Girl, Van Morrison (1967)
    Teenage Dirtbag, Wheatus (2000)
    Livin’ on a Prayer, Bon Jovi (1986)

wtorek, października 04, 2011

Co nowego

Nokia pragnie zjeść dwa torty naraz. Dwa wydarzenia: nawiązanie współpracy z MS i co z tym idzie plan produkcji smartfonów z WP7 oraz koncentracja na telefonach low-cost. Nokia widzi, że w segmencie smartfonów z Android nie ma już dla niej miejsca, dlatego zaczyna specjalizować się w podobnym segmencie - telefonach z mobilnymi systemami MS. Z drugiej strony opóźniony start w telefonach inteligentnych powoduje, że szuka niszy i zysków w dużej sprzedaży tanich komórek z Linuxem (z międzyplatformowym narzędziem Qt). Rynek niskobudżetowych komórek jest przeznaczony na rynki wschodzące, które wg. Gartnera mają ogromny potencjał wzrostu. Widać, że rynek telefonów podzielił  się na trzy segmenty: low-cost, feature phone (np. Nokia Seria 40) oraz smartfon. Analiza z computerworld. Wniosek - Widać teraz trzy segmenty rynku telefonów: a) low-cost (głupie), b) feature (mądrzejsze) i c) smartphone (najmądrzejsze). Nokia chce porzucić to co do tej pory robiła najlepiej czyli segment b (seria 40) i skupić się na a po tym jak zaczęła romans z MS w segmencie c.Widać teraz trzy segmenty rynku telefonów: a) low-cost (głupie), b) feature (mądrzejsze) i c) smartphone (najmądrzejsze). Nokia chce porzucić to co do tej pory robiła najlepiej czyli segment b (seria 40) i skupić się na a po tym jak zaczęła romans z MS w segmencie c.

Super sprawa – prezentacja o algorytmach - http://www.jamisbuck.org/presentations/rubyconf2011/index.html#backtracker-drunk-walk

Trzeba zrezygnować  z node.js bo jest jak RAK – oto jego krytyk: http://webhosting.pl/Node.js.to.rak.ktory.zniszczy.mozgi.webdeweloperow. Przeciw - http://teddziuba.com/2011/10/node-js-is-cancer.html

Telefony – framework do tworzenia aplikacji mobilnych Sencha jest za darmo!

Wg. computerworld. Adobe ma problemy z akceptacją technologii Flash w urządzeniach mobilnych po tym jak ówczesny prezes Apple Steve Jobs odrzucił stosowanie tej technologii w swych produktach. Co robi Adobe? Stara się stworzyć serwer Flasha, który serwuje strumień danych renderowany równie dobrze na urządzeniach wspierających tą technologie jak i na urządzeniach z HTML5. Powstają następujące  wątpliwości:

  1. będzie to prawdopodobnie kompilator Flasha do kodu HTML5 lub Silverlight (prace nad takim narzędziem były już dawno anonsowane),
  2. marnotrawstwo pasma – Flash polegał na tym, że przesyłało się w sieci tylko rozkazy do renderowania na stacji klienckiej (gdzie był silnik Flasha) podobnie jak działa SVG, teraz taki serwer będzie musiał wysyłać znacznie więcej informacji literalnie wszystko aby HTML5 mógł przy pomocy canvas wyświetlić grafikę/animację we Flashu (jest to oczywiste marnotrawstwo pasma),
  3. czy serwer będzie w stanie odróżnić z jakim końcowym urządzeniem ma do czynienia by mu zafundować odpowiedniego formatu strumień danych (rozpoznanie rodzaju urządzenia mobilnego jest problematyczne i nie zawsze w 100% pewne),
  4. czy nie lepiej zrezygnować w ogóle z instalacji klienta Flasha na urządzeniu końcowym i wysyłać mu tylko strumień o takim formacie jaki jest zawsze wspierany w tych urządzeniach. Nie trzeba mówić, że jest to HTML5. Jakie są tego konsekwencje? Wielorakie:
    1. brak konieczności instalacji klienta flasha wraz z poprawkami i aktualizacjami
    2. zabicie flasha w urządzeniach końcowych (po co wspierać dwa strumienie)
    3. automatyczne wsparcie na innych urządzeniach np. PC-tach z przeglądarkami
    4. uczynienie przeglądarki internetowej JEDYNYM programem do uruchomienia strumienia w formacie flasha.
  5. Uwaga końcowa -

    To dobrze, że Adobe ma kompilator Flash -> HTML5, wtedy zamieniając na serwerze format flash we strumień HTML5 może bez obaw wyświetlić go w każdej przeglądarce (i to bez konieczności instalowania oprogramowania Flasha). Ale to zabije potrzebę wspierania formatu Flash w urządzeniach końcowych - tak jak chciał Jobs.

Bardzo ciekawe strony offowe:

  1. http://thisdeveloperslife.com/
  2. http://msdn.microsoft.com/en-us/library/hh191443(v=VS.110).aspx
  3. http://repl.it/

niedziela, października 02, 2011

Medytacje

http://lifehacker.com/5591576/a-guide-to-meditation-for-the-rest-of-us

Certyfikaty i ich wykorzystanie – pomocne linki

Na uwagę zasługją dwie wirtyny polskie (obok sławetnego stowarzyszenia PEMI). Jedna to ipsec.pl a druga securitystandard.pl oraz osoba Pana Pawła Krawczyka (pseudo Krawiec). W Polsce najważniejsza strona to http://www.nccert.pl/ncc/home.aspxNarodowe Centrum Certyfikacji przy NBP, które jest wyznaczone do pełnienia “funkcji głównego urzędu certyfikacji dla infrastruktury bezpiecznego podpisu elektronicznego w Polsce” oraz “prowadzenia rejestru kwalifikowanych podmiotów świadczących usługi certyfikacyjne”. Jak bezpieczna jest strona “https://www.nccert.pl/ncc/home.aspx”? Nie za bardzo, w testach qualsys osiągnęla 81% (ING Bank Śląski uzyskał więcej bo 85%).

NCC prowadzi listę podmiotó świadczących usługi certyfikacyjne. Są to:

  1. MobiCert - http://www.mobicert.pl/?page=87 – posługuje się aplikajcą PROTECTOR
  2. CenCert - http://www.cencert.pl/ – (enigma i comp.pl)
  3. Safe Technologies z Krakowa
  4. KIR, CERTUM i SIGILLUM

Materiały Krawczyka (firma ipsec świadczy KOMERCYJNE usługi):

  1. http://www.securitystandard.pl/news/327774_6/Podpis.elektroniczny.w.dokumentach.Adobe.PDF.html a tam można znaleźć odnośniki do technicznych stron Adobe:
    1. http://learn.adobe.com/wiki/display/security/Document+Library – parametryzacja przy pomocy wpisów w rejestrze Windows
    2. http://www.adobe.com/devnet/acrobat.html
    3. Słynny odnośnik do paczki z zaświadczeniami polskich urzędów certyfikacyjnych
  2. http://ipsec.pl/kwalifikowany-podpis-elektroniczny/praktyka-podpisu-elektronicznego-w-polsce.html
  3. Jego doradctwo - http://ipsec.pl/informatyzacja/doradztwo-w-zakresie-podpisu-elektronicznego-bezpieczenstwa-it.html
  4. Co z tą eFakturą – interpretacja własna autora - http://ipsec.pl/faktura-elektroniczna-e-faktura/2011/jak-zapewnic-autentycznosc-integralnosc-faktury-elektronicznej.html
  5. Biblioteka i bibliografia - http://ipsec.pl/kryptografia/biblioteka-ipsecpl.html
  6. Wszystkie (mam nadzieję) ustawy o podpisie - http://ipsec.pl/prawo-polskie/podpis-elektroniczny-w-polskim-prawie.html a wśród nich najważniejsza ustawa o podpisach (jako projekt mający na celu wykonanie prawa Unii Europejskiej) wpłynęła ona do zatwierdzenia do Sejmu RP w dniu 23 listopada 2010, aktualnie sprawa jest niezamknięta (poprawki), jest też uzasadnienie - http://orka.sejm.gov.pl/Druki6ka.nsf/0/6D8DB0ECB92CDB76C12577E6005849C3/$file/3629-uzas.doc

Oficjalna strona MG na temat podpisu - http://www.mg.gov.pl/Wspieranie+przedsiebiorczosci/Dzialalnosc+gospodarcza+i+e-przedsiebiorczosc/Podpis+elektroniczny oraz oficjalny podręcznik do podpisu.

Najnowsze rozporządzenie o efakturze - http://www.mf.gov.pl/dokument.php?const=3&dzial=135&id=232702.

Certyfikaty testowe, darmowe dla osób indywidualnych i płatne (dla firm) - http://www.startssl.com/?app=26

piątek, września 30, 2011

Co Oracle może powiedzieć o SSL

Tyle - http://download.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html

Czy wtyczka do Javy jest taka ważna?

Mozilla proponuje zablokowanie uruchamiania apletów w javie poprzez  wyłączenie wtyczki java-plugin w swej przeglądarce Firefox (wersja 7 ma ją domyślnie wyłączoną, w starszych wersjach trzeba ja ręcznie wyłączyć). Po co ona była. Wtyczka ta jest analogiem technologii Active X firmy Microsoft zaimplementowanej w IE i pozwala na ściągnięcie z zaufanej witryny na komputer klient poprzez przeglądarkę internetową kodu wykonywalnego, który się uruchamia w środowisku lokalnym stacji roboczej klienta z prawami tego użytkownika. Zabezpieczeniem miało być podpisanie kodu zaufanym certyfikatem oraz przestrzeganie zasady pochodzenia kodu z tej samej domeny/witryny (same origin policy). W przypadku ataków hackerów jest możliwe obejście tych zabezpieczeń (najczęściej socjologicznymi trikami). Wtyczka do Javy od dawna udostępnia atakującym wiele okazji do wykorzystania tej metody do wstrzykiwania oprogramowania złośliwego do komputera użytkownika. Wyłączenie je powoduje utratę funkcjonalności wielu witryn.

Jaka z tego nauka? Zrezygnować z uruchamiania kodu ściąganego z internetu.

czwartek, września 29, 2011

Inne ciekawostki

  1. Filtrowanie danych w JS po stronie klienta - http://blog.joshsoftware.com/2011/09/28/filter-js-client-side-search-filtering-using-json-and-jquery/
  2. Jakie aplikacje ściągnąć sobie na Androida? – takie
  3. WCF - http://msdn.microsoft.com/en-gb/library/ms732362.aspx

Dalszy przebieg wydarzeń z SSL-em

Na stronach the register pojawiła się wzmianka, że Firefox planuje blokowanie pluginów w Javie (popularnych appletów). Stało się to po tym jak badacze Thai Duong i Juliano Rizzo pokazali jak przy pomocy tej techniki obeszli wymóg SOP (same origin policy) – elementu koniecznego w procesie przeprowadzeniu ataku na SSL. Dlatego planuje się zablokowanie tego frameworku w Firefox tym bardziej, że FF i Chrome nie wspierają TSL 1.1 i wyżej (chyba tylko Opera i IE mają wbudowaną obsługę tego nowego protokołu, ale to nie zawsze pomaga, gdyż w momencie negocjacji połączenia klient - serwer, ten ostatni może wymusić obniżenie bezpieczeństwa poprzez zejście z sugerowanego przez klienta protokołu TSL 1.1 na TLS 1.0).

Konsekwencje blokady są straszne – java plugin to taka wersja ActiveX, która umożliwia “przemycanie” do komputera rozmaitych kodów wykonywalnych pochodzących z zewnątrz (np. z internetu), dzieje się to z obejściem wszelkich zabezpieczeń – sprawdza się tylko czy kod  apletu jest podpisany. Z tego mechanizmu korzysta wielu dostawców oprogramowania np. CISCO “wstrzykuje” na komputer klienta swego AnyConnecta, Facebook umożliwia usługę chat-u itd. Zablokowanie tego może pogorszyć tzw. user expirience ale niestety implementacja SSL w javie stanęła ma 1.0 - http://download.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html. Obecnie w blogu Mozilla Security piszę się aby jako obejście wprost zablokować wtyczkę do Javy w zarządcy wtyczek FF. Nawiasem mówiąc Chrome blokuje uruchamianie wtyczek w Javie. Dalej na stronach Chrome “Chrome and the BEAST” pisze się, że serwery Google od dawna stosują RC4.

Inna strona o tym - http://www.h-online.com/open/news/item/Mozilla-considers-disabling-Java-in-Firefox-1351590.html

Do rozgryzienia

  1. Kim był ten tajemniczy Tesla - http://webhosting.pl/Nikola.Tesla.wielki.czlowiek.o.ktorym.znowu.zrobilo.sie.glosno
  2. Jak powstał JS (na pewno nie po pijaku) - http://webhosting.pl/JavaScriptu.nie.poczeto.po.pijaku.to.od.poczatku.bylo.chciane.i.planowane.dziecko
  3. Nareszcie są w sieci materiały na temat zwojów z Qumran - http://webhosting.pl/Zwoje.znad.Morza.Martwego.dostepne.w.wersji.cyfrowej.na.nowej.interaktywnej.stronie.internetowej.stworzonej.przez.Muzeum.Izraela.i.Google
  4. NASA ma nową rakietę - http://www.theregister.co.uk/2011/09/15/nasa_sls/
  5. Bardzo ważny link – materiały do WCF - http://msdn.microsoft.com/en-gb/library/ms733103.aspx
  6. Ważne aplikacje do wykorzystania w Androidzie - http://www.networkworld.com/slideshows/2011/092711-android-apps.html?source=NWWNLE_nlt_convergence_voip_2011-09-28
  7. Problem z UEFI polega na tym, że MS wymaga od OEM sprzętu certyfikowanego (dedykowanego) pod Windows 7 a to z kolei wymaga od OEM sprawdzania czy kod ładujący się do komputera jest bezpieczny, czyli podpisany. Kapitalny pokaz na temat znaczenia nowego BIOS-u: ochrona prze wirusami oraz przyspieszenie ładowania systemu i gotowości do pracy.
  8. Wiele instalacji Linuksa na jednym krążku – NetbootCD 4.x. Tu do ściągnięcia - http://netbootcd.tuxfamily.org/

Różności o bezpieczeństwie

Z ITWorld – dlaczego strona MySQL została zainfekowana tak, że wysyłała złośliwe oprogramowanie do przeglądarek? Dlatego, że intruz wstrzyknął kod JS, który wykorzystał słabości zainstalowanych u klienta pakietów użytkowych (Adobe Reader, Flash i Java) – “Security vendor Armorize noticed the problem at around 5 a.m. Pacific Time Monday. Hackers had installed JavaScript code that threw a variety of known browser attacks at visitors to the site, so those with out-of-date browsers or unpatched versions of Adobe Flash, Reader or Java on their Windows PCs could have been quietly infected with malicious software.” – przez to zaraził komputery klientów. Potwierdza to fakt, że coraz więcej ataków wykorzystuje źle zaktualizowane programu użytkowe na stacji klienta. PSI firmy Secunia potrafi na bieżąco śledzić stan i wersje takiego oprogramowania – ten monitor jest bezpłatny.

Na temat nowego ataku SSL - http://windowssecrets.com/links/y6pkszr6i9uqd/e0c916h/?url=technet.microsoft.com%2Fen-us%2Fsecurity%2Fadvisory%2F2588513. Atak polega na przechwyceniu ciasteczek sesji w trakcie sesji HTTPS i odszyfrowaniu ich i co za tym idzie ukraść sesję. Atak się udaje w przypadku użycia protokołu TLS 1.0 i wykorzystaniu w nim kodowania CBC. Obejście polega na stosowaniu kodowania RC4 lub przejścia na protokół TLS 1.1 lub wyższy (ale nie wszystkie serwery internetowe go wspierają). W polityce grupowej można nadać RC4 wyższy priorytet - TLS_RSA_WITH_RC4_128_SHA.

Uwaga wg. NetworkWorld: ratunkiem przed potencjalnym atakiem jest ustawienie kolejności (priorytetu) w jakiej UZGADNIANE są algorytmy szyfrowania podczas sesji HTTPS (w czasie negocjacji specyfiki protokołu wymiany między klientem a serwerem). Podatność na atak (znana od 2004 i od 2006 organizacja IETF polecała mocniejszy protokół TLS 1.1, ale uważano, że nie da się jej wykorzystać) polega słabości algorytmu BLOKOWEGO CBC a nie strumieniowego.

niedziela, września 25, 2011

Ciekawostki w ostatnią niedzielę września

Owocem współpracy MS i Nitobi jest wyspecjalizowana wersja Phone Gap dla WP7. Firma Nitobi prowadzi specjalny blog na temat telefonów mobilnych i tworzeniu dla nich aplikacji. Nitobi daje wiele innych narzędzi oprócz Phone Gap, są także faremworki JS-owe. Do tego dochodzą frameworki w JS np: jQ Mobile, jQ Toucj, Jo, Sencha Touch, XUI, Sproutcore – słowem do wyboru do koloru. Obserwuj co się dzieje na portalu eAndroidowo oraz obserwuj SL4 na google code – tam są implementacje natywnych aplikacji w środowiskach języków dynamicznych (PHP,Python). Może też KendoUI na bazie jQuery ma coś do zaoferowania.

Kolejny kurs JS - http://windowshosting.pl/Kurs.JavaScriptu..Podstawy.programowania.na.potrzeby.stron.WWW

Ostatnio Panda Cloud osiągnęła niezłe wyniki w skanowaniu – webhosting. Do ochrony przed starymi wersjami oprogramowania można wykorzystać PSI firmy Secunia.

Obserwować inne twitter-y: blip/flaker

Ukryte koszty jakie ponoszą klienci Google Apps for Enterprise – infografika

Do tworzenia PDF w środowisku PHP zaleca się http://www.fpdf.org/ chociaż najlepsze jest PDFlib. Na tej stronie są także odwołania do portów tej biblioteki na inne paltformy językowe np. COM, ASP, Java czy Python. Oczywiście najważniejsza strona dla deweloperów to portal ADOBE. Narzędzia PDF-owe w postaci biblioteki xpdf - http://www.foolabs.com/xpdf/download.html. Ogólne sprawy pdf-owe są na poratlu pdfzone (np. ciekawy link: http://www.pdfzone.com/c/a/Authoring/Creating-a-Basic-PDF-Form/). Inne PDF-owe aplikacje (na foolab):

  • PostScript-to-PDF converters:
    • pstoedit converts from PostScript to many formats, including PDF; it also converts PS or PDF to other vector formats.
    • Ghostscript can display PDF files, and also includes a PostScript to PDF converter.
    • PStill is a shareware PostScript-to-PDF converter.
  • Other PDF converters/generators:
  • PDF format info:
  • TeX and PDF:
    • pdftex lets TeX produce PDF output.
  • Miscellaneous links:

Podobno najlepszy program do oglądania PDF (wg. lifehackera) - http://www.tracker-software.com/product/pdf-xchange-viewer

Portal dla .NET-owców - http://dotnetomaniak.pl/Category/Windows/3

Co tam panie na rynku przeglądarek? Dominuje jeszcze IE - http://windowshosting.pl/Miliard.Chinczykow.nie.moze.sie.mylic.w.badaniu.Net.Applications.wygrywa.Internet.Explorer i http://webhosting.pl/Tymczasem.na.rynku.przegladarek.Firefox.traci.coraz.wiecej.udzialu.w.rynku.jakie.sa.tego.powody

sobota, września 24, 2011

Sprawa certyfikatów

Certyfikatów jest wiele, m.in. komercyjny i kwalifikowany. W Polsce inne rodzaje certyfikatów są mało popularne no chyba jeszcze certyfikat na serwer internetowy i SSL. U nas z certyfikatów najczęściej korzystają PRZEDSTAWICIELE firm. Ciekawa sprawa, jeżeli ktoś dostał od firmy certyfikat kwalifikowany to nigdzie nie jest napisane, że nie może się nim posługiwać prywatnie (JEST on wystawiony na OSOBĘ). Taki certyfikat z nazwiskiem jego posiadacza jest jego niejako elektronicznym dowodem osobistym. To, że ma tam gdzieś nazwę firmy oznacza, że kiedyś w niej pracował – zresztą miejsce pracy nie jest takie ważne, dzisaj tu, jutro tam – chyba, że firma taki certyfikat unieważni. Zresztą wypróbowana praktyka w dokumentach papierowych jest taka, że podaje się dane osób UPOWAŻNIONYCH lub PRZEDSTAWICIELI do składania podpisu. Podpisując dokument z nazwiskiem osoby upoważnionej pozwala sprawdzić czy ona właśnie podpisała ten dokument elektroniczne – to taki double-check.

Dla firm trudno raczej certyfikat uzyskać, kwalifikowany jest dla osób fizycznych tylko. Co robić? Można wystosować zapytanie do naszych trzech wystawców certyfikatów lub zwrócić się do uznanych firm zagranicznych jak Thawte lub Verisign (lub mniej znanych jak GlobalSign a na pewno nie do DigiNor – ta firma po skandalu z wyciekiem certyfiaktów i brakiem należytej kontroli nad procesem obsługi życia certyfikatu słusznie zresztą upadła). Poszukałem trochę w sieci – CERTUM daje certyfikat niekwalifikowany, podobnie KIR, inna definicja niezależna. Ale chyba najlepiej precyzuje różnice między tymi dwoma certyfiaktami stowarzyszenie PEMI:

  • certyfikat kwalifikowany może być używany jedynie do składania/weryfikacji podpisu elektronicznego. Ustawa zabrania używania go do innych celów takich jak logowanie, szyfrowanie. Certyfikaty kwalifikowane mogą być używane tylko z "bezpiecznymi aplikacjami" czyli takimi które posiadają oświadczenie producenta o zgodności z wymogami ustawy o podpisie elektronicznym
  • certyfikaty niekwalifikowane nie posiadają ograniczeń pod względem ich użytecznośc
  • certyfikaty niekwalifikowane mogą być przechowywane na komputerze użytkownika lub na urządzeniu kryptograficznym (karta mikroprocesorowa, etoken itp). Użytkownik ma pełna swobodę w wyborze nośnika certyfikatu
  • podpis elektroniczny weryfikowany przy pomocy certyfikatu niekwalifikowanego wywołuje skutki prawne podpisu odręcznego jeśli obie strony zawarły wcześniej umowę. W umowie powinny być zawarte zapisy o wzajemnym uznaniu podpisów weryfikowanych przy pomocy certyfikatów niekwalifikowanych
  • certyfikaty niekwalifikowane mogą wydawać Centra Certyfikacji niekwalifikowane i kwalifikowane
  • skutki prawne -  jeśli obie strony (wymieniające podpisane elektronicznie dokumenty) zawarły wcześniej umowę. W umowie (tak zwanej komunikacyjnej) powinny być zawarte zapisy o wzajemnym uznaniu podpisów weryfikowanych przy pomocy certyfikatów niekwalifikowanych oraz identyfikatory tych certyfikatów np. "nr seryjny"

PEMI jest na tyle “dobre”, że oferuje przedsiębiorcom usługę pod nazwą e-Firma (raczej ją mgliście przedstawia) ale daje certyfiakty min do podpisywania kodu. Wszystko za darmo. Podpis elektroniczny w Polsce wg. PEMI:

    • Centra kwalifikowane:
      - PWPW Sigillum
      - TP Internet Signet (zawieszona działalność)
      - KIR
      - Unizeto Certum
    • Centra niekwalifikowane:
      - Polcert
      - Energocert
      - PCC EuroPKI

Podobne szerokie kompendium wiedzy na temat podpisu jest tu na stronach IPSEC.

Inna sprawa to wykorzystanie certyfiaktów do podpisywania kodu. Microsoft zawiera szereg programów wspierających ten proces – opis code signing jest tu. Ich lista znajduje się tu i można je pobrać ze strony Windows SDK (trzeba je ściągnąć), wsród nich jest signtool do podpisywania kodu certyfikatami. Innym poleceniem jest certmgr. Uwaga – ten polecenia certmgr.exe i inne wykonywać w katalogu z SDK (c:\program files\microsoft SDKs\Windows\v7.0A\bin)! W przeciwnym wypadku pojawi się wersja przystawkowa (msc). Certmgr.exe jest ważna ponieważ pozwala zarządzać CRL – tutaj na MSDN mamy opis. Powyższe programy wchodzą w skład “miękkiej” części Windows Client (klienckiej) - narzędzi do tworzenia oprogramowania. Z kolei z innej bajki jest równie pomocne polecenie certutil. Wchodzi w skład Serwera Windows 200X (a dokładnie jego komponentu tzw. Certificate Services) – a więc jest skierowane dla administratorów. Zarówno certutil jak i certmgr pozwalają na zarządzanie CRL (najbardziej interesujące jest odszyfrowanie formatu CRL i “wydruk” listy odwołanych certyfikatów). Można też samemu “odszyfrować” ten format – jest to ASN.1 (Abstract Syntax Notation 1).

Nierozerwalnie ze sprawami certyfikatów wiąże się karta inteligentna tzw. smartcard. Microsoft wybrał implementację PC/SC – to zresztą standard na komputery PC. Architektura programowa obsługi SC jest opisana tutaj na stronach MSDN.

Podpis można opatrzeć znacznikiem czas z bezpłatnego serwera publicznego - http://time.certum.pl.

Ciekawostka – usługi dodatkowe świadczone przez CERTUM: Notarius oraz sprawdzenie stanu certyfikatu w trybie on-line. Trzeba też sprawdzić ofety KIR, Sigillum i Mobitrust – na komórkę / Mobicert. Zagraniczne rozwiązania mają firmy: Aloha, Eldos a w odniesieniu do PDF – GlobalSign. Firma ta jest partnerem Adobe w projekcie CDS (Certified Document Services) – mówi o tym ten dokument. Jej oferta jest droga i różni się technicznie od naszgo podpisu z CERTUM tym, że głównym urzędem certyfiakcyjnym jest w tym przypadku nie polski urząd a sama firma ADOBE (ale za to każe sobie słono płacić). Przypomina się tam też, że PDF nie jest zamkniętym formatem -  a standardem ISO 32000-1. Kolejny standard ETSI/ESI Technical Standard (TS) 102 778 (w skrócie PAdES) – stanowi odpowiedź na spełnienie wymogów dyrektywy unijnej - 1999 EU Signature Directive.

Podobnie funkcje podpisywania dokumentów PDF ma biblioteka KIR napisana w języku Java.

piątek, września 23, 2011

Ciekawostki bez zagwozdki

Raport Gartnera – Gmail może zagrażać MS Exchange ale jeszcze mu wiele brakuje. Dzięki Gmail powstaje rynek na pocztę w chmurach (cloud email) – 50% to rozwiązania Google Gmail. Inni gracze dostaw usług poczty korporacyjnej tracą. MS też ma w środowisku .NET bibliotekę graficzną obsługującą wykresy – dokumentacja na MSDN.  Nowa wersja portalu BBC – zawsze stanowi wzór portalu dziennikarskiego. Kto wygrał najwięcej na konferencji BUILD? Chyba cały MS – przekonał niedowiarków, że jest jeszcze wiele do wymyślenia w rozwoju systemów operacyjnych. Ale bohaterem tego show jest Sinofsky – kreuje się chyba nowy tech evangelist podobnie jakim był Steve Jobs – proszę popatrzeć na jego prezentację. WebBrowser niejedno ma imię, jego wersja dla starych technologii COM i nowej platformy .NET.

poniedziałek, września 19, 2011

Kursy za darmo

Aplikacje mobile wg. IBM

W portalu DeveloperWorks firmy IBM znalazłem takie oto “perełki”:

I kto tu rządzi…?

Chodzi o HTML5 i powiązana z nim adaptacje tego standardu w urządzeniach mobilnych. Nikt nie wątpi, że HTML5 oraz urządzenia mobilne są powiązane ściśle z dwiema firmami: Apple (jest aktualnym liderem) i Google (goni za liderem). Obie firmy inaczej postrzegają proces tworzenia aplikacji mobilnych: Apple stawia na aplikacje natywne (kupowane przez sklep), Google na aplikacje  webowe wykonane w HTML5. Mimo to firma Apple stawia mocno na implementację standardu HTML5 w swoich urządzeniach widząc w nim suplement wielu zamkniętych technologii choćby flash-a. Dodatkowo Apple będąc samowystarczalnym w zakresie sprzętu i oprogramowania kładzie nacisk na maksymalne wykorzystanie akceleracji sprzętowej w swym systemie operacyjnym iOS – dzięki temu aplikacje HTML5 działają bardzo szybko. Jest jeszcze jeden fakt o którym się mało mówi dochód ze sprzedaży aplikacji w sklepie internetowym Apple odbija się małym wpływem na zyski firmy (stanowi 1% przychodów). Google chce walczyć z Apple – w związku z tym dziwi tak małe zaangażowanie w optymalizację przeglądarki pod kątem HTML5. Na podstawie materiałów z The Register.

Jak przyśpieszyć aplikacje webowe?

Są na to różne sposoby. Jeden z nich to porzucenie języka JavaScript na rzecz innego, bardziej optymalnego np. Dash/Dart proponowanego przez Google. Drugim rozwiązaniem jest udoskonalenie istniejącego JS w kierunku wykorzystania możliwości współczesnych procesorów wielordzeniowych (a więc równoległe przetwarzanie). Taką opcję zaprezentowała firma Intel swym IDF (Intel Developer Forum) – wg. the register. Takie stanowisko popiera CTO firmy Mozilla i twórca JS - Brendan Eich. Trzecią drogą jest przetwarzanie natywnego kodu – tzw. native client firmy Google (the register). Na razie jest ono dostępne dla przeglądarki Chrome i polega na uruchomieniu kodu C/C++ w przeglądarce internetowej (tak między nami G jest niszczycielem standardów – wprowadza w nowych wersjach przeglądarki Chrom ciągle nowe API np. ostatnio Web Audio API i nikogo o to nie pyta, postępuje podobnie jak kiedyś Microsoft). Jest to b. destruktywna polityka – miast koncentrować się nad tym co mamy czyli udoskonaleniem JS i istniejących standardów. W chwili obecnej NaCl działa na x86 32 i 64 bitowych w przyszłości będzie portowany do LLVM (tzw. low-level VM) gdzie kod bajtowy będzie przepisywany do kodu binarnego.

Ciekawe aplikacje na mój Defy

Lista ciekawych aplikacji na telefony z Androidem: edycja zdjęć tą mini aplikacją - https://market.android.com/details?id=com.adobe.psmobile, materiały z konferencji TED - https://market.android.com/details?id=com.ogqcorp.tpa&hl=en, zarządca plików - https://market.android.com/details?id=com.metago.astro&hl=en, zabójca procesów - https://market.android.com/details?id=com.rechild.advancedtaskkiller&hl=en, EverNote - https://market.android.com/details?id=com.evernote&hl=en

piątek, września 16, 2011

Różności

Wg. infoworld Google chce wprowadzić do przeglądarek nowy język programowania Dash  zamiast JavaScript. Więcej szczegółów na konferencji za miesiąc w Arhus - GOTO Aarhaus 2011 conference next month. Inna wiadomość: Intel próbując wysadzić z siodła procesory ARM w urządzeniach mobilnych zaczyna się dogadywać z Google na temat przeniesienia Androida na procesory I86 – ATOM. Wersja 2.2. Froyo jest przniesiona – trwają prace nad kolejnymi wersjami. Mankamentem procesorów ATOM jest ich nadmierne zużycie energii. Czy współpraca z Google oznacza próby zbudowania urządzeń mobilnych przez firmę Intel? Wzrost popularności HTML5 powoduje zwiększenie aplikacji internetowych na urządzenia mobilne a to z kolei wywołuje spadek dochodów ze sprzedaży natywnych aplikacji ze sklepów i może odbić się na przychodach takich firm jak Apple i Google (w mniejszym stopniu). Aplikacje internetowe zbudowane na HTML5 są popularne ponieważ nie trzeba ich dostosowywać do systemów operacyjnych jak to ma miejsce w przypadku kodu natywnego. Te aplikacje webowe pozwolą zlikwidować przewagę (first mover advantage) Apple i Google w postaci wielu aplikacji dostępnych w ich sklepach i ułatwią wejście MS ze swoimi aplikacjami – na podstawie materiałów z infoworld.

Świetny kurs aplikacji webowych na bazie WebMatrix na Channel9. Edycja SVG - http://code.google.com/p/svg-edit/ tutaj jest samouczek.

Wizualne tworzenie aplikacji mobilnych, może PhoneGap to jest to. Lub stosuj wynalazek od Google – Google App Inventor. Ciekawe aplikacje narzędziowe na Androida – z computerworld

Oto twórca UBUNTU i Thawte – Mark Shuttleworth ma swój blog

Różności o JS

Biblioteka emulująca LINQ w JS lub inna na codeplex. Strumienie (streams) w JS, czy mogą się kiedyś przydac?. Kryptografia w JS (tamże jest wiele linków do innych podobnych projektów tak, że kiedy będzie trzeba można coś wybrać):

Biblioteka knockout. Blog o JS - http://lambda-the-ultimate.org/node/4308#comment-66267. Czasami trzeba coś posprawdzać w skryptach i pobawić się debuggerem:

Na czym tak naprawdę polega sprawa web-workera w HTML5 – wg. microsoft. Tak na pograniczu trochę o JS i HTML a trochę o C# – czyli devcurry

środa, września 14, 2011

O MS i jego technologiach

Kolejne narzędzie do monitorowania wymiany danych w aplikacjach internetowych – httpwatch. Niestety wersja basic jest darmowa, inne są płatne – ok. 400 dolarów. Podobny efekt dostaniemy stosując FireBuga w Firefoxie lub inny monitor np. Fiddler lub DynaTrace (szczególne do testowania AJAX). Można też skutecznie wykorzystać wbudowany w IE8/9 debugger (F12). Czym się różni cURL do przegladarki? Przegladarka wczytuje stronę i wszystkie odnośniki do jej zasobów (style, js, linki) i następnie je “wykonuje” na tej stronie, cURL czyta tylko to co jest pod adresem, który mu wskażemy i nie zagłębia się dalej. Najlepsze narzędzie do darmowego dzielenia partycji GPARTED.

Porady MS z MSDN na temat oprogramowania OneNote w środowisku VBA w Excelu.

Jak tworzyć aplikacje mobilne? Można pójść w kierunku modelu natywnego tzn. tworząc kod natywny (binarny) pod dany system operacyjny (Apple iOS, Google Android, Symbian, HP WebOS czy MS Windows Phone 7/Windows 8 Mango) ale to prowadzi do zróżnicowania/fragmentacji bazy kodowej (pod każdy OS inny kod). Inna droga to tworzenie aplikacji serwerowej i ściąganie jej na urządzenie mobilne (w tym przypadku kod serwerowy jest dowolny, może to być PHP/Python/Ruby/.NET/J2EE/EXT-GWT pod warunkiem, że strumień posyłany do urządzenia zawiera HTML5 i JS – a właściwie HTML/JS/CSS). Ten ostatni sposób jest uniwersalny – działa na każdym urządzeniu, ale ma wadę jest mniej efektywny od kodu natywnego i wymaga framweworka do tworzenia aplikacji mobilnych. Takich frameworków jest wiele choćby DHTMLX Touch (mamy), jQuery Mobile, Sencha Touch, czy framwork firmy Nitobi itd. Czyli druga droga jest lepsza od kodu natywnego ale i taki wymaga rozdwojenia (sforkowania) kodu aplikacji na urządzenia mobilne i stacjonarne. Istnieje jeszcze inne rozwiązanie - generatory aplikacji do tworzenia kodu natywnego. Pisze się w Javie a potem generuje kod natywny dla danej platformy - tak działa bezpłatne oprogramowanie Appcelerator (kupił on ostatnio firmę Aptana znaną z narzędzi typu RAD bazujących na Eclipsie i przeznaczonych dla JS/PHP/Ruby/HTML) lub rozwiązanie firmy XAMARIN - Mono Android/Mono Touch (tam się pisze w #C z .NET), są też rozwiązania komercyjne lub ciekawostka App Inventor firmy Google. Ważną sprawą jest WYDAJNOŚĆ – kod aplikacji mobilnych nie powinien być zbyt skomplikowany (rozdmuchany graficznie i złożony logicznie) ponieważ te urządzenia mimo wszystko są wolne (patrz jak długo ładują się np. popularne portale społecznościowe twitter czy facebook). Tutaj nasze aplikacje mogą się zachowywać gorzej niż na starych PC-tach z Windows XP i IE 6/7 na pokładzie. W większości przypadków w tych urządzeniach stosuje się procesory architektury ARM firmy Qualcomm – najpopularniejsza rodzina CPU to SnapDragon

Rady praktyczne przy tworzeniu aplikacji mobilnych: a) stosowanie szablonów stron – projekt boilerplate, c) przeczytanie porad na webhosting, c) zapoznanie się z artykułem Hanselmana o CSS3 media queries

Znalezione na webhostingu.pl. Wychodząc naprzeciw programistom w JS powstaje nowy framework JS czyli biblioteka funkcji JS – Kendo UI – na bazie dobrze znanego jQuery (jak często nazywa się ją “zabójca” Flasha na ten temat jest świetny artykuł w witrynie appendto). Na razie jest ona dostępna na licencji GPL3 (niekomercyjnej). Wsparcie komercyjne będzie później jak również i wersja MOBILE (listopad) – ich plany (roadmap) są tu. Tu i ówdzie  pojawia się firma Telerik (co to może znaczyć?). Uwaga: To jest wersja BETA!. Czy KENOD UI to po prostu  jakiś tam zamiennik jQuery UI i wtyczek zintegrowanych w jedną całość? Czyli Kendo UI to wszystko graficzne poza bazowy framework jQuery. Co jeszcze wyróżnia Kendo UI – zintegrowane pojęcie DataSource oraz Templates (Szablonów), w jQuery to jest jeszcze w powijakach. Kendo UI integruje się też z zewnętrznymi bibliotekami KNOCKOUT oraz JQ template.

Proszę popatrzeć – wszędzie przewija się biblioteka jQuery! Jest specjalny dodatek do VS 2010 z intellisense dla JQuery do ściągnięcia tu. Prezentacje są na blogu - http://frontenddesignconference.com/presentations/jquery_nuts_bolts_and_bling

Co daje HTML5: a) nowe elementy semantyczne strony (header, footer, article), b) nowe elementy formularza (gui i walidacje po stronie klienta), c) wsparcie natywne dla mediów (video i audio), d) kanwa (rysowanie 2D na płótnie) e) obsługę gniazdek sieciowych (web socket), f) wsparcie aplikacji offline (lokalne baza danych), g) pamięć lokalne zamiast ciasteczek h) praca asynchroniczna (web workers) i) geo lokacja. Należy pamiętać, że wsparcie CSS3 to nie HTML5.

Co zrobić jak się nie ma pełnego pakietu MS Office? Spróbuj Office Web Apps (Word, Excel, PowerPoint and OneNote pracujące w przeglądarce). Jeden warunek – konto w MS Live. Ale dzięki niemu dostajesz dodatkowo 25 GB pamięci w chmurach za darmo.

Zrzucił jarzmo – kto? Google. Jakie? Znaczek “wiecznej” bety czyli “Preview” na stronie głównej GAE. Czym się różni Google App Engine od MS Azure? Teraz niczym, obaj są usługami płatnymi. Ostatnio GAE ma zdjęty napis “Preview” więc to już produkt komercyjny, ma podwyższone opłaty co trochę podwyższyło ciśnienie niektórym deweloperom. Ale jest jena subtelna różnica – MS Azure pozwala tworzyć chmury prywatne lub hybrydowe (obok publicznych). Taka mania skrywania swej własnej infrastruktury serwerowej może Google nie wyjść za dobrze. W MS wiadomo, kupuje się MS Windows Server 2008 + inne dodatki (rozwiązania serwerowe jak SharePoint + Office Web Apps) i ma się u siebie chmurę do własnej dyspozycji z pełna kontrolą dostępu. Pod tym względem rywalami dla MS są Dell i VMware. MS ma też partnera Futjitsu.

Cięcia kosztów czy co? Podobnie jak Google obciął wiele peryferyjnych projektów programistycznych w swym Google Labs tak i MS oświadczył, że pragnie skończyć życie OLE DB (dokładnie chodzi o OLE DB dla MS SQL Serwera 2011 – Denali). Dostawcy OLE DB dla innych baz (np. Oracle) są nietknięci. OLE DB ma w swej nazwie OLE, a to już wymarła technologia (skończyła się wraz z Windows XP) bazująca na API z COM+. Co w zamian? Stare, dobre, portowalne na inne platformy API dla ODBC. A ODBC jest okrzepłym, ogólnie przyjętym standardem ANSI. Zbiega to się z innym wydarzeniem – MS stawia na dobre, szybkie aplikacje w C++ i zachęca programistów do korzystania z tego języka. Ale to może zbieg okoliczności. A oto lista wszystkich kandydatów na nieboszczyków, czyli produktów, których wsparcie się niebawem może zakończyć. Powyższa akcja w nowomowie MS (i nie tylko) nazywa się równaniem do szeregu – alignment. Uwagi techniczne: podczas podłączenie poprzez OLE DB następuje uruchomienie całej “maszynerii” uniwersalnej biblioteki COM do  obsługi dowolnego źródła danych, inicjacja ODBC odbywa się poprzez “skok” do DLL pełniącej funkcję zarządcy ODBC – ODBC32.dll , która jest odpowiedzialna za wywołanie odpowiedniego sterownika (też DLL) do obsługi danej bazy. Jest to krótsze i wydajniejsze. Podobny mechanizm działa w przypadku JDBC – do połączenia wystarczy pojedynczy plik JAR bez dodatkowego narzutu warstwy zarządzającej. Jest to dobre bo szybie i wydajne ale stwarza też kłopoty. W przypadku OLE można było zarządzać pulą połączeń. W przypadku ODBC / JDBC ktoś musi tym również zarządzać. Kto? Nie wiadomo. Na stronie jest dokument opisujący w sposób techniczny różnice działania.

Wychodząc naprzeciw programistom MS udostępnił SSDT – SQL Server Development Tools – narzędzie ułatwiające pracę z bazami danych (oczywiście MS-owymi). Jest tutaj wzmianka o LocalDB – następcy MS SQL Server Express. Utworzenie bazy to polecenie:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn>SqlLocalDB.exe create LocalDBDemo

Podpięcie się do niej:

(localdb)\LocalDBDemo

Więcej na temat localDB - go.microsoft.com/fwlink/?LinkId=221201 – wchodzi ona w skład MS SQL Server o nazwie Denali i określa się jako - SQL Server Express LocalDB

Wszystkie przeglądarki są nasze, żadnej nie zaniedbamy. Pod tym hasłem ewangeliści MS zachęcają do stosowania HTML 5 nawet na “przestarzałych” wersjach przeglądarek (patrz ich własnych wersji IE 6/7/8). Rada – sprawdzić z jaką przeglądarką ma się do czynienia i nie wierzyć zawartości UA (User-Agent). Podobny artykuł na ten temat jest tutaj.

Jak wywoływać PInvoke? Tak - tu.

Wielkie nieba! Herezja do potęgi! Instalowanie node.js na IIS! Hanselman jest dobry.

Warto zbadać:

  1. Gry w JS/HTML5 - http://click.email.microsoftemail.com/?qs=693c747dc51c5c434d275ff0731f519cc21d9ee61b4229fe1f285b759770ff6ba9e9f2acf249abc9
  2. HTML5 Gaming: Animating Sprites in Canvas with EaselJS
    When you want to write casual games using the HTML5 Canvas element, you'll need to find a way to handle your sprites. See how to use EaselJS in PiratesLoveDaisies, an HTML5 tower defense game. In this tutorial: how to use your existing sprite elements and animate them.
  3. Channel9::GoingNative[1]
    See demos of the next Visual C++ IDE. Watch an interview of the man behind Microsoft's implementation of the C/C++ Runtime Library CRT. Listen to what people said about the latest C++ and Beyond conference.

wtorek, września 13, 2011

Luźne myśli we wtorek

Czym się różni netbook/laptop od tabletu? Wydaje się, że tylko ciężarem. Jeżeli uda się zmniejszyć wagę i grubość netbooka (a tak jest inicjatywa Intela) to taki netbook jest atrakcyjniejszy od tabletu: większa moc obliczeniowa i lepsza ergonomia pracy. Prawo Moore’a może ulec zmianie:  podwaja się nie moc ale wydajność (efficiency). Już niedługo PHP będzie dystrybuowany z repozytorium GIT – taki jest wynik głosowania ludzi zarządzających rozwojem tego języka. Podobno atak hackerski miał miejsce na serwery dystrybucyjne Linuksa – nic się nie stało, źródła były podpisane przez SHA-1. Co na dają certyfikaty: szyfrowanie, integralność, autentykację oraz niezaprzeczalność. Nowy język HaXE.org – raz piszesz a potem kompilujesz do JS, C#, Java, Flasha czy tez PHP. ING zaleca do bankowości online stosowanie IE 8/9 i zaczyna nabór do projektu aplikacji mobilnych. Panda – firma hiszpańska wydała bezpłatna wersję programu antywirusowego w chmurach. Dla użytkowników Androida – portal Guardian dostarcza treść elektroniczną do tych urządzeń mobilnych. Jeden z ludzi Kasperskiego potwierdził śmierć MD5 – rozłożyły go tablice (rainbow table) np. przechowują hasła do 10 znaków (małe litery) lub 8 znaków (małe/duże, cyfry i spacje) – dzięki temu można przejrzeć wszystkie hasła stosując technikę “brutal force”. Trochę mogą pomóc dwie techniki: wydłużenie hasła i zastosowanie soli (salt) – ale to tylko na krótko, niedługo okaże się, że tablice mogą się powiększyć. Dlatego zaleca się tzw. two-factor authentication (np. hasło i smartcard lub token). Dobrze chociaż, że po aferze z certyfikatami z DigiNorm nie zaprzestano ufać w PKI chociaż Mozilla wystosowała swoiste ultimatum do głównych urzędów certyfikacyjnych (root CA) z prośbą o udowodnienie stosowania przez nie dobrych praktyk.w Jak to będzie z Windows 8 na tabletach i smartfonach? Będzie można uruchamiać istniejące aplikacje windowsowe czy nie? Kogo by nie zapytać to jest inna odpowiedź. Obrażony na MS, że stworzył wersję Windows 8 na ARM, Intel mówi, że NIE. Rywal Intela firma AMD mówi, że trzeba je przekompilować. Microsoft mówi mgliście. Dlatego czekamy na konferencję BUILD – wtedy zobaczymy. Jak się mają języki programowania? Dobrze, oto lista największych zdobywców TIOBE (bierze pod uwagę ilość ofert pracy): Groovy (166% wzrostu), C# (107% od 2009), Cobol (chociaż zajmuje 46 miejsce to odnotowano wzrost, dlaczego? Teraz banki modernizują stare aplikacje w nim napisane), Javascript (91%), Ruby (70%), PHP (67%), Java (51% ale i tak zajmuje I-sze miejsce), Pytho (50%), F# (46%), Perl (26%), C++ (22%), Fortran (6%). Dane o językach na podstawie eWeek. Dużo też mówi się o języku D. Powstaje w Google język DART (obok GO) jego twórcami są Gilad Bracha i Lars Bak – ma zastąpić JS w przeglądarce.

Tematy z zakresu JS

Piękna i bogata biblioteka do JS wraz z (opcjonalnie) wsparciem strony serwerowej (PHP jest bezpłatne) – nitobi. Jak wystartować z JQ? Tutaj jest świetny artykuł na ten temat. Połączenie JQ z JS – tu. Zaawansowane techniki JS – tu. Biblioteka typu MVC – knockout (poszukaj w google “knockout js”). Wzorzec do budowanie stron HTML – boiler plate. Co wybrać EXT-PHP czy PHP-EXT?

poniedziałek, września 12, 2011

Zaburzenia na rynku sprzętu (CPU)

Co się dzieje z mikroprocesorami? Na to pytanie odpowiada arcyciekawy artykuł na łamach “The Register”. Do tej pory w grę wchodziły dwie potęgi Intel i AMD. Odpowiednio do nich dostosowywał się Microsoft pisząc swoje narzędzia pod taką właśnie architekturę I86 w odmianach 32 i 64 bity. I wszystko grało. Nagle pojawiły się dwa zaburzenia:

  • Nvidia tworzy coraz lepsze procesory GPU (linia TEGRA), które potrafią wspomóc CPU w intensywnych obliczeniach zmiennoprzecinkowych (np. łamanie haseł) widzi przyszłość bez Intela i duopol Nvidia/Qualcom
  • powstaje nowa architektura ARM i monopolista Qualcom, który wyposaża w procesory urządzenia mobilne (słynna architektura Snapdragon)

Teraz następuje dywergencja:

  • Nvidia dogaduje się z Qualcom
  • Nvidia integruje CPU z GPU (inaczej od Intela)
  • Intel integruje GPU z CPU (sandbridge)
  • Microsoft tworzy Windows 8, które będzie wspierać architekturę ARM
  • Intel widzi zagrożenie spowodowane niezależnością MS od jego architektury i zaczyna wspierać własne MeeGo

Prawda o Skype

Prawdziwy skarb jaki MS dostał w swoje ręce po zakupie SKYPE jest nie jego funkcje VOIP ale 100 mln prawdziwych (autentycznych) kont sprawdzonych w rozmowach. Ciekawe jako fakt ten zostanie wykorzystany?

Takie sobie nowinki

Gartner przewiduje w swym raporcie, że po okresie spadku zakupów PC ponowny wzrost w drugiej połowie 2012 roku. Twierdzi, że możliwości PC (wygoda, ergonomia, szybkość, pasmo internetowe) w stacjonarnym miejscu nie zastąpią urządzenia przenośne.

Google ma wiele ciekawych miejsc do zwiedzenia:

  • Code Playground: zasoby API dla JS (closure, JSONP oraz funkcje anonimowe) i innych technologii Google (biblioteki JS, wizualizacja danych: wykresy, panele). Przykład pobrania danych z arkusza i ich użycia.
  • API do dokumentów 
  • Uwaga! Jest płatne (399) narzędzie do integracji .NET z Google Docs firmy RSSBUS
  • Oskryptowanie arkusza poprzez ściąganie danych z serwisów webowych i umieszczanie ich w arkuszu Google spreadsheet – ciekawe co mówi EU – dane mają być przechowywane na terenie Unii (ale jakie dane? wszystkie czy te osobowe tylko?). Tutaj przy okazji jest pomysł do zrealizowania – pobieranie kursów walut i prezentowanie ich w arkuszu (doskonała wprawka programistyczne)
  • Zaawansowane techniki JS które musisz znać

Rynek aplikacji do tworzenia mobilnych – jest taka firma Nitobi, która zajmuje się tworzeniem GUI w JS, teraz zainteresowała się RAD-em dla urządzeń mobilnych (PhoneGap). Co z tego wyjdzie? A w jaką stronę zmierza projekt Mono – obecnie pod opieką firmy Xamarin? Ma teraz trzy odnogi: Mono for Android, MonoTouch oraz Mono dla Visual Studio. Są jeszcze dwa inne projekty: .NET for iPhone and .NET for Android. Cena tych RAD jest znaczna – 399 US. Jest jeszcze Google App Inventor.

Najlepsze z najlepszych otwartych projektów:

Kryptografia:

wtorek, września 06, 2011

Kryptografia wymienialna

Prawdziwe wezwanie dla aplikacji posługujących się metodami kryptograficznymi następuje w przypadku gdy zachodzi potrzeba wymienialności danych między różnymi platformami aplikacyjnymi. Jasne są zasady:

  1. Należy przyjąć najmniejszy wspólny podzielnik dla wszystkich platform (bibliotekę zaimplementowaną we wszystkich środowiskach), może to być np. openssl, BC lub Jascrypt (tylko dla Java, nie ma odpowiednika w .NET).
  2. Niektóre biblioteki (BC) można wykorzystać na dwa sposoby, jako rozszerzenie możliwości danej platformy (jak to mam miejsce w przypadku Java JCE) lub potraktować niezależnie jako źródło algorytmów kryptograficznych np. takich, których jeszcze nie ma w implementacji danej platformy np. Blowfish lub bardziej egzotycznych.

Najgorzej się tutaj mają języki skryptowe jak Python lub PHP, tutaj nie ma żadnego standardu biblioteki kryptograficznej i posługuje się zewnętrznymi implementacjami kryptografii. PHP ma dwie biblioteki mcrypt (dobrze udokumentowana z wieloma przykładami) i openssl (źle udokumentowana).

Świetny artykuł na temat uzupełniania danych do pełnego bloku - http://www.di-mgt.com.au/cryptopad.html (po to to i jak działa). Tak w ogóle na serwisie www.di-mgt.com.au jest wiele innych ciekawych artykułów:

  • Praca z alfabetem narodowym – należy pamiętać że kryptografia działa na bajtach a nie znakach oraz MS przyjął kodowanie UTF-8 (dokładnie mówiąc UTF-16LE, zresztą jedynie słuszna decyzja). Konsekwencją tego jest wymóg przekształcenia danych typu String do tablicy bitów (Array of Bytes). Przy okazji wyjaśniło się dlaczego w przypadku podpisu cyfrowego przy pomocy klucza publicznego (digital signature with public key) stosuje się nazwy dwuczłonowe np. SHAwithRSA – jest to bowiem proces dwuetapowy, najpierw jest liczony hash za pomocą algorytmu symetrycznego a potem szyfrowanie kluczem publicznym korzystając.
  • UTF-8 ma wiele wariantów np. UTF-16LE (little endian), UTF-16BE (big endian), jaki to kod w pliku wyznacza jego pierwszy bajt tzw. BOM (byte order mark): UTF-8 ma ‘EFBBBF’, UTF16LE – ‘FFFE’.
  • Należy pamiętać, że wynikowy kod nie przechowywać w polach znakowych ale w binarnych polach blobowych bądź opakować je bezpiecznie przy pomocy base64 (radix64 w PGP) i zapamiętać w polu znakowym (kosztem nieznacznego wydłużenia danych).
  • Podstawowe pojęcie o kluczach w kryptografii 
  • Bardzo dogłębnie wyjaśnienie  kodowania UTF-8. Bazuje ono na UCS – uniwersalnej stronie kodowej. W UTF-8 każdy znak ma zmienną długość, o tym decyduje najstarszy bit w pierwszym bajcie (gdy ma ‘0xxxxxxx’ to oznacza, że jest to “zwykły” znak ASCII, a gdy ‘1’ to oznacza wielobajtowy znak i tak ‘11xxxxxx’ oznacza  że znak zajmuje 2 bajty a ‘111xxxxx’ że trzy bajty). ten pierwszy baj zwany jest też jako bajt wiodący (lead-byte). Reszta bajtów to bajty ogonowe (trail) i mają zawsze sygnaturę ‘10xxxxxx’ .
  • Skrośna platforma kryptograficzna – polega na wykorzystaniu symetrycznego kodowanie blokowego (symmetric block cipher) i korzysta się z jednego z zalecanych algorytmów DES, Blowfish lub EAS. One z kolei mają tryby pracy (ECB, CBC,…). Jedynie ECB nie wymaga wektora inicjującego (szyfruje jedynie w obrębie pojedynczego bloku)

Linki - http://www.di-mgt.com.au/crypto.html#links

Cryptography FAQ
Ten parts of the sci.crypt FAQ. Read these before you ask any questions.

Bruce Schneier's page
By the author of Applied Crytography: Protocols, Algorithms and Source Code in C, John Wiley, 1996, and the Blowfish Encryption Algorithm. Lots of info, papers, newsletters, a very comprehensive links page, and variants of the Blowfish source code.

Peter Gutmann's page
Up-to-date information on cryptography and PKI matters from a leading expert in the field with a good sense of humour. Check out his DumpASN1 C program to read BER-encoded ASN.1 files, his style guide to writing X.509 certificates, and his rant on the M*soft inspired PFX/PKCS-12 standard.

Neal R. Wagner
The Laws of Cryptography: a series of well-explained and informative pages on cryptography and coding and information theory by Neal Wagner, a professor at University of Texas at San Antonio. Includes a lot of Java code.

Snake Oil Warning Signs
Avoiding bogus encryption products: Snake Oil FAQ. "Encryption Software to Avoid" by Matt Curtin.

The Six Dumbest Ideas in Computer Security
Marcus Ranum's introduction to the six dumbest ideas in computer security.

Ross Anderson
An excellent and well-written site on cryptography issues by the Reader in Security Engineering at the University Of Cambridge. Check out his book Security Engineering: A Guide to Building Dependable Distributed Systems. The entire first edition (2001) and some chapters from the second edition (2008) are now available on his site. One of the interesting facts from the second edition is that the most commonly-used password has changed in recent years from password to password1.

Digital Timestamping Service
Matthew Richardson's PGP Digital Timestamping Service will timestamp an email sent to it so you can prove your document existed at a given time. Includes a proof of posting service. Operates in clear, header, text, pgp and binary modes. Dates are old, but it still works.

RSA Lab's Public Key Cryptography Standards
RSA Labs specifications on public key cryptography (the PKCS standards) and other useful stuff.

SUNET crypto archive
A downloadable index of cryptography tools on the SUNET archive, especially for privacy of electronic mail.

Worst hotel in the world