Archive for the 'php' Category


Zmiany, plany, status 1

Przepraszam za taką przerwę w postach drodzy czytelnicy. Dużo się działo, wiele się zmieniło w moim życiu.

Pierwszą rzeczą jest to, że w końcu odnalazłem szczęście u boku wspaniałej kobiety, która jak to mówił Ten Typ Mes:

“…dodaje pierwiastek kobiecości do rozmów, nie tylko do ciastek…”

Budzenie się rano z myślą o kimś, który potrafi tak naładować mnie pozytywną energią sprawia, że staje się lepszym człowiekiem.

Kolejną zmianą w moim życiu jest zakończenie etapu freelancera. W poniedziałek rozpoczynam pracę, na etacie. Niestety nie mogę zdradzić gdzie, ponieważ obowiązuje mnie klauzula poufności. Teraz kończę wszystkie projkety, których się podjąłem w ostatnim miesiącu, bo obowiązuje mnie klauzula o zakazie konkurencji.

Przejdźmy zatem do planów. Długie lata temat pracy magisterskiej wydawał mi się sprawą tak abstrakcyjną, że nigdy nie brałem tego pod uwagę. Staneliśmy przed problemem wyboru tematu (Ja i Maciek, z którym to będziemy pisali pracę). Po burzy mózgów doszliśmy do następujących wniosków:

Technologie:

  • PHP – phpAMF  remoting funkcji z php
  • FlashVideo – odtwarzanie vido
  • FLEX – Podstawa aplikacji GUI + Upload Plików
  • MySQL – przechowywanie testów jak i ich wyników

Opis aplikacji:

  1. Tworzenie Testu
    1. Upload pliku z wykładem (vido)
    2. Konwersja server-side avi, mpg, wmv do flv
    3. Ustawianie czasu wyzwalaczy, które będą uruchamiały pytania podczas oglądania materiału
    4. Dodawanie pytań, ustawianie poprawnych odpowiedzi (test jednokrotnego/wielokrotnego wyboru)
    5. Testowy Test, zapisanie drzewa XML do bazy danych
  2. Przeprowadzanie Testu
    1. Materiał Video jest odtwarzany
    2. Odtwarzacz dochodzi do wyzwalacza gdzie znajduje się pytanie
      1. Kontrolki Playera są blokowane
      2. Można jedynie odpowiedzieć na pytanie
      3. Odpowiedź na pytanie jest zapisywane do bazy danych
      4. Odblokowanie kontrolek playera i wznowienie playbacku
    3. Po zakończeniu odtwarzania filmu wyświetla się podsumowanie z wynikiem testu, oraz propozycjami fragmentów, które wypadało by powtórzyć
  3. Statystyki grupy studentów
    1. Informacje dla wykładowcy o najsłabiej opanowanym materiale przez grupę itp.

Po dalszych ustaleniach z promotorem, rozszerzyliśmy zakres funkcjonalności o plugin do systemu e-learningowego OpenSurce o nazwie OLAT, który jest rozwijany na uniwersytecie w Zurychu.

Co do statusu, to co rano budzę się z kacem od YouTube Data API, oraz os-commerce bo muszę freelance skończyć, nim podpiszę umowę.

Pozdrawiam,

mGz

Środowisko Webdevelopera comming soon 0

Witam wszystkich czytelników. Nadchodzi wielkimi krokami dzień publikacji artykułu o środowisku webdevelopera. Tekst jest już napisany. Linki do stron z dodatkowymi zasobami już są. Teraz muszę porobić screenshoot’y, sprawdzić pisownię i można publikować.

Tymczasem w piątek mam jak narazie najważniejszy egzamin w życiu (Licencjacki), więc datę publikacji mogę przybliżyć do przyszłego weekendu.

Ponad to muszę jeszczę edytować obecny theme wordpressowy, ponieważ jest problem z kolejnymi stronami wpisu. I muszę dodać nawigację między stronami artykułu.

Mam nadzieję, że ktoś to przeczyta w całości bo jest dosyć długie :-) . Grupę docelową stanowią zarówno początkujący jak i bardziej zaawansowani  programiści aplikacji webowych (mowa przedewszystkim o php)

zdrowietouroda.pl 2

Już wszystko zanosiło się na finał projektu zdrowietouroda.pl. Strona jest już opublikowana. Jest sklepem w 80% gotowym. Trwają prace nad seo. A tu nagle dzisiaj pod wieczór. Hasło dostępu do panelu admina na nazwa.pl oraz dostępu do ftp zostało zmienione. Ktoś się włamał? Nie sądzę. Klient się wycofuje? Niemożliwe, bo nie jest w stanie znaleźć nikogo kto za 800 zł dokończy mu te 20% sklepu. Jak narazie czekam na odpowiedź od klienta i zobaczę co się będzie działo dalej. Sklep ma kilka feature’ków na nieuczciwych klientów. Stratny nie będę. Bo gotowy skrypt sklepu mam i już mam kilku znajomych którzy chcą nabyć go u mnie.

wordpress update. 0

Udało się w końcu dokonać update’u wordpressa. Zmieniłem skórkę tymczasowo bo dotychczasowa się wysypywała. Teraz jest plan stworzenie własnej skórki. Rozpocząłem prace nad layoutem. Będzie podobny do mmx3.pl więc czeka mnie jeszcze integracja stronki. Pozdrawiam

Google maps Guru! 0

W firmie uzyskałem miano Guru Guielowych maps :) . Teraz każdy projekt który jest bliżej lub bardziej związany z Google Maps Najpierw jest konsultowany ze mną.

Prócz googlemaps.com guru pobiłem kolejny rekord w kodowaniu weekendowym. Motywowany kontrolą u klienta, który dostał dofinansowanie na sklep internetowy z urzędu miasta. Napisałem 80% silnika sklepu w drobne 48 h (może 30h pracy). Nowy rekord. Rekord już dostępny do oglądania na: zdrowietouroda.mmx3.pl (wersja robocza, css trzeba dokończyć, po dokładać zdjęcia do artykułów oraz napisać jeszcze logowanie, koszyk, rejestracje i panel admina).

Nie ma co narzekać na prace więc blog z EMO/mobber-blog stał się DEV-blog. Chyba zmiana na lepsze. A tak z planów na przyszłość. To znowu gonią mnie deadline. Mam kolejne zlecenia i w mojej dobie która ma z 25 godzin już zaczyna brakować czasu na 3 h snu.

Szykuje się sylwester w Zakopanem na desce. Rezerwacja jest. Więc będą nowe foty na plfoto.com. Bo nie mam  teraz nawet czasu na obrobienie, wykadrowanie zdjęć co już leżą na dysku i wrzucenie ich do profilu. Kiedyś to były czasy… Czekało się te 24 h żeby dodać nowe zdjęcie.

geolokalizacja by googlemaps 0

Były już mapy googla i kożystanie z API googlemaps. Teraz nadszedł czas na geolokalizacje. Google oferuje bardzo dokładny skrypt geolokalizacji. A korzystanie z niego wygląda mniej więcej tak:

$szukana_lokalizacja = "Poznań, Plac Andersa";
$fd = fopen("http://maps.google.com/maps/geo?q=".urlencode($szukana_lokalizacja)."&output=csv&key=TWÓJAPIKEY", "r");
$data = fread($fd, 5000); // od filesize($fd) nie działa
$data = explode(",", $data);
//print_r($data);
//$data[0] to odpowiedź http jeśli 200 to jest ok
if($data[0] == 200) {
 $y = $data[2]; // szerokość
 $x = $data[3]; // długość
}
fclose($fd);

Można oczywiście prasować wielkiego XML’a w którym jest dokładna lokalizacja po stan/województwo itp. wystarczy zmienić output na xml.

Więcej do poczytania na:

Wolontariat. 1

Jak już wszyscy pewnie wiedzą o tym, że każdy developer biegnie w wyścigu szczurów. Na ślepo goni za pieniędzmi. No to teraz się rozczarują. Zrobiłem coś charytatywnie. Jest to strona na moim CMS’ie dla zaprzyjaźnionej drużyny harcerskiej. 223 PDH Contrast. Również hosting zapewniłem im na moim serwerze.

Zapraszam na:

http://233pdhcontrast.pl/

Pozdrawiam,

Max

google maps 0

Zatem stałem się specjalistą od AJAX’a i Google Maps. Do portalu muzhi.com(domena jeszcze nie podpięta) Dopisałem kolejny klon twittera znany pod nazwą twittervision.com

Wersja jeszcze jest rozwojowa. Więc nie czepiajcie się o drobiazgi. Działa poprawnie. Ajax napisany z ręki, do pharse’owania xml’a użyłem zintegrowanej biblioteki googla GXml. Wszystko to dostępne pod adresem:

map.logbox.cn

Zapraszam i Pozdrawiam,

Proporcjonalny resize obrazów. 2

Prosty skrypt, który zwróci obraz zmniejszony do odpowiednich rozmiarów zachowując jego proporcje.

function new_picture_size($max_w, $max_h, $path){
	$size = getimagesize($path);
	$w = $size[0];
	$h = $size[1];
	$nw=$w;
	$nh=$h;
	$wx = $max_w/$w;
	$wy = $max_h/$h;

	if(($w <= $max_w)&&($h <= $max_h)) {
 		$nw = $w;
 		$nh = $h;
 	}else if((($wy * $h)<=$max_h)&&(($wy * $w)<=$max_w)) {
 		$nh = ceil($wy*$h);
 		$nw = ceil($wy*$w);
 	}else if((($wx * $h)<=$max_h)&&(($wx * $w)<=$max_w)){
 		$nh = ceil($wx*$h);
 		$nw = ceil($wx*$w);
	}else{
		if($wx<$wy)
			$wyzn = $wx/2;
		else
			$wyzn = $wy/2;

		$nh = ceil($wyzn*$h);
 		$nw = ceil($wyzn*$w);
	}

	$s = array(0=>$nw, 1=>$nh, 2=>$w, 3=>$h);
	return $s;
}

np.

$dim =new_picture_size(400,50, "obrazek.jpg");
echo("nowa szerokość to: ".$dim[0]." px");
echo("nowa wysokość to: ".$dim[1]." px");
echo("stara szerokość to: ".$dim[2]." px");
echo("stara wysokość to: ".$dim[3]." px");

Przydatne. Napisane dawno temu. Odkurzone dzisiaj. Z tymi wynikami możemy sobie spokojnie wywołać funkcje resiz’u np:

imagecopyresampled($newpic, $oldpic, 0, 0, 0, 0, $dim[0], $dim[1], $dim[2], $dim[3]);

Roman2Decimal 9

Ujawniam tajemnice firmy Komputronik S. A. Publikuje kod, jaki był do napisania w trakcie rekrutacji na php developera w komputroniku:

zamiana liczb rzymskich na liczby dziesiętne w php

<?
function convert($string) {
	$roman = array('I'=> '1','V'=>'5','X'=>'10','L'=>'50','C'=>'100','D'=>'500','M'=>'1000');
	for($i=0; $i<count($string); $i++) {
		$string[$i] = strtr($string[$i], $roman);
	}
	return $string;
}
function sumuj($tablica) {
	for($i=0; $ i< count($tablica); $i++) {
		if(isset($tablica[$i+1]) && ($tablica[$i]<$tablica[$i+1])) {
			$suma += $tablica[$i+1] - $tablica[$i];
			$i++;
		}else{
			$suma += $tablica[$i];
		}
	}
	return $suma;

	}

$string = array('M','I', 'M');
if(!is_array($string))
	$string = explode(' ',$string);
echo("<pre>");
print_r($string);
echo("</pre>");
$roman = array('I','V','X','L','C','D','M');
for($i=0; $i<count($string); $i++) {
	if(!in_array($string[$i], $roman))
		break;
	else{
		$tab = convert($string);
		echo("<pre>");
		print_r($tab);
		echo("</pre>");
		$suma = sumuj($tab);
		echo("<b>".$suma."</b>");

	}
}

?>