Archive for Applications

Świadomość wyboru

2007-10-06 12:34

Każdy programista posługuje się zestawem narzędzi służącym mu do pracy: językiem programowania, środowiskiem developerskim, kompilatorem, debugerem, itd. Są to takie same atrybuty jak ołówek dla rysownika czy hebel dla stolarza. Jako podobne do takich właśnie przedmiotów produkty, mogą być one oceniane pod względem różnych kryteriów, w tym najważniejszego – użyteczności.

Narzędzia, jakimi się posługujemy jako koderzy, powinny więc być przede wszystkim adekwatne do sytuacji, w której się znajdujemy. Zawsze bowiem tworzymy coś przeznaczonego do działania w określonym kontekście – środowisku, platformie sprzętowej czy we współpracy z innymi programami. Jednocześnie nakładamy też pewne wymagania na produkt wynikowy czy też na sam proces jego tworzenia.
Możemy na przykład chcieć, by był on maksymalnie efektywny albo zajmował jak najmniej pamięci operacyjnej. Innym wymaganiem może być szybkość realizacji projektu – co zwykle oznacza, że pisząc nasz program, chcemy namęczyć się jak najmniej i skorzystać z jak największej ilości istniejącego już kodu. Wreszcie może nas interesować też elegancja wynikowego kodu źródłowego – chociaż na nią największy wpływ mamy sami.

W teorii właśnie takimi przesłankami powinniśmy kierować się, gdy przychodzi nam wybrać narzędzie (na przykład język programowania) pomocne w tworzeniu. Oczywiście możemy do nich dodać własne – łącznie z tym dla niektórych najważniejszym: czy dane narzędzie znam wystarczająco dobrze i/lub czy chcę się go (pod/na)uczyć. Grunt żebyśmy byli świadomi powodów, dla których decydujemy na taki a nie inny wybór.
Dotyczy to nawet tych mniej racjonalnych powodów w rodzaju: “bo ‘wszyscy’ tego używają”, “bo dany język/biblioteka/itp. po prostu mi się podoba”, “bo przyjemnie mi się w tym pisało”, itp. Nie muszą one wcale być gorsze od tych solidnie ufundowanych i sprawdzonych argumentów. Jeżeli bowiem żadne zewnętrzne i niezależne od nas okoliczności nas nie ograniczają, powinniśmy dążyć do jak największej satysfakcji z tworzenia – zarówno z samego procesu, jak i z osiąganych rezultatów.

Tags: ,
Author: Xion, posted under Applications, Programming, Thoughts » 9 comments

Pomocna małpa

2007-10-04 16:56

Eksperymentując z grafiką 3D bardzo często zachodzi potrzeba napisania i przetestowania programu testującego jakąś konkretną technikę zrobienia czegoś – na przykład powierzchni odbijającej światło czy rzucania cieni. Można w tym celu stworzyć jakiś szablon przykładowego programu, który będziemy odpowiednio modyfikować. Nie będzie to zwykle wygodne, chyba że naprawdę się postaramy (czytaj: poświęcimy dużo czasu na rzecz nie do końca potrzebną).

Logo RenderMonkeyIstnieje aczkolwiek inne rozwiązanie i jest nim skorzystanie z wyspecjalizowanej aplikacji, jak na przykład RenderMonkey stworzonej przez ATI i dostępnej za darmo. Jest to coś w rodzaju wirtualnego środowiska dla programowania grafiki (czyli shaderów) działającego jednak na zupełnie realnym urządzeniu – przy użyciu DirectX lub OpenGL.
Ma ono całkiem spore możliwości oraz udostępnia sporą wygodę w testowaniu różnych efektów opierających się na ustalonych parametrach. O ile w kodzie zmiana jakiejś wartości wymagałaby zwykle rekompilacji, o tyle tutaj można taką wartość (zmienną) odpowiednio oznaczyć i modyfikować jej wartość przy pomocy graficznego interfejsu, natychmiast podglądając rezultat.

Screen z RenderMonkey Screen z RenderMonkey

Rzeczone zmienne ostatecznie mają po prostu odpowiedniki w rejestrach shaderów (pisanych dla DX w HLSL). Oprócz edytowania ich RenderMonkey umożliwia też dodawanie do projektów różnego rodzaju zasobów (modeli, tekstur, itp.) oraz ustawianie ich różnych stanów. Na dodatek w pakiecie z programem jest całkiem sporo takich właśnie przykładowych zasobów.

A wady? Cóż… Mogę wspomnieć o tym, że obecnie program wykorzystuje tylko DX9, czyli niestety nie pobawimy się tymi jakże użytecznymi geometry shaderami (oczywiście przy założeniu, że nasza karta potrafi się nimi bawić :)) Ale jest i dobra strona – nie trzeba instalować Visty ;P

Eksperyment vim

2007-09-19 15:01

Ci, którzy oprócz (albo zamiast) popularnych Okienek pracują w innych systemach operacyjnych, zapewne znają pewien edytor tekstu o nazwie vim. To jeden z tych kultowych programów ery początków Uniksa, które nadal mają swoich zagorzałych zwolenników. Wśród dzisiejszych programistów nie jest on może bardzo popularny, ale przez to jego używanie czasami wydaje się być jakimś wyższym stopniem wtajemniczenia. Sam aczkolwiek znam kilku koderów, którzy się nim posługują. Parę tygodni temu postanowiłem więc sprawdzić, co w trawie piszczy i zobaczyć, czy w praktyce legendarny interfejs vima faktycznie sprawuje się tak dobrze.

Dla mniej zorientowanych wyjaśniam, że vim (podobnie jak jego poprzednik vi) to edytor tekstu oryginalnie przeznaczony do pracy w konsoli. Jego interfejs jest tak naprawdę wybitnie ascetyczny, bo oprócz treści dokumentu składa się na niego tylko jednolinijkowy wiersz statusu i poleceń, umieszczony na dole.
Cechą charakterystyczną tego edytora jest między innymi to, że wszystkie polecenia można w nim wykonać przy pomocy alfanumerycznej części klawiatury. Nawet poruszanie się po tekście jest możliwe nie tylko strzałkami, ale też klawiszami H, J, K i L! Tak działają one aczkolwiek tylko w tzw. trybie Normalnym. vim ma oprócz tego też tryb Wstawiania (bardzo podobny do zwykłych edytorów tekstu) oraz Wizualny (do zaznaczania). Przełączanie się między nimi odbywa się oczywiście za pomocą odpowiednich skrótów klawiaturowych.

gVim w trybie normalnym gVim w trybie wstawiania gVim w trybie wizualnym

Dla nowicjusza wyglądają one cokolwiek dziwnie, podobnie jak sam sposób obsługi edytora polegający właśnie na przełączaniu między trybami. Jak mówi anegdota, najprostszy sposób na wygenerowanie losowego ciągu znaków to: posadzić początkującego przed vimem i kazać mu wyjść :)
Na początek warto więc wiedzieć, że służy do tego komenda :q (lub :q!) :P Nauka reszty podstaw potrzebnych do obsługi edytora nie zajmuje zresztą wiele czasu, jeżeli zrobimy to z tutorialem dołączonym do windowsowej wersji edytora – gVim.

Jakie można z tego odnieść korzyści? Zaprzysięgli fani vima utrzymują, że używanie go znacząco zwiększa szybkość i wygodę pisania, także kodu. Rzeczywiście posiada on kilka funkcji użytecznych dla programistów – jak na przykład wyszukiwanie par nawiasów. Poza tym koderzy cały czas stukają w klawiaturę, zatem możliwość obsługi edytora kilkunastoma klawiszami umieszczonymi blisko siebie powinna teoretycznie usprawniać pracę.
W praktyce obserwowałem kilka razy programistów pracujących w vimie i nie mogłem oprzeć się wrażeniu, iż strasznie się oni męczą. Sam próbując używać tego programu do codziennej pracy zauważyłem, że zmusza on do myślenia o strukturze tekstu – słowach, linijkach – o wiele bardziej niż ‘zwyczajne’ edytory. Ostatecznie to, że vim rzeczywiście poprawia wygodę programowania nie wydało mi się wcale oczywiste.
Jest natomiast wcale niewykluczone, że ten edytor jest bardzo dobry do pisania zwyczajnych tekstów dla osób, które biegle opanowały sztukę stukania w klawisze wszystkimi palcami obu dłoni. Wówczas fakt, że nie muszą one zdejmować dłoni z klawiatury aby np. coś poprawić, jest na pewno korzystny. Kod jest natomiast znacznie mniej regularnym tekstem, a szybkość jego wpisywania ma drugorzędne znaczenie. Większość czasu poświęconego na programowanie zajmuje przecież myślenie o kodzie, a nie jego wstukiwanie.

Stąd wniosek, że znajomość vima powinna być sporym atutem każdej sekretarki. Czemu wobec tego wszyscy do pisania zwykłych tekstów używają tylko (Open)Office? ;]]

Tags: ,
Author: Xion, posted under Applications » 13 comments

Okno na pingwina

2007-09-07 17:53

Czasami przydaje się posiadanie więcej niż jednego operacyjnego na jednym komputerze. Jeżeli oba używają tego samego systemu plików, to zwykle nie ma problemu z wymianą danych.

A co zrobić, jeżeli tak nie jest – czyli na przykład chcemy dostać się z poziomu Linuxa do plików używanych w Windows lub odwrotnie? W jedną stronę jest łatwo: większość dystrybucji Linuxa obsługuje przynajmniej odczytywanie z partycji NTFS, a niektóre automatycznie montują znalezione woluminy, które korzystają z tego systemu plików.
Jeżeli zaś chodzi o operację odwrotną, to naturalne Windows nie patrzy tak przychylnie na inny system operacyjny. Wbudowana w okienka obsługa różnych systemów plików nie obejmuje ext2 i ext3, czyli tych używanych w ogromnej większości Linuksów. Tutaj mogą pomóc tylko zewnętrzne narzędzia.

Jednym z nim jest Ext2 IFS. Ma on tę zaletę, że działa jak sterownik, a nie np. wtyczka do Eksploratora, Total Commandera czy innego menedżera plików. Dzięki temu podmontowane partycje linuksowe są widoczne w całym systemie.

Partycja linuksowa pod Windows System plików ext2 pod Windows

Można z nich korzystać właściwie tak samo jak z dysków NTFS, czyli odczytywać i zapisywać pliki, katalogi, zmieniać etykiety woluminów, itp. Nie trzeba też kopiować plików tam i z powrotem, aby je modyfikować.

Sam nie używam Linuksa zbyt często, ale taki sterownik jest bardzo wygodny. Chociaż prawdopodobnie dostęp do partycji ext3 z Windows sprawia, że Linuksa uruchamiam nawet jeszcze rzadziej niż wcześniej ;)

Tags: , , ,
Author: Xion, posted under Applications » 3 comments

Office 2007 i jego pudełko

2007-08-30 19:01

Logo Office 2007Wszyscy zapewne wiedzą, że z okazji 15-lecia swojej obecności w Polsce Microsoft oferuje domową wersję pakietu biurowego Office 2007 za niecałe 200 złotych. Są w nim trzy klasyczne i najczęściej wykorzystywane programy, czyli Word, Excel i PowerPoint, oraz czwarta aplikacja – bardzo ciekawy wynalazek o nazwie OneNote. Za tę cenę (niektóre PC-towe gry kosztują niewiele mniej) to naprawdę doskonała okazja, więc oczywiście się na nią skusiłem :)

Najbardziej rzucającą się w oczy cechą tej wersji jeszcze rzecz jasna nowy interfejs, przypominający mi trochę paletę komponentów z Delphi (te same intensywne użycie zakładek). Początkowo dość ciężko się przyzwyczaić do braku paska menu i konieczności wybierania opcji z tej toolbaro-podobnej Wstęgi – jak ją MS ładnie nazwał – ale po jakimś czasie jest już nieco lepiej. Zdecydowanie ciężej nauczyć się obsługi np. edytora vi ;]

Word 2007 i jego motywy graficzne

Pośród programów wchodzących w skład pakietu najbardziej tajemniczy był dla mnie czwarty z nich – OneNote. Okazało się jednak, że jest on z nich wszystkich najprzydatniejszy :) Śmiało mogę wręcz powiedzieć, że jest to aplikacja, o której marzyłem całe życie. Jest to coś w rodzaju menedżera umożliwiającego prowadzenie wirtualnego notesu. Zawarte w nim notki można katalogować wzdłuż, wszerz i w poprzek na wszystkie możliwe sposoby, a ponadto edytować w niezwykle swobodny sposób. Nic nie stoi na przykład na przeszkodzie, żeby po prostu kliknąć gdzieś na stronie i zacząć pisać. Potem można manipulować tak powstałymi polami tekstowymi, dodawać do nich obrazki, tabele, a nawet tekst z obrazków (przy pomocy modułu OCR). Generalnie jest to świetny program do spisywania pomysłów, wstępnych szkiców, projektów, przemyśleń, idei i w ogóle wszystkiego, co tylko przyjdzie nam do głowy. A dodatkowo wszystko to jest zapisywane automatycznie w określonym katalogu (domyślnie w Moich dokumentach) i nie rozłazi się po całym systemie.

Pudełko MS Office 2007 Home & Student

I wszystko było cudownie, gdyby nie pewnie problemy przy… nazwijmy to, instalacji. No dobrze, powiem wprost – chodzi o pudełko, w którym kupuje się pakiet, a dokładniej o sposób jego otwarcia. Sprawa nie jest bowiem taka prosta, jako że spędziłem dobrym kilka minut szukając wskazówek na gładkiej powierzchni plastikowego prostopadłościanu o opływowych krawędziach. A rozwiązanie było całkiem proste: niczego się tu klasycznie nie otwiera, należy po prostu je odpowiednio… przekręcić :) Naciskamy po prostu na akcyzopodobną naklejkę na górze opakowania, przesuwamy je w prawo i voila, naszym oczom ukazuje się błyszcząca płyta DVD.
Mam nadzieję, że dzięki tej radzie ktoś zaoszczędzi sobie intensywnego główkowania, jak się do promocyjnego Office’a dobrać. A dobrać się naprawdę warto, bo taka okazja nie zdarza się często… Zapewne raz na 15 lat ;)

Tags:
Author: Xion, posted under Applications » 13 comments

Autopowitanie

2007-08-27 23:01

W programie mIRC – kliencie IRC dla Windows – możemy definiować sobie przeróżne skrypty wywoływane przez komendy rozpoczynające od znaku backslash. Zintegrowany z programem język jest wprawdzie wybitnie toporny składniowo, ale oferuje całkiem spore możliwości.

Pozwala on na przykład definiować sposób, w jaki program ma reagować na pewne zdarzenia. Tego typu odpowiedzi programujemy za pomocą wbudowanego w program edytora skryptów. Wystarczy wybrać z menu Tools | Script Editor i przejść na zakładkę Remote, by wyświetlić i edytować plik remote.ini.
Możemy tam wpisać np. taką linijkę:

  1. on 1:TEXT:hi*:#:/msg $chan hi $nick!

W ten sposób stworzymy prosty mechanizm automatycznego odpowiadania na powitania wypowiadane przez nowo przybyłych na kanał IRC. Bardzo podobnie można też – będąc opem lub halfopem – stworzyć prosty filtr wykopujący userów, którzy w wypowiedziach użyją przekleństw czy innych niedozwolonych słów.

Tags:
Author: Xion, posted under Applications, Internet » Comments Off on Autopowitanie

Sieciowa linia komend

2007-08-16 12:20

Kilka miesięcy temu odkryłem bardzo ciekawą i pomysłową usługę internetową. Można ją uznać za pewną formę wyszukiwarki ale w gruncie rzeczy potrafi ona znacznie więcej. Teoretycznie – niemal wszystko. Chodzi tu serwis o nazwie YubNub – internetowy wiersz poleceń

Ślimak YubNubaZ wyglądu strona przypomina wyszukiwarkę. W zajmującym centralne miejsce polu tekstowym nie wpisujemy jednak zapytania, tylko polecenie z ewentualnymi parametrami. Dostępnych komend jest mnóstwo i co ważniejsze, każdy może dodawać swoje własne. Ich wspólną cechą jest to, że opierają się na przekształceniu swoich parametrów na odpowiedni URL. I tak polecenie g test spowoduje przejście pod adres http://www.google.com/search?q=test – czyli wyszuka podaną frazę za pomocą Google. Mechanizm jest więc podobny do prefiksów wyszukiwania dostępnych w Internet Explorerze od wersji 5.
Cały ten kram byłby pewnie mało przydatny, gdyby za każdym razem należało ręcznie wchodzić na stronę YubNuba. Na szczęście powstało całe mnóstwo różnych wtyczek i osobnych programów, które można pobrać ze strony Installing YubNub. Osobiście używam wtyczki do domyślnej wyszukiwarki w Firefoksie i małego programiku YubNub Trip.

Poniżej zamieszczam listę kilkunastu wybranych komend. Część z nich sam wykorzystuję, a pozostałe są po prostu ciekawe :) Większe spisy są oczywiście dostępnie na stronie YubNuba.

  • Wyszukiwarki:
    • g zapytanie – Google
    • y zapytanie – Yahoo
    • brain pytanieBrainBoost: wyszukiwarka odpowiadająca na pytanie w języku naturalnym (przynajmniej w teorii ;))
    • lyric artysta lub tytuł – wyszukiwarka słów piosenek
    • thott zapytanieThottbot
  • Wiki i encyklopedie:
    • wp hasło – Wikipedia (EN)
    • wppl hasło – Wikipedia (PL)
    • wowwiki hasłoWoW Wiki
    • math hasłoMathWorld
  • Słowniki:
    • df słowo – definicje Google
    • dict słowo – słownik angielski dict.org
    • ud słowoUrban Dictionary, czyli słownik internetowego (i nie tylko) slangu
  • Dokumentacje:
    • msdn zapytanie – przeszukuje MSDN Library
    • rfc numer – wyświetla dokument RFC o podanym numerze
    • php funkcja – dokumentacja funkcji PHP
    • jd klasa – dokumentacja klas Javy
  • Inne:
    • rand (-min min -max max -num n) lub rand max – losuje n (domyślnie 1) liczb z zakresu [min; max)
    • split url, url, ... – wyświetla kilka stron w jednym oknie podzielonym na ramki
    • lynx url – pobiera ze strony sam HTML i wyświetla go w przeglądarce
    • ascii tekst – tworzy kilkanaście ASCII-artów z podanego tekstu
  • YubNub:
    • man polecenie – wyświetla opis polecenia YubNuba
    • ls (fraza) – wyświetla listę komend
    • create (nazwa) – tworzy nowe polecenie
    • url polecenie – podaje URL powstały w wyniku wykonania polecenia
    • gui polecenie – tworzy prostą stronę z GUI do wpisania parametrów polecenia
Tags:
Author: Xion, posted under Applications, Internet » 3 comments
 


© 2017 Karol Kuczmarski "Xion". Layout by Urszulka. Powered by WordPress with QuickLaTeX.com.