Archive for the ‘Web 2’ Category

Aplikacje webowe nie posługujące się HTTP   Leave a comment

Ja zwykle TechRepublic daje wiele wiadomości o aktualnych trendach w aplikacjach webowych – http://www.techrepublic.com/blog/programming-and-development/websocket-offers-a-new-approach-to-web-development/5707. Mimo powszechności stosowania protokołu HTTP coraz częściej w wyspecjalizowanych zastosowaniach korzysta się z gniazd (socket). Gniazda są niskopoziomowe i teoretycznie można oczekiwać większej wydajności i szybkości  komunikacji. Co jeszcze daje gniazdko:

  • działa na protokole TCP
  • wymiana danych m. klientem a serwerem odbywa się w czasie rzeczywistym w dwie strony bez konieczności odbycia tradycyjnego przebiegu żądanie/odpowiedź (odpytywanie z potwierdzeniem)
  • nie wymaga odpytywania okresowego serwera czy ma już odpowiedź

Dostęp do gniazd to nieodłączna część bibliotek języka C i Java (uwaga rok 1996 – http://www.javaworld.com/jw-12-1996/jw-12-sockets.html?page=2). Cała grupa języków dynamicznych też je ma. Ostatnio doszedł JavaScript (oczywiście osadzony w przeglądarce dlatego ważne wiedzieć o wsparciu – http://caniuse.com/websockets)  i to drogą pośrednią poprzez wprowadzenie standardu HTML5 za pomocą WebSockets. Dzięki temu stał się pełnoprawnym klientem gniazdkowym. Żeby tego było mało to od dwóch może lat istnieje biblioteka node.js. Można też stworzyć niezależny serwer na bazie – http://socket.io/#how-to-use. Biblioteka  Socket.IO jest dostępna dla różnych języków np.  C# – https://socketio4net.codeplex.com/, C++ – https://github.com/ebshimizu/socket.io-clientpp, Java czy Android. Są też slajdy – https://github.com/learnboost/socket.io/wiki. Jest nawet przykład gry – http://krasimirtsonev.com/blog/article/Real-time-chat-with-NodeJS-Socketio-and-ExpressJS

Ponieważ protokół gniazdkowy jest standardem to pojawiają się ciekawe kombinacje zastosowania tej technologii, np. klient w C++ a serwer postawiony na C# lub JS. Zarówno klienty i serwer mogą być implementowane w różnych technologiach!

Posted 15 Maj 2013 by marekwmsdn in Asynch, Web 2, Web Apps

Wszystko płynie…   Leave a comment

Świat się zmienia. Do tej pory Intel miał dwa ASY: procesory I86 oraz dla małych urządzeń ATOM. Dzięki temu oraz pomocy Microsoft, który dostarcza systemu operacyjne i aplikacje na te platformy, zdążył opanować rynek urządzeń do obliczeń i rozrywki – popularnych PC-tów. Dążeniem Intela jest wejście na rynek tabletów i netbooków z architekturą ATOM. Wejście do gry architektury ARM zaburzyło równowagę – prawie wszystkie urządzenia mobilne z niej korzystają. No i teraz nóż w plecy – MS udostępnia Windows 8 na ARM!. Reakcja Intela – produkcja super cienkich notebooków. ARM pomaga Nvidia (chip Tegra) i Texas Instrument  po to by wyjść z obszaru urządzeń mobilnych i uszczknąć trochę rynku PC. Czyli Intel i ARM idą na zderzenie wychodząc ze swoich ustabilizowanych, okopanych rynków na terytorium wroga.

Coś dla zwolenników antywirusów – oferta firmy AVG skierowana do użytkowników przeglądarki Chrome i urządzeń mobilnych opartych o Android, aplikacja służąca do ochrony antywirusowej – za darmo. Podobną ofertę, ale trochę inną ponieważ działa jako aplikacja korzystająca z chmury ma hiszpańska firma Panda.

Warto wiedzieć – jak deployować WCF – http://geekswithblogs.net/tmurphy/archive/2011/08/29/wcf-deployment-to-iis.aspx oraz o PTVS – http://www.zdnet.com/blog/microsoft/microsoft-rolls-out-open-source-python-extension-for-visual-studio/10478

Node.js – co to? To jeszcze jedna technologia z grupy “czy jesteś na tyle kool aby mnie używać”. Jest to jS po stronie serwerowej do programowania sieciowego i obsługi zapytań/odpowiedzi protokołów sieciowych (najczęsciej jest to HTTP). Robi to bardzo dobrze i na dodatek asynchronicznie. Można to porównać do serwera Apache i NGIX. Jest to aplikacja standalone (nie wymaga serwera HTTP), napisany najczęściej w C (silnik JS zwany V8) i służy do uruchamiania skryptów JS po stronie serwera, najczęściej pracuje w środowisku Linux,  w trybie no-blocking. Jest to demon który słucha na portach sieciowych. Ideę pięknie wytłumaczył Brett McLaughlin na łamach o’reilly w artykule “What node.js is. Podobne pomysły na serwer uruchamiany z linii poleceń ma MS – jedna z odmian WCF nosi nazwę WAS (Windows Activation Services)i nie wymaga uruchomienia IIS jak również IBM na developerworks są dwa artykuły o tym jak zbudować w Jave taki serwer (ja to uruchomiłem – działa). Na net.tutsplus.com jest bardzo fajne wprowadzenie. Piszemy aplikację w JS. Moc tkwi w instrukcji ‘require’ (wprowadzone przez bibliotekę ‘common.js’ i zaimplementowaną przez Flanagana autora książki “JavaScript: The Definitive Guide: Activate Your Web Pages (Definitive Guides)”– pozwala ona dołączać funkcje biblioteczne napisane w C. One rozszerzają bezgranicznie możliwości JS. Stosowanie node.js niesie za sobą pewne niebezpieczeństwo – inercję programistów. Człowiek kiedy dobrze opanuje jakąś technologie pragnie ją stosować we wszystkich napotkanych potem przypadkach. To są złe nawyki. Node.js nadaje się idealnie do projektów wymagających częstego przesyłania niewielkich danych (np. w trybie read only), gdy danych jest dużo, lepiej wykorzystywać tradycyjne formularze i PHP. Jak się wyraził w swym blogu Hanselman w artykule o instalowaniu node.js na IIS “It uses a very fast JavaScript engine called V8, but more importantly its I/O is asynchronous and event-driven which contrasts with typical synchronous code”. Dlaczego zachęca do skorzystania z node.js w środowisku IIS z wielu powodów (zarządzalność, skalowalność – node.js jest jednowątkową aplikacją wykorzystującą jeden rdzeń) ale najważniejsze to INTEGRACJA. Dzięki nie możemy na IIS uruchomić obok siebie aplikacje w PHP, node.js, statyczne i dynamiczne strony  z ASP.NET. Mamy tutaj też miły akcent – portowaniem node.js na GitHub dla MS zajmuje się Tomasz Janczuk – ma też bloga. Artykuł Hanselmana jest o tyle cenny, że pokazuje sposób wykorzystania HTTPHandlera oraz linki do nowych bibliotek programowania asynchronicznego. Początek przygody z programowaniem równoległym czy może lepiej asynchronicznym można znaleźć na MSDN. Inne linki do JS są na scriptjunkie, atam publikuje Addy Osmani. Inny, b. dobry skrót do zasobów JS ma Yahoo.

Wiadomości z konferencji MS BUILD. W nadchodzącym (daty nie podano) Windows 8 będzie:  a) lepsze integracja z MS Windows Live (jedno konto zarządza wieloma komputerami, nawet zza firewall – to może być zmorą korporacyjnych IT), b) zachęcać do stosowania MS Windows SkyDrive jako zasobu lokalnego, c) Aplikacje na W8 będzie można łatwo przenosić na urządzenia mobilne z WP7, d) zawierać Hyper-V umożliwiający uruchamianie aplikacji z platformy Windows XP, e) prowadzić sklep (market) z aplikacjami nie pobierając za to opłat. Na podstawie computerworld. Przemówienie Syfonskiego – jest na kanale 9 – trochę długie, ale nie wszystko prowadzi on sam.

Co jeszcze warto zobaczyć? Oto prezentacja na temat Lightswitcha 2011 (idea – wspomóż tworzenie aplikacji biznesowych w oparciu dane+ekran+w tle logika). Inny, poważny artykuł na ten temat i tu.

A co warto wypróbować? Aplikacja typu tic-tac-toe, silnik do obliczeńWrite a Console App on Android using Java. Ciekawostka – kolejny interpreter Pythona w sieci (do uruchomienia w przeglądarce) – jitouch. Inne, sieciowe tic-tac-toe na Androida z materiałów IBM (developerworks). Uwaga – tworząc aplikacje pod urządzenia mobilne musimy uwzględnić tzw. form factor czyli czynnik rozmiaru i to, że interfejs będzie dotykowy czyli wybierany przez nasze paluszki (tu się liczy rozdzielczość opuszków palca – poważne osoby na stanowisku mają tą rozdzielczość z reguły małą). Dodatkowo, skoro mają ekran dotykać, to warto na nim wyświetlać jakieś ciekawe piktogramy (w miarę duże) przez co interfejs z użytkownikiem (GUI) jest trochę infantylny ale takie są wymogi tych urządzeń które obsługują następujące akcje (tzw. opcje dotykowe): dotknij, dotknij i przytrzymaj, przeciągnij, szybki ruch, przeciągnij palcami (zsuń/rozsuń).  Ciekawy post na scriptjunkie “Building Mobile JavaScript WebApps With Backbone.js & jQuery: Part I

Jest taka super biblioteka do obliczeń matematycznych – aforgenet. Temu człowiekowi wiele zawdzięczamy – E. John Resig – twórca jQuery. Ma otwartych wiele projektów. Nadaje nawet ma Khan Academy – właśnie zrezygnował z pracy w fundacji Mozilla.

HTML5 – kolejne linki, tym razem z theserverside. Należy zanurzyć się w HTML5 ale pamiętać o przeglądarkach nie wspierających jeszcze (lub już, z uwagi na ich starożytność) tego standardu no i sprawdzać przy pomocy biblioteki modernizr. Jest taka strona, która pozwala naocznie sprawdzić do potrafi dana przeglądarka – http://haz.io/. Uwaga – w tej bibliotece jest też pod biblioteka yepno . Pozwala ona selektywnie, na podstawie wspieranych przez daną przeglądarkę elementów HTML5 doładować potrzebne biblioteki (to taki dodatkowy script loader). Krótki poradnik o HTML 5  – http://diveintohtml5.org/canvas.html – Marka Pilgrima oraz pokaz możliwości – http://www.html5rocks.com/en/ oraz inne demo.

Super strona serwisowa o mojej Motoroli Defy.

Tworzenie atrakcyjnego menu w oparciu o css – http://purecssmenu.com/

Kryptografia – zasoby bouncy castle. Surfowanie anonimowe – Tor – https://www.torproject.org/index.html.en

Ważne rzeczy dla rozwoju   Leave a comment

Jedną z poważnych wad JS jest brak standardowego mechanizmu źródła danych i związania tego źródła z elementami na stronie HTML (tzw. data binding). W innych środowiskach jest wiele zaawansowanych mechanizmów tego typu np. OData. Próbą naprawienia tego braku jest projekt datatables.  Mamy tutaj nie tylko rozwiązany problem źródła danych ale też i wizualizacji w postaci tabeli z paginacją (oraz rozwiazanie dostarczania danych po stronie serwera). Biblioteka jest dojrzała i opiera się o jQuery.

Z ciekawej prezentacji możliwości jQuery z poratlu http://www.wdvl.com/:

  1. Ciekawy menedżer układów na stronie zainspirowany EXT JS – UI.Layout
  2. ToolTips – http://jquery.bassistance.de/tooltip/demo/
  3. Stronicowanie – http://www.geckonewmedia.com/blog/2009/8/20/simplepager—jquery-paging-plugin—updated
  4. http://bassistance.de/jquery-plugins/jquery-plugin-accordion/

Masz aplikację w Pythonie? Możesz ją skompilować do exe przy pomocy Py2exe lub cx_freeze. Lub napisać aplikację GUI przy pomocy PythonCard.

Ku pamięci, jak osiągnąć więcej mniejszym wysiłkiem (Coaching Series: Accomplishing More By Doing Less) na YT z serii http://www.youtube.com/user/GoogleTechTalks

Wielkopomne dzieła MS:

  1. .NET Web Services Security” autorstwa Juval Lowy
  2. Securely with XML Signatures and Encryption”
  3. Jeszcze jedna składnica e-book-ów: netbks.info oraz www.wowebook.com lub congloi.info
  4. Retrieving HTTP content in .NET” (inna strona Ricka S – http://americanparanoia.com/) + jego blog
  5. Przyczynek do programowania w C# od Yahoo (stosuje REST)
  6. Wzorce dla Ajax-a – http://ajaxpatterns.org/Ajax_Frameworks
  7. Explore Rich Client Scripting with jQuery
  8. Paul Morozowski – http://www.rcs-solutions.com/blog/CategoryView,category,WCF.aspx

Rozwój duchowy:

  1. http://sanctus.org/lectionary.html
  2. http://higherthings.org/ – tamże jest też radio
  3. http://www.dragosroua.com/how-to-defrag-your-mind-in-5-easy-steps/

Coś dla dzieci – portal – http://www.bestprogrammertools.info/everything.html

Rozwój   Leave a comment

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

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

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

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

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

Posted 2 Luty 2011 by marekwmsdn in Browsers, Ciekawostki, Cloud computing, Java, Web 2

Nowe narzędzie dla developerów–WebMatrix   Leave a comment

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

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

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

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

Posted 17 Styczeń 2011 by marekwmsdn in Lightswitch, MS, Web 2

Ciekawe   Leave a comment

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

    I na koniec sprytne wykorzystanie zdarzeń startu i zakończenia operacji AJAX do włączania i wyłączania elementu animacji:

    $("#loading_animation").bind({
        ajaxStart: function() { $(this).show(); },
        ajaxStop: function() { $(this).hide(); }
    });

    A to wszystko pochodzi z serwisu O’Reilly – answers

    Stosowanie przestrzenie nazw w JS, nic trudnego:

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

Posted 14 Styczeń 2011 by marekwmsdn in CAPICOM, e-Booki, JavaScript, jQuery, Kryptografia, Web 2

Zebrane linki z Chrome w domu   Leave a comment

  1. Addy Osmani jest wielki (większość można ściągnąć):
    1. materiały szkoleniowe do JS – http://addyosmani.com/blog/javascript-101-free-course/
    2. oraz do jQuery – http://addyosmani.com/blog/jq143offlinelearningkit/comment-page-1/#comment-4976
    3. tworzenie aplikacji dużych aplikacji w jQ – http://addyosmani.com/blog/large-scale-jquery/ 
    4. tutorial o wzorcach projektowych w JS – http://addyosmani.com/blog/essentialjsdesignpatterns/
    5. Kawałki kodu dla jQuery – http://addyosmani.com/blog/31-jquery-snippets/
  2. Testowanie aplikacji przy pomocy nakładki http://zombie.labnotes.org/api.html do node.js (na czym to polega?)
  3. Co to jest szczęście (szczęśliwość) – przyjemność to na pewno nim nie jest – Why Pleasure Is Not Happiness (VIDEO). Jest też więcej ciekawych artykułów związanych z nadejściem nowego roku np:
    1. Postanowienia noworoczne – New Year’s Resolutions: 10 Easy Ways To Recharge, Restore And Renew In 20
    2. Odrodzenie duchowe – New Year’s Spiritual Renewal: Making Resolutions vs. Transforming Our Identity
  4. Znowu VFP –
    (VFP) – How To Run Exe File and include them to your Project

    *******************************
    ** Author : Leosan **
    ** Date Publish : 29/01/2005 **
    *******************************
    * Examples how to run Windows Calculator
    *
    declare long ShellExecute in „shell32.dll” long hwnd, string lpszOp,string lpszFile, string lpszParams,string lpszDir, long nShowCmd
    declare long GetDesktopWindow in”win32api”
    local hDCScreen
    hDCScreen = GetDesktopWindow()
    ShellExecute( hDCScreen, „open”, „calc.exe”, „”, „d:\”, 1)

  5. Coś dla fanów VFP – http://kalpesh2804.blogspot.com/ odnośnie raportów:
    1. http://www.report-sculptor.com/
    2. http://foxypreviewer.codeplex.com
    3. oraz tematu drukowanie spod VFP plików PDF z katalogu – msdn social VFP
    4. Serwery automatyzacji – http://msdn.microsoft.com/en-us/library/ya8075ex(v=vs.80).aspx
  6. Fantastyczna książka w wersji open na temat podstaw jQ – “jQuery fundamentals
  7. Kolejny framework realizujący ideę AJAX w JEE2 – ZK, ale dodatkowo umożliwia tworzenie aplikacji mobilnych. Taka uwaga – aplikacje mobilne mają jedną z postaci reaalizację jako gruby klient w telefonie lub smartfonie. W takim przypadku są uruchamianie w środowisku systemu operacyjnego danego urządzenie. Może to być Android/iOS (najczęściej) lub Symbian oraz Windows Phone 7 (najrzadziej). Językiem programownia może być właśnie Java/C++/C lub C#. (nawet jest dodatek do VB) Takie aplikacje mało korzystają z technologii HTML i połączeń internetowych i wymagają solidnego IDE (np. Eclipse lub VS Express for WP7).
  8. Kolejne dobre podstawy technologii REST z punktu widzenia Javy – http://www.javaworld.com/javaworld/jw-10-2007/jw-10-resteasy.html
  9. MS .NET – tworzenie aplikacji przy pomocy ich generatora Lightswitch – http://tejana.wordpress.com/2010/12/ + http://ramanisandeep.wordpress.com/2009/09/21/datareader-vs-dataset/
  10. PHP wzorce projektowe – http://www.stumbleupon.com/su/1HyNGj/www.ibm.com/developerworks/opensource/library/os-php-designpatterns/?cmp=dw&cpb=dwope&ct=dwgra&cr=twitter&ccy=zz&csr=doit5phptipspats
  11. IBM – Simplify Ajax development with jQuery
  12. TED – Using our practical wisdom