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

środa, listopada 02, 2011

Dart–atak klonów JS

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

poniedziałek, października 31, 2011

wtorek, października 25, 2011

Co z językami skryptowymi?

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

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

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

Uratowane projekty z laboratorium Google

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

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