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
" " " quotation mark, =apl quote, U0022 ISOnum
& & & 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!

Problemy z PHP:

Strings - A string is series of characters. In PHP, a character is the same as a byte, that is, there are exactly 256 different characters possible. This also implies that PHP has no native support of Unicode. See utf8_encode() and utf8_decode() for some Unicode support.

Pozostaje jeszcze funkcja iconv w php.

Super strona o kodowaniu w UTF-8:

  1. http://www.kurshtml.boo.pl/generatory/unicode.html - świetnie pokazuje dowolny znak z Unicode
  2. http://www.jbrowse.com/text/charsets.html
  3. http://pl.wikipedia.org/wiki/ISO_8859-2 - w tym kodzie nie ma miejsca dla znaku € (domyślnie to 128, ale takiego znaku nie ma, jest niedopuszczalny). Hopteza - przy transmisji następuje najpierw spakowanie znaków po stronie klienta do kodu UTF-8, transmisja po sieci i rozpakowanie z UTF-8 na domyślny kod, ale ponieważ w danym alfabecie tego znaku nie ma to zastępowany jest znacznikem HTML &#8364;. Jest to potwierdzone w bazie Informix.
  4. http://osiolki.net/faq/kodowanie - dane o kodowaniu
  5. Deklaracja - Tag meta Deklarację użytego zestawu znaków powinno się wysyłać bezpośrednio w nagłówkach serwera (poza dokumentem), ale najczęściej autorzy stron nie mają takiej możliwości. Z tego powodu powstał tag <meta>.Deklarację należy umieścić w sekcji <head>. Dla kodowania ISO wygląda tak:<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  6. W PHP jest funkcja header() wysyłająca nagłówki HTTP.

    <?php header("Content-Type: text/html; charset=ISO-8859-2"); ?>

    Taka deklaracja zastępuje tag <meta>.

  7. W JavaServer Pages (nie myl z apletami Java ani JavaScript) kodowanie ustawia się następująco:

    <%@ page contentType="text/html" pageEncoding="UTF-8" %>

  8. Do kodowania i innej zabawy - http://www.gzegzolka.com/

  9. Dziwactwa IE - http://www.howtocreate.co.uk/wrongWithIE/ wiele ciekawych porównań

  10. Przewijanie:<DIV ID="oID_1" STYLE="overflow:scroll; height=200; width=150; text-align:left">The <B>scrollHeight</B> property is read-only, allowing
    you to obtain the height actually needed in the scrolling. Even though the height of this <B>DIV</B> is 200, the
    height inside the scrolling text box may be less, since the wrapping of the text may mean that not the entire
    width of the object is used. This dimension may be useful for a variety of reasons; for example,
    the height of the <B>DIV</B> could be set to the <B>scrollHeight</B> to conserve horizontal space while respecting the
    set width as a maximum. </DIV> i skrypt <
    SCRIPT>function fnCheckScroll(){ var newheight = oID_1.scrollHeight; alert("The value of the scrollHeight property is " + newheight + " pixels");}</SCRIPT>

  11. object.scrollTop

  12. Zdarzenia - Workaround: If your script is unable to rely on older event models, use a combination of addEventListener and attachEvent, and fall back to older models. Use
    if( theElement.addEventListener ) {
    theElement.addEventListener('click',myfunction,false);
    } else if ( theElement.attachEvent ) {
    theElement.attachEvent('click',myfunction);
    } else {
    theElement.onclick = myfunction;
    }

Pomysły na AJAX, wszystko opiera się na miksie przetwarzania strona klienta-serwera i korzystaniu z dwóch języków po stronie klienta i serwera:
  1. frameworki w językach skryptowych po stronie klienta np. advanced Ajax, Prototype, Yahoo. Ale nie wspierają natywnie wykonywania skryptów po stronie serwera, wywołują jedynie strony ze spreparowanymi URL (GET) lub przesyłają w strumieniu (nagłówku HTTP metoda POST)
  2. frameworki w językach skryptowych po stronie serwera np. XAJAX dla PHP (ale część kliencką nadal trzeba pisać w JS, czyli używać innego języka)
  3. frameworki typu GTW (Google) wszystko piszemy w Javie, nawet stronę kliencką (kod w Javie jest generowany do JS) - unika się wtedy syndromu dwóch języków
  4. unikalny framework ATLAS (MS) jeden język tu i tam


wtorek, grudnia 26, 2006

Obsługa poczty

Jak podejść do problemu obsługi poczty elektronicznej?

Rozróżniamy dwa przypadki: klient do wysyłania poczty i do odbierania.
  1. Pierwsza funkcja jest prosta i można znaleźć wiele gotowych rozwiązań np. w Pythonie, VFP (sweet pototaes), blat itd. Z czytaniem poczty jest trochę trudniej (i zazwyczaj sprowadza się do obsługi repozytorium serwera pocztowego, który może mieć wiele odmian skrzynek np. INBOX czy też inne), chociaż też można znaleźć coś ciekawego: VFP (universal thread), Python, Java (jest przecież standard Java Mail) no i .NET.
  2. Problem dojścia do składnicy przesyłek można zaatakować w rózny sposób:
    1. od zera tj. poprzez rozpisanie interakcji z serwerem pocztowym (zgodnie ze standardem rfc ...) np. gmail,
    2. korzystanie z gotowych komponentów pocztowych oferowanych w danym środowisku systemu operacyjnego (np. technologia COM w Windows, komponent CDO, Outlook w MS Windows),
    3. wykorzystanie gotowych komponentów w danycm języku programowania (oferujących otoczkę - wrapper do dostępu do standardu pocztowego). Otoczka ta może być prosta w postaci obiektu realizującego Java Mail, czy bardzo uniwersalną (a zarazem skomplikowaną) jak to jest w .NET, która w łącza do siebie obsługę wielu innych około-pocztowych standardów.
Najbardziej uniwersalną jest metoda pierwsza czyli implementacja standardu, na drugim miejscu jest implementacja klienta pocztowego w wybranym języku programowania (ponieważ właśnie w nim oprogramowujemy nasz problem).

sobota, grudnia 16, 2006

Różne

Badanie AJAX-owych run-time - http://dev2dev.bea.com/pub/a/2006/11/exploring-ajax.html np. GWT Designer Instantiations Inc. recently released a product called GWT Designer, which provides page construction in Eclipse for the Google Web Toolkit
Porównanie framework-ów AJAX - http://www.infoq.com/news/2006/12/ajax-comparison-tools
Jak być na topie - http://pragmaticprogrammer.com/talks/HowToKeepYourJob/HTKYJ.html
Blog + Mylar (wtyczka dla Eclipse - uporządkowanie informacji, programista coraz cześciej szuka opcji w gąszczu menu jakiegoś srodowiska IDE zamiast skupić się na programowaniu) - http://blogs.zdnet.com/Burnette/
Związek GWT z Design-erem -http://www.instantiations.com/gwtdesigner/resources.html (GWT od Google jest bezpłatne), GWTD kosztuje około 250 dol. GWT ma swojego bloga - http://googlewebtoolkit.blogspot.com/ a tam jest odnośnik do kodów dostępnych w GG- http://code.google.com/
Zasoby http://blogs.zdnet.com/Burnette/?p=214
For more information see:
Slides from Eclipse member's meeting (pdf)
Google Web Toolkit home page
Eclipse Foundation members
Instantiations GWT Designer
GWT Powered community resources
Opis - http://code.google.com/webtoolkit/makinggwtbetter.html
Wykorzystać dot do robienia hierarchii - http://www.graphviz.org/Gallery.php
Krytyka SOAP - http://www.infoq.com/articles/pete-lacey-ws-criticism;jsessionid=B34DDD6B1CD13A894A3EED3C5AE003B0
Współpraca JAVA i .NET - http://www.infoq.com/articles/java-dotnet-integration-intro
Wstęp do AJAX - http://coldfusion.sys-con.com/read/311330.htm + narzędzie - http://taconite.sourceforge.net/

czwartek, grudnia 14, 2006

Framework Zend

Współpraca Zend z Google

The latest pre-release version of Zend Framework provides the foundation for building websites based on the Model-View-Controller (MVC) pattern. The implementation is designed to be lightweight, modular and flexible, consistent with the philosophy driving all design of this open source PHP framework.

The latest release of Zend Framework now also provides support for the Google Data API, which provides a simple standard protocol for PHP applications to read and write data to and from Google applications such as Google Base and Google Calendar. The Zend Google Data PHP Client Library was jointly developed by Zend and Google.

Wespół raźniej... najwyraźniej

On October 31st, Zend and Microsoft have announced a technical collaboration to significantly enhance the reliability and performance of PHP on the Windows platform. The technology preview is in response to joint customer demand for better support of the Windows Server platform.

The technology engagement between the two companies will include:
  • Technical improvements for PHP, which will be submitted under the PHP license to the PHP community for feedback and contribution.
  • Microsoft intends to develop and release an Internet Information Services (IIS) add-on component, FastCGI, that will serve as the interface between PHP and the IIS Web server.
  • Zend will establish a Windows testing lab and conduct regular tests and performance improvements to maintain high performance of PHP on the Windows Server platform as PHP evolves.
  • Microsoft and Zend will work to help ensure a production-quality PHP runtime environment for IIS 6.0 (Windows Server 2003) and IIS 7.0 (Windows Server "Longhorn").
  • Zend and Microsoft will actively participate in the PHP community, ensuring an open discussion to help developers planning to deploy PHP applications on the Windows Server platform.

Szukajcie a znajdziecie

Od jakiegoś czasu Google oferuje narzędzie do wyszukiwania dokumentów w sieci lokalnej. Potrzeba indeksowania zasobów elektronicznych (szczególnie różnych typów dokumentów) jest palącym problemem w każdej firmie. Szukanie zajmuje czas. W Google MINI jest to usługa dość droga - oprogramowanie do wyszukiwania 50 tys. dokumentów kosztuje 2000 $, zaś za indeksowanie 300 tyś. dokumentów trzeba zapłacić 9 aż tyś. dolarów.
Pomysł ten wykorzystali IBM i Yahoo udostępniając całkowicie za darmo oprogramowanie do indeksowania dokumentów. Można go wykorzystać do zbudowania prostej indeksowarki sieci korporacyjnej typu entry-level (wstępny poziom). Nosi nazwę IBM OmniFind Yahoo Edition i może indeksować 500 tyś. dokumentów o ponad 200 fromatach. Szukanie w sieci lokalnej jest zintegrowane z wyszukiwaniem w Internecie w oparciu o Yahoo. Dostęp do wyszukiwarki odbywa się poprzez przeglądarkę internetową.
Produkt jest uproszczoną wersją płatnej, korporacyjnej edycji OmniFind Enterprise Edition.
Pytanie filozoficzne: jakie są kryteria przejście z wersji uproszczonej na koproracyjną? Nowe opcje, szybkość, ilość dokumentów, integracja z innymi programami.
Oczywiście oba te rozwiązania udostępniają programistom API do obsługi wyszukiawnia w swoich aplikacjach.

środa, grudnia 13, 2006

Bo do tanga trzeba dwojga

Tango ale z kim?

Sun wprowadzi niebawem nową wersję Java SE 1.6 zwaną Mustang (skupiono się na części klienckiej i lepszej integracji z platformą uruchomieniową, Java 1.5 Tiger skupiała się na części serwerowej). Nowością jest lepsza integracja z językami skryptowymi. Zgodność ze standardem Java Specification Request 223, pozwalająym na uruchomienie m.in. JavaScript and Python, w środowisku Java Virtual Machine (co z PHP, brak tutaj na ten temat informacji). Wszystko po to aby podzielić zadania: skompliowane obliczenia i dostęp do baz wykonać w Javie, a PHP zostawić sprawę interfejsu. Dodatkowo postanowiono zaktualizować NetBeans 5.5. do wsparcia nowej wersji Javy (chociaż w NetBeans wcześniej mówiło się o wsparciu jezyków skryptowych - projekt Coyote [https://coyote.dev.java.net/])

Nie sposób tu nie wspomnieć o MS - Mimo, że MS stoi na uboczy jeżeli chodzi o technologie open-sourceto ostatnio zatrudniło Jim Hugunin, twórcę języka Jython, któy pracuje w projekcie IronPython (wsparcie dla tego języka w środowisku platformy Microsoft .Net Common Language Runtime).

Inny projekt języka to Groovy specjalnie napisany do uruchamiania w środowisku JVM (komitet techniczny składa się z przedstawicieli Sun, IBM i Apache)

Oto druga połówka do tanga.
W ramach nwego JSE 1.6 przewidziano lepszą integrację z platformą MS (IBM to już ma więc Sun też chce) w zakresie WS (usług sieciowych) [http://java.sun.com/developer/technicalArticles/glassfish/ProjectTango/] w ramach projektu Tango (działa w ramach większej inicjatywy GlassFish - otwartej inicjatywy Sun stworzenia implementacji własnej WS). W Sun jest specjalna grupa ludzi WS - http://java.sun.com/webservices/, współpracująca z grupą ludzi z MS - http://windowscommunication.net/ (WCF - Windows Communication Foundation a nie World Children Fund) w zakresie implementacji i testów zgodności standardów WS-*. Chodzi m.in. o import opisu serwisów WS ze środowiska MS WCF (WSDL) przy pomocy JAX-WS, optymalizację transferu, bezpieczeństwo, tranzakcyjność poprzez "wyklikanie" w interfejsie IDE (np. NetBeans) odpowiednich właściwości. Szybkie, łatwe i proste...

Aaa kotki dwa

A własciwie jeden SleepyCat - zwany Berkeley DB
Fenomen Berkeley DB
Po wykupieniu przez firmę Oracle tej bazy nic nie wskazuje na jej upadek, przeciwnie firma lansuje ten produkt jako natywą (i co najważniejsze "lekką", zabierającą mało zasobów) bazę danych wspierającą dokumenty XML . Nazwa ją Berkeley DB XML (dostęp do dokumentów odbywa się poprzez XQuery 1.0 i XPath 2.0 zgodnie z zaleceniami W3C, indeksowanie dokumentów). Zaletą jej jest stara, sprawdzona technologia Berkeley DB - ACID, szyfrowanie, automatyczne wycofanie z tranzakcji w przypadku błędu, bezosbługowość, duża niezawodność, replikacja, integracja z Apache, wsparcie dla wielu j. skryptowych i Java poprzez JDBC, działa na wielu platformach) [http://www.oracle.com/technology/products/berkeley-db/xml/index.html].
Zastosowanie - przechowywanie i udostępniania dokumentów z jednego miejsca dla aplikacji sieciowych i internetowych. Inne to szybka, mała baza lokalna do przechowywania dokumentów XML lub aplikacje z wbudowaną bazą. Uwaga inna implementacja bazy XML - eXist. Istnieje API do bazy dla języka PHP. Uwaga - baza może działać w roli serwera: XDBC, SOAP, REST, XML:DB

Myśli o bezpieczeństwie

Bezpieczeństwo. Tego powinni zabronić? Czego ano podawania w nagłówku FORMS (formularza HTML) adresu serwera spoza domeny z której strona przeszła np. strona została uruchomiona spod adresu COIG a wysyła dane pod inny adres np. CIROW.
Muszę to sprawdzić.
Ostatnia poprawka do bibliteki XML Core w MS miała uniemożliwić sięganie z poziomu XMLHTTPRequest (w wydaniu COM, nie natywnym dostarczanym z IE 7, gdzie to już jest wprowadzone) do witryn spoza domeny wejściowej.

Co to ma znaczyć?

Co to ma znaczyć ?

Od dawna podejrzewałem, że coś jest nie tak z wielowatkowością i obsługą wielu procesów naraz w aplikacjach open-source (vide Apache, którego kopia uruchamiana jest przez administratorów dla każdej witryny na jednym i tym samym fizycznym serwerze. Tłumaczą to lepszą izolacją między chodzącymi na różnych witrynach aplikacjami. Podobnie jest w ZOPE, gdzie podaje się jawnie ilość wątków jednocześnie mogących być uruchamianych). Nie wiem czy mam rację, ale to o czymś świadczy.

Z innej beczki, taka maszyna wirtualna Javy (JVM) JRockit w wydaniu BEA - ukazał się artykuł (http://news.zdnet.com/2100-3513_22-6142172.html?tag=nl.r3302) na ZDNet "BEA to run Java sans operating system" w któym opisuje sie nowy ich produkt WebLogic Server Virtual Edition (sam WebLogic Server służy do uruchamiania wielu aplikacji Java, wersja wirtualna jest opracowana dla uruchamiania jej w środowisku hyperwizora VMware (oprogramowanie wspierające wirtualizację firmy VMWare, hyperwizor służy do uruchomienia wielu kopii tego samego oprogramowania na jednej konfiguracji sprzętowej). W tym przypadku hyperwizor nazywa się Liquid VM i kontaktuje się bezpośrednio (pomijając warstwę OS) z hyperwizorem VMWare. Cel takiej wirtualizacji? Dostarczenie administratorom narzędzi do konsolidacji wielu aplikacji Java na pojedyńczym serwrze oraz zoptymalizowanie ich wydajności. Wirtualizacja dla korporacji słuzy do lepszego wykorzystania sprzętu poprzez rozłożenie obciążenia wielu aplikacji na pojedyńczej maszynie - wewnętrzne ograniczenia (nazwijmy to poprostu fuszerką, wadą architektury) aplikacji powodują, że nie potrafi zrównoleglić przetwarzania zapytań (procesó) przy zwiekszonym obciążeniu w rezultacie czego tworzy się do aplikacji kolejka nieobsłużonych żądań (których nie potrafi aplikacja jednocześnie zrealizować mimo, że moc obliczeniowa jest wystarczająca).
Firma planuje dodać do tej wirtualizacji obsługę innych architektur, chodzi o wsparcie wirtualizacji dla Xen i MS. Gotowość produktu - luty 2007.

wtorek, grudnia 12, 2006

Co jest wazne?

The growth of Macintosh desktop clients in enterprises will be more of a hindrance to Linux desktop growth than Windows, one analyst firm says in a recent report. Gartner says the increasing popularity of Apple’s desktop operating system in some enterprises could come at the expense of Linux desktops. Popular marketing and advertising campaigns for Macs has the machines on the minds of some corporate computer users, while Linux desktops are still somewhat obscure.Several factors still hold Apple back on enterprise desktops. It does not license its OS X operating system to other hardware vendors. The consumer-oriented focus of the interface and applications is a turnoff for IT administrators, as well as the lack of IT management tools. But Gartner says these machines will find their way into enterprises through the “back door,” in some cases where end-users seek to replace older proprietary workstations, such as Unix machines. The Gartner report faults a shortcoming in support for both Mac and Linux desktops as one reason these platforms continue to lag in enterprise deployments. While Apple, Red Hat and Novell offer seven years of support for their respective enterprise desktop operating systems, Windows draws more enterprise desktop loyalty, in part, because of its 10-year-minimum support practices for its desktop product. One trend that could level the desktop operating system playing field is the move towards Web-based applications, which only require standards-based HTML browsers and plug-ins, and can run on almost any desktop. However, Gartner says it does not expect even half of a typical organization’s apps to be OS-independent in the next five years. [Gartner: Macs crowd out Linux on corporate desktops but no threat to Windows By Phil Hochmuth]

Wniosek:

  1. trudno przezwyciężyć mit doskonałego wsparcie i pomocy technicznej dla platformy Windows, inne platformy dopiero tu raczkują. Ale jest jedno ale, w dobie aplikacji internetowych, wymagajacych do pracy wyłącznie standardową przeglądarkę internetową i odpowiednie wtyczki, mogą one dziłać na dowolnym sprzęcie. Ten trend zaczyna być coraz wyraźniejszy, ale Gartner nie oczekuje aby w ciągu najbliższych 5 lat połowa typowych aplikacji korporacyjnych była zrealizowana w tej konwencji.
  2. Kazda przeglądarka nie nie znaczy bez dobrych "wtyczek", ale kazda wtyczka wnosi koleją dziure do przegladarki. Kazdy kij ma dwa konce...

czwartek, grudnia 07, 2006

Trzy rozwiązania

Przemyślenia
  1. MS uruchamia podbnie jak Google przeglądarkę i wyszukiwarkę książek - twierdzi, że "w dobie powszechnego bełkotu i chaosu informacyjnego w Internecie, jedynie informacja zawarta w książkach jest choć nieco przestarzała ale lepiej ocenzurowana i na wyższym poziomie merytorycznym". Tak zgadzam się z tym w pełni.
  2. Sun potwierdził słuszność mojej tezy 80% Client / 20% Server, gdzie Client - oznacza jakiś framework wspierający technologię Ajax po stronie klienta w środowisku JavaScript (np. dojo) + CSS + DOM, a Server - oznacza platformę serwer aplikacji w tym przypadku J2EE. Podobny projekt ma Microsoft (AJAX dla .NET) i Google (GWTK) [http://www.adtmag.com/article.aspx?id=18912]. Składniki:
  • Client-side JavaScript toolkits, such as Dojo, which hides the low-level processing of XMLHttpRequest;
  • DWR (Direct Web Remoting), which enables RMI-like invocation from the JavaScript client code to backend Java class;
  • AJAX-enabled JSF components which allows the building of AJAX apps by dragging-and-dropping UI components;
  • Wrapper technology such as jMaki that permits use of AJAX widgets from different sources using common interface;
  • Java to JavaScript translator technology such as Google Web Toolkit (GWT) and
    Existing Web app frameworks with AJAX extensions such as Wicket, Echo2 or Shale. These include:
    - Client-side JavaScript toolkits, such as Dojo, which hides the low-level processing of XMLHttpRequest;
    - DWR (Direct Web Remoting), which enables RMI-like invocation from the JavaScript client code to backend Java class;
    - AJAX-enabled JSF components which allows the building of AJAX apps by dragging-and-dropping UI components;
    - Wrapper technology such as jMaki that permits use of AJAX widgets from different sources using common interface;
  • Java to JavaScript translator technology such as Google Web Toolkit (GWT); and Existing Web app frameworks with AJAX extensions such as Wicket, Echo2 or Shale.
  • Do tego co napisałem powyżej jest świetna strona http://www.javapassion.com/ajaxcodecamp/#Presentations
  1. IBM nazywa to RIA rich Internet Application - oznacza wyposażenie aplikacji klienckich (napisanych jako aplikacje desktop w Javie lub applet na stronie w przeglądarce) w możliwość pobierania danych z serwera.
  2. http://www.adtmag.com/article.aspx?id=18795 - Artykuł o kolejnym produkcie typu Grid - nazywa się ActiveGrid Studio 2.0. Wnosi technologię Web 2.0 i LAMP w środowisko serwerów Java (Apache Tomcat, BEA WebLogic, IBM Websphere, Sun Java System Application Server and JBOSS). Drugim produktem jest ActiveGrid Server 2.0 - serwer aplikacji umożliwiający na instalację aplikacji Web 2.0 na "zwykłych" serwerach (posiada mechanizm cache, LDAP, load balancing i dashboard-y). Wersja open source obu produktów udostępniana jest na zasadzie licencji Apache Software License 2.0.Cena wersji komercyjnych - od $8,000 do $12,000 rocznie.

Nowe kryteria serwera aplikacyjnego

Kryteria wyboru serwera aplikacyjnego:

  1. Administracja (lokalna/zdalna, interfejs GUI/tekstowy/przeglądarka, wsparcie dla SNMP do konfigurowania/monitoringu pracy, tworzenie kopii),
  2. Skalowalność/Rozwijalność-przyszłościowość (architektura 32/64 bity, zgodność z J2EE (w jakiej wersji?), certyfikat z JSEE (wersja?), IPv6, klastry/farmy, wsparcie dla wirtualizacji, tranzakcyjność, odporność na awarie sprzętowe/bazodanowe/aplikacyjne, łagodne wychodzenie z awarii),
  3. Programowalność (języki kompilowane/skrypty interpretowane),
  4. Bezpieczeństwo (SSO, LDAP, SSL, firewall, proxy, wsparcie dla AD),
  5. Wsparcie (SLA, QLA),
  6. Architektura (C/S, cienki klient, przeglądarka internetowa)

Co z tym ciałem (Flashem)?

Komentarz na temat udostępnienia przez Adobe (po przejęciu przez niego firmy Macromedia) technologii Flash organizacji Mozilla (inaczej mówiąc wlączeniu do języka JavaScript mozliwosci ActionScript - notabene czy mogą to zrobić legalnie mijając standard języka JS zdefiniowany przez ECMA?, oraz maszyny do uruchamiania aplikacji Flash do interpretera JS w przyszłych wersjach FireFox). Ruch ten na pewno mam na celu spopularyzowanie apliakacji wykonanych we Flash-u:

  • "Chizen said that Adobe intends to work more in open source, although he said that it does poses a challenge for the company. Adobe on Tuesday announced that it will provide the ActionScript Virtual Machine--software to run JavaScript andActionScript programs--to the Mozilla Foundation for inclusion in future versions of the FireFox browser. "You'll see us participate more (in open source). We're going to have to walk this fine line between open standards and open source," he said. "Where we want to make money, it's hard to be completely open source because we do need to continue to generate revenue," he said. O'Reilly noted that Microsoft is increasingly seeking to steal away customers from Adobe, notably Web designers and graphics designers."

Własnie mam Acrobat Reader 8. Umozliwia on m.in. tworzenie z poziomu Readera plików PDF (usluga sieciowa ws -LiveCycle). Łączy się w tle z serwerem Adobe w celu aktualizacji swego kodu i propozycji reklamowych)

środa, grudnia 06, 2006

Kryteria wyboru narzędzi

Kryteria wyboru :

  • Wsparcie i rozwój (nowe wersje, aktualizacje)
  • Ergonomia
  • Skalowalność (pionowa i pozioma)
  • Wydajność
  • Wieloplatformowość
  • Obciążenie systemu operacyjnego, narzut na pamięć i CPU (i inne zasoby)
  • Narzędzia do zarządania infrastrukturą IT (zasobami sprzętem, siecią, urządzeniami, konfiguracją, wydajnością, użytkownikami)
  • Integracja z platformą mobilnych urzadzeń
  • Wsparcie komunikacji między użytkownikami
  • Wsparcie pracy grupowej programistów
  • Wsparcie pracy grupowej użytkowników (portal)
  • Zarządzanie wersjami
  • Możliwość tworzenia komunikatów i kolejkowanie
  • Narzędzia do zrównoważenia obciążenia

  • Infrastruktura serwerów
  • Integracja z platformą (system, serwer internetowy, aplikacyjny, bazodanowy, zarządzanie transformacjami na ESB, portalowy, raportowanie i inne)
  • Integracja z innymi aplikacjami
  • Przechowywanie sesji
  • Połączenie z bazami (standard ODBC/JDBC lub własne)
  • Obsługa tranzakcji
  • Wsparcie dla nowych technologii (EAI, AJAX, XML)
  • Intergracja z EAI i aplikacjami spadkowymi (legacy)
  • Wsparcie dla bezpieczeństwa
  • Zarządzanie zmianami konfiguracji
  • Konsola do zarządzia aplikacjami
  • Disgnostyka
  • Obsługa dziennika zdarzeń
  • Monitorowanie i audyt

wtorek, grudnia 05, 2006

Swietny pomysł

Wyszukiwarka Google dla Twojej firmy
Nowosc! Korporacyjna wyszukiwarka Google dostepna od teraz w Polsce!
Czy nie byloby wspaniale, gdyby wyszukiwanie w obrebie firmy bylo równie proste jak na Google.pl? Dzieki produktom korporacyjnym Google bedziesz mógl zaoferowac swoim pracownikom proste, szybkie i bezpieczne wyszukiwanie w obrebie wszystkich danych firmowych, w tym intranetów, systemów do zarzadzania dokumentami i tresciami, serwerów plików, komputerów pracowników i aplikacji biznesowych, takich jak CRM i business intelligence. Równiez na swojej publicznej stronie WWW mozesz udostepnic klientom i partnerom biznesowym wyszukiwarke o jakosci, do której przyzwyczail ich Google

Co tam nowego w Java Card 2.2?

Nowe podejście do kart kryptograficznych (od strony Java CARD)

  1. http://www.enigma.com.pl/index.php?option=com_content&task=view&id=183&Itemid=155
  2. http://security.computerworld.pl/news/79172.html
  3. http://java.sun.com/products/javacard/dev_kit.html
  4. http://home.elka.pw.edu.pl/~pnazimek/index.php?lang=pl&page=36

Wyposażenie oprogramowania w kartach w VJM (wirtulaną maszynę Java) poprzez co uzyskuje się jednakową, niezleżną od platformy sprzętowej możliwość komunikacji między kartą a np. appletem na stronie internetowej (oczywiście aplet musi być podpisany). Ostatnie łącze stanowi skarbnicę wiedzy jak samemu oprogramować karty inteligentne w tym SIM w telefonach, karty kryptograficzne, bankowe, lojalnościowe itd. Wszystko dzięki standardowi Java CARD 2.2. staje się jasne i proste. Autor udostępnił dokumentację w pdf i masę przykładów w pliku zip. Prawdziwa perełka.

Inną perełką pełną przykladów jest strona www.jensign.com. Jej autor (MVP z MS) początkowo widząc popularność jaką się ciszy ta strona chciał ją na wiosnę tego roku sprzedać (przedtem zabezpieczył informacje na niej). Ale oczywiście nikt nie chciał tego kupić. Rad nie rad ponownie ją otworzył z jeszcze większą ilością informacji (być może znalazł tajemniczego sponsora, moż to jest MS?).

Nowosci o podpisie

Świetny artykuł z MSDN - "Building Browser Helper Objects with Visual Studio 2005 Tony Schreiner, John Sudds Microsoft Corporation October 27, 2006" w C++

Frima Sputnik zajmuje się upowszechnieniem podpisu wraz z Sigillum - http://www.nowoczesnagmina.pl/About.aspx - korzysta z appletu Java. Karta jest wykonana zgodnie ze standardem - Java Card™ 2.2. tel. kontaktowy - 801 886644

Matrix - firma polska ->Technologie: Java 2 Enterprise Edition, Applety, PKI, karty kryptograficzne - PKSC#11.

Komunikat ostrzeżenie na stronę portalu AS -

  1. *) Z dniem 11.07.2006 r. firma Microsoft Corporation wstrzymała ostatecznie aktualizację zabezpieczeń dla systemów operacyjnych Microsoft Windows 98, 98 SE oraz ME. W związku z powyższym, ze względu na zachowanie najwyższego stopnia bezpieczeństwa w trakcie składania podpisu elektronicznego, zalecamy Państwu instalowanie naszego oprogramowania wyłącznie na stacjach roboczych z systemem operacyjnym Microsoft Windows NT lub Microsoft Windows XP.

Certum (Unizeto) jest na liście CA/O forum. Co nowego w podpisie u nich:

  1. 2006-10-23 -Nowe usługi kwalifikowane Powszechnego Centrum Certyfikacji CERTUM

    W dniu 17.10.2006 r. Powszechne Centrum Certyfikacji CERTUM należące do Unizeto Technologies, jako pierwsze w Polsce uzyskało zaświadczenie Narodowego Centrum Certyfikacji (NCCert) umożliwiające rozszerzenie zakresu dotychczas świadczonych usług kwalifikowanych o kolejne trzy usługi:

    • weryfikację statusu certyfikatów w trybie online (OCSP) - Kwalifikowane OCSP

      Usługa polegająca na wystawianiu elektronicznego zaświadczenia potwierdzającego, że weryfikowany certyfikat jest certyfikatem kwalifikowanym i ważnym w momencie weryfikacji. Pozwala na sprawdzenie statusu certyfikatów kwalifikowanych wszystkich wystawców w Polsce.

      Usługa realizowana według „Polityki certyfikacji” spełniającej wymagania ustawy o podpisie elektronicznym, podlegająca audytom Ministra Gospodarki i na jego wniosek wpisana do rejestru usług kwalifikowanych związanych z podpisem elektronicznym.


    • walidację danych (DVCS),


    • poświadczanie odbioru i przedłożenia (DA).
  2. Status certyfikatu - OCSP (ang. Online Certificate Status Protocol) OCSP (Online Certificate Status Protocol) jest standardem opisującym protokół komunikacyjny pomiędzy systemem informatycznym odbiorcy usług certyfikacyjnych a serwerem usługowym. Protokół ten określa format i strukturę zapytania (żądania) o status certyfikatu oraz format i strukturę odpowiedzi („tokenu”), która zawiera wynik weryfikacji w postaci statusu: „poprawny”, „unieważniony”, „nieznany”.
  3. Wydanie zaświadczenia ze statusem „poprawny” oznacza, że certyfikat jest wystawiony przez jeden z podmiotów, których certyfikaty objęte są usługą OCSP oraz, że podmiot ten na moment udzielania odpowiedzi skutecznie nie unieważnił sprawdzanego certyfikatu.

    Korzystanie z zaufanej usługi OCSP jest praktyczniejszą i bardziej „bezpieczną” formą weryfikacji ważności certyfikatu niż przeszukiwanie list unieważnionych certyfikatów (CRL). -

    Kwalifikowana usługa OCSP pozwala szybko ustalić status certyfikatu kwalifikowanego wystawionego przez każde z polskich centrów certyfikacji świadczących kwalifikowane usługi certyfikacyjne. Wynik sprawdzenia statusu certyfikatu jest wydawany w postaci zaświadczenia (dokumentu) elektronicznego poświadczonego przez urząd OCSP. Zaświadczenie to stanowi dowód wykonania weryfikacji. Elektroniczne potwierdzenie statusu każdego certyfikatu może być przesłane za pomocą poczty e-mail autorowi zapytania.

    Alternatywą do korzystania z usługi OCSP jest „samodzielne” wykonanie weryfikacji ważności certyfikatu poprzez przeglądanie list unieważnionych certyfikatów (CRL). Przeprowadzenie poprawnie takiej weryfikacji obarczone jest sporym ryzykiem związanym z zagrożeniami występującymi w sieci Internet oraz z brakiem posiadania aktualnej wiedzy na temat wszystkich wystawców i typów certyfikatów uznanych za kwalifikowane. Natomiast w przypadku korzystania z usługi OCSP mamy do czynienia z jednym tzw. punktem zaufania; po otrzymaniu odpowiedzi z urzędu OCSP wystarczy sprawdzić autentyczność poświadczenia (podpisu) urzędu za pomocą danych powszechnie znanych, zawartych w zaświadczeniu certyfikacyjnym wydanym przez Narodowe Centrum Certyfikacji na wniosek Ministra Gospodarki. -z tego wynika, ze Certum świadczy centralnie o ważności wszystkich certyfikatów w Polsce.


  4. Zakończenie budowy i organizacji Centrum Danych 30 września 2006 r. zakończył się rozpoczęty 1 lipca 2004 r. projekt "Budowa i organizacja Centrum Danych realizującego misje krytyczne" dofinansowany w ramach Sektorowego Programu Operacyjnego Wzrost Konkurencyjności Przedsiębiorstw, poddziałanie 2.2.1.


  5. Struktura cennika Certum - wszystko jest płatne - cena biblioteki API dla dewelopera wynosi około 4000 zł (nett), nawet runtime dla użytkownika końcowego (skandal - to wcale nie pomoże w upowszechnieniu podpisu w Polsce!)
  6. Sigillum też przygotowało bibliotekę API - cena około 5000 zł

Ciekawostki, zagwozdki

Witam!

Łącza na dziś (5.12.2006)

  1. Portal www.developer.com - zawiera pod portale: jars, codeguru, earthweb, jguru, gamelan
  2. http://www.developer.com/net/asp/article.php/3644731 - ASP.NET Tip: Testing Web Sites with HttpWebRequest
  3. http://www.developer.com/net/net/article.php/3643406 - .NET Tip: Testing Network Services with the TcpClient Class
  4. http://www.developer.com/net/article.php/3483116 - annual awards 2005
  5. http://www.developer.com/tech/article.php/1557921 - to samo ale dla 2003 roku, zwyciężył Microsoft Visual Studio .NET oraz C#
  6. http://www.developer.com/lang/other/article.php/3637156 - Top 10 articles za zeszły miesiąc
  7. http://www.developer.com/net/asp/article.php/981571 - Programming WebForms
  8. http://www.developer.com/tech/article.php/607001 - Building client-side

Lekkie bazy

Expresso, komu? Zacięta rywalizacja na rynku baz danych typu Express. Mamy już do wyboru:

  1. MS SQL Server 2005 Express Edition,
  2. Oracle udostępnił Oracle 10g Express Edition (Oracle Database XE),
  3. IBM wystąpil z ofertą DB2 Express-C
  4. Do tego dołączyli się MySQL z MySQL Community Server (wersja open source, wersja komercyjna nosi nazwę MySQL Enterprise).

Co wybrać? Ostatnio do parametrów doszło kryterium "bezpieczeństwo" - okazało się niedawno, że SQL Server jest bezpieczniejszy od Oracle 10g. Bazowe parametry:
  1. wydajność,
  2. intergracja z systemem operacyjnym,
  3. skalowalność,
  4. wsparcie dla dodatkowych technologii (XML, raportowanie, CLR, Java),
  5. uzbrojenie (narzędzia do rozwoju aplikacji i zarządzania bazą)
  6. wsparcie dla różnych platform (Linux, Unix, Windows)

poniedziałek, grudnia 04, 2006

ActiveX

Jajko czy kura?

Ten odwieczny problem znalazł swoje postać w pytaniu związanym z .NET:

Co lepiej wstawiać? WinForm do WebForm czy WebForm do WinForm?

Na stronach http://www.codeproject.com/cs/miscctrl/htmlwincontrol.asp?df=100&forumid=17987&exp=0&select=1461081 opublikowano sposób właczenie WinForm do WebForm. Pozwala to na włączenie bardzo zaawansowanych kontrolek w stylu ActiveX osadzonych w WinForm do stron internetowych (WebForm). Cenę za co musimy zapłacić jest oczywiście bezpieczeństwo aplikacji internetowej. "OK, let’s return to web application security 101. Web applications must NEVER trust the client (web browser). This is gospel whether the web page interfaces use JavaScript, Flash, ActiveX, Applets, AJAX or any other protocol or language. Every developer should be aware that basic HTTP proxies may alter anything about the HTTP request, even those generated by XHR. Great care should be taken to ensure that all security checks are performed on the server--no exceptions." - cytat ze świetnej pracy na temat rzekomego niebezpieczeństwa stosowania technologii AJAX, który znajduje się na stronach http://www.whitehatsec.com/home/resources/articles/files/myth_busting_ajax_insecurity.html. Nigdy nie ufaj klientowi - to stara zasada i odnosi nie nie tylko do klasycznego rozwiązania (przeglądarki internetowej), ale również i do innych form np. widgetów z Opery czy Yahoo.

Przechodzimy do tematu starego jak świat "uruchamianie ActiveX w środowisku nie IE". Na szczęście mamy parę sprawdzonych rozwiązań dostepnych dla technologii Mozilla. Na stronie http://www.iol.ie/~locka/mozilla/plugin.htm jest wtyczka (plug-in) do wersji FireFox 1.5. Do tego jest świetny artykuł na codeguru o tym jak "Kod zarządzany na stronach WWW (kontrolki .NETw IE)" - http://www.codeguru.pl/article-643.aspx a na codeproject jest inny "Simple way to expose a .NET WinForm control as an ActiveX control in any HTML page" - http://www.codeproject.com/cs/miscctrl/htmlwincontrol.asp?df=100&forumid=17987&exp=0&select=1311281#xx1311281xx (efekt wyszukania w gg 'embedding Winform in WebForm') do tego świetna recenzja ""I suppose that many people find this link like I did and think ActiveX is the only way to expose WinForms to the browser. This is not the case nor is it the best or reccomended method. Please review the following link: http://samples.gotdotnet.com/quickstart/winforms/doc/WinFormsIeSourcing.aspx This is a much simple and straight forward way of embedding .Net WinForms inside of Internet Explorer. I want to add that this is not meant as a diss on the author of this article. He has a good solution to try to expose .Net control as an ActiveX object. I just believe that is not what people are really looking for when they find this. They just require a good way of embedding WinForm inside Internet Explorer"

Jajko czy kura?

Jajko czy kura?
Ten odwieczny problem znalazł swoje postać w pytaniu związanym z .NET: Co lepiej wstawiać? WinForm do WebForm czy WebForm do WinForm?
Na stronach http://www.codeproject.com/cs/miscctrl/htmlwincontrol.asp?df=100&forumid=17987&exp=0&select=1461081 opublikowano sposób właczenie WinForm do WebForm. Pozwala to na włączenie bardzo zaawansowanych kontrolek w stylu ActiveX osadzonych w WinForm do stron internetowych (WebForm). Cenę za co musimy zapłacić jest oczywiście bezpieczeństwo aplikacji internetowej.

AJAX - brzytwa w rekach malpy?

"OK, let’s return to web application security 101. Web applications must NEVER trust the client (web browser). This is gospel whether the web page interfaces use JavaScript, Flash, ActiveX, Applets, AJAX or any other protocol or language. Every developer should be aware that basic HTTP proxies may alter anything about the HTTP request, even those generated by XHR. Great care should be taken to ensure that all security checks are performed on the server--no exceptions." - cytat ze świetnej pracy na temat rzekomego niebezpieczeństwa stosowania technologii AJAX, który znajduje się na ższych stronach . Nigdy nie ufaj klientowi - to stara zasada i odnosi nie nie tylko do klasycznego rozwiązania (przeglądarki internetowej), ale również i do innych form np. widgetów z Opery czy Yahoo.

Każda przeglądarka ma wbudowany mechanizm wspierający XMLHTTPRequest (XHR). Istotą aplikacji typu Web 2.0 jest pobieranie danych z różnych trzecich serwerów w ten sposób doprowadzając do słynnego "mesh-up" czyli misz-masz. Stwarza to określone zagrożenie dla odbiorcy aplikacji. Na szczęście XHR technologia nie zezwala bezpośrednio na tego rodzaju sztuczki. "XHR has security protections built-in, preventing a user’s browser on Website A from making connections to Website B." Ale są różne obejścia tego ograniczenia. Rozwiązanie polega na stworzenie serwera pośrednika w domenie internetowej tzw. proxy (najczęściej na serwerze internetowym witryny). Odwołanie do witryny B ma przez serwer proxy taka postać http://websiteA/proxy?url=http://websitesB/ - w ten sposób proxy przekazuje żądanie z witryny A do witryny B. Wten sposób można ominąć ograniczenia XHR i apliakcja nie przesyła cookies. Ale w ten sposób witryna A gości odwołania do witryny B. Bezpieczeństwo polega na monitorowaniu do jakich to URL chcą się odwołać strony witryny B. A więc na kontroli i samocenzurze. Odnośnie Cross-Site-Scripting (XSS) to rzeczywiście AJAX na to zezwala, ale stosując wyłącznie JavaScript możemy "osiagnąć" taki sam efekt bez uciekania się do nadmiernej komplikacji w AJAX. Autor (Jeremiah Grossman) zademonstrował to w słynnej prezentacji “Hacking Intranet Websites from the Outside” at BlackHat 2006. Z kolei inna prezentacja pt. “Cross-Site Scripting Worms and Viruses" pokazuje jak możne to osiagnąć poprzez JS.

Zasady bezpiecznej aplikacji internetowej to KROK 1 polegający na:
  1. uwzględnienie aspektów bezpieczeństwa juz na etapie projektowania aplikacji
  2. dogłębne sprawdzania danych podanych przez użytkownika
  3. stosowanie tylko sprawdzonych bibliotek komponentów (dostępnych w branży), obojętne na jakiej licencji (closed lub open source), nie wymyslać na nowo koła (i powtarzać błędy innych) szczególnie przy kryptografii i zarządzaniu sesją.
  4. bezpieczna koniguracja (separacja usług, zasada najmniejszych przywilejów, wyłączenie usług zbędnych oraz komunikatów o błędach)
  5. Stałe poszukiwanie i naprawianie ewentualnych usterek. Stały pomiar i ocena podatności na atak (vulnerability assessment)

KROK 2 polega na nieustajacym monitorowaniu i walidacji rozwiązań.

środa, listopada 29, 2006

Różności

  1. Nowości do ściągnięcia z betanews:
    Opera, SIW, MS XML NotePad , Maxthon, LivePool - gra
  2. Książki:
    - Co z tym Flashem ? Ukazała się książka na ten temat "adds a deep look at the centerpiece of Flash Player's new API: display programming. Enjoy hundreds of brand new pages covering exciting new language features, such as the DOM-based event architecture, E4X (jest to ECMA standard dostępu do XML w JavaScript - wspiera go tylko Mozilla od 1.5; IE 7 nie widzi go (jeszcze), and namespaces--all brimming with real-world sample code. " - Essential ActionScript 3.0: Rough Cuts Version by Colin Mook.
    - JavaScript: The Definitive Guide, Fifth Edition By David Flanagan
  3. Cenna rada:
    Jeśli korzystasz z Internet Explorera, możesz go przystosować do swoich potrzeb. Na przykład - zmienić napis "Internet Explorer" na inny, bardziej ci pasujący. Aby zamienić napis Microsoft Internet Explorer na pasku tytułowym przeglądarki Microsoftu, należy uruchomić Edytor Rejestru (Start Uruchom... regedit.exe) i wejść do klucza HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main.Odszukaj teraz klucz o nazwie Window Title albo utwórz go od nowa - kliknij prawym klawiszem w prawym okienku Edytora rejestru, wybierz Nowy Wartość ciągu "Window Title" (bez cudzysłowów).Wpisz tam dowolną wartość, np. PC World Komputer.
  4. Pomysły: a) dostać się do Google API, które odpowiadają za dostęp do kalendarza (wstawiać tam spotkania), edytora (konwertować) i arkusza (pobierać dane w celu zrobienia grafiki w zewnętrznym oknie). b) Tabulatory (Yahoo extension lub mój z domu), okna tworzone w kodzie (strona z DHTML sprzed 2-3 dni), persistence (w IE).
  5. Przykłady online do AJAX - http://www.parkerriver.com/ajaxhacks/ (mam też na dysku)
  6. Ciekawe łącza:
    http://developer.mozilla.org/en/docs/DOM:window.open - tworzenie okien modalnych i zmodyfikowanie standardowego zachowania obiektu window. Wszystko zależy od ustawień . Ciekawe ustawienia:
    dependent - If set to yes, the new window is said to be dependent of its parent window. A dependent window closes when its parent window closes. A dependent window is minimized on the Windows task bar only when its parent window is minimized. On Windows platforms, a dependent window does not show on the task bar. A dependent window also stays in front of the parent window. Dependent windows are not implemented on MacOS X, this option will be ignored. In MSIE 6, the nearest equivalent to this feature is the showModelessDialog() method.
    modal - Note: Starting with Mozilla 1.2.1, this feature requires the UniversalBrowserWrite privilege (bug 180048). Without this privilege, it is equivalent to dependent. If set to yes, the new window is said to be modal. The user cannot return to the main window until the modal window is closed. A typical modal window is created by the alert() function. The exact behavior of modal windows depends on the platform and on the Mozilla release version. The MSIE 6 equivalent to this feature is the showModalDialog() method.
    W IE - show....... - działa tak, że może zwracać parametry oraz zamyka się automatycznie kiedy rodzic jest zamknięty (to ostatnie jest w Mozulli też).
    http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.3/guide/ - kopia devedge - szukaj tam informacji o security w JS.
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/servicefactory.asp - doskonały przepis na uporządkowanie WS wg. jakiegoś wzorca.
    http://ajaxian.com/by/topic/javascript/ - wszystko o AJAX
    http://news.com.com/The+A+to+Z+of+security/2009-7355-6138407.html?part=dht&tag=nl.e433 - wszystko o bezpieczeństwie, rozszerzeniach LiveConnect.
    http://www.thinkvitamin.com/features/design/wake-up-and-smell-the-ie7 - wyczuwanie z jaką przeglądarką mamy do czynienia.
    http://portableapps.com/apps - duży wybór aplikacji na FM.
    http://www.networkworld.com/reviews/2006/112706-explorer-firefox-test.html?page=2 - FF vs IE porównanie
    http://news.com.com/Windows+Wi-Fi+vulnerability+discovered/2100-1029_3-6027399.html - Bład w WiFi dla XP - Opis sytuacji "When a PC running Windows XP or Windows 2000 boots up, it will automatically try to connect to a wireless network. If the computer can't set up a wireless connection, it will establish an ad hoc connection to a local address. This is assigned with an IP address and Windows associates this address with the SSID of the last wireless network it connected to. The machine will then broadcast this SSID, looking to connect with other computers in the immediate area. The danger arises if an attacker listens for computers that are broadcasting in this way, and creates a network connection of their own with that same SSID. This would allow the two machines to associate together, potentially giving the attacker access to files on the victim's PC. " Rozwiązanie: "Users with Wi-Fi can disable the peer-to-peer facility by going to "Wireless Network Properties Advanced Network Access Point Choose Infrastructure Networks Only," said Wood. "We recommend people only connect to infrastructure points, although some users may want to use peer-to-peer for head-to-head gaming and file sharing." MessageLabs pointed out that system administrators can also mitigate the problem by blocking ports 135, 137, 138 and 139--which in Sunner's words "should be nailed shut already"--from accepting NetBIOS connections.
  7. Do podglądnięcia:
    Are vendors claiming code to be open source that isn't? Are SugarCRM, Socialtext, Zimbra, Scalix and others abusing the term "open source?" The next time you see the phrase "open source" used in association with some software, be advised that you'll need to take that claim with a grain of salt. READ FULL STORY
    Make Windows XP look like Vista...sort of Adrian Kingsley-Hughes: The Vista Transformation Pack 5.5 is a free download that makes Windows XP look like Vista. There are a few caveats though. READ FULL STORY
    Fixing Microsoft's Windows-development problems Many folks have ideas about how Microsoft can fix the myriad management and technical setbacks that resulted in Vista looking little like the product based on initial "Longhorn" expectations. And they're offering freely their two cents about what ails Windows and how to remedy the problems. Mary Jo Foley also offers her own predictions. READ FULL STORY
    Windows morphing into a Web service?
    Tasty Microsoft leftovers from Thanksgiving weekend READ FULL STORY
    http://docs.google.com/Doc?id=dg6q35cq_37dwfwdq - wzorzec Adaptera pomoga połączyć dwa różne obiekty w klasach
    http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-grid.html - Jak stworzyć WS w Java/Tomcat/AXIS

poniedziałek, listopada 27, 2006

Nowy SharePoint

To czego brakuje produktom bazującym na Star Office to brak wsparcie serverowego tj. nie mają servera dokumentów w rodzaju MS SharePoint. Od niedawna sytuacja ta się może zmienić za sprawą produktu O3Spaces (Holandia) pokazanego już w czasie tegorocznych targów Cbit. Jest to narzędzie do współdzielenia dokumentów. O3Spaces wykorzystuje J2EE ("on top of Apache Tomcat and the PostgreSQL database management system, and is designed to work with any LDAP directory service"). Działa pod Windows i Solaris. Użytkownicy mają dostęp do repozytorium w O3Spaces poprzez OpenOffice (specjalny interfejs webowy bazujący na AJAX lub asystenta tzw. Desktop Assistant - na bazie Javy. Wyszukiwanie dokumentów odbywa się dla formatów pdf, OpenOffice's native ODF and Microsoft Office.

poniedziałek, listopada 20, 2006

Ciekawe linki do Java

Zasoby o Javie -

  1. http://jdn.pl/node/197
  2. http://www.ploug.org.pl/materialy.php?action=k04
  3. http://java.sun.com/products/javacomm/ - Java obsługa portu COM
  4. http://www.codeproject.com/vb/net/Comport_made_simple.asp - VB obsługa portów COM

Zasoby na temat serwera SQL 2005 Express

Pożyteczne łącza na temat SQL Server 2005 Express

Resources

Community

Replikacja

Wazne - rozwiązanie problemy pobierania danych z odległych baz u klienta. Postawić u nich lokalny serwer HTTP (apache np.) i poprzez niego uruchamiać procedury kontaktujące się z lokalną bazą danych i wysyłajace do odbiorcy strumień odpowiednio sformułowanych danych. Takie rozwiązanie wydaje się lepsze od róznych odmian rsh (rexec, winrsh itd)

piątek, listopada 17, 2006

Wieczor 17 11 2006

Ciekawe linki 17.11.06

Wieczór :
Jserv - znanego twórcy JSP - http://www.magiccookie.com/computers/apache-jserv/ lub JRun
zamów konferencję podpis + warsztay z MS
LeftHand

MVC>=PEM

Przygotowując się do warsztatów z MS VFP 9.0 ( ostatniego produktu RAD firmy Microsoft wspierającego aplikacje dla środowiska Win32 API) doszedłem do wniosku, że cała wrzawa wokół wzorca MVC jest przereklamowana - VFP od wersji 3.0 ma taki model wbudowany, nazywa się PEM (Properies Events Methods) i był (niestety) wspierany przez inne aplikacje COM+ (MS Access, VB). Oczywiście ten model nadal istnieje na platformie .NET.
Nic nie stoi na przeszkodzie aby z niego korzystać, choć modne trendy mówią o konieczności korzystania z innych wzorców np. ze wspomnianego MVC.
Nawiasem mówiąc w VFP też można te inne wzorce implementować, ale robi się to sztucznie (wymaga wielu zabiegów), najbardziej naturalnym jest dla VFP stary ale skuteczny model PEM.
I tu się przejawia znana zasada dualizmu: aby dojrzeć sedno jakieś rzeczy należy na nią spojrzeć z innej perspektywy, a wtedy dojrzy się wiele ciekawych i nowych elementów.

czwartek, listopada 16, 2006

Nowe linki z JAVA

Ciekawe linki 17.11.06
http://www.zamzar.com/ - przekształcanie formatów plików działające on-line
http://www.alistapart.com/articles/supereasyblendys - Alist apart
http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/ - O formularzach, CSS i generatorach HTML
http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/
http://www.acsu.buffalo.edu/~djtaylor/genius.htm - jak zostać geniuszem
http://pixer.us/ - edycja zdjęć on-line
http://www.pdfpad.com/sudoku/ - wydrukuj sobie za darmo np. sudoku, papier kratkowany, papier nutowy itd.
http://english.aljazeera.net/News - no comments
http://www.codeproject.com/jscript/javatojs.asp - Java to JS communication
http://www.codeproject.com/java/remoteshell.asp - Executing on Remote
http://www.codeproject.com/java/javacom.asp - wstaw IE do programu w Javie
http://open.itworld.com/5040/nlsnunixchecksum061116/page_1.html - porównanie plików w Unix przy pmocy MD5
http://www.codeproject.com/dotnet/NET_WS_with_AXIS.asp - Consuming .NET WS with Apache AXIS
http://www.codeproject.com/csharp/porting_java_public_key.asp - Porting Java Public Key Hash to C# .NET
http://www.codeproject.com/jscript/JscriptRSA.asp - Encryption - RSA implemented through Java Script to Encryt/Decrypt data
http://www.codeproject.com/java/jnibasics1.asp - naprawdę podstawy, JNI Basics

Wszyscy to wiedzą ale nikt o tym nie mówi

  1. Firma TrendMicro - udostępnia również jak i inne firmy skanner online. Jego instalacja odbywa się poprzez technologię ActiveX (zresztą tak działają wszystkie przeglądarkowe skanery) i jakoś to działa. Dziwne, że nikt nie zrobił skanera dla Mozilli. Może jeszcze za mały rynek dla tych rozwiązań.
  2. Użyteczne programy: ba.exe - bios agent do poznania wszystkich wersi BIOS (ważne gdy chcemy go zaktualizować), PC-Clean do czyszczenie systemu, PC Wizard + CPU Z.
  3. Siatki do wyświetlania danych - danych w większości przypadków jest dużo, nie mieszczą się na ekranie (formularzu, stronie webowej). Zachodzi potrzeba ich porcjowania. Problemów jest wiele: porcjowanie ma być elastyczne (podawać można jako parametr liczbę wierszy do jednorazowego wyświetlenia), wydajne (nie pobieramy od razu wszystkich danych do pamięci operacyjne lecz jedynie tzw. porcje), efektywne (zwalniamy pulę połączeń z bazą). Aby porcjowanie miało sens musi mieć wsparcie w motorze bazy danych, np. instrukcja SQL SELECT musi wspierać możliwość ograniczenia pobrania danych (FIRST 10, LIMIT 10). Musi być także jakiś mechanizm zaznaczania aktualnej pozycji w tabeli (MS nazywa to bookmark). Do problemu wykorzystania mechanizmów motora bazy można podejść dwojako Należy przeszukać możliwości w zakresie zaznaczania porcji danych w mechanizmach metod dostępu poprzez ODBC (sprawdzone - te mechnizmy działają, patrz przykład w tabelce poniżej)/ JDBC (lub ich odpowiedniki w innych językach np. ADODB w PHP) lub też podejść na niski poziom i wykorzystać specyfikę polecenia SQL SELECT dla danej bazy (korzystać z ROWID, FIRST, procedur wbudowanych) oraz specyfiki aplikacji (specjalne wykorzystanie kluczy głównych). Tak czy inaczej jest to trudny problem dla developera i raczej lepiej zdać się na jakieś gotowe narzędzia, za które czasami trzeba trochę zapłacić. A warto, gdyż możemy od razu skupić się na merytoryce zagadnienia szczególnie gdy klient chce od siatki sortowania, przesuwania (w lewo/prawo) i sortowania kolumn. Czasami mamy szczęście i w danym języku czy środowisku programowania mamy wbudowane takie narzędzia (.NET ma DataGrid, PHP ma tzw. pager'a - notabene kiepsko u niego z wydajnością, JDeveloper/Netbeans oferuje siatki danych całkiem dobrej jakości).
  4. Alternatywne podejścia: Inna sprawa to filozoficzna, czy możemy użytkownikowi ukryć dane przez pokazanie mu tylko ich części. Czasami nieświadomy użytkownik szuka jakiś danych na ekranie i stweirdza, że ich tam nie ma (a tym czasem są one na następnych stronach). Przy takim potraktowniu problemu można zrobić tak: użytkownik niech sam określi zapytanie i wybierze jakie dane chce oglądać (nalezy mu udostępnić filtr selekcji bazujący na jego wiedzy o tym co chce zobaczyć + Limit ilości wybranych wierszy w zapytaniu). Nie czarujmy się zbyt dużo danych i tak nie przeanalizuje.
    Dane mają być porcjowane nie na serwerze ale u klienta. W tym przypadku klient pobiera dane z serwera i wkłada do pojemnika lokalnego zwalniając zasoby połączeniowe z bazą (oddając do puli połączenie). Dzięki temu wszystkie operacja odbywają się lokalnie (na sprzęcie skądinąd coraz bardziej wyrafinowanym). Tak myśli MS - tzw. offline dataset. Nawiasem mówiąc VFP w wersji miał pojęcie tzw. offline table. Dane są przetwarzane lokalnie. Najważniejsze jest to co będzie potem - synchronizacja z danymi na serwerze. Wybrano metodę optymistyczna tj. wolno wszystko edytować i zmieniać a dane są zapisywane do bazy centralnej zakładając, że nie ma konfliktów. Ważną sprawą jest wybór pojemnika klient, może to być nawet przeglądarka internetowa lub coś bardziej skomplikowanego.
  5. Zasoby serwerowe:
    http://www.codeproject.com/useritems/DBGrid.asp - DataGrid for JSP
    http://jakarta.apache.org/taglibs/sandbox/doc/datagrid-doc/index.html#dataGrid - Jakarta: Data Grid tag library
    http://www.nitobi.com/products/grid/demos/ - Nitobi Grid
    http://www.scripts.com/java-scripts/database-tools/ - Lista projektów, zazwyczaj są one płatne
    http://forum.java.sun.com/thread.jspa?threadID=781290&messageID=4443858 - Forum na temt stronicowania
    http://www.netbeans.org/products/visualweb/ - Visual Web w NetBeans (pakiet NetBeans Visual Web Pack) wymaga samego NetBeans'a
    http://www.dotnetindex.com/articles/18_Paging_Records_in_JSP.asp - Stronicowanie ale dla MySQL
    http://www.aspgrid.com/ - naprawde dobra chociaz wykonana w technologii ASP. (jest jeszcze dbgrid)
  6. eb grid - enterprise business application - kontrola ebgrid

wtorek, listopada 14, 2006

Nowosci dnia

  • Powstaje nowy standard sieci wireless 802.11 i nazywa się pre-N (IEEE 802.11n working group (task group N)), połączenie tych nowych sieci tzw. pre-N Networks (stosuje ona of multiple-input, multiple-output (MIMO) charakteryzuje się dużą przepustowością oraz, co może być niebezpieczne - dużym zasięgiem) ze starymi może stanowić zagrożenie dla bezpieczństwa oraz może powodować zakłócenia pracy starych sieic. Opisuje to artykuł - "Security issues with pre-802.11n wireless gear" w ComputerWorld.
  • Google podobnie jak to wcześniej zrobiła konkurencja, wprowadził do swoich blogów i dokumentów współdzielonych online tzw. tagi to jest znaczniki (markery) ułatwiające przeszukiwanie dużych ilości informacji zgromadzonych w blogach. Takie słowa kluczowe nie tylko ułatwiają wyszukiwanie wybiórcze (nie wg. formy ale intencji/zawartości merytorycznej), ale również pozwalają firmie wybrać odpowiednio skierowaną reklamę (pod kątem treści i zainteresowań odbiorcy). Nowością wprowadzoną wczoraj w czasie przerwy konserwacyjnej w seriwsie Google jest automatyczne zapamiętywanie treści wprowadzonych informacji.
  • Wszytkie liczące się firmy Internetowe jak Amazon, Yahoo (YGIU), Google (google API) i MS (Atlas) dostarczają narzędzia dla deweloperów chcąc poprzez to przywiązać ich do swoich serwisów i usług.
  • Sun udostępni swój kod Java na zasadzie licencji GPL wersja 2 (obecnie prowadzone są prace nad licencją w wersji 3) - http://news.com.com/2100-7344_3-6134584.html - wersja Mobile i Standard będą dostępne na stronie Java.net (tj. Java Platform Micro Edition (Java ME) dla komórke i Java Platform Standard Edition (Java SE) dla aplikacji desktopowych). Wcześniej Sun udostępnił na zasadzie CDDL - wersję J2EES (projekt GlassFish ). trategia Sun jest odpowiedzią na konkurencyjne projekty w obrębie APACHE (projekt Harmony który wystartował w maju 2005).

SAMBA - sikoreczka

Czego boi się SAMBA - ruch Novella w kierunku MS stanowi zagrożenie dla twórców rozwiązań open-source gdyż Novell wyłamuje się z szyku wspierajacego ten ruch (oraz copyright jako formę ochrony praw autorskich) i staje po stronie zwolenników patentów. Novell może się spotkać z nieprzyjemnościami w społeczeństwie open-source w którym do tej pory działał aktywnie. SAMBA boi się konsekwencji wykorzystanie w swoim produkcie opatentowanych przez MS formatów. Produkty SAMBA firmowane przez Novell są w świetle porozumienia z MS wolne od tego zagrożenia.Cóż przyszła kryska na matyska.

Zabójca Flasha

Niebawem MS udostępni w ramach programu Community Technology nowy produkt Preview of WPF/E (bazuje na Windows Presentation Framework - jednego z trzech filarów .NET 3.0) o możliwościach zbliżonych do Flasha (wzmianka o nim była na PDC 2006 i MIX'06). Pozwala na programowanie w JavaScript oraz XAML, do tego wymaga minimalnego wsparcia między platformowego run-time CLR oraz .NET z C# lub VB. Ma być dostępny również w telefonach komórkowych i aplikacjach desktop (wogóle wszędzie gdzie MS oferuje swoje produkty). Nie jest to naśladowanie Flasha. Dostepność - niebawem.

niedziela, listopada 12, 2006

Ken o historii VFP

Enduring adventures to Antarctica and Microsoft
I was inspired to blog this entry based on a comment posted by Danny Thorpe on my recent blog post I made about Shackleton's adventure story in Antarctica, where he commented:
If you have a yen for travel, it's possible to retrace Shackleton's steps yourself. Lindblad Expeditions runs an extended photography tour about once a year (see: http://tinyurl.com/9xadr) on the polar explorer ship "Endeavor" that usually includes stops at South Georgia Island and at Point Wild on Elephant Island. In the few days at sea without landings, the Lindblad staff dig into the Shackleton story in amazing detail. There's nothing quite like actually being there. http://tinyurl.com/loggf.I've heard about this photography adventure trip to Antarctica. In fact, Susan Graham who I use to work with here at Microsoft (who worked at Fox Software and then Microsoft retired in the late 90s) actually went on that same trip to Antarctica in January 2004. She is a close friend to this day, and after her trip to Antarctica she showed me some photos when she returned. The photos were pretty amazing and she said the trip was far more spectacular than she had anticipated. She went on the trip with a friend, and the boat had about 200 people on board. The story goes that she was on deck during the boat ride out of Argentina heading for Antarctica when she heard a voice say "Susan, is that you?". The person who recognized her was actually the former president of the company she use to work for years ago at Fox Software, Dr. Dave Fulton, who went on to become the head of database strategy at Microsoft in the early 90s after Microsoft bought Fox Software. What are the odds of meeting someone you know on a boat to Antarctica?? I guess we could say: Big continent, small world. Just before that trip, Susan had finished a project as executive producer of a documentary called 200 Cadillacs which details the generosity of Elvis Presley, including details of how he cars as gifts to people. I guess word got around on the boat about this documentary and they ended up playing the Elvis documentary one night for the travelers and crew on the boat. When we launched Visual FoxPro (VFP) version 9.0 at DevCon in late 2004, in the keynote session I showed a photo of Susan and Dr. Dave from that trip as well as a recent video interview Susan did with Dr. Dave talking about the past and present FoxPro days.For a good quick summary of Dr. Dave Fulton's role in the evolution of desktop databases on PCs, below is an abstract from a session given by Jeb Long at a Visual FoxPro conference in 2004:
dBASE and FoxPro from Jeb Long perspectiveWhere did VFP (Visual FoxPro) come from? Well, in this session, you will learn. It all began in 1973 at the Jet Propulsion Laboratory in Pasadena, California, USA, when a database management system was born called JPLDIS. In 1979, Wayne Ratliff working as a contractor at JPL, wrote a program to help him with football pools, called Vulcan. Vulcan was based on JPLDIS. Vulcan ran on an 8-bit 8080 microcomputer running under CP/M. George Tate started Ashton-Tate to market Vulcan (renamed dBASE II) for Wayne. Then Jeb Long (who created JPLDIS) converted dBASE II to run on the IBM PC under MSDOS and dBASE II became famous. Jeb and Wayne left JPL to join Ashton-Tate and developed dBASE III. Meanwhile Dr. David Fulton and some of his computer science students thought dBASE III was a terrific program so they cloned it resulting in FoxBase+. Ashton-Tate developed dBASE IV and sued Fox Software. Fox cloned dBASE IV and produced FoxPro 2.5. Ashton-Tate was bought by Borland. Borland dropped the lawsuit. Fox Software merged with Microsoft and the rest is history.
In the early 90s, I had successfully used FoxPro 2.0 DOS version as a touch screen front end in a public safety dispatch product used by various agencies including the California Highway Patrol communications center. It was rare to use FoxPro in a mission critical real-time application rather than a traditional accounting or inventory application back then. I had shown the FoxPro based application to Hal Pawluk who at the time was a key marketing guy at Fox Software. After FoxPro was bought by Microsoft in '92, word got around to a few people the details of the way I was using FoxPro in a mission-critical product. In 1992, one of the FoxPro product managers was Tod Neilsen, who invited me to a database summit meeting at Microsoft along with about 50 well known FoxPro industry experts and influencers. We got to meet the newly merged FoxPro team, Bill Gates, Steve Ballmer, Mike Maples, Dr. Dave Fulton, and others. At an evening dinner at Bill Gates' old house, I happen to get in line for dessert just before Bill did and I ended up talking to him about the FoxPro application that I wrote for use by public safety dispatch systems. He was curious about it and asked to see a demo. The following month I ended up meeting Bill again and I spent about 15 minutes showing him a demo of demo of the FoxPro based application I had designed and developed. Dr. Dave Fulton was one of the people in the hotel suite for that meeting.At the dinner at Bill's house, I sat at the table with about 5 other people including Adam Green and Tom Rettig. It was the first time I had met Adam Green, who was then probably the most well known industry guru in the dBase community. Tom became a close friend of mine soon after that event, and I use to hang out at his place in Marina Del Rey fairly often and I would go to his various annual parties. Sometime in 1995, I was over at Tom's apartment one evening. He and I had just come back from dinner at Benihana's down the street, walking distance from his place. When suddenly there was a knock at his door, it was his next door neighbor who had locked himself out of his own place and needed to hop over to his balcony to get in. His next door neighbor was Roger Clinton, former president Bill Clinton's half brother. Roger was a fun guy who was a musician, he would come to Tom's parties, and you wouldn't have guessed that his brother had just become president. I recall being the first geek on the block to have a handheld laser pointer, and when I let Roger try it out he ended up spending more time with it than I did shining it on boats going in and out of the harbor at night.In 1993 I went to work as a contractor at JPL working on FoxPro based add-on productivity tools and OOP related efforts for teams developing various MIS solutions, While there I got to meet Jeb Long. In some ways, Jeb was the original developer who's program lead to the first database applications on the personal computer. That year I wrote a utility called GenScrnX that extended the FoxPro 2.x GenScrn program. The first person I showed GenScrnX to was Y. Alan Griver (yag), then co-founder of Flash Creative Management. I joined Flash in 1993 after JPL reporting directly to yag working on add-ons that shipped in the box of Visual FoxPro 3.0 like the Class Browser. Eric Rudder was the group program manager and architect for VFP 3.0. Many of the great OO and data-centric features added to VFP 3.0 have continued to evolve in VFP as well as into Visual Studio as well as the VB and C# .NET programming languages. When the VFP 3.0 Xbase projects ended when VFP 3.0 was released, I left Flash and became a full-time contractor at Microsoft working on the VFP team. Flash ended up being bought by GoAmerica where yag became CIO, then yag joined Microsoft in early 2002 and soon after was the of the VS Data and VFP teams, and I reported to him directly (again). I also worked with lead program manager Randy Brown and lead developer Calvin Hsia working on VFP past the release of version VFP 9.0.I was inspired to write my GenScrnX utility for FoxPro 2.x after I had seen a demo of an early preview of Borland's dBase for Windows shown at a user group by then Xbase industry expert Adam Green. The next time I was to meet up with Adam Green was just a few weeks ago at the Mashup Camp event in Mountain View, Calif. I chatted with Adam at the Mashup Camp event for about 30 minutes. He showed me on his notebook computer that he still uses Visual FoxPro today to build his own desktop database applications - there were Fox icons all over his Windows desktop. Some of our chat included the past and other parts included why we were at the event - to learn more and discuss mashups and possible tangible outcomes of what is being called the Web 2.0. These days, Adam Green spends most of his independent business efforts in the Web 2.0 area, just as I do in my new role in the Windows Live Platform team. I discovered that Adam now has a great blog http://darwinianweb.com/. He also has an archived blog at http://adamgreen.org/ where he has some great MP3 podcast shows. For historical references on the topic of Xbase history, a great podcast Adam created is Software Stories #6 about the rise and fall of Ashton-Tate and the details of how the company was bought by Borland. This particular podcast is a interview is with Ron Dennis, Russell Freeland, Rick Chapman, and Hal Pawluk. Lots more Ashton-Tate history details on Wikipedia.After Borland bought Ashton-Tate, Borland had some very well known developer tools industry experts including Anders Hejlsberg who created Turbo Pascal and started Delphi. Anders is now at Microsoft and is the lead architect of C#. Some additional irony here is that I recently spent nearly 5 years as the product manager for Visual FoxPro, the same job Tod Neilsen had over 12 years ago. Tod recently became the CEO of Borland. If I talked to Tod today, I would thank him for inviting me to the database summit at Microsoft in 1992. For some interesting history about Delphi, Danny Thorpe wrote an article on Borland's web site Why the name "Delphi?". In a quick photo image search on "Danny Thorpe" using live.com, I found a photo of Danny Thorpe in Antarctica taken in November 2003. This means Danny was probably on the boat trip to Antarctica just before the one that Susan Graham and Dr. Dave Fulton were on in January 2004.In late February 2006, I moved from the developer division here at Microsoft and joined the Windows Live Platform team as a product planner on Scott Swanson's team. Scott is a group product planner for Windows Live Platform and has a strong developer background. He was on the VB and VSCore team's here at Microsoft and worked recently worked on the Messenger Activity SDK. Defining the 'platform' in the Windows Live Platform team, the platform is about working on unified API roadmap across all Windows Live services, to release great new content online such as SDKs and sample code, as well as new developer community activities. Some Now back to how this all relates to Danny's comment submitted on my post Endurance and leadership of Sir Ernest Shackleton... Like some memorable movies endings like in the Sixth Sense and the original Twilight Zone TV show, this post as a bit a twist at the end.Danny Thorpe, former Chief Scientist at Borland, left Borland 4 months ago and joined Google. This week (on April 10, 2006) Danny Thorpe joined Microsoft to work on the recently formed Windows Live Platform team. Danny is joining George Moore's team, a rapidly growing team working on new developer focused projects for Windows Live services and APIs. Nearly all of my responsibilities as a product planner on the Windows Live Platform team involves working with George's new team. Danny Thorpe's created a new blog today at http://blogs.msdn.com/dthorpe/. While there might not be much going on in Antarctica, there is rolling thunder activity going on here at Microsoft in the Windows Live division.