Irina’s Weblog

10/12/2007

IT Boxing, 11.12.2007. 18:00, ïàðê-õîòåë Ìîñêâà

Filed under: Computers — Izida @ 10:51 am

Êàêòî ñïîìåíàõ ñëåä ïðåíèÿ ñåìèíàð íà ÁÀÐÑ, ïðåäñòîè åäíî èíòåðåñíî è íåîáè÷àéíî ïî ôîðìàò ñúáèòèå – “IT Boxing”. Òåìàòà íà ïúðâîòî ñúáèðàíå ùå å “ADO.NET Entity Framework + LINQ vs. Java Persistence API and Hibernate”, âõîäúò å ñâîáîäåí.

Äàòàòà å 11 äåêåìâðè 2007 ã., âòîðíèê, ÷àñ 18:00, ìÿñòîòî : ïàðê-õîòåë Ìîñêâà, çàëà Ìîñêâà.

Ïðîãðàìàòà íà ñúáèòèåòî ìîæåòå äà ðàçãëåäàòå â îôèöèàëíàòà ñòðàíèöà.

3/12/2007

Ñîöèîëîãè÷åñêî ïðîó÷âàíå ñðåä ñîôòóåðíèòå ñïåöèàëèñòè â Áúëãàðèÿ

Filed under: Computers — Izida @ 10:41 am

Ïèñìî íà ÁÀÐÑ ìå íàñî÷è êúì àíêåòà ñðåä ñîôòóåðíèòå ñïåöèàëèñòè â Áúëãàðèÿ, ïðîâåäåíà ïðåç ñåïòåìâðè òàçè ãîäèíà. Öåëòà å äà ñå îïðåäåëÿò íàé-ïîïóëÿðíèòå ôèðìè â áðàíøà, íàé-øèðîêî èçïîëçâàíèòå òåõíîëîãèè è äð. Ðåçóëòàòèòå ìîæåòå äà âèäèòå òóê :

“Ñîöèîëîãè÷åñêî ïðîó÷âàíå ñðåä ñîôòóåðíèòå ñïåöèàëèñòè â Áúëãàðèÿ”

29/11/2007

Âïå÷àòëåíèÿ îò â÷åðàøíèÿ ñåìèíàð

Filed under: Computers,Daily — Izida @ 10:23 am

Ìèíà è ñåìèíàðà, ïîñâåòåí íà NetBeans è Swing.

Roman Strobl íè çàïîçíà ñ íîâîñòèòå â NetBeans 6.0, êîéòî ñêîðî òðÿáâà äà ñòàíå ôèíàëíà âåðñèÿ äî êîëêîòî ðàçáðàõ. Ñ êðàòêà øåãà ëåêòîðúò ïðîâåðè êîëêî îò ôèçèîíîìèèòå â çàëàòà ðàçáèðàò àíãëèéñêèÿ ìó, ñëåä êîåòî çàïî÷íà äà íè äåìîíñòðèðà ñàìîòî IDE. Ñúùî òàêà íàáëåãíà è íà ôàêòà, ÷å NetBeans íå å ñàìî åäíî IDE, à ïëàòôîðìà, êîÿòî ìîæåø äà èçïîëçâàø çà ðàçðàáîòêà íà ñâîè ïðèëîæåíèå áëàãîäàðåíèå íà àðõèòåêòóðàòà è ëèöåíçà. Çà ïðèìåð äàäå ôîòîàëáóì è ïðèëîæåíèå, èçïîëçâàùî ñâîáîäíèòå çà ïîëçâàíå êàðòè íà NASA : “No, that is not Google Maps”, êàêòî êàçà Ðîìàí. 😉 Ñëåä êîåòî äåìîíñòðèðà ðåëåôà îêîëî Ñîôèÿ è êàêâà å ãëåäêàòà îò õîòåëà ìó. Äà, ïðîåêòà World Wind, âêëþ÷âàù êàðòèòå íà NASA, êàêòî è ïðåäîñòàâåíîòî Java SDK, êàòåãîðè÷íî ñà â ñïèñúêà ìè ToTest!

Âúïðîñúò êîëêî ÷îâåêà â çàëàòà ïîëçâàò NetBeans ïðåäèçâèêà ðåàêöèÿ ñàìî ó åäíà øåïà õîðà, êîåòî èçíåíàäà íåïðèÿòíî Ðîìàí – â Ãúðöèÿ, ïî íåãîâè äóìè, îêîëî 50% îò ïðèñúñòâàùèòå íà ïðåçåíòàöèÿòà ïîëçâàëè Sun-ñêîòî IDE. Äîêàòî ïðè íàñ ïðåîáëàäàâàøå Eclipse. Òîâà äîâåäå äî ìíîæåñòâî ñðàâíåíèÿ ñ Eclipse, çàïîçíàâàíå ñ ôóíêöèîíàëíîñòòà “Import Eclipse Project”, ãîòîâ ïðîôèë ñ êëàâèøíè êîìáèíàöèè “Åclipse” è ò.í. 😉 Åäèí êîëåãà îò çàëàòà ïðåäëîæè âúâåæäàíå è íà “Export to Eclipse Project”, êîåòî ìíîãî ìå îçàäà÷è – åäâàì ñà õâàíàëè õîðà, ùî äà ãè óëåñíÿâàò äà ìèãðèðàò êúì äðóãè? 😉 Íî èäåÿòà áåøå äîáðà – àêî ñè â åêèï, ðàáîòåù îñíîâíî ñ Eclipse, à èñêàø äà ðàçðàáîòâàø íà NetBeans, áè áèëî óäîáíî äà ìîæåòå ëåñíî äà ñè ïðåõâúðëÿòå ïðîåêòèòå. Ðîìàí äàäå èäåÿòà äà ñå ïîëçâà ñúçäàâàíå íà ïðîåêò ñ Ant ñêðèïò, êîéòî Ant ñêðèïò ïîñëå äà ñå èçïîëçâà çà ñúçäàâàíå íà ïðîåêò â Eclipse.

Õàðåñà ìè, ÷å ïðåäëàãàò ðàçëè÷íè êîíôèãóðàöèè íà ñðåäàòà â çàâèñèìîñò îò òîâà äàëè èñêàø âñè÷êè îïöèè èëè ùå ðàçðàáîòâàø ñàìî J2SE, C++, Ruby, J2EE, êàòî ÷èñòèÿ J2SE âàðèàíò å ñàìî 21 Ìá çà ñâàëÿíå! Ìîæå è äà ãî ïðîáâàì êàòî ðåäàêòîð çà äðåáíè “ïðîåêò÷åòà” è òåñòîâå ïî âðåìå íà ÷åòåíå íà êíèãè äà âèäèì êàê å. Eclipse íå ìè å ìíîãî óäîáåí çà òîâà, çàùîòî ñúçäàâàíåòî íà ïðîåêò ìè èäâà â ïîâå÷å àêî å ñàìî åäèí òåñòîâ ôàéë.  òàêèâà ñëó÷àè ïîëçâàì ïðîñò ðåäàêòîð ñúñ ñèíòàêòè÷íî îöâåòÿâàíå è êîìïèëèðàíå îò êîíçîëàòà.

Ñúùî òàêà ïðèÿòíà èçíåíàäà áåøå âúçìîæíîñòòà äà èçâàäèø íÿêîé îò ïðîçîðöèòå èçâúí ãëàâíèÿ ïðîçîðåö íà NetBeans-à – çà äà ãî çàâëà÷èø íàïðèìåð íà âòîðèÿ ñè åêðàí. Æàëêî, ÷å àç ñè èìàì ñàìî åäèí ìîíèòîð.

Profiler-úò èçãëåæäàøå ïðèÿòåí, Ðîìàí äåìîíñòðèðà ïîëçâàíåòî íà “Profiling points” çà çàñè÷àíå âðåìåòî íà èçïúëíåíèå ìåæäó òÿõ. Íàêîâ èçðàçè ñúæàëåíèåòî ñè çà òîâà, ÷å íÿìàø îïöèÿòà äà âèäèø ñòðóêòóðàòà íà ïðîìåíëèâà îò ñúñòàâåí òèï â ìàëêîòî ïðîçîð÷å, êîåòî ñå ïîÿâÿâà êàòî ÿ ñåëåêòèðàø. Íî çàëàòà íå ìó ïîçâîëè äà îáâèíè Eclipse â ëèïñàòà íà òàçè îïöèÿ – êîé íå ïîëçâà “Inspect” (Ctrl-Shft-I)! Ìîæåø äà ïðàâèø è “snapshot” â äàäåí ìîìåíò, äà ñðàâíÿâàø ñ “snapshot” îò ìèíàë ìîìåíò è äà âèæäàø êîëêî ïàìåò ïîâå÷å å çàåòà íàïðèìåð.

Äðóã ìèíóñ, êîéòî Íàêîâ ïîñî÷è, å ëèïñàòà íà àâòîìàòè÷íà êîìïèëàöèÿ ñàìî íà ïðîìåíåíèòå êëàñîâå ïî âðåìå íà ðåäàêòèðàíå – îïöèÿòà “Build Automatically” â Eclipse. Ðîìàí îáÿñíè, ÷å èìàëè ãîëÿìî æåëàíèå äà âêëþ÷àò òàçè ôóíêöèîíàëíîñò âúâ âåðñèÿòà 6.0, íî íå ñìîãíàëè ñ âðåìåòî è çà òîâà ùå òðÿáâà äà ñå èç÷àêà äî ñëåäâàùàòà âåðñèÿ. Êàòî äî òîãàâà ñå êîìïèëèðà öåëèÿ ïðîåêò âñåêè ïúò. À òîâà å ìèíóñ ïðè ãîëåìè ïðîåêòè, àç ïîíå ïîëçâàì íîí-ñòîï àâòîìàòè÷íîòî êîìïèëèðàíå.

 îáùè ëèíèè ïîâå÷åòî íîâîñòè â NetBeans, êîèòî Ðîìàí ïðåäñòàâÿøå òîëêîâà åíòóñèàçèðàíî, ïîðàæäàõà ó ìåí ëåêî ñúæàëåíèå êúì òîçè ïðîåêò íà Sun – ïîëçâàì òåçè îïöèè îò ãîäèíè ñ Eclipse, êîåòî çíà÷è è ÷å ñà ïîèç÷èñòåíè îò áúãîâå. Íå âèäÿõ ïðè÷èíà äà ìèíà êúì NetBeans îñâåí ìîæå áè ìàëêàòà äèñòðèáóöèÿ ïðè æåëàíèå ñàìî íà J2SE ïîääðúæêà.

Òúé êàòî òàçè ëåêöèÿ ñå ïðîòî÷è ñ ïîëîâèí ÷àñ, âòîðàòà ëåêöèÿ çàïî÷íà â 20:30. Íà Ìèðîñëàâ Íà÷åâ ìó ñå íàëîæè äà ñå ñáëúñêà ñ íóæäàòà íà ìíîãî îò ãîñòèòå äà ñå ïîðàçòúï÷àò âúïðåêè æåëàíèåòî íà îðãàíèçàòîðèòå äà ïðîïóñíåì ïî÷èâêàòà çàðàäè îãðàíè÷åíîòî âðåìå. Ìèíàõìå êúì êðàòêî ïðåäñòàâÿíå íà íîâèòå SwingX êîìïîíåíòè – â îáùè ëèíèè ïðåãëåæäàíå íà ïðèìåðà, äàäåí îò Sun. Äîâîëíà ñúì îò ðàçâèòèåòî íà êîìïîíåíòèòå, èçãëåæäàõà äîñòà äîáðå è ñúùî âëèçàò â ToTest ñïèñúêà ìè.

Âñå ïàê ïðàâåøå âïå÷àòëåíèå ðàçëèêàòà â ïðåäñòàâÿíåòî íà NetBeans 6.0 íà ìàøèíàòà íà Ìèðîñëàâ ñïðÿìî òàçè íà Ðîìàí. Êàêòî êàçà ãëàñ îò çàëàòà : “Ñåãà ùå âèäèì êàê ñå äúðæè NetBeans â íàøåíñêè óñëîâèÿ…”

Ïîêðàé âòîðàòà ëåêöèÿ “Rich Client Application example” ñå ïîîòïëåñíàõìå êúì âúïðîñè îò áàçèòå äàííè êàòî ïîëèòèêèòå íà òðàíçàêöèè è çàêëþ÷âàíå, êîèòî äîâåäîõà äî èçâîäà, ÷å å äîáðå äà èìà ëåêöèÿ ïî òåìàòà. Ñòèãà è íÿêîé äà ñå ïîäãîòâè 😉

Íóæäàòà ïðè ïîëçâàíå íà JNLP öÿëîòî ïðèëîæåíèå äà å ïîäïèñàíî îò åäèí ÷îâåê äîâåäå äî äèñêóñèÿ íà òåìà äàëè òðÿáâà ðàçðàáîò÷èêà ìó äà å ïîäïèñàë è èçâåñòíè øèðîêî èçïîëçâàíè áèáëèîòåêè, êîèòî å âêëþ÷èë – íàïðèìåð log4j. Îòãîâîðà áå – äà, òðÿáâà äà ïîäïèøåø âñè÷êî! Åäèí îò ãîñòèòå ñå ïðîòèâîïîñòàâè íà íóæäàòà òîé äà ãàðàíòèðà ïðåä êëèåíòà çà log4j. Ìèðîñëàâ íàïîìíè, ÷å âñå ïàê êëèåíòà ïëàùà íà íàñ çà ðàçðàáîòêà íà ïðèëîæåíèåòî, è ÷å â êðàéíà ñìåòêà àêî íèå íå âÿðâàìå íà åäíà áèáëèîòåêà, çàùî èñêàìå êëèåíòà äà é âÿðâà? À è òóê ñå íàìåñâà îòãîâîðíîñòòà – òè ðàçðàáîòâàø ïðèëîæåíèåòî, òðÿáâà äà èçáèðàø âíèìàòåëíî êàêâè êîìïîíåíòè ïîëçâàø.

Êîãàòî ñåìèíàðà ïðèêëþ÷è (îêîëî 22:15), ìîÿò ïàêåò ñîëåòè çà åêñòðåìíè ñèòóàöèè áå îòäàâíà èçÿäåí îò êîëåãèòå 😉 Òàêà ÷å ñ Âåð÷åòî ñå õâàíàõìå ïîä ðú÷è÷êà çà äà íå ñå ïðåòðåïåì íåéäå â ëåäà, è ñå îòáèõìå çà ïî åäíà ïèöà â “Òîðîíòî” – ìíîãî ñà ìè âêóñíè ïèöèòå òàì! Ñëåä òîâà âå÷å ìîæåõ äà ïðåöåíÿ, ÷å ñúì äîâîëíà îò òîâà, ÷å äîéäîõ íà ñåìèíàðà – äà, áåøå òåæúê, çàùîòî áå ñëåä ðàáîòåí äåí, äî êúñíî, áåç ïî÷èâêè, íî ïîäî÷óõ íÿêîè íîâîñòè, çà êîèòî, ïðåäïîëàãàì, ñêîðî ùå ñå ÷óâà âñå ïîâå÷å. Êîëêîòî äî ïðåçåíòàöèÿòà íà NetBeans – áèëà å äîáàâåíà 3 äíè ïðåäè ñåìèíàðà ñëåä êàòî ñïîðåä Íàêîâ Sun íàó÷èëè çà ñúáèòèåòî è ïðàòèëè ÷îâåê. Æàëêîòî áå, ÷å çàå íàé-áîäðîòî âðåìå (ïîíå çà ìåí) – ïúðâèÿ ÷àñ è ïîëîâèíà. Òîâà ñå äîêàçâà è îò àñèìåòðè÷íîñòòà íà òàçè ìè ïóáëèêàöèÿ – êîëêîòî è äà ñå ñòàðàåõ, êîíöåíòðàöèÿòà ìè áå íèñêà ñëåä âòîðèÿ ÷àñ. Íî ïîíå íàïðàâè íåùî, çà êîåòî àç íå íàìåðèõ äîñòàòú÷íî æåëàíèå – äà ðàçãëåäàì òàçè àëòåðíàòèâà íà òåêóùîòî ñè IDE Eclipse. Âåäíúæ ãî èíñòàëèðàõ, íî òàêà è íå ñå íàñèëèõ äà ãî òåñòâàì ñåðèîçíî. Íàêðàÿ ãî ìàõíàõ çàùîòî èìàõ íóæäà îò ìÿñòîòî è òîâà å. Íåïðèÿòíî âïå÷àòëåíèå îáà÷å ìè îñòàâè ñêàñòðÿíåòî íà äèñêóñèèòå, êîèòî ñå ïîëó÷è íà íÿêîëêî ïúòè – ïðåäïîëàãàì ïðè÷èíà áå îãðàíè÷åíîòî âðåìå – ìèíóñúò íà ñåìèíàðèòå â ðàáîòåí äåí.

À, äà! Ñëåä ìåñåö ùå èìà íÿêàêâî ñúáèòèå â ãðàôà “çàáàâíè” – “áîêñèíã” ìåæäó .NET è Java ïðîãðàìèñòè. Íåùî áîðáèòå ìåæäó ïëàòôîðìèòå íå ñà ìè ëþáèìà òåìà, íî ñìÿòàì äà ñå îòáèÿ â ïàðê-õîòåë Ìîñêâà àêî èìàì âúçìîæíîñò (ñúæàëÿâàì, íå ïîìíÿ òî÷íàòà äàòà è ÷àñ â ìîìåíòà).

21/11/2007

Java’s final

Filed under: Computers — Izida @ 11:39 am

“The Final Word On the final Keyword” – ñïîðåä àâòîðà íà ñòàòèÿòà Renaud Waldura, ïðåòðóïàíèÿ ñ “final” Java êîä èìà ïðåäèìñòâà, êîèòî èçáðîÿâà çà âñÿêî åäíî îò âúçìîæíèòå ïðèëîæåíèÿ.

À âèå ïèøåòå ëè final ïðè âñåêè âúçìîæåí ñëó÷àé?

Âïå÷àòëåíèå ìè íàïðàâè èäåÿòà, ÷å final îòäåëÿ àãðåãàöèÿòà îò ïðîñòîòî ïîçíàíñòâî (Aggregation vs. Acquaintance). Ò.å. àêî åäèí îáåêò å ÷àñò îò äðóã îáåêò êàòî áàíàëíîòî Engine êàòî ÷àñò îò Car, òî Engine ùå å êîíñòàíòíà ðåôåðåíöèÿ â êëàñà Car. Àêî åäíà ðåôåðåíöèÿ íå å final, òîâà ïîêàçâà, ÷å îáåêòà, êúì êîéòî ñî÷è, íå å ñúñòàâíà ÷àñò, à ïî-òî÷íî “ïîçíàò” íà íàøèÿ îáåêò.

19/11/2007

Áúãîâåòå ñå ìóëòèïëèöèðàò ñàìè

Filed under: Computers,Daily — Izida @ 11:19 am

 ïåòúê ñå ñâúðçàõ ñ õîðàòà, ðàçðàáîòâàùè ïðèëîæåí ñëîé â ïðèëîæåíèåòî, êîéòî àç ïîëçâàì – åäèí ìåòîä ãåíåðèðàøå èçêëþ÷åíèå ïðè îïèòà ìè äà ãî ïîëçâàì. Äíåñ ïîëó÷èõ èíòåðåñåí îòãîâîð : ïðîáëåìúò å îïðàâåí, ðåøåíèåòî å áèëî äà ðàçìåíÿò ìåñòàòà íà äâåòå ïðîìåíëèâè, êîèòî àç ïîäàâàì íà ìåòîäà… Äî ñåãà íå ìè ñå áåøå ñëó÷âàëî äà ðàçìåíÿ ìåñòà íà ïàðàìåòðè, îùå ïîâå÷å – äà íå ãî çàáåëåæà è äà îáâèíÿ ÷óæäèÿ êîä. Îùå ïîâå÷å ñúñ ñèãóðíîñò ÷åòîõ JavaDoc-à íà ñëîÿ, êîéòî ïîëçâàì. Çàùî ñå ñëó÷è? Çàùîòî òîçè ñëîé îò ïî-íèñêî íèâî, íà êîéòî àç ðàç÷èòàì, ïðè âñÿêà ñëåäâàùà âåðñèÿ ïîêàçâàøå âñå íîâè è íîâè ïðîáëåìè. Çàãóáèëà ñúì äîâåðèå â íåãî – âåðîÿòíîñòòà ïðîáëåìà äà å òàì å âèñîêà, êîåòî îò ñâîÿ ñòðàíà å ïðèòúïèëî ñîáñòâåíàòà ìè ñàìîêðèòè÷íîñò è íå ñúì ïðîâåðèëà äîñòàòú÷íî äîáðå ñâîÿ êîä. Ïúê è êàêâî ìîæåø äà îáúðêàø â åäíî âèêàíå íà ìåòîä?!

 òîçè êîíêðåòåí ñëó÷àé èìàøå è äðóãà ïðè÷èíà – ðàçìåíåíèòå ïàðàìåòðè ñà îò åäèí òèï è ñà ñúîòâåòíî èçòî÷íèê è öåë íà îïåðàöèÿòà. Àç ñàìîóâåðåíî ñúì ñè íàïèñàëà îïåðàöèÿ(öåë, èçòî÷íèê). Äà, àìà íå! Áèëî îáðàòíîòî! Ðåøèõ äà ïðîâåðÿ çàùî ñúì ãè íàïèñàëà èìåííî â òîçè ðåä òàêà óáåäåíî âúïðåêè, ÷å ñúì ïðîâåðèëà äîêóìåíòàöèÿòà íà ìåòîäà – ñïîìíèõ ñè çà C ôóíêöèèòå îò òèïà íà memcpy, strcpy è ä.ð. Íàèñòèíà ïðè òÿõ ðåäà å <öåë, èçòî÷íèê>! Äîêàòî java.lang.System.arraycopy â Java å íà îáðàòíî. Àç ëè ñå ëúæà, èëè íàèñòèíà èìàøå ïîäîáíà ïîëèòèêà â C/C++, ïúðâî öåë, ïîñëå èçòî÷íèê? Àêî áåøå òàêà, íå íàìèðàì ïðè÷èíà â Java äà îòõâúðëÿò òîçè ñòèë.

15/11/2007

Îáÿñíèòåëåí òåêñò êúì HTML ïîëå

Filed under: Computers — Izida @ 11:32 am

Çàáåëÿçâàì íÿêàêâà ìîäà â óåá ñòðàíèöèòå : âìåñòî äà èìà ñòàòè÷åí òåêñò “Âúâåäåòå èìå:” ïðåäè ïîëåòî, ñàìèÿ òåêñò å âúòðå â ïîëåòî è ñå èçòðèâà êàòî çàïî÷íåø äà ïèøåø â íåãî. Òîâà îáà÷å èìà íÿêîëêî èíòåðåñíè ïîñëåäèöè

Íàïðèìåð : ïèøà êîìåíòàð â åäèí ñàéò. Ïîëåòî çà êîìåíòàð ïðè çàðåæäàíåòî íà ñòðàíèöàòà ñúäúðæà îáÿñíèòåëíèÿ òåêñò “Âúâåäåòå ñâîÿ êîìåíòàð òóê:” – ñëóøàì è èçïúëíÿâàì! Íî ïîíåæå íà ñòðàíèöàòà íå ñå âèæäàõà ïðåäíèòå êîìåíòàðè, îòèäîõ â äðóãèÿ òàá íà Firefox-à çà äà ïðî÷åòà íà êàêâî âñúùíîñò îòãîâàðÿì. Âðúùàì ñå àç â òàáà ñ ìîÿ êîìåíòàð è êàêâî äà âèäÿ – ïîëåòî ïðàçíî! Äîáðå, ÷å Ctrl+Z ñðàáîòè, ÷å íÿìàøå äà ïèøà öÿëîòî òîâà íåùî íàíîâî è ùÿõ äà ñå îòêàæà îò êîìåíòèðàíåòî òàì. Åäíà áúðçà èíñïåêöèÿ íà òåêñòîâîòî ïîëå ïîêàçà ñëåäíèÿ êîä onfocus=’this.value=””;’

Äðóã ñëó÷àé – ñàéò ñ ëîãèí ôîðìà íà âñÿêà ñòðàíèöà, ïðåäñòàâëÿâàùà äèñêðåòíà êóòèéêà ñ äâå ïîëåòà â íåÿ. Çà äà íÿìà èçëèøåí òåêñò, “Èìå” è “Ïàðîëà” ñà èçïèñàíè â ñàìèòå ïîëåòà. Èçòðèâàíåòî íà ïîëåòàòà ñòàâà ïðè onclick è onselect. Äà, íî çà äà ñå ÷åòå òåêñòà â ïîëåòî çà ïàðîëà, ñå íàëàãà òîâà ïîëå äà íå å îò òèï “password”! Àêî áåøå – âìåñòî “Ïàðîëà” ùÿõìå äà ÷åòåì “******”. Íî ñåãà ïúê àç òðÿáâà ïèøà ïàðîëàòà ñàìî äîêàòî íÿìà õîðà îêîëî ìåí, ùîòî èíà÷å âñåêè ÿ ÷åòå! Ìîåòî ðåøåíèå – JavaScript, êîéòî íàìèðà òîâà ïîëå, èçòðèâà ñúäúðæàíèåòî ìó è ìó ñëàãà òèï “password”, êîéòî ñêðèïò å àñîöèèðàí çà àâòîìàòè÷íî èçïúëíåíèå ïðè onload íà äàäåíèÿ ñàéò ÷ðåç add-on-à GreaseMonkey çà Firefox.

GreaseMonkey ñå îêàçâà îòëè÷íî äîïúëíåíèå çà õîðà ñ ïðîôåñèîíàëíè èçêðèâÿâàíèÿ, êîèòî ïðîñòî íå ìîãàò äà ñå ïðèìèðÿò ñ íÿêîè íåóäîáñòâà ïî ñàéòîâåòå, êîèòî ïîëçâàò!

Ï.Ñ. Ïèòàì ñå, îùå ëè èìà óåá ðàçðàáîò÷èöè, êîèòî íå ñà ïðî÷åëè êíèæêàòà “Íå ìå êàðàé äà ìèñëÿ” íà Ñòèéâ Êðóã?

6/11/2007

GMail ñðåùó Firebug

Filed under: Computers — Izida @ 10:25 pm

Äíåñ GMail ìå èçíåíàäà ñúñ ñëåäíîòî èíôîðìàöèîííî ñúîáùåíèå :

Firebug is known to make Gmail slow unless it is configured correctly. Fix this Hide

Fix this å âðúçêà, êîÿòî ñî÷è êúì ñúâåòè, çàêëþ÷âàùè ñå â òîâà äà çàáðàíèø Firebug çà Gmail èëè, àêî íå èñêàø, òî ïîíå äà ñïðåø ëîãâàíåòî íà XMLHttpRequest-èòå è “Network monitoring”.

Íå, ìåðñè! Íå ñúì çàáåëÿçàëà äà èìà çàáàâÿíå, à è àêî òðÿáâà äà èçáèðàì ìåæäó GMail è Firebug – êàêâî äà êàæà, ïîùåíñêè êëèåíòè ìíîãî!

31/10/2007

Ôîðìàòèðàíå íà äàòè â Java

Filed under: Computers — Izida @ 4:39 pm

×óäÿ ñå äíåñ êàê å íàé-ïðàâèëíî äà ôîðìàòèðàø äàòè â Java ïî çàäàäåí îò òåá øàáëîí. Ðàçãëåæäàì JDK 1.5 API äîêóìåíòàöèÿòà è â êëàñà SimpleDateFormat ïîïàäàì íà òîâà :

SimpleDateFormat allows you to start by choosing any user-defined patterns for date-time formatting. However, you are encouraged to create a date-time formatter with either getTimeInstance, getDateInstance, or getDateTimeInstance in DateFormat. Each of these class methods can return a date/time formatter initialized with a default format pattern. You may modify the format pattern using the applyPattern methods as desired. For more information on using these methods, see DateFormat.

È ïîíåæå ñå ñòàðàÿ äà ñëåäâàì ïðåïîðú÷âàíèòå äîáðè ïðàêòèêè, îòèâàì â áàçîâèÿ êëàñ DateFormat. Òàì îáà÷å applyPattern ìåòîä ëèïñâà, èìàø èçáîð ñàìî ìåæäó íÿêîëêî ïðåäåôèíèðàíè øàáëîíà çà äàòè (SHORT, MEDIUM, LONG è FULL). Çà ñìåòêà íà òîâà ïîïàäíàõ íà ñëåäíèÿ êîìåíòàð :

If you want even more control over the format or parsing, (or want to give your users more control), you can try casting the DateFormat you get from the factory methods to a SimpleDateFormat. This will work for the majority of countries; just remember to put it in a try block in case you encounter an unusual one.

Íå çíàì çà âàñ, íî àç ìèñëÿ äà ñè ñúçäàì SimpleDateFormat … 😉

15/10/2007

Sweet Home 3D – ñîôòóåð çà âúòðåøåí äèçàéí

Filed under: Computers,Daily — Izida @ 1:46 pm

Êîìïþòðèòå ñà èíòåðåñíè ìàøèíêè – óæ ãè âçèìàø ñ åäíà öåë, ïîñëå ñå îêàçâà, ÷å òå ïðàâÿò îùå ìèëèîí íåùà. È ïîíåæå íè ñå íàëîæè äà ïðåíàðåæäàìå ìåáåëèòå, õðóìíà ìè äà èçïîëçâàì êîìïþòúðà ñè è çà òîâà. Ïîòúðñèõ íÿêîÿ ñâîáîäíà ïðîãðàìêà çà òàçè öåë íà îáè÷àéíîòî ìè ìÿñòî çà ïîäîáíè òúðñåíèÿ : SourceForge. Ôðàçàòà “interior design” äàäå îòëè÷íè ðåçóëòàòè – îùå ïúðâàòà ïðîãðàìà áå òî÷íî êàêâîòî òúðñÿ. À äíåñ çàðèáèõ ñ íåÿ è êîëåãè, è ïðèÿòåëè. Íå ìîãà äà íå ÿ ïîõâàëÿ è â áëîãà ñè!

screenshot

Ïðîãðàìàòà å Sweet Home 3D, òåêóùàòà âåðñèÿ å 1.1 (ò.å. äîñòàòú÷íî ñòàáèëíà). Ðàçïðîñòðàíÿâà ñå ïîä GPL ëèöåíç, ìóëòèïëàòôîðìåíà, ïèñàíà íà Java. Èíòåðôåéñà å äîñòà îïðîñòåí – ïîä ìåíþòî èìà ëåíòà ñ èíñòðóìåíòè, â äÿñíî ðàçãðàôåíà ÷åðòîæíà äúñêà, â ëÿâî ñïèñúê ñúñ ñòàíäàðòíè êîìïîíåíòè, ãðóïèðàíè ïî òèïîâå ñòàè, è äîëó – òðèèçìåðåí èçãëåä íàä íàïðàâåíîòî äî ìîìåíòà. Íàáúðçî íà÷åðòàõ ñòåíèòå, “áîÿäèñàõ” ñè ãè, ñëîæèõ âðàòè è ïðîçîðöè è çàïî÷íàõ äà ðåäÿ ìåáåëèòå. Å, îñòàâà ìè äà èçìåðÿ ïîâå÷åòî îò òÿõ, íî è òîâà å ñòàíå. Ïðåäïîëàãàì çà ïðîôåñèîíàëèñò â òàçè ñôåðà èçîáùî íÿìà äà å äîñòàòú÷íà, îñîáåíî ïî îòíîøåíèå íà ïðåäîñòàâåíèòå ñòàíäàðòíè êîìïîíåíòè çà îáçàâåæäàíå, íî çà ëè÷íà óïîòðåáà å íàïúëíî çàäîâîëèòåëíî.

Åêðàíà âëÿâî å îò ñàéòà íà ïðîåêòà, êëèêíåòå âúðõó êàðòèíêàòà çà äà ðàçãëåäàòå è äðóãèòå ïðèìåðè îò ñàéòà íà ïðîåêòà.

Òðèèçìåðíèÿ ìîäåë å ìíîãî óäîáåí çà âèçóàëèçàöèÿ – ìîæå ëåñíî äà ñå âúðòè âúâ âñè÷êè ïîñîêè, äà ñå çàïèøå êàòî êàðòèíêà, èìà è îïöèÿ çà âèðòóàëíà ðàçõîäêà êàòî òè ïîçèöèîíèðàø ÷îâå÷åòî íà ñêèöàòà è îãëåæäàø íàîêîëî ÷ðåç íåãî.

Ñåìèíàð Creating Web Applications with Java Server Faces (JSF)

Filed under: Computers — Izida @ 11:01 am

Ñåìèíàð íà òåìà “Creating Web Applications with Java Server Faces (JSF)” ùå ñå ïðîâåäå íà 25òè îêòîìâðè /÷åòâúðòúê/ â çàëà 200 íà ÔÌÈ.

Ïîâå÷å èíôîðìàöèÿ – íà ñòðàíèöàòà íà ñåìèíàðà.

Ï.Ñ. Çà òåçè êàòî ìåí, êîèòî ñà ïðîïóñíàëè ïðåäíèÿ ñåìèíàð “Creating AJAX Applications
with Google Web Toolkit (GWT)”, íà ñòðàíèöàòà ìó âå÷å èìà êà÷åíè àóäèî è âèäåî ìàòåðèàëè îò ñúáèòèåòî.

4/10/2007

Pathological – åäíà çàáàâíà ñâîáîäíà èãðà

Filed under: Computers — Izida @ 9:47 pm

Ïðåäè âðåìå ïèñàõ çà íîâàòà ñè èãðè÷êà çà äæîáíèÿ êîìïþòúð – Scarabeus VGA. Ëú÷î ìå ñâåòíà, ÷å òîâà å âñúùíîñò êëîíèíã íà èãðàòà “Logical” íà Rainbow Arts, ïóñíàòà íà ïàçàðà ïðåç 1991 ã. Ìåæäó äðóãîòî ëè÷è ñè, ÷å ïî âðåìåòî íà ñúçäàâàíåòî íà òàçè èãðà èäåÿòà çà ëåñíî íàìèðàíå â Èíòåðíåò îùå íå å áèëà íà äíåâåí ðåä – âñå ïàê “Logical” îïèñâà öÿë æàíð èãðè! Çà äà íàìåðÿ èìåòî íà ðàçïðîñòðàíèòåëÿ òðÿáâàøå äà ïðåðîâÿ ìðåæàòà çà îïèñàíèÿ íà Scarabeus êàòî êëîíèíã íà ñòàðà èãðà Logical 😉 Ðåøèõ, ÷å âñå ìîæå äà èìà íÿêîé êëîíèíã çà Windows, ÷å äîðè è ñâîáîäåí, êîéòî äà ïðàòÿ íà íàøèòå è íà áàáà ìè çà äà ñå çàíèìàâàò.

Òà åòî ãî è íåãî : Pathological.

Å, ãðàôèêàòà íå å ÷àê òîëêîâà ãîòèíà, íî èìà 50 íèâà, êîåòî çà ìåí å ïðåäîñòàòú÷íî! È âàðèàíòè çà Windows, Linux, Mac.

Ùå âçåìà äà ñå ïðîáâàì è àç äà íàïèøà íÿêîå è äðóãî íèâî, òîêó âèæ äîñòèãíåì 100òå íèâà, ìå÷òàíè îò àâòîðà.

25/9/2007

Ñåìèíàð “Creating AJAX Applications with Google Web Toolkit (GWT)”

Filed under: Computers — Izida @ 5:46 pm

 ñðÿäà, 26.09.2007 ã., îò 18:30 ÷àñà â çàëà 200 íà ÔÌÈ ùå èìà ñåìèíàð íà òåìà “Creating AJAX Applications with Google Web Toolkit (GWT)”, â ðàìêèòå íà êîéòî ùå ñå ñúñòîè è ïúðâàòà ñðåùà íà BGJUG /Bulgarian Java User Group/. Àç âå÷å ñå ðåãèñòðèðàõ íà ñàéòà íà BGJUG, äîáàâèõ è RSS-à íà ôîðóìà çà äà ñëåäÿ êàêâî íîâî. Äà âèäèì êàê ùå ñå ðàçâèå!

Ñòèñêàì ñè ïàëöè äà óñïåÿ äà ñè âìåñòÿ çàäà÷èòå â òåçè òàêà êðàòêè äíè è äà ìîãà äà ãî ïîñåòÿ.

24/9/2007

Íîâà èãðè÷êà çà äæîáíèÿ êîìïþòúð

Filed under: Computers,PocketPC — Izida @ 9:01 am

Îò ïðåêàëåíî äúëãî âðåìå çàïúëâàõ ïúòóâàíèÿòà ñè â ãðàäñêèÿ òðàíñïîðò ñ ïàñèàíñ è ñóäîêó, è îùå åäíà-äâå ñâîáîäíè èãðè ñ GPL ëèöåíç. Ðåøèõ, ÷å å âðåìå äà ñè êóïÿ íÿêîÿ çàáàâíà èãðè÷êà çà äæîáíèÿ êîìïþòúð, ñ êîÿòî äà ñå ðàçíîîáðàçÿ. Ëú÷î ìè ïðåïîðú÷à Handango è ClickGamer. Åäíà îò ëþáèìèòå çà ìåí õàðàêòåðèñòèêè íà äæîáíèòå êîìïþòðè å ôàêòà, ÷å ñà íåóäîáíè çà èãðà îò òèïà “first person shooter” è ðàçíè ðàëèòà, ïîðàäè êîåòî îñíîâíî çà òÿõ ñå ïèøàò ëîãè÷åñêè è ïúçåë èãðè. Òàêà ÷å èìàõ ìíîîîîãî èçáîð 😉 Çà ìîÿ îùå ïî-ãîëÿìà ðàäîñò ñå îêàçà, ÷å, â ñðàâíåíèå ñ ïðåäè 8 ìåñåöà, ñåãà èìà ìíîãî ïîâå÷å èãðè çà VGA ðàçäåëèòåëíà ñïîñîáíîñò, êîåòî áåøå äîïúëíèòåëåí ñòèìóë äà ñå ïîðàçðîâÿ.  ÷åòâúðòúê âå÷åð ñâàëèõ îêîëî 40íà äåìî âàðèàíòè íà ðàçíè èãðè, ñïðÿõ ñå íà íÿêîëêî. Ñëåä äúëãî óìóâàíå (ò.å. èãðà äîêàòî ñúì â Ïëîâäèâ), óñòàíîâèõ, ÷å íàé-ìíîãî ìè å ìú÷íî çà èç÷åðïâàíåòî íà äåìî ìèíóòèòå íà èãðàòà Scarabeus VGA (äåìîòî îáà÷å å äàäåíî ñàìî â Handango ñëåä áåçïëàòíà ðåãèñòðàöèÿ, èíà÷å èìà è QVGA âàðèàíò). Çà $19,95 ðåøèõ, ÷å ñè ñòðóâà – çàáàâíà èãðà, ñêèí ïî ìîÿ âêóñ. Èçáðàõ äà ÿ êóïÿ îò ClickGamer, òúé êàòî çà îïöèÿòà äà ñâàëÿ ïîâòîðíî èãðàòà ïðè íóæäà Handango èñêàò äîïúëíèòåëíè $4,95, äîêàòî â ClickGamer òîâà å áåçïëàòíî. Àç åñòåñòâåíî ñè çàïèñàõ exe-òî íà ñèãóðíî ìÿñòî (íàäÿâàì ñå) 😉 Ñåãà âå÷å îñòàâà îïàñíîñòòà íå äà çàñïÿ îò ñêóêà ïî âðåìå íà áåçêðàéíèòå çàäðúñòâàíèÿ, à äà ñè ïðîïóñíà ñïèðêàòà!

Ðåøèëà ñúì ñëåäâàùàòà èãðà äà å Resco Diamonds, êîÿòî çà $15 ïðåäîñòàâÿ âàðèàíò íà åäíà îò ëþáèìèòå ìè ìàëêè è çàáàâíè èãðè÷êè. Ïðåäëàãà ñå è äðóã âàðèàíò íà ñúùàòà èãðà – Bejewed, êîÿòî Astraware ïðåäîñòàâÿò â ïàêåò ñ îùå 4 èãðè çà $30 – PopCap Games Pack 1. Íî ïðè òåñòâàíåòî óñòàíîâèõ, ÷å íå “Bejewed”, à “Bejewed 2” å åêâèâàëåíò íà Resco Diamonds, òàêà ÷å ìîæå áè ùå ïðîïóñíà ïàêåòà â ïîëçà íà åäèíè÷íàòà èãðà – à è ãðàôèêàòà íà Resco Diamonds ñïîðåä ìåí å ìíîãî ïî-ïðèÿòíà.

Äðóãà ãîòèíà è çàáàâíà èãðè÷êà å Happy Lines – èãðàëà ñúì äîñòà âðåìå âàðèàíò çà PC è âñå ïàê ïðîäúëæàâà äà ìå çàáàâëÿâà. Êîåòî å òî÷íèÿ êðèòåðèé êîÿ èãðà ñè çàñëóæàâà ïàðèòå – îñîáåíî êàòî ñòðóâà $10. Â÷åðà èíñòàëèðàõ åäèí ñâîáîäåí êëîíèíã íà òàçè èãðà íà êîìïþòúðà íà áàáà ìè – Lines game. Ìàêàð è íå òîëêîâà øàðåíà, å ïðèÿòíà çà èãðà.

Ñàìî åäíî ìå ïðèòåñíÿâà – êàòî ñëóøàì mp3êè â ðåéñà çà âðåìåòî íà ïúòóâàíåòî áàòåðèÿòà ïàäà â íÿìà è 10íà ïðîöåíòà. Íîâàòà èãðà ñìúêíà íàêúäå êúì 20% çà ñúùîòî âðåìå… Íî áàòåðèèòå ñà çà äà ñå çàðåæäàò. Âñå ïàê ùå âçåìà äà ñè ïîðú÷àì åäíà âòîðà îðèãèíàëíà áàòåðèÿ çà êàòî è ìèíàò öèêëèòå íà ïðåçàðåæäàíå íà òàçè.

13/9/2007

×åñòèò ïðàçíèê

Filed under: Computers — Izida @ 9:07 am

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class ProgrammersDay {
public static int PROGRAMMERS_DAY_OF_YEAR = 256;
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR));
calendar.set(Calendar.DAY_OF_YEAR, PROGRAMMERS_DAY_OF_YEAR);
Date programmersDay = calendar.getTime();
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
System.out.println("Programmer's Day this in the current year is at : " + formatter.format(programmersDay));
}
}

Èíòåðåñíîòî å, ÷å âå÷å íÿìà ñòàòèÿ âúâ Wikipedia ïî òåìàòà – èçòðèòà å ñëåä äåáàò. Íî óñïÿõ äà íàìåðÿ èç áëîãîâåòå êàêâî å ïèøåëî òàì :

“Programmer’s day is a “holiday” on the 256th day of the year celebrated mostly by computer programmers (reason: 256 = 2 to the power of 8 = the number of values representable in a byte of data).
Traditions include drinking, behaving silly, coding silly programs, mini computer games, playing with old computers, etc. That, of course, includes the condition that the developer who chooses to celebrate, needs to have done decent coding on all the other days and had tried the best not to behave silly on the other days. For those programmers who are used to the ‘celebrations’ in their every day lives, this ‘holiday’ becomes unjustified!
Programmer’s day usually falls on September 13th; on leap years, it is September 12th.”

12/9/2007

Åâðîöåíçóðà íàä Èíòåðíåò äîñòúïà

Filed under: Computers — Izida @ 9:01 am

Â÷åðà ïîïàäíàõ íà ñëåäíàòà íîâèíà â Dnes.bg : “ÅÑ èñêà äà áëîêèðà èíòåðíåò òúðñåíèÿòà çà èíñòðóêöèè çà áîìáè”. Îêàçà ñå, ÷å òîâà ïðèòåñíèòåëíî ñúîáùåíèå âå÷å áå îïèñàíî è â ñòàòèÿòà â àíãëîåçè÷íàòà Wikipedia, ïîñâåòåíà íà Ôðàòèíè, åâðîêîìèñàð ïî ïðàâîñúäèåòî è ñèãóðíîñòòà :

Interviewed by Reuters he declared his intention to promote online communications monitoring and censorship of “dangerous words” like “bomb, kill, genocide or terrorism” and is expected make a proposal to member states in November 2007.

Êàòî èçòî÷íèê å ïîñî÷åíà ñëåäíàòà ñòàòèÿ íà Reuters : “Web search for bomb recipes should be blocked: EU”. Íà âúïðîñà òîâà áëîêèðàíå íà ñàéòîâå íÿìà ëè äà îêàæå âëèÿíèå âúðõó ñâîáîäàòà íà ñëîâîòî è ïðàâîòî íà ñâîáîäåí äîñòúï äî èíôîðìàöèÿ, Ôðàòèíè îòãîâàðÿ:

“Frankly speaking, instructing people to make a bomb has nothing to do with the freedom of expression, or the freedom of informing people. The right balance, in my view, is to give priority to the protection of absolute rights and, first of all, right to life.”

Ãðóá ïðåâîä :

“×åñòíî êàçàíî èíñòðóêòèðàíåòî íà õîðà çà òîâà êàê äà íàïðàâÿò áîìáà íÿìà íèùî îáùî ñúñ ñâîáîäàòà íà ñëîâîòî èëè ïðàâîòî íà èíôîðìàöèÿ. Ñïîðåä ìåí ïðàâèëíèÿò áàëàíñ å äà ñå äàäå ïðèîðèòåò íà îïàçâàíåòî íà àáñîëþòíèòå ïðàâà è, ïðåäè âñè÷êî, ïðàâîòî íà æèâîò”

Óñïîêîåíèåòî, ñïîðåä Ôðàòèíè, èäâà è îò ôàêòà, ÷å íÿìàëî äà ñå áëîêèðàò èñòîðè÷åñêè äàííè è ëè÷íè ìíåíèÿ, à ñàìî îïåðàòèâíè èíñòðóêöèè. Íî ñå íàìåñâà è öåíçóðà íàä òúðñåíèÿòà – ïîñî÷âàò ñå îïàñíè äóìè êàòî “áîìáà”, “óáèéñòâî”, “ãåíîöèä”, “òåðîðèçúì”.

Íå çíàì çà âàñ, íî àç íå èñêàì ÅÑ äà ñå ïðåâúðíå âúâ âòîðè Êèòàé! Ïðè òîâà ìè ñå ñòðóâà àáñóðäíî äîñòàâ÷èöèòå äà îòñÿâàò êîÿ ñòðàíèöà ñòàâà çà ïîêàçâàíå è êîÿ – íå. Äà íå êàæà – íåâúçìîæíî. È êàê òî÷íî îò ÅÑ ùå ïîäãîòâÿò èíñòðóêöèè êúì äúðæàâèòå-÷ëåíêè, êàê òå ùå ãè êîíêðåòèçèðàò, êàê äîñòàâ÷èöèòå íà Èíòåðíåò óñëóãè ùå ñå ñïðàâÿò ñ èçïúëíåíèåòî èì?

7/9/2007

FireBug è printer-friendly âåðñèÿ íà ñàéò

Filed under: Computers — Izida @ 3:30 pm

Îáè÷àì ãî òîçè FireBug! Äíåñ èñêàõ äà ðàçïå÷àòàì åäíà èíòåðíåò ñòðàíèöà. Åñòåñòâåíî èìàøå äîñòà áàíåðè è èçëèøíè çà ïå÷àòíàòà âåðñèÿ åëåìåíòè êàòî “Ñâúðæè ñå ñ íàñ” è ðàçíè äðóãè ôîðìè. Òàêà ÷å õâàíàõ èíñòðóìåíòà “Inspect”, ùðàêàõ íà âñåêè èçëèøåí åëåìåíò, è ðåäàêòèðàõ ñòèëà ìó êàòî â ñåêöèÿòà “Style” äàâàõ äåñåí êëèê > “Edit element style” è ãî ñêðèâàõ ñ äîáàâÿíå íà “display:none”. Ñêîðî ñòðàíèöàòà ñòàíà íå ïî-ðàçëè÷íà îò îáèêíîâåí off-line äîêóìåíò!

19/8/2007

i18n

Filed under: Computers,Humor — Izida @ 12:50 pm

Èç Flash òåñòà ïî ãåîãðàôèÿ íà GeoBee Challenge íà National Geographic :

i18n

Âòîðàòà ñòðàíà å òðÿáâàëî äà áúäå C?te d’Ivoire.

Unicode 4.0 â JDK 1.5

Filed under: Computers — Izida @ 11:31 am

Åäíà îò íîâîñòèòå â JDK 1.5 å, ÷å âå÷å ñå ïîääúðæà äîñòà ïî-øèðîê íàáîð îò ñèìâîëè ÷ðåç ïðèåìàíå íà ñòàíäàðòà Unicode 4.0

Åñòåñòâåíî îêàçâà ñå, ÷å êîäîâåòå íà âñè÷êè òåçè ñèìâîëè íå ìîãàò äà ñå ïîáåðàò â òèïà char, êîéòî å 16 áèòîâ. Çà òîâà íîâèòå ñèìâîëè ñå êîäèðàò ÷ðåç çàìåñòâàùà äâîéêà èëè code pointäâà ïîðåäíè char-à, âñåêè îò êîèòî ñå íàðè÷à code unit. Ìåòîäúò String.length ïðîäúëæàâà äà âðúùà áðîÿ char-îâå â ñòðèíãà. Íî òúé êàòî íÿêîè ñèìâîëè ñå êîäèðàò ñ 2 char-à, òî String.length ìîæå áè íå å ìåòîäúò, êîéòî âè òðÿáâà àêî òúðñèòå äúëæèíàòà ñòðèíãà êàòî áðîé ñèìâîëè. Çà òîâà èìà âúâåäåí íîâ ìåòîä :

int codePointCount(int beginIndex, int endIndex)

Òîçè ìåòîä âðúùà áðîÿ code points èëè ñúùèíñêè unicode ñèìâîëè êàòî áðîè äâîéêèòå çà êîäèðàíå íà íîâèòå ñèìâîëè êàòî åäèí.

Ñúùî òàêà àêî èñêàòå äà âçåìåòå n-òèÿ ñèìâîë, String.charAt() íÿìà äà âè ñâúðøè ðàáîòà – òúé êàòî òîé áè âúðíàë n-òèÿ char. Çà òîâà èìà è íîâè ìåòîäè :

int offset = str.offsetByCodePoints(0, 3);
int codePnt = str.codePointAt(offset);

Òóê âçèìàìå èíäåêñà íà ïúðâèÿ îò åäèíèÿ èëè äâàòà char-à, ïðåäñòàâÿùè 3-òèÿ ñèìâîë. È ñëåä òîâà âçèìàìå ñèìâîëà (åäèí èëè äâà char-à) íà äàäåíàòà ïîçèöèÿ.

È åäèí ïðèìåð çà ñòðèíã, ñúäúðæàù åäèí ñèìâîë, êîéòî ñå êîäèðà êàòî äâîéêà îò char-îâå :

String str = "\uD800\uDF30";
System.out.println("str: " + str);
System.out.println("str.length(): " + str.length());
System.out.println("str.codePointCount(0, str.length()): " + str.codePointCount(0, str.length()));
System.out.println("str.charAt(0): " + (int)str.charAt(0));
System.out.println("str.charAt(1): " + (int)str.charAt(1));
System.out.println("str.codePointAt(0): " + str.codePointAt(0));
System.out.println("str.codePointAt(1): " + str.codePointAt(1));

Èçâîä : Àêî ðàáîòèì ñ íîâèòå çà Unicode 4.0 ñèìâîëè, òðÿáâà äà ñìå ìíîãî âíèìàòåëíè êîè ôóíêöèè ïîëçâàìå – äîñåãàøíèòå, çà êîèòî âñåêè ñèìâîë å òî÷íî åäèí char, èëè âúâåäåíèòå îò JDK 1.5 ôóíêöèè ñïåöèàëíî çà ðàáîòà ñ íîâèòå äâó-char-îâè ñèìâîëè. Èçëèçà, ÷å ïðåäèìñòâîòî íà Java íàä C++, êîåòî äàâàò èçðè÷íî óêàçàíèòå â ñïåöèôèêàöèÿòà íà åçèêà ðàçìåðè íà âñåêè ïðèìèòèâåí òèï, âå÷å ñòàâà è íåäîñòàòúê.

Êàê òîâà ùå ñå îòðàçè íà èíòåðíàöèîíàëèçàöèÿòà, è êàê ñå ñú÷åòàâà åâåíòóàëíî ñ åíêîäèíãà íà áàçèòå äàííè, ùå âèäèì òåïúðâà.

Ïîëåçíè ðåñóðñè:

18/8/2007

JavaScript äðåáîëèè

Filed under: Computers,Daily — Izida @ 10:30 pm

Ïðè ÷åòåíå íà ñïåöèôèêàöèÿòà íà ECMAScript 2.0 è íà êíèãàòà “JavaScript: The Definitive Guide /5th edition/” íà O’Reilly ïîïàäíàõ íà íÿêîè çàáàâíè äðåáîëèè :

  • Ìèñëèòå ëè, ÷å èìà ðàçëèêà ìåæäó ñëåäíèòå äâå ïàð÷åòà êîä?
    function myFunc() {
    return 5;
    }
    alert(myFunc());

    function myFunc() {
    return
    5;
    }
    alert(myFunc());

    Ïðåäëàãàì âè ïðåäè äà êàæåòå “Íå!” äà òåñòâàòå. Îêàçà ñå, ÷å ñïîðåä ñïåöèôèêàöèÿòà JavaScript, ÿâÿâàéêè åçèê çà ïðîãðàìèðàíå íàñî÷åí è êúì ïðîôåñèîíàëíè ïðîãðàìèñòè, è êúì àìàòüîðè, ñå îïèòâà äà “ìèñëè” âìåñòî ïðîãðàìèñòà. È äà ñëàãà ‘;’ òàì, êúäåòî ïðåöåíè, ÷å ëèïñâà. Å, àêî ìåæäó return/throw è ñëåäâàùèÿ ãè èçðàç, èëè ìåæäó break/continue è åòèêåòà, èëè ìåæäó ïðîìåíëèâà è ïîñòèíêðåìåíò/ïîñòäåêðåìåíò èìàòå íîâ ðåä, òî JavaScript âìúêâà òî÷êà è çàïåòàÿ ïðåäè íîâèÿ ðåä. Òàêà ÷å ïèøåòå òåçè èçðàçè íà åäèí ðåä àêî íå èñêàòå ñóìà âðåìå äà ñå ÷óäèòå êàêâî íå å íàðåä â èíà÷å êðèñòàëíî ÿñíèÿ âè êîä.
  • Â îïèñàíèåòî íà òèïà Number ñðåùíàõ ñëåäíèÿ òåêñò:

    Note that these two infinite number values are produced by the program expressions +Infinity (or simply Infinity) and
    -Infinity, assuming that the globally defined variable Infinity has not been altered by program
    execution.

    Òîâà ïðîâîêèðà ó ìåí ñëåäíèÿ òåñò:

    alert(5 == +Infinity); // ðåçóëòàò : false
    Infinity=5;
    alert(5 == +Infinity); // ðåçóëòàò : true

  • îïåðàòîð === : ñðàâíÿâà íå ñàìî ñòîéíîñòèòå, íî è òèïîâåòå; Íàïðèìåð :
    var a = 5;
    alert(a == "5"); // âÿðíî
    alert(a === "5") // ëúæà - ðàçëè÷íè òèïîâå;
  • Òðÿáâà äà ñå âíèìàâà êîãàòî èñêàìå äà ðàçáåðåì äàëè åäíà ïðîìåíëèâà å èçðè÷íî óñòàíîâåíà íà null è êîãà ïðîñòî íå å èíèöèàëèçèðàíà, ò.å. èìà ñòîéíîñò undefined. Ïðîñòîòî ñðàâíåíèå :
    unknownVar == null;
    êúäåòî unknownVar å ëîêàëíà ïðîìåíëèâà, ñïîìåíàòà çà ïúðâè ïúò, âðúùà èñòèíà! Çà òîâà àêî èñêàìå äà ñìå óáåäåíè, ÷å ñòîéíîñòòà å íàèñòèíà undefined, à íå null, òðÿáâà äà ñðàâíÿâàìå ïðîìåíëèâàòà ñ null ÷ðåç îïåðàòîð===:
    unknownVar === null;
  • Áóëåâèÿò îïåðàòîð ÈËÈ (||) ðàáîòè äîñòà ñõîäíî íà ñúùèÿ îïåðàòîð â C/C++/Java – àêî äåñíèÿ îïåðàíä å true èëè ìîæå äà ñå êîíâåðòèðà äî òàçè ñòîéíîñò, òî èçîáùî íå ñå èç÷èñëÿâà ëåâèÿ, çàùîòî òàêà èëè èíà÷å ëîãè÷åñêîòî óñëîâèå å óäîâëåòâîðåíî (åäíà îò ñòîéíîñòèòå å true). Äî òóê íèùî íîâî. Ñàìî ÷å ñå îêàçâà, ÷å JavaScript íå ïðèñâîÿâà çà ñòîéíîñò íà îïåðàòîðà ÈËÈ áóëåâà ñòîéíîñò – true èëè false, à ñòîéíîñòòà íà ñàìèÿ îïåðàíä! Ò.å. ñòîéíîñò íà èçðàçà å ïúðâèÿ îò äâàòà îïåðàíäà (îò ëÿâî íà äÿñíî), êîéòî íå ìîæå äà ñå ïðåîáðàçóâà äî false – íå å undefined, íå å null è ò.í. Òàêà ÷å ìîæå äà ñå èçïîëçâà ïî ñëåäíèÿ íà÷èí :
    var width = minWidth || averageWidth || 50;
    Àêî íèêîÿ îò ïúðâèòå ñòîéíîñòè íå å çàäàäåíà, òî íà width ùå ñå ïðèñâîè ñòîéíîñò 50;
  • Ìîæåì äà èçòðèåì ïîñëåäíèòå N åëåìåíòà íà ìàñèâ ïî ñëåäíèÿ íà÷èí:
    var a = [1, 2, 3, 4, 5, 6];
    var n = 2;
    a.length = a.length - n;
    alert(a.join(", "));
  • Ôóíêöèÿòà Array.slice() âðúùà ïîäìàñèâ, çàïî÷âàéêè îò ïîñî÷åíèÿ ïúðâè èíäåêñ äî âòîðèÿ èíäåêñ. Êàêâî ñòàâà îáà÷å àêî ïîäàäåì îòðèöàòåëíî ÷èñëî êàòî èíäåêñ?
    var a = [1, 2, 3, 4, 5, 6];
    var n = 2;
    var b = a.slice(1, -1);
    alert(b.join(", "));

    Âðúùà ïîäìàñèâ, çàïî÷âàù îò åëåìåíòà ñ èíäåêñ 1 (ò.å. âòîðèÿ åëåìåíò), êàòî ñïèðà áåç äà âêëþ÷âà íà ïîñëåäíèÿ åëåìåíò.
  • Àêî èñêàòå äà ïðîïóñíåòå äîñàäíèÿ àòðèáóò type=”text/javascript” â HTML äîêóìåíòà, òî âêëþ÷åòå ñëåäíîòî â head ñåêöèÿòà:
    <meta http-equiv="Content-Script-Type" content="text/javascript"></meta>
    Òîâà âàæè è çà äðóãèòå åçèöè ðàçáèðà ñå è çàäàâà òèïà ïî ïîäðàçáèðàíå íà ñêðèïòîâåòå â äîêóìåíòà.

7/8/2007

The March of Progress

Filed under: Computers,Humor — Izida @ 1:14 pm

Èçòî÷íèê : Cay Horstmann’s Home Page, åäèíèÿò îò àâòîðèòå íà Core Java.

The March of Progress

« Previous PageNext Page »