digitalocean-vertical-eps

Own Linux VPS

0

Znów trochę czasu minęło od ostatniego posta, ale tym razem i temat i środowisko inne :)

Z racji iż postanowiłem w końcu darować sobie hosting współdzielony (mimo iż ten na Webio był całkiem niezły i nie miałem raczej powodów do narzekania, to nastąpił jednak moment, w którym już nie wystarczał i ograniczał) i zakupić na początku małego VPS-a, to musiałem wcześniej zainwestować trochę czasu w przypomnienie sobie Linuxa, jego obsługi, etc. Do tego administracja tym systemem była dla mnie cokolwiek nowością – tego musiałem się w sumie nauczyć i zgłębić temat.

Wybrałem na początek najmniejszą instancję z Ubuntu na pokładzie z oferty DigitalOcean i muszę przyznać, że jestem zachwycony. Początkowo trochę się obawiałem, czy 512 MB ramu wystarczy do jego poprawnej pracy – czyli do udźwignięcia bazy MySQL, kilku stronek, bloga i aplikacji webowych, ale okazuje się, że jest to ilość wystarczająca do porządnej pracy i do tego przy minimalnym obciążeniu.

Kilka lat doświadczenia tylko z platformą Microsoftu, czy to w kwestii serwerów, czy desktopów jest w stanie zepsuć poczucie racjonalności odnośnie doboru parametrów do maszyny, którą ma zamiar się zakupić – jako, że 512MB ramu to byłaby ilość wystarczająca (albo i nie) na poprawne działanie samego systemu. O dodatkowym oprogramowaniu można byłoby zapomnieć. Jeśli do tego doliczyć takie niuanse jak brak normalnej konsoli, brak SSH, czy mocno żałosny uptime, to aż się człowiek zastanawia, kto to kupuje. No, ale mniejsza – kto racjonalny używa Windowsa jako systemu serwerowego? :)

W każdym razie, okazuje się, że wystarczą tylko chęci i zapał by poprawnie skonfigurować usługi, zabezpieczyć system i bazę danych bez jakiejś specjalistycznej wiedzy na temat systemów unixowych. Oczywiście są rzeczy, których uczę się w trakcie, jak na przykład dzisiejszy problem z MySQL. O dość losowej godzinie baza miała awarię i przestała odpowiadać. Z racji iż codziennie korzystam z różnych rzeczy, które tej bazy używają dość szybko zorientowałem się o niedostępności i rozpocząłem badanie co poszło nie tak.

Okazuje się, że logi MySQL są bardzo pomocne w dochodzeniu problemów (przynajmniej tego jednego – wcześniej nie potrzebowałem specjalnie z nich korzystać) i okazało się, że stała się rzecz całkiem głupia – zabrakło pamięci.
xxxxxx 19:59:20 InnoDB: Fatal error: cannot allocate memory for the buffer pool
Na Linuxie brak pamięci nie jest niczym problematycznym o ile skonfiguruje się wcześniej SWAP file, co po polsku nazywamy chyba przestrzenią wymiany. Z tego co widziałem analizując problem, VPSy domyślnie są udostępnione bez takowej przestrzeni skonfigurowanej. Dlatego, konfigurując nowy VPS, warto pamiętać o SWAP, aby ustrzec się nieprzyjemności. Zapewne problem jest oczywisty i znany wszystkim specjalistom, ale dla tych dopiero rozpoczynających swoją przygodę z Linuxem na serwerach być może nie. Dla mnie była to nowość :)

Żeby nie było – instalując samemu nowy system z płytki na ogół się ustrzeżemy przed tym, gdyż większość instalacji albo automatycznie sama konfiguruje plik SWAP, albo przy wyborze partycji, na której ma zostać zainstalowany Linux, wskazuje i nakazuje potrzebę utworzenia takiego pliku.

Znając już problem rozwiązanie jest trywialne i tutorialowe:

Instrukcja utworzenia pliku SWAP na Ubuntu

Instrukcja jest nawet w kategorii samouczków na DigitalOcean i nawet nie wiem czemu ją przeoczyłem :)

I przy okazji kilka słów o samym DigitalOcean – może się komuś przydać jak sam się rozgląda za przyzwoitym VPSem.

Zalety

    • śmiesznie tani ($5 / mies.)
    • brak problemów technicznych po stronie dostawcy
    • dostępna lokalizacja europejska – Amsterdam
    • wysoki uptime
    • łatwy system rozliczeń i opłat (PayPal lub karta)
    • okres próbny i czasami można się załapać na bonusy
    • całkiem łatwa konfiguracja NS
    • bezpłatny backup
    • bardzo dobre tutoriale i samouczki dla osób dopiero zaczynających

Także jakby się ktoś zastanawiał cały czas nad wyborem VPS zastanawiał, to gorąco polecam :)

157454567779FE1B16.png

Bootstrap Orchard Admin Theme

0

Witam serdecznie!

Trochę czasu upłynęło od ostatniego posta i też sporo w tym czasie się zmieniło. Ostatnio w pracy zajmuje się dość intensywnie różnej maści User Experience w aplikacjach webowych oraz dla naszego klienta wykorzystujemy Orchard framework jako bazę dla wszystkich nowych funkcjonalności. Z racji iż w ostatnim projekcie mieliśmy wystarczającą swobodę by wykorzystać programistycznie panel administracyjny tegoż Orcharda pojawił się pewnego rodzaju problem – mianowicie platforma ta jest na starcie bardzo uboga jako środowisko pracy web designera, a propozycje różnej maści kontrolek są co najmniej marne, to pomysł był prosty – dołączamy do motywu administracyjnego Bootstrapa od Twittera, kilka innych rzeczy – i jesteśmy gotowi do rock’n’rolla i tworzenia własnych modułów w przyjazny dla użytkownika sposób SmileTheme

(more…)

Tłumaczenie własnych modułów w Orchard CMS Framework

1

Dziś z pewnych względów ciekawy wpis o tym jak – z deweloperskiego punktu widzenia – najłatwiej i najprzyjemniej tłumaczyć własną zawartość we względnie nowym frameworku jakim jest Orchard Framework. Oczywiście nie będzie mnie interesować w tym wpisie jak ma się sprawa tłumaczeń na poziomie użytkownika korzystającego z systemu – only developer issues ;]

Na wstępie jednak kilka słów na temat samego frameworka, bo o nim jeszcze na moim blogu nie było mowy. Orchard Framework jest to system zarządzania treścią dla platformy .NET, który powstał jakoś na początku 2011 roku i był dość mocno wspierany i promowany przez Microsoft. Ta promocja i zespół wsparcia wynikały z tego iż, Orchard miał wypromować nowe technologie tej samej firmy i pokazać ich realną wartość w realnym świecie; kwestia czy zostało to osiągnięte czy nie – jest już trudna do rozstrzygnięcia, jednak z mojego (zapewne ograniczonego) punktu widzenia, w dalszym ciągu Orchard nie jest w stanie nawet minimalnie zbliżyć się do najpopularniejszego na rynku WordPressa (przynajmniej jeśli chodzi o system klasy CMS). Ale nie o tym jest niniejszy artykuł ;]

Jeszcze z technicznego punktu widzenia: Orchard jest oparty na ASP.NET MVC 3; wykorzystuje Razor View Engine, zaś domyślny layout narzuca wykorzystanie HTML5, co jest niewątpliwie miłym akcentem – co daje nam faktycznie przegląd nowości w tym frameworku :)

(more…)

image.png

Sublime Text 2 i MSBuild

1

imageWitajcie, dziś krótki wpis o tym jak pozbyć się (przynajmniej w pewnej części) Visual Studio z pracy nad projektem. Wpis ten nie działa zawsze i generalnie odradzałbym kombinowanie nad nim przy konfigurowaniu WCF-ów, tworzeniu kodu tylko w C#, intensywnej pracy nad kodem, który jest następnie generowany przez VS (wszystkie Custom Tool buildery i T4). W moim przypadku idealna sytuacja to np. praca nad layoutem w plikach *.cshtml (w przypadku Razora), *.spark (w przypadku Spark View Engine) oraz ewentualnie *.aspx i *.ascx i jakieś pojedyncze zmiany w plikach *.cs z kodem.

Sytuacja, w której byłem przez ostatnie kilka dni była trochę frustrująca: najpierw tworzę sobie coś w Sublime Text, zapisuję i widzę, że dorzuciłem 2 zmienne w modelu, więc muszę się przełączyć do VS, które najpierw płacze, że pliki mu się pozmieniały, potem musi je przeładować, później prewencyjnie zwiesić się na kilka sekund i dopiero wtedy można sobie przebudować projekt. Strasznie irytujące i do tego – na co mi włączony program zżerający 1GB RAMu, którego nie potrzebuję?

(more…)

image.png

Kontrolowane psucie ASP.NET–wiele formularzy na stronie

0

imageDziś wpis o tym jak w kontrolowany sposób popsuć ASP.NET tak by osiągnąć pewne cele, które generalnie byłyby nieosiągalne stosując się do zaleceń Microsoftu odnośnie wykorzystania ich własnej platformy. Będzie słów kilka o workaroundach do różnych ograniczeń z przykładowym wykorzystaniem.

Wszyscy na pewno wiedzą o tym, że ASP.NET pozwala na wygenerowanie tylko i wyłącznie jednego taga typu form na stronie internetowej, co ma swoje wyjaśnienie w samej logice działania serwera ASP.NET, postbackami, view statem, itd. Próba obejścia tego w normalny sposób poskutkuje wygenerowaniem odpowiedniego błędu i zakończeniem procesu renderowania strony. Jednakowoż jest możliwe stworzenie strony z wieloma formularzami i to ponadto w taki sposób by całość działała w sposób przewidywalny i stabilny. I dziś będzie właśnie o tym workaroundzie i wszystkim co należy wiedzieć, zanim zechce się skorzystać z tej “profanacji” (dla ludzi z Microsoftu to prawdopodobnie jedyne określenie jakie by zastosowali wobec takiego pomysłu).

(more…)

image.png

Cudów z Sublime Text 2 ciąg dalszy…

14

imageNiedawno był wpis o naprawdę wspaniałym edytorze jakim jest Sublime Text 2. Wtedy postarałem się przedstawić sporo użyteczności i ciekawostek jakie do tego czasu udało mi się zlokalizować/poznać. Dziś ciąg dalszy nowości (tak na “gorąco” bym rzekł), które przedstawię w formie, która – mam nadzieję – rzuci czytelnikiem na kolana (u mnie było całkiem blisko).

W gwoli ścisłości – ja obecnie korzystam z wersji deweloperskich (czyli coś zbliżonego do Night Buildów); wersje beta, które pojawiają się od czasu do czasu mogą się nieznacznie różnić – trzeba to mieć na uwadze.

A więc bez owijania w bawełnę – zaczynamy!

(more…)

loga.jpg

Useful tools for programmers (but not only)

8

logaToday there is a kinda unusual entry, because instead of solving another mankind problems I will provide a list of my favourite applications for everyday use without which I cannot imagine working as a developer / designer. But selected programs are also great for common activities performed by average users. Entry may be interesting because I tend to use a rather interesting, rare and exceptionally functional software, which, for most of people, may be unknown. There won’t be any kind of categorization of programs – just plain list with screenshot and short description. Some of the suggested applications could be mentioned or described in earlier entries. Also, as a continuous user of software designed for systems branded with Microsoft’s logo, I will limit my list to applications dedicated for the Windows platform.

So, let’s begin!!

(more…)

image.png

MSBuild i Publish ASP.NET website

2

W firmie od dłuższego czasu przymierzałem się do wdrożenia pewnego niewielkiego i – w sumie tylko na wewnętrzny użytek – narzędzia do zautomatyzowania procesu wdrażania paczek u klientów. To co zautomatyzowane było do tej pory przeze mnie – to kompresowanie całego projektu do 7z, kopiowanie na serwer ftp, ściąganie paczki u klienta, rozpakowanie, podmiana oraz wykonanie backupu bazy. Wszystko wykonywane jako skrypt, a nie program (notabene właśnie po to z założenia są skrypty).

Po drodze – przy próbach stworzenia takiego narzędzia – pojawiły się 2 zasadnicze problemy wynikające z ograniczeń platformy (tu mowa przede wszystkim o Powershell oraz MSBuild). I o nich jest właśnie dzisiejszy wpis.

(more…)

image.png

Sublime Text 2

28

imageDziś dość użyteczny wpis dla osób, które poszukują wydajnego, użytecznego i mocno funkcjonalnego edytora tekstu dedykowanego dla programistów. Postanowiłem zebrać w jednym miejscu moje doświadczenia z poniżej prezentowaną alternatywą dla takich programów jak Notepad++, Notepad2 a nawet Visual Studio oraz przedstawić jego możliwości. Bohater dnia dzisiejszego: Sublime Text 2. Poniżej zaprezentuję zalety i wady (tak, ma jedną xD) oraz odkryte przeze mnie możliwości.

(more…)

image.png

Mercurial’s Central Repository on Windows Server

3

imageLately I’ve written about that we we decided to change our version control system in favour of Mercurial, and today I will provide some facts about our migration, harmless central repository’s installation especially for .NET programmers and about other things, which may come in useful for everyone willing to do the same :)

(more…)

Go to Top