wtorek, 22 września 2009

FlashDevelop 3.0.4 RTM

Nowy FlashDvelop jest dostępny pod tym adresem.

poniedziałek, 21 września 2009

Windows 7 i RAID 1

Na weekendzie stawiałem Windows 7 na swoim komputerze stacjonarnym gdzie mam 2 dyski spięte w RAID1. Standardowo przy tego typu akcjach gdzie posiada się "nietypową" konfigurację sprzętową - a raczej powinna być to już jako typowa ponieważ dużo płyt głównych oferuje wejścia sata na których można skonfigurować RAID obsługiwany przez chipset na płycie głównej - wymagana jest ręczna instalacja sterowników do obsługi RAIDu. Jednak nie w Windows7 :D

Windows 7 podczas instalacji na konfiguracji sprzętowej gdzie występuje połączenie dysków RAIDem samodzielnie wykrywa dyski RAIDowe. Jak bardzo mi tego brakowało :-) Co dziwniejsze prędzej bym się spodziewał wsparcia dla RAID po Linuxie a nie po produkcie M$ :-) Ale nie ma co narzekać, trzeba się cieszyć :D Dziwie się sam sobie, że to mówię ale: "M$, good job!".

czwartek, 17 września 2009

Free charts - axiis

Znalazłem ciekawy projekt darmowych wykresów dla Flexa http://www.axiis.org/. Dosyć ciekawe wykresy ale skomplikowane kody ;-)

wtorek, 15 września 2009

Windows 7 - instalacja Flash Player - error NPSWF32.dll

Ostatnio natknąłem się na error podczas instalacji wtyczki Flash Player w wersji Debugger na OS Windows 7 PRo:
Rozwiązaniem jest ręczne usunięcie pliku C:\Windows\SysWOW64\Macromed\Flash\NPSWF32.dll plus odpaliłem uninstaller FP Plugin.

Przyczyną prawdopodobnie są otwarte programy (oprócz przeglądarek) które używają pliku a o których zamknięcie nie dopomina się instalator.

poniedziałek, 14 września 2009

Monopoly City Streets

Grałeś kiedyś w Eurobiznes lub Monopoly ? Teraz Google wprowadziło grę online bazująca na prawdziwej mapie świata ! Wystarczy założyć konto i już możesz kupić ulicę na której mieszkasz. Ktoś był szybszy ? Nie martw się i bądź czujny gra zostanie zresetowana we wtorek lub środę. W pierwszych godzinach po uruchomieniu dopchanie się do serwera graniczyło z cudem. Nawet oficjalny blog nie wyrabiał z obsługą chętnych do jego czytania. Po kilku dniach od startu są gracze którzy operują bilonowymi kwotami posiadając np: zaledwie 3 ulice. Taki wynik to oczywiście wynik oszustw. Reset gry i jej uruchomienie w nowej udoskonalonej wersji ma utrudnić działanie takim "cwaniaczkom". Przygotuj się więc, nic straconego. Zapraszam na forum o grze.
Gra jest dostępna pod adresem www.monopolycitystreets.com

niedziela, 13 września 2009

ExportProject plugin

To czego mi bardzo brakowało we FlashDevelopie, czyli eksport archiwum, dokumentacji, podglądu html i paru innych :) Niesamowity plugin oferujący podstawowe funkcje których tak brakowało samemu FlashDevelopowi :)
ExportProject

ExportSWC - FlashDevelop 3

Jeden z przydatniejszych pluginów do poczciwego FlashDevelopa 3. ExportSWC umożliwia kompilację projektu do paczki SWC.

Statystyki kodu w FlashDevelopie

Ponieważ naszła mnie wena na rozpisywanie się odnośnie wtyczek do FlashDevelopa, postanowiłem napisać o bardzo przydatnej wtyczce SourceCodeStatistics. Dzięki niemu dostępna jest dokładna statystyka kodu projektu. Niezwykle użyteczny plugin dla ogólnego podglądu :)

Mozolna konfiguracja AIR w FD

Mozolna konfiguracja AIR w FlashDevelopie dzięki temu pluginowi wcale nie musi być taka mozolna :D Świetny dodatek który pozwala na konfigurację aplikacji AIRowej w środowisku graficznym :-)

Pilnuj prawidłowego kodu - FlashdevelopPMD

Dość ciekawy plugin dla FlashDevelop 3 pilnujący stylu programowania deva :D Dokładnie tak, ta dodatkowa wtyczka przestrzega przed złymi nawykami programistycznymi :D
http://www.flashdevelop.org/community/viewtopic.php?f=4&t=5403

Refaktoryzacja kodu w FlashDevelop 3?

Dopiero co znalazłem formattera a tym czasem trwają prace nad refaktoryzacją kodu :D Niesamowicie dobre wieści. Czyżby community FD zakasało rękawy i wyrośnie poważny darmowy konkurent FDT? :)
http://www.flashdevelop.org/community/viewtopic.php?f=4&t=5283

Formatowanie kodu nie tylko dla Eclipse

Dzisiaj natknąłem się na bardzo użyteczny plugin dla FlashDevelop 3 :) Dzięki paru dodatkowym dll mamy ładne formatowanie kodu mxml, as3, xml :D

Źródło: http://www.flashdevelop.org/community/viewtopic.php?f=4&t=5208

piątek, 11 września 2009

Instalacja PL w Windows 7 Professional

Użytkownikom Windows 7 Ultimate oferowana jest zmiana wyświetlanego języka po przez Panel Kontrolny. Wersja Windows 7 Professional niestety została okrojona z tej funkcjonalności. Jest sposób na instalację paczki językowej pl.cab bez ponownej instalacji systemu z płyty ze zintegrowanym polskim pakietem językowym. Jak to zrobić?

 W trybie administratora w CMD wpisać:
  • DISM /Online /Add-Package /PackagePath:[ścieżka do lp]
  • bcdedit /set {current} locale pl-PL
  • bcdboot %WinDir% /l pl-PL //mi nie zadziałała komenda, lecz wszystko działa prawidłowo i jest spolszczone

Teraz uruchamiamy program regedit i usuwamy wpis en-US znajdujący się w:
HKEY_LOCAL_MACHINE/SYSTEM/Current/Control/Set/Control/MUI/UILanguages

Jeśli wszystko zostało wykonane prawidłowo po ponownym uruchomieniu komputera Windows powita nas polskim komunikatem ;-)

wtorek, 8 września 2009

Chcesz podróżować w czasie?

Teraz to możliwe, niestety tylko w internecie i w ograniczonym zakresie ale naprawdę warto. Dzięki bardzo szybkiej podróży możemy nie tylko poczytać newsy np.z 2/03/1998 ale również docenić pracę ówczesnych webmasterów. Standardowe prędkości przesyłu danych za pomocą wydających kosmiczno-modularne dźwięki modemów, wahały się w granicach 56 kb. Umieszczenie każdego obrazka wymagało zapewne konsultacji i badań nad wpływem na czas ładowania strony (-;. Banery z animowanych gif-ów. Ehhh to były czasy ... www.archive.org.

poniedziałek, 7 września 2009

Darmowe subversion do projektów komercyjnych

Od jakiegoś już czasu korzystam z darmowej kontroli wersji na XP-Dev.com. Usługa udostępniana kompletnie za free i na bardzo przyjaznych warunkach. Nie kradną kodu, nikt nie ma do niego wglądu itp :) Na start mamy dostępnej 500MB przestrzeni i backup na żądanie. Za roczną opłatą 40$ mamy zwiększony limit do 2000MB i backup robiony na bieżąco.
Przetestowany i gorąco polecam :) Zwłaszcza po wykupieniu aktualizacji :)

Problemy z HDD Samsunga

Jeśli macie problem z dyskiem, przed wysłaniem do serwisu należy dokonać pełnej diagnostyki. Tutaj z pomocą przychodzi ES-tool. Bardzo dobre narzędzie diagnostyczne. Testuje wszystkie aspekty dysku, ponad to umożliwia formatowanie niskopoziomowe - i żegnajcie wirusy - oraz modyfikacje parametrów dysku.
Program należy nagrać na FDD lub CD-ROM w wersji bootowalnej. Na szczęście w wersji CD-ROM dostępny jest obraz który wystarczy wypalić na płycie.
Zamiast panikować i kombinować z setką dostępnych programów narzędziowych, najlepiej zacząć od tego przydatnego programiku.

piątek, 4 września 2009

Kodowanie znaków amfphp & mysql

Przechodząc od razu do rzeczy, kodowanie bazy i tabel należy ustawić na utf_polish_ci - jeśli aplikacja będzie używała jedynie języka polskiego, jeżeli nie utf_general_ci - natomiast w serwisach phpowych łączyć się z bazą danych w następujący sposób:

mysql_connect( $host, $user , $pass );
mysql_select_db( $dbase ); 

@mysql_query("SET NAMES 'utf8';");
@mysql_query('SET CHARACTER SET utf8;');
 Dzięki mooska za refresh :D

W bramce komentujemy zmianę kodowania w locie. Tutaj nam się to nie przyda ;-)

[AS3] Walidacja e-maila w 2 linijkach

To nie żart :) Wystarczy posłużyć się tym kodem:

var regexp : RegExp = new RegExp( '^([a-zA-Z0-9]+[a-zA-Z0-9._%-]*@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}) , 'i' ) ;
regexp.test( emailText.text ) ;

Zapis logów do pliku w PHP

Ostatnio napisałem sobie Loggera w PHP. Prosta aczkolwiek bardzo przydatna klasa. Poniżej zamieszczam pełny kod.

<?php
define( 'LOGGER_NEW_LINE' , "\r\n" ) ;

class Logger
{
/**
* Jedyna instancja klasy
* @var Logger
*/
private static $_instance = null ; 

/**
* Zwraca jedyną instancję klasy
* 
* @return Logger
*/
public static function getInstance()
{
if( is_null( self::$_instance ) )
{
self::$_instance = new Logger() ;
}

return self::$_instance ;
}

private $absolute_path ;
private $logs_path ;
private $date ;
private $log_file ;

/**
* W konstruktorze następuje połaczenie z bazą danych.
* 
* @return Logger
*/
private function __construct()
{
$this->absolute_path = dirname( __FILE__ ) . '/' ;
$this->logs_path = $this->absolute_path . 'logs/' ;
$this->date = date( 'Y_m_d' ) ;
$this->log_file = $this->logs_path . 'logs_' . $this->date . '.log' ;

$this->clearOldLogs( 5 ) ;
}

/**
* Usuwa stare pliki logów
* @return unknown_type
*/
private function clearOldLogs( $maxHistory )
{
$files = glob( $this->logs_path.'*.log' ) ;

$this->log( $files , __FUNCTION__ , __CLASS__ , __FILE__ , __LINE__ ) ;

// przerwanie usunięcia jeśli plików jest zbyt mało
if( sizeof( $files ) <= $maxHistory )
return ;

for ($i = 0; $i < sizeof( $files ) - $maxHistory; $i++ )
{
unlink( $files[ $i ] ) ;
}
}

/**
* Zapis danych do pliku
* @param $data        Dane do zapisania w logu
* @param $function    Zawsze jako parametr podawać __FUNCTION__
* @param $class    Zawsze jako parametr podawać __CLASS__
* @param $file        Zawsze jako parametr podawać __FILE__
* @param $line        Zawsze jako parametr podawać __LINE__
*/
public function log( $data , $function , $class = null , $file = null , $line = null )
{
ob_start( $log_str ) ;
echo date( 'H:i:s' ) , '    ' , $class , '::' , $function , '    in    ' , $file , '    on line    ' , $line , LOGGER_NEW_LINE ;
var_dump( $data ) ;
echo LOGGER_NEW_LINE , LOGGER_NEW_LINE ;
$log_str = ob_get_contents() ;
ob_end_clean() ;

$log_str = str_replace( array( "\r\n" , "\n" ) , LOGGER_NEW_LINE , $log_str );
file_put_contents( $this->log_file , $log_str , FILE_APPEND ) ;
}
}

?>

A o to przykład użycia:

Logger::getInstance()->log( $someData , __FUNCTION__ , __CLASS__ , __FILE__ , __LINE__ ) ;

Logger zapisuje dane w formie wyświetlanej przez funkcję var_dump.

Mapowanie klas w amfphp i AS3

Ponieważ niektórym się zapomina - mi w sumie też - dodawać magiczną linijkę w klasach VO postanowiłem napisać tego posta. Potraktujcie to jako how-to. Pomijam wszelkie zbędne linijki kodu jak includy, importy, pakiety, itp :)

Zacznijmy od kodu w PHP:
  • klasa obiektu VO
class UserVO
{
public $_explicitType = 'vo.UserVO' ;

public $login ;
public $pass ;
}
  • klasa serwisu amfphp
class User
{

public function getUserData()
{
$user = new UserVO() ;
$user->login = 'myLogin' ;
$user->pass = 'myPass' ;
return $user ;
}
}
Z tego co widać jest to bardzo prosty kod. Metoda getUserData zwraca na sztywno obiekt klasy UserVO. Uwagę należy zwrócić na właściwość $_explicitType. Tutaj wpisujemy alias jakiego będziemy używać po stronie flasha dla danej klasy w amfie.

Pora na kod AS:
  • odpowiednik phpowej klasy UserVO
public class UserVO
{
public var login : String ;
public var pass : String ;
}
  • niezbędny kod do pobrania obiektu UserVO
registerClassAlias( 'vo.UserVO' , UserVO ) ; 

var nc : NetConnection = new NetConnection ;
function result( o : Object ) : void
{
var user : UserVO = o as UserVO ;
trace( user ) ;
}
nc.call( 'User.getUserData' , new Responder( result , null ) ) ;
Ważna rolę odgrywa tutaj metoda registerClassAlias która odpowiada za rejestrację aliasu użytego w klasie UserVO, a tym samym prawidłowe mapowanie przesłanych danych na obiekt UserVO we flashu.