piątek, kwietnia 22, 2011

Co nowego

czwartek, kwietnia 21, 2011

Ciekawostki

  1. Materiały o CR z SAP są dostępne ale po zalogowaniu się do portalu – muszę mieć konto i przydałyby się szkolenia dla programistów
  2. Trwa konferencja MIX 11 – tam  jest mowa o IE 10 Preview (już)
  3. PC World – Wydarzenia, które kształtowały INTERNET

Nowinki

środa, kwietnia 20, 2011

Ciekawostki

  1. https://www.amazon.com/ap/signin?ie=UTF8&pf_rd_r=0YZBH202FSBYVV56QQ6C&pf_rd_m=ATVPDKIKX0DER&pf_rd_t=6301&pf_rd_i=usflex&pf_rd_p=1277563402&pf_rd_s=signin-slot
  2. http://webhosting.pl/Frameworki.JavaScript.przeglad.najlepszych.zestawow.do.tworzenia.aplikacji.WWW.i.porady.kiedy.je.stosowac
  3. Inny cURL - http://curl.haxx.se/libcurl/php/examples/callbacks.html
  4. http://www.higherpass.com/php/Tutorials/Using-Curl-To-Query-Remote-Servers/ – CURL_RETURNTRANSFER = 0 – wrzuca do przeglądarki, autentykacja - http://www.higherpass.com/php/Tutorials/Using-Curl-To-Query-Remote-Servers/5/, z XML - http://www.higherpass.com/php/Tutorials/Retrieving-Xml-With-Curl-And-Simplexml/2/, http://curl.haxx.se/libcurl/php/examples/callbacks.html
  5. Wyszukiwarki:
    1. http://blekko.com/ws/xml+/java
    2. http://duckduckgo.com/
  6. Tutorial dla PHP - http://www.phpfreaks.com/tutorials
  7. Wywiad z przedstawicielem MS, natywność oznacza wykorzystanie możliwości systemu operacyjnego, w tym sensie Windosw 7 (jump list itd). Co wybrać - do aplikacji biznesowych sugeruje SL (będzie nowa wersja LightSwitch cała w SL) - http://webhosting.pl/Co.oznacza.natywnosc.w.wypadku.IE10.Rozmawiamy.z.Arturem.Zarskim.z.polskiego.oddzialu.Microsoftu. Tam odnośnik do oficjalnego stanowiska firmy -  http://team.silverlight.net/announcement/standards-based-web-plug-ins-and-silverlight/.
  8. Narzędzia do wspomagania firmy - http://webhosting.pl/10.aplikacji.SaaS.dla.nowoczesnej.firmy.czyli.jak.skompletowac.narzedzia.za.mniej.niz.300.zl. Tu zasługuje na wzmiankę pakiet do projektów - www.isido.pl
  9. FireBug i jego potomkowie - http://getfirebug.com/wiki/index.php/Firebug_Extensions#Chromebug
  10. Przegląd frameworków w JS - http://webhosting.pl/Frameworki.JavaScript.przeglad.najlepszych.zestawow.do.tworzenia.aplikacji.WWW.i.porady.kiedy.je.stosowac - duże projekty wymagaja stanowczo wykorzystania YUI (EXT JS)
  11. Pułapki CSS - http://www.slideshare.net/stubbornella/our-best-practices-are-killing-us
  12. Biblioteka niwelująca różnice m. przeglądarkami w zakresie zapamiętywania danych po stronie klienta - https://github.com/StevenBlack/store.js/tree/
  13. Wykorzystanie narzędzi open-source rosnie - http://www.infoworld.com/d/application-development/open-source-programming-tools-the-rise-740?page=0,4
  14. Lista baz NoSQL - http://nosql-database.org/
  15. Najlepsze narzędzia do Pythona - http://www.infoworld.com/d/developer-world/infoworld-review-nine-fine-python-development-tools-374?page=0,5&source=rs
  16. Pomysły - Kawasaki o oczarowaniu, DynaTrace i IE6/7/8- to są realia w KW, program do udawania miejsca, Rodek towrzy pismo, my go ekportujemy do PDF (zapisuje w bazie) i wysyłamy do AS-a, on je podpisuje

czwartek, kwietnia 14, 2011

E-faktura, stan prawny

Rzeczpospolita - Są zgłoszone dwa projekty ustaw dotyczących e-podpisów:

  • poselska (zrównanie podpisu osobistego w dowodzie z odręcznym),
  • rządowy (ograniczającym działanie podpisu osobistego do kontaktów z e-administracją). Poza tą różnicą mają wspólne punkty, wprowadzają zaawansowany podpis elektroniczny (nie wymaga karty czy czytnika) oraz pojęcie pieczęci elektronicznej powiązanej z podmiotem.

Obecnie z e-podpisu korzysta 300 tyś osób.

Tamże z dnia 10.01.2011 - aby przesyłać e-faktury, ale pliki muszą spełniać określone warunki. Informacje o zmianach w VAT na 2011 są opublikowane w broszurze przez Min Fin. Od 1 stycznia ulega uproszczeniu wysyłanie faktur online (zgodnie z rozporządzeniem z 17.12.2010 - DzU z 2010 r. nr 249, poz 1661 w odpowiedzi na nową dyrektywę Rady 2010/45/UE z 13 lipca 2010). Faktura może być wysłana w dowolnym formacie elektronicznym ale z obwarowaniem zapewnienia autentyczności pochodzenia i integralności treści. Ale nie ma mowy o minimalnych warunkach technicznych jakie muszą być spełnione.

Trochę więcej na temat dyrektywy
Pozwala ona na zastosowanie, obok EDI i bezpiecznego podpisu stosować dowolnej technologii która zapewni:

  • autentyczności pochodzenia,
  • integralności treści (integralność treści oznacza niezmienność obowiązkowych elementów faktury, można dodać lub zmienić dane nieobowiązkowe takie jak znaczniki lub komentarze lub zmienić format faktury - ale z tym należy postępować ostrożnie gdyż można liczyć się na różne interpretacje - sumarycznie lepiej fakturę podpisać i zapieczętować i nic w niej nie ruszać) oraz,
  • czytelność

Obowiązek wprowadzenia do końca roku 2012.

poniedziałek, kwietnia 11, 2011

Obsługa HTTP/HTTPS w PHP

Traktowanie serwera PHP w nietypowy sposób do obsługi komunikacji z innym serwerem. Jak to zrobić? Od razu nasuwają się następujące rozwiązania:

  1. skorzystanie z cURL - dokumentacja
  2. wykorzystanie wrappera do HTTP – świetny blog - http://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl/ – tam sie dowiedziałem, że dopiero ustawienie ‘ignore_errors’ pozwala na dostanie się do ładunku zwróconego w przypadku błędów po drugiej stronie. Przy okazji można wykorzystać tu http://pl.php.net/http_build_query
  3. zaprzęgnięcie do tego usług webowych –WSO2

Pracowita niedziela

Ciekawostki z życia:

  1. Coś dla ciała - http://tempehservice.com/?pl_badz-wege,27, Sklep w Katowicach
  2. Interesujące wnioski z analizy - http://httparchive.org/interesting.php - na podstawie webhosting.pl – jQury dominujący framework wśród JS
  3. Niezłe rzeczy można z tym zrobić - http://www.autohotkey.com/docs/Tutorial.htm
  4. Proste przykłady z C# - http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm
  5. Silne wsparcie protokołu HTTP i nie tylko - http://hc.apache.org/httpcomponents-client-ga/tutorial/html/
  6. Wspaniały odnośnik do przykładów z różnych dziedzin informatyki i języków programowania - http://www.java2s.com/, szczególnie są ciekawe wątki - http://www.java2s.com/Code/CSharp/Thread/CatalogThread.htm i inne strony - http://www.javakb.com/Default.aspx
  7. Pobieranie danych poprzez PHP - http://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl/

Różności

Różne:

  1. Wstrzykiwanie kodu m. serwerem a klientem w JS - bardzo niebezpieczne - na blog.port80software.com
  2. Ciekawe “t's not a new idea—you've very likely heard the phrase "Good artists borrow, great artists steal. "It's commonly attributed to Pablo Picasso, or T.S. Eliot, though it likelyoriginated with neither. Kleon illustrates his point in the cartoon above, and has this to say on the subject:
    1. Here's what artists understand. It's the a three-word sentence that fills me with hope every time I read it:
    2. Nothing is original.
    3. It says it right there in the Bible. Ecclesiastes:
    4. “That which has been is what will be, That which is done is what will be done, And there is nothing new under the sun."
  3. Every new idea is just a mashup or a remix of previous ideas.”\
  4. Jak zostać odkrywcą i kraść cudze pomysły - http://www.austinkleon.com/2011/03/30/how-to-steal-like-an-artist-and-9-other-things-nobody-told-me/?utm_source=Lifehacker+Newsletter&utm_campaign=31570e088d-UA-142218-1&utm_medium=email

czwartek, marca 31, 2011

Mega linki z pracy cz. 1

  1. Do wykorzystania:
    1. Pożyteczny przykład z CodeProject wykorzystania DataGrid w technologii WPF z bazą SQL Server Compact
    2. Też stamtąd – tutorial na temat log4net  - o zapisywaniu informacji do logów aplikacyjnych
    3. Wykorzystanie DataTables z jQuery w aplikacjach ASP.NET
    4. Wykonywanie w locie dowolnego serwisu WCF
    5. WCF by example
    6. Prosty sposób na odpytanie bazy danych
    7. Praca z dużymi plikami XML bez ich wczytywania w całości
    8. Własny handler do przetwarzania żądań do stron
    9. Własny sposób na wykorzystanie WCF do autentykacji i szyfrowania danych
    10. Eksport danych z bazy do różnych formatów (PDF, DOC, RTF czy XLS)
    11. GTD w akcji - http://www.codeproject.com/KB/applications/todolist2.aspx
    12. Crystal Report zanurzony w VS2011 w akcji
    13. Dokładny przykład jak wykorzystać Lightswitch do tworzenia aplikacji do zbierania danych
  2. Kolejna biblioteka do tworzenia PDF w wersji Lite jest bezpłatna – quickpdflibrary. Inny bezpłatny komponent do tworzenia PDF (i nie tylko, może jeszcze tworzyć DOC, XLS, RTF) – e-iceblue. Bardzo dokładny opis “bebechów” PDF – na JPedal.org (widać po nazwie, że firma wyszła z jakiegoś open source-wego projektu, okrzepła i zaczyna “zbijać kasę”). To był blog, a teraz tu są zebrane zasoby na temat PDF i wsparcia w tym temacie. Oficjalna strona blogu Adobe dla developerów jest tutaj, na stronie Adobe. Flash Builder jest za darmo pod pewnymi warunkami
  3. Kapitalny program do rysowania diagramów - https://grapholite.com/Designer
  4. Przegląd technologii używanych w .NET, bardzo cenny materiał
  5. Jak oczarować klienta - http://www.zdnet.com/videos/events/guy-kawasaki-how-to-enchant-users/6203360 – tako rzecze Kawasaki
  6. Wyjaśnienie przez MS w sprawie kradzieży certyfikatów z firmy COMODO, MS IE7 wzwyż ma włączone domyślnie sprawdzanie OCSP (FF domyślnie to opcja wyłączona). TechNet tak wyjaśnia CRL
  7. PowerShell to nowe, świetne środowisko skryptowe, ma nawet swoje GUI, tutorial - http://powergui.org/tutorials.jspa
  8. Tutorial o WCF - http://www.wpftutorial.net/GridLayout.html
  9. Java – jak oszukać sprawdzanie certyfikatu serwera w aplikacji pobierającej z niego dane
  10. Kapitalne narzędzie do testowania maszyny wirtualnej Java - http://visualvm.java.net/download.html

poniedziałek, marca 28, 2011

Dziwna polityka firmy

Firma Certum (Unizeto) wykazuje dziwną politykę, na liście urządzeń do składania podpisu brakuje np. czytnika SCR 3310. Dlaczego? Może dlatego, że pochodzi on od konkurencji (Sigillum) i wykorzystanie go oznaczałoby  mniejszy zysk z tytułu braku konieczności zakupu nowego czytnika, skoro można wykorzystać już zakupiony wcześniej czytnik. Wielu naszych klientów tak robi, kupuje początkowo zestaw Sigillum (tak im zalecaliśmy), a po dwóch latach przechodzi do innego dostawcy podpisu i kupuje jedynie kartę wykorzystując istniejący czytnik. Dobre, tylko firma Certum tego klientowi nie mówi.

Inne curiosum, wyżej wspomniana firma Certum dostarcza oprogramowanie do podpisu i obsługi czytnika. Istniejące obecnie na stronie oprogramowanie ProCertum SmartSign oraz ProCertum CardManager są wykonane w technologii uniemożliwiającej składanie tzw “Wielpodpis - fragment ze strony opisu wycofanego oprogramowania ProCertum MultiSign” co oznacza brak możliwości podawania PIN-u tylko raz na początku składania podpisu pod wieloma dokumentami a wymusza wklepywanie PIN-u podczas podpisu każdego dokumentu z osobna. Tej cechy pozbawiony jest produkt zastępujący satry ProCertum MultisSign –> ProCertum SmartSign. Ale żeby było ciekawiej w korespondencji z Certum wynika, że ich wewnętrzne rozwiązanie umożliwiają wielopodpis tylko że są dostępne odpłatnie po zakupie licencji do ich biblioteki. Czy ten ruch pozbawiający użytkownika ważnej funkcjonalności jaką jest wielopodpis był świadomym działaniem aby wymusić na deweloperach zakup ich biblioteki?

W tym świetle pozostałe centra certyfikacyjne KIR i Sigillum wyglądają korzystniej – obie te firmy używają oprogramowania Crypto Tech (sterowników do czytników kart inteligentnych), które ma WBUDOWNĄ funkcjonalność “utrwalenia” PIN-u na określony czas lub ilość podpisów. I to jest godne naśladowania. Apel do firmy Certum - teraz Twój ruch!

Dziwna polityka firmy

Firma Certum (Unizeto) wykazuje dziwną politykę, na liście urządzeń do składania podpisu brakuje np. czytnika SCR 3310. Dlaczego? Może dlatego, że pochodzi on od konkurencji (Sigillum) i wykorzystanie go oznaczałoby  mniejszy zysk z tytułu braku konieczności zakupu nowego czytnika, skoro można wykorzystać już zakupiony wcześniej czytnik. Wielu naszych klientów tak robi, kupuje początkowo zestaw Sigillum (tak im zalecaliśmy), a po dwóch latach przechodzi do innego dostawcy podpisu i kupuje jedynie kartę wykorzystując istniejący czytnik. Dobre, tylko firma Certum tego klientowi nie mówi.

Inne curiosum, wyżej wspomniana firma Certum dostarcza oprogramowanie do podpisu i obsługi czytnika. Istniejące obecnie na stronie oprogramowanie ProCertum SmartSign oraz ProCertum CardManager są wykonane w technologii uniemożliwiającej składanie tzw “Fragment ze strony opisu wycofanego oprogramowania ProCertum MultiSign” co oznacza konieczność podawania PIN-u tylko raz na początku składania podpisu pod wieloma dokumentami. Tej cechy pozbawiony jest produkt zastępujący satry ProCertum MultisSign –> ProCertum SmartSign. Ale żeby było ciekawiej w korespondencji z Certum wynika, że ich wewnętrzne rozwiązanie umożliwiają wielopodpis tylko że są dostępne odpłatnie po zakupie licencji do ich biblioteki. Czy ten ruch pozbawiający użytkownika ważnej funkcjonalności jaką jest wielopodpis był świadomym działaniem aby wymusić na deweloperach zakup ich biblioteki?

W tym świetle pozostałe centra certyfikacyjne KIR i Sigillum wyglądają korzystniej – obie te firmy używają oprogramowania Crypto Tech (sterowników do czytników kart inteligentnych), które ma WBUDOWNĄ funkcjonalność “utrwalenia” PIN-u na określony czas lub ilość podpisów. I to jest godne naśladowania. Apel do firmy Certum - teraz Twój ruch!

Ciekawostki

  1. Podobno Google Chrome OS ma się ukazać w tym roku (mówi się nawet o 11 listopada)  - tak twierdzi computerworld.
  2. Jak podkręcać systemy operacyjne, jak wyłączać pewne usługi - http://www.blackviper.com/ – np. jakie usługi wyłączyć  w XP Home - http://www.blackviper.com/WinXP/servicecfg.htm
  3. Potrzeba ochrony danych wrażliwych spowodowała udostępnienie na poziomie motora baz danych szyfrowania, nosi to nazwę transparent data encryption (TDE). MS SQL Server od wersji 2008 ma szyfrowanie w bazach danych, podobnie Oracle od wersji 10g. Bazy open-source mają też dodatkowe, dedykowane moduły do szyfrowania np MySQL (ezNCrypt) lub uniwersallny eCryptfs   Szyfrować można również całe partycje (np. BitLocker) -  za polskim computerworld.
  4. Uważa się, że technologia bazująca na Hadoop może w przyszłości rozwinąć się w ważną działkę BI.
  5. Dinozaury się dogadały, nie będzie już harmonii w Javie. Pragmatyczne podejście - IBM zarzucił prace nad rozwojem rywalizującego z OpenJDK projektu Apache Harmony (rozwój Java SE) i zawarł pakt z Oraclem mający na celu wspieranie jednej linii rozwoju javy bazującej na OpenJDK. Nazwał ten proces jako “revers fork”. Tym samym zwarł siły w froncie walki przeciw Google, który samozwańczo rozwija projekt Android wykorzystujący ograniczoną funkcjonalnie wersję języka java – wg ITWorld.
  6. Kto pierwszy złamał dogmat, że szyfrowanie i deszyfrowanie są operacjami równoważnymi (symetrycznymi względem siebie) tyle, że odwrotnymi i w związku z tym wynalazł szyfrowanie asymetryczne? Podręcznik uczy, że byli to amerykanie z MIT - Ron Rivest, Adi Shamir. Teraz okazało się, że nie. Na początku lat 70 pierwsi doszli do tego brytyjczycy . To właśnie Cocks, wraz z James Ellis i Malcolm Williamson. Ich prace zostały utajnione przez British Government Communication Headquaters (BGCH) przez 20 lat. Teraz ich prace nad kryptografią opartą o klucz publiczny zostały nagrodzone przez największą na świecie organizację techniczną IEEE – CIOL.
  7. Dużo szumu o nowym komunikatorze - http://www.24im.com/plans/

Co z tym DNS?

Sprawy dookoła DNS ciągle się rozwijają. Prawdziwym znawcą tego tematu jest Mark Minasi (pionier w propagowaniu wprowadzenia DNSSEC, ostatnio widziałem go w Warszawie na MTS 2010, to prawdziwy showman). Wiele firm oferuje darmową usługę DNS dla klientów indywidualnych, dodatkowo wzbogacają ją o bezpieczeństwo rodzicielskie i/lub sprawdzanie antyspamowe, antymaleware itd. Do liderów w tej dziedzinie należy:

  1. OpenDNS
  2. DynaDNS – chyba daje jeszcze adresy dynamiczne. Obecny Internet przekształca się w model TV – wielu odbiorców, niewiele kanałów. Dzięki usłudze dynaDNS teraz każdy może przekształcić swój komputer w publiczny serwer widziany poprzez Internet
  3. Ultra DNS Advantage – NeuStar
  4. Nowy - Google Public DNS

Do badania wydajności pracy DNS stosuje się benchmarki takie jak namebench. Problemy nadciagające dla tych dostawców z uwagi na wprowadzenie IP6 oraz DNSSEC.

Zebrane linki w pracy

  1. PDFAid - Zestaw narzędzi do pracy z PDF – niestety nie za darmo
  2. Awarie poczty pokazały, że najpewniejszym nośnikiem jest jednak taśma a nie dysk
  3. Twitter na Scali? Chyba
  4. Doskonała sprawa – wykorzystanie MS Live Mesh do zdalnego dostępu do sieci firmowej  - jak to zrobić
  5. Rozbiegówka na temat C# na łamach CodeMagazine
  6. Serwis snip.ly (logowanie obce np. poprzez FB)

Zamknięcie starego IE8

  1. Korzystając z subskrypcji TechNet można dostać się do zasobów tego portalu “Learning Resources
  2. Słynny portal “C#/.NET Little Wondres” – jest tu
  3. Jaki jeszcze mogą być biblioteki JavaScript? Ano taki: Spry, QooXdoo, Midori, Archetype, Wijmo, JavaScriptMVC – ankieta jest tu
  4. Świetny blog - http://www.msjoe.com/. Tamże jest o:
    1. O Node.js (na The Register – doskonały przegląd historii i rozwoju node.js) – ma dwa lata, bazuje na V8 (ten sam silnik jest w Chrome) i wykorzystuje model zdarzeniowy (event-driven) a nie wątkowy przez co jest znacznie szybszy. Tutaj jest dygresja – model ED jest naturalnym sposobem wykorzystania możliwości systemu operacyjnego któremu się zleca obserwowanie zdarzenia jakim jest połączenie (OS robi to optymalnie ponieważ jest do tego stworzony), model wątków polega na “wyciągnięciu” z OS funkcjonalności tworzenia i zarządzania wątkami i na naszych barkach spoczywa brzemię ich poprawnego wykorzystania. Podejście to w pewnym sensie jest podobne do projektów EventMachine (Ruby) oraz Twisted (Python) . Oto prezentacja na ten temat:
  5. Wyszukiwarka kodu od google - http://www.google.pl/codesearch?hl=pl
  6. Nowości w jQ 1.5 - http://blog.rebeccamurphey.com/a-refreshed-ajax-in-jquery-15
  7. Śmiesznostki - http://abowman.com/google-modules/
  8. Medytacje wg. lifehackera i inne linki
  9. Inne do przeglądnięcia:
    1. Małe cudeńka – tym razem toList() i toArray()
    2. BlogI:
      1. http://www.msjoe.com/
      2. http://jesseliberty.com/
      3. http://geekswithblogs.net/Default.aspx?q=Twitter
      4. http://geekswithblogs.net/michelotti/Default.aspx
      5. http://geekswithblogs.net/michelotti/archive/2011/02/16/use-a-fake-http-channel-to-unit-test-with-httpclient.aspx

czwartek, marca 10, 2011

Fundamenty tworzenia aplikacji w JS

Generalnie jest ich dużo ale napotkałem dwa świetne adresy:

E-faktura i podpis

Dane ze stycznia 2008 – TP SA wdrożyła wystawianie faktur klientom detalicznym (są jeszcze inni klienci – duże firmy). Doręczenie odbywa się e-mailem jako PDF + zewnętrzny plik do weryfikacji. Podpis w formacie XAdES-BES. Wdraża to itBCG. Testowe pliki z podpisem elektronicznym wraz z tabelą zestawień.

Podpis PDF – “Jest kilka wyjątków. Monitory Polskie są publikowane w postaci dokumentów PDF podpisanych elektronicznie, zarówno podpisem zewnętrznym (wymóg prawa) jak i osadzonym w dokumencie (wymóg zdrowego rozsądku)” – cytat od P. Krawczyka

środa, lutego 23, 2011

Zasady…

Zasad trzeba się trzymać. Działają one podobnie do przykazań. Jedną z takich zasad jest zasada OPEN-CLOSE, która mówi “The O in SOLID - The Open-Closed Principle First proposed by Bertrand Meyer in 1988, the Open-Closed Principle goes like this: Software entities should be open for extension but closed for modification. In other words, use the class in any way you need but modifying its behavior comes by adding new code, never by modifying or deleting the old.”

Ciekawe e-booki - http://ebookxyz.com/category/programing/page/2/ i tu - http://ebookau.com/

Ciekawe rozszerzenia dla Chrome - http://sixrevisions.com/tools/chrome-extensions-developers-designers/?utm_medium=twitter&utm_source=twitterfeed

Otwiera oczy na JS - http://bonsaiden.github.com/JavaScript-Garden/#closures, script junkie też, pamięć lokalna w HTML 5 - http://www.codeproject.com/Articles/156985/Use-HTML5-LocalStorage-in-your-Mobile-Web-Applicat.aspx

Obserwuj witryny MS:

  1. http://msdn.microsoft.com/en-us/ff972295
  2. Dla aplikacji Windows - http://msdn.microsoft.com/en-us/windows/
  3. Dla bezpieczeństwa  - http://msdn.microsoft.com/en-us/windowsserver/ff727936
  4. Polska wersja - http://msdn.microsoft.com/pl-pl/
  5. W poszukiwaniu zagubionego kodu - http://www.google.pl/codesearch?hl=pl
  6. http://msdn.microsoft.com/en-us/windows/ff972463
  7. IronPython - http://channel9.msdn.com/Tags/ironpython
  8. Obsługa WS po nowemu - http://www.servicestack.net/ServiceStack.Hello/
  9. Owijka do HTTP - http://geekswithblogs.net/michelotti/Default.aspx
  10. A little wonders - http://geekswithblogs.net/BlackRabbitCoder/archive/2011/02/10/c.net-little-wonders-the-concurrent-collections-1-of-3.aspx
  11. http://geekswithblogs.net/Default.aspx?q=Twitter

Medytacje:

  1. http://m.lifehacker.com/5591576/a-guide-to-meditation-for-the-rest-of-us
  2. http://philosophistry.com/archives/2011/02/benefits-of-meditation.html
  3. http://education.calumet.purdue.edu/vockell/EdPsyBook/Edpsy6/edpsy6_transfer.htm

wtorek, lutego 22, 2011

Nowości

IBM wcale nie uśmiercił Informixa, rozwija go nadal o czym świadczy możliwość ściągnięcia do siebie wersji jako maszyny wirtualnej z portalu VMWare. Teraz zachwala tę bazę jako serwer wbudowany do różnych urządzeń.

Aplikacja do zdalnego pulpitu – join.me. Czy naprawdę jest taka dobra? Trzeba to sprawdzić. Ponadto jest tam wiele ciekawych przenośnych aplikacji bez konieczności ich instalacji m.in. camstudio portable.

Różności

Wszystko co napotkałem po drodze:

poniedziałek, lutego 21, 2011

Życie toczy się dalej…

Po ukazaniu się wersji RC jQuery 1.5, rozpoczęto prace nad nowym projektem UI – GRID w ramach jQuery UI Team.  Ma on zastąpić i ujednolicić podejście do siatki danych implementowane w wielu rozwiązaniach wtyczkowych. oto cytat “There are already a number of high quality jQuery grid plugins. We recognize they each have an impressive set of features, capabilities, and a level of use by members of the jQuery community. We are studying and applying practices and techniques from today’s most popular grid and data table plugins, including current favorites, SlickGrid,jqGrid, DataTables and a few that have not been updated in a while, like Tablesorter,Flexigrid, and Ingrid. We invite all authors and users of these and any other grid plugins to get involved in the design of the jQuery UI Grid.”. Źródło - http://blog.jquery.com/2011/02/07/jqcommunity-updates-feb2011/

piątek, lutego 18, 2011

Zamyślenie…

Problem tworzenia aplikacji internetowych. Można go zaatakować z dwóch stron – mamy tu do czynienia z klasycznym przypadkiem interakcji serwer-klient.

Od strony serwera poprzez stosowanie w wybranym języku serwerowym rusztowań (frameworków) które nie tylko stanowią owijkę dla dla jego języka (wprowadzają słynny model MVC jak np. PHP Cake lub bardziej złożony ale uniwersalny ZEND) ale DODATKOWO pozwalają również na wstrzykiwanie kodu do przeglądarki internetowej po stronie klienta przez co aplikjacja robi się bardziej reaktywna (np. EXT PHP, ZEND).

Od strony klienta działającego w przeglądarce internetowej który realizuje cały GUI po stronie klienta a dobiera sobie dane poprzez AJAX od serwera. Tutaj mamy uniwersalny ale niskopoziomowy AJAX, lub frameworki jQuery/EXT JS i inne, z dodatkami OO jak np. Javascript MVC.

Innym, ciekawym rozwiązaniem jest poleganie na narzędziach RAD, które w sobie mają wbudowane jakieś frameworki np. SENCHA lub Appcelerator (z przejętą przez niego Aptaną).

Innym zasługującym na uwagę zjawiskiem jest sytuacja w obszarze mobilnych urządzeń. Mamy tu powtórkę całej historii informatyzacji w pigułce. Najpierw tworzono aplikacje lokalne (w rozumieniu tego urządzenia) w językach które miały na danej zabawce swoją maszynę wirtualną np. Java VM (zubożona Java ME), rzadziej .NET i były to najczęściej gry. Później uległy zaawansowaniu systemy operacyjne tych urządzeń i pojawiły się aplikacje systemowo-narzędziowe chociażby przeglądarki internetowe. Pozwoliło to na wykorzystanie języków skryptowych tych przeglądarek (najczęściej Javascript) do tworzenia aplikacji w środowisku przeglądarkowym. A że przeglądarki uniknęły syndromu IE (chodzi o skarłowaciałe wersje IE 4/5/6 a nawet 7) i opierały się na bibliotece WebKit (Safari lub Chrome) lub Mozille (Firefox) z wersją HTML 5, moża było od razu wykorzystać AJAX i inne zaawansowane biblioteki jak jQuery, Dojo. Tutaj już następuje wyjście na świat zewnętrzny – dostęp do dowolnego serwera i technologii tworzenia aplikacji po jego stronie. Tak naprawdę przeglądarce było obojętne co jest TAM po drugiej stronie – komunikacja z nią odbywała się poprzez URI (początki REST). Teraz zaczęto wbudowywać w VM Jay wsparcie dla innych języków dynamicznym i mamy pełny wysyp języków znanych ze świata PC jak Ruby, JS, Python. Dzięki nim możemy tworzyć aplikacje lokalne i internetowe pomijając przeglądarkę internetową jako kontener runtimemowy czasu uruchamiana – framework dla Androida o nazwie S4A, Jednakże przeglądarka nie przestaje być atrakcyjnym pojemnikiem dla uruchamiania aplikacji ponieważ daje już na pczątek dwie ważne rzeczy deweloperowi: możliwość standardowego kontaktu z siecią internet (poprzez warstwę AJAX i inne,  na niej zbudowane warstwy jak REST) oraz zunifikowany sposób wyświetlania danych poprzez GUI oparty na HTML5 obudowany w framework wizualizacyjny choćby jQuery Mobile lub zapeto.

Ażby usprawnić i przyśpieszyć działanie aplikacji próbuje się stworzyć taki system operacyny który ma wbudowaną przeglądarkę i języki skryptowe a nawet języki 3GL (kompilowalne) jak to ma miejsce w przypadku OS Chrome. I tu powtarza się sytuacja MS w latach powstawania Internetu, MS wbudował w OS wsparcie dla przeglądarki IE3 oraz języków skryptowych (JS), a potem został potępiony i musiał przeglądarkę odłączyć od niego.

poniedziałek, lutego 14, 2011

Grafika

Jak zwykle świetny artykuł na LISAPART na temat stosowania grafiki wektorowej zgodnie ze standardem SVG. Do wykreślania użytko biblioteki opierającej się na jQuery – flot. A do obsługi SVG użyto biblioteki google svgweb. SVG moża również przetwarzać interaktywnie przy pomocy inkscape (darmowy zamiennik Illustratora) lub programowo przy pomocy Raphael (świetny tutorial na ten temat)

Jak pies z kotem (… Java z .NET)

Projekt Ja.Net pozwala na skompilowanie klas Java do fabryki (assembly) .NET, czyli DLL które potem można wykorzystać w np. C#. Trochę niejasna jest sprawa użycia projektu Harmony (obecnie zarzuconego nawet przez IBM).

Osobiście używam IKVM

Do komunikacji poprzez HTTP stosuje się najpopularniejszą chyba bibliotekę HTTPClient fundacji Apache. Szczególnie piękny jest wstęp do korzystania z tej biblioteki podkreślający, że nie jest ona obsługą przeglądarki ale protokołu HTTP.

piątek, lutego 11, 2011

Ważne dla mnie i nie tylko

czwartek, lutego 10, 2011

Co z systemami operacyjnymi przyszłości?

Złe wróżby dla Microsoft – HP ogłasza gotowość do produkcji własnego systemu operacyjnego WebOS w tablecie TouchPad oraz telefonie. Jeden system operacyjny na takie różne urządzenia! Tego nie udało się nawet Microsoftowi. Powoli tworzy się przestrzeń nowych systemów operacyjnych bazujących na urządzeniach mobilnych  z ambicjami wejścia na platformę PC. mamy takich graczy:

  • Apple – unifikacja dwóch systemów iOS i MacOS X w postaci Lion
  • Google – webowy system Chrome OS i Android
  • i teraz HP – webOS

MS widzi zagrożenie i zaczyna działać – zamierza portować Windows 8  na platformę ARM (właściwa dla urządzeń mobilnych), ale to dopiero na początku 2013 r.

A więc zaczyna się wojna systemów operacyjnych!

Aplikacje społecznościowe

Są obecnie bardzo modne. Stworzenie ich ułatwia specjalny framework dostępny na stronach code.google.com. Pomocne może być wiki na ten temat. Na razie działa tylko z iGoogle, ale idea aplikacji społecznościowych jest tu dobrze wytłumaczona.

czwartek, lutego 03, 2011

Rozwój w czwartek

<!--[if IE]><script src="excanvas.js"></script><![endif]—>

Dzięki temu można skorzystać z kanwy dostępnej w HTML5 – link do biblioteki jest tu. Ale czy nie lepiej użyć innej biblioteki do detekcji przeglądarki - http://www.modernizr.com/?

wtorek, lutego 01, 2011

Rozwój

Jest wiele portali do nauki technologii wykorzystywanej w Javie jednak chyba najlepsze są lekcje z możliwością poznania jakieś technologii w praktyce. Dlatego takie portale jak myEclipse zawierają tutoriale prezentujące praktyczne lekcje jak zrobić coś przy użyciu czegoś. Adres pod którym są takie lekcje jest tu. Podobne role spełniają portale edukacyjne Eclipse i Netbeans. Tak a pro po Netbeans od wersji 7 nie będzie zawierał platformy RoR (platforma ta mimo dużego zainteresowania się deweloperów jakoś sie nie rozwinęła, nie pomogło nawet kupienie przez Salesforce Heroku), ludzie z Oracle tłumaczą się tym, że wszystkie siły trzeba skierować do realizacji mapy drogowej Java.

Portale edukacyjne – jest ciekawy na infoq. Tam jest ciekawa pogadanka o funkcjach w JS. Lub securitystandard. Zalecenia dla PHP z OLAMP. VirtualStudy – kurs C#.

Integracja to hasło roku. Widzimy integrację platformy Java, nawet IBM porzucił projekt Harmony na rzecz Open JAVA (trochę zmusił go do tego Oracle), integrację w narzędziach RAD dla twórców aplikacji webowych (Aptana wykupiona została przez Appcelerator), integrację narzędzi do testowania aplikacji webowych (WebDriver połączy się z projektem Selenium), integrację bibliotek JS do tworzenia aplikacji (jQuery tworzy framework dla aplikacji mobilnych i powstają zalecenia odnośnie dobrych praktyk w tworzeniu interfejsu mobilnego – W3C z uwagi na potrzebę zachowania “lekkoścj” kodu), integrację standardu HTML w wersji 5 (uproszczony nagłówek HEAD bez zbędnych “upiększeń”).

Znowu moda na bazy nie SQL-owe. Jedną z nich jest REDIS. Prosta, szybka i wydajna, działa na zasadzie pary klucz-wartość. Dane są przechowywane w pamięci, utrwalenie następuje bądź poprzez okresowe opróżnianie cache z zapisem na dysk lub poprzez zapis ciągły do logu. Ma klientów do niej dla C#, PHP, Go. Brak pełnego wsparcia dla Windows (choć sama baza jest napisana w C i wymaga środowiska zgodnego  z Posix). Można ją używać m.in. jako wyspecjalizowaną pamięć podręczną (cache) w rozumieniu przechowywania w niej nietrywialnych (nieprostych) struktur danych. Przykłady użycia w C#.

Produktywność – słowo wytrych dla pracodawcy. Oto kilka aplikacji darmowych: LibreOffice, myBrainShark, Gubb, Remember the Milk, CloudSafe, PrimoPDF/PrimoOnline, Khan Academy.

poniedziałek, stycznia 24, 2011

Perełki (ale do zbadania)

  1. “Best practices for .NET developers” - http://mostlylucid.net/archive/2011/01/18/best-practices-for-.net-developers.aspx
  2. “Var vs. dynamic keyword” - http://www.devcurry.com/2010/09/var-vs-dynamic-keyword-in-c-40.html
  3. Zestaw kategorii artykułów - http://www.dotnetcurry.com/ShowCategories.aspx
  4. Wyszukiwanie developerworks na temat ‘jquery’
  5. Co to jest open – source z Techrepublic
  6. JavaRaunch – tworzenie PDF w iText - http://www.coderanch.com/how-to/java/ItextExample
  7. Patrz też tam na kategorie - http://www.coderanch.com/how-to/java/CodeBarn
  8. Zasoby na temat jak zostać designer’em - http://lifehacker.com/5739492/learn-the-basics-of-design-this-weekend
  9. Sylwetka programisty z Google - http://news.cnet.com/8301-27080_3-20028623-245.html?tag=nl.e703
  10. Początek z jQuery - http://www.ibm.com/developerworks/web/library/wa-jquery1/
  11. Gartner ostrzega o zmianie spojrzenia na aplikację - http://searchsoa.techtarget.com/tip/Gartner-Analyst-Rethink-the-application-paradigm-consider-business-capabilities?asrc=EM_NLN_13179152&track=NL-110&ad=807050
  12. Nauka JS:
    1. http://www.dzone.com/links/r/partial_function_application_in_javascript.html
    2. http://www.dzone.com/links/r/jquery_15_promises_a_better_future.html
    3. http://www.dzone.com/links/r/10_must_see_new_useful_jquery_plugins.html
    4. http://www.quirksmode.org/js/this.html
    5. http://www.dzone.com/links/r/45_resources_tutorials_for_designers_and_develope.html
    6. http://www.dzone.com/links/r/wiki_in_80_lines_of_javascript.html
    7. http://www.dzone.com/links/r/14_really_useful_jquery_plugin_for_create_web_apps.html
    8. http://www.dzone.com/links/tag/javascript.html:
      1. http://www.dzone.com/links/r/14_best_javascript_frameworks.html
      2. http://www.dzone.com/links/r/what_is_jquery_the_perks_and_the_drawbacks.html
    9. JSON ważny - http://radicaldevelopment.net/2010/04/07/process-json-jquery/
  13. Czego nie wiesz o javie to powie ci IBM - http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=5+things+you+did&cmp=dw&cpb=dwjav&ct=dwnew&cr=dwnen&ccy=zz&csr=010711
  14. On też ci powie jak korzystać z GWT - http://www.ibm.com/developerworks/web/library/wa-aj-gmt/?cmp=dw&cpb=dwwdv&ct=dwnew&cr=dwnen&ccy=zz&csr=010711
  15. Wywiad ze Spolksy - http://www.foundersatwork.com/joel-spolksy.html
  16. Potzrebne jest nowe spojrzenie na aplikację. Co na to Gartner – “The application platforms we are dealing with today encourage outdated software design processes.  A better way for development managers to think is in terms of deploying capabilities to a particular environment that has the ability to interact with other capabilities. This eliminates the artificial walls between applications.
  17. That is at least one take away from a discussion with Kirk Knoernschild, a research director with Gartner Group.  Enterprises are beginning to uncover a fundamental mismatch between the way code is developed and the business value of the development process, argues Knoernschild.  “We have taken this notion of an application that runs in its own process that we are accustomed on the desktop and essentially carried that over into the notion of an app on a server,” he explained.

    “Why do we even need the notion of an application on the Web?” asked Knoernschild.  “It is an artificial notion that constrains how we go about building, deploying and managing software. Instead of application, we need to think in terms of business capabilities, the business process and business activities. “

    A significant contributing factor to this disconnect lies in the way in which new code is funded. The challenge is that this process has developed a monolithic application mentality, which makes it easy to add too many competing elements to the finished product. He noted, “Before we know it, we are left with application bloat. We have this all of these applications and some do the same thing, while others are unique.”

    The source of the problem is caused by thinking about the development process in terms of applications rather than metrics which are meaningful to the business.  Thinking about code in terms of application focuses the attention on metrics like project cost and time to code, which detract the focus from more significant metrics that relate to the end product. Tłumaczenie – powodem rozdźwięku jest traktowanie procesu wytwarzania aplikacji w terminach metryk (miar) odnośnie do aplikacji a nie metryk związanych z biznesem.

    Traditionally IT focuses on IT metrics like cost, time to market, and the number of defects, code quality and test coverage. Perhaps those types of metrics are useful for assessing how streamlined the development process is – but there are other values to consider.

    Organizations also have to look at the value their software provides to the business after it is developed. Just because it cost $2 million to deliver a project that is on time and on budget, does not mean and organization is the value the system needs.

    Knoernschild said, “Understanding the business value is also very important, and that is an area where a lot of organizations tend to fall short. That can come in a variety of forms such as worker productivity, customer satisfaction, and retention.” – źródło searchsoa.

piątek, stycznia 21, 2011

Nie kończąca się historia–HTML 5

Źle się dzieje w HTML – nowa wersja HTML 5 została zaanonsowana jako samodzielny byt od niedawna. Koniec prac nad jej specyfikacją przewiduje się za kilka lat (licząc optymistycznie ok. 2022). Autorzy chyba za dużo chcą osiągnąć naraz. Bałagan robi się jeszcze większy gdyż autorzy niektórych przeglądarek już teraz (kiedy tak naprawdę prace na specyfikacja trwają) implementują NIEKTÓRE elementy HTML 5 (te najłatwiejsze i najmniej wątpliwe) i trąbią wszem i wobec, że ich przeglądarka jest zgodna z tym standardem (tymczasem do takiego stwierdzenia  droga jest długa). Na ten temat dobrze jest przejrzeć dwuczęściowy raport INFOWORLD – przypominam, że jest to draft (szkic) specyfikacji:

  1. HTML5 in the browser: Canvas, video, audio, and graphics” – to co najłatwiej zrobić a już można zachwycić użytkownika ponieważ skupiają się na wizualnej stronie (demonstracja możliwości jest tu) przeglądarki. Mamy tu obiekty typu canvas (test tu), SVG (test tu)
  2. bardziej trudna część “HTML5 in the browser: Local data storage - HTML5 Web Storage, Web Database, FileReader, FileWriter, and AppCaching APIs will transform Web pages into local applications, but not yet” tam można znaleźć wiele eksperymentalnych rozwiązań jak czytanie/zapisywanie do plików domowych, sieci semantyczne. Na razie temat jest zbyt rozszerzeń jest zbyt nieprecyzyjny.

Super strona na temat nowości jakie przynosi HTML 5 - http://www.goat1000.com/tagcanvas.php

wtorek, stycznia 18, 2011

Deweloperka

  1. Jak zwykle dobre pomysły w portalu DYNAMICDRIVE, tym razem biblioteka z obrazkami jako tzw. tooltip. Nadaje się do przystosowania.
  2. W portalu code project jest wiele ciekawych artykułów i tzw. tip-ów
  3. Ciekawy cytat "Nighttime, not the late hours but the gloaming, when the sun was setting and dinner must be prepared and the long evening stretched out before her — that's when the loneliness settled in like the ache in her hip on a rainy day, when the regrets, the bad memories, sometimes came to call." — From Lisa Unger's 2010 novel Fragile”
  4. Nowa wersja serwera Tomcat – położono nacisk na większą ilość wątków co ma zwiększyć jego reaktywność. Tak w ogóle po co ułatwiać wielowątkowość przecież to i tak nie zwiększy wydajności czy szybkości przetwarzania? Ano  po to by pojedynczy proces/watek nie zagrabił nam (zmonopolizował) zasoby procesora, żeby stworzyć iluzję przed użytkownikiem, że coś się dzieje, żeby zwiększyć jego reagowolność na zdarzenia utd. W ten sposób tworzymy ILUZJĘ, że wszystko działa, aplikacja przyjmuje nowe zgłoszenia i obsługuje stare jak gdyby nic (ale płacimy za to większym narzutem na zarządzanie i dłuższym czasem obsługi. I tu realizuje się zasada demokracji wszyscy są obsługiwani tyle, że coraz wolniej.
  5. Bardzo ciekawy plugin dla jQuery pozwalający na nowy sposób zademonstrowania menu. Są też inne elementy GUI jak notes, cards, maps.
  6. nareszcie mam –jquery JQGRIDprzykłady w php i js
  7. Coś co każdy lubi ale nie każdy ma – integracja środowisk i platform –znajdziesz w portalu codemesh. Aplikacja JuggerNET. Przykład JDBC w .NET – tu.
  8. Implementacja:
    1. using Codemesh.JuggerNET;




      IJvmLoader	loader = JvmLoader.GetJvmLoader( true, true, TraceFacility.TraceJvm, TraceLevel.TraceErrors );

      loader.AppendBootClassPath = "../lib/hsqldb.jar;../../lib/hsqldb.jar";

      Class.ForName("org.hsqldb.jdbcDriver");



  9. Jak tak naprawdę wystartować z tworzeniem aplikacji pod Androidem - http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/A-developers-perspective-on-Googles-Android-SDK/. Maszyna wirtualna dla Androida - http://content.techrepublic.com.com/2346-12849_11-497936-1.html?tag=content;leftCol


  10. Kapitalna strona o podstawach web i html - http://www.xs4all.nl/~sbpoley/webmatters/index.html, jest też przykład wzorcowej walidacji formularza


  11. Jestem na LINKEDIN przyjęty do grupy PKI, a tam sposób jak sprawdzić ocsp poprzez opessl. tam pokazano nową ideę OTPK (one time private key)


  12. Nowe pojęcie Secure String tamże w stopce są ciekawe odnośniki do:



    1. Klasy List - http://articles.techrepublic.com.com/5100-10878_11-6068652.html?tag=btxcsim#


    2. ListView -


    3. Podstawy – stream – co to takiego


    4. Inne tematy są w archiwum



  13. Bomba - http://weavesilk.com/


  14. Pascal - http://www.dobreprogramy.pl/Lazarus,Program,Windows,12653.html


  15. Po co LINQ (z portalu - http://gasior.net.pl/tag/c/):



    1. var polishCustomers = new List<Customer>();

       
      foreach (var customer in customers)


      {


      if (customer.Country == "Poland")


      polishCustomers.Add(customer);


      }



      teraz:



      var polishCustomers = customers.Where(x => x.Country == "Poland");



poniedziałek, stycznia 17, 2011

Pożyteczne dla deweloperów

Niezawodny serwis DevCurry przyniósł podsumowanie roku 2010. Najciekawsze:

  1. Posty - http://www.devcurry.com/2010/12/most-popular-posts-for-developers-in.html
  2. Zasoby aplikacyjne i narzędziowe - http://www.devcurry.com/2010/12/useful-developer-tools-and-resources.html

Podstawowe, niezbędne narzędzia na każdy komputer z MS Windows - http://stevenbenner.com/2010/09/must-have-software-for-your-microsoft-windows-computer/ (a tam wyświetlacz temperatury CPU - http://www.alcpu.com/CoreTemp/)

Nowe narzędzie dla developerów–WebMatrix

No może nowe to ono nie jest, ale jest nowa wersja dostępna na stronach MS.  Wraz z nią jest m.in. open-source portal Orchid. Przygotowano też szkolenia:

  1. Przegląd możliwości - http://www.microsoft.com/web/webmatrix/features.aspx
  2. Miejsce startowe szkoleń - http://www.microsoft.com/web/post/Web-Development-101-using-WebMatrix
  3. Inna strona - http://www.microsoft.com/web/category/learn

Ciekawe jak się to ma do innego narzędzia – generatora aplikacji Lightswitch?

Czyżby WM był wyspecjalizowany pod kątem potrzeb programistów aplikacji webowych, a LS dla tworzenia aplikacji klienckich? Czas pokaże…

piątek, stycznia 14, 2011

Ciekawe

  1. Operacje na składnicy certyfiaktów w .NET - http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509store.remove(v=vs.80).aspx
  2. Crockford o bezpieczeństwie JS i HTML5 - http://answers.oreilly.com/topic/1483-doug-crockford-discusses-javascript-html5-security-issues/
  3. Kolejna ciekawa ksiażka - JQuery cookbook a tam wykorzystanie .data() – “How to attach objects and data to DOM with jQuery.data to avoid memory leak issues” np. do uniknięcia przecieków pamięci i ustawienia zegara
  4. Stosowanie Module pattern w jS – do organizaowania kodu - http://answers.oreilly.com/topic/2177-how-to-use-the-module-pattern-in-javascript/
  5. Obok jQ jest wiele innych frameworków: The following won't help you much to make a choice, because it's just a plain list of options--but at least it will help you see some of the most popular options. I copied this list right from Chapter 19 of Learning PHP, MySQL, and Javascript by Robin Nixon.
    1. ASP.NET Ajax Framework, http://asp.net/ajax/
    2. Clean Ajax, http://sourceforge.n...ects/clean-ajax
    3. Dojo Toolkit, http://dojotoolkit.org
    4. jQuery, http://jquery.com
    5. MochiKit, http://mochikit.com
    6. MooTools, http://mootools.net
    7. OpenJS, http://openjs.com
    8. Prototype, http://prototypejs.org
    9. Rialto, http://rialto.improv...logies.com/wiki
    10. script.aculo.us, http://script.aculo.us
    11. Spry Framework, http://labs.adobe.co...chnologies/spry
    12. YUI, http://developer.yahoo.com/yui
  6. Np. Rico - http://rialto.improve-technologies.com/wiki/ – ze wsparciem dla GWT, Javy i .NET
  7. Kolejne sztuczki z jQ na podstawie artykułu na O’Reilly na temat książki JQuery Pocket book:
    1. zamiast $(documentt).ready() można stosować $().
    2. Aby stworzyć element można skorzystać z $(tagname) a jako drugi parametr przekazać obiekt zawierający właściwości przekazane do attr(), dodatkowo jeżeli te właściwości będą maiły nazwy atrybutów DOM to zostaną zarejestrowane jako handlery:
      ar image = $("<img>", {
                        src: image_url,
                        alt: image_description,
                        className: "translucent_image",
                        click: function() {$(this).css("opacity", "50%");},
                        css: { border: "dotted red 3px" }
                     });

  8. Procesory zdarzeń to np. click() lub change(), jest bardziej ogólny procesor (handler) zwany bind() np.
$('a').bind('mouseover.myMod', f);


  1. Wtedy możliwe jest:
// Unbind all mouseover and mouseout handlers
// in the "myMod" namespace
$('a').unbind("mouseover.myMod mouseout.myMod");
// Unbind handlers for any event in the myMod namespace
$('a').unbind(".myMod")


  1. Mozliwe jest też kolejkowanie animacji:
    $("img").fadeIn(500)
            .animate({"width":"+=100"},
                     {queue:false, duration:1000})
            .fadeOut(500);
    I na koniec sprytne wykorzystanie zdarzeń startu i zakończenia operacji AJAX do włączania i wyłączania elementu animacji:
    $("#loading_animation").bind({
        ajaxStart: function() { $(this).show(); },
        ajaxStop: function() { $(this).hide(); }
    });
    A to wszystko pochodzi z serwisu O’Reilly – answers


    Stosowanie przestrzenie nazw w JS, nic trudnego:

    Since these are home-made javascript libraries, this isn't too hard.
    You can assign an object to a variable, and combine your libraries within this object. You can repeat the process within the object to achieve multiple levels as well.
    e.g.
    var mycompany = {
    'utilities': {
    'removeEmail': function(string) {
    // Code to remove all email addresses
    return newString;
    },
    },
    'display': {
    'defaultSize: [100, 100],
    'showBox': function(x, y, sizex, sizey) {
    // do some stuff create stylized div for box, etc.
    return boxDivElement;
    },
    },
    'var1': 'foo is at foo@bar.com',
    'func1': function() { return 'bar is at bar@foo.com'; }
    }
    // Example usage
    var myString1 = mycompany.var1;
    var myString2 = mycompany.func1();
    var someFunction = mycompany.func1;
    var myString3 = someFunction(); // myString3 == mySting2;
    var parsedString = mycompany.utilities.removeEmail(mystring1);
    var divBox = mycompany.display.showBox(400, 500, 200, 300);
    divBox.innerHTML = parsedString;
    Now, I haven't actually tested the above code, so there may be numerous errors, and even some basic JS logic problems as it's been a little while since I wrote any functional JS, but the general theory is sound.
    P.S. there's more complex and complete ways to get namespaces in JS, but this should suffice for combining a few home-made libraries.

poniedziałek, stycznia 10, 2011

Nowości

  1. Wg. serwisu webhosting:
    1. Możliwość dodawania filmów i muzyki do Google Docs i odtwarzania w nim natywnego tych materiałów. Podobnie robi to serwis vimeo.
    2. Udostępniono kurs Javy - http://webhosting.pl/Kurs.Javy..Praktyczne.programowanie.czesc.I
    3. Pułapki JS - http://net.tutsplus.com/tutorials/javascript-ajax/top-10-things-that-javascript-got-wrong/". Ciekawi autorzy:
      1. http://www.nczonline.net/ + sekcja pobrań http://www.nczonline.net/downloads/
    4. Superblog o życiu - http://blog.timtipton.com/ tam są odwołanie do:
      1. http://goodlifezen.com/2011/01/03/fitness-challenge/,
      2. http://zenhabits.tumblr.com/
      3. http://www.forgetfoo.com/
    5. Tricki z tablicami asocjacyjnymi w PHP
    6. Java przekszatałcona w JS – wywiad z Oracle
    7. Nareszcie framework MVC w JS - http://javascriptmvc.com/
    8. Rewelacyjny kompilator w Chrome
    9. Xajax dla PHP – nareszcie
    10. Wstrzykiwanie dynamiczne kodu JS - http://webhosting.pl/stackJS.latwe.ladowanie.modulow.i.zaleznosci.w.JavaScripcie
    11. Technologia NODE.JS

O stylu życia

Jak zwykle nowy rok nastraja do zmian swego życia. Natrafiłem na świetny blog na temat jak żyć prowadzonego przez Steve Martille - http://www.freedomeducation.ca/free-book/. Jest tam wiele praktycznych uwag na temat stylu życia i zmiany swej osobowości. Przykładowo jak wdrożyć praktycznie swoją afirmację - 6 Affirmation Secrets to Make You Feel Better. Inne:

  1. 20 Rule
  2. 4 Ways to Finding Purpose in Life
  3. How to Stay Focused When You Feel Like Giving Up
  4. Quantum Physics Secrets?

wtorek, stycznia 04, 2011

Wybrane ciekawostki

  1. Wg. VaGla.pl - Ustawa o podpisach elektronicznych – rząd ją przyjął w kwietniu 2010 i miał przesłać do Sejmu i notyfikacji przez UE. Od tego czasu nie wiadomo co się z nią dzieje. Ale coś tu mamy, w portalu VaGla.pl jest cała gałąź na temat aktualnego stanu tych spraw - http://prawo.vagla.pl/podpis_elektroniczny
  2. Z innej beczki – portal sharpbrains – zawiera wiele informacji o mózgu oraz jego działaniu - http://www.sharpbrains.com/resources/1-brain-fitness-fundamentals/
  3. Zagadki, kto ich nie lubi? http://brainden.com/
  4. Dla dzieci – jak zacząć programować w Pythonie - http://msdn.microsoft.com/pl-pl/library/gg455949

Medy co? tacje

Super portal na temat wszelkich aspektów życia – Huffington Post. Oto co tam można znaleźć:

  1. “Why pleasuer is not a happiness” – wiele linków tamże (na dole)
  2. Propozycja postanowienia na nowy rok":
    1. I intend to cultivate equanimity and balance in 2011 -- not to panic when things appear to be off track, and not to relax when everything seems to be going smoothly. I intend to cultivate awareness and presence and not focus too hard on the outcome -- paying more attention to the process and developing understanding and sympathy for myself and others.
  3. Powyższy cytat pochodzi z http://www.huffingtonpost.com/david-nichtern/finding-balance-and-equan_b_803240.html
  4. Waiting without waiting

JQuery–nowości

Jeżeli się szuka informacji o najnowszych trendach w JQ trzeba jej szukać na stronach bloga - http://blog.jquery.com/. Trudno powiedzieć jaki standard trzech rozszerzeń zaproponowanych przez MS i przyjętych przez grupę rozwijającą jQ będzie. API z witryny MS i jQuery różnią się niestety. Jedyne co pewne to przyjęcie idei templatek ale  i one się różnią od propozycji MS (w wersjach 1.4.x są one uznane jako oficjalne wtyczki, od wersji 1.5 mają być już wbudowane). Wg. MS idea rozszerzenia jQuery wygląda tak (wg. bloggera Scott Gu jest tam dodana specjalna biblioteka w js):

  1. Templatki (templates)– wzorce, wzbogacone o możliwość warunkowego  wyboru elementów.
  2. Linki danych (data linking) – można powiązać elementy DOM (np. <input z id>) z elementami pochodzącymi z obiektów JS. Wiązanie jest w obie strony, zmiana wartości jednego elementu z DOM skutkuje zmianą elementu w JS.
  3. Konwertery – umożliwiają zmianę formatu danych (np usunięcie znaków formatujących konto lub numer telefonu)

Wg. jQuery sytuacja tych wtyczek w wersji beta wygląda tak:

API Documentation

Tutorials

Ciekawy podręcznik autorstwa programisty z MS - http://www.borismoore.com/2010/09/introducing-jquery-templates-1-first.html


Osobiście wolę implementację pochodzącą od Microsoft – jest bardziej czysta i klarowna, chociaż nie wpisuje się tak dobrze w dokumentację jQuery. Te trzy wyżej zgłoszone propozycje pozwalają na eleganckie wiązanie danych między modelem (obiekty JSON w JS) a widokiem (elementy DOM w HTML) i są przedłużeniem idei bind() z jQuery