Blog

Wakadog – devlog aplikacji internetowej na Hack Heroes

Wpis ten będzie miał charakter dziennika.

Hack Heroes to hackathon z okazji Code Weeka, czyli długiego tygodnia od 15. do 23. października. Więcej możecie o nim poczytać tutaj: http://apki.org/news/hack-heroes-wez-udzial-w-codeweekowym-hackathonie.

Pierwsza doba

23:53

Już od początku doby, tj. od północy do jakiejś czwartej zabrałem się za rozpoczynanie projektu. Odpalenie phpStorma, załadowanie wszystkich zależności na composerze i npm-ie. Rozrysowanie na kartce czegoś, na czym będę mógł się opierać podczas pisania i kodowania frontendu i backendu. Obmyślałem podstawowe funkcjonalności aplikacji i zabrałem się za pisanie najprostszego szkieletu backendu, żeby móc się skupić na frontendzie. Dlaczego tak? Lubię widzieć do czego piszę backend, a taki gotowy frontend motywowałby mnie do dalszego pisania. Z racji czasu na backend wybrałem Slim-a, a na frontend nic, prócz frameworka Materialize.css (który swoją drogą jest dużo słabszy niż wygląda, przez jedną dobę zdążył mi już sprawić nie jedną bolączkę).

Czytaj dalej →

Qt – Pierwszy projekt – Fake blue screen

Okej, wstęp już za nami, wypadałoby zrobić jakiś mały programik. W tym poradniku pokażę, jak napisać program, który bardzo przypomina blue screena. Zastosowanie? Można wkręcać znajomych/nauczycieli, u mnie w szkole 4/4 informatyków się nabrało, w tym poradniku wykorzystamy część wiedzy z poprzedniego poradnika, wykorzystamy Qt Quick Controls 2, Qt 5.7.

Dobra, jak się za to zabrać? Zróbmy niebieski ekran, w tym celu do ApplicationWindow podpinamy właściwość, jaką jest kolor i ustawiamy na „blue”, teraz trzeba zrobić, aby nasza aplikacja nie wyglądała jak aplikacja, w tym celu dodajemy właściwość flags i wartość Qt.FramelessWindowHint, kod powinien wyglądać tak: Czytaj dalej →

LockMe – Czyli jak to się wszystko zaczęło

Cześć! Jako że LockMe sprawia bardzo duże zainteresowanie na grupie postanowiłem, że opowiem wam troszkę jak to się wszystko zaczęło 🙂

Ta historia nie jest dość długa, ale mam nadzieję, że kogoś to zainteresuje. Najpierw zacznijmy od mojego życia, od moich początków z programowaniem, bo to ma bardzo duże znaczenie dla LockMe.

Trochę o mnie oraz o pomyśle na LockMe

A więc nazywam się Denis i mam 14 lat. Programowaniem zainteresowałem się gdy miałem 10 lat wtedy dostałem od kolegi jego „program” napisany w Batchu. Chwalił on się tym że można zmieniać kolor tekstu i przechodzić pomiędzy menu. Ja jestem takim typem człowieka, że jak ktoś mi się chwali to zazwyczaj muszę to zrobić lepiej, więc od razu szukałem na YouTube frazy „Jak zrobić program w notatniku”.

Czytaj dalej →

Moja metoda szyfrowania danych #1

Witaj! To co czytasz to mój pierwszy post, więc proszę cię o pozostawienie opinii w komentarzu.

W tym poście opowiem wam o mojej metodzie szyfrowania danych, a konkretnie tekstu. Nie ma tu nic zaskakującego, więc metoda jest prosta, bezstratna i działa w 2 strony.

Tak więc zaczynamy!

Szyfrowanie

Na samym początku przygotujemy sobie funkcję. Czytaj dalej →

Synchronizacja wątków w C# i C++ (Spinlock)

Wielowątkowość, synchronizacja… Ale po co to komu?

Przytoczę pewne bardzo obrazowe porównanie. Wyobraź sobie, że jesteś w restauracji. Podnosisz menu, wybierasz potrawę i czekasz na kelnera. Widzisz, że tymczasowo obsługuje innego klienta. Mija kilka, kilkanaście minut, a kelner wciąż stoi przy stoliku innego klienta, obsługuje tylko jego. Dopiero, gdy klient płaci i wychodzi z restauracji, kelner podchodzi do Ciebie i zaczyna cię obsługiwać. W tym czasie przychodzi inny klient, ale kelner jest zajęty tylko tobą. Mniej więcej tak działa aplikacja jednowątkowa (nasz kelner). W oczywisty sposób jest to nieefektywne.

Wtedy niczym superbohater, przybywa wielowątkowość.
Czytaj dalej →

Zabezpieczanie baz danych

Ochrona przed nieuprawnionym dostępem do bazy danych

Baza danych jest jednym z najcenniejszych zbiorów danych o jaki powinni dbać deweloperzy. Może ona zawierać dane osobowe (imię, nazwisko, adres), dane płatnicze (nr karty, kod ccv2) lub  dane powiązane z logowaniem (hashe haseł, salty).

Pierwszym błędem jaki może popełnić programista to naiwność. Czasami poszukując rozwiązań problemów możemy natrafić na posty typu: „podaj dane dostępowe to pomogę”. Nigdy nie ufajmy takim ludziom. Dane dostępowe do baz danych powinniśmy podawać tylko zaufanym developerom pracującym z nami, ale też nie podajmy danych dostępowym każdemu deweloperowi. Dwie lub trzy osoby wystarczą (powinny to być osoby zajmujące się administracją bazy danych lub backendem, każdy użytkownik powinien mieć indywidualny login. Używanie root do wszystkiego jest ogromną dziurą bezpieczeństwa). Czytaj dalej →

Beabest! Devlog #01 – Czyli jak to wszystko się zaczęło!

Jakiś czas temu, pokazałem na grupie „Nastoletni Programiści” pierwszego screena z odnawianego projektu gry 3D VR na silniku Unity3D. Odzew był zaskakująco miły i dość duży, na tyle, że na FanPage przybyło aż 30 like! Postanowiłem więc zacząć prowadzić tego devloga.

Początek.

Sam projekt zaczął się prawie rok temu. Dokładnie wtedy gdy wystartował konkurs „Daj się poznać!” Zgodnie z zamysłem, ważne były trzy rzeczy : vive, fun i low poly. Miała to być zwykła gra typu „kill them all” z wsparciem dla Vive. Akcja miała się toczyć na małej, latającej wyspie w stylu Low poly. Poly. Jak się już domyślacie, była chooolernie brzydka, główny powód? Ja i grafika? Dobry żart. Jednakże, już wtedy działało wsparcie dla Vive. Krótki czas później wprowadziłem pierwszą arenę z już działającym AI stworzonym dzięki temu projektowi. Wyglądało to już wtedy troszkę lepiej, jednakże, to ciągle nie było to.

Czytaj dalej →

Ledy głosem sterowane – Rozpoznawanie mowy

Wprowadzenie

Przeglądając ciekawe itemy z chin natrafiłem na dość tanią adresowaną taśmę led. Jak to już bywa czasem najpierw się kupuje, a potem myśli. Początkowo miało to służyć jako ambilight, lecz ostatecznie przykleiłem pod półką, która wisi nad biurkiem. Przewiduje 4 opcje sterowania: sterowanie głosowe, panel www, klaśnięcie, przyciski/switche. Całość będzie oparta o Raspberry Pi Zero. Przedstawiane tutaj kody mają jedynie pokazać drogę do stworzenia aplikacji, lecz nie podawać tego na tacy, więc nie nastawiajcie się na kopiuj-wklej 🙂

Czytaj dalej →

Godot Engine Roguelike – Wprowadzenie

Dzień dobry.

W pierwszej części spróbuję Cię przekonać, dlaczego Godot świetnie się nadaje dla niezależnych developerów gier lub po prostu zabawy w domu.

Na początek chyba najważniejsza rzecz, Godot jest open source na licencji MIT, co daje nam możliwość robienia co nam się podoba, wraz z modyfikacją kodu oraz pisania własnych pluginów. Godot dopiero się rozwija, co nie znaczy że jest daleko w tyle za Unity, a nawet z poziomu 2D jest na tym samym poziomie. Jedynie 3D Godot nadrabia, pisząc od nowa cały system trójwymiaru i cieni.

Czytaj dalej →

Rozwijane menu mobilne w czystym CSSie

Witajcie! W tym poradniku pokażę wam w jaki sposób przy użyciu czystego CSSa zrobić rozwijane menu, będące jednym z najpospolitszych rozwiązań nawigacji na urządzeniach mobilnych.

Zaprezentowany sposób nada się także do podobnych zastosowań, jak chociażby znany z for internetowych [spoiler]

Zasada działania

Cała filozofia działania opiera się na input[type="checkbox"] wraz z label’em. Checkbox chowamy, label stylujemy na przycisk lub odnośnik, a w CSSie pokazujemy i chowamy zawartość menu przy użyciu pseudoklasy :checked oraz selektora rodzeństwa ~.

Czytaj dalej →