Tag: tools

Entries for tag "tools", ordered from most recent. Entry count: 72.

Uwaga! Informacje na tej stronie mają ponad 5 lat. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

Pages: > 1 2 3 4 5 6 ... 9 >

# Backup Script in PHP

Sun
02
Aug 2009

One of my personal security procedures is daily backup of the code I'm working on to my FTP server. This process requires packing files to an archive and upload the archive to the FTP server. Most annoying part when doing it manually was always selecting aproppriate files, without all these big temporary files and directories like Debug, Release, .ncb, .suo, .user etc.

Today in the morning I've decided to automate this backup task with a script. As I like to use PHP as shell scripting language, here is my backup script in PHP: Backup.php_. It was not a suprise for me to see that PHP already have all the functionality I need, including building ZIP archive and FTP client. Some comments to my code:

To run the script, you must have PHP installed. Then you can just enter something like this into command line:

php Backup.php D:\MyGreatProject

Or you can create BAT file to support backup of your particular project:

@php D:\Backup.php D:\MyGreatProject
@pause

After the script have been started, you have to enter "backup name". It is the name of the ZIP file that will be uploaded to FTP. Script recursively searches for files and subdirectories in the given project directory, filters them using functions FilterDir and FilterFile, packs them to a temporary archive file and then uploads the archive to the FTP server. All remaining parameters (temporary archive path, FTP hostname, login, password and remote directory) are hardcoded as constants.

When it comes to the script code, one of the issues was to ask user about the backup name using system console. PHP has an extension called Readline, but unfortunately it doesn't work on Windows. The solution was to use fgets function with STDIN constant:

print("Enter backup name (default: \"$sSuggestedBackupName\"): ");
$sBackupName = trim(fgets(STDIN, 1024));
if (!$sBackupName)
  $sBackupName = $sSuggestedBackupName;

When it comes to building ZIP archive and handling FTP connection, PHP also has extensions for that and they seem to just work in my PHP without any problems. Zip extension exposes class ZipArchive and FTP extension exposes functions ftp_, like ftp_connect or ftp_put. All is documented in the official PHP documentation.

Comments | #scripts #php #tools Share

# Dithering i inny postprocessing

Thu
11
Jun 2009

Dziś dalej bawiłem się w pisanie efektów postprocessingu. Szczególnie zainteresował mnie Dithering. Ta technika była stosowana do polepszania jakości obrazów w czasach, kiedy komputery dysponowały ograniczoną liczbą dostępnych kolorów. W szerszym kontekście Dithering oznacza celowe wprowadzanie szumów do sygnału celem zniwelowania nieprzyjemnego efektu powstającego w wyniku kwantyzacji do pewnej, małej liczby możliwych wartości (np. tylko kilka bitów na składowe RGB piksela czy próbkę dźwięku).

Dzisiejszy DirectX już nawet nie obsługuje palet, ale pomyślałem sobie, że napisanie takiego efektu renderowanego w czasie rzeczywistym za pomocą shaderów to będzie ciekawa część poznawania zagadnień związanych z tematem efektów pełnoekranowych i Non-Photorealistic Rendering.

Zasada działania takiego efektu jest stosunkowo prosta. Jeśli w kodzie shadera HLSL mamy dany kolor piksela Color.rgb, to możemy zmniejszyć precyzję każdego kanału do tylko 2, 3, 4 itd... możliwych wartości (g_DownsamplingFactor) za pomocą takiej operacji:

float Bias = 0.5;
Color.rgb = floor(Color.rgb * g_DownsamplingFactor + Bias) /
  g_DownsamplingFactor;

To 0.5 służy do zaokrąglenia części ułamkowej, zamiast jej obcięcia. Jeśli teraz to przesunięcie 0.5 zastąpimy przesunięciem losowym w zakresie 0..1 (bez wartości skrajnych), to otrzymamy Dithering. Oto efekt:

Read full entry > | Comments | #graphics #rendering #tools Share

# Zabawy z GIMP-em #1 - Bloom

Tue
02
Jun 2009

Wiadomo, że programista to nie grafik - talentu artystycznego mieć nie musi. Ale warto umieć obsługiwać jakiś program graficzny, bo jego wykorzystanie bywa przydatne i całkiem ciekawe. Na przykład za pomocą GIMP-a możemy "statycznie" uzyskiwać efekty, które na co dzień kodujemy w czasie rzeczywistym, na GPU i za pomocą wszelkich zaawansowanych technik koderskich.

Jako przykład weźmy "słynny" efekt Bloom. Do jego wykonania posłuży darmowy GIMP. Mamy zdjęcie (Warszawa, centrum handlowe Złote Tarasy):

Duplikujemy jego warstwę (Layer / Duplicate Layer). Tą warstwę wyższą przekształcamy za pomocą krzywej (Color / Curves) tak, żeby wybrać tylko jasne obszary:

Potem tą warstwę mocno rozmywamy za pomocą Filter / Gaussian Blur:

Wreszcie przestawiamy tryb warstwy (Mode w panelu Layers) na addytywny (Addition) i Bloom gotowy - wszystko świeci! :D

Comments | #graphics #tools #rendering Share

# LineCounter 2

Sun
29
Mar 2009

W ramach zabawy z nowym, darmowym Qt napisałem mały program, który jak sądzę może się przydać programistom. Służy do zliczania liczby znaków, linii i innych statystyk na podstawie plików z kodem źródłowym zawartych w podanym katalogu. Zapraszam do zapoznania się z nim: LineCounter 2.

Comments | #productions #tools Share

# Programy matematyczne

Sun
01
Mar 2009

Czasem trzeba coś policzyć. Do prostych obliczeń wystarczy systemowy kalkulator. Pewne obliczenia na wektorach i kolorach daje się zrobić za pomocą mojego GameDev Calc. Czasami potrzebne są jednak bardziej zaawansowane funkcje. Jaki program matematyczny jest dobry? Niedościgniony jest podobno Matlab, ale on niestety nie należy do darmowych. Na szczęście są darmowe programy, które do wielu rzeczy z powodzeniem wystarczą.

Pierwszy z nich to Scilab. Używa składni podobnej do Matlaba i potrafi robić dużo rzeczy. Na przykład aby znormalizować wektor i pomnożyć go przez macierz:

v=[1 2 3]
vn=v/norm(v)
M=[1 0 0; 0 0 1; 0 1 0]
v2=vn*M

Read full entry > | Comments | #math #tools Share

# Dobry hex edytor

Fri
27
Feb 2009

W życiu programisty bywa tak, że czasem trzeba obejrzeć albo zmodyfikować plik binarny. Potrzebny jest do tego specjalny edytor, który pokazuje bajty jako liczby szesnastkowe (hex). Pytanie tylko - który jest dobry? Chodzi rzecz jasna o jakiś program okienkowy dla Windows, najlepiej darmowy.

Z tego co widzę, dobrego a darmowego niestety nie ma. Dotychczas byłem zwolennikiem starego dobrego Hex Workshop (jest Shareware).

Ostatnio kolega z pracy (pozdro Bartek!) polecił mi Hex Editor Neo. Ma wersję darmową, ale niestety ona jest tak okrojona, że na niewiele się przyda. Ale już pełna wersja (można ją testować przez 14 dni) jest "wypasiona" i przewyższa funkcjonalnością Hex Workshop. W porównaniu z nim brakuje tylko zamalowania zaznaczonego fragmentu pliku na wybrany kolor.

Przy okazji ciekawostka: Hex Editor Neo pokazuje w swoim okienku taką oto informację jak na obrazku. Teraz możemy mówić: "pisząc optymalny kod pomagasz chronić środowisko" :D

A może znacie jakiś inny dobry hex edytor?

Comments | #tools #humor Share

# Nowy artykuł: Własny VFS - wtyczka do Total Commandera

Tue
24
Feb 2009

Skończyłem właśnie pisać nowy artykuł. Zebrałem w nim swoje doświadczenia z pisania wtyczki do Total Commandera do obsługi własnego formatu VFS. Zainteresowanych zapraszam do lektury: Własny VFS - wtyczka do Total Commandera.

Comments | #libraries #tools #productions Share

# Visual C++ z wiersza poleceń

Wed
03
Dec 2008

Jeśli chcemy, żeby kompilacja projektu Visual C++ była częścią jakiegoś większego procesu wsadowego, można odpalić kompilator z wiersza poleceń, z odpowiednimi parametrami. Służy do tego plik devenv.com. Składnię jego przełączników można znaleźć w MSDN w rozdziale Devenv Command Line Switches. Na przykład uruchomienie kompilacji projektu wygląda tak:

devenv.com MojaSolucja.sln /Build Debug /Project MojSilnik.vcproj

Comments | #visual studio #tools Share

Pages: > 1 2 3 4 5 6 ... 9 >

[Download] [Dropbox] [pub] [Mirror] [Privacy policy]
Copyright © 2004-2021