Have You Tried IT ?

Information Technology from scratch

Instalacja CppCMS – tutorial

Kategoria: C++

Język C++ jest jednym z ostatnich, którego wykorzystania spodziewałbym sie przy tworzeniu stron internetowych. Otóż okazuje się, że istnieją webowe frameworki oparte na tym właśnie języku i podobno osiągają całkiem niezłe wyniki wydajnościowe. Jednym z nich jest właśnie CppCMS. Oczywiście jest to opensourcowe oprogramowanie rozwijane od 2009r. Ilość aktualizji i wydań może nie powala, na tą chwilę ostatnia aktualizacja została wydana ponad rok temu w czerwcu 2013, ale sam framework wydaje się mieć wszystko co wymagane jest od webowego frameworka (system szablonów, formularze, cache’owanie, połączenie z bazami dannych, internacjonalizacja, wsparcie dla Ajax).

Postaram się tutaj przedstawić kroki instalacji i skonfigurowania kompletnego środowiska wykorzystującego:

  • Ubutnu 14.04
  • Serwer Lighttpd i FastCGI
  • Baza MySQL
  • Framework CppCMS
  • Eclipse CDT (IDE)

 

Czytaj dalej

Git: Migracja gitosis do gitolite

Kategoria: Linux | 1 odpowiedź

Nieco ponad rok temu pisałem o instalacji git’a na własnym serwerze wraz narzędziem gitosis do zarządzania repozytoriami. Choć gitosis pojawia się w oficjalnej książce do git’a, to jest on nieco przestarzały. Sam projekt został wyczerpany i nie jest już wspierany. Mnie osobiście dodatkowo napotkały problemy z importowaniem kluczy publicznych dla użytkowników repozytorium. Gitosis nie aktualizował automatycznie pliku authorized_keys i miałem problemy z ustanawianiem dostępów do repozytoriów.

W związku z tym zdecydowałem się na spróbowanie Gitolite (następny rozdział z oficjalnej książki gita). Projekt Gitolite przynajmniej jest cały czas aktywny i poza tym ma więcej możliwości. Przede wszystkim umożliwia bardziej kompleksowe zarządzanie uprawnieniami do repozytorium (można na przykład ustawiań użytkownikom oddzielne uprawnienia na poszczególne gałęzie projektu).

Czytaj dalej

Mój pierwszy atak DDoS

Kategoria: Linux

Każdy, kto próbuje utrzymywać swoje strony, prędzej czy później natknie się na problem DDoS. Mnie osobiście dużo czasu zajęło, aż w końcu jedna ze stron stała się na tyle popularna, że ktoś(coś) postanowił ją DDoS’ować.

Zaczęło się dość niewinnie: ktoś gdzieś wrzucił linka na fejsie i tak się powoli rozniosło. Strona wisiała na hostingu szeringowym. Na tanich serwerowniach niestety mają chyba taka politykę, że „nie pomagamy w zatrzymaniu ataku, tylko od razu blokujemy domenę” i sprawa załatwiona. W sumie dwukrotnie zablokowano mi domenę, z tym, że raz w ogóle bez powiadomienia. Zorientowałem się dopiero po 2 dniach. Później tłumaczyli się, że admin miał tyle pracy, że zapomniał wysłać powiadomienia – normalna sprawa. Jako przyczynę blokady podali niespotykanie duży ruch i sugerowali, że pewnie mam jakiś błąd w aplikacji, bo następują połączenia z różnych dziwnych lokalizacji, …a ja im wierzyłem. Pozwolę sobie przemilczeć nazwę dostawcy, ale proszę się nie dziwić podobnym podejściem na hostingu do 50zł/rok.
Tak więc po drugim zablokowaniu od razu przetransferowałem domenę na inny własny serwer VPS. Przeniesienie serwisu i bazy MySLQ 250MB poszło gładko – 2h z przerwą na leżenie na wersalce i wszystko gra. Nowy adres IP dla domeny rozpropagował się w ciągu kilku godzin i ruch zaczął spływać na nowy serwer. I wtedy się zaczęło.

Czytaj dalej

Serwer pocztowy od Google Apps we własnej domenie

Kategoria: Google Apps

Jak się okazuje utrzymywanie i zarządzanie usługami pocztowymi na swoim serwerze może być kosztowne pod względem zużycia zasobów. Na moim testowym serwerze obsługa poczty wraz z wszelkimi pobocznymi programami typu filtry spamowe czy antywirus zużywała ok. 250MB. Na szczęście Google udostępnia taką usługę i w większości przypadków można z niej korzystać za darmo. Przy darmowej wersji ograniczeniem jest jedynie maksymalna ilość użytkowników (10). Sama rejestracja jest banalna, a oprócz usługi pocztowej można sobie od razu podpiąć pod własną domenę znane usługi od Google takie jak: Kalendarz, Dysk i Dokumenty, Witryny.

Czytaj dalej

Uproszczenie konfiguracji serwera VPS. Wyłączenie serwera pocztowego.

Kategoria: Linux | 3 odpowiedzi

Niegdyś pisałem o podstawowej konfiguracji nikobudżetowego VPS’s. Okazało się zaproponowana przeze mnie ostatnia konfiguracja okazała się i tak zbyt bogata, przede wszystkim pod względem zużycia pamięci RAM. Mój plan umożliwia mi maksymalny dostęp do zasobu 1GB RAM, a gwarantowana ilość to 512MB. Póki co mam cały czas dostęp do 1GB, ale nigdy nie znam dnia ani godziny jak utną 😉
W każdym razie po wstępnej konfiguracji serwer używa ponad 730MB. A obciążenie jego praktycznie zerowe, jak w polskim kinie… w ogóle brak akcji jest …nic się nie dzieje 😉 Dlatego mam obawy, że po przeniesieniu tutaj jakichś ruchliwych domen mogą się zasoby nieoczekiwanie wyczerpać.

Czytaj dalej

Czyszczenie pływających elementów – clear float

Kategoria: HTML / CSS

Czyszczeniem elementów pływających po polsku brzmi co najmniej dziwnie i bardziej może się kojarzyć z oczyszczalnią ścieków czy też stocznią remontowo-budowlaną 😉
Ad rem. Problem z czyszczeniem pływających elementów w HTML może się pojawić, gdy kilka takich elementów (lub nawet jeden) mają znajdować się w kontenerze o widocznej ramce, której wysokość ma się automatycznie dopasować do wielkości wspomnianych elementów wewnątrz.

Tak by to wyglądało w kodzie HTML:

<div class="container">
	<div class="left-side">
		.....
	</div>
	<div class="right-side">
		.....
	</div>
</div>

z formatowaniem CSS:

.container {
	border: 5px dashed #900;
}
.left-side {
	float: left;
	width: 48%;
}
.right-side {
	float: right;
	width: 48%;
}

Wynikiem takiego kody będzie taki oto rezultat:

Ramka wokół elementów pływjących nie dopasowuje się automatycznie do ich rozmiarów

Element zawierający wyłącznie elementy pływające wewnątrz nie posiada zdefiniowanej wysokości, dlatego ramka nie otacza całej treści

 

Jak widać ramka nie otacza całej treści, a w zasadzie to niczego nie otacza 😉 Rysuje się ramka o wysokości 0.
Tak to się dzieje, gdy kontener zawiera tylko elementy pływające. Wówczas nie ma zdefiniowanej wysokości.

Czytaj dalej

Ukrywanie tekstu za pomocą CSS

Kategoria: HTML / CSS | 2 odpowiedzi

Każdy kto miał do czynienia z tworzeniem stron albo ma takie zboczenie, że czasem sobie przegląda źródła innych stron, spotkał się pewnie z taką sytuacją, że jakiś element HTML w źródle zawiera tekst, natomiast wizualnie nie widać go na stronie. Jest to stary zwyczaj i powszechnie stosowany np. przy linkach (<a>) blokowych, które zamiast tekstu wyświetlają jakiś obrazek (za pomocą background-image). Dzięki temu element może ładniej wyglądać zachowując semantykę kodu HTML.

Czytaj dalej

Instalacja git na serwerze

Kategoria: Linux | 3 odpowiedzi

Doszło do takiej sytuacji, że mam czasem dość siedzenia przy desktopie i chciałbym od czasu do czasu popracować, załóżmy na wersalce 😉 używając laptopa. Mogę oczywiście zrobić sobie zasób sieciowy i w nim pracować, ale co jeśli będę chciał zabrać laptopa z Internetem na łąkę albo popracować na wersalce u znajomych albo u dziewczyny (żartuje, nie mam ani dziewczyny, ani znajomych… no ale jestem prawie pewien, że ktoś inny może mieć 😉 ) Padło na wykorzystanie jakiegoś systemu kontroli wersji, a konkretniej Gita.
Git ma bardzo dobrą książkę (nawet prawie cała po polsku) do poczytania on-line, tak więc polecam najpierw ją poczytać, a wówczas nie będzie potrzeby wracania tutaj.

Instalacja na Debianie:

sudo apt-get install git-core gitosis

gitosis – pozwala na zarządzanie repozytoriami przez SSH

Czytaj dalej

Courier-IMAP: Limit połączeń z serwerem

Kategoria: Linux

Na jednym serwerze podpiętych jest kilka domen oraz utworzonych kilkanaście skrzynek pocztowych. Użytkownicy skrzynek pocztowych najczęściej znajdują się w jednym pomieszczeniu i mają takie sam adres IP.

Problem:

Użytkownicy nie mogą jednocześnie korzystać z poczty. Przy próbie otworzenia skrzynki, klient pocztowy, w tym wypadku Thunderbird wyrzuca komunikat (taki długi, że cały nie mieści się na ekranie;) ) o przekroczeniu liczby jednoczesnych połączeń i że należałoby zmniejszyć ten limit w ustawieniach zaawansowanych skrzynki. 

Czytaj dalej