Paweł Talacha
software developer
RSS
  • Home
  • O mnie
  • Blog

Cze 22 2014

Pliki projektu Eclipse a kontrola wersji

Czy pliki projektu Eclipse powinny być umieszczane w systemie kontroli wersji?

Zanim odpowiemy sobie na to pytanie – krótko – czym są takie pliki? Pliki projektu środowiska Eclipse zawierają informacje związane z konfiguracją samego środowiska oraz ustawieniami projektu. Tworzone są wraz z projektem, zapisywane w jego folderze. Są to m.in. .project oraz .classpath.

Istnieją różne podejścia do przechowywania tych plików w repozytorium. Jedni twierdzą, że nie powinny być w ogóle wersjonowane – każdy bowiem posiada własną konfigurację środowiska. Inni – przeciwnie – że zawsze powinny być w nim umieszczane.

Warto pamiętać, że w plikach projektu znajdują są takie informacje, jak kodowanie znaków, stosowana wersja kompilatora oraz zależności. Wypadałoby więc, żeby wszyscy członkowie zespołu posiadali te same ustawienia i mieli dane o użytych zewnętrznych bibliotekach. Jeżeli nie jest stosowany Maven lub inne narzędzie automatyzujące proces budowy projektu, a więc i znajdowania zależności, plik .classpath jest bezpośrednim źródłem informacji o nich. Bez niego konieczne jest analizowanie kodu w celu stwierdzenia dlaczego dana klasa nie jest dostępna – jakiej brakuje biblioteki?

Z drugiej strony plik .classpath często zawiera te informacje w postaci ścieżek bezwzględnych, co jest głównym argumentem przeciwko przechowaniu go w systemie kontroli wersji.

Można więc stwierdzić, że pliki projektu powinny być wersjonowane pod warunkiem, że nie zawierają ścieżek bezwzględnych.

Jak więc umieścić w nim informację o zależnościach unikając użycia ścieżek bezwzględnych? Eclipse daje możliwość zastosowania do tego celu zmiennych – Classpath Variables.

Czytaj więcej…

By Paweł Talacha • Java, Poradniki • 0 • Tags: eclipse, java, repo

Lis 20 2013

Opera Mail – minimalizacja do zasobnika

Opera Mail to klient poczty, grup dyskusyjnych i kanałów informacyjnych. Był wbudowany w przeglądarkę Opera (wersje do 12.16 włącznie). Kiedy jasne stało się, że nie będzie go już w nowych wersjach – wydany został jako oddzielny produkt.

Jako przyczyny podawano duży stopień zależności od silnika renderującego i samego interfejsu, a te, jak wiadomo, miały ulec zmianie. Reintegracja klienta pocztowego byłaby kosztowna, a odsetek jego użytkowników i tak był stosunkowo niewielki.

Tyle oficjalnego wstępu.

Prawda jest taka, że „oddzielny produkt” jest niczym innym jak przeglądarką Opera z serii 12.1 z wyłączoną funkcją przeglądania stron. I będę zdziwiony jeśli pojawi się jakakolwiek jego aktualizacja.

Mimo wszystko sam klient poczty jest bardzo fajny, wygodny i przede wszystkim – spełnia swoją funkcję. Wielu jego użytkowników narzeka jednak na brak możliwości minimalizacji do zasobnika lub zamknięcia go do zasobnika, aby działając w tle sprawdzał wiadomości na bieżąco. Można to zrobić za pomocą niesamowitego skrótu klawiszowego CTRL + ALT + SHIFT + H lub zmienić go na wymagający mniej palcołomnych kombinacji, ale chcemy przecież móc wygodnie sobie kliknąć w jedno miejsce.

Wiedząc jednak, że program pod spodem to nic innego jak stara, poczciwa Opera, możemy to bezwzględnie wykorzystać…

Czytaj więcej…

By Paweł Talacha • Poradniki, Soft • 2 • Tags: mail, minimalizacja, opera, tray, zasobnik

Paź 20 2013

Filmweb – Chcę obejrzeć wg roku

Od zawsze brakowało mi w portalu Filmweb możliwości sortowania filmów w zakładce Chcę obejrzeć po roku. Zwykle klikałem w przycisk opcji dodania do listy filmów, które wydają mi się interesujące i które chciałbym zobaczyć. Potem lista taka zawiera masę pozycji. Wiele z nich to nowości, na obejrzenie których jest zbyt wcześnie – często nie miały one jeszcze swojej premiery. Przekopanie ręcznie listy w celu znalezienia starszych produkcji, które od dawna są dostępne na DVD jest uciążliwe.

Nie mogąc doczekać się więc aktualizacji serwisu wprowadzającego tę opcję napisałem prostą wtyczkę do Opery dodającą możliwość sortowania filmów we wspomnianej zakładce wg roku produkcji.

Filmweb Sortowanie

Do działania programu wymagana jest Opera 15+

Pobierz wtyczkę

By Paweł Talacha • Moje wynalazki • 0 • Tags: chcę obejrzeć, daty, filmweb, opera, sortowanie

Sie 13 2013

ViCMS 3 alpha 2

Dziś ukończony został kolejny element układanki zwanej ViCMS. :) Tym razem, oprócz tradycyjnych poprawek i aktualizacji używanych bibliotek, do testów dostępny jest moduł pozwalający na zarządzanie menu. Potrafi robić całkiem fajne rzeczy, ale zamiast rozpisywać się na ten temat, zachęcam do rzucenia okiem na poniższy filmik, który to pokazuje sposób działania składających się na niego funkcji.

Jeszcze tylko standardowe linki:

  • Szczegółowa lista zmian
  • ViCMS 3 alpha 2

By Paweł Talacha • ViCMS • 0 • Tags: vicms

Lip 16 2013

Filmweb API

Od niepamiętnych czasów, a na pewno od momentu pojawienia się nowej wersji Filmwebu w 2010 roku, użytkownicy czekają na udostępnienie przez jego twórców API. Na forum serwisu znajduje się nawet wątek, w którym co jakiś czas ktoś pyta o tę sprawę nie uzyskując jednak żadnych odpowiedzi. Wiadomo jest tyle, ile zawsze było wiadomo – jest w planach i kiedyś będzie.

Patrząc na dynamikę realizacji funkcji, których domagają się użytkownicy, „kiedyś” może okazać się wyjątkowo odległym terminem. ;)

W międzyczasie wydane zostały aplikacje mobilne. A te przecież jakoś muszą odczytywać dane z bazy Filmwebu. Krótka zabawa z inżynierią wsteczną pozwoliła mi na poznanie sposobu, w jaki aplikacje te łączą się z serwisem. Mogłem więc zbudować program naśladujący ten mechanizm, a przez to umożliwiający wywołanie metod, z których te aplikacje korzystają. Dla sprawdzenia pobrałem opis wybranego filmu.

W tym momencie zrodził się pomysł napisania kilku innych metod i zgrupowania ich w bibliotece, którą można byłoby nazwać nieoficjalnym API. :twisted:

Niestety nie mam dostępu do informacji na temat tego, jaka metoda zdalna wykorzystywana jest do uzyskania ID filmu, które mogłoby posłużyć do pobierania innych informacji. Stworzyłem więc metody wyłuskujące wspomniane ID bezpośrednio z kodu źródłowego stron filmów. I tak oto powstała pierwsza wersja.

Źródła, jak i sama biblioteka dla języka Java znajduje się na stronie serwisu Bitbucket.

Smacznego. :)

Edit: Najnowsza wersja Filmweb API

Edit 2: Przykładowe wykorzystanie

By Paweł Talacha • Moje wynalazki • 1 • Tags: api, filmweb, java

Cze 30 2013

ViCMS 3 alpha 1

Całkiem sporo jeszcze czasu musi upłynąć, aby ViCMS w wersji 3 funkcjonalnie dogonił 2.1, że nie wspomnę o przyjęciu zadowalającej mnie formy i osiągnięciu stanu, który można byłoby nazwać kompletnym. Zwrócę tylko uwagę na fakt, że modyfikacja tego systemu to rzecz, którą robię hobbystycznie, w wolnych chwilach, dla przyjemności – a więc i tempo prac nie jest zbyt intensywne. Nie mniej jednak – jeżeli ktoś chciałby być bardzo alternatywny i używać czegoś egzotycznego lub chciałby przejrzeć źródła w nadziei, że nauczy się nowych rzeczy, ew. chciałby ulepszyć system wprowadzając swoje własne modyfikacje – nie mam nic przeciwko (zwłaszcza, jeżeli później podzieliłby się swoimi wynikami ;)).

Dlatego też, pomimo, że jakiś czas temu pisałem o udostępnieniu źródeł ViCMS 3 w momencie osiągnięcia fazy beta – robię to już teraz. Jest gotowy, działający całkiem fajnie, spory fragment systemu – gdyby ktoś się uparł można nawet postawić w oparciu o niego stronę, choć mogłoby być to kłopotliwe ze względu na np. brak zarządzania menu i plikami (obrazki, dokumenty).

Co działa?

  • Instalacja i aktualizacja :)
  • Moduł aktualności – bez oceniania i komentowania, jest Atom i zagnieżdżone kategorie
  • Moduł stron + możliwość podpięcia do / odpięcia z menu z poziomu szczegółów
  • Zapis aktualności i stron bez publikacji / publikacja
  • Zarządzanie użytkownikami (bez możliwości zmiany własnych danych :P)
  • Możliwość filtrowania list (za wyjątkiem użytkowników)
  • Określanie parametrów witryny, wybór kompozycji (stare skórki), zarządzanie modułami

Do uzupełniania w tym fragmencie pozostała możliwość dołączania stron do treści, zarządzania menu i przypominania hasła (nawet nie testowałem jak się zachowuje ta funkcja). A w dalszym etapie kolejne prace mające na celu wprowadzenie istniejącej już w ViCMS 2.1 funkcjonalności i jej poszerzanie.

Strony projektu w serwisie Bitbucket: https://bitbucket.org/varabi/vicms/

Znajduje się tam Mercurialowe repozytorium, z którego zawsze można będzie pobrać najnowszą wersję systemu. Dev jest gałęzią rozwojową, większe funkcje / moduły będą posiadały swoje własne, dołączane później do dev. Oficjalne wersje, późniejsze stabilne – gałąź default + odpowiedni tag.

W przypadku sugestii odnośnie działania systemu, odkrycia błędu w działaniu – informacje można dodawać do systemu śledzenia zgłoszeń również w tym serwisie, upewniając się wcześniej czy podobne już nie istnieje.

Uwaga: Aktualnie udostępniona wersja jest w bardzo wczesnej fazie rozwoju, może zawierać błędy i prawdopodobnie je zawiera. Nie nadaje się także do zastąpienia wersji 2.1 ze względu na zmienioną strukturę bazy danych. W późniejszym etapie planowane jest stworzenie narzędzia pozwalającego na migrację z 2.1 do 3.0.

ViCMS 3 alpha 1 – pobierz z serwisu Bitbucket

By Paweł Talacha • ViCMS • 0 • Tags: vicms

Cze 7 2013

Aplikacja Android → PC Windows

Raz na jakiś czas człowiek, który dłubie przy komputerze trafia na sytuację wymagającą dosyć dużej ilości kombinowania. Związana jest ona zwykle z koniecznością osiągnięcia prostej rzeczy, której z niewiadomych powodów prosto nie da się osiągnąć. W takich momentach najczęściej okazuje się, że internet albo również nie posiada recepty na rozwiązanie – opisy, na które można się natknąć nie znajdują odzwierciedlenia w naszej rzeczywistości – albo w ogóle ich nie ma.

To jest dobry moment na zainaugurowanie działu z tutorialami. ;)

Opis problemu

Nie mając pod ręką urządzenia z Androidem na pokładzie chcemy pobrać na komputer PC z systemem Windows plik apk ze sklepu z aplikacjami. Niby istnieją jakieś programy do tego służące i wtyczki – wszystko sprowadza się jednak do podania DeviceID urządzenia, którego aktualnie nie mamy.

Czytaj więcej…

By Paweł Talacha • Poradniki • 0 • Tags: android, aplikacja, pc, windows

Lut 6 2013

ViCMS 3 – zapowiedź #1 – warstwy i chmurki

Korzystając z przymusowego dnia lenistwa, postanowiłem napisać o planach związanych z ViCMS. Plany są. Jak zwykle planów mam całą masę. Tylko czasu na realizację jakoś tak dziwnie mało. ;)

ViCMS ma już swoje lata. Jako, że pierwsze wersje powstawały w czasach, kiedy to często jeszcze witryny były tworzone w oparciu o pliki zawierające mieszaninę HTML, CSS i JS (tu jest niewiele lepiej), a sam system zaprojektowany został w ujęciu strukturalnym – źródła nie wyglądają zbyt zachęcająco. Jest to trudny do pielęgnacji i rozbudowy kod. I kiedy z czymś takim zetknie się programista, który zagląda po jakimś czasie do swojego własnego dzieła, z przerażeniem stwierdza, że straszne rzeczy popełnił! ;)

Jakiś czas temu doszedłem do wniosku, że rozbudowa programu w obecnej postaci nie ma najmniejszego sensu. Mało elastyczne rozwiązania nie pozwalają na szybkie wprowadzanie poprawek czy łatwe rozszerzanie istniejącej funkcjonalności. Postanowiłem wtedy, że jak mnie najdzie chęć podłubania w wolnych chwilach w PHP, będę sobie ViCMSa przebudowywał. :)

Założenia były proste:

  • Bezpieczeństwo – m.in. poprzez zmianę sposobu obsługi połączeń z bazą danych, wykonywania zapytań (przy okazji porządek z samą bazą). Jest to system ogólnie dostępny, powinien więc jak najbardziej minimalizować prawdopodobieństwo powstania ewentualnego bałaganu.
  • Jasna, określona struktura – oddzielenie logiki przetwarzania danych, dostępu do bazy, prezentacji – MVC – z czego wynikałaby łatwość późniejszej rozbudowy i pielęgnacji
  • Jakość, przejrzystość kodu, prostota i uniwersalność – na pewno żadnego powielania, fragment raz napisany powinien być po prostu możliwy do używania w wielu miejscach, gdzie będzie to konieczne (np. stronicowanie)
  • Zachowanie obecnej funkcjonalności, zwiększając wygodę użytkowania (mniejsza liczba koniecznych kliknięć, przeładowań stron, żeby tylko zobaczyć komunikat itp.)

I tak zgodnie z założeniami, wolnymi krokami postępuje refaktoring.

Jedną z ciekawszych rzeczy, które pojawiły się przy jego okazji po stronie administracyjnej są warstwy i chmurki. Będą one stanowiły sposób prezentacji komunikatów.

  • Warstwy (wyjeżdżające z prawej strony „nad ekranem”, blokujące ekran) – pojawiają się zanim nastąpi jakaś akcja. Otoczone czerwoną ramką – informują o błędach, najczęściej braku lub nieprawidłowości danych. Otoczone ramką pomarańczową mogą zawierać formularze i oczekiwać na wprowadzenie informacji – wpisanie czegoś lub wybór opcji.
  • Chmurki – pojawiają się w prawym górnym rogu i zawierają krótką informację o tym czy akcja została wykonana poprawnie czy też nie.

Poniżej zamieszczam filmik prezentujący odświeżoną część administracyjną nowego ViCMSa oraz działanie warstw i chmurek. Całkiem możliwe, że sam layout ulegnie jeszcze zmianie.

Więcej informacji będzie pojawiało się w miarę postępów prac.

By Paweł Talacha • ViCMS • 0 • Tags: vicms

Kwi 6 2012

ViCMS 2.1.1 – Kolejna wersja świąteczna

Wymyśliłem sobie, że będę to robił w każde święta. A co! :P

Chciałem, aby ta wersja tylko i wyłącznie wprowadzała poprawki. Miała być najbardziej dopracowana pod względem działania istniejących już elementów ze wszystkich wersji, które pojawiły się do tej pory. Mam nadzieję, że się udało, bo od teraz będę już tylko psuł. ;)

Z listą zmian można zapoznać się tam, gdzie zwykle.

Ponadto dokumentacja użytkownika została w końcu uzupełniona, można więc sobie poczytać trochę i pooglądać obrazki umieszczone na stronach poświęconych funkcjom ViCMS.

Pozostaje mi tylko życzyć wszystkim Wesołych Świąt! :)

By Paweł Talacha • ViCMS • 0 • Tags: vicms

Gru 23 2011

ViCMS 2.1 – Wersja świąteczna ;)

vicms2.1star_small

Dziś wyjątkowa aktualizacja ViCMS. Po pierwsze – świąteczna. :) Po drugie – dodanych zostało kilka rzeczy usprawniających działanie systemu i poprawiających błędy. Jest też trochę nowości, a są to:

  • Zagnieżdżone kategorie aktualności – Pozwalają na lepsze grupowanie wpisów. Numerek w nawiasie obok nazwy mówi teraz o liczbie aktualności danej kategorii, a także wszystkich kategorii podrzędnych. Ponadto nazwa kategorii znajduje się teraz w stopce każdego wpisu, skąd informacja o dalszym ciągu tekstu (o ile taki istnieje) przeniesiona została na koniec treści pierwszej jego części. Będzie także umieszczana na końcu skrótów wiadomości w kanale informacyjnym.
  • Panele – Mogą zawierać dowolną treść, formatowaną identycznie jak sam wpis. Widoczne są na pasku bocznym. Mogą być wyświetlane poniżej menu witryny – na samym dole, powyżej – na samej górze, lub tylko na górze strony głównej witryny.

Działanie tych funkcji przedstawia poniższy film. Był on tworzony w trakcie pisania programu – widać na nim drobny błąd, który został później wyeliminowany. Film zawiera też paskudną reklamę. ;)

Ponadto:

  • Panele stron – Zasada działania jest identyczna, jak w przypadku paneli ogólnych, dotyczą jednak tylko konkretnej strony. Tworzone są przy dodawaniu lub edycji strony i mogą pełnić rolę dodatkowego dla niej menu.
  • Opcjonalny przycisk „+1” poniżej aktualności pozwalający na rekomendowanie treści wpisów w serwisie Google+.
  • Ulepszone funkcje odpowiedzialne za formatowanie i sprawdzanie poprawności zagnieżdżenia znaczników BBcode, dzięki czemu wykrywana jest większa ilość błędów, a jednocześnie zwiększona została elastyczność poprzez umożliwienie stosowania dowolnej kolejności zagnieżdżeń w ramach dopuszczalnej w danym momencie.
html5_logo_512
  • Dokumenty generowane przez system są teraz zgodne z HTML5, który zastąpił poprzednio używany standard opisu – XHTML 1.0 Transitional. Dzięki temu możliwe było m.in. zrezygnowanie z negocjowania typu zawartości lub osadzania obiektów flash z użyciem SWFObject, aby zapewnić zgodność i poprawne wyświetlanie w przeglądarkach z grupy Internet Explorer. Poziom użycia nowych elementów języka znaczników HTML5 jest znikomy z powodu śladowej ich obsługi przez IE8. Starsze wersje oraz przeglądarki z włączonym widokiem zgodności będą na samej górze wyświetlały komunikat o możliwości niepoprawnej prezentacji strony.
  • Wymienione emotikony i zwiększona ich ilość.
  • Nowa, trzecia już skórka w paczce. Blue dostosowuje się do szerokości okna przeglądarki, nie ładuje także zbyt wielu elementów z plików graficznych. Założeniem było stworzenie „lekkiej” szaty graficznej, a więc zaokrąglone rogi nie działają w IE8 i starszych. :P

Co do błędów – niektóre z nich:

  • Album nie był zapisywany w bazie, jeżeli szerokość wskazanego przy jego edycji lub tworzeniu zdjęcia była mniejsza niż wymagana szerokość miniaturki.
  • Zapis długich treści (bliskich limitu długości) zawierających emotikony mógł powodować błąd – długość była sprawdzana przed, a nie po zamianie znaczników BBcode na HTML.
  • Nie dało się dodać administratora z pełnymi uprawnieniami (super administratora).
  • Grafika PNG na miniaturkach albumów i zdjęć w galerii traciła przezroczystość.
  • Część administracyjna „wystawała poza ekran” w rozdzielczości 1024×768.
  • Brakowało stronicowania na liście albumów w galerii oraz na liście zdjęć.
Zobacz pełną listę zmian
Pobierz najnowszą wersję

Korzystając z okazji – wszystkim odwiedzającym tę stronę chciałbym złożyć życzenia radosnych Świąt Bożego Narodzenia oraz uśmiechu i życzliwości na każdy dzień Nowego Roku. :)

By Paweł Talacha • ViCMS • 0 • Tags: vicms

1 2 3

Kategorie

  • Java (2)
  • Moje wynalazki (22)
    • ViCMS (18)
    • ViSUD (2)
  • Poradniki (3)
  • Soft (5)

Polecam

  • Foobar
  • IntelliJ IDEA
  • Meld
  • PotPlayer
  • SourceTree
  • Vivaldi

↑

© Paweł Talacha 2009 - 2021
Witryna używa plików cookies. Korzystanie z funkcji, w których są one stosowane oznacza akceptację tego stanu.OK, zamknij Czytaj więcej
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Non-necessary

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.