sobota, 17 stycznia 2015

CyanogenMod

Ost. czasy zainteresowałem się nieco bardziej szeroko rozumianym "bezpieczeństwem w internecie". Mówiąc "szeroko rozumianym", mam również na myśli ochronę prywatności, włączając w to również ochronę przed programem PRISM. O ile w dzisiejszych czasach całkowite "zniknięcie" jest niemożliwe, o tyle zawsze można próbować chronić swoją prywatność. Szczególnie, gdy po ost. atakach terrorystycznych na gazetę Charlie Hebdo słyszy się głosy polityków chcących wprowadzić pełną inwigilację (oraz cenzurę) internetu uk-spy-agencies-need-more-powers-says-cameron.

W tym miejscu, należy wspomnieć słynny cytat Benjamina Franklina:
"Ci którzy rezygnują z Wolności w imię bezpieczeństwa, nie zasługują na żadne z nich."
Ale w takim razie jak się bronić?
Z całą pewnością, trzeba mieć świadomość, jakie dane zbierają na nasz temat amerykańskie korporacje. Jednym z najbardziej krytycznych urządzeń, jest tel. komórkowy, z zainstalowanym modułem gps oraz podłączeniem do internetu. Taki tel. posiada głośnik, mikrofon, kamerę, lokalizator gps. Dosłownie wszystko, czego potrzeba, aby śledzić oraz inwigilować daną osobę.

Na pierwszy ogień idzie wiec wymiana systemu operacyjnego. Domyślny system jaki miałem, czyli Android niestety, nie pozwalał mi na pełną kontrolę, np. nie pozwalał mi na usunięcie aplikacji do portalu facebook.com. Nie dało się odinstalować facebooka, to odinstalowałem cały system ;)

Czy instalacja jest trudna? Nie. Uważam, że jest stosunkowo prosta.

Na wiki cyanogenmod'a znaleźć odpowiedni, dla siebie model tel., a nast. wejść w link pod zakładką "Installation", np. Install_CM_for_anzu.

Proces instalowania jest opisany bardzo dobrze. O ile czasami trzeba doinstalować pewne dodatkowe biblioteki (np. adb) lub uruchomić niektóre skrypty jako root (np. sudo fastboot zamiast fastboot) o tyle jedny większy problem miałem dopiero przy punkcie 8, w którym syst. operacyjny na laptopie (Ubuntu) nie wykrywał podłączonego urządzenia, ale wtedy znalazłem inny przydatny link, dzięki któremu udało mi się sprawnie dokończyć proces instalacji.



piątek, 16 stycznia 2015

NancyFx Razor Wiele przycisków na jednej stronie (Multiple submit on one form)

Jeżeli zdecydujemy się porzucić stare "web.form" i w warstwie widoku przejść na syntaks Razor, to wtedy spotykamy się z problemem "wiele akcji w jednej formie". O ile podstawowa implementacja wygląda mniej więcej tak:

                <form name="xyzForm" id="xyzForm" class="xyzForm" action="/" method="post">
<input type="submit" value="Generuj raport" id="btnGenerate" class="btnGenerate" />
                </form>

Ten syntaks oznacza, że każde naciśnięcie każdego przycisku (input type="submit") wewnątrz tego form'a spowoduje wywołanie akcji kontrolera:        
        public MainModule(IDataStore dataStore)
        {
            Post["/"] = parameters =>
            {
                 return null;
            };
        }

A co jeśli chcemy, mieć kilka przycisków w jednej formie, odpowiedzialnych za kilka osobnych akcji? Z NancyFx oraz drobną pomocą Ajax'a nie stanowi to żadnego problemu:


                 <form name="xyzForm" id="xyzForm" class="xyzForm" action="/" method="post">
<input type="submit" value="Generuj raport" id="btnGenerate" class="btnGenerate" />
                    <input id="saveReportSpec" type="button" value="Zapisz ustawienia raportu dla klienta" onclick="saveReportSpecJs(); return false;" />
                </form>

        <script type="text/javascript">
            function saveReportSpecJs() {
                var $formData = $('#xyzForm').serialize();

                $.post('/Ajax/SaveReportSpec/', $formData, function (data) 
               {
              //TODO: jeżeli metoda coś zwraca, to tutaj działamy na 'data.'
                }
               );
            }

W przypadku html-a niewiele się zmieniło (dodaliśmy nowy przycisk, tym razem typu button) oraz ustawiliśmy wywoływanie javascriptu pod zdarzeniem "onClick".
Sam javascript, wywołuje nasz kontroler. Co ważne, jako parametr podajemy zserioalizowany formularz (form), dzięki któremu będziemy mogli później w osobnym kontrolerze posługiwać się danymi z formularza.
Prosty kod Modułu (kontrolera) dla tej akcji.

        public AjaxModule(IDataStore dataStore) : base("Ajax")
        {
            Post["/SaveReportSpec"] = _ =>
            {
                return null;
            }
        }

Jako parametr przekazujemy zserializowaną formę, abyśmy później mogli korzystać w kontrolerze z danych zawartych w formie, np.:

<input id="cbXYZ" name="cbXYZ" type="checkbox" />

Odczytujemy za pomocą:

            var cbXYZ= Request.Form.cbXYZ;




sobota, 3 stycznia 2015

Chocolatey , czyli.. taki windowsowy 'apt-get' ;-)

Chocolatey to jest manager pakietów, podobny do NuGet'a, ale operujący z poziomu systemu operacyjnego, czyli... taki windowsowy odpowiednik apt-get znanego z syst. Debian/Ubuntu.

Jego instalacja jest banalnie prosta, ponieważ wystarczy za pomocą wiersza poleceń uruchomić skryp powershela:


@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

Teraz, posiadając zainstalowane chocolatey, możemy instalować pakiety, korzystając z jego pomocy np., aplikację o nazwie 'vlc' instalujemy wpisując w linii komand:
cinst vlc
Proste i przyjemne? Jak najbardziej, szczególnie, że samo sobie pociągnie wszelkie "zależności", czyli... jeżeli będzie potrzebować dodatkowej biblioteki, to spróbuje ją pobrać (podobnie jak NuGet).

Jedyne na co trzeba uważać, to czy podczas instalacji Chcolatey skorzystało z odpowiedniej zmiennej PATH (patrz kod instalacji), ale gdyby z jakiegoś powodu ta zmienna się nie dopisała, to warto ją ustawić ręcznie.

Linki:
Fajny art. z pcworld.com jak korzytać z chocolatey
Oficjalna strona projektu
Link do githuba

edit:
Windows 10 będzie posiadał swój własny "menager pakietów" o nazwie "OneGet"

czwartek, 1 stycznia 2015

KeePassX – przechowuj hasła bezpiecznie (i wieloplatformowo)

W jednym z moich poprzednich wpisów, z maja 2014 zrobiłem notkę nt. programu KeePass. Kto nie zna tego programu, niech się zapozna, ponieważ zwiększa on bezpieczeństwo haseł, jakie mamy na różnych serwisach internetowych.

Dzięki temu programowi, możemy mieć unikalne i bardzo bezpieczne hasła dla każdej z witryn, do których się logujemy. KeyPass sam w sobie jest fajny, ale posiadał pewne ograniczenie -> został napisany w .NET, a co za tym idzie, natywnie działał pod Windowsem lub za pomocą biblioteki Mono na Linuksach.

Teraz przedstawiam kolejną ewolucję tego oprogramowania, czyli KeePassX, który początkowo był portem KeePass na Linuxa, a obecnie został oddzielnym programem.

Linki:
Strona projektu: http://www.keepassx.org/
Adres na githubie: https://github.com/keepassx/keepassx