czwartek, maja 10, 2012

Zebrane linki z Chrome w domu (wg. mnie ciekawe)

Dla dzieci:

1) http://kopalniawiedzy.pl/
2) http://www.fizykon.org/

Dla dorosłych programistów:

1) Linki do closures w JS - http://www.javascriptkit.com/cgi-bin/search/search.cgi?zoom_query=closure&zoom_per_page=10&zoom_and=1&zoom_sort=0&zoom_cat%5B%5D=1
2) Wyr. reg. - http://www.javascriptkit.com/javatutors/re.shtml np.:
<script language="JavaScript1.2">
    function checkpostal(){
    var re5digit=/^\d{5}$/ //regular expression defining a 5 digit number
    if (document.myform.myinput.value.search(re5digit)==-1) //if match failed
    alert("Please enter a valid 5 digit number inside form")
    }
    </script>

    <form name="myform">
    <input type="text" name="myinput" size=15>
    <input type="button" onClick="checkpostal()" value="check">

    </form>
3) htmlshell - http://htmlshell.com/
4) Kurs jQ z MSDN z serii Aplikacje internetowe - są też i inne:
  http://msdn.microsoft.com/pl-pl/library/jquery--selektory.aspx
  http://msdn.microsoft.com/pl-pl/library/jquery--zdarzenia
  http://msdn.microsoft.com/pl-pl/library/jquery--animacje
5) Dodatek do jQ - Data Tables - http://datatables.net/extras/
6) Addy Osmani o operatorach logicznych w js - http://addyosmani.com/blog/exploring-javascripts-logical-or-operator/
7) Tam też wiele linków do bezpłatnych materiałów np. http://addyosmani.com/toolsforjqueryapparchitecture/
8) O PDF i iText:
    http://www.4guysfromrolla.com/articles/030211-1.aspx
    http://www.4guysfromrolla.com/articles/030911-1.aspx
9) Sign SOAP - http://www.java2s.com/Code/Java/JDK-6/SignSOAPmessage.htm
10) Asymme. Cryptography - http://www.java2s.com/Code/CSharp/File-Stream/Illustratesasymmetriccryptography.htm
11) Wstęp do WCF:
    http://msdn.microsoft.com/en-us/library/ee958158.aspx
    ! http://msdn.microsoft.com/en-us/magazine/dd315413.aspx
    ! http://www.maciejaniserowicz.com/post/2010/03/01/WCF-Auth-starter-zalazek-aplikacji-klient-serwer-z-uwierzytelnianiem-usernamepassword.aspx
Zasoby WCF na eggheadcafe - http://www.eggheadcafe.com/searchform.aspx?search=WCF

Dotnetmaniak - http://dotnetkicks.com/tipsandtricks/C_WebClient_Usage:

Ciekawe strony do ogólnego rozwoju

Nauki ścisłę:

Ważne (jeszcze aktualne)linki do Crystal Reports

środa, maja 09, 2012

Zasoby JS i nie tylko z MSDN

MSDN ma czasopismo “MSDN magazine” (poszukiwanego tematu np. “WCF” można poszukać poprzez wybranie opcji “Topics” na górze) oraz portal “Script Junkie”. Oba te miejsca dosyć gruntownie traktują o technologiach JS i .NET.

Ciekawe pakiety z NuGet dla wsparcia WCF (z wykorzystanie OAuth):

Odwieczny temat, pozbycie się niektórych wad JS (mimo książki “JS Good Parts”) – chodzi o podejście do zamykania (closures).  O tym rozpisywało się wiele autorytetów np. Vogel, Papa, Addy Osmani, Crockford, Hanlock, Hudlock. Tym razem mam inne źródła:

Teraz pora na biblioteki dodatkowe do JS, KnockOut i JQ wraz z wtyczkami do nich:

 

    Co tam panie w CR?

    Jak zwykle dużo jest na facebooku. Tam znalazłem:

    1. Rozbiegówka do Crystal reports - http://scn.sap.com/community/crystal-reports
    2. Video – z zasobów twarzo-ksiażki: http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/60187541-dd10-2e10-41a3-bc5d3f3e4ae9&overridelayout=true

    Skryptowanie w JS

    Nauka jQ - http://www.learningjquery.com/.  Przygotowanie do bindowania - $("div").data("imaDiv", true) – oznacza to przypisanie do jakiegoś div-a nowej zmiennej o wartości ‘true’.

    Fundamentem każdej strony wysyłającej dane od klienta do serwera jest kontrola danych zarówno po stronie klienta jak i po stronie serwera z jednakowym naciskiem na szczegółowość kontroli po obu stronach. Tak twierdzi Tim Kulp na stronach wirtyny MSN ScriptJunkies w artykule “Lockdown Pt 2 – Sanitazation and Data Security”. Pierwszy etap kontroli do tzw. Input Validation, drugi to Sanitazation and Data Security. Niebezpieczeństwo wynika z korzenia architektury maszyn von Neumana – dane są traktowane jako kod. W przypadku JS i HTML powoduje to możliwość ataku poprzez podsunięcie pod ciąg zawierający dane jakiegoś kodu i nosi to nazwę XSS (Cross Site Scripting) – opis tego rodzaju ataków jest omówiony w innym artykule na MSDN. Sanitazacja oznacza wyczyszczenie danych ze szkodliwego kodu. Istnieją po stronie klienta (przeglądarki z JS)  bezpłatne biblioteki do czyszczenia kodu – ESAPI4JS (OWASP) i jquery-encoder (wtyczka do jQ). Przesyłane dane można szyfrować przy pomocy biblioteki jCryption (ma ona wersję zarówno dla php jak i js). Proszę się nie obawiać tego, że algorytmy szyfrowania są dostępne w kodzie źródłowym – bez obaw, podstawą bezpieczeństwa jest KLUCZ a nie sposób jego użycia. Cz. I teo artykułu mówi o procesie Input Validation w oparciu o metodykę NIST i OWASP (OWASP Top Ten project) - http://msdn.microsoft.com/en-us/magazine/hh314542.aspx.

    piątek, kwietnia 13, 2012

    Ciekawostki

    Index Tiobe pokazuje spadek Java (po niechlubnej wpadce z Apple) z pierwszego miejsca na drugie (pierwszą pozycję zajął C!), zaskakuje pojawienie się w pierwszej 50 języka zapuszczonego przez Microsoft – Visual FoxPro (42 miejsce).

    Portal ‘scriptsearch’ ma wiele ciekawych nowości:

    Nauka rozszerzenia z Devexpress –   CodeRush - http://devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/. Bardzo pouczająca jest pierwsza lekcja - http://tv.devexpress.com/#TATIntroCodeRush;CodeRush+with+Refactor!+Pro.product;1, ale czy to nie upośledza programisty i zwalnia go od myślenia?

    Nauka HTML 5 - http://www.htmlgoodies.com/html5/client/unleash-the-power-of-hardware-accelerated-html5-canvas.html?eml=marekw%40coig.katowice.pl#fbid=f7Rae44D2qj

    Nauka w wirtualnym laboratorium MS - https://www.microsoftvirtualacademy.com/Studies/SearchResult.aspx

    Nauka JS – uniwersalny portal JS - http://www.impressivewebs.com/javascript-resources-web-app-developers/ – robi wrażenie, tamże bardzo wyczerpująco o wzorcach projektowych w JS - http://addyosmani.com/resources/essentialjsdesignpatterns/book/#writingdesignpatterns – znanego autora Addy Osmani

    środa, kwietnia 11, 2012

    Od nadmiaru Javy głowa boli

    Artykuł w infoworld na temat zainfekowania wirusem komputerów Apple jest skierowany do zachęcenia zaprzestania korzystania z Javy, w przeglądarce internetowej jest ona równie niebezpieczna jak osławiony ActiveX (MS sam zresztą go pogrzebał, ale wtedy Sun triumfował z jakoby bezpieczną technologią java applet). Teraz widać, że hackerzy przerzucili się na inne platformy jak Android, iOS, Java, Flash gdzie jest jeszcze dużo do zrobienia. Nie bez znaczenia w ułatwianiu ataku jest osłabienie czujności klientów uważających swe platformy za bezpieczne. Ostatni atak wirusa/trojana Flashback nie poszedłby tak gładko na platformie Windows gdzie są bardziej wyedukowaniu ludzi i stosujący regularne patchowanie systemu.

    Artykuł ten wręcz mówi o konieczności zaprzestania korzystania z Java. A jest jej blisko 3 mld instalacji na świecie.

    piątek, marca 30, 2012

    Takie sobie ciekawostki

    Początki języka GO firmy Google – jest już wersja 1.0. Tutoriale są tutaj - https://developers.google.com/appengine/docs/go/gettingstarted/helloworld?hl=pl. Jest to trzeci język obok Java i Python który potrafi obsłużyć Google Apps Engine. Co można powiedzieć o tym kierunku? Idzie o uproszczenie programowania trudnych i powtarzalnych fragmentów kodu, np. pisanie obsługi strony www sprowadza się do utworzenia tzw. handler’a danego zapytania (podobnie jak w WCF_, który nakierowywał by dane żądanie ( wg. wzorca URL w adresie) do odpowiedniej funkcji obsługi. Kiedyś musiało to być szybkie i efektywne (najlepiej w C/C++), potem jak moc komputerów wzrosła i pojawiła się Java to dominujące znaczenie miała prostota – dlatego powstały frameworki do uproszczenia i zwiększenia niezawodności obsługi np. AXIS, REST. Podobnie było w C# i cała technologia REST/WCF.Ale i to nie było dobre ponieważ działały one zanurzone w dość skomplikowanym języku Java. Dalsze, radykalne uproszczenie pojawiło się z nastaniem Pythona wyposażonego w różne “baterie”. Ale Google to za mało – wymyśliła jeszcze bardziej prosty język to jest GO. Język ten jest uniwersalny i można w nim pisać różne rzeczy. Przykład prostego handlera:

    package hello

    import (
        "fmt"
        "net/http"
    )

    func init() {
        http.HandleFunc("/", handler)
    }

    func handler(w http.ResponseWriter, r *http.Request) {
        fmt.Fprint(w, "Hello, world!")
    }

    Z GO jest podobnie jak z NODE.JS – idealnie upraszcza sprawę oprogramowania strony serwerowej aplikacji internetowych, ale gorzej jeżeli chodzi o wydajność. Mało firm może sobie pozwolić na eksperymenty z tymi nowymi skryptowymi językami w sytuacji kiedy nie dysponuje zasobami sprzętowymi jak Google, ciągle liczy się wydajność a nie elegancja kodu.

    Inny temat związany z Google – zapewnienie prywatności i jej monitorowanie. W odpowiedzi na liczne uwagi na ten temat Google udostępni nowy monitor prywatności użytkownika - https://www.google.com/settings/general?hl=en.

    środa, marca 28, 2012

    Ciekawostki programistyczne

    Niezwykle ciekawe linki do dokumentacji o CR:

    Niezwykle ciekawe zasoby z MS:

    Niezwykle ciekawe zasoby nt. Java: http://www.greenfoot.org/download/

    Niezwykle ciekawe na temat JS:

    Niezwykle ciekawe zasoby na temat .NET:

    Nowe narzędzia dla przeglądarek internetowych

    Świetny artykuł w infoworld na temat narzędzi wspomagających WebDevelopera. Oto one:

    Aplikacje na Androida

    Na TechRepublic jest autor piszący dużo na temat tworzenia aplikacji na Androida – William Francis. Jeden z jego artykułów traktuje o obsłudze aplikacji RESTFull - http://www.techrepublic.com/blog/app-builder/calling-restful-services-from-your-android-app/1076?tag=content;siu-container. Warto się temu przyjrzeć. Jeszcze jeden opis pełnej aplikacji - http://www.techrepublic.com/blog/app-builder/create-your-own-android-sound-board/334?tag=content;siu-container.

    Inny portal codeproject zamieścił super artykuł “Android: How to communicate with .NET application via TCP” o komunikacji między Androidem a aplikacją w .NET poprzez użycie niestety płatne dla celów komercyjnej platformy Enter Messaging Framework.

    Porównanie JQ z Kendo UI - http://jqueryuivskendoui.com/

    piątek, marca 09, 2012

    Szczegóły kontrolki DataGridView cz.1

    Jest to drugie pokolenie “siatki” danych po DataGrid, może “łyknąć” do 100 tyś. wierszy i jest jeszcze bardziej skomplikowana od swego poprzednika. Idea działania jest taka: pobierz dane lokalnie, zrób z nimi co chcesz a potem spróbuj zapisać je z powrotem na serwer. Korzysta z zasady buforowania optymistycznego – tj. konflikty w danych rozstrzygane są dopiero przy próbie zapisu, dzięki temu nie ma blokady dostępu.

    W sieci jest mnóstwo zasobów na ten temat, takie najbardziej “ludzkie” to:

    1. http://www.dotnetperls.com/sqldataadapter
    2. http://stackoverflow.com/questions/710064/adding-text-to-datagridview-row-header
    3. kapitalna prezentacja - http://windowsclient.net/learn/video.aspx?v=13402

    czwartek, marca 01, 2012

    Ciekawostki dla programistów

    Firmowana przez portal ZURB strona prezentująca ciekawe skrypty o “wadze” poniżej 10K - http://10k.aneventapart.com/1/Entry/91. Galeria wszystkich oraz wybranych jako najlepsze jest tu - http://10k.aneventapart.com/1/.

    Eric Lippert – znany bloger z MS ma bardzo ciekawe artykuły o wnętrznościach .NET-u - http://blogs.msdn.com/b/ericlippert/archive/tags/brittle+base+classes/

    Wrzawa na temat braku prywatności w sieci - http://blogs.computerworld.com/19770/apple_google_reach_privacy_deal_but_is_it_enough?source=CTWNLE_nlt_blogs_2012-02-23. Masz do  końca lutego czas na wymazanie swojej tożsamości - http://www.itworld.com/security/252290/last-day-tell-google-forget-you?source=ITWNLE_nlt_top10_2012-02-24

    Dlaczego powstają procesory wielordzeniowe? Może tu działa nie zasada Moore’a – coraz trudniej podnieść taktowanie zegara procesora bez podwyższenia jego temperatury, lepiej zrobić tak: wstawić KILKA wolniejszych CPU z mniejszą emisją ciepła, postawić układ koordynujący ich pracę  i nazwać to układem WIELORDZENIOWYM (multicore).

    poniedziałek, lutego 20, 2012

    Ciekawe linki

    Świetny kurs JS - http://jqfundamentals.com/book/index.html, a informacja pochodzi ze strony - http://citizen428.net/blog/2010/08/12/30-free-programming-ebooks/. Praca z PDF-ami. Zapełnienie formularza przygotowanego w PDF-ie poprzez program - http://www.codeproject.com/Articles/23105/Programmatically-Complete-PDF-Form-Fields-using-Vi. Uproszczone wprowadzenie do szyfrowania w .NET - http://www.codeproject.com/Articles/10154/NET-Encryption-Simplified.

    Ciekawy artykuł na temat parsowania formatu PDF - http://www.codeproject.com/Articles/12445/Converting-PDF-to-Text-in-C.  Autor przucił bibliotekę itext na rzecz PDFBox. (piękny link z muzyką - http://pdfbox.org/sugar-hill-gang-apache-jump-on-it/). Aktualny link do ściągnięcia – PDFBOX –> http://sourceforge.net/projects/pdfbox/files/latest/download?source=files. To wszystko działa dzięki IKVM.NET. Inny projekt to scalanie plików PDF - http://www.codeproject.com/Articles/28283/Simple-NET-PDF-Merger.

    Podpis cyfrowy PDF – opis jak to zrobić - http://www.codeproject.com/Articles/14488/E-signing-PDF-documents-with-iTextSharp wraz z kodami źródłowymi oraz podobna biblioteka - http://www.codeproject.com/Articles/29274/Digital-Signatures.

    Super cytat – “He usually works late hours with some heavy music and prefers to test and prove everything to his own satisfaction before committing himself and likes to finish what he starts without interruptions. ” z http://www.codeproject.com/Articles/6623/Porting-Java-Public-Key-Hash-to-C-NET na temat wymiany kluczy między Javą (Unix) a .NET-em.

    Wymienialność kryptograficzna między Javą a .NET-em:

    Informacja o dodatkowej funkcjonalności w C# przy przejściu z wersji 2.0 do 4.0 - http://www.codeproject.com/Articles/327916/C-Language-Features-From-C-2-0-to-4-0

    piątek, lutego 10, 2012

    Nowinki w piątek

    Początek weekend lub jak kto woli koniec tygodnia takie oto przyniósł nowinki:

    czwartek, lutego 09, 2012

    Różności o PDF-ach

    Oficjalny blog bezpieczeństwa firmy ADOBE - http://blogs.adobe.com/security/page/2. Adobe energicznie promuje swój format PDF. Dodaje zabezpieczenia i podpisy.  Ale są pewne kłopoty związane z wprowadzeniem “piaskownicy” tzw. trybu chronionego (Protected Mode). Czasami nie chcą  się zainstalować czytniki kart. Obejście jest podane tutaj - http://kb2.adobe.com/cps/860/cpsid_86063.html#main_smartcard. Po wykupieniu firmy echosign Adobe zaproponowała także nową usługę - https://secure.echosign.com/public/home – nawet się tam zarejestrowałem - https://secure.echosign.com/public/home

    Ciekawostki programistyczne

    Dużo mówi się o nowych językach programowania choćby wspomnieć o Dart (firmowana przez Google odmiana JS), podczas gdy stare są wciąż niedoceniane. Tak jest w przypadku Haskell’a. Jego ciekawe cechy zostały opisane na stronie tutaj gdzie opisano nawet framework do pracy z tym językiem. Jak widać  tu jak i w przypadki innych wschodzących języków (np. Ruby ma RoR) liczy się nie tyle język ile infrastruktura wokół niego jak biblioteki, frameworki czy inne narzędzia wspomagające.

    Innym, pomocnym narzędziem a na dodatek agnostycznym względem języka  jest  Cloud9 IDE - http://c9.io/. Jak nazwa wskazuje jest to narzędzie – edytor do tworzenia oprogramowania w różnych językach. Dla projektów open-source jest ono darmowe. W dużej mierze to IDE wspiera node.js. Do języka node.js (serwerowej odmiany JS  jest niezły tutorial  - http://nodemanual.org/latest/nodejs_dev_guide/creating_http_requests.html). Uwaga Cloud9 IDE nie lubi IE8!.

    Zasoby do nauki programowania:

    Ciekawe dwie strony (z których wychodzi wiele innych, ciekawych pomysłów):

    1. Portal codemirror.net -
    2. Tworzenie rozszerzeń do przeglądarek - http://kangoextensions.com/ – cała maszyneria do tego jak się tworzy przykładowe rozszerzenie pokazane jest tu - http://kangoextensions.com/blog/kangogmailchecker/. Tworzy rozszerzenia nawet dla IE!
    3. Strona o jQ - http://anton.shevchuk.name/jquery/ ale autor jest też twórcą jQuery-PHP oraz Online Chart Buildera. Fajny tutorial o jQ, np. o animacji - http://anton.shevchuk.name/javascript/jquery-for-beginners-write-animation-plugins/
    4. I o closure - http://anton.shevchuk.name/javascript/google-closure-for-beginners-components/

    Oracle – dostęp do bazy poprzez .NET w  VS:

    1. http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html?msgid=3-5804196843
    2. http://www.oracle.com/technetwork/topics/dotnet/oow-events11-452985.html?msgid=3-5804196843

    piątek, stycznia 27, 2012

    Ciekawostki różne

    Dla poczatkujących – wprowadzenie do C# na techotopii oraz http://www.csharpcourse.com/. Kodowanie w KODU może być przyjemne - http://www.kodugamelab.com/. Tworzenie diagramów - http://www.diagram.ly/ i sekwencji przepływów - http://www.websequencediagrams.com/. Zasoby naukowe w YT - http://www.makeuseof.com/tag/14-youtube-playlists-watch-learn-computer-programming-quickly/ to wszystko i jeszcze więcej można znaleźć na - http://groups.diigo.com/browse?cg_id=4.

    Edytory deweloperskie on-line: http://www.smashingapps.com/2010/12/07/11-robust-web-based-editors-to-code-directly-from-your-browser.html oraz coś innego, podobnego dla deweloperów – codemirror.net.

    Briefing Gartnera o chmurze - http://www.itbriefingcenter.com/programs/gartner_1310_hp.html. O tym, że Apple goni Androida na Techrepublic.

    Pożyteczne dodatki do JQ - http://addyosmani.com/blog/31-jquery-snippets/

    Jak przejść do strony z wątpliwym (niezaufanym) certyfikatem SSL - http://www.nakov.com/blog/2009/07/16/disable-certificate-validation-in-java-ssl-connections/ – w javie.

    Java i .NET – już się nie drą jak kot z psem - http://www.kevingao.net/wcf-java-interop

    Projekt Bootstrap – od Twitter’a, są to pożyteczne szablony do wykorzystania przy tworzeniu własnych projektów webowych. Artykuł na webhosting na temat ofensywy Amazon – daje ona developerom  za darmo 750 godz/mc dostępu do swej chmury przez rok! Atak NODE.JS – nowe możliwości jakie daje internetowe środowisko developerskie Cloud9 – też na webhosting.    Dawno zapomniany, ale teraz wreszcie go znalazłem tutorial o WPF dla normalnych zjadaczy chleba - http://www.wpftutorial.net/Home.html.  Jeszcze jeden tutorial tym razem o REST - http://www.robbagby.com/ (http://www.robbagby.com/tag/rest/).

    W tym duchu idąc – zasoby RESTOWE:

    REST in WCF Blog Series Index

    Posted by RobBagby on August 5, 2008 · 5 Comments

    As some of you know, I am in the midst of a blog series on REST in WCF.  Further, I have been hard at work on a series of screencasts on the same subject (in conjunction with Ron Jacobs).  My colleague Tim Heuer relayed to me that I didn’t have a single post that we can point a person to that provides links to all of the posts and screencasts.  I will keep this post updated with all of the info:

    Blog Series:

    Screencast Series: