ParanoyaBLOG

programmare necesse est,
vivere non est necesse

 

Numer tygodnia w lotus script

 

W lotus script nie ma wyspecjalizowanej funkcji do obliczania numeru tygodnia, istnieje jednak prosta metoda na dokonanie takich obliczeń. Lotus Script posiada bardzo ciekawą funkcję Format która pozwala na ominięcie tych braków. Bez przedłużania poniżej kod:

  1. Dim nrTygodnia As Integer

  2. nrTygodnia = CInt(Format(Today(), „ww”))

 

Hmm ?

 

hmmHeh … a na rysowanie ciągle mi braknie czasu. Dlatego tym razem coś na szybkiego – coś co „ślina na język przyniesie”. Pomysł w głowie nie rodził się długo. Siedziałem i kreśliłem kółka ołówkiem niszcząc kolejną bogu ducha winną kartkę, aż coś zaczęło się wyłaniać z tego chaosu – potem już było z górki.

 

Jeden ołówek i do tego baaardzo miękki przez co całość wydaje się jakby nieostra a nawet rozmyta. Do tego efekt spotęgowała obróbka w programie graficznym :/ (skan, zapis do jpg i pomniejszenie :/) – ale chyba nie wygląda tak tragicznie i pochwalić się tym idzie :P.

 

Jakby kogoś interesowało więcej moich prac to zapraszam na deviantart.

 

Zmniejszenie rozmiaru pliku wynikowego – Lazarus

 

Lazarus (środowisko RAD dla free pascala) od zawsze produkował znacznych rozmiarów pliki wykonywalne. Sprawką tego są dołączane do pliku exe informacje dla debuggera. W trakcie tworzenia aplikacji informacje te mogą być przydatne lecz w przypadku wersji finalnej warto je wyłączyć co znacząco zmniejszy rozmiar pliku.

 

Informacje dla debuggera w Lazarusie (testowane na wersji 1.0.4) wyłączamy wybierając z menu głównego Lazarusa opcję „Projekt” a następnie „Opcje projektu”. W oknie, które się pokaże odnajdujemy w drzewie po lewej stronie zakładkę „Łączenie” znajdującą się w gałęzi „Opcje kompilatora”. Na tej zakładce odznaczamy opcję „Twórz informację odpluskwiacza dla GDB (zwalnia kompilację)”.

 

Aktualizacja z dnia 2014-06-12:

Testując rozwiązanie w wersji 1.2.2 zauważyłem kilka różnic – do informacji dla debuggera dochodzimy poprzez menu „Projekt” -> „Opcje projektu”. W oknie, które się otworzy z drzewa wybieramy gałąź „Opcje kompilatora” a następnie „Odpluskwianie”. Na tej zakładce odznaczamy opcję  „Twórz informację odpluskwiacza dla GDB (zwalnia kompilację)”.

 

W przypadku pierwszego programu który skompilowałem z tak ustawionym projektem różnica wynosiła 14 MB (przed wyłączeniem tej opcji zajmował 16 MB po wyłączeniu już tylko 2MB).

 

Statystyki w ParanoyaCMS

 

Wielki kambek :P … no może nie taki wielki.

 

Po dłuższej przerwie spowodowanej notorycznym brakiem czasu powracam do rozwijania ParanoyaCMS. Narazie nic wielkiego poza kilkoma poprawkami i małym liftingiem pewnej funkcjonalności. I właśnie o tym liftignu tu pisać będę, a dotyczy on statystyk odwiedzin strony opartej na ParanoyaCMS.

Przeczytaj resztę wpisu »

 

ParanoyaCMS na facebook’u

 

Nie da się ukryć przed mediami społecznościowymi – atakują nas z każdej strony. Toteż postanowiłem przyłączyć się do tego ataku i pochwalić swoim „produktem” na facebook’u.

 

Dużo do chwalenia się nie ma po prostu powiem, że więcej informacji znajdziecie na samym facebook’u pod adresem: www.facebook.com/ParanoyaCMS

 

Odwiedzajcie i lajkujcie :P

 

software’owy WebGL w google chrome

 

Tym razem szybka i w sumie prosta porada. Jak włączyć obsługę WebGL w google chrome na linuxie (zapewne na innych systemach operacyjnych też zadziała lecz osobiście sprawdzałem tylko na tym) gdy nasza karta graficzna znalazła się na czarnej liście – nie jest obsługiwana przez google chrome.

 

1. W pasku adresu wpisujemy chrome://flags

2. Wyszukujemy opcję „Zastąp listę renderowania programowego” i „Włączamy” ją

3. Uruchamiamy ponownie przeglądarkę

 

Funkcje Ceil i Floor w @Formula

 

Ostatnimi czasy przyszło mi zmienić pracę i jak to zawsze w nowej pracy nauczyć musiałem się czegoś nowego. Obecnie więc powiększam swoją wiedzę na temat programowania kręcąc się w okolicach języków @formula oraz Lotus Script. Jako, że blog ten założyłem głównie po to aby umieszczać w nim rozwiązania i informacje, których nie chcę co chwilkę szukać w internecie (czyli jako swoistą bazę wiedzy) również i o tych językach kilka postów się pokaże – poczynając od tego.

 

Na razie prosto. Chociaż troszkę czasu już spędziłem programując w języku @formula to jednak nie spotkałem się z funkcjami Ceil czy Floor. Jednak takowe były mi potrzebne. Dlatego też szybka informacja jak brak tych funkcji sobie zrekompensować. Tłumaczyć nie będę – kod poniżej:

 

  1. REM { FUNKCJA CEIL };

  2. zmienna_temp:=@Round(zmienna);

  3. @If(zmienna_temp>zmienna; zmienna:=zmienna_temp; zmienna:=zmienna_temp + 1);

  4.  

  5. REM { FUNKCJA FLOOR };

  6. zmienna_temp:=@Round(zmienna);

  7. @If(zmienna_temp>zmienna; zmienna:=zmienna_temp – 1; zmienna:=zmienna_temp);

 

Portret :)

 

Ostatnio jakoś mało czasu jestem w stanie poświęcić na rysowanie. Ciągle zabiegany nie jestem w stanie chwycić ołówka w rękę i utrzymać tak długo aby dokończyć pracę. Kilka rysunków czeka (i pewno wiecznie czekać będzie) na dokończenie. A jedynym który udało mi się dokończyć w ostatnich dniach chcę się pochwalić tutaj – na łamach mojego bloga.

 

Nie jest to może arcydzieło, co więcej sam uważam, że nie wyszedł najlepiej – niestety nie przypomina w 100% osobę, którą chciałem narysować, ale warto się nim pochwalić :) Jest to portret, portret dziewczyny (ale to zapewne widać), a dokładniej portret mojej narzeczonej :). Wzorowałem się na zdjęciu na którym miała trochę miej lat niż obecnie i taka miała być na rysunku … niestety podobieństwa nie udało mi się zachować – wypadłem z wprawy zdaje się.

 

A dlaczego warto się nim pochwalić ? Gdyż odważyłem się użyć pewnej techniki do której nigdy nie miałem zbytniego zaufania. Rozmywałem cienie kawałkiem zmiętej kartki i palcem (palcem częściej, bo miałem go bliżej pod ręką :P). Efekt całkiem niezły i myślę, że będę częściej stosował tę technikę.

 

Jeśli ci się podoba ten portret zajrzyj na mój profil na deviantart (lw-winetou.deviantart.com)

 

Elektroniczne CV

 

Nareszcie, po dłuższym czasie, udało mi się skończyć swoje elektroniczne CV – czyli Curriculum Vitae umieszczone w internecie. Poza swoją podstawową funkcją przekazania relacji z mojego życiorysu ewentualnemu przyszłemu pracodawcy strona ta ma również funkcję dodatkową. Jest to swego rodzaju moje programistyczne portfolio. Stworzyłem ją w taki sposób, aby odwiedzający mógł domyślić się jakie posiadam umiejętności i żeby pokazać, że poza wypisaniem ich listy potrafię je także zastosować.

 

 

Jeżeli jesteś zainteresowany jak takie „cudo” może wyglądać skoro tak się tym chwalę, przejdź na cv.paranoya.info.

 

Przeczytaj resztę wpisu »

 

PHPMailer i tytuł wiadomości w UTF-8

 

Wygląda na to, że znana wszystkim i wykorzystywana przez wielu biblioteka phpmailer nie wystrzegła się błędów. Zresztą trudno się dziwić przy tak wielkich projektach. Jak to się mówi: „Nie ma programów bez błędów, są tylko programy źle sprawdzone”.

 

Błąd, o którym piszę związany jest z tytułami wiadomości zakodowanymi w UTF-8. Gdy przekraczają pewną długość biblioteka phpmaile zdaje się gubić i zwraca błąd „Language string failed to load: instantiate”. Na szczęście problem ten daje się rozwiązać i to dość łatwo. Wystarczy zakodować temat wiadomości używając base64:

 

  1. $mail = new PHPMailer();

  2. $mail->CharSet = ‚utf-8’;

  3. $mail->Subject = „=?UTF-8?B?”.base64_encode(str_replace(

  4.    array(„\r”, „\n”, „\r\n”, „\n\r”, „\t”),

  5.    array(”, ”, ”, ”, ”),

  6.    ‚temat wiadomości’

  7. )).”?=”;

  8. $mail->Body = ‚treść wiadomości’;

  9. $mail->Subject = „=?UTF-8?B?”.base64_encode(str_replace(

  10. $mail->AddAddress(’email odbiorcy’, ‚pełna nazwa odbiorcy’);

  11. $mail->Send();

 

Ważne tutaj są linie od 3 do 7 włącznie. Można też zauważyć, że przy okazji z tematu wiadomości zostały wywalone znaki ENTER i TAB.