Codice

Codice (wł. kodeks, kod) to system do zarządzania notatkami i zadaniami do wykonania, który pierwotnie napisałem na rzecz własnych zastosowań kilka ładnych lat temu. Ze względu na rosnące potrzeby, błędy które znajdowałem od czasu do czasu oraz świadomość, że każdy kod zasługuje w pewnym momencie na nieco poprawek postanowiłem zebrać się w sobie i na bazie starego skryptu napisać całkowicie nową wersję.

W chwili obecnej Codice 2.0 cechuje się następującymi możliwościami:

  • zapis notatek w dwóch formatach: HTML lub Markdown
  • kategoryzowanie notatek za pomocą etykiet
  • ustalanie terminu wykonania i oznaczanie stanu zadania na jego podstawie (oczekujące/zbliżające się/wykonane/przekroczone)
  • wyszukiwanie notatek
  • rejestr wszystkich logowań do aplikacji
  • tworzenie kopii zapasowej wszystkich danych, z poziomu aplikacji
  • dodatkowe udogodnienia w postaci podświetlania kodu źródłowego oraz dynamicznego ładowania notatek (tzw. infinite scroll zapewniający mniejsze obciążenie strony przy dużej ilości treści)

Poniżej kilka zrzutów ekranu - pierwszy z nich obrazuje wcześniejszą wersję skryptu, dla celów porównawczych.

Instagram ripper

Skrypt pozwalający na pobranie wszystkich zdjęć dla danego konta w serwisie Instagram. Napisany przy użyciu PHP CLI (Command Line Interface) pozwala na zrippowanie wszystkich zdjęć należących do określonego użytkownika bez użycia API. Wyklucza to konieczność rejestrowania aplikacji w serwisie developerskim Instagrama i likwiduje problem ewentualnych ograniczeń czasowych narzuconych przez serwis.

Użycie jest trywialnie proste i ogranicza się do wydania polecenia php ripper.php nazwa_konta z poziomu konsoli. Zapisane pliki zostaną podzielone według kont i ponumerowane tak, aby odzwierciedlały chronologiczny porządek zdjęć.

Obecnie skrypt nie jest dostępny publicznie.

MobsControl

MobsControl jest bardzo prostą wtyczką przeznaczoną dla serwera Bukkit, który umożliwia grę multiplayer w Minecrafta. Wtyczka blokuje kilka z zachowań mobów (potworów), są to:

  • Creepery eksplodują zadając normalne obrażenia, ale nie niszczą żadnych bloków. W ten sposób unikniesz strat na mapie w ich wyniku.
  • Endermany nie mogą podnosić żadnych bloków. Skutecznie blokuje dewastację mapy, endermany będą nadal występować i atakować gracza, po prostu nie będą nic podnosić.
  • Zombie nie mogą wyłamywać drzwi. Uwaga: zombie będą nadal podążać w kierunku drzwi i uderzać w nie. Plugin blokuje jedynie możliwość ich wyłamania. Wynika to z faktu, że w obecnej wersji API nie ma możliwości wyłączenia ataków na drzwi, wymaga to przekompilowania Bukkita.

Ostatnia wersja na jakiej testowałem wtyczkę, to Bukkit 1.2.5, jednak powinna spokojnie działać z nowszymi :) Wtyczki można bezproblemowo używać na serwerach Tekkit.

Najpierw wypakuj archiwum ZIP. Plik MobsControl.jar wrzucamy po prostu do folderu /plugins i uruchamiamy serwer. Bardzo zależało mi na maksymalnej prostocie wtyczki, dlatego nie dodaje ona żadnej nowej komendy, nie tworzy plików konfiguracyjnych, ani nie spamuje w żaden sposób logów serwera. Aktualnie nie planuję dodawania żadnych nowych funkcjonalności do pluginu.

Pobierz

System użytkowników

Napisany na potrzeby publikacji na ForumWeb skrypt użytkowników. W jego skład wchodzi klasa PHP umożliwiająca uwierzytelnianie użytkowników, podstawowe operacje na nich oraz zestaw plików potrzebnych na praktycznie każdej stronie implementującej taki system, takich jak:

  • Rejestracja
  • Logowanie
  • Wylogowywanie
  • Profile użytkowników

Mając podstawowe umiejętności z zakresu PHP, do skryptu można dobudować kolejne komponenty, na przykład przypominanie hasła, czy aktywację kont poprzez email.

Na początku roku 2015 opublikowałem całkiem nową wersję skryptu, naprawiającą problemy zgłoszone przez wielu użytkowników pierwszej wersji. Podniesiono także standardy bezpieczeństwa i jakość kodu, tak, aby nie odstawała od obecnych czasów.

Linki do tematów poświęconych obu wersjom i paczek je zawierających znajdują się poniżej.

Zobacz temat na forum (2.0)
Pobierz (2.0)

Zobacz temat na forum (1.0)
Pobierz (1.0)

Iron CMS

IronCMS to prosty system zarządzania treścią mojego autorstwa. Od początków mojej styczności z PHP (rok 2009/10) marzyłem o napisaniu CMS-a, jednak ostateczna decyzja jego stworzenia narodziła się pod koniec grudnia 2010 r. Wtedy zacząłem pisać i w kilka dni miałem gotowy szkielet CMS-a. Był to w zasadzie panel administracyjny, system użytkowników (jeśli można tak nazwać logowanie i rejestrację), wyświetlanie podstron i kilka innych drobnostek.

Potem odkryłem przyjemność jaką daje rozszerzanie takiej podstawy o nowe możliwości. W ten oto sposób powstawały kolejne wersje, a do mojego jednoosobowego teamu dołączył m4tx, który wniósł kilka istotnych pomysłów do skryptu. Jednak wszystkie, aż do wersji 0.4 były oparte na tej samej, niedoskonałej podstawie.

Dlatego też dnia 25.03.2011 zacząłem przepisywać IronCMS-a od nowa. Miało to wyeliminować pewne archaizmy, nieoptymalne miejsca i ogólny bałagan w kodzie oraz na dobre ustalić pewne standardy kodowania. Operacja ta zajęła mi dokładnie 20 dni. Powoli zaczęło to nabierać kształtów. Potem jeszcze tylko spędziłem kilka pasjonujących godzin na badaniu jakie zapytania wysyła do bazy mój skrypt i zmniejszyłem ich ilość o 50%. Tak oto powstała hucznie przeze mnie świętowana wersja 1.0, którą postanowiłem pokazać światu. Niestety tego dnia mój team stał się ponownie teamem jednoosobowym z powodu braku czasu i praktycznie zerowego udziału drugiego uczestnika projektu.

Ponowne podejście do tematu CMS-a, z wykorzystaniem nowych nabytych umiejętności ogłosiłem na swoim blogu 9 grudnia 2012, czyli niemalże 2 lata po pierwszych betach IronCMS-a. Wersja 2.x mimo ambitnych planów została dociągnięta jedynie do stanu trzech niepublicznych wersji beta, a następnie jej rozwój został zawieszony bezterminowo.

Wszystkie opublikowane wersje skryptu możesz znaleźć w niżej zalinkowanym folderze. Nie świadczę żadnego wsparcia technicznego i mimo wielu starań dołożonych w procesie tworzenia, nie gwarantuję niezawodności produktu.

Pobierz skrypt

YouTube Viewer

Jeden z moich pierwszych skryptów (jeśli w ogóle można to określić mianem skryptu). Napisany jeszcze we wrześniu 2010 roku (moje początki z PHP)

Skrypt pozwalający na ominięcie limitów wiekowych dotyczących filmów z serwisu YouTube.

Zobacz skrypt

WordPress Cleaner

Zaprezentowany skrypt służy do usuwania rewizji wpisów z bazy danych skryptu WordPress. Rewizje to automatycznie zapisywane kopie przez edytor wpisów, są tworzone co jakiś czas, głównie po to, aby nie utracić wpisu po nieoczekiwanym zamknięciu strony edycji (np. poprzez brak zasilania i wyłączenie komputera).

Rewizje potrafią czasem nawet kilkukrotnie powiększać tabelę wp_posts.

Skrypt pobiera wszystkie potrzebne dane z pliku wp-config.php. Został on przystosowany do umieszczenia w katalogu głównym WordPressa, jeśli chcesz go używać w innym folderze, po prostu zmień ścieżkę w drugiej i trzeciej linijce. Po zakończeniu czyszczenia skrypt najlepiej jest usunąć lub przenieść w bezpieczne miejsce, nieuprawnione czyszczenie danych nawet tak z założenia tymczasowych jak automatyczne kopie wpisów nie jest zachowaniem pożądanym.

Zobacz kod źródłowy na GitHubie
Pobierz

Generator Mhrocznych Nazw

Skrypt stworzony z nudów piątkowym popołudniem czwartego marca 2011 roku. Korzysta on z małego słownika, który składa wszelkie "mroczne" frazy tworząc nazwę zespołu metalowego.

Oczywiście nie ukrywam, że skrypt nie jest pozbawiony wad, tak więc mogą się trafić kwiatki w stylu powtórzonych słów, czy nie pasujących zlepków spójników itd.

W tzw. najbliższej przyszłości napiszę po prostu wyrażenie regularne które zapobiegnie takim sytuacjom.

09.03.11
Przysiadłem na chwilkę i napisałem drobną poprawkę do skryptu, która powinna zapobiegać takim sytuacjom jak:

  • nazwa składająca się z dwóch identycznych słów jak "Cannibals Cannibals"
  • podwójne wystąpienie obok siebie spójnika of bądź ov

Nie ukrywam, że powyższe rozwiązanie ma pewną wadę. Mianowicie gdy dwa razy pod rząd zostanie wylosowana taka bezsensowna nazwa, to ta druga jest już wyświetlana. Mam nadzieję jednak, że te zmiany ograniczą lekko bezsensowne nazwy.

Zobacz skrypt