Firma Chi Mei Optoelectronics – jeden z trzech dostawców największych wyświetlaczy LCD – ogłosiła przedwczoraj, iż udało jej się wyprodukować pierwszy a zarazem największy na Świecie wyświetlacz LCD o przekątnej ekranu wynoszącej 56″.
Wyświetlacz posiada rozdzielczość 3840×2160 co daje w sumie 8,29 miliona pixeli, co stanowi ilość czterokrotnie większą od zwykłego TV z 1920×1080 pixeli, dając firmie CMO aktualny rekord Świata w tej dziedzinie.
28 WrzesieĹ, 2005
Firma Logitech opracowała cyfrowy długopis — io2, który wygląda i działa jak zwykły długopis, z tym, że ten potrafi zapisać w pamięci do 40 stron, po czym wymagana jest synchronizacja z komputerem aby zwolnić pamięć.
Dodatkową interesującą opcją, jest funkcja wbudowanych znaczników ioTag, które to są predefiniowanymi symbolami, których użycie powoduje wykonanie określonych funkcji później na komputerze. Na przykład, aby wskazać, że piszemy emaila, wystarczy wpisać dużą literę E w kółku obok adresu email i narysować kreskę łączącą treść emaila z adresem. Wtedy, podczas następnej synchronizacji znacznik zostanie zamieniony na akcję odpowiadającą utworzeniu nowego emaila w ulubionym programie pocztowym.
Teraz tylko wypada czekać na model z bluetoothem, który będzie zapisywał bezpośrednio tekst do komputera/palma/telefonu.
27 WrzesieĹ, 2005
Oto świetny sposób, aby odwdzięczyć się hałaśliwym sąsiadom. Daj im spróbować tego, czym raczą Cię od dawna za pomocą 20 “wspaniałych” utworów, które znajdują się na specjalnej płycie odwetowej.
Na płycie znajdują się takie “przeboje” jak:
1) Wiertarka
2) Impreza (przynajmniej 200 osób)
3) Orgazm (niesamowity)
4) Pociąg
5) Perkusja (obsługiwana przez dziecko)
6) Nieludzkie krzyki
7) Kroki (w butach na wysokich obcasach)
8) Domowa sprzeczka
9) Trzaskające drzwi
10) Kręgle
11) Nieszczęśliwy pies
12) Ćwiczenie gamy (na skrzypcach)
13) Korek uliczny
14) Śmieciarka
15) Noworodek
16) Dzwoniący telefon
17) Gra w piłkę
18) Gołębie
19) Wiosenne porządki
20) Pianie koguta
Do płyty w komplecie dołączony jest komplet zatyczek do uszu, tak na wszelki wypadek ;-)
26 WrzesieĹ, 2005
Czy kiedykolwiek zastanawiałeś się, czy żona Cię zdradza? Co i gdzie Twoja kobieta robi w danej chwili? Gdzie jest Twoja córka i czy temperatura jej ciała jest w porządku?
To niesamowite urządzenie udzieli odpowiedzi na wszystkie powyższe pytania. Teraz możesz mieć te informacje podane jak na tacy za pomocą majteczek z wbudowanym systemem pozycjonowania (GPS) a nawet termometrem i miernikiem tętna. W przeciwieństwie do staromodnych, wielkich i niewygodnych pasów cnoty, te w pełni bawełniane majteczki są podobno bardzo wygodne.
Pozycję nosicielki majteczek możesz zawsze odczytać przy pomocy swojego peceta, pda, czy też telefonu komórkowego.
Wersja podstawowa z pozycjonowaniem korztuje nieco ponad 300 PLN, podczas gdy bardziej bajeranckie z czujnikiem tętna i termometrem około 550 PLN, lecz czy to ważne, są przecież “rzeczy” droższe od pieniędzy ;-)
[ thx marny ]
25 WrzesieĹ, 2005
W jednym z poprzednich wpisów narzekałem na brak radia w iPodzie mini. Widocznie nie tylko ja miałem takie zdanie ;-]
Jako, że potrzeba matką wynalazku, firma Griffin Technology dorobiła radio, pilota i i mikrofon wraz z wyświetlaczem, które upakowała w zmyślny gadżet doczepiany do wszystkich modeli iPoda oprócz iPoda Shuffle.
Koszt to około 160 PLN ($49.99).
25 WrzesieĹ, 2005
Nowa kampania reklamowa Sony PSP pomaga Malezyjczykom zabić nudę podczas okresu oczekiwania na dostawę upragnionego Sony PSP.
Sony wychodzi z założenia, że zanim dostaniesz PSP możesz zabić nudę w miejscach publicznych pstrykając z folii bombelkowej, z której właśnie zrobiona jest reklama. Folia pokryta jest dodatkowo nadrukami symboli, które znajdują się na klawiszach funkcyjnych konsoli. Jak dla mnie rewelacja.
A tutaj macie namiastkę, jak mogą się czuć szczęśliwy Malezyjczycy ;-]
23 WrzesieĹ, 2005
O tym, co to jest AJAX można przeczytać na:
http://pl.wikipedia.org/wiki/AJAX
Można też przeczytać artykuł (w języku angielskim), który jako jeden z pierwszych poruszył tę kwestię:
http://www.adaptivepath.com/publications/essays/archives/000385.php
W tym tekście postaram się w miarę przystępnie opisać proces instalacji AJAXa na forum phpBB. Zadaniem tej prostej aplikacji będzie powiadamianie forumowiczów o nowych postach bez potrzeby przeładowywania samego forum.
Na wstępie pragne zaznaczyć, że jest to bardzo prosta wersja, która ma raczej rzucić światło na zastosowanie AJAXa i posłużyć jako podstawa do budowania bardziej rozbudowanych aplikacji.
Aby wprowadzić prosty mechanizm powiadamiania o nowych postach na forum phpBB potrzebujemy zrobić kilka rzeczy:
- napisać skrypt w javaskrypcie stanowiący serce całej aplikacji
- zmodyfikować jeden plik szablonu forum phpBB
- zmodyfikować jeden plik silnika forum phpBB
- napisać mały skrypt zewnętrzny operujący na bazie forum phpBB
Idea działania jest taka:
- użytkownik wchodzi na (pod)forum (wchodząc zarazem uruchamia skrypt wykonywujący się co zadany okres czasu)
- pobierany jest czas wejścia na forum
- pobierany jest numer identyfikacyjny forum
- na podstawie czasu wejścia na forum oraz numeru forum jest odpytywana baza danych, czy aby czasem nie pojawiły się od wejścia na tym forum nowe posty
- otrzymujemy odpowiedź z bazy danych czy są nowe posty
- jeśli są nowe posty, pokazujemy stosowny komunikat, jeśli nie, pokazujemy nie mniej stosowny komunikat ;)
A teraz do rzeczy.
Dla ułatwienia cały skrypt w javaskrypcie umieściłem w oddzielnym pliki, który zapisałem pod nazwą nowe.js i umieściłem w głównym katalogu, w którym znajduje się forum.
Zawartość pliku forum/nowe.js:
var http_request = false;
function makeRequest(url) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('GET', url, true);
http_request.send(null);
}
function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var xmldoc = http_request.responseXML;
var root_node = xmldoc.getElementsByTagName('root').item(0);
var qReply = root_node.firstChild.data;
if(qReply != 0)
{
// mamy qReply nowych postow, mozna te informacje wykorzystac
nowe.innerHTML = "Nowe posty na forum (" + qReply + ")";
}
else
{
// brak nowych postow, mozemy nic nie robic
nowe.innerHTML = "Brak nowych postow na forum";
}
} else {
alert('There was a problem with the request.');
}
}
}
function checker(tstamp, fid) {
makeRequest("q.php?t=" + tstamp + "&f=" + fid);
}
Plik ten jest podłączony do forum poprzez dodanie poniższej linii do pliku forum/templates/subSilver/overall_header.tpl tuż przed zamknięciem sekcji nagłówkowej (czyli linijke przed tekstem ):
<script language="javascript" type="text/javascript" src="nowe.js"></script>
Również w tym samym pliku (forum/templates/subSilver/overall_header.tpl) w tagu umieściłem instrukcję, która uruchamia cały mechanizm:
onLoad='setInterval("checker({TSTAMP},{FORUM_ID})", 10000);'
oznacza ona tyle, iż w momencie załadowania strony ma zostać uruchomiona funkcja odpowiedzialna za okresowe wykonywanie instukcji – setInterval() z dwoma parametrami:
- nazwą funkcji wraz z jej dwoma parametrami (znacznik czasu oraz numer forum) – checker({TSTAMP},{FORUM_ID})
- oraz interwałem (trudne słowo ;P) czyli odstępem czasowym wyrażonym w milisekundach 1000 milisekund = 1 sekunda
Ostatnia modyfikacja pliku forum/templates/subSilver/overall_header.tpl to dodanie na samym jego końcu:
<div id="nowe"></div>
czyli na razie puste miejsce na wyświetlanie informacji o nowych postach, które będziemy mogli dynamicznie uzupełniać za pomocą javaskryptu.
W następnej kolejności wypadałoby nadać zmiennym szablonowym z pliku overall_header.tpl wartości.
Jak widać wyżej do funckji checker({TSTAMP},{FORUM_ID}) należy przekazać dwa parametry:
- TSTAMP – czyli znacznik czasowy (unix timestamp, wiadomo)
- FORUM_ID – numer id forum
Możemy to osiągnąć (na przykład, poniważ osoby bardziej doświadczone mogą wpaść na inne rozwiązanie) poprzez dodanie poniższego kodu PHP:
$fid = intval($_GET['f']);
if(!$fid) { $fid=0; }
$tstamp = time();
$template->assign_vars(array(
'FORUM_ID' => $fid,
'TSTAMP' => $tstamp)
);
do pliku forum/includes/page_header.php na samym jego końcu tuż przed:
$template->pparse('overall_header');
Tworzymy plik q.php w głównym katalogu forum o poniższej zawartości, nie zapominając o wpisaniu właściwych danych potrzebnych do połączenia z bazą danych:
<?php
// ustawiamy zmienne potrzebne do połączenia z bazą danych
// które można wyciągnąć z pliku config.php
$DBhost = 'localhost';
$DBuser = 'uzytkownik';
$DBpassword = 'haslo';
$DBname = 'baza_forum';
// pobieramy zmienne
$tstamp = intval($_GET['t']);
$fid = intval($_GET['f']);
// nawiązujemy połączenie
$mysql_link = @mysql_connect($DBhost, $DBuser, $DBpassword);
// wybieramy baze danych
@mysql_select_db($DBname, $mysql_link);
if($fid != 0) {
// zapytanie dla konkretnego forum_id
$sql = "SELECT count(*) FROM phpbb_posts WHERE forum_id = " . $fid . " AND post_time > " . $tstamp;
} else {
// zapytanie dla całego forum
$sql = "SELECT count(*) FROM phpbb_posts WHERE post_time > " . $tstamp;
}
$res = mysql_query($sql);
$w = mysql_fetch_row($res);
$postow = $w[0];
// ustawiamy nagłówki
header('Content-Type: text/xml');
// wyświetlamy XMLa
echo '<?xml version="1.0" ?>';
echo '<root>';
if( $postow > 0 ) {
echo $postow;
} else {
echo '0';
}
echo '</root>';
?>
I to wszystko, teraz po wejściu na forum i odczekaniu minimum 10 sekund od napisania pierwszego nowego posta powinien pojawić się tekst z informacją.
Powyższe działające rozwiązanie możecie przetestować jak się sprawdza w praktyce na forum rotfl.pl.
wersja 1.00
22 WrzesieĹ, 2005
Nie tak dawno Opera obchodziła swoje 10-lecie, rozdając tego dnia prawie 3 miliony licencji na swoje najnowsze oprogramowanie (wtedy Opera 8.02) za darmo. Dziś możemy ściągnąć już darmową wersję 8.5 przeglądarki, bez potrzeby wprowadzania licencji, bez bannerów reklamowych — za darmo.
Z wygodniejszych funkcji Opera posiada zintegrowany czytnik kanałów RSS, zakładki ułatwiające przeglądanie wielu stron na raz, klienta pocztowego, klienta IRC i wiele przydatnych funkcji.
Jeśli kiedykolwiek rozważaliście wypróbowanie Opery, ale odstraszała Was cena, to teraz jest najlepszy moment aby to nadrobić.
21 WrzesieĹ, 2005