May
29
2005
Filed under Ogólne by Łukasz Dywicki
Jakiś czas temu na PHP.pl ukazał się news na temat techniki AJAX. Na forum zauważyłem temat w którym autor pytał o opinie na temat strony wykonanej w SAJAX-ie (zobacz temat[1], i stronę[2]).
Nie mniej zainteresował mnie bardziej JPSPAN, który umożliwia odwoływanie się do klas PHP. Jako, że ja mam zawsze spóźnioną reakcję dopiero w zeszłym tygodniu zacząłem się bawić.
Pierwsze co zrobiłem to alert tekstu zwróconego z klasy Hello. Następnie sprawdzenie jak wygląda tablica z serwera w przeglądarce. Okazało się, że identycznie.. jedyny problem jaki powstaje to wyjątki. Trzeba je zwracać poprzez specjalną klasę/funkcję.
Postanowiłem zrobić przeglądarkę plików, ale mam poważne problemy – raz nie działa pod IE, dwa pod Operą, trzy nie mogę pokolorować składni, ponieważ wyskakuje błąd (serwera!?) “unterminated string literal while halling mojametoda”… Wysiadam po prostu.
May
24
2005
Filed under .NET by Łukasz Dywicki
Jakiś czas temu postanowiłem zamówić Visual Studio. Nie musiałem długo czekać aby je dostać.
Muszę przyznać, że byłem mile zaskoczony. Kurier dostarcza przesyłkę prosto do domu, wszystko co trzeba zrobić to (najpierw) się zarejestrować a potem podpisać potwierdzenie odbioru.
Wewnątrz koperty znalazłem bardzo ładne pudełko. Muszę przyznać, że wywiera ono bardzo dobre wrażenie. Ciemna zieleń mile się komponuje z białym napisem Visual Studio 2005 Beta 2. W środku znajdują się 4 krążki DVD, które już tak estetyczne nie są. Srebrne z czarnymi napisami i zielonymi puzzlami. Srebrne z czarnymi napisami i zielonymi puzzlami. Za to na pocieszenie estetów dodano dwie ulotki w kolorze okładki (w tym jedna ze świetną larwą). Krążki zawierają kolejno Visual Studio Team Suite, Visual Studio Team Fundation Server oraz SQL Server 2005 Developer Edition (dla Windows Server 2003). Ostatni z wymienionych krążków jest najbrzydszy – białe, przechodzące w szare tło i czarne napisy. Fuj! Dodatkowo w pudełku jest jeszcze jedno DVD zatytułowane wefly247.net. Nadruk na płytce głosi, że znajduje się na niej “Wszystko czek potrzebuje developer do tworzenia aplikacji w Visual Studio” (możliwe że skłamałem bo to moje tłumaczenie).
Nie zwlekając włożyłem pierwsze DVD do nowego napędu. Kilka kliknięć na odczepne (instaluj, tak, zgadzam się) wyskoczył alert – nie masz SP 2. Kurde skąd ja wezmę SP 2? Pierwsze co microsoft.com -> order SP 2. Płytka powinna już wędrować do mnie.. no ale tak długo nie mogłem czekać. Udałem się do zaprzyjaźnionego sklepu komputerowego z okupem (2 filmy) i poprosiłem w zamian o Service Packa. Transakcja przeszła bez zakłóceń.
Po powrocie do domu szybka instalacja SP, restart. Po uruchomieniu systemu wkładam DVD, znowu 3 kliknięcia, przechodzimy dalej. Okazuje się, że mam za mało miejsca na partycji systemowej (jest 690 megabajtów, potrzeba jeszcze 900!). Porządkowanie dysku, usunięcie Open Office’a i replay. W dalszym ciągu brakuje miejsca.. nie pozostało nic jak zmienić opcje instalacji. Po wszystkim. Na C: został Framework i SQL Server, reszta powędrowała na partycję F. Po instalacji ubyło 3.5 GB wolnego miejsca.
Pierwsze odpalenie i nie widzę nic nowego – to samo co w VS 2005 Express. Dodatkowe opcje to chyba możliwość pracy w grupach i odblokowanie projektów, które w expressie były zablokowane.
Sprawozdanie z tworzenia pierwszych projektów już wkrótce …
May
20
2005
Filed under Sprzęt by Łukasz Dywicki
Drugim nabytkiem jest pamięć. Byłem bardzo zawiedzony gdy nawet na najniższych detalach SWAT 4 perfidnie rwał. Nie pozostało nic innego jak dokupić ramu. Do obecnej kości Kingstone’a 256 MB / 400 MHz doszła kolejna, już nie markowa, 512 MB. Łączenie 768. SWAT od tej pory chodzi płynnie tak, że można spokojnie grać. Nie mogę się doczekać aż dostanę w swoje łapska Undergrounda 2. Jedyne, co mnie smuci to, to że system dalej uruchamia się bardzo wolno. Najwyraźniej nie pozostaje mi nic innego jak ponowna instalacja. Ale z tym chyba poczekam, ponieważ nie chce mi się na nowo instalować tego wszystkiego.
May
18
2005
Filed under Ogólne by Łukasz Dywicki
I kolejny powrót… po kilkutygodniowej przerwie wracamy do sieci. Niestety, są straty.. w wyniku awarii poprzedniego serwera (na który już nie zamierzam wracać) straciłem wszystkie dane na nim zapisane, łącznie z wpisami z bazy danych. Tak więc część postów przestała istnieć, a ja znowu zaczynam niemal od zera. Przykra sprawa, ale cóż, nic sie nie poradzi.
May
12
2005
Filed under Sprzęt by Łukasz Dywicki
Całkiem niedawno kupiłem sobie nowy napęd. Stary CD-ROM sprzedałem razem z komputerem kuzyna tak, że przez ponad dwa miesiące nie miałem możliwości zainstalowania czegokolwiek z płyty. Jako, że udało mi się zarobić parę groszy zainwestowałem w nowy napęd … DVD+/–RW. Pierwsze co zrobiłem gdy już go zainstalowałem to było nagranie filmów, które zajmują zbyt wiele miejsca. Do tego parę plików ISO pobranych z sieci i na dysku przybyło 10 GB wolnego miejsca. Nagrałem też na krążek dvd obraz Half Life’a 2, zajmujący ponad 3 GB. Z napędu jestem bardzo zadowolony. Fakt, że najszybszy nie jest (maksymalna prędkość nagrywania CD to 40x, a DVD 12x) i nie przegrywa szybciej niż Gołota, ale nie zależy mi aż tak bardzo na czasie. Zapłaciłem za ten napęd w sumie 250 zł, ale przy okazji odwiedzin w zaprzyjaźnionym sklepie nabyłem kilkanaście płyt CD i dwie DVD.
May
06
2005
Filed under Sprzęt by Łukasz Dywicki
Po bardzo długim czasie użytkowania myszy bez rolki zatrzymałem sobie staruszkę kuzyna (moja myszka powędrowała za 2 zł do kolegi).
Mysz sprawowała się dość dobrze, ale miała jedną wadę. Czasami gdy kursor stał chwilkę w miejscu zaczynał drgać. Wierzcie mi gdy się pisze na klawiaturze to drgający kursor bardzo przykuwa uwagę.
Po pewnym czasie podczas odwiedzin zaprzyjaźnionego sklepu komputerowego dowiedziałem się, że w zamian za wprowadzone niegdyś modyfikację w Os Commerce otrzymam mysz. Jak to mówi przysłowie lepszy rydz niż nic. Po kilku dniach zostałem wezwany do zaprzyjaźnionego sklepu. Czekała tam na mnie nowiutka mysz. Model był mi znany nie tylko z widzenia, ponieważ używałem identycznego podczas pracy na komputerze kuzyna. Dość spora bryła leży dobrze w dłoni. Optyka też się dobrze sprawuje dlatego też stara podkładka powędrowała do szuflady (nie wyrzuciłem jej ze względu na sentyment).
Z myszką już teraz wiąże się zabawny epizod – gdy odwiedził mnie znajomy (chciał sprawdzić pocztę) zamiast używać dużych przycisków używał małych, umieszczonych obok rolki. Skutkiem tego było „skakanie” strony z góry na dół, ponieważ miałem wtedy przypisane do tych 2 przycisków funkcję następna/poprzednia strona.
Jakież było zdziwienie znajomego gdy zobaczył, że to duże, płaskie i srebrne też można klikać trudno opisać. :)
Apr
08
2005
Filed under Inne by Łukasz Dywicki
W dalszej części posta kod bota napisanego przeze mnie w pythonie (wspomagałem się kodem beli).
import sys
import socket
import string
import time
import re #wyrazenia regularne! ;)
#ustawienia :)
class MyIrcConfig:
server = ‘ircnet.pl‘
port = 6667
nick = ‘tete‘
ident = ‘MyIrc‘
realname = ‘bot‘
channel = ‘splatch‘
#klasa do wyswietlania tekstow #TODO: mozliwosc blokowania komunikatow (tryb cichy)
class Output:
def __init__(self):
self.printer(’Test wyjscia . . .‘)
def printer(self,x):
print x #klasa do komunikacji bot<>irc
class MyIrc(MyIrcConfig):
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
output = Output()
def connect(self):
#probuj sie polaczyc
try:
self.socket.connect((self.server, self.port))
except:
self.output.printer( ‘Nie moge sie polaczyc z serweremn‘ )
#powiedz serwerowi kim jestes
self.socket.send(’NICK %srn‘ % self.nick)
self.socket.send(’USER %s %s bla: %srn‘ % (self.ident, self.server, self.realname))
self.output.printer(’Connected to irc servern‘)
self.output.printer(’user "%s" (%s@%s * %s)‘ % (self.nick, self.ident, self.server, self.realname))
#odczyt serwera
def read(self):
data = self.socket.recv(1024)
self.output.printer(data)
return data
#wejdz na kanal
def join(self):
self.socket.send(’JOIN #%srn ‘ % self.channel )
#wykonaj
def write(self,msg):
self.output.printer(msg)
self.socket.send(msg) #klasa zasadnicza
class PyAeewe:
MyIrc = MyIrc()
def start(self):
self.MyIrc.connect()
while 1:
data = self.MyIrc.read()
#tutaj odbieranie MOTD itp
#jesli wszystko ok
break;
self.MyIrc.join() #wskocz na kanal
while 1:
data = self.MyIrc.read()
#daj mozliwosc wykonywania komend
try:
#data = raw_input(’Komenda: ‘)
#self.MyIrc.write(data)
self.MyIrc.output.printer(data)
except:
self.MyIrc.output.printer(’Blad‘)
aeewe = PyAeewe()
aeewe.start()
Mar
16
2005
Filed under PHP by Łukasz Dywicki
Od niechcenia spojrzałem dzisiaj na forum. I co widzę? Temat (php) Problem – regexy. Jako, że mam jako-takie pojęcie na temat regexpów to zobaczyłem o co chodzi. Okazało się, że to nic wielkiego, problem ze zmianą [[link]] na wersję zdatną do klikania. Jedynym problemem było to, że drugi parametr jest opcjonalny. Zacząłem myśleć, już po chwili miałem gotowy wzór, który pasował do [[link]] oraz [[link|opis]]. Zastanawiało mnie jedno – czy da się wykorzystać w preg_replace; ten wzór.. Niestety nie udało mi się do tego dojść mimo lektury bardzo dobrego poradnika na temat wyrażeń. Udało mi się w końcu zrodzić drugi wzór, znacznie bardziej skomplikowany, na zasadzie pod-wyrażeń warunkowych.
<?php
// tekst do przerobki $text = '[[link|tata]]';
// wersja z podwyrazeniami (niezaimpletowana w funkcji)
$regexp = '/(?(?=[[(?:.+)|(?:.+)]])[[(.+)|(.+)]]|[[(.+)]])/';
// wersja alternatywna;)
$regexp = '/[[(.+?)(?:|(.+))?]]/';
$tex2 = preg_replace_callback($regexp,'wiki_link',$text);
function wiki_link($mat) {
if (sizeof($mat) == 3) {
// jest drugi parametr - [link|opis]
return '<a href="'. $mat[1] .'" title="'. $mat[0] .'">'. $mat[2] .'</a>';
}
return '<a href="'. $mat[1] .'" title="'. $mat[0] .'">'. $mat[1] .'</a>';
}
?>