czwartek, czerwca 25, 2009

O programowaniu

Programowanie daje poczucie potęgi siły. Nie ważne jaki jesteś, chudy czy gruby, silny czy słaby, masz do dyspozycji narzędzie do odtwarzania własnych wizji. Daje satysfakcję nad zapanowaniem nad nieograniczonym niczym wirtualnym światem w którym sami stwarzamy obiekty i sterujemy nimi a one nas słuchają. Niejako bawimy się w roli Stwórcy bytów, jesteśmy w pewnym sensie nieograniczeni fizycznymi limitami, a naszym adwersarzem (Szatanem, Lucyfer) jest język programowani, który nie zawsze nas “słucha” i płata nam psikusy. Walka z nim i odniesione zwycięstwa nad wrogiem powodują że nasza satysfakcja z tworzenia potęguje się.

Dodatkowa satysfakcja bierze się z tego powodu, że możemy coś wymyśleć oryginalnego (coś co jest wyłącznie naszą własnością, jesteśmy w tym niczym nie skrępowani), wyrazić swoje myśli i je zmaterializować w postaci programu, którym się możemy pochwalić i który każdy może zobaczyć. Możliwość “wyżycia” się bez żadnych więzów i skrępowania dogmatami, tzw. zdrowym rozsądkiem to wielka sprawa. Bardzo wciąga!

Przemyślenia o tworzeniu aplikacji w Internecie

Samemu się nic nie wymyśli, trzeba korzystać z prac innych np. bibliotek (wolno stających jak CoolTree, dhtmlx, Paint, O3D (inicjatywa Google), raphael, canvas, walidatorów (mathew valid, walidacja oparta o atrybuty w HTML, Code Contract ), rusztowań (mint Ajax, Tibco, Nitobi, Ext Js, Advanced Ajax, Yahoo, jQuery). Do badania kodu służą wtyczki w FF (Web developer, Firebug), w IE (F12). Do badanie jakości i wydajności aplikacji służą: YSlow, Speed Page (Google), FireBug, Selenium (testy). Aplikacje można zintegrować z portalami np. Google API lub Zoho.

Do przeszukiwania i zapamiętywania stron służy Scrapbook, Xmarks, Google Reader, Notes, Google Bookmark, Opera sync.

Obraz “oczytanego” w Web 2.0 użytkownika, musi on mieć:

  1. Konto na portalach spoęcznościowych Facebook, MySpace, LinkedIn, GoldenLine, Twitter i czynnie się udzielać
  2. Dostęp do plików na Mozy lub DropBox lub MS SkyDrive,
  3. Nawyk czytania i publikowania blogów na MS Space lub Google

Ponadto musi:

  1. Publikować linki na technorati, delicious, digg,
  2. Czytać fora: daniweb,  dotnetkicks
  3. Uczyc się na MS Ramp, MS Learn
  4. Przeglądać dokumentację na scribd, snipd, slideshare

Tylko kiedy ma mieć na to czas?

Przemyślenia o tworzeniu aplikacji w Internecie

Samemu się nic nie wymyśli, trzeba korzystać z prac innych np. bibliotek (wolno stających jak CoolTree, dhtmlx, Paint, O3D (inicjatywa Google), raphael, canvas, walidatorów (mathew valid, walidacja oparta o atrybuty w HTML, Code Contract ), rusztowań (mint Ajax, Tibco, Nitobi, Ext Js, Advanced Ajax, Yahoo, jQuery). Do badania kodu służą wtyczki w FF (Web developer, Firebug), w IE (F12). Do badanie jakości i wydajności aplikacji służą: YSlow, Speed Page (Google), FireBug, Selenium (testy). Aplikacje można zintegrować z portalami np. Google API lub Zoho.

Do przeszukiwania i zapamiętywania stron służy Scrapbook, Xmarks, Google Reader, Notes, Google Bookmark, Opera sync.

wtorek, czerwca 23, 2009

HTTPS i nie tylko …

Opis protokołu HTTPS. Jest to kombinacja protokołu HTTP (operującego na najwyższej warstwie modelu TCP/IP – warstwie aplikacyjnej) oraz protokołu kryptograficznego. Standardowo zajmuje port 443. Wymyślił go Netscape, pierwotnie z SSL-em, później TLS (Transport Layer Security). Stał sie standardem w 2000 jako RFC 2818. Zapewnia ochronę przed “podsłuchiwaniem” (eavesdropping) oraz atakiem typu mim (man in the middle). Serwer musi być do tego protokołu przygotowany poprzez wygenerowanie certyfikatu publicznego podpisnego przez zaufany organ (Thawte lub Verisign). Przeglądarka ma aktualną listę certyfikatów głównych urzędów (tych co podpisują certyfikaty serwerów).  W różnych przeglądarkach istnieje sposób na dodanie certyfikatów od zaufanych serwerów. Certyfikat serwera jest ważny dopóki sie nie skończy lub nie zostanie unieważniony (znajdzie się na liście CRL), Nowe przeglądarki implementują protokół sprawdzania statusu certyfikatu on-line tzw. OCSP. Od niedawna SSL ma swoje rozszerzenia – tzw. extension (RFC 3546).

W IE 7/8 istnieją implementacje SSLv.1/2/3 zaś TLS jest w wersji TLSv1. Do badania transmisji służy narzędzie Fiddler - https://www.fiddlertool.com/

IE8 ma swój blog - http://blogs.msdn.com/ie/archive/2009/03/24/what-s-new-in-jscript-for-ie8.aspx

Istota wycieku pamięci w IE - http://msdn.microsoft.com/en-us/library/bb250448(printer).aspx. Narzędzia do badania wycieku - http://blogs.msdn.com/ie/archive/2007/11/29/tools-for-detecting-memory-leaks.aspx.  Typowe wycieki  i sposoby ich obejścia - http://outofhanwell.com/ieleak/index.php?title=Fixing_Leaks. Artykuł techniczny z CodeProject - http://www.codeproject.com/KB/scripting/leakpatterns.aspx.

Ciekawe:

  1. http://blog.wioota.com/2007/01/21/javascript-the-quickening/
  2. http://ejohn.org/blog/native-json-support-is-required/
  3. ESET – program antywirusowy - http://www.securitystandard.pl/news/346591/ESET.bezplatny.skaner.online.html
  4. Co nowego w IE - http://blogs.msdn.com/jscript/
  5. John R uważa, że natywna obsluga JSON-a jest dla każdej przeglądarki sprawą priorytetową tu. Obecnie są dwie implementacje: autora JSON-a i JSONP.
  6. http://ajaxian.com/archives/javascript-associative-arrays-considered-harmful
  7. http://erik.eae.net/archives/2005/06/06/22.13.54/
  8. Pakowanie skryptów JS - http://crisp.tweakblogs.net/blog/1665/a-new-javascript-minifier-jsmin+.html
  9. Wszystko o JS w MS - http://blogs.msdn.com/jscript/
  10. Ciekawe skrypty - http://stackoverflow.com/ – ze wszystkich języków
  11. Biblioteka skrośna dla wszystkich przeglądarek - http://cross-browser.com/talk/entities.php
  12. Nitobi – ma kontrolki do wykorzystania - http://www.nitobi.com/download/
  13. http://code.google.com/p/completeui/ – enterprise – grade components
  14. http://www.googlelabs.com/
  15. Książka “Pro javaScript” - http://books.google.com/books?id=GgJN2CC_2s4C&printsec=frontcover&dq=Pro+Javascript&ei=1k8_SvmoGIzqzATZmZHIAw&hl=pl
  16. Porady dla JS - http://net.tutsplus.com/tutorials/javascript-ajax/24-javascript-best-practices-for-beginners/
  17. Ściągnij cały swój Google Docs - http://code.google.com/p/gdocbackup/
  18. Badanie zajętości pamięci - http://dotnetperls.com/chrome-memory

poniedziałek, czerwca 22, 2009

Java i nie tylko

  1. “Enabling JWS…” - http://www.netbeans.org/kb/docs/java/javase-jws.html?intcmp=925655#configure
  2. “Deploying Applet …” - http://blogs.sun.com/thejavatutorials/entry/deploying_an_applet_in_under
  3. “Deployment 101…” - http://blogs.sun.com/thejavatutorials/entry/deployment_toolkit_101
  4. ‘Running JWS application…” - http://java.sun.com/docs/books/tutorial/deployment/webstart/running.html
  5. ‘Integrating applet in a web appliction” - http://www.netbeans.org/kb/61/web/applets.html#embed
  6. “Java SE Security” - http://www.netbeans.org/kb/61/web/applets.html#embed
  7. “Java Tools and Utilities” - http://java.sun.com/javase/6/docs/technotes/tools/index.html#security
  8. “X.509 Certificates and CRL…” - http://java.sun.com/javase/6/docs/technotes/guides/security/cert3.html
  9. “Setting upthe web sites” - http://java.sun.com/javase/6/docs/technotes/guides/javaws/developersguide/setup.html
  10. PDF Tools - http://blog.didierstevens.com/programs/pdf-tools/
  11. Nowa biblioteka krypto w Javie - http://jasypt.org/cli.html
  12. Forum Sun-a o kryptografii - http://forums.sun.com/thread.jspa?threadID=5389207&tstart=15
  13. BC - http://groups.google.com/group/fm.announce/browse_thread/thread/d4d56638224cc05f/edda26a77a2d22c7?hl=pl&q=java+cryptography#edda26a77a2d22c7

Wszystko o MS i nie tylko

  1. Serwis RAMP UP - http://msdn.microsoft.com/en-us/rampup/default.aspx
  2. MS SDL 4.1 – początek dokumentacji - http://msdn.microsoft.com/en-us/library/cc307748.aspx. Lista “zabronionych” funkcji w C - http://msdn.microsoft.com/en-us/library/bb288454.aspx
  3. Łączenie dwóch światów – JAVA z .NET - http://www.jnbridge.com/?utm_source=msdn&utm_medium=email&utm_campaign=msdn0906
  4. Narzędzia freelancera - http://blogs.techrepublic.com.com/career/?p=888&tag=nl.e101
  5. Tutaj Saleforce.com udostępnia swoje zasoby do przetestowania - http://www.salesforce.com/platform/sites
  6. Łącze do wystąpienia Crockford’a - http://video.yahoo.com/watch/630959/2974197 – functions as data
  7. Linux ma nową stronę - http://www.linux.com/
  8. CodeProject - http://www.codeproject.com/KB/WPF/SearchMenuTextBox.aspx

Microsoft bezpieczny?

“Pigs fly?” nieprawdopodobne, ale MS uzyskuje coraz lepsze notowania u znawców bezpieczeństwa.  Za sprawą wdrożenia procesu wytwórczego Security Development Lifecycle (SDL). “Complexity is enemy of scurity”. Ciekawa książka “Writing Secure Code”, mam ją po polsku. Bezpieczeństwo łatwiej zapewnić gdy koduje jeden człowiek (PGP), podobny przykład Adobe Acrobat – wraz z pojawieniem się poszerzonej funkcjonalności i większej popularności pojwaiły się błędy. Z drugiej strony przywiązywanie zbyt dużej wagi do bezpieczeństwa nie poparte o solidne podstawy teoretyczne i warsztat narzędziowy spowoduje, opóźnienie oddania produktu i oddanie inicjatywy w ręce konkurencji. Z kolei produkty uważane za super bezpieczne np. qmail nie znalazły powszechnego zastosowania  z uwagi na skromną funkcjonalność. W oprogramowaniu czasami warto poblefować – ludzie chętnie płacą za funkcjonalność bo ją widać a rzadziej chcą płacić za wbudowane bezpieczeństwo.

Z innej beczki – nowe przeglądarki muszą się liczyć ze standardami w tym z nadchodzącym HTML 5 - http://news.cnet.com/8301-17939_109-10266230-2.html?tag=nl.e776

Google DOCS – można pobrać przy pomocy skryptu: http://lifehacker.com/5296814/grab-all-your-google-docs-with-a-python-script

Edytor TED –mały i szybki - http://jsimlo.sk/notepad/features.php

Google Book – to działa - http://books.google.com/books?id=GgJN2CC_2s4C&printsec=frontcover&dq=Pro+Javascript&ei=1k8_SvmoGIzqzATZmZHIAw&hl=pl

Nowinki w świecie przegladarek internetowych:

  • Opera – nowa wersja 10 jest bardzo szybka (mimo, że to beta) i jest wyposażona w możliwości  serwera mechanizm UNITE. M.in. współdzielenie plików, muzyki, czat, karteczki oraz serwer internetowy. Jest to wersja beta, co z tego wyjdzie zobaczymy.
  • Mozilla postępuje podobnie – udostępnia JetPack - https://jetpack.mozillalabs.com/

Jak podejmować decyzje?  – byle nie za szybko – taka jest rada artykułu.  Lepiej trochę poczekać i przygotować sobie plan rozwiązania w trzech krokach (powtarzanych iteracyjnie):

  • obserwacja – zbieraj dane i szukaj jakichś powielarnych wzorców i zdarzeń,
  • interpretacja – badaj to co widzisz i słyszysz, spróbuj wymyśleć hipotezy na temat co się właściwie dzieje,
  • interwencja – działanie skierowane w celu wypróbowania kolejnych hipotez