PHP – Xdebug i PhpStorm

No Comments

xdebug Całe wieki nic tu się nie działo, więc będzie coś nowego, ale krótko…

Przez wiele lat moją bolączką w PHP były ograniczone możliwości debugowania. Nawet, kiedy powstał jakiś debugger, ciężko było ogarnąć jego działanie, a bez IDE (przyznaję, kiedyś pisałem w PSPadzie), była to droga przez mękę…

Kto z nas nigdy nie zrobił czegoś takiego?

echo 'dupa';

Na szczęście mroczne czasy minęły, miejmy nadzieję, że bezpowrotnie.

Read More…

Categories: PHP, Zabawy z kodem

Excel VBA – zawijanie wierszy (rozdzielanie łańcuchów znaków)

No Comments

W dzisiejszym wpisie zajmiemy się stringami. Ale nie cieszcie się za bardzo.

Napotkałem ciekawy problem w pewnym wspaniałym systemie pewnej wspaniałej polskiej firmy. W danych do faktury nazwa podmiotu miała trzy linijki – były to trzy osobne pola o maksymalnej długości 50 znaków. Głupota, ale co ja tam wiem.

Klient wpisując dane do faktury w sklepie internetowym miał na nazwę jedno pole, co jest bardziej sensowne. No i trafiliśmy w końcu na kogoś, kto miał nazwę dłuższą niż 50 znaków, co spowodowało kupę śmiechu… dobra, spowodowało to ochrzan biednego WRonX’a. Trzeba było sobie z tym jakoś poradzić

Read More…

ESET crackMe na CONFidence 2012 – bruteforcing z poziomu GUI :) [VIDEO]

3 Comments

Z żalem przyjąłem informację o cenach wejściówek na tegoroczną CONFidence. Mówi się “trudno”. Jednak, jak co roku, organizatorzy postanowili zorganizować konkurs o pięć darmowych wejściówek za złamanie crackme. Nagroda jest atrakcyjna, więc podejrzewam, że co tęższe głowy polskiej sceny reversingowej ruszyły do boju i wejściówki zostały już rozdane. Ja ze swojej strony postanowiłem się trochę pobawić…

Read More…

Categories: C#, Software, Zabawy z kodem

BestPlayerowi dziękujemy, czyli subiektywny test playerów.

6 Comments

Zainspirowany kolejną wykopową burzą w sprawie zrzutki i braku aktualizacji BestPlayera postanowiłem w końcu spróbować uniezależnić się od tego playera. Wiadomo, przyzwyczajenia to ogromna siła. Jeśli przez lata korzystało się z konkretnego programu, trochę trudno to zmienić. Ja przeżywałem zmianę domyślnego playera już dwa razy – najpierw był VPlayer (co za czasy!), później BSplayer, na końcu BestPlayer. Jednak lubię używać oprogramowania “żywego” i aktualizowanego – abandonware toleruję tylko w grach. Postanowiłem zrobić mały test kilku playerów, założenia przedstawiam poniżej:

Read More…

Categories: Inne, Software

Excel VBA – kursor myszy “hand” dla linku

1 Comment

W poprzednim wpisie pokazałem prosty (w dodatku nie mój, co wskazałem w źródle) sposób na utworzenie linku z kontrolki Label. Ale co to za link, który po najechaniu nań myszą nie zmienia jej kursora na klasyczną “rączkę”, do której wszyscy przywykliśmy?

Jak się okazuje, nie ma możliwości pokazania takiego kursora (przynajmniej do wersji Office 2003, na jakiej pracuję) z poziomu właściwości MousePointer obiektu. Ale mimo wszystko da się, jak wykazuje GHolden w wątku traktującym właśnie o tym problemie.

Read More…

Excel VBA – link dla Label

No Comments

Będzie krótko. Niektórzy czasem potrzebują linka zrobionego z kontrolki Label. Co należy zrobić?

  1. Umieszczamy Label na UserForm.
  2. Opisujemy i formatujemy (zwykle niebieski kolor i podkreślenie).
  3. Zdarzenie Click obsługujemy następującym kodem:
Private Sub LabelLink_Click()
    href = "http://moja.strona.pl"
    On Error GoTo blad
    ActiveWorkbook.FollowHyperlink Address:=Link, NewWindow:=True
    Exit Sub
blad:
    MsgBox "Nie można otworzyć " & href, , vbExclamation, "BŁĄD"
End Sub

Zrobione :)

[źródło: spreadsheetpage]

[daily snippet] Excel VBA – autostart makra przy otwarciu arkusza

No Comments

Skoro wiemy już, jak zamknąć arkusz, przyda nam się wiedza, jak zrobić to w momencie otwarcia :)

A tak na poważnie – w niektórych firmach Excel jest używany do obróbki danych, bo interfejs jest znajomy dla większości pracowników biurowych, nie mających wiele wspólnego z komputerami. Można więc z arkusza Excelowego zrobić świetne narzędzie front-endowe. Komunikacja z dowolną bazą jest na wyciągnięcie ręki, więc niech użytkownik wprowadzi swoje dane, a VBA zrobi resztę.
W ten sposób można na przykład aktualizować stan magazynowy w sklepie internetowym. W takim przypadku przydałoby się zrobić to następująco:

Read More…

[daily snippet] Excel VBA – Zamykanie dokumentu (arkusza)

No Comments

W kolejnej odsłonie daily snippet – jak irytować użytkowników, czyli zamykanie aktywnego dokumentu.

Kod jest prosty, jak świński ogon. A możliwości są trzy:

   ActiveWorkbook.Close False ' - zamkniecie bez zapisywania zmian
   ActiveWorkbook.Close True  ' - zamkniecie z zapisem zmian
   ActiveWorkbook.Close       ' - użytkownik decyduje o zapisie

Życzę wielu pomyślnych zamknięć :)

[daily snippet] Excel VBA – blokowanie i ukrywanie arkusza, ukrywanie kolumny

No Comments

Dziś będzie krótko i łatwo. Zablokowanie/odblokowanie arkusza:

   ActiveSheet.Protect   ' - zablokowanie
   ActiveSheet.Unprotect ' - odblokowanie

Ukrycie/odkrycie arkusza:

   Sheets("x").Visible = False ' - ukrycie
   Sheets("x").Visible = True  ' - odkrycie

Ukrycie/odkrycie kolumny:

   Columns(zakres).EntireColumn.Hidden = True   ' - ukrycie
   Columns(zakres).EntireColumn.Hidden = False  ' - odkrycie
   '(gdzie np zakres = "X:Y")

[daily snippet] Excel VBA – Zaokrąglanie w górę i w dół

No Comments

Witam w nowym cyklu “daily snippet”. Nie oznacza to oczywiście, że snippety będą publikowane codziennie, ale postaram się częściej, niż zwykle. Będą to bardzo krótkie wpisy z maleńkimi (często jednolinijkowymi) fragmentami kodu. Taki zbiór przydatnych rzeczy. Krótko, więc z reguły bez “czytaj dalej”, a przynajmniej z esencją sensu posta w jego nagłówku :)

Na pierwszy ogień zaokrąglanie liczb. Excel VBA posiada funkcję Round(), która po prostu zaokrągla, ale warto wiedzieć, że można też zaokrąglać w górę i w dół, stosując kolejno:

   Application.RoundUp(liczba, miejscaPoPrzecinku)
   Application.RoundDown(liczba, miejscaPoPrzecinku)

Na marginesie, gdyby komuś się chciało analizować kod, zanim znalazłem te funkcje, zdążyłem już napisać własne. Smacznego:
Read More…

Jak usunąć wydarzenie Facebooka z kalendarza Androida?

17 Comments

Rzecz jest wysoce irytująca. Nie do końca wiadomo, kto (co?) za to odpowiada, niemniej jednak użytkownicy Androida w wersji powyżej 1.6 cierpią na pewną przypadłość: po “wzięciu udziału” w wielodniowym wydarzeniu na Facebooku i synchronizacji telefonu, w kalendarzu pojawia się owe wydarzenie w ilości sztuk jeden na każdy dzień trwania.

Sprawia to, że kalendarz wygląda tragicznie, zaś problemem jest głównie to, że takiego wydarzenia z kalendarza na pierwszy rzut oka nie da się usunąć! Nawet zaznaczenie “nie wezmę udziału” czasem (?) nie pomaga. Jak dotąd jedynym sposobem, jaki znałem, było usunięcie danych aplikacji Pamięć Kalendarza i ponowna synchronizacja. Na szczęście jest lepszy sposób.

Read More…

Categories: Internet, Software Tags: Tagi:, ,

nLite – scalamy uaktualnienia i sterowniki.

2 Comments

Każdy, kogo dotknęła wątpliwa przyjemność reinstalacji systemu spod znaku okienek wie, jaką zmorą jest taka “świeża” instalacja. Sam proces setupu to nie wszystko, właściwie to jedna trzecia sukcesu… Czeka nas jeszcze:

  • Zainstalowanie sterowników
  • Kilka restartów w międzyczasie
  • Skonfigurowanie systemu
  • Kilka restartów w międzyczasie
  • Update systemu
  • Kilka restartów w międzyczasie

Read More…

Categories: Software Tags: Tagi:,

PDF do “normalnego” tekstu, polskie litery i inne…

No Comments

Po długiej przerwie powracam na chwilę z rozwiązaniem małego, bieżącego problemu. Załóżmy, że mamy PDFa. Załóżmy, że chcemy z niego wyciągnąć tekst i zapisać w formacie np. wordowskim. Załóżmy, że PDF nie jest zabezpieczony.
Jeśli mamy dostęp do Acrobata, robimy eksport do RTF i spokój. NOT…
Eksport zazwyczaj wysypie wszystko, co się da. Tak to już jest z produktami Adobe :)
No dobrze, ale załóżmy, że mamy dostęp tylko do Adobe Readera. Jest darmowy.
Read More…

Categories: Software Tags: Tagi:, , , , ,

include() mi nie działa! XAMPP wyświetla kod skryptu! Aaa!

No Comments

XAMPP Tak więc zainstalowałeś XAMPPa, utworzyłeś bazę danych, zmieniłeś htdocs, skonfigurowałeś w najdrobniejszych szczegółach php.ini i httpd.conf, zainstalowałeś Eclipse, albo NetBeans (osobiście polecam to drugie), klienta SVN, skonfigurowałeś repozytoria, ustawiłeś XDebug do współpracy w IDE, zrobiłeś sobie kawę, napisałeś pierwszy skrypt i…

Ojej… include() zamiast wykonywać skrypt, wyświetla jego zawartość na ekranie…

Nie panikuj, nic się nie stało. Nie wpadłeś na jedną, prostą rzecz…

Read More…

Categories: PHP, Zabawy z kodem Tags: Tagi:,

Excel VBA – obsługa elementów ListBox’a

4 Comments

Chcąc – nie chcąc, czasem trzeba. Jak widać, wpisy zostały zdominowane przez VBA, ale lepiej mieć content, niż nie mieć, więc dokładam znowu coś od siebie.

W dzisiejszym odcinku dowiemy się, jak wyciągnąć liczbę zaznaczonych elementów listy ListBox, jak wyciągnąć te elementy, jak dodać gotowy element do listy i na dokładkę – otrzymamy pierwszy zaznaczony element.
Read More…

Excel VBA – sprawdzanie, czy pozycja widnieje już na liście (ListBox)

No Comments

Kolejny szybki snippet, aby się nie znudzić za bardzo.
Często zdarza się, że wybieramy w jednym ListBoksie jakieś pozycje i kopiujemy je do drugiego. Nie chcielibyśmy się zdublować (zazwyczaj), dlatego też warto sprawdzić przed skopiowaniem, czy dany element na naszej liście już widnieje, czy może też nie. Posłuży do tego kolejna uniwersalna funkcja…
Read More…

Excel VBA i aktywne (realtime) filtrowanie ListBox/ComboBox

4 Comments

Jak już wspominałem onegdaj, bywa w życiu każdego PHPowca taki moment, kiedy staje przed koniecznością napisania makra w Excelowym VBA… Nie, wróć… to chyba tylko ja tak mam. W każdym razie – czasem trzeba. Dzisiejszy odcinek poświęcimy aktywnemu filtrowaniu listy. Jak toto wygląda, każdy powinien wiedzieć. Otóż jest sobie lista As ListBox oraz pole As TextBox. I w trakcie wpisywania czegoś do pola chcemy mieć na liście tylko te wartości, które pasują do wartości pola
Read More…