niedziela, marca 04, 2007

Niedziela 4 marca
  1. https://www14.software.ibm.com/iwm/web/cc/earlyprograms/ibm/java6/?ns=7307 - nowa maszyna JVM od IBM (ale dostępna na razie tylko dla Linux i Aix) -IBM SDK for Java 6
  2. Ochrona danych w węzłach XML

    After the structure has been created, we can add data between the XML node elements. This data will be used to display in the corresponding parts of the accordion component. Accepting HTML in any node element will make this component much more flexible and can be very easily achieved by simply adding CDATA tags between the content elements. Here is an example of how easy this is to accomplish:

    <content><![CDATA[<b>html text goes here</b>]]></content>
    Adding CDATA tags allows us to use any HTML that we would like to display in any given panel. We could display everything from complex tables, images, and even other components.
  3. http://www.informit.com/articles/article.asp?p=686162&rl=1 - implementing internet communication in Python
  4. Mocny Python. Odczyt skrzynki -
    import poplib
    import getpass

    mServer = poplib.POP3('mail.sfcn.org')

    #Login to mail server
    mServer.user(getpass.getuser())
    mServer.pass_(getpass.getpass())

    #Get the number of mail messages
    numMessages = len(mServer.list()[1])

    print "You have %d messages." % (numMessages)
    print "Message List:"

    #List the subject line of each message
    for mList in range(numMessages) :
    for msg in mServer.retr(mList+1)[1]:
    if msg.startswith('Subject'):
    print 't' + msg
    break
    mServer.quit()
  5. Google kontra MS kto wygra? Ostatnia oferta płatnej usługi edytora i arkusza od Google wywołała spore ozywienie na rynku usług. Po raz pierwszy G wszedł w sposób otwarty na terytorium MS - tzw. produkty wspomagające pracowników biurowych. Czy mu się uda? Wiele firm (AOL, Yahoo, Oracle, Sun) próbowało zmienić swoją linię biznesową na produkcję oprogramowania uniwersalnego jak to robi MS. Obecna oferta G przypomina podrecznikowy scenariusz technologii rozłamowej (disruptive technology) - "lider rynku tak opanował sytuację, że jego produkt osiągnął stan nasycenia funkcjonalnością i zaczyna sprawiać wrazenie przesytu formy (over serve). Użytkownicy mają wrażenie ociężałości pracy z tak przeładowanym pakietem, dlatego widząc na rynku produkt prostszy i szybszy zwracają się ku niemu, zawsze mając śwaidomosc posiadania w zanadrzu "kombajnu" funkcyjnego choć z niego coraz rzadziej korzystają. Na poczatku ta sytuacja nie niepokoi lidera, gdyż jego pakiet używają klienci korporacyjni znani z wysokich wymagań i potrzeb oraz poziomu wsparcia. Ale wraz z nakręcającą się spiralą wzrostu funkcjonalności, obsługa pakietu ulega takiej komplikacji, że nawet ci "power userzy" chcą czegoś "świeżego". I tu mamy przykłady firm "spiących gigantów" jak DEC, Sears, AOL, które przespały zmiany i musiały odejść jak dinozaury (coś w tym jest, ponieważ w filmach reklamowych MS Office 2007, występują pracownicy z głowami tych starożytnych gadów). Oczywiście oficjalne komunikaty MS będą wszystkiemu zaprzeczać, przecież MS jest od dawna liderem aplkacji on-line, ale oferując je traci na sprzedaży swych aplikacji desktopowych. Z drugiej strony G ryzykuje nie tylko porażką w segmencie aplikacji biurowych, ale może stracić pierwszeństwo w swych podstawowym biznesie - wyszukiwaniem informacji. Sprzedaż reklam a świadczenie usług to są dwie różne rzeczy i wymagają wyspecjalizowanych służb i biur marketingowych - http://www.forbes.com/2007/02/23/microsoft-google-software-oped_cx_0223blodget.html?partner=tentech_newsletter

  6. Percepcja konsumenta - Jeszcze do niedawna wydawało się, że produkt obsługujacy dwie rzeczy jest lepszy od produktu obsługującego pojedyńczą funkcję. Ostatnie badanie wykazały jednak paradoks, produkty reklamujące się jako "all-in-one" postrzegane są jako gorsze użytkowo od wyspecjalizowanych. Na tej fali pojawiają się produkty wyspecjalizowane na obsługę jednej funkcji ale robiącej to doskonale (po co komu kombajn - radio, telefon i aparat cyfrowy, kiedy żadena z tych funkcji nie jest wykonywana perfekcyjnie, lepiej kupić taniej tylko telefon, który w swych przeznaczeniu doskonale realizuje swoje funkcje). Ryzyko firmy zaczynajacej od produktu jednofunkcyjnego i zmierzajacego do wielofunkcjonalności jest duże (firma Montblanc - od producenta piór do producenta luksusowych dóbr, czy Porsche od samochodów sportowych do pomocniczych). Czasami może to się udać np. iPhone (apple) czy kombajn (drukarka+faks+scanner+cos tam jeszcze) HP. Jednakże badania rynku wykazują nieufność konsumenta do takich produktów (szczególnie łączących tak różne obszary technologiczne) i obawa i poprawne działanie wszystkich elementów. Drugim utrudniem jest wybór ceny takiego produktu. Propozycja cenowa HP, który wycenił kombajn na poziomie zwykłej drukarki wzbudza nieufność klienta (jak? za tą samą cenę mamtrzy razy więcej możliwości?). Jest wyjatek - rynek oprogramowania - percepcja odbiorcy produktów softwarowych jest taka, że dostaje tę samą technologię różniącą się jedynie WARTOŚCIĄ DODANĄ tj. ludzkim IP (intelectual property). Dlatego powyższa reguła nie działa w stosunku do oprogramownia. Tu działa natomiast prawo, byle nie za tanio ponieważ coś może być zrobione po "łebkach" (ponieważ nie starczyło czasu i pieniędzy choćby na testowanie i projektowanie) - http://www.forbes.com/2007/02/16/all-in-one-inferior-biz_cx_ee_0219papers.html?partner=tentech_newsletter
  7. http://www.mindomo.com/main.php - online mind mapping

wtorek, lutego 27, 2007

Kodowanie

Kodowanie uniwersalne - projekt:

  1. Klient opakowuje swoje dane (traktuje je jako ciąg -strumień binarny). Do tego celu używa kodowania base64 (biblioteka w JS jest na stronie http://www.webtoolkit.info/javascript-base64.html lub instrukcja STRCONV(,13) w VFP).
  2. Dane są bezpiecznie wysłane do serwera jako ciąg znaków ASCII - nie są widziane jako dane binarne.
  3. Serwer rozpakowuje dane posługując się base64 (dekoduje) wbudowaną w PHP

To samo dzieje się w drugą stronę

poniedziałek, lutego 19, 2007

Konspiracja
Biblioteki kryptograficzne w JS kompatybilne z PHP
  1. http://pajhome.org.uk/crypt/md5/auth.html - strona poświęcona ochronie i autentykacji danych + algorytmy szyfrowania md5, sha-1
  2. http://www.koders.com/javascript/fidC1E98D74CAF85084CE28804642822DC623843BDF.aspx?s=md5 - inna implementacja
  3. http://www.md5encryption.com/?mod=encrypt - test poprawności działania md5
  4. http://anmar.eu.org/projects/jssha2/ - dla opornych SHA-1

piątek, lutego 09, 2007

Kurs - "Tworzenie bogatych aplikacji internetowych w oparciu o technologię AJAX"

Zagadnienia:
  1. Przegląd technologii internetowych
  2. Przykłady rozwiązań przed AJAXem (Form Submit) i rozwiązań alternatywnych (iFrame)
  3. Definicja AJAX, podstawowe elementy i komponenty, diagram interakcji, przykłady aplikacji Web 2
Razem 1.5 godz.
  1. Narzędzia do tworzenia rozwiązań opartych o AJAX - przegląd wzorców, bibliotek i frameworków (Yahoo, Atlas, advAjax)
Razem 1.5 godz.
  1. Podstawy AJAX w oparciu o JavaScript:
    1. Wprowadzenie do elementów potrzebnych do uruchomienia AJAX w JS
    2. Oprogramowanie po stronie klienta (PHP, .NET)
Razem 2 godz.
  1. Warsztat - tworzenie aplikacji korzystającej z techologii AJAX
    1. Aplikacja minimalistyczna - korzystająca z podstawowych składników (XMLHttpRequest, DHTML, JS, CSS) -1 godz.
    2. Aplikacja pełna - korzystająca z biblioteki "prototype" - 1 godz.
    3. Aplikacja pełna niezależna od przeglądarki internetowej (porównanie modelu DOM i BOM w MS IE i FireFox) - 1 godz.
  2. Narzędzia wspomagające testowanie aplikacji internetowych - JavaScript Shell, FireBug, Fiddler - 0.5 godz.
  3. Tworzenie aplikacji uwzględniających różnorodne standardu kodowania polskich liter (iso-8859, utf-8, windows-1250) - 1 godz.
  4. Wykorzystanie technologii Ajax w aplikacjach desktopowych (widgets - wichajstry w Yahoo/Opera/Google, Visual FoxPro 9.0) - 1 godz.
  5. Nowe kierunki - oprogramowanie usług webowych firmy Google (docs, spreadsheets, calendar) poprzez Google API - 0.5 godz.
Wszystko razem - 12 godz + czas na wykonanie samodzielne ćwiczeń, konsultacji, pytania i odpowiedzi

Uzasadnienie:

  1. Nowe aplikacje (w architekturze klient serwer z bogatym interfejsem tzw. Rich Client Interface - RCI) wymagają uruchamiania w środowisku graficznym (w przeciwieństwie do obecnych aplikacji znakowych w środowisku emulatora terminala).
  2. Jedyną alternatywą (ze względu na przyzwyczajania, ergonomiczność i wsparcie użytkownika końcowego) do starych rozwiązań jest środowisko MS Windows Client (MS Windows XP i wyżej, ale już nie Windows 98).
  3. W środowisku MS Windows Client działają pakiety biurowe z najbardziej popularnym MS Office.
  4. Firma MS oprócz środowiska uruchomieniowego dla aplikacji graficznych dostarcza również narzędzi do tworzenia aplikacji.
  5. MS Windows Client cechuje doskonałe wsparcie dla ogromnej gamy urządzeń peryferyjnych (wbudowane sterowniki, bije o głowę pod tym względem inne systemy operacyjne np. Linux) oraz posiada standardowe narzędzia do tworzenia nowych sterowników obsługi tych urządzeń (drukarki fiskalne, czytniki kart kryptograficznych).
  6. Firmy dostarczające urządzenia peryferyjne np. czytniki kart, drukarki fiskalne, wagi, kamery itd. dostarczają również gotowe sterowniki dla tego środowiska w postaci uniwersalnych bibliotek dll do wykorzystania przez wszystkie aplikacje Windows.
  7. Biznesowe rozwiązanie informatyczne np. obsługa PKI ze strony klienta wymagają wręcz instalacji u niego środowiska MS Windows (korzystają w dostępie do Internetu MS IE 6.x i wyżej) , dostarczając w zamian oprogramowanie klienckie do konfigurowania, testowania i korzystania z PKI (patrz narzędzia do podpisu elektronicznego firmy Sigillum i Certum).
  8. Nowoczesne rozwiązanie Internetowe oparte o usługi webowe (Web Services) są wbudowane w narzędzia deweloperskie firmy MS (jest to MS Visual Studio 2005 Professional) oraz mają wsparcie w infrastukurze serwerów MS (jest to serwer Internetowy MS IIS oraz akcelerator MS IAS). Firma MS wraz z IBM są jedynymi dostawcami kompleksowych rozwiązań usług webowych (poza tym są one założycielami organizacji WSI i głównym motorem rozwoju standardów w tym zakresie).
  9. Dodatkowo MS jest jedyną firmą, która dostarcza kompleksowe rozwiązanie do tworzenia i uruchamiania własnego autorstwa aplikacji w środowisku MS Windows (począwszy od aplikacji konsolowych, poprzez klasyczne Windows Form i Web Forms aż po serwisy systemowe i serwisy Internetowe) w środowisku Windows) w oparciu o jednolite narzędzia do zarządzanie innymi serwerami (Internetowymi – MS IIS, bazodanowymi – MS SQL Server, zarządzanie infrastrukturą – Active Directory, usługi portalowe – SharePoint) i które doskonale integrują się ze stosowanymi przez użytkownika pakietami biurowymi MS Office.

Rozwoj Mozilli
Oparta na motorze Gecko jest świetną przeglądarką. To czego jej brakuje to niemożność wbudowania jej w inne aplikacje. Rozwiązaniem tego problemu jest projekt http://www.iol.ie/~locka/mozilla/control.htm zwierający motor przeglądarki FF w technologii ActiveX. Z punktu widzenia dewelopera ma to samo API co kapitalnie ułatwia przenoszenie aplikacji z IE na FF. Technicznie, jest to wrapper w styli IE (IWebBrowser) do Gecko (która jest interfejsem API do XPCOM (COM-like), historia i opis - http://developer.mozilla.org/en/docs/Gecko_FAQ). Co zostało imlementowane:
  • IWebBrowser (basic web browsing functions for navigation and son on)
  • IWebBrowserApp (some extended functions for IE, the application)
  • IWebBrowser2 (some more functions for IE, the application)
  • DWebBrowserEvents (basic navigation events)
  • DWebBrowserEvents2 (more events, mainly for the IE app)
Artykuł z MSDN dużo wyjaśnia jak tworzyć takie aplikacje - http://msdn.microsoft.com/workshop/browser/WebBrowser/WebBrowser.asp
Jest tam kompletna instrukcja jak włączyć taką kontrolkę (mozctlx.dll, po rejestracji) do aplikacji w Delphi (zasoby i trochę historii o Netscape - http://www.paranoia.clara.net/articles/taming_the_lizard_with_delphi.html), VB , VB .NET.
Nawet jest PATCHER do aktualizacji kodu binarnego istniejących rozwiązań korzystających z IE!

wtorek, lutego 06, 2007

Wiara
W pracy każdy programista na każdym kroku musi okazywać wiarę. Wiarę, że wierzy w realność i poprawne działanie elementów środowiska w którym pracuje. Musi wierzyć, że:
  1. Komputer działa dobrze
  2. System operacyjny i narzędzi w którym pracuje (RAD) działa dobrze
  3. Gotowe biblioteki działają dobrze
  4. Procedury wbudowane przygotowane przez projektanta działają dobrze
  5. Protokołu transmisji działają dobrze
Bez tego i wielu innych elementów nie sposób cakolwiek zdziałać, bez przerwy trzeba by sprawdzać poprawność różnych rzeczy i interfejsów.

środa, stycznia 31, 2007

Ajax ciekawostki

  1. Możliwość behavior z IE udostępniona w FireFox
  2. http://rabaix.net/index.php/en/articles/issues_developing_ajax_libraries -
    1. If you want to send special characters, like non-ASCII characters, you need to send them encoded in UTF-8. In this purpose, you can use the encodeURIComponent function.

      var params = "money="+ encodeURIComponent('€ euro');
      [...] request code [...]

    2. Request Referrer

      When a query is sent to the server, the referrer value in the query may be empty. However for some reasons the script, which handles the request, may require this information. The XMLHttpRequest comes with a method to send specific headers. It is not possible to set the referrer value for security reasons, however any other name can be used, like "X-Referrer" (read the warning note).

      var xmlRequest = getNewXmlHttpRequest();
      xmlRequest.setRequestHeader("X-Referrer",document.location);

      On the server side you can access to the referrer with $_SERVER['X_REFERRER'].
    3. ResponseXML jak do niego dotrzeć? var firstnames = reponseXML.getElementsByTagName('firstname'); alert('The firstname is ' + firstnames[0]);
    4. W przeglądarkach nie IE jest możliwość serializacji:
    5. function getTextVersion(XMLnode) {
      var text;
      try {
      //serialization to string DOM Browser
      var serializer = new XMLSerializer();
      text = serializer.serializeToString(XMLnode);
      } catch(e) {
      // serialization of an XML to String (IE only)
      text = XMLnode.xml;
      }
      return text;
      }

      node.innerHTML = getTextVersion(xmlResponse)
    6. Nie można wykonać dosztukowanego kodu z responseText - when you append the responseText with innerHTML method, browsers ignore all JavaScript’s codes. Some browsers may transform the innerHTML: Internet Explore ignores the JavaScript code and Firefox may have some strange behaviors.
    7. Przy responseXML nie działa getElementById - po prostu go nie ma.
    8. Jest pewna możliwość wykonania kodu zwróconego w 'response'XML/Text:
      1. responseXML:
      2. function launchJavascriptFromXML(responseXML) {
        var scripts = responseXML.getElementsByTagName('script');
        var js = '';
        for(var s = 0; s < scripts.length; s++) {
        if(scripts[s].childNodes[0].nodeValue == null) continue;
        js += scripts[s].childNodes[0].nodeValue;
        }
        eval(js);
        }
      3. responseText:
      4. function launchJavascript(responseText) {
        // RegExp from prototype.sonio.net
        var ScriptFragment = '(?:<script.*?>)((n|.)*?)(?:</script>)';

        var match = new RegExp(ScriptFragment, 'img');
        var scripts = responseText.match(match);

        if(scripts) {
        var js = '';
        for(var s = 0; s < scripts.length; s++) {
        var match = new RegExp(ScriptFragment, 'im');
        js += scripts[s].match(match)[1];
        }
        eval(js);
        }
        }
    9. Uwagi: są pewne zastrzeżenia co do bezpieczeństwa takiego rozwiązania. Dostęp tak wykonywanego kodu jest globalny do istniejących już zmiennych i funkcji. Funkcje stworzone w tak ściągniętym poprzez response kawałku są lokalne -niewidoczne dla załadowanego do tego momentu już kodu.
    10. Można włączyć w kod AJAX inny kod AJAX (embedded)
      1. var AJAX_Objects = new Array();
        function registerAjaxObject(name, obj) {
        AJAX_Objects[name] = obj;
        }
      2. function onreadystatechange_embeded() {
        // get back the object
        if(AJAX_Objects["xmlRequestEmbeded"].readyState == 4) {
        alert('Hello I came from onreadystatechange_embeded function embeded on the xml');
        }
        }

        var xmlRequestEmbeded = getNewXmlHttpRequest();
        xmlRequestEmbeded.open("GET", SERVER + "/data/issues_developing_ajax_libraries/test.xml");
        xmlRequestEmbeded.onreadystatechange = onreadystatechange_embeded;
        registerAjaxObject("xmlRequestEmbeded", xmlRequestEmbeded);
        xmlRequestEmbeded.send(false);
      3. function getNewXmlHttpRequest() {
        var obj = false;
        try {
        obj = new ActiveXObject('Msxml2.XMLHTTP');
        } catch(e) {
        try {
        obj = new ActiveXObject('Microsoft.XMLHTTP');
        } catch(e) {
        obj = new XMLHttpRequest();
        }
        }
        return obj;
        }
    11. Zasoby:
    12. Demo page of this article : http://rabaix.net/pub/issues_developing_ajax_libraries/demo.html
    13. Prototype library : http://prototype.conio.net/
    14. Wikipedia AJAX : http://en.wikipedia.org/wiki/AJAX
    15. Adaptive Path : http://www.adaptivepath.com/publications/essays/archives/000385.php
    16. Ajax Mistakes : http://sourcelabs.com/ajb/archives/2005/05/ajax_mistakes.html
    17. http://ajaxpatterns.org/On-Demand_Javascript

wtorek, stycznia 30, 2007

Podpis elektroniczny
Wymiana danych m. stroną w kliencie HTML (JS) a serwerem poprzez zakodowanie base64. Problem kompatybilności między bibliotekami PHP i JS realizujacymi ten algorytm. Na tej stronie (http://www.koders.com/javascript/fid42E166DF6E882BE462F10CF31A17973F7467BB10.aspx?s=base64) jest wiele algorytmów kodowania w różnym stylu dla JS.
http://forum.php.pl/lofiversion/index.php/t60745.html
http://forum.php.pl/index.php?showtopic=60027&hl=
Z jakiej biblioteki korzystasz? W Prototype jest cos takiego jak evalscript, o advAjax juz Seth pytal: http://forum.php.pl/index.php?showtopic=49058
Forum -http://forum.php.pl/lofiversion/index.php/f14.html
http://forum.php.pl/lofiversion/index.php/t57815.html
" witam



jeżeli to ie, strona jest w strefie zaufanej, użytkownik zgodzi się na odpalenie kontrolki to możesz utworzyć FileSystemObject i przy jego pomocy wyświetlać/tworzyć itd. pliki na dysku użytkownika. Pod FF musisz mieć podpisany skrypt i też można ... IMHO gra nie warta świeczki ...

pozdrawiam"


"http://forum.php.pl/index.php?showtopic=49058"


Adresy:

  1. http://www.smashingmagazine.com/2007/01/26/tutorials-round-up-ajax-css-javascript-php-mysql-and-more/
  2. http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html - kompletny opis "permission" w Javie
  3. http://docs.rinet.ru/MIIS/ch22.htm - opis tworznia ActiveX w Control Pad
  4. http://blogs.zoho.com/creator/embed-forms-and-views-in-your-websiteblog - Zoho tworzenie formularzy w blogach
  5. http://www.hunlock.com/blogs/AJAX_for_n00bs - wymiana danych z serwerem poprzez iFrame (emulacja AJAX, choć bez kontroli)
  6. http://www.hunlock.com/blogs/AJAX_POST-It_Notes -zaleca się aby kodować wysyłane z JS (w kliencie znaki): " var passData = 'age='+escape(age)+'&name='+escape(name)+'&job='+escape(job);"
  7. http://www.hunlock.com/blogs/AJAX_from_the_darkside - jak zakończyć wysyłanie danych do klienta w PHP (poprzez zamknięcie polaczenia (ob_start();$size=...;header("Content-Length: $size");) i opróżnienie bufora (ob_end_flush(); flush();)
  8. http://support.microsoft.com/kb/241111/pl - Jak rozwiązać problemy z pobieraniem apletów...
  9. http://www.code-magazine.com/article.aspx?quickid=0404072&page=2 - VFP + .NET
  10. http://unspace.ca/discover/attributes/ - atrybuty czy klasy?
  11. http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=JavascriptStringConcatenation - klasa do pracy z łańcuchami w JS (a la Java)
  12. http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=MD5_For_AJAX - jak podpisywać MD5 z kluczem w JS, Javie i PHP
  13. http://www-128.ibm.com/developerworks/web/library/wa-ajaxintro5/?ca=dgr-btw48Ajax Manipulowanie DOM-em (IBM)
  14. http://www-128.ibm.com/developerworks/xml/library/wa-ajaxintro4/ - AJAX i DOM (IBM)
  15. http://www.w3schools.com/jsref/jsref_obj_global.asp - ciekawe funkcje w JS (w3cschools)

sobota, stycznia 27, 2007

Badanie podstawowe. Przesyłanie danych m. JS (klient) a serwerem (PHP). Po stronie serwera stosujemy 'escape' do kodowania danych i encodeURIcomponent (encodeURI) aby przesłać adresy zasobów URI. Należy zrobić i uruchomić taki przykład. Może po drugiej stronie nie trzeba niczego odkodowywać? Innym sposobem jest wykorzystanie kodowania base64. W PHP jest wsparcie ale czy w JS? Jest w nim dodatkowa biblioteka.

Z bibliotekami to należy postępować ostrożnie. Biblioteki dodatkowe są wspaniałe ale nie są oficjalnie autoryzowane przez twórców języka. Kto wie co jeszcze w środku robią? Dlatego powstała konieczność ujawniania kodu źródłowego bibliotek i innych dodatkowych komponentów języka z uwagi na podejrzenie "matactwa" w kodzie. Z drugiej strony zmuszeni do ujawnienia swego pomysłu zaklętego w kodu, twórcy bibliotek chcieli mieć z tego jakąś satysfakcję i uznanie dlatego wymyślili różne formy gratyfikacji swego pomysłu. I tak powstała zasada udostępniania kodu wg. warunków GPL.

środa, stycznia 24, 2007

Podsumowanie nie jest dostępne. Kliknij tutaj, by wyświetlić tego posta.

Gnizada w C. Zasoby:

  1. Akademickie - http://www.cs.rpi.edu/courses/sysprog/sockets/sock.html
  2. IBM - http://www-128.ibm.com/developerworks/views/opensource/libraryview.jsp:
    1. http://www.ibm.com/developerworks/edu/l-dw-linux-sock2-i.html
    2. http://www.ibm.com/developerworks/edu/l-dw-linux-sock-i.html
Standard HTML i kodowanie
W standardzie wyróżniamy następujace tagi do określenia języka:
  1. <meta http-equiv="content-type" content="text/html; charset=UTF-8"> tzw. meta tag (http://www.htmlquick.com/reference/tags/meta.html)
  2. character entity - do prezentowanie znaków nie należących do zestawu znaków dokumentu.
  3. language code np.pl
  4. country code, najczęściej występują w parze - "LanguageCode-CountryCode" np.pl-pl, en-us
A to po to aby:<p lang="es">Este es un p&aacute;rrafo en espa&ntilde;ol.</p>

Typy MIME - po to by opisać zasoby i informacje co z nimi robić (http://www.htmlquick.com/reference/mime-types.html)

URI/URL
Zasoby a świecie są definiowane przy pomocy URI (adres w sieci), URL opisuje miejsce w sieci danego dokumentu. URL składa się z protokołu (http), nazwy domeny (www.coig.com), ścieżki katalogowej ( opis/dokumentacja/) i nazwy dokumentu.

http://www.htmlquick.com - zawiera również wiele tutoriali

wtorek, stycznia 23, 2007

Pomysły:
Lub http://evolt.org/node/28553 na temat formularzy. i tu http://jeffhowden.com/code/css/forms/

http://www.trackingshot.com/ - kapitalne

http://www.pcworld.pl/news/105472/13.html - zdalny dostęp do innej maszyny

http://newsvac.newsforge.com/article.pl?sid=07/01/22/1837219&from=rss - CakePHP

http://www-128.ibm.com/developerworks/opensource/library/os-php-cake5/?ca=dgr-lnxw03CakePHP5 + 5 pomysłów IBM (http://www-128.ibm.com/developerworks/library/x-ajaxxml1/index.html) + przekształcenie XML na JSON (http://www-128.ibm.com/developerworks/library/x-xml2jsonphp/index.html)

http://pl.php.net/htmlentities

http://orangoo.com/labs/GreyBox/
Znowu wraca Java - IntelliJ IDEA jest bardzo dobrym narzędziem to tworzenia aplikacji w Javie. Na te j stronie znalazłem parę ciekawych odnośników np. do wraperów dla COM+ - http://www.teamdev.com/java_integration.jsf są podane narzędzia do integracji J ze środowiskiem Windows (JNIWrapper, ComfyJ, JExcel, JExplorer a także WinPack - bezpłatny) a to wszystko na http://www.teamdev.com/winpack/index.jsf. Odnośniki tamże do:
  1. http://www.javalobby.org/,
  2. http://www.theserverside.com/,
  3. www.refactoring.com
Warto popatrzeć na dema: http://www.jetbrains.com/idea/training/how_to_start.html
Aplikacje Java chcące być zainstalowane poprzez web (stronę) muszą korzystać z zhttp://java.sun.com/products/javawebstart/
JNIWrapper kosztuje 150 dolarów.
Ciekawostki z betanews:
  1. Hamachi
  2. Inscape
  3. VideoInspector
  4. Izarc
  5. PC Wizard 2007

Uwagi na temat implementacji korekt w PHP.
Wydaje się, że ze względu na specyfikę wymagań trzeba pójść własną drogą i zrobić skastomizowaną edycję pól w korektach. Do tego celu trzeba znależć:
  1. Obsługę zdarzeń (wybranie komórki i jej przekształcenie w input),
  2. Sprawdzanie wartości komórki z zależności od innych komórek

niedziela, stycznia 21, 2007

Świetny serwer - http://pengoworks.com/index.cfm?action=get:qforms. Daje:
  1. Formularze -qForms
  2. Mask edit
  3. Alternatywa do AJAX - iFrame
Drążyć FireBuga
Dustin Diaz - świetny blog plus prototype inny help - http://www.sergiopereira.com/articles/prototype.js.html
http://blogs.msdn.com/ie/archive/2005/05/10/416156.aspx
http://del.icio.us/popular/css - popularne w del.icio.us
http://ajax.phpmagazine.net/ahah/ - i inne
http://oat.openlinksw.com/ - fajny framework
Zasoby formularzowe:
  1. http://wufoo.com/tour/
  2. http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/
  3. http://www.dynamicdrive.com/ np.: http://www.dynamicdrive.com/dynamicindex16/
  4. http://www.dhtmlgoodies.com/ - np lista (select) pozwalająca wprowadzić nowe wartości - http://www.dhtmlgoodies.com/scripts/form_widget_editable_select/form_widget_editable_select.html, http://www.dhtmlgoodies.com/scripts/highlight-active-input/highlight-active-input.html
  5. http://www.gwtwindowmanager.org/ - manager okien
  6. Generalnie napisy dla INPUT powinny być nad elementami.


Infoxmix - procedury wbudowane
Wywołanie procedury - "execute procedure raise_price(5)" lub "execute procedure baza@servername:raise_price(5)", aby móc wywołać SP trzeba być właścicielem jej lub mieć zezwolenie na jej wykonanie (poprzez mechanizm GRANT). Inne wywołanie "execute procedure raise_price(ile=5)", gdzie "ile" to zmiena-parametr w nagłówku definiującym procedurę. Można zwrócić dane poprzez deklarację RETURNING w nagłówku oraz wykonanie RETURN. Uwaga - można zwrócić max. 32KB danych. Zwracane wielu wyników (wierszy) - poprzez stosowanie kursora.
  1. Ciekawe podcasty - http://softwareas.com/ - zawiera również dużo innych przemyśleń np. tworzenie ciekawych gradientów z poziomu linii poleceń ImageMagic . Powstał ciekawy projekt uruchamiania JS po stronie serwera - https://phobos.dev.java.net/, opiera sie na projekcie jMaki i bibliotece Dojo. Aha oto właściwa strona pddcastow/pokazów: http://softwareas.com/category/ajax/
  2. http://softwareas.com/ajaxjavascript-8-ways-to-create-graphics-on-the-fly - tworzenie grafiki
  3. Ajaxian - http://ajaxian.com/
  4. Przykłady z ksiązki "Ajax Design patterns" - http://ajaxiify.com/run/
  5. AjaxPatterns.org
  6. http://ajaxpatterns.org/Frameworks - opis frameworkow. Obrazek - http://ajaxpatterns.org/Frameworks_Matrix
  7. Jak zmienić styl standardowych kontrolek HTML - http://www.456bereastreet.com/archive/200701/styling_form_controls_with_css_revisited/
  8. http://simonwillison.net/2006/Dec/20/json/ -JSON, ale jak w PHP
  9. Przechowywanie stanu w IFrame - http://codinginparadise.org/weblog/2005/08/ajax-tutorial-saving-session-across.html jako odpowiedź na http://www.codeguru.com/cpp/i-n/ieprogram/displayinginformation/article.php/c12397__2/ i źródło http://msdn.microsoft.com/library/default.asp?url=/workshop/author/behaviors/reference/behaviors/userdata.asp
  10. Client-site Coding
  11. Ciekawy kod:

As promised, here is the complete script. Notice the last line, which assigns the externalLinks function to the window's onload event handler. This triggers the function when the document has finished loading.

function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externalLinks;


AHAH - hę? co to? - http://microformats.org/wiki/rest/ahah
Asynchronous HTTP and HTML - uproszczona wersja AJAX-a, wykorzystuje JS do dynamicznego uaktualnienia strony. Używa XMLHttpRequest (XHR) do pobrania fragmentów HTML i osadznia ich na stronie przy użyciu CSS. Jest to podzbiór AJAX-a i cechuje się prostotą, przesyła fragmenty HTML (nie musi parsować XML). Dobre przy wizualizacji strony a nie dla przesyłania danych (do tego lepiej używać XML).
function ahah(url, target, delay) {
document.getElementById(target).innerHTML = 'waiting...';
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (req != undefined) {
req.onreadystatechange = function() {ahahDone(url, target, delay);};
req.open("GET", url, true);
req.send("");
}
}

function ahahDone(url, target, delay) {
if (req.readyState == 4) { // only if req is "loaded"
if (req.status == 200) { // only if "OK"
document.getElementById(target).innerHTML = req.responseText;
} else {
document.getElementById(target).innerHTML="ahah error:n"+req.statusText;
}
if (delay != undefined) {
setTimeout("ahah(url,target,delay)", delay); // resubmit after delay
//server should ALSO delay before responding
}
}
}
Executing Javascript

Since the browser won't execute <script> tags when changing innerHTML, you may want to apply the following function call on document.getElementById(target):
var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
var bMoz = (navigator.appName == 'Netscape');
function execJS(node) {
var st = node.getElementsByTagName('SCRIPT');
var strExec;
for(var i=0;i<st.length; i++) {
if (bSaf) {
strExec = st[i].innerHTML;
}
else if (bOpera) {
strExec = st[i].text;
}
else if (bMoz) {
strExec = st[i].textContent;
}
else {
strExec = st[i].text;
}
try {
eval(strExec.split("<!--").join("").split("-->").join(""));
} catch(e) {
alert(e);
}
}
}
Ach te ramki.
MS wprowadził w IE 4 koncepcję ramek wewnętrznych, Netscape - ilayer. Idea MS zwycięzyła - mamy w W3C iFrame. Dzięki nim można bardzo łatwo aktualizować zawartość strony bez widocznego przeładowania - http://pengoworks.com/index.cfm?action=articles:gatewayApi.

sobota, stycznia 20, 2007

Ciekawe - AHAH -implementacja Ajax.
Jak uruchomić kod przesłany z serwera w czasie wymiany Ajax
To wszystko bazuje na pomyśle JAH (JavaScript Ascynchronous HTML)
Receive AHAH Request
function ahahDone(target) {
// only if req is "loaded"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200 || req.status == 304) {
results = req.responseText;
document.getElementById(target).innerHTML = results;
} else {
document.getElementById(target).innerHTML="ahah error:n" +
req.statusText;
}
}
}

Other than error checking, the only real work done is:
document.getElementById(target).innerHTML = results;

Everything else (e.g., CSS-styling) is merely inherited from the parent webpage.
[edit]
Executing Javascript

Since the browser won't execute <script> tags when changing innerHTML, you may want to apply the following function call on document.getElementById(target):
var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
var bMoz = (navigator.appName == 'Netscape');
function execJS(node) {
var st = node.getElementsByTagName('SCRIPT');
var strExec;
for(var i=0;i<st.length; i++) {
if (bSaf) {
strExec = st[i].innerHTML;
}
else if (bOpera) {
strExec = st[i].text;
}
else if (bMoz) {
strExec = st[i].textContent;
}
else {
strExec = st[i].text;
}
try {
eval(strExec.split("<!--").join("").split("-->").join(""));
} catch(e) {
alert(e);
}
}
}
[edit]
JavaScript Notes:
IE always returns tags in UPPER CASE, so you must search for SCRIPT and not script. Keep your SCRIPT tags in upper case for Firefox compatibility.
Do not use // comments, use /* */ instead. The eval executes all your javascript as though it was on one line, so you must end each statement with a semicolon (;).
Any functions declared in your JavaScript will go out of scope once the eval statement completes. It is possible to keep them in scope by attaching them as a method to a function that was defined at the document level.

Znowu AJAX
Bardzo ciekawe artykuły o AJAX -
  1. http://www.smashingmagazine.com/2007/01/19/53-css-techniques-you-couldnt-live-without/
  2. http://www.smashingmagazine.com/2006/11/15/ajax-dhtml-and-javascript-libraries/
  3. http://www.informit.com/articles/printerfriendly.asp?p=604094&rl=1
  4. http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/
  5. http://www.formlogix.com/Form_Maker.aspx
  6. http://developer.mozilla.org/en/docs/AJAX - zasoby Mozilli
  7. Ajax Articles http://www.ajaxlines.com/ajax/stuff/ajax_articles.php
  8. Co daje MS w zakresie AJAX?

http://www.ajaxlines.com -wiele ciekawych tutoriali, slajdów, technik itd.

  1. AJAX frameworks -http://www.ajaxlines.com/ajax/stuff/javascript_toolkits.php?page=1
  2. PHP Toolkits - http://www.ajaxlines.com/ajax/stuff/php_toolkits.php
  3. http://www.roundcube.net/ -świetny klient pocztowy w PHP
  4. Tabele edytowalne -iRow (beta), http://www.editgrid.com/home - EditGrid - działa.
  5. Ważne metody/kolekcje wykorzystywane w AJAX:
  6. element.ChildNodes(n)
    element.FirstChild
    element.nodeValue()
    element.attributes()
    element.getAttribue("attributeName")
    document.elementsByTagName("tagName")
    element.nodeName()

  7. www.ajaxload.info - gify
  8. http://www.google.com/ig/directory?synd=open&source=gghp - google gadgets Ajax
  9. http://www.google.com/apis/gadgets/reference.html#JS_Ref - odwołanie do API
Obejście zabezpieczeń - strona woła komponent - proxy na serwerze, który może w imieniu tej strony wywołać dowolną stronę świata."One important point: in most cases, browser’s limit XMLHttpRequest communication to the server the web page came from (and not where the script is hosted). If your page is hosted on http://example.org/ you can only make requests to that server — you couldn’t, for example, make a request to http://maps.google.com/. There are ways around this, the most promising being an application proxy — a program written in your favourite programming language that sits on your web server responding to XMLHttpRequests from users, making web service calls, and sending the data back to the client-side script. This and other techniques are discussed by Jason Levitt in Fixing AJAX: XMLHttpRequest considered harmful."

Rzeczy o krórych należy pamietać przy AJAX. - http://www.mercurytide.com/knowledge/white-papers/issues-working-with-ajax
np.
  1. request.setRequestHeader('X-Referer', document.location);
  2. var params = 'moneySymbol=' + encodeURIComponent('€');
    request.send(params);

Ajax to także efekty - http://www.thinkvitamin.com/features/ajax/create-your-own-ajax-effects

Ajax i bezpieczeństwo - http://www.securityfocus.com/infocus/1868 (XmlHttpRequest (XHR))

Ajax i wymiana danych - http://www.oracle.com/technology/pub/articles/cioroianu-ajax-data.html

Ajax i inne - http://www.ajaxlines.com/ajax/stuff/ajax_articles.php?page=3

Ajax i fundamentalne frameworki - http://www.indicthreads.com/articles/447/seven_ajax_frameworks_toolkits.html



Przemyślenia i wybór edytora Tabel
  1. Żeby coś zrobić trwałego należy nie tylko zapoznać się z tematem, ale zgłębić dokładnie wszystkie jego niuanse a dopiero wtedy proponowane przez Ciebie rozwiązanie ma szanse być doskonałym. W zrobirniu dobrego produktu liczy się nie tylko pomysł (to doceni chyba tylko informatyk) ale jego dopracowanie do każdego szczegółu, dopiero wtedy znajdzie dobrą ocenę u klienta końcowego. A takie dopieszczenie wymaga niestety czasu.
  2. Ważne jest nie tylko mieć dobry produkt, ale przemyśleć i zrealizować wszystkie szczegóły dotyczące:
    1. bezpieczeństwa i,
    2. instalacji u klienta końcowego (łatwości instalacji i uaktualnień)
  3. W zawodach na najlepszy edytor tabel wyłoniłem następujace rozwiazania:
    1. scbr
    2. active widgets
    3. jack s
    4. własne, ale tu wymaga rozpracowanie dwóch elementów:
      1. reakcja na klik na komórce
      2. in-place edycja (mam przykład example1-9.html)
  4. 12 bazowych schematów css - http://www.mitchbryson.com/css-templates/
  5. ! Ciekawe okienka - http://www.howtocreate.co.uk/tutorials/jsexamples/movablewindow.html - mogą też mieć własne menu
  6. ! Ciekawe kodowanie - http://www.howtocreate.co.uk/jslibs/script-comphash
  7. ! Ciekawa myszka - http://www.howtocreate.co.uk/jslibs/script-multitrail
  8. ! Ciekawa biblioteka - http://www.howtocreate.co.uk/jslibs/
  9. Można posłużyć się tzw. widgetami. Najbardziej rozbudowane mają Yahoo (wymaga instalacji własnego silnika), Opera. Trochę mniej oferują MS i Google (ale za to nie trzeba nic dodatkowego instalować)
  10. Drążyć temat 'curl' pobierania stron z Internetu. Curl czy WinHTTP?
  11. Biblie - http://prepareyourheart.info/haveborn.htm
  12. Topix.net founder Rich Skrenta recently took a similar approach to argue that Google, like PayPal, has already won the game and represents to most users the face of the Internet. Skrenta (in this week's links) argues that Google's dominance of search and advertising is so profound that most competitors -- especially Yahoo -- would probably be better off NOT even attempting to compete and simply let Google handle search and advertising while Yahoo provides content. He's probably correct. Skrenta argues that even if services come along that are superior to Google's, in order to become dominant they'll have to overcome Google's brand recognition with users, which is almost impossible to do. So just being better than Google isn't enough. - Yahoo dostarcza zawartość, Google dostarcza wyniki wyszukiwań - tego faktu nie da się zmienić jak zauważył słusznie - http://www.pbs.org/cringely/pulpit/2007/pulpit_20070119_001510.html
  13. Wg. autora poprzedniego zapisu - GG kupuje wielkie ośrodki do przetwarzania danych (przeważnie obok elektrowni, nawet atomowych co nie jest sensowne bo ich czas "życie" to srednio 10-15 lat), wykupuje sieci światłowodowe u dostawców (sprytne, nie kupuje firm aby się nie narazić na oskarżenie o monoplizację rynku). 50% ruchu w Interneci to filmy poprzez BitTorrent i dokonuje tego 5% internautów.
  14. Ciekawe operacje na zdarzeniach Yahoo UI Tools, czy Protorype jest prostsze? Uzupełnienie do tego -http://yuiblog.com/blog/2007/01/17/event-plan/ - uwaga! tutaj są blogroll-e do sławnych osobistości Internetowych (Bill Scott, Williams...)
  15. Browser detection - najlepiej poprzez 'user-agent' a nie np przez "This is just one example of feature detection falling on its face. Another was the getElementsByTagName("*") debacle. Internet Explorer prior to 6.0 supported getElementsByTagName(), but not when passing in an asterisk to get all elements. Yet another is the table-specific DOM methods that were implemented as stubs in Internet Explorer 5 for the Mac (they existed, they just didn't do anything). Further, both Firefox and Opera implemented document.all so that web sites designed for Internet Explorer wouldn't break; so much for that feature detection classic." Za http://www.nczonline.net/archive/2006/11/396
  16. http://www.dustindiaz.com/ - Dustin Diaz - propagator Prototype - świetne.

czwartek, stycznia 18, 2007

Znaki diakrytyczne
Przeszukałem MSDN Library 'html entities'. Co dostałem?
Character Entities for Special Symbols and BIDI Text

This table lists the named entities (NE) with their equivalent numeric character references (NCR) that are used to escape markup characters and denote spaces and dashes. Other characters in this section apply to internationalization issues, such as the disambiguation of bidirectional (BIDI) text, and special symbols.

Using NE NE NCR Description
C0 Controls and Basic Latin
" &quot; &#34; quotation mark, =apl quote, U0022 ISOnum
& &amp; &#38; ampersand, U0026 ISOnum
< &lt; &#60; less-than sign, U003C ISOnum
> &gt; &#62; greater-than sign, U003E ISOnum
Latin Extended-A
Œ &OElig; &#338; Latin capital ligature oe, U0152 ISOlat2
œ &oelig; &#339; Latin small ligature oe, U0153 ISOlat2
Š &Scaron; &#352; Latin capital letter s with caron, U0160 ISOlat2
š &scaron; &#353; Latin small letter s with caron, U0161 ISOlat2
Ÿ &Yuml; &#376; Latin capital letter y with diaeresis, U0178 ISOlat2
Spacing Modifier Letters
ˆ &circ; &#710; modifier letter circumflex accent, U02C6 ISOpub
˜ &tilde; &#732; small tilde, U02DC ISOdia
General Punctuation
[ ] &ensp; &#8194; en space, U2002 ISOpub
[ ] &emsp; &#8195; em space, U2003 ISOpub
[?] &thinsp; &#8201; thin space, U2009 ISOpub
? &zwnj; &#8204; zero width non-joiner, U200C NEW RFC 2070
? &zwj; &#8205; zero width joiner, U200D NEW RFC 2070
? &lrm; &#8206; left-to-right mark, U200E NEW RFC 2070
? &rlm; &#8207; right-to-left mark, U200F NEW RFC 2070
&ndash; &#8211; en dash, U2013 ISOpub
&mdash; &#8212; em dash, U2014 ISOpub
&lsquo; &#8216; left single quotation mark, U2018 ISOnum
&rsquo; &#8217; right single quotation mark, U2019 ISOnum
&sbquo; &#8218; single low-9 quotation mark, U201A NEW
&ldquo; &#8220; left double quotation mark, U201C ISOnum
&rdquo; &#8221; right double quotation mark, U201D ISOnum
&bdquo; &#8222; double low-9 quotation mark, U201E NEW
&dagger; &#8224; dagger, U2020 ISOpub
&Dagger; &#8225; double dagger, U2021 ISOpub
&permil; &#8240; per mille sign, U2030 ISOtech
&lsaquo; &#8249; single left-pointing angle quotation mark, U2039 ISO proposed
&rsaquo; &#8250; single right-pointing angle quotation mark, U203A ISO proposed
&euro; &#8364; euro sign, U+20AC NEW

Related Topics



Coś jeszcze
Character Set Recognition

Microsoft Internet Explorer uses the character set specified for a document to determine how to translate the bytes in the document into characters on the screen or on paper. By default, Internet Explorer uses the character set specified in the HTTP content type returned by the server to determine this translation. If this parameter is not given, Internet Explorer uses the character set specified by the meta element in the document. It uses the user's preferences if no meta element is specified.

You can use the meta element to explicitly set the character set for a document. In this case, set the HTTP-EQUIV attribute to Content-Type and specify a character set identifier in the CONTENT attribute. For example, the following meta element identifies windows-1251 as the character set for the document.

<META HTTP-EQUIV="Content-Type"
CONTENT="text/html; CHARSET=windows-1251">

To apply a character set to an entire document, you must insert the meta element before the body element. For clarity, it should appear as the first element after head, so that all browsers can translate the meta element before the document is parsed. The meta element applies to the document containing it. This means, for example, that a compound document (a document consisting of two or more documents in a set of frames) can use different character sets in different frames.

The following table contains information about the character sets supported by Internet Explorer 5, and it includes the following information.

  • Charset Friendly Name. Name used to refer to the character set.
  • Preferred Charset Label. Most common identifier used to set character sets in Internet Explorer. For example, in the previous code sample the Charset Label is windows-1251. These identifiers are used for outbound data.
  • Aliases. Other identifiers that can be used to set character sets. These identifiers are used for inbound data.
  • IE Ver. Versions of Internet Explorer that support the listed character sets.
  • Min OS. Minimum operating system that supports the listed character sets.
  • Code Page. Code page that supports the listed character sets.
  • Family Code Page. Indicates a Microsoft Windows code page that is used to represent all or most of the characters in a charset.

Charsets in Microsoft Internet Explorer 5

CharsetFriendlyName Preferred Charset Label Aliases IE Ver Min OS CodePage FamilyCodePage
Arabic (ASMO 708) ASMO-708 IE5 Win95 708 1256
Arabic (DOS) DOS-720 IE5 Win95 720 1256
Arabic (ISO) iso-8859-6 arabic, csISOLatinArabic, ECMA-114, ISO_8859-6, ISO_8859-6:1987, iso-ir-127 IE5, IE4 Win95 28596 1256
Arabic (Mac) x-mac-arabic IE5 Win2000 10004 1256
Arabic (Windows) windows-1256 cp1256 IE5 Win95 1256 1256
Baltic (DOS) ibm775 CP500 IE5 Win2000 775 1257
Baltic (ISO) iso-8859-4 csISOLatin4, ISO_8859-4, ISO_8859-4:1988, iso-ir-110, l4, latin4 IE5 Win95 28594 1257
Baltic (Windows) windows-1257 IE5 Win95 1257 1257
Central European (DOS) ibm852 cp852 IE5, IE4 Win95 852 1250
Central European (ISO) iso-8859-2 csISOLatin2, iso_8859-2, iso_8859-2:1987, iso8859-2, iso-ir-101, l2, latin2 IE5, IE4 Win95 28592 1250
Central European (Mac) x-mac-ce IE5 Win2000 10029 1250
Central European (Windows) windows-1250 x-cp1250 IE5 Win95 1250 1250
Chinese Simplified (EUC) EUC-CN x-euc-cn IE5 Win2000 51936 936
Chinese Simplified (GB2312) gb2312 chinese, CN-GB, csGB2312, csGB231280, csISO58GB231280, GB_2312-80, GB231280, GB2312-80, GBK, iso-ir-58 IE5, IE4 Win95 936 936
Chinese Simplified (HZ) hz-gb-2312 IE5, IE4 Win95 52936 936
Chinese Simplified (Mac) x-mac-chinesesimp IE5 Win2000 10008 936
Chinese Traditional (Big5) big5 cn-big5, csbig5, x-x-big5 IE5, IE4 Win95 950 950
Chinese Traditional (CNS) x-Chinese-CNS IE5 Win2000 20000 950
Chinese Traditional (Eten) x-Chinese-Eten IE5 Win2000 20002 950
Chinese Traditional (Mac) x-mac-chinesetrad IE5 Win2000 10002 950
Cyrillic (DOS) cp866 ibm866 IE5, IE4 Win95 866 1251
Cyrillic (ISO) iso-8859-5 csISOLatin5, csISOLatinCyrillic, cyrillic, ISO_8859-5, ISO_8859-5:1988, iso-ir-144, l5 IE5, IE4 Win95 28595 1251
Cyrillic (KOI8-R) koi8-r csKOI8R, koi, koi8, koi8r IE5, IE4 Win95 20866 1251
Cyrillic (KOI8-U) koi8-u koi8-ru IE5 Win95 21866 1251
Cyrillic (Mac) x-mac-cyrillic IE5 Win2000 10007 1251
Cyrillic (Windows) windows-1251 x-cp1251 IE5 Win95 1251 1251
Europa x-Europa IE5 n.a. 29001 1252
German (IA5) x-IA5-German IE5 Win2000 20106 1252
Greek (DOS) ibm737 IE5 Win2000 737 1253
Greek (ISO) iso-8859-7 csISOLatinGreek, ECMA-118, ELOT_928, greek, greek8, ISO_8859-7, ISO_8859-7:1987, iso-ir-126 IE5, IE4 Win95 28597 1253
Greek (Mac) x-mac-greek IE5 Win2000 10006 1253
Greek (Windows) windows-1253 IE5 Win95 1253 1253
Greek, Modern (DOS) ibm869 IE5 Win2000 869 1253
Hebrew (DOS) DOS-862 IE5 Win95 862 1255
Hebrew (ISO-Logical) iso-8859-8-i logical IE5, IE4 Win95 38598 1255
Hebrew (ISO-Visual) iso-8859-8 csISOLatinHebrew, hebrew, ISO_8859-8, ISO_8859-8:1988, ISO-8859-8, iso-ir-138, visual IE5, IE4 Win95 28598 1255
Hebrew (Mac) x-mac-hebrew IE5 Win2000 10005 1255
Hebrew (Windows) windows-1255 ISO_8859-8-I, ISO-8859-8, visual IE5 Win95 1255 1255
IBM EBCDIC (Arabic) x-EBCDIC-Arabic IE5 Win2000 20420 1256
IBM EBCDIC (Cyrillic Russian) x-EBCDIC-CyrillicRussian IE5 Win2000 20880 1251
IBM EBCDIC (Cyrillic Serbian-Bulgarian) x-EBCDIC-CyrillicSerbianBulgarian IE5 Win2000 21025 1251
IBM EBCDIC (Denmark-Norway) x-EBCDIC-DenmarkNorway IE5 Win2000 20277 1252
IBM EBCDIC (Denmark-Norway-Euro) x-ebcdic-denmarknorway-euro IE5 Win2000 1142 1252
IBM EBCDIC (Finland-Sweden) x-EBCDIC-FinlandSweden IE5 Win2000 20278 1252
IBM EBCDIC (Finland-Sweden-Euro) x-ebcdic-finlandsweden-euro IE5 Win2000 1143 1252
IBM EBCDIC (Finland-Sweden-Euro) x-ebcdic-finlandsweden-euro X-EBCDIC-France IE5 Win2000 1143 1252
IBM EBCDIC (France-Euro) x-ebcdic-france-euro IE5 Win2000 1147 1252
IBM EBCDIC (Germany) x-EBCDIC-Germany IE5 Win2000 20273 1252
IBM EBCDIC (Germany-Euro) x-ebcdic-germany-euro IE5 Win2000 1141 1252
IBM EBCDIC (Greek Modern) x-EBCDIC-GreekModern IE5 Win2000 875 1253
IBM EBCDIC (Greek) x-EBCDIC-Greek IE5 Win2000 20423 1253
IBM EBCDIC (Hebrew) x-EBCDIC-Hebrew IE5 Win2000 20424 1255
IBM EBCDIC (Icelandic) x-EBCDIC-Icelandic IE5 Win2000 20871 1252
IBM EBCDIC (Icelandic-Euro) x-ebcdic-icelandic-euro IE5 Win2000 1149 1252
IBM EBCDIC (International-Euro) x-ebcdic-international-euro IE5 Win2000 1148 1252
IBM EBCDIC (Italy) x-EBCDIC-Italy IE5 Win2000 20280 1252
IBM EBCDIC (Italy-Euro) x-ebcdic-italy-euro IE5 Win2000 1144 1252
IBM EBCDIC (Japanese and Japanese Katakana) x-EBCDIC-JapaneseAndKana IE5 Win2000 50930 932
IBM EBCDIC (Japanese and Japanese-Latin) x-EBCDIC-JapaneseAndJapaneseLatin IE5 Win2000 50939 932
IBM EBCDIC (Japanese and US-Canada) x-EBCDIC-JapaneseAndUSCanada IE5 Win2000 50931 932
IBM EBCDIC (Japanese katakana) x-EBCDIC-JapaneseKatakana IE5 Win2000 20290 932
IBM EBCDIC (Korean and Korean Extended) x-EBCDIC-KoreanAndKoreanExtended IE5 Win2000 50933 949
IBM EBCDIC (Korean Extended) x-EBCDIC-KoreanExtended IE5 Win2000 20833 949
IBM EBCDIC (Multilingual Latin-2) CP870 IE5 Win2000 870 1250
IBM EBCDIC (Simplified Chinese) x-EBCDIC-SimplifiedChinese IE5 Win2000 50935 936
IBM EBCDIC (Spain) X-EBCDIC-Spain IE5 Win2000 20284 1252
IBM EBCDIC (Spain-Euro) x-ebcdic-spain-euro IE5 Win2000 1145 1252
IBM EBCDIC (Thai) x-EBCDIC-Thai IE5 Win2000 20838 874
IBM EBCDIC (Traditional Chinese) x-EBCDIC-TraditionalChinese IE5 Win2000 50937 950
IBM EBCDIC (Turkish Latin-5) CP1026 IE5 Win2000 1026 1254
IBM EBCDIC (Turkish) x-EBCDIC-Turkish IE5 Win2000 20905 1254
IBM EBCDIC (UK) x-EBCDIC-UK IE5 Win2000 20285 1252
IBM EBCDIC (UK-Euro) x-ebcdic-uk-euro IE5 Win2000 1146 1252
IBM EBCDIC (US-Canada) ebcdic-cp-us IE5 Win2000 37 1252
IBM EBCDIC (US-Canada-Euro) x-ebcdic-cp-us-euro IE5 Win2000 1140 1252
Icelandic (DOS) ibm861 IE5 Win2000 861 1252
Icelandic (Mac) x-mac-icelandic IE5 Win2000 10079 1252
ISCII Assamese x-iscii-as IE5 Win2000 57006 57006
ISCII Bengali x-iscii-be IE5 Win2000 57003 57003
ISCII Devanagari x-iscii-de IE5 Win2000 57002 57002
ISCII Gujarathi x-iscii-gu IE5 Win2000 57010 57010
ISCII Kannada x-iscii-ka IE5 Win2000 57008 57008
ISCII Malayalam x-iscii-ma IE5 Win2000 57009 57009
ISCII Oriya x-iscii-or IE5 Win2000 57007 57007
ISCII Panjabi x-iscii-pa IE5 Win2000 57011 57011
ISCII Tamil x-iscii-ta IE5 Win2000 57004 57004
ISCII Telugu x-iscii-te IE5 Win2000 57005 57005
Japanese (EUC) euc-jp csEUCPkdFmtJapanese, Extended_UNIX_Code_Packed_Format_for_Japanese, x-euc, x-euc-jp IE5, IE4 Win95 51932 932
Japanese (JIS) iso-2022-jp IE5, IE4 Win95 50220 932
Japanese (JIS-Allow 1 byte Kana - SO/SI) iso-2022-jp _iso-2022-jp$SIO IE5 Win95 50222 932
Japanese (JIS-Allow 1 byte Kana) csISO2022JP _iso-2022-jp IE5 Win95 50221 932
Japanese (Mac) x-mac-japanese IE5 Win2000 10001 932
Japanese (Shift-JIS) shift_jis csShiftJIS, csWindows31J, ms_Kanji, shift-jis, x-ms-cp932, x-sjis IE5, IE4 Win95 932 932
Korean ks_c_5601-1987 csKSC56011987, euc-kr, iso-ir-149, korean, ks_c_5601, ks_c_5601_1987, ks_c_5601-1989, KSC_5601, KSC5601 IE5 Win95 949 949
Korean (EUC) euc-kr csEUCKR IE5 Win95 51949 949
Korean (ISO) iso-2022-kr csISO2022KR IE5 Win95 50225 949
Korean (Johab) Johab IE5 Win2000 1361 1361
Korean (Mac) x-mac-korean IE5 Win2000 10003 949
Latin 3 (ISO) iso-8859-3 csISO, Latin3, ISO_8859-3, ISO_8859-3:1988, iso-ir-109, l3, latin3 IE5, IE4 Win95 28593 1254
Latin 9 (ISO) iso-8859-15 csISO, Latin9, ISO_8859-15, l9, latin9 IE5 Win95 28605 1252
Norwegian (IA5) x-IA5-Norwegian IE5 Win2000 20108 1252
OEM United States IBM437 437, cp437, csPC8, CodePage437 IE5 Win2000 437 1252
Swedish (IA5) x-IA5-Swedish IE5 Win2000 20107 1252
Thai (Windows) windows-874 DOS-874, iso-8859-11, TIS-620 IE5, IE4 Win95 874 874
Turkish (DOS) ibm857 IE5 Win2000 857 1254
Turkish (ISO) iso-8859-9 csISO, Latin5, ISO_8859-9, ISO_8859-9:1989, iso-ir-148, l5, latin5 IE5 Win95 28599 1254
Turkish (Mac) x-mac-turkish IE5 Win2000 10081 1254
Turkish (Windows) windows-1254 ISO_8859-9, ISO_8859-9:1989, iso-8859-9, iso-ir-148, latin5 IE5 Win95 1254 1254
Unicode unicode utf-16 IE5, IE4 Win95 1200 1200
Unicode (Big-Endian) unicodeFFFE IE5, IE4 Win95 1201 1200
Unicode (UTF-7) utf-7 csUnicode11UTF7, unicode-1-1-utf-7, x-unicode-2-0-utf-7 IE5, IE4 Win95 65000 1200
Unicode (UTF-8) utf-8 unicode-1-1-utf-8, unicode-2-0-utf-8, x-unicode-2-0-utf-8 IE5, IE4 Win95 65001 1200
US-ASCII us-ascii ANSI_X3.4-1968, ANSI_X3.4-1986, ascii, cp367, csASCII, IBM367, ISO_646.irv:1991, ISO646-US, iso-ir-6us IE5 Win95 20127 1252
Vietnamese (Windows) windows-1258 IE5, IE4 Win95 1258 1258
Western European (DOS) ibm850 IE5 Win2000 850 1252
Western European (IA5) x-IA5 IE5 Win2000 20105 1252
Western European (ISO) iso-8859-1 cp819, csISO, Latin1, ibm819, iso_8859-1, iso_8859-1:1987, iso8859-1, iso-ir-100, l1, latin1 IE5 Win95 28591 1252
Western European (Mac) macintosh IE5 Win2000 10000 1252
Western European (Windows) Windows-1252 ANSI_X3.4-1968, ANSI_X3.4-1986, ascii, cp367, cp819, csASCII, IBM367, ibm819, ISO_646.irv:1991, iso_8859-1, iso_8859-1:1987, ISO646-US, iso8859-1, iso-8859-1, iso-ir-100, iso-ir-6, latin1, us, us-ascii, x-ansi IE5 Win95 1252 1252

Internal Charsets Not for General Use

The following character sets are not for general use, so do not use them to label documents.

Charset Friendly Name Preferred Charset Label Aliases IE Ver Min OS Code Page Family Code Page
User Defined x-user-defined IE5, IE4 Win95 50000 50000
Japanese (Auto-Select) IE5, IE4 Win95 50932 932
Auto-Select IE5 Win95 50001 50001
Korean (Auto-Select) IE5, IE4 Win95 50949 949



Testowałem wiele programów do zdalnej obsługi komputera w Internecie. Wśród bezpłatnych mamy do czynienie z:
  1. CrossLoop
  2. IRemotePC
  3. Hamachi - ten wydaje się ma duże możliwości
Do obejrzenia:
  1. IE7ProSetup
  2. Hamachi - może dlatego dobry bo tworzy sieć wirtualną między komputerami w Internecie korzystając z peer-2-peer
  3. http://cookmail.sourceforge.net/ - obsługa poczty
  4. Try the <a href="cookswingdemo.jnlp">Java Web Start demo</a> - tak można wystartować aplikację w Javie
  5. http://jscook.sourceforge.net/ - menu
  6. http://www.sergiopereira.com/articles/prototype.js.html - tutorial do prototype
  7. http://ajax.phpmagazine.net/json/ -ciekawy z niego mam poniższe linki
  8. * http://oat.openlinksw.com/ -super biblioteka dla JS, mnóstwo bajerów
  9. http://moofx.mad4milk.net/
  10. http://clean-ajax.sourceforge.net/
  11. http://www.xml.com/pub/a/2006/04/05/prototype-javascript-ajax.html - tutorial o Proto
  12. * http://ajax.phpmagazine.net/2006/11/simple_spreadsheet_open_source.html
    1. Przykład : http://www.simple-groupware.de/demo/simple_spreadsheet/spreadsheet.php?lang=en
    2. http://www.simple-groupware.de/cms/
  13. http://en.wikipedia.org/wiki/Battleship_game
  14. http://en.wikipedia.org/wiki/Go_%28board_game%29
  15. http://www.sinkmyship.com/battleship/single.html
  16. * http://ajax.phpmagazine.net/2006/11/prototype_encoding_issue.html - mówi o tym, żeby używać iconv w PHP np: $name = iconv("UTF-8", "windows-1256", $_POST['name']);
DataGrid w JS:
  1. http://www.activewidgets.com/licenses/ - ActiveWidgets -250 USD
  2. http://developer.yahoo.com/javascript/ - wiele informacji
  3. http://www.cs.ucla.edu/~heng/JSCookTree/demo.html - CoolJsTree - bezpłatna. Ciekawy człowiek - http://www.cs.ucla.edu/~heng/
  4. http://javascript.cooldev.com/scripts/cooltree/ - ale nie ma table!