piątek, września 16, 2011

Różności o JS

Biblioteka emulująca LINQ w JS lub inna na codeplex. Strumienie (streams) w JS, czy mogą się kiedyś przydac?. Kryptografia w JS (tamże jest wiele linków do innych podobnych projektów tak, że kiedy będzie trzeba można coś wybrać):

Biblioteka knockout. Blog o JS - http://lambda-the-ultimate.org/node/4308#comment-66267. Czasami trzeba coś posprawdzać w skryptach i pobawić się debuggerem:

Na czym tak naprawdę polega sprawa web-workera w HTML5 – wg. microsoft. Tak na pograniczu trochę o JS i HTML a trochę o C# – czyli devcurry

środa, września 14, 2011

O MS i jego technologiach

Kolejne narzędzie do monitorowania wymiany danych w aplikacjach internetowych – httpwatch. Niestety wersja basic jest darmowa, inne są płatne – ok. 400 dolarów. Podobny efekt dostaniemy stosując FireBuga w Firefoxie lub inny monitor np. Fiddler lub DynaTrace (szczególne do testowania AJAX). Można też skutecznie wykorzystać wbudowany w IE8/9 debugger (F12). Czym się różni cURL do przegladarki? Przegladarka wczytuje stronę i wszystkie odnośniki do jej zasobów (style, js, linki) i następnie je “wykonuje” na tej stronie, cURL czyta tylko to co jest pod adresem, który mu wskażemy i nie zagłębia się dalej. Najlepsze narzędzie do darmowego dzielenia partycji GPARTED.

Porady MS z MSDN na temat oprogramowania OneNote w środowisku VBA w Excelu.

Jak tworzyć aplikacje mobilne? Można pójść w kierunku modelu natywnego tzn. tworząc kod natywny (binarny) pod dany system operacyjny (Apple iOS, Google Android, Symbian, HP WebOS czy MS Windows Phone 7/Windows 8 Mango) ale to prowadzi do zróżnicowania/fragmentacji bazy kodowej (pod każdy OS inny kod). Inna droga to tworzenie aplikacji serwerowej i ściąganie jej na urządzenie mobilne (w tym przypadku kod serwerowy jest dowolny, może to być PHP/Python/Ruby/.NET/J2EE/EXT-GWT pod warunkiem, że strumień posyłany do urządzenia zawiera HTML5 i JS – a właściwie HTML/JS/CSS). Ten ostatni sposób jest uniwersalny – działa na każdym urządzeniu, ale ma wadę jest mniej efektywny od kodu natywnego i wymaga framweworka do tworzenia aplikacji mobilnych. Takich frameworków jest wiele choćby DHTMLX Touch (mamy), jQuery Mobile, Sencha Touch, czy framwork firmy Nitobi itd. Czyli druga droga jest lepsza od kodu natywnego ale i taki wymaga rozdwojenia (sforkowania) kodu aplikacji na urządzenia mobilne i stacjonarne. Istnieje jeszcze inne rozwiązanie - generatory aplikacji do tworzenia kodu natywnego. Pisze się w Javie a potem generuje kod natywny dla danej platformy - tak działa bezpłatne oprogramowanie Appcelerator (kupił on ostatnio firmę Aptana znaną z narzędzi typu RAD bazujących na Eclipsie i przeznaczonych dla JS/PHP/Ruby/HTML) lub rozwiązanie firmy XAMARIN - Mono Android/Mono Touch (tam się pisze w #C z .NET), są też rozwiązania komercyjne lub ciekawostka App Inventor firmy Google. Ważną sprawą jest WYDAJNOŚĆ – kod aplikacji mobilnych nie powinien być zbyt skomplikowany (rozdmuchany graficznie i złożony logicznie) ponieważ te urządzenia mimo wszystko są wolne (patrz jak długo ładują się np. popularne portale społecznościowe twitter czy facebook). Tutaj nasze aplikacje mogą się zachowywać gorzej niż na starych PC-tach z Windows XP i IE 6/7 na pokładzie. W większości przypadków w tych urządzeniach stosuje się procesory architektury ARM firmy Qualcomm – najpopularniejsza rodzina CPU to SnapDragon

Rady praktyczne przy tworzeniu aplikacji mobilnych: a) stosowanie szablonów stron – projekt boilerplate, c) przeczytanie porad na webhosting, c) zapoznanie się z artykułem Hanselmana o CSS3 media queries

Znalezione na webhostingu.pl. Wychodząc naprzeciw programistom w JS powstaje nowy framework JS czyli biblioteka funkcji JS – Kendo UI – na bazie dobrze znanego jQuery (jak często nazywa się ją “zabójca” Flasha na ten temat jest świetny artykuł w witrynie appendto). Na razie jest ona dostępna na licencji GPL3 (niekomercyjnej). Wsparcie komercyjne będzie później jak również i wersja MOBILE (listopad) – ich plany (roadmap) są tu. Tu i ówdzie  pojawia się firma Telerik (co to może znaczyć?). Uwaga: To jest wersja BETA!. Czy KENOD UI to po prostu  jakiś tam zamiennik jQuery UI i wtyczek zintegrowanych w jedną całość? Czyli Kendo UI to wszystko graficzne poza bazowy framework jQuery. Co jeszcze wyróżnia Kendo UI – zintegrowane pojęcie DataSource oraz Templates (Szablonów), w jQuery to jest jeszcze w powijakach. Kendo UI integruje się też z zewnętrznymi bibliotekami KNOCKOUT oraz JQ template.

Proszę popatrzeć – wszędzie przewija się biblioteka jQuery! Jest specjalny dodatek do VS 2010 z intellisense dla JQuery do ściągnięcia tu. Prezentacje są na blogu - http://frontenddesignconference.com/presentations/jquery_nuts_bolts_and_bling

Co daje HTML5: a) nowe elementy semantyczne strony (header, footer, article), b) nowe elementy formularza (gui i walidacje po stronie klienta), c) wsparcie natywne dla mediów (video i audio), d) kanwa (rysowanie 2D na płótnie) e) obsługę gniazdek sieciowych (web socket), f) wsparcie aplikacji offline (lokalne baza danych), g) pamięć lokalne zamiast ciasteczek h) praca asynchroniczna (web workers) i) geo lokacja. Należy pamiętać, że wsparcie CSS3 to nie HTML5.

Co zrobić jak się nie ma pełnego pakietu MS Office? Spróbuj Office Web Apps (Word, Excel, PowerPoint and OneNote pracujące w przeglądarce). Jeden warunek – konto w MS Live. Ale dzięki niemu dostajesz dodatkowo 25 GB pamięci w chmurach za darmo.

Zrzucił jarzmo – kto? Google. Jakie? Znaczek “wiecznej” bety czyli “Preview” na stronie głównej GAE. Czym się różni Google App Engine od MS Azure? Teraz niczym, obaj są usługami płatnymi. Ostatnio GAE ma zdjęty napis “Preview” więc to już produkt komercyjny, ma podwyższone opłaty co trochę podwyższyło ciśnienie niektórym deweloperom. Ale jest jena subtelna różnica – MS Azure pozwala tworzyć chmury prywatne lub hybrydowe (obok publicznych). Taka mania skrywania swej własnej infrastruktury serwerowej może Google nie wyjść za dobrze. W MS wiadomo, kupuje się MS Windows Server 2008 + inne dodatki (rozwiązania serwerowe jak SharePoint + Office Web Apps) i ma się u siebie chmurę do własnej dyspozycji z pełna kontrolą dostępu. Pod tym względem rywalami dla MS są Dell i VMware. MS ma też partnera Futjitsu.

Cięcia kosztów czy co? Podobnie jak Google obciął wiele peryferyjnych projektów programistycznych w swym Google Labs tak i MS oświadczył, że pragnie skończyć życie OLE DB (dokładnie chodzi o OLE DB dla MS SQL Serwera 2011 – Denali). Dostawcy OLE DB dla innych baz (np. Oracle) są nietknięci. OLE DB ma w swej nazwie OLE, a to już wymarła technologia (skończyła się wraz z Windows XP) bazująca na API z COM+. Co w zamian? Stare, dobre, portowalne na inne platformy API dla ODBC. A ODBC jest okrzepłym, ogólnie przyjętym standardem ANSI. Zbiega to się z innym wydarzeniem – MS stawia na dobre, szybkie aplikacje w C++ i zachęca programistów do korzystania z tego języka. Ale to może zbieg okoliczności. A oto lista wszystkich kandydatów na nieboszczyków, czyli produktów, których wsparcie się niebawem może zakończyć. Powyższa akcja w nowomowie MS (i nie tylko) nazywa się równaniem do szeregu – alignment. Uwagi techniczne: podczas podłączenie poprzez OLE DB następuje uruchomienie całej “maszynerii” uniwersalnej biblioteki COM do  obsługi dowolnego źródła danych, inicjacja ODBC odbywa się poprzez “skok” do DLL pełniącej funkcję zarządcy ODBC – ODBC32.dll , która jest odpowiedzialna za wywołanie odpowiedniego sterownika (też DLL) do obsługi danej bazy. Jest to krótsze i wydajniejsze. Podobny mechanizm działa w przypadku JDBC – do połączenia wystarczy pojedynczy plik JAR bez dodatkowego narzutu warstwy zarządzającej. Jest to dobre bo szybie i wydajne ale stwarza też kłopoty. W przypadku OLE można było zarządzać pulą połączeń. W przypadku ODBC / JDBC ktoś musi tym również zarządzać. Kto? Nie wiadomo. Na stronie jest dokument opisujący w sposób techniczny różnice działania.

Wychodząc naprzeciw programistom MS udostępnił SSDT – SQL Server Development Tools – narzędzie ułatwiające pracę z bazami danych (oczywiście MS-owymi). Jest tutaj wzmianka o LocalDB – następcy MS SQL Server Express. Utworzenie bazy to polecenie:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn>SqlLocalDB.exe create LocalDBDemo

Podpięcie się do niej:

(localdb)\LocalDBDemo

Więcej na temat localDB - go.microsoft.com/fwlink/?LinkId=221201 – wchodzi ona w skład MS SQL Server o nazwie Denali i określa się jako - SQL Server Express LocalDB

Wszystkie przeglądarki są nasze, żadnej nie zaniedbamy. Pod tym hasłem ewangeliści MS zachęcają do stosowania HTML 5 nawet na “przestarzałych” wersjach przeglądarek (patrz ich własnych wersji IE 6/7/8). Rada – sprawdzić z jaką przeglądarką ma się do czynienia i nie wierzyć zawartości UA (User-Agent). Podobny artykuł na ten temat jest tutaj.

Jak wywoływać PInvoke? Tak - tu.

Wielkie nieba! Herezja do potęgi! Instalowanie node.js na IIS! Hanselman jest dobry.

Warto zbadać:

  1. Gry w JS/HTML5 - http://click.email.microsoftemail.com/?qs=693c747dc51c5c434d275ff0731f519cc21d9ee61b4229fe1f285b759770ff6ba9e9f2acf249abc9
  2. HTML5 Gaming: Animating Sprites in Canvas with EaselJS
    When you want to write casual games using the HTML5 Canvas element, you'll need to find a way to handle your sprites. See how to use EaselJS in PiratesLoveDaisies, an HTML5 tower defense game. In this tutorial: how to use your existing sprite elements and animate them.
  3. Channel9::GoingNative[1]
    See demos of the next Visual C++ IDE. Watch an interview of the man behind Microsoft's implementation of the C/C++ Runtime Library CRT. Listen to what people said about the latest C++ and Beyond conference.

wtorek, września 13, 2011

Luźne myśli we wtorek

Czym się różni netbook/laptop od tabletu? Wydaje się, że tylko ciężarem. Jeżeli uda się zmniejszyć wagę i grubość netbooka (a tak jest inicjatywa Intela) to taki netbook jest atrakcyjniejszy od tabletu: większa moc obliczeniowa i lepsza ergonomia pracy. Prawo Moore’a może ulec zmianie:  podwaja się nie moc ale wydajność (efficiency). Już niedługo PHP będzie dystrybuowany z repozytorium GIT – taki jest wynik głosowania ludzi zarządzających rozwojem tego języka. Podobno atak hackerski miał miejsce na serwery dystrybucyjne Linuksa – nic się nie stało, źródła były podpisane przez SHA-1. Co na dają certyfikaty: szyfrowanie, integralność, autentykację oraz niezaprzeczalność. Nowy język HaXE.org – raz piszesz a potem kompilujesz do JS, C#, Java, Flasha czy tez PHP. ING zaleca do bankowości online stosowanie IE 8/9 i zaczyna nabór do projektu aplikacji mobilnych. Panda – firma hiszpańska wydała bezpłatna wersję programu antywirusowego w chmurach. Dla użytkowników Androida – portal Guardian dostarcza treść elektroniczną do tych urządzeń mobilnych. Jeden z ludzi Kasperskiego potwierdził śmierć MD5 – rozłożyły go tablice (rainbow table) np. przechowują hasła do 10 znaków (małe litery) lub 8 znaków (małe/duże, cyfry i spacje) – dzięki temu można przejrzeć wszystkie hasła stosując technikę “brutal force”. Trochę mogą pomóc dwie techniki: wydłużenie hasła i zastosowanie soli (salt) – ale to tylko na krótko, niedługo okaże się, że tablice mogą się powiększyć. Dlatego zaleca się tzw. two-factor authentication (np. hasło i smartcard lub token). Dobrze chociaż, że po aferze z certyfikatami z DigiNorm nie zaprzestano ufać w PKI chociaż Mozilla wystosowała swoiste ultimatum do głównych urzędów certyfikacyjnych (root CA) z prośbą o udowodnienie stosowania przez nie dobrych praktyk.w Jak to będzie z Windows 8 na tabletach i smartfonach? Będzie można uruchamiać istniejące aplikacje windowsowe czy nie? Kogo by nie zapytać to jest inna odpowiedź. Obrażony na MS, że stworzył wersję Windows 8 na ARM, Intel mówi, że NIE. Rywal Intela firma AMD mówi, że trzeba je przekompilować. Microsoft mówi mgliście. Dlatego czekamy na konferencję BUILD – wtedy zobaczymy. Jak się mają języki programowania? Dobrze, oto lista największych zdobywców TIOBE (bierze pod uwagę ilość ofert pracy): Groovy (166% wzrostu), C# (107% od 2009), Cobol (chociaż zajmuje 46 miejsce to odnotowano wzrost, dlaczego? Teraz banki modernizują stare aplikacje w nim napisane), Javascript (91%), Ruby (70%), PHP (67%), Java (51% ale i tak zajmuje I-sze miejsce), Pytho (50%), F# (46%), Perl (26%), C++ (22%), Fortran (6%). Dane o językach na podstawie eWeek. Dużo też mówi się o języku D. Powstaje w Google język DART (obok GO) jego twórcami są Gilad Bracha i Lars Bak – ma zastąpić JS w przeglądarce.

Tematy z zakresu JS

Piękna i bogata biblioteka do JS wraz z (opcjonalnie) wsparciem strony serwerowej (PHP jest bezpłatne) – nitobi. Jak wystartować z JQ? Tutaj jest świetny artykuł na ten temat. Połączenie JQ z JS – tu. Zaawansowane techniki JS – tu. Biblioteka typu MVC – knockout (poszukaj w google “knockout js”). Wzorzec do budowanie stron HTML – boiler plate. Co wybrać EXT-PHP czy PHP-EXT?

poniedziałek, września 12, 2011

Zaburzenia na rynku sprzętu (CPU)

Co się dzieje z mikroprocesorami? Na to pytanie odpowiada arcyciekawy artykuł na łamach “The Register”. Do tej pory w grę wchodziły dwie potęgi Intel i AMD. Odpowiednio do nich dostosowywał się Microsoft pisząc swoje narzędzia pod taką właśnie architekturę I86 w odmianach 32 i 64 bity. I wszystko grało. Nagle pojawiły się dwa zaburzenia:

  • Nvidia tworzy coraz lepsze procesory GPU (linia TEGRA), które potrafią wspomóc CPU w intensywnych obliczeniach zmiennoprzecinkowych (np. łamanie haseł) widzi przyszłość bez Intela i duopol Nvidia/Qualcom
  • powstaje nowa architektura ARM i monopolista Qualcom, który wyposaża w procesory urządzenia mobilne (słynna architektura Snapdragon)

Teraz następuje dywergencja:

  • Nvidia dogaduje się z Qualcom
  • Nvidia integruje CPU z GPU (inaczej od Intela)
  • Intel integruje GPU z CPU (sandbridge)
  • Microsoft tworzy Windows 8, które będzie wspierać architekturę ARM
  • Intel widzi zagrożenie spowodowane niezależnością MS od jego architektury i zaczyna wspierać własne MeeGo

Prawda o Skype

Prawdziwy skarb jaki MS dostał w swoje ręce po zakupie SKYPE jest nie jego funkcje VOIP ale 100 mln prawdziwych (autentycznych) kont sprawdzonych w rozmowach. Ciekawe jako fakt ten zostanie wykorzystany?

Takie sobie nowinki

Gartner przewiduje w swym raporcie, że po okresie spadku zakupów PC ponowny wzrost w drugiej połowie 2012 roku. Twierdzi, że możliwości PC (wygoda, ergonomia, szybkość, pasmo internetowe) w stacjonarnym miejscu nie zastąpią urządzenia przenośne.

Google ma wiele ciekawych miejsc do zwiedzenia:

  • Code Playground: zasoby API dla JS (closure, JSONP oraz funkcje anonimowe) i innych technologii Google (biblioteki JS, wizualizacja danych: wykresy, panele). Przykład pobrania danych z arkusza i ich użycia.
  • API do dokumentów 
  • Uwaga! Jest płatne (399) narzędzie do integracji .NET z Google Docs firmy RSSBUS
  • Oskryptowanie arkusza poprzez ściąganie danych z serwisów webowych i umieszczanie ich w arkuszu Google spreadsheet – ciekawe co mówi EU – dane mają być przechowywane na terenie Unii (ale jakie dane? wszystkie czy te osobowe tylko?). Tutaj przy okazji jest pomysł do zrealizowania – pobieranie kursów walut i prezentowanie ich w arkuszu (doskonała wprawka programistyczne)
  • Zaawansowane techniki JS które musisz znać

Rynek aplikacji do tworzenia mobilnych – jest taka firma Nitobi, która zajmuje się tworzeniem GUI w JS, teraz zainteresowała się RAD-em dla urządzeń mobilnych (PhoneGap). Co z tego wyjdzie? A w jaką stronę zmierza projekt Mono – obecnie pod opieką firmy Xamarin? Ma teraz trzy odnogi: Mono for Android, MonoTouch oraz Mono dla Visual Studio. Są jeszcze dwa inne projekty: .NET for iPhone and .NET for Android. Cena tych RAD jest znaczna – 399 US. Jest jeszcze Google App Inventor.

Najlepsze z najlepszych otwartych projektów:

Kryptografia:

wtorek, września 06, 2011

Kryptografia wymienialna

Prawdziwe wezwanie dla aplikacji posługujących się metodami kryptograficznymi następuje w przypadku gdy zachodzi potrzeba wymienialności danych między różnymi platformami aplikacyjnymi. Jasne są zasady:

  1. Należy przyjąć najmniejszy wspólny podzielnik dla wszystkich platform (bibliotekę zaimplementowaną we wszystkich środowiskach), może to być np. openssl, BC lub Jascrypt (tylko dla Java, nie ma odpowiednika w .NET).
  2. Niektóre biblioteki (BC) można wykorzystać na dwa sposoby, jako rozszerzenie możliwości danej platformy (jak to mam miejsce w przypadku Java JCE) lub potraktować niezależnie jako źródło algorytmów kryptograficznych np. takich, których jeszcze nie ma w implementacji danej platformy np. Blowfish lub bardziej egzotycznych.

Najgorzej się tutaj mają języki skryptowe jak Python lub PHP, tutaj nie ma żadnego standardu biblioteki kryptograficznej i posługuje się zewnętrznymi implementacjami kryptografii. PHP ma dwie biblioteki mcrypt (dobrze udokumentowana z wieloma przykładami) i openssl (źle udokumentowana).

Świetny artykuł na temat uzupełniania danych do pełnego bloku - http://www.di-mgt.com.au/cryptopad.html (po to to i jak działa). Tak w ogóle na serwisie www.di-mgt.com.au jest wiele innych ciekawych artykułów:

  • Praca z alfabetem narodowym – należy pamiętać że kryptografia działa na bajtach a nie znakach oraz MS przyjął kodowanie UTF-8 (dokładnie mówiąc UTF-16LE, zresztą jedynie słuszna decyzja). Konsekwencją tego jest wymóg przekształcenia danych typu String do tablicy bitów (Array of Bytes). Przy okazji wyjaśniło się dlaczego w przypadku podpisu cyfrowego przy pomocy klucza publicznego (digital signature with public key) stosuje się nazwy dwuczłonowe np. SHAwithRSA – jest to bowiem proces dwuetapowy, najpierw jest liczony hash za pomocą algorytmu symetrycznego a potem szyfrowanie kluczem publicznym korzystając.
  • UTF-8 ma wiele wariantów np. UTF-16LE (little endian), UTF-16BE (big endian), jaki to kod w pliku wyznacza jego pierwszy bajt tzw. BOM (byte order mark): UTF-8 ma ‘EFBBBF’, UTF16LE – ‘FFFE’.
  • Należy pamiętać, że wynikowy kod nie przechowywać w polach znakowych ale w binarnych polach blobowych bądź opakować je bezpiecznie przy pomocy base64 (radix64 w PGP) i zapamiętać w polu znakowym (kosztem nieznacznego wydłużenia danych).
  • Podstawowe pojęcie o kluczach w kryptografii 
  • Bardzo dogłębnie wyjaśnienie  kodowania UTF-8. Bazuje ono na UCS – uniwersalnej stronie kodowej. W UTF-8 każdy znak ma zmienną długość, o tym decyduje najstarszy bit w pierwszym bajcie (gdy ma ‘0xxxxxxx’ to oznacza, że jest to “zwykły” znak ASCII, a gdy ‘1’ to oznacza wielobajtowy znak i tak ‘11xxxxxx’ oznacza  że znak zajmuje 2 bajty a ‘111xxxxx’ że trzy bajty). ten pierwszy baj zwany jest też jako bajt wiodący (lead-byte). Reszta bajtów to bajty ogonowe (trail) i mają zawsze sygnaturę ‘10xxxxxx’ .
  • Skrośna platforma kryptograficzna – polega na wykorzystaniu symetrycznego kodowanie blokowego (symmetric block cipher) i korzysta się z jednego z zalecanych algorytmów DES, Blowfish lub EAS. One z kolei mają tryby pracy (ECB, CBC,…). Jedynie ECB nie wymaga wektora inicjującego (szyfruje jedynie w obrębie pojedynczego bloku)

Linki - http://www.di-mgt.com.au/crypto.html#links

Cryptography FAQ
Ten parts of the sci.crypt FAQ. Read these before you ask any questions.

Bruce Schneier's page
By the author of Applied Crytography: Protocols, Algorithms and Source Code in C, John Wiley, 1996, and the Blowfish Encryption Algorithm. Lots of info, papers, newsletters, a very comprehensive links page, and variants of the Blowfish source code.

Peter Gutmann's page
Up-to-date information on cryptography and PKI matters from a leading expert in the field with a good sense of humour. Check out his DumpASN1 C program to read BER-encoded ASN.1 files, his style guide to writing X.509 certificates, and his rant on the M*soft inspired PFX/PKCS-12 standard.

Neal R. Wagner
The Laws of Cryptography: a series of well-explained and informative pages on cryptography and coding and information theory by Neal Wagner, a professor at University of Texas at San Antonio. Includes a lot of Java code.

Snake Oil Warning Signs
Avoiding bogus encryption products: Snake Oil FAQ. "Encryption Software to Avoid" by Matt Curtin.

The Six Dumbest Ideas in Computer Security
Marcus Ranum's introduction to the six dumbest ideas in computer security.

Ross Anderson
An excellent and well-written site on cryptography issues by the Reader in Security Engineering at the University Of Cambridge. Check out his book Security Engineering: A Guide to Building Dependable Distributed Systems. The entire first edition (2001) and some chapters from the second edition (2008) are now available on his site. One of the interesting facts from the second edition is that the most commonly-used password has changed in recent years from password to password1.

Digital Timestamping Service
Matthew Richardson's PGP Digital Timestamping Service will timestamp an email sent to it so you can prove your document existed at a given time. Includes a proof of posting service. Operates in clear, header, text, pgp and binary modes. Dates are old, but it still works.

RSA Lab's Public Key Cryptography Standards
RSA Labs specifications on public key cryptography (the PKCS standards) and other useful stuff.

SUNET crypto archive
A downloadable index of cryptography tools on the SUNET archive, especially for privacy of electronic mail.

Worst hotel in the world

poniedziałek, sierpnia 29, 2011

Ciekawostki

środa, sierpnia 24, 2011

Podstawy programowania w JS (i dla zaawansowanych)

Niesamowite wideo

http://www.wimp.com/truckdrop/

http://www.wimp.com/handmagic/

Ciekawostki

  1. Lista darmowych konwerterów z YT - http://www.itworld.com/software/185709/free-youtube-converters?source=ITWNLE_nlt_personaltech_2011-07-25
  2. PlanetPDF – darmowe oprogramowanie do obsługi PDF lub tipsy i uwagi.
  3. Bezpłatne narzędzia wirtualizacyjne - http://www.windowsitpro.com/article/utilities/free-virtualization-utilities, tamże jest rozdział o PowerShell-u - http://www.windowsitpro.com/categories/category/scripting/don-jones-on-powershell

Ciekawostki

Katalog programów systemowo-narzędziowych i nie tylko pod Linuxem - http://directory.fsf.org/category/gdev/

Ciekawostki programistyczne

wtorek, sierpnia 23, 2011

Linki

piątek, sierpnia 19, 2011

Ciekawostki

Nauka HTML5 na poważnie:

  1. http://developers.whatwg.org/
  2. http://www.w3.org/TR/html5-author/

Witryna ze wzorcem do budowy stron HTML - http://html5boilerplate.com/docs/The-style/

Źródło do ciekawych podcast-ów - http://www.devcurry.com/2011/08/free-podcast-for-developers.html

Wszechstronna strona Yahoo dla deweloperów - http://developer.yahoo.com/javascript/

Czy Android to jeszcze Linux czy nie? Opinia Tornvaldsa - http://www.zdnet.com/blog/open-source/linus-torvalds-on-android-the-linux-fork/9426?tag=nl.e019

DOMPDF - kolejny konwerter HTML->PDF dla PHP. Program do podłączenia się do usługi SkyDrive i traktowania jej jako dysku sieciowego - http://skydrivesimpleviewer.codeplex.com/releases/view/39728. W nowszych wersjach przeglądarek Firefox jest wbudowany tzw. ScratchPad – edytor i wykonawca kodu w JS. Dla dzieci – gra - http://www.ageofempiresonline.com/. Dziura budżetowa fundacji Mozilla po zrezygnowaniu przez Google wydawania paska ToolBar dla najnowszych wersji FF – początek końca? Do Androida – darmowa wersja programu antywirusowego Norton-a, blokuje skradziony telefon poprzez wysłanie na niego SMS-a. Gra online na facebook-u na stronie WCG Poland. Ciekawy serwis o IT - http://www.spidersweb.pl/. Warto obserwować: blog o Firefox. Inny link, taki MSDN o przeglądarce Firefox – nazywa się nawet podobnie MDN. Firefox dla Androida za darmo z Android Market.  Wszystko na temat Android-a znajdziesz po polsku tu nosi swojską nazwę eAndroidowo.pl. Za rok HP zniknie z rynku produktów konsumenckich komputerów PC, tabletów i innych urządzeń przenośnych (oprócz DRUKAREK) i postawi na serwery i aplikacji nimi zarządzające. Dygresja: kiedyś można było oferować swoje produkty wszystkim tj. konsumentom indywidualnym i korporacyjnym. Teraz gdy ci pierwsi są nieprzewidywalni, rzucili się na przenośne cacka, jedyna ostoja stabilności to korporacje ze sztywnymi standardami.

wtorek, sierpnia 16, 2011

GoogleRola

Wygląda na to, że powstanie nowa para parterów Google-Motorola (twórca OS + sprzętu) obok takich par jak Apple/iOS, HP/webOS, RIM Blackberry OS/QNX i Nokia/Windows Phone 7. Celem jest tutaj nabycie patentów jaki ma w zapasie firma Motorola by ochronić przyszłość Androida oskarżanego o naruszanie praw patentowych (oskarżają go starzy wyjadacze Steve Jobs oraz Larry Ellison a podjudza ich Steve Ballmer) a także reakcje na nabycie przez Microsoft/Apple praw do patentów upadłej firmy Nortel.

Jednak taki silne powiązanie Google i Motorola Mobile może zaniepokoić innych producentów smartfonów jak: HTC, Samsunga, Sony/Erricson czy LG.

Producent Udział %
HTC 35.9
Motorola 28.2
Samsung 20.5
Sony/Erricson, LG, Acer 15.4

Wg. http://www.theregister.co.uk/2011/08/15/how_the_moto_acquisition_will_affect_others/

Prawda jest taka, że Android jest systemem skopiowanym, API naśladuje styl Java (dlatego to tak rozjuszyło Oracle), UI kopiuje iPhone od Apple (protest Apple). Nabycie Motoroli i jej IP za 12.5 mld dolarów ma wzmocnić pozycję i wiarygodność Androida tym bardziej, że Google się spóźnił z podwyższeniem swej propozycji nabycia patentów Nortela (chciał dać tylko “pi” mld).

Inni potężni patento-dawcy obok Motoroli to już tylko Nokia (wszystko zostało już dawno wykupione) która wygrała niedawno spór patentowy (o narzuszenie patentów) z Appple za co dostała tylko 450 mln dolarów (http://www.theregister.co.uk/2011/08/15/google_motorola_the_poker_chip_that_cant_be_redeemed/)

Inne pytanie to dlaczego Google nie wybrał za język np. Go (wspomaganego przez Thomsona) i platformę GTK (jak Nokia – MeeGo)

poniedziałek, lipca 25, 2011

Historia kołem się toczy

Wspaniałe podsumowanie ponad 40 letnich prac nad wirtualizacją zapoczątkowaną przez IBM w czasach kiedy na Ziemi panowały dinozaury (przepraszam mainframe-y IBM S/360) w dwóch częściach:

  1. Before 'the cloud' was cool: Virtualising the un-virtualisable
  2. Before the PC: IBM invents virtualisation

Część trzeci – będzie niebawem

Nowa weryfikacja użytkownika

[Regs] Mozilla “wymyśliła” nowy sposób na autentykację – stare poświadczenia czyli email użytkownika (na bazie eksperymentalnego protokołu Verified Email Protocol)+ kryptografia w oparciu o klucz publiczny. Trzeba przekonać dostawców usług pocztowych aby ją zaakceptowali. Prace deweloperskie są w toku na serwerze - https://browserid.org/developers.html.

Historia powstania JS

Na podstawie materiału z webhosting (pośpiesznie ktoś streścił dwa linki):

  1. Autora JS - http://brendaneich.com/2008/04/popularity/
  2. Komentarze - http://lambda-the-ultimate.org/node/4308#comment-66267
  3. Super tutorial o bindowanie widoku z kontrolerem w JS - http://blog.stevensanderson.com/2010/07/05/introducing-knockout-a-ui-library-for-javascript/ (opis biblioteki knockout, podobne projekty zaproponował MS i Gog)

piątek, lipca 22, 2011

Linki w piątek

Dużo się dzieje na stronach webhosting.pl (czasami ich tłumaczenia są trochę nieudolne, jakby przy pomocy translatorów):

  1. Świetny artykuł na temat spojrzenia na JS jako języka niskiego poziomu (w sferze przeglądarki rzeczywiście nie można już niżej zejść), tam też jest lista projektów związanych z JS np. translator CoffeScript /Pythona/C#Perla do JS. Jest to odpowiedź na artykuł Hanslemana zamieszczony tu.
  2. Rozszerzenia na temat deweloperki webowej w VS2010 – na podstawie artykułu z webhosting.
  3. Jak wystartować z nauka HTML5?
  4. Jak wynagradzać artystów (programistów)?
  5. Edytor online dla PHP

Bardzo ciekawy artykuł o odwrotnym Ajax – z IBM DW

środa, lipca 20, 2011

Podpisywanie dokumentów

Unia europejska zdając sobie sprawę z konieczności stosowanie podpisu pod dokumentami elektronicznymi (oraz sposobem i długotrwałego przechowywania LTV long term validation) postanowiła dopuścić trzy równoważne formaty podpisu (zgodnie z celem wprowadzenia tzw. advanced electronic signature w celu przechowywania swoich biurokratycznych wyników, materiały te opublikowane zostały tu):

  1. XAdES – XML Advanced Electronic Singnature
  2. CAdES – CMS Advanced Electronic Singnature
  3. PAdES – PDF Advanced Electronic Singnature opublikowany jako standard TS 102 778 przez ETSI (European Telecommunications Standards Institute). Jest to rozwinięcie PDF 1.7 format (ISO 32000-1) o możliwość wprowadzenia dodatkowych struktur danych w celu zapewnienia przechowywania podpisu przez dłuższy czas (długotrwałe przechowywanie dokumentów). Można wyróżnić następujące profile:
    1. PAdES-CMS – podpisuje cały plik PDF przy pomocy CMS/PKCS#7
    2. PAdES-BES and PAdES-EPES
    3. PAdES-LTV
    4. PAdES-XML

Wszystkie dokumenty opisujące ten standard można pobrać tu - ETSI download page

środa, lipca 13, 2011

Nadwyraz ciekawe rzeczy (aby nie umknęły)

wtorek, lipca 12, 2011

Pomcnicze wiadomości o JS

Coraz częściej mówi się wsparciu JS jakimś modelem MVC, powstał Backbone, teraz mówi się o nowym spine.js. Przedstawia go Addy Osmani tu (tam też porusza temat store.js i frameworka zepeto). Na stronach SitePoint omówiono nowości jQuery GUI – transformację elementów input w ozdobne przyciski (po drodze zachwalają też jQuery Mobile). A materiały z konferencji na temat różnych aspektów JS są tu.

czwartek, czerwca 30, 2011

Zasoby openssl

  1. Jak to zrobić? - http://www.madboa.com/geek/openssl/
  2. Jak zainstalować - http://forums.tutorialized.com/windows-122/openssl-installation-on-windows-tutorial-by-herong-5467.html
  3. Wylistowanie certyfikatów z repozytorium Windows (opis keytool jest tu):
  4. keytool –list –storetype Windows-MY –v (pobiera ze standardowego repozytorium certyfikatów MS Windows)
  5. Podpis cyfrowy: jarsigner –storetype Windows_MY x.jar “MWCodeSigning”
  6. Sprawdzenie poprawności podpisu: jarsign –verbose –verify x.jar
  7. Powyższe informacje pochodzą z portalu ‘jensign’
  8. Do zarządzania kluczami i certyfikatami w repozytorium JCK służą narzędzia:
    1. xca
    2. keytool-uiu
    3. cryptool.de

Co teraz powinien znać dobry programista?

Na to pytanie odpowiada serwis TechRepublic.  W dobie panowania HTML5 (nawet na platformie WIndows8) programiści muszą opanować takie technologie obok HTML 5):

  1. CSS
  2. Web Services (JSON, RestFull, SOAP) w szczególności WCF (na ten temat jest artykuł - http://www.techrepublic.com/blog/programming-and-development/an-introduction-to-windows-communication-foundation/2349?tag=mantle_skin;content)
  3. JavaScript
  4. JQuery

Technologie te stanowią platformę do rozwoju oprogramowania w różnych środowiskach deweloperskich jak: mobile czy desktopowe. Na uwagę zasługuje uniwersalny RAD Appcelerator’s Titanium oraz OutSystem’s Agile Platform. Warto też poczekać na konferencję Microsoft’s BUILD event in September która określi znaczenie HTML 5 jako platformy rozwoju aplikacji w MS Windows 8.

Notatki z Lenovo

Przegląd baz NOSQL - http://nosql-database.org/ z podziałem na trzy kategorie: wide column store (szerokie kolumny: Hadoop, Cassandra), document store (CouchDb, MongoDB) i wreszcie key value/tuple store (słownikowe: MemcacheDB, Berkeley DB). Zaburzona równowaga – coraz więcej w internecie produktów z API na bazie JSON-a kosztem zmniejszenia liczby korzystajacych z tradycyjnego XML-a: http://webhosting.pl/Juz.niedlugo.zapomnimy.o.XML_u.20.nowych.webowych.API.korzysta.tylko.z.JSON (szczególnie JSONP – pozwalający pomijać ograniczenia pobrania z jednej domeny). A na http://blog.programmableweb.com/ można spotkać ciekawe API i ich statystykę wykorzystania (np. API do rymów).

Linki z lenovo – czwartek

  1. Podpisywanie i tworzenie PDF - http://stackoverflow.com/questions/745779/generate-pdf-with-digital-signature  - jest b. wiele bibliotek i duży wybór.
  2. Tamże ciekawy wpis - http://stackoverflow.com/questions/3428344/xml-digital-signature-in-net. Są dwie główne biblioteki: dla javy to “signature applet created by the Jaume I University (CryptoApplet), that you can find at projectestic.uji.es/pr/cryptoapplet” i dla .NET to “a new project I'm involved in (XAdES .NET Project), that you can find at xadesnet.codeplex.com”. Inne linki dla javy (na bazie http://stackoverflow.com/questions/3054106/digital-signature-integration-with-software-written-in-java):
    1. http://java.sun.com/developer/technicalArticles/xml/dig_signatures/
    2. http://www.ibm.com/developerworks/lotus/library/forms-digital/
  3. Weryfikacja podpisu w krzyżowych śśrodowiskach - http://stackoverflow.com/questions/4203652/problems-checking-net-signature-in-java i http://stackoverflow.com/questions/1601560/java-and-net-interop-on-rsa-signatures
  4. MS na rzecz środowisk open source – technologia REST:
    1. http://blog.noelios.com/2009/02/20/microsoft-selects-restlet-to-show-rest-interoperability/
    2. http://www.restlet.org/community/
  5. Też ze stackoverflow:
    1. http://stackoverflow.com/questions/4666970/signing-soap-messages-using-x-509-certificate-from-wcf-service-to-java-webservice
    2. http://stackoverflow.com/questions/4379786/calling-a-secured-web-service-in-java
    3. Wykorzystanie certyfikatów do walidacji tożsamości - http://stackoverflow.com/questions/2276594/how-to-configure-a-wcf-service-to-only-accept-a-single-client-identified-by-a-x50

wtorek, czerwca 21, 2011

Ciekawostki

piątek, czerwca 10, 2011

Deweloperka na piątek 10 czerwca

Starocie:

  1. Tutoriale - http://phpacademy.org/videos
  2. http://www.phpclasses.org
  3. Nowy, lepszy framework dla java - http://www.dzone.com/links/r/spark_a_sinatra_inspired_micro_web_framework_for.html lub ułatwienia w tworzeniu REST - http://www.dzone.com/links/r/restful_web_services_made_easy_2.html
  4. Narzędzia open-source do testów webowych aplikacji - http://www.dzone.com/links/r/14_best_open_source_web_testing_tool.html
  5. MSDN angielski - http://blogs.msdn.com/b/ukmsdn/archive/2011/04/06/april-msdn-magazine-out-now.aspx
  6. Video na temat WinForm - http://windowsclient.net/learn/videos.aspx
  7. http://www.switchonthecode.com/tutorials/csharp-tutorial-triple-des-encryption

Nowosci:

  1. The future of WCF is RestFull” – przegląd historii i przyszłości WCF na InfoQ. Społeczność codeplex stworzyła grupę na temat WCF - http://wcf.codeplex.com/, warto tam zaglądać, jest tam WCF support for jQuery. Jest też dedykowany blog na MSDN o WCF. Lekcje - http://blogs.msdn.com/b/endpoint/archive/2010/01/07/getting-started-with-wcf-webhttp-services-in-net-4.aspx z http://blogs.msdn.com/b/endpoint/archive/2010/01/06/introducing-wcf-webhttp-services-in-net-4.aspx i video http://channel9.msdn.com/events/PDC/PDC10/FT04
  2. Jak zwykle paper.li od “świętego” - http://paper.li/amazedsaint/dotnet i tam - http://www.alvinashcraft.com/2011/06/09/dew-drop-june-9-2011/. O HTML 5.
  3. Samouczki z LINQ - http://jesseliberty.com/2011/06/08/linq-the-overloaded-contains-operator/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+JesseLiberty-SilverlightGeek+%28Jesse+Liberty+-+Silverlight+Geek%29
  4. Wizualna nauka podstawowych algorytmów programowania w JS - http://algorithms.openmymind.net/search/linear
  5. Inne o WCF - http://codebetter.com/howarddierking/2011/05/09/getting-fiddler-and-the-net-framework-to-play-better-together-2/
  6. Książka do REST - http://codebetter.com/glennblock/2011/06/06/rest-in-practice-the-book-restbucks-the-sample/
  7. Fajny przykład kolekcji obiektów - http://queue.acm.org/detail.cfm?id=1961297
  8. Co to jest YOGA i jej odmiany - http://lifehacker.com/5803333/how-to-find-the-right-style-of-yoga-for-you
  9. Soluto – pomoc na wszystko - http://www.betanews.com/article/When-crashes-occur-Soluto-can-tell-you-why/1306428342
  10. Jaką bazę NoSQL wybrać - http://blog.monitis.com/index.php/2011/05/22/picking-the-right-nosql-database-tool/
  11. Edytory do HTML 5 - http://www.htmlgoodies.com/beyond/webmaster/toolbox/five-essential-html5-editors.html oraz  z W3C - http://www.w3.org/wiki/HTML/Training
  12. Gołe ale super wydajne OS - http://www.returninfinity.com/baremetalnode.html
  13. Aplikacja na Android-a - http://www.codeproject.com/KB/android/cmdconsole.aspx?utm_source=twitterfeed&utm_medium=twitter
  14. Portal o JS na poważnie - http://devmeetings.pl/
  15. Kolizja – wykrywanie w grach JS - http://devmeetings.pl/trainings/detekcja-kolizji-w-grach-javascriptowych
  16. SSJS - http://devmeetings.pl/trainings/javascript-na-serwerze-ringojs-v8cgi-i-nodejs
  17. Zaawansowany JS - http://ferrante.pl/frontend/javascript/darmowe-szkolenie-javascript/ – Ferrante! Materiał - http://www.slideshare.net/ferrantes/just-advanced-javascript z http://varjs.com/ na podstawie - http://blog.koszulinski.pl/kategoria/javascript/ (lekcje o JS 1 i 2, ma też bloga - http://code42.pl/ + ciekawe o delegatach =>http://javascriptweblog.wordpress.com/2010/12/22/delegation-vs-inheritance-in-javascript/, newsy o JS - http://jsnews.pl/ inny polski blog http://www.blog.project13.pl/ )

JQ: - http://datatables.net/release-datatables/extras/FixedHeader/two_tables.html, http://weblogs.asp.net/dwahlin/archive/2010/11/20/reducing-code-by-using-jquery-templates.aspx i http://knockoutjs.com/documentation/introduction.html

Bezpieczeństwo - https://www.owasp.org/index.php/Category:Principle

MVC w Javie - http://www.theserverside.com/news/1364562/Java-GUI-Development-Reintroducing-MVC

piątek, czerwca 03, 2011

O CR

Super blog na temat deweloperki w .NET – ravesoft.blogspot.com. A tam artykuł jak instalować aplikację korzystającą z silnika CR

Jakie formaty wyjściowe wspiera CR - http://www.highoncoding.com/Articles/553_Export_Crystal_Reports_to_Different_File_Formats.aspx i tu i tam

Zagooglować temat “Crystal report outpu formats”