środa, maja 09, 2012

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:

wtorek, stycznia 24, 2012

Zasoby na IBM developerWorks

Są bardzo ciekawe. Oto parę tematów:

  1. Uniwersalne przekształcenie XML w HTML/PDF – narzędzie w Javie – CSSTOXSLFO (najpierw XML=>XSL-FO a potem XSL=>PDF/Postscript). Na ten temat jest cały artykuł “Pushing XML data in HTML and PDF using a single XSLT stylesheet”.
  2. Na temat bibliotek do tworzenia aplikacji w JS – underscore.js. Inna, już nie tak minimalistyczna biblioteka realizująca  paradygmat MVC – BackBone.js.  Prosty przykład - http://arturadib.com/hello-backbonejs/docs/2.html. MVC zaczęło się w Javie stąd link - http://www.oracle.com/technetwork/articles/javase/index-142890.html. IBM oczywiście popiera node.js.

wtorek, stycznia 17, 2012

Zasoby Telerika do nauki technologii MS

Firma Telerik działa aktywnie w Bułgarii, popularyzatorem jest Svetlin Nakov. Oto co proponują (materiały + video):

  1. Aplikacje mobilne, podstawy HTML - http://academy.telerik.com/student-courses/mobile-development-course/resources
  2. Programowanie w C# - http://academy.telerik.com/academy-courses/csharp-programming-fundamentals
  3. Platforma .NET - http://academy.telerik.com/student-courses/web-applications-development-asp-net-course/resources

Pan Nakov wspaniałomyślnie udostępnia swe książki - http://www.nakov.com/books/ nawet jest programowanie aplikacji internetowych  w Javie.

Różne ciekawostki

Biblioteka JQ/JS/HTML5 w MS – kursy na różne okazje - http://msdn.microsoft.com/pl-pl/library/hh150136.aspx

Przeglądarka wszystko wytrzyma – testowanie różnych języków programowania w środowisku przeglądarki internetowej - http://www.techrepublic.com/blog/australia/try-these-languages-in-your-browser/429?tag=content;siu-container. Są tam różne języki, warto spróbować Haskell oraz ironPython (szczególnie część 6 i 7 która mówi o integracji z .NET) a pod linkiem http://ironpython.net/documentation/ jest dużo na temat Silverlight oraz dokumentacji (patrz też link www.voidspace.org.uk) wraz z odnośnikiem do książki IronPython in Action. Użyteczne linki na temat Pythona - http://www.ironpython.info/index.php/Useful_Links

Zamiennik Crystal Reports – Clear Reports (https://www.inetsoftware.de/products/clear-reports/editions) też swoje kosztuje, ale podobno czyta szablony z CR. Ma dwie wersje: .NET i Java. Stosuje technikę IKVM.NET.

Udało mi się pobawić z IKVM.NET, działa. Można w środowisku .NET wywoływać klasy z Javy przekształcone w DLL. Daje to niesamowite możliwości np. klasy w Javie komunikują się poprzez  JDBC z bazami (wystarczy jeden plik jar realizujący obsługę dostępu do bazy) a po przekształceniu w DLL można je wywoływać z poziomu C#. Daje to niesamowitą elastyczność i zero konfiguracji, ale jest też niebezpieczne – każdy może sobie napisać programik udostępniający te dane poza kontrolą admin-a. Podobnie zresztą się ma z ODBC (ale tu może w pewnej mierze ingerować a administrator). Dostęp do danych centralnych (serwerowych) musi odbywać się poprzez oprogramowanie na serwerze (warstwę pośrednią) realizujące filtrowanie dostępu do bazy dla zdalnych użytkowników.

Zasoby z portalu AJAXLINE:

Zabawka MS – LightSwitch – jak wystartować - http://blogs.msdn.com/b/bethmassi/archive/2011/12/01/beginning-lightswitch-getting-started.aspx

czwartek, listopada 03, 2011