piątek, lutego 18, 2011

Zamyślenie…

Problem tworzenia aplikacji internetowych. Można go zaatakować z dwóch stron – mamy tu do czynienia z klasycznym przypadkiem interakcji serwer-klient.

Od strony serwera poprzez stosowanie w wybranym języku serwerowym rusztowań (frameworków) które nie tylko stanowią owijkę dla dla jego języka (wprowadzają słynny model MVC jak np. PHP Cake lub bardziej złożony ale uniwersalny ZEND) ale DODATKOWO pozwalają również na wstrzykiwanie kodu do przeglądarki internetowej po stronie klienta przez co aplikjacja robi się bardziej reaktywna (np. EXT PHP, ZEND).

Od strony klienta działającego w przeglądarce internetowej który realizuje cały GUI po stronie klienta a dobiera sobie dane poprzez AJAX od serwera. Tutaj mamy uniwersalny ale niskopoziomowy AJAX, lub frameworki jQuery/EXT JS i inne, z dodatkami OO jak np. Javascript MVC.

Innym, ciekawym rozwiązaniem jest poleganie na narzędziach RAD, które w sobie mają wbudowane jakieś frameworki np. SENCHA lub Appcelerator (z przejętą przez niego Aptaną).

Innym zasługującym na uwagę zjawiskiem jest sytuacja w obszarze mobilnych urządzeń. Mamy tu powtórkę całej historii informatyzacji w pigułce. Najpierw tworzono aplikacje lokalne (w rozumieniu tego urządzenia) w językach które miały na danej zabawce swoją maszynę wirtualną np. Java VM (zubożona Java ME), rzadziej .NET i były to najczęściej gry. Później uległy zaawansowaniu systemy operacyjne tych urządzeń i pojawiły się aplikacje systemowo-narzędziowe chociażby przeglądarki internetowe. Pozwoliło to na wykorzystanie języków skryptowych tych przeglądarek (najczęściej Javascript) do tworzenia aplikacji w środowisku przeglądarkowym. A że przeglądarki uniknęły syndromu IE (chodzi o skarłowaciałe wersje IE 4/5/6 a nawet 7) i opierały się na bibliotece WebKit (Safari lub Chrome) lub Mozille (Firefox) z wersją HTML 5, moża było od razu wykorzystać AJAX i inne zaawansowane biblioteki jak jQuery, Dojo. Tutaj już następuje wyjście na świat zewnętrzny – dostęp do dowolnego serwera i technologii tworzenia aplikacji po jego stronie. Tak naprawdę przeglądarce było obojętne co jest TAM po drugiej stronie – komunikacja z nią odbywała się poprzez URI (początki REST). Teraz zaczęto wbudowywać w VM Jay wsparcie dla innych języków dynamicznym i mamy pełny wysyp języków znanych ze świata PC jak Ruby, JS, Python. Dzięki nim możemy tworzyć aplikacje lokalne i internetowe pomijając przeglądarkę internetową jako kontener runtimemowy czasu uruchamiana – framework dla Androida o nazwie S4A, Jednakże przeglądarka nie przestaje być atrakcyjnym pojemnikiem dla uruchamiania aplikacji ponieważ daje już na pczątek dwie ważne rzeczy deweloperowi: możliwość standardowego kontaktu z siecią internet (poprzez warstwę AJAX i inne,  na niej zbudowane warstwy jak REST) oraz zunifikowany sposób wyświetlania danych poprzez GUI oparty na HTML5 obudowany w framework wizualizacyjny choćby jQuery Mobile lub zapeto.

Ażby usprawnić i przyśpieszyć działanie aplikacji próbuje się stworzyć taki system operacyny który ma wbudowaną przeglądarkę i języki skryptowe a nawet języki 3GL (kompilowalne) jak to ma miejsce w przypadku OS Chrome. I tu powtarza się sytuacja MS w latach powstawania Internetu, MS wbudował w OS wsparcie dla przeglądarki IE3 oraz języków skryptowych (JS), a potem został potępiony i musiał przeglądarkę odłączyć od niego.

poniedziałek, lutego 14, 2011

Grafika

Jak zwykle świetny artykuł na LISAPART na temat stosowania grafiki wektorowej zgodnie ze standardem SVG. Do wykreślania użytko biblioteki opierającej się na jQuery – flot. A do obsługi SVG użyto biblioteki google svgweb. SVG moża również przetwarzać interaktywnie przy pomocy inkscape (darmowy zamiennik Illustratora) lub programowo przy pomocy Raphael (świetny tutorial na ten temat)

Jak pies z kotem (… Java z .NET)

Projekt Ja.Net pozwala na skompilowanie klas Java do fabryki (assembly) .NET, czyli DLL które potem można wykorzystać w np. C#. Trochę niejasna jest sprawa użycia projektu Harmony (obecnie zarzuconego nawet przez IBM).

Osobiście używam IKVM

Do komunikacji poprzez HTTP stosuje się najpopularniejszą chyba bibliotekę HTTPClient fundacji Apache. Szczególnie piękny jest wstęp do korzystania z tej biblioteki podkreślający, że nie jest ona obsługą przeglądarki ale protokołu HTTP.

piątek, lutego 11, 2011

Ważne dla mnie i nie tylko

czwartek, lutego 10, 2011

Co z systemami operacyjnymi przyszłości?

Złe wróżby dla Microsoft – HP ogłasza gotowość do produkcji własnego systemu operacyjnego WebOS w tablecie TouchPad oraz telefonie. Jeden system operacyjny na takie różne urządzenia! Tego nie udało się nawet Microsoftowi. Powoli tworzy się przestrzeń nowych systemów operacyjnych bazujących na urządzeniach mobilnych  z ambicjami wejścia na platformę PC. mamy takich graczy:

  • Apple – unifikacja dwóch systemów iOS i MacOS X w postaci Lion
  • Google – webowy system Chrome OS i Android
  • i teraz HP – webOS

MS widzi zagrożenie i zaczyna działać – zamierza portować Windows 8  na platformę ARM (właściwa dla urządzeń mobilnych), ale to dopiero na początku 2013 r.

A więc zaczyna się wojna systemów operacyjnych!

Aplikacje społecznościowe

Są obecnie bardzo modne. Stworzenie ich ułatwia specjalny framework dostępny na stronach code.google.com. Pomocne może być wiki na ten temat. Na razie działa tylko z iGoogle, ale idea aplikacji społecznościowych jest tu dobrze wytłumaczona.

czwartek, lutego 03, 2011

Rozwój w czwartek

<!--[if IE]><script src="excanvas.js"></script><![endif]—>

Dzięki temu można skorzystać z kanwy dostępnej w HTML5 – link do biblioteki jest tu. Ale czy nie lepiej użyć innej biblioteki do detekcji przeglądarki - http://www.modernizr.com/?

wtorek, lutego 01, 2011

Rozwój

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.

poniedziałek, stycznia 24, 2011

Perełki (ale do zbadania)

  1. “Best practices for .NET developers” - http://mostlylucid.net/archive/2011/01/18/best-practices-for-.net-developers.aspx
  2. “Var vs. dynamic keyword” - http://www.devcurry.com/2010/09/var-vs-dynamic-keyword-in-c-40.html
  3. Zestaw kategorii artykułów - http://www.dotnetcurry.com/ShowCategories.aspx
  4. Wyszukiwanie developerworks na temat ‘jquery’
  5. Co to jest open – source z Techrepublic
  6. JavaRaunch – tworzenie PDF w iText - http://www.coderanch.com/how-to/java/ItextExample
  7. Patrz też tam na kategorie - http://www.coderanch.com/how-to/java/CodeBarn
  8. Zasoby na temat jak zostać designer’em - http://lifehacker.com/5739492/learn-the-basics-of-design-this-weekend
  9. Sylwetka programisty z Google - http://news.cnet.com/8301-27080_3-20028623-245.html?tag=nl.e703
  10. Początek z jQuery - http://www.ibm.com/developerworks/web/library/wa-jquery1/
  11. Gartner ostrzega o zmianie spojrzenia na aplikację - http://searchsoa.techtarget.com/tip/Gartner-Analyst-Rethink-the-application-paradigm-consider-business-capabilities?asrc=EM_NLN_13179152&track=NL-110&ad=807050
  12. Nauka JS:
    1. http://www.dzone.com/links/r/partial_function_application_in_javascript.html
    2. http://www.dzone.com/links/r/jquery_15_promises_a_better_future.html
    3. http://www.dzone.com/links/r/10_must_see_new_useful_jquery_plugins.html
    4. http://www.quirksmode.org/js/this.html
    5. http://www.dzone.com/links/r/45_resources_tutorials_for_designers_and_develope.html
    6. http://www.dzone.com/links/r/wiki_in_80_lines_of_javascript.html
    7. http://www.dzone.com/links/r/14_really_useful_jquery_plugin_for_create_web_apps.html
    8. http://www.dzone.com/links/tag/javascript.html:
      1. http://www.dzone.com/links/r/14_best_javascript_frameworks.html
      2. http://www.dzone.com/links/r/what_is_jquery_the_perks_and_the_drawbacks.html
    9. JSON ważny - http://radicaldevelopment.net/2010/04/07/process-json-jquery/
  13. Czego nie wiesz o javie to powie ci IBM - http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=5+things+you+did&cmp=dw&cpb=dwjav&ct=dwnew&cr=dwnen&ccy=zz&csr=010711
  14. On też ci powie jak korzystać z GWT - http://www.ibm.com/developerworks/web/library/wa-aj-gmt/?cmp=dw&cpb=dwwdv&ct=dwnew&cr=dwnen&ccy=zz&csr=010711
  15. Wywiad ze Spolksy - http://www.foundersatwork.com/joel-spolksy.html
  16. Potzrebne jest nowe spojrzenie na aplikację. Co na to Gartner – “The application platforms we are dealing with today encourage outdated software design processes.  A better way for development managers to think is in terms of deploying capabilities to a particular environment that has the ability to interact with other capabilities. This eliminates the artificial walls between applications.
  17. That is at least one take away from a discussion with Kirk Knoernschild, a research director with Gartner Group.  Enterprises are beginning to uncover a fundamental mismatch between the way code is developed and the business value of the development process, argues Knoernschild.  “We have taken this notion of an application that runs in its own process that we are accustomed on the desktop and essentially carried that over into the notion of an app on a server,” he explained.

    “Why do we even need the notion of an application on the Web?” asked Knoernschild.  “It is an artificial notion that constrains how we go about building, deploying and managing software. Instead of application, we need to think in terms of business capabilities, the business process and business activities. “

    A significant contributing factor to this disconnect lies in the way in which new code is funded. The challenge is that this process has developed a monolithic application mentality, which makes it easy to add too many competing elements to the finished product. He noted, “Before we know it, we are left with application bloat. We have this all of these applications and some do the same thing, while others are unique.”

    The source of the problem is caused by thinking about the development process in terms of applications rather than metrics which are meaningful to the business.  Thinking about code in terms of application focuses the attention on metrics like project cost and time to code, which detract the focus from more significant metrics that relate to the end product. Tłumaczenie – powodem rozdźwięku jest traktowanie procesu wytwarzania aplikacji w terminach metryk (miar) odnośnie do aplikacji a nie metryk związanych z biznesem.

    Traditionally IT focuses on IT metrics like cost, time to market, and the number of defects, code quality and test coverage. Perhaps those types of metrics are useful for assessing how streamlined the development process is – but there are other values to consider.

    Organizations also have to look at the value their software provides to the business after it is developed. Just because it cost $2 million to deliver a project that is on time and on budget, does not mean and organization is the value the system needs.

    Knoernschild said, “Understanding the business value is also very important, and that is an area where a lot of organizations tend to fall short. That can come in a variety of forms such as worker productivity, customer satisfaction, and retention.” – źródło searchsoa.

piątek, stycznia 21, 2011

Nie kończąca się historia–HTML 5

Źle się dzieje w HTML – nowa wersja HTML 5 została zaanonsowana jako samodzielny byt od niedawna. Koniec prac nad jej specyfikacją przewiduje się za kilka lat (licząc optymistycznie ok. 2022). Autorzy chyba za dużo chcą osiągnąć naraz. Bałagan robi się jeszcze większy gdyż autorzy niektórych przeglądarek już teraz (kiedy tak naprawdę prace na specyfikacja trwają) implementują NIEKTÓRE elementy HTML 5 (te najłatwiejsze i najmniej wątpliwe) i trąbią wszem i wobec, że ich przeglądarka jest zgodna z tym standardem (tymczasem do takiego stwierdzenia  droga jest długa). Na ten temat dobrze jest przejrzeć dwuczęściowy raport INFOWORLD – przypominam, że jest to draft (szkic) specyfikacji:

  1. “HTML5 in the browser: Canvas, video, audio, and graphics” – to co najłatwiej zrobić a już można zachwycić użytkownika ponieważ skupiają się na wizualnej stronie (demonstracja możliwości jest tu) przeglądarki. Mamy tu obiekty typu canvas (test tu), SVG (test tu)
  2. bardziej trudna część “HTML5 in the browser: Local data storage - HTML5 Web Storage, Web Database, FileReader, FileWriter, and AppCaching APIs will transform Web pages into local applications, but not yet” tam można znaleźć wiele eksperymentalnych rozwiązań jak czytanie/zapisywanie do plików domowych, sieci semantyczne. Na razie temat jest zbyt rozszerzeń jest zbyt nieprecyzyjny.

Super strona na temat nowości jakie przynosi HTML 5 - http://www.goat1000.com/tagcanvas.php

wtorek, stycznia 18, 2011

Deweloperka

  1. Jak zwykle dobre pomysły w portalu DYNAMICDRIVE, tym razem biblioteka z obrazkami jako tzw. tooltip. Nadaje się do przystosowania.
  2. W portalu code project jest wiele ciekawych artykułów i tzw. tip-ów
  3. Ciekawy cytat "Nighttime, not the late hours but the gloaming, when the sun was setting and dinner must be prepared and the long evening stretched out before her — that's when the loneliness settled in like the ache in her hip on a rainy day, when the regrets, the bad memories, sometimes came to call." — From Lisa Unger's 2010 novel Fragile”
  4. Nowa wersja serwera Tomcat – położono nacisk na większą ilość wątków co ma zwiększyć jego reaktywność. Tak w ogóle po co ułatwiać wielowątkowość przecież to i tak nie zwiększy wydajności czy szybkości przetwarzania? Ano  po to by pojedynczy proces/watek nie zagrabił nam (zmonopolizował) zasoby procesora, żeby stworzyć iluzję przed użytkownikiem, że coś się dzieje, żeby zwiększyć jego reagowolność na zdarzenia utd. W ten sposób tworzymy ILUZJĘ, że wszystko działa, aplikacja przyjmuje nowe zgłoszenia i obsługuje stare jak gdyby nic (ale płacimy za to większym narzutem na zarządzanie i dłuższym czasem obsługi. I tu realizuje się zasada demokracji wszyscy są obsługiwani tyle, że coraz wolniej.
  5. Bardzo ciekawy plugin dla jQuery pozwalający na nowy sposób zademonstrowania menu. Są też inne elementy GUI jak notes, cards, maps.
  6. nareszcie mam –jquery JQGRID – przykłady w php i js
  7. Coś co każdy lubi ale nie każdy ma – integracja środowisk i platform –znajdziesz w portalu codemesh. Aplikacja JuggerNET. Przykład JDBC w .NET – tu.
  8. Implementacja:
    1. using Codemesh.JuggerNET;


      …


      IJvmLoader	loader = JvmLoader.GetJvmLoader( true, true, TraceFacility.TraceJvm, TraceLevel.TraceErrors );

      loader.AppendBootClassPath = "../lib/hsqldb.jar;../../lib/hsqldb.jar";

      Class.ForName("org.hsqldb.jdbcDriver");



  9. Jak tak naprawdę wystartować z tworzeniem aplikacji pod Androidem - http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/A-developers-perspective-on-Googles-Android-SDK/. Maszyna wirtualna dla Androida - http://content.techrepublic.com.com/2346-12849_11-497936-1.html?tag=content;leftCol


  10. Kapitalna strona o podstawach web i html - http://www.xs4all.nl/~sbpoley/webmatters/index.html, jest też przykład wzorcowej walidacji formularza


  11. Jestem na LINKEDIN przyjęty do grupy PKI, a tam sposób jak sprawdzić ocsp poprzez opessl. tam pokazano nową ideę OTPK (one time private key)


  12. Nowe pojęcie Secure String tamże w stopce są ciekawe odnośniki do:



    1. Klasy List - http://articles.techrepublic.com.com/5100-10878_11-6068652.html?tag=btxcsim#


    2. ListView -


    3. Podstawy – stream – co to takiego


    4. Inne tematy są w archiwum



  13. Bomba - http://weavesilk.com/


  14. Pascal - http://www.dobreprogramy.pl/Lazarus,Program,Windows,12653.html


  15. Po co LINQ (z portalu - http://gasior.net.pl/tag/c/):



    1. var polishCustomers = new List<Customer>();

       
      foreach (var customer in customers)


      {


      if (customer.Country == "Poland")


      polishCustomers.Add(customer);


      }



      teraz:



      var polishCustomers = customers.Where(x => x.Country == "Poland");



poniedziałek, stycznia 17, 2011

Pożyteczne dla deweloperów

Niezawodny serwis DevCurry przyniósł podsumowanie roku 2010. Najciekawsze:

  1. Posty - http://www.devcurry.com/2010/12/most-popular-posts-for-developers-in.html
  2. Zasoby aplikacyjne i narzędziowe - http://www.devcurry.com/2010/12/useful-developer-tools-and-resources.html

Podstawowe, niezbędne narzędzia na każdy komputer z MS Windows - http://stevenbenner.com/2010/09/must-have-software-for-your-microsoft-windows-computer/ (a tam wyświetlacz temperatury CPU - http://www.alcpu.com/CoreTemp/)

Nowe narzędzie dla developerów–WebMatrix

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…

piątek, stycznia 14, 2011

Ciekawe

  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:
      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:
    $("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.

poniedziałek, stycznia 10, 2011

Nowości

  1. Wg. serwisu webhosting:
    1. Możliwość dodawania filmów i muzyki do Google Docs i odtwarzania w nim natywnego tych materiałów. Podobnie robi to serwis vimeo.
    2. Udostępniono kurs Javy - http://webhosting.pl/Kurs.Javy..Praktyczne.programowanie.czesc.I
    3. Pułapki JS - http://net.tutsplus.com/tutorials/javascript-ajax/top-10-things-that-javascript-got-wrong/". Ciekawi autorzy:
      1. http://www.nczonline.net/ + sekcja pobrań http://www.nczonline.net/downloads/
    4. Superblog o życiu - http://blog.timtipton.com/ tam są odwołanie do:
      1. http://goodlifezen.com/2011/01/03/fitness-challenge/,
      2. http://zenhabits.tumblr.com/
      3. http://www.forgetfoo.com/
    5. Tricki z tablicami asocjacyjnymi w PHP
    6. Java przekszatałcona w JS – wywiad z Oracle
    7. Nareszcie framework MVC w JS - http://javascriptmvc.com/
    8. Rewelacyjny kompilator w Chrome
    9. Xajax dla PHP – nareszcie
    10. Wstrzykiwanie dynamiczne kodu JS - http://webhosting.pl/stackJS.latwe.ladowanie.modulow.i.zaleznosci.w.JavaScripcie
    11. Technologia NODE.JS

O stylu życia

Jak zwykle nowy rok nastraja do zmian swego życia. Natrafiłem na świetny blog na temat jak żyć prowadzonego przez Steve Martille - http://www.freedomeducation.ca/free-book/. Jest tam wiele praktycznych uwag na temat stylu życia i zmiany swej osobowości. Przykładowo jak wdrożyć praktycznie swoją afirmację - 6 Affirmation Secrets to Make You Feel Better. Inne:

  1. 20 Rule
  2. 4 Ways to Finding Purpose in Life
  3. How to Stay Focused When You Feel Like Giving Up
  4. Quantum Physics Secrets?

wtorek, stycznia 04, 2011

Wybrane ciekawostki

  1. Wg. VaGla.pl - Ustawa o podpisach elektronicznych – rząd ją przyjął w kwietniu 2010 i miał przesłać do Sejmu i notyfikacji przez UE. Od tego czasu nie wiadomo co się z nią dzieje. Ale coś tu mamy, w portalu VaGla.pl jest cała gałąź na temat aktualnego stanu tych spraw - http://prawo.vagla.pl/podpis_elektroniczny
  2. Z innej beczki – portal sharpbrains – zawiera wiele informacji o mózgu oraz jego działaniu - http://www.sharpbrains.com/resources/1-brain-fitness-fundamentals/
  3. Zagadki, kto ich nie lubi? http://brainden.com/
  4. Dla dzieci – jak zacząć programować w Pythonie - http://msdn.microsoft.com/pl-pl/library/gg455949

Medy co? tacje

Super portal na temat wszelkich aspektów życia – Huffington Post. Oto co tam można znaleźć:

  1. “Why pleasuer is not a happiness” – wiele linków tamże (na dole)
  2. Propozycja postanowienia na nowy rok":
    1. I intend to cultivate equanimity and balance in 2011 -- not to panic when things appear to be off track, and not to relax when everything seems to be going smoothly. I intend to cultivate awareness and presence and not focus too hard on the outcome -- paying more attention to the process and developing understanding and sympathy for myself and others.
  3. Powyższy cytat pochodzi z http://www.huffingtonpost.com/david-nichtern/finding-balance-and-equan_b_803240.html
  4. “Waiting without waiting”

JQuery–nowości

Jeżeli się szuka informacji o najnowszych trendach w JQ trzeba jej szukać na stronach bloga - http://blog.jquery.com/. Trudno powiedzieć jaki standard trzech rozszerzeń zaproponowanych przez MS i przyjętych przez grupę rozwijającą jQ będzie. API z witryny MS i jQuery różnią się niestety. Jedyne co pewne to przyjęcie idei templatek ale  i one się różnią od propozycji MS (w wersjach 1.4.x są one uznane jako oficjalne wtyczki, od wersji 1.5 mają być już wbudowane). Wg. MS idea rozszerzenia jQuery wygląda tak (wg. bloggera Scott Gu jest tam dodana specjalna biblioteka w js):

  1. Templatki (templates)– wzorce, wzbogacone o możliwość warunkowego  wyboru elementów.
  2. Linki danych (data linking) – można powiązać elementy DOM (np. <input z id>) z elementami pochodzącymi z obiektów JS. Wiązanie jest w obie strony, zmiana wartości jednego elementu z DOM skutkuje zmianą elementu w JS.
  3. Konwertery – umożliwiają zmianę formatu danych (np usunięcie znaków formatujących konto lub numer telefonu)

Wg. jQuery sytuacja tych wtyczek w wersji beta wygląda tak:

API Documentation

Tutorials

Ciekawy podręcznik autorstwa programisty z MS - http://www.borismoore.com/2010/09/introducing-jquery-templates-1-first.html


Osobiście wolę implementację pochodzącą od Microsoft – jest bardziej czysta i klarowna, chociaż nie wpisuje się tak dobrze w dokumentację jQuery. Te trzy wyżej zgłoszone propozycje pozwalają na eleganckie wiązanie danych między modelem (obiekty JSON w JS) a widokiem (elementy DOM w HTML) i są przedłużeniem idei bind() z jQuery

poniedziałek, stycznia 03, 2011

Różne (Firefox)

  1. Ćwiczenia dla poprawy widzenia -http://www.wzrok.net/- można zamówić płatne materiały
  2. Tworzenie PDF w PHP w locie wg. IBM – TCPDF
  3. Wyszukiwarka kodów w różnych językach - http://www.codase.com/java/ podobna jak gotoAPI
  4. VMLite do rozpoznania - http://www.vmlite.com/
  5. Ciekawa biblioteka GUI dla JS – UIZ -http://www.uize.com/
  6. Jak wykorzystać JQuery w ASP.NET - http://visualstudiomagazine.com/Articles/2009/12/01/Integrating-jQuery-Web-Services--AJAX-and-ASPNET.aspx
  7. Nowości od MS: sparkling, power pivot, slicers (to wszystko jest w Excel)
  8. Zaiste ciekawe rozwiązanie problemu wywołania kodu JS w C# – “Embedding JavaScript into C# with Rhino and IKVM”. Jedną z implementacji jest serwer JS – ObjectCloud
  9. Ciekawy artykuł Scota Gutt – “jQuery Templates and Data Linking (and Microsoft contributing to jQuery)” – z przykładami do pobrania
  10. Dla dzieci “Introduction to Javascript” dwie części od MS (ma na dysku). Część I i II a to wszystko z portalu dla studentów technologii MS - http://msdn.microsoft.com/pl-pl/beginner/default%28en-us%29.aspx. Dla bardziej zaawansowanych jest strona taka
  11. Jak uruchomić i udostępnić serwis WCF w VFP wg. Ricka  -

    Hosting a WCF Service in a non-.NET Client –pouczające