- 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
- 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. - http://www.informit.com/articles/article.asp?p=686162&rl=1 - implementing internet communication in Python
- 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() 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
- 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
- http://www.mindomo.com/main.php - online mind mapping
niedziela, marca 04, 2007
wtorek, lutego 27, 2007
Kodowanie
Kodowanie uniwersalne - projekt:
- 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).
- Dane są bezpiecznie wysłane do serwera jako ciąg znaków ASCII - nie są widziane jako dane binarne.
- Serwer rozpakowuje dane posługując się base64 (dekoduje) wbudowaną w PHP
To samo dzieje się w drugą stronę
poniedziałek, lutego 19, 2007
Biblioteki kryptograficzne w JS kompatybilne z PHP
- http://pajhome.org.uk/crypt/md5/auth.html - strona poświęcona ochronie i autentykacji danych + algorytmy szyfrowania md5, sha-1
- http://www.koders.com/javascript/fidC1E98D74CAF85084CE28804642822DC623843BDF.aspx?s=md5 - inna implementacja
- http://www.md5encryption.com/?mod=encrypt - test poprawności działania md5
- http://anmar.eu.org/projects/jssha2/ - dla opornych SHA-1
piątek, lutego 09, 2007
Zagadnienia:
- Przegląd technologii internetowych
- Przykłady rozwiązań przed AJAXem (Form Submit) i rozwiązań alternatywnych (iFrame)
- Definicja AJAX, podstawowe elementy i komponenty, diagram interakcji, przykłady aplikacji Web 2
- Narzędzia do tworzenia rozwiązań opartych o AJAX - przegląd wzorców, bibliotek i frameworków (Yahoo, Atlas, advAjax)
- Podstawy AJAX w oparciu o JavaScript:
- Wprowadzenie do elementów potrzebnych do uruchomienia AJAX w JS
- Oprogramowanie po stronie klienta (PHP, .NET)
- Warsztat - tworzenie aplikacji korzystającej z techologii AJAX
- Aplikacja minimalistyczna - korzystająca z podstawowych składników (XMLHttpRequest, DHTML, JS, CSS) -1 godz.
- Aplikacja pełna - korzystająca z biblioteki "prototype" - 1 godz.
- Aplikacja pełna niezależna od przeglądarki internetowej (porównanie modelu DOM i BOM w MS IE i FireFox) - 1 godz.
- Narzędzia wspomagające testowanie aplikacji internetowych - JavaScript Shell, FireBug, Fiddler - 0.5 godz.
- Tworzenie aplikacji uwzględniających różnorodne standardu kodowania polskich liter (iso-8859, utf-8, windows-1250) - 1 godz.
- Wykorzystanie technologii Ajax w aplikacjach desktopowych (widgets - wichajstry w Yahoo/Opera/Google, Visual FoxPro 9.0) - 1 godz.
- Nowe kierunki - oprogramowanie usług webowych firmy Google (docs, spreadsheets, calendar) poprzez Google API - 0.5 godz.
Uzasadnienie:
- 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).
- 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).
- W środowisku MS Windows Client działają pakiety biurowe z najbardziej popularnym MS Office.
- Firma MS oprócz środowiska uruchomieniowego dla aplikacji graficznych dostarcza również narzędzi do tworzenia aplikacji.
- 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).
- 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.
- 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).
- 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).
- 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.
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)
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
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:
- Komputer działa dobrze
- System operacyjny i narzędzi w którym pracuje (RAD) działa dobrze
- Gotowe biblioteki działają dobrze
- Procedury wbudowane przygotowane przez projektanta działają dobrze
- Protokołu transmisji działają dobrze
środa, stycznia 31, 2007
- Możliwość behavior z IE udostępniona w FireFox
- http://rabaix.net/index.php/en/articles/issues_developing_ajax_libraries -
- 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 [...] 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();
On the server side you can access to the referrer with $_SERVER['X_REFERRER'].
xmlRequest.setRequestHeader("X-Referrer",document.location);- ResponseXML jak do niego dotrzeć? var firstnames = reponseXML.getElementsByTagName('firstname'); alert('The firstname is ' + firstnames[0]);
- W przeglądarkach nie IE jest możliwość serializacji:
- 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) - 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.
- Przy responseXML nie działa getElementById - po prostu go nie ma.
- Jest pewna możliwość wykonania kodu zwróconego w 'response'XML/Text:
- responseXML:
- 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);
} - responseText:
- 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);
}
} - 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.
- Można włączyć w kod AJAX inny kod AJAX (embedded)
- var AJAX_Objects = new Array();
function registerAjaxObject(name, obj) {
AJAX_Objects[name] = obj;
} - 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); - 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;
} - Zasoby:
- Demo page of this article : http://rabaix.net/pub/issues_developing_ajax_libraries/demo.html
- Prototype library : http://prototype.conio.net/
- Wikipedia AJAX : http://en.wikipedia.org/wiki/AJAX
- Adaptive Path : http://www.adaptivepath.com/publications/essays/archives/000385.php
- Ajax Mistakes : http://sourcelabs.com/ajb/archives/2005/05/ajax_mistakes.html
- 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:
- http://www.smashingmagazine.com/2007/01/26/tutorials-round-up-ajax-css-javascript-php-mysql-and-more/
- http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html - kompletny opis "permission" w Javie
- http://docs.rinet.ru/MIIS/ch22.htm - opis tworznia ActiveX w Control Pad
- http://blogs.zoho.com/creator/embed-forms-and-views-in-your-websiteblog - Zoho tworzenie formularzy w blogach
- http://www.hunlock.com/blogs/AJAX_for_n00bs - wymiana danych z serwerem poprzez iFrame (emulacja AJAX, choć bez kontroli)
- 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);"
- 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();)
- http://support.microsoft.com/kb/241111/pl - Jak rozwiązać problemy z pobieraniem apletów...
- http://www.code-magazine.com/article.aspx?quickid=0404072&page=2 - VFP + .NET
- http://unspace.ca/discover/attributes/ - atrybuty czy klasy?
- http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=JavascriptStringConcatenation - klasa do pracy z łańcuchami w JS (a la Java)
- http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=MD5_For_AJAX - jak podpisywać MD5 z kluczem w JS, Javie i PHP
- http://www-128.ibm.com/developerworks/web/library/wa-ajaxintro5/?ca=dgr-btw48Ajax Manipulowanie DOM-em (IBM)
- http://www-128.ibm.com/developerworks/xml/library/wa-ajaxintro4/ - AJAX i DOM (IBM)
- 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.
czwartek, stycznia 25, 2007
środa, stycznia 24, 2007
W standardzie wyróżniamy następujace tagi do określenia języka:
- <meta http-equiv="content-type" content="text/html; charset=UTF-8"> tzw. meta tag (http://www.htmlquick.com/reference/tags/meta.html)
- character entity - do prezentowanie znaków nie należących do zestawu znaków dokumentu.
- language code np.pl
- country code, najczęściej występują w parze - "LanguageCode-CountryCode" np.pl-pl, en-us
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/
- http://www.javalobby.org/,
- http://www.theserverside.com/,
- www.refactoring.com
Aplikacje Java chcące być zainstalowane poprzez web (stronę) muszą korzystać z zhttp://java.sun.com/products/javawebstart/
JNIWrapper kosztuje 150 dolarów.
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żć:
- Obsługę zdarzeń (wybranie komórki i jej przekształcenie w input),
- Sprawdzanie wartości komórki z zależności od innych komórek
niedziela, stycznia 21, 2007
- Formularze -qForms
- Mask edit
- Alternatywa do AJAX - iFrame
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:
- http://wufoo.com/tour/
- http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/
- http://www.dynamicdrive.com/ np.: http://www.dynamicdrive.com/dynamicindex16/
- 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
- http://www.gwtwindowmanager.org/ - manager okien
- Generalnie napisy dla INPUT powinny być nad elementami.
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.
- 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/
- http://softwareas.com/ajaxjavascript-8-ways-to-create-graphics-on-the-fly - tworzenie grafiki
- Ajaxian - http://ajaxian.com/
- Przykłady z ksiązki "Ajax Design patterns" - http://ajaxiify.com/run/
- AjaxPatterns.org
- http://ajaxpatterns.org/Frameworks - opis frameworkow. Obrazek - http://ajaxpatterns.org/Frameworks_Matrix
- Jak zmienić styl standardowych kontrolek HTML - http://www.456bereastreet.com/archive/200701/styling_form_controls_with_css_revisited/
- http://simonwillison.net/2006/Dec/20/json/ -JSON, ale jak w PHP
- 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
- Client-site Coding
- 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;
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);
}
}
}
sobota, stycznia 20, 2007
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.
- http://www.smashingmagazine.com/2007/01/19/53-css-techniques-you-couldnt-live-without/
- http://www.smashingmagazine.com/2006/11/15/ajax-dhtml-and-javascript-libraries/
- http://www.informit.com/articles/printerfriendly.asp?p=604094&rl=1
- http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/
- http://www.formlogix.com/Form_Maker.aspx
- http://developer.mozilla.org/en/docs/AJAX - zasoby Mozilli
- Ajax Articles http://www.ajaxlines.com/ajax/stuff/ajax_articles.php
- Co daje MS w zakresie AJAX?
http://www.ajaxlines.com -wiele ciekawych tutoriali, slajdów, technik itd.
- AJAX frameworks -http://www.ajaxlines.com/ajax/stuff/javascript_toolkits.php?page=1
- PHP Toolkits - http://www.ajaxlines.com/ajax/stuff/php_toolkits.php
- http://www.roundcube.net/ -świetny klient pocztowy w PHP
- Tabele edytowalne -iRow (beta), http://www.editgrid.com/home - EditGrid - działa.
- Ważne metody/kolekcje wykorzystywane w AJAX:
element.ChildNodes(n) element.FirstChild element.nodeValue() element.attributes() element.getAttribue("attributeName") document.elementsByTagName("tagName") element.nodeName() - www.ajaxload.info - gify
- http://www.google.com/ig/directory?synd=open&source=gghp - google gadgets Ajax
- http://www.google.com/apis/gadgets/reference.html#JS_Ref - odwołanie do API
Rzeczy o krórych należy pamietać przy AJAX. - http://www.mercurytide.com/knowledge/white-papers/issues-working-with-ajax
np.
- request.setRequestHeader('X-Referer', document.location);
- 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
- Ż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.
- Ważne jest nie tylko mieć dobry produkt, ale przemyśleć i zrealizować wszystkie szczegóły dotyczące:
- bezpieczeństwa i,
- instalacji u klienta końcowego (łatwości instalacji i uaktualnień)
- W zawodach na najlepszy edytor tabel wyłoniłem następujace rozwiazania:
- scbr
- active widgets
- jack s
- własne, ale tu wymaga rozpracowanie dwóch elementów:
- reakcja na klik na komórce
- in-place edycja (mam przykład example1-9.html)
- 12 bazowych schematów css - http://www.mitchbryson.com/css-templates/
- ! Ciekawe okienka - http://www.howtocreate.co.uk/tutorials/jsexamples/movablewindow.html - mogą też mieć własne menu
- ! Ciekawe kodowanie - http://www.howtocreate.co.uk/jslibs/script-comphash
- ! Ciekawa myszka - http://www.howtocreate.co.uk/jslibs/script-multitrail
- ! Ciekawa biblioteka - http://www.howtocreate.co.uk/jslibs/
- 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ć)
- Drążyć temat 'curl' pobierania stron z Internetu. Curl czy WinHTTP?
- Biblie - http://prepareyourheart.info/haveborn.htm
- 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
- 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.
- 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...)
- 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
- http://www.dustindiaz.com/ - Dustin Diaz - propagator Prototype - świetne.
czwartek, stycznia 18, 2007
Przeszukałem MSDN Library 'html entities'. Co dostałem?
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 | |||
| " | " | " | quotation mark, =apl quote, U0022 ISOnum |
| & | & | & | ampersand, U0026 ISOnum |
| < | < | < | less-than sign, U003C ISOnum |
| > | > | > | greater-than sign, U003E ISOnum |
| Latin Extended-A | |||
| Œ | Œ | Œ | Latin capital ligature oe, U0152 ISOlat2 |
| œ | œ | œ | Latin small ligature oe, U0153 ISOlat2 |
| Š | Š | Š | Latin capital letter s with caron, U0160 ISOlat2 |
| š | š | š | Latin small letter s with caron, U0161 ISOlat2 |
| Ÿ | Ÿ | Ÿ | Latin capital letter y with diaeresis, U0178 ISOlat2 |
| Spacing Modifier Letters | |||
| ˆ | ˆ | ˆ | modifier letter circumflex accent, U02C6 ISOpub |
| ˜ | ˜ | ˜ | small tilde, U02DC ISOdia |
| General Punctuation | |||
| [ ] |   |   | en space, U2002 ISOpub |
| [ ] |   |   | em space, U2003 ISOpub |
| [?] |   |   | thin space, U2009 ISOpub |
| ? | ‌ | ‌ | zero width non-joiner, U200C NEW RFC 2070 |
| ? | ‍ | ‍ | zero width joiner, U200D NEW RFC 2070 |
| ? | ‎ | ‎ | left-to-right mark, U200E NEW RFC 2070 |
| ? | ‏ | ‏ | right-to-left mark, U200F NEW RFC 2070 |
| – | – | – | en dash, U2013 ISOpub |
| — | — | — | em dash, U2014 ISOpub |
| ‘ | ‘ | ‘ | left single quotation mark, U2018 ISOnum |
| ’ | ’ | ’ | right single quotation mark, U2019 ISOnum |
| ‚ | ‚ | ‚ | single low-9 quotation mark, U201A NEW |
| “ | “ | “ | left double quotation mark, U201C ISOnum |
| ” | ” | ” | right double quotation mark, U201D ISOnum |
| „ | „ | „ | double low-9 quotation mark, U201E NEW |
| † | † | † | dagger, U2020 ISOpub |
| ‡ | ‡ | ‡ | double dagger, U2021 ISOpub |
| ‰ | ‰ | ‰ | per mille sign, U2030 ISOtech |
| ‹ | ‹ | ‹ | single left-pointing angle quotation mark, U2039 ISO proposed |
| › | › | › | single right-pointing angle quotation mark, U203A ISO proposed |
| € | € | € | euro sign, U+20AC NEW |
Related Topics
Coś jeszcze
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 |
- CrossLoop
- IRemotePC
- Hamachi - ten wydaje się ma duże możliwości
- IE7ProSetup
- Hamachi - może dlatego dobry bo tworzy sieć wirtualną między komputerami w Internecie korzystając z peer-2-peer
- http://cookmail.sourceforge.net/ - obsługa poczty
- Try the <a href="cookswingdemo.jnlp">Java Web Start demo</a> - tak można wystartować aplikację w Javie
- http://jscook.sourceforge.net/ - menu
- http://www.sergiopereira.com/articles/prototype.js.html - tutorial do prototype
- http://ajax.phpmagazine.net/json/ -ciekawy z niego mam poniższe linki
- * http://oat.openlinksw.com/ -super biblioteka dla JS, mnóstwo bajerów
- http://moofx.mad4milk.net/
- http://clean-ajax.sourceforge.net/
- http://www.xml.com/pub/a/2006/04/05/prototype-javascript-ajax.html - tutorial o Proto
- * http://ajax.phpmagazine.net/2006/11/simple_spreadsheet_open_source.html
- Przykład : http://www.simple-groupware.de/demo/simple_spreadsheet/spreadsheet.php?lang=en
- http://www.simple-groupware.de/cms/
- http://en.wikipedia.org/wiki/Battleship_game
- http://en.wikipedia.org/wiki/Go_%28board_game%29
- http://www.sinkmyship.com/battleship/single.html
- * 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']);
- http://www.activewidgets.com/licenses/ - ActiveWidgets -250 USD
- http://developer.yahoo.com/javascript/ - wiele informacji
- http://www.cs.ucla.edu/~heng/JSCookTree/demo.html - CoolJsTree - bezpłatna. Ciekawy człowiek - http://www.cs.ucla.edu/~heng/
- http://javascript.cooldev.com/scripts/cooltree/ - ale nie ma table!