ExtCpp0x – pierwszy dodatek na Chrome’a

4

Czymże jest tytułowy ExtCpp0x zapytacie? Z pewnością nie jest to dodatek dla szerokiej grupy odbiorców. Powiem wprost – jeśli nie znasz strony cpp0x.pl, nie wiesz, co to C++, lub nawet nie wiesz tak do końca co to jest programowanie, prawdopodobnie wpis ten nie odmieni Twojego życia… 🙂

ExtCpp0x to, mówiąc krótko, prosty dodatek rozszerzający nieco możliwości cpp0x.pl (ciężko się było domyślić, wiem). Konkretnie dodaje on możliwość numerowania kodu źródłowego, szybkiego skopiowania go do schowka i paru innych rzeczy nieprzydatnych dla ZU (Zwykłego Użytkownika).  Z góry mówię, że jestem leniem, a mój dodatek to bezwartościowy port dodatku napisanego przez niejakiego xevuela – oryginalny ExtCpp0x był bowiem na Firefoksa. Na chwilę obecną moja wersja rozszerzenia nie różni się zbytnio od wersji oryginalnej, zmiany będą bardziej widoczne dopiero w kolejnych wersjach, kiedy zostaną dodane opcje i inne nieco bardziej browser-dependent rzeczy. W następnych wersjach planuję także dodać auto-update.

Nie będę się tu zbytnio więc rozwodził. Przedstawię krótką listę osób, bez których mojego dodatku by tu nie było:

  • xevuel – autor oryginalnego ExtCpp0x na Firefoksa
  • malan – zapożyczyłem sobie parę mechanizmów z pewnego jego dodatku (również przeznaczonego na cpp0x.pl) – mam nadzieję, że mnie nie zje za to 😉
  • Ludzie ze stackoverflow
  • Niejaki Manticore, który na grupie dyskusyjnej/forum/whatever Chromium przedstawił działający kod kopiowania tekstu do schowka systemowego dla Chrome i chwała mu za to
  • Moja rodzina
  • Mój pies
  • Mój pies (drugi)
  • Maskotka Małego Głoda
  • Kamerton i kostka (gitarowa), którymi bez przerwy się bawiłem pisząc ten dodatek

Download – na m4txblogu, bo nie będę placił Google’owi 5USD żeby łaskawie mi umożliwili wysłanie ExtCpp0x do Chrome Web Store
Topic xevuela na cpp0x.pl (uwaga – tylko dla zarejestrowanych użytkowników)

Dziękuję, dobranoc.

Android i pierwsza aplikacja na niego

0

Około 2 tygodnie temu stałem się posiadaczem wynalazku zwanego smartfonem z Androidem, a dokładniej Samsunga Galaxy Ace 2. Już po tych dwóch tygodniach (wczoraj konkretnie) zainteresowałem się pisaniem aplikacji na system operacyjny z zielonym robocikiem w logo…

O samym Androidzie nie będę się zbytnio rozpisywał, bo to nie miejsce na to, jednak powiem co nieco na temat pisania na niego aplikacji. Programowanie bowiem na Androida jest wbrew pozorom bardzo wygodne. O ile na J2ME trzeba było się zazwyczaj męczyć z emulatorami, a potem ręczną instalacją aplikacji na realnym sprzęcie, o tyle w przypadku Androida życie mamy znacznie ułatwione. Wystarczy podpiąć smartfona do komputera, włączyć debugowanie USB (na Windowsie również zainstalować sterowniki…), aby móc wcisnąć „Run” w Eclipsie, a po sekundzie czy dwóch – oglądać wyniki na ekranie urządzenia. Otwieramy sobie dodatkowo okno LogCata w Eclipsie, i…? I mamy podgląd standardowego wyjścia (które jest, jak wiadomo, niezastąpione przy debugowaniu), wyrzucone, niezłapane  wyjątki, oraz inne przydatne rzeczy. Ogromny plus jeśli chodzi o tworzenie aplikacji.

Pokrótce mogę również pochwalić Eclipse’a (czy raczej plugin Android Development Tools) za znakomity edytor RAD, pozwalający w prosty sposób zaprojektować GUI nawet złożonych aplikacji, oraz samego Androida za system zarządzania zasobami aplikacji. Zarządza się nimi bowiem za pomocą plików XML – to właśnie w XML-u składowane są aktywności (odpowiedniki okien), ciągi znaków, ścieżki do obrazków i inne.

Jeśli chodzi o spostrzeżenia związane z programowaniem programów i gier na platformę Android, to póki co – tyle, albowiem w tej kwestii nie zagłębiałem się jeszcze zbytnio. Przejdźmy teraz natomiast do właściwej części wpisu, czyli do samej aplikacji…

„Cóż to za aplikacja” – zapewne zastanawiacie się. Patrząc na jej nazwę dochodzę do wniosku, że to już jest chyba tradycja, że portuję ją niemal na każdą nową platformę, na którą uczę się pisać aplikacje. Pewnie już wiecie o czym mówię. Tak, chodzi o aplikację…

SmsPrice

której pierwsza wersja została opublikowana na m4txblogu 7 lipca 2010 roku w wersji na Windowsa. 10 lipca 2011 roku został opublikowany jej port na platformę Java Platform, Micro Edition. Teraz powstał natomiast kolejny port, dodający po raz kolejny nowe „ficzery”, ponownie na platformę mobilną, tym razem na Androida.

Co zostało ulepszone? Przede wszystkim, dodałem numery 8XXX, 5XXX, oraz 6XXX. Z racji, iż numery 5XXX oraz 6XXX dotyczą SMS-ów przychodzących, dodałem wyświetlanie informacji na temat czy płaci się za SMS-y wysyłane, czy zwrotne. Zamiast starego „Za tego SMS-a zapłacisz: X.XXzł z VAT (X.XXzł bez VAT)”, jest „Cena netto: X,XXzł” i „Cena brutto: X,XXzł”, w osobnych linijkach. Nie jest już wyświetlana cena SMS-a 0,00zł; teraz po prostu jest napisane „SMS darmowy”. Dodałem przycisk usuwający wpisany numer telefonu oraz okno „O programie” (co prawda było ono w wersji Windowsowej, jednak pozbyłem się go w wersji J2ME; teraz ponownie wraca). Jeśli chodzi o porównanie nowej wersji SmsPrice’a ze starymi, to to by było na tyle. Zapraszam więc tradycyjnie do downloadu i pozdrawiam 🙂

Carnobyl – nowa gra

0

Na m4txblogu nie pisałem od bardzo dawna, jednak z racji, iż wreszcie mam jakiś temat na nowy wpis, to i go postanowiłem napisać.

Czym więc jest tytułowy Carnobyl, zadajecie sobie zapewne pytanie? Otóż Carnobyl, drodzy czytelnicy m4txbloga, to mój nowy projekt gry, nad którym pracowałem ostatnie półtora tygodnia. Pierwotnie miała to być gra na compo organizowane na warsztacie, jednak z racji niespełnienia warunków (rozmiar pliku wykonywalnego…), nie mogłem wziąć udziału. Szkoda mi jednak było wyrzucać ten projekt, dlatego też postanowiłem go opublikować, nie poprzez compo, a na m4txblogu.

Czym konkretnie jest jednak Carnobyl? Gra ta jest inspirowana serią Carmageddon, a to już coś mówi. Jest to konkretnie gra 2D z widokiem od góry, w którym sterujemy samochodem, a głównym celem gracza jest rozjechanie wszystkich przechodniów. To, co wyróżnia tę grę od innych i zarazem jest jednym z warunków uczestnictwa we wspomnianym już compo (który już akurat spełniłem) jest to, iż generuje ona całą wykorzystywaną grafikę z poziomu kodu. Carnobyl nie wykorzystuje ŻADNYCH zasobów własnych, żadnych plików graficznych. Dodatkowo jest możliwość ustawienia ziarna losowości za pomocą parametru –seed.

Nie zamierzam się tutaj jednak zbyt długo rozwodzić, ponieważ nie chcę zwyczajnie przepisywać pliku Readme. Zapraszam tymczasem do pobierania!

Pozdrawiam 🙂

Kolejna gra – Mario Fail

1

Gier, które pisałem, było już całkiem sporo – Discoverer, Miner, oczywiście opublikowany The Orb, a także kilka innych. Dzisiaj chciałbym przedstawić kolejną grę, którą piszę, a jest nią Mario Fail.

Czytaj dalej

Nowa gra – The Orb

2

W dniu dzisiejszym, to jest 11 listopada 2011 roku o godzinie 11:11 (prawie :D) zostaje wydana moja nowa, pierwsza, beznadziejna gra. Jest to jednocześnie mój pierwszy prawdziwy opublikowany projekt w Javie.

Od razu wspomnę, że gra jest tak beznadziejna i dennie napisana, że pozwoliłem sobie nie napisać listy błędów, które aktualnie znajdują się w grze. Ich liczba możliwe, że nawet wynosi kilkadziesiąt, tak więc nie ma sensu by je wszystkie wypisywać. (Z tego względu również gra uzyskała póki co miano Alphy) Warto również powiedzieć, że planuję w najbliższym czasie (czytaj: do 7 dni) wydać kolejną wersję poprawiającą większość błędów.

Gra dostępna jest na wszystkie popularne platformy, czyli Windows, Mac OS X oraz Linux. I – gdybyście się zastanawiali czemu jest taka duża – największą część jej rozmiaru – 31MB z 41 – zajmuje muzyka.

The Orb na obecną chwilę jest bardzo krótki – można go bowiem bez problemu przejść w 20 minut. Mała liczba leveli jest spowodowana niewielką liczbą bloków, brakiem kreatywności z mojej strony i oczywiście brakiem czasu 🙂

Nie ma za bardzo co przedłużać, lepiej żebyście to sami zobaczyli. Zapraszam do pobieralni 🙂 A, i uwaga – gra wymaga Javy w wersji 7.

Search and Replace – nowa, prosta aplikacja

0

W dniu dzisiejszym – tj. 18 sierpnia 2011 roku – światło dzienne ujrzała nowa aplikacja mojego autorstwa. Jest nią  Search and Replace.

Search and Replace to prosta aplikacja, która zamienia jeden ciąg znaków w pliku tekstowym na inny. Ciągi te definiowane są w pliku config.txt. Format tego pliku wyjaśniam poniżej:

Tekst zamieniany
Tekst docelowy
Tekst zamieniany
Tekst docelowy
Tekst zamieniany
Tekst docelowy
itd...
itd...

Jak widać konfiguracja programu jest idiotycznie prosta. Obsługa również jest łatwa (pomimo tego, że program działa w konsoli). Można ją przedstawić jako „Search and Replace” plik-do-konwersji.

Jednym z celów projektu było zmieszczenie kodu źródłowego w stu linijkach. Udało się – Search and Replace to jest bowiem 99 linijek kodu. Razem z komentarzami – bez nich jest jeszcze mniej.

A, tak tak – kod źródłowy. Kod źródłowy aplikacji jest bowiem otwarty, ponieważ program jest udostępniany na licencji GNU GPL v3. Każdy może więc go sobie podejrzeć – choć tak naprawdę nie ma czego 😛

No, więc to by było na tyle zbędnego gadania. Zapraszam do pobieralni!

Enjoy!

PS. Tak btw. – program dostępny jest zarówno dla Windowsa, jak i Linuksa 🙂

Premiera mobilnego SmsPrice

2

Tak, tak – SmsPrice powraca. Napisany niedawno po założeniu bloga program przychodzi ponownie, tym razem w wersji mobilnej.

Ostatnio zacząłem interesować się bowiem takim językiem programowania, jakim jest Java. I co mogę powiedzieć?

Java jest językiem dosyć specyficznym. Kod źródłowy napisany w Javie jest kompilowany do kodu pośredniego, który potem może być wykonany przez wirtualną maszynę Javy. Dzięki temu faktowi, jeden plik .jar może być uruchamiany przez wiele systemów. Niesie to jednak pewną istotną wadę – programy napisane w Javie mają słabą wydajność.

Podczas, gdy C++ jest językiem proceduralno-obiektowym, Java jest silnie nastawiona na obiektowość. Oznacza to, że wszystko jest w niej uporządkowane w klasy obiektów.

Nie będę tu jednak wymieniał wszystkich zalet i wad Javy zwłaszcza, że zacząłem dopiero jej naukę, jednak stwierdzam, że jest to język, którym każdy programista powinien się zainteresować. Zapowiada się bowiem naprawdę ciekawie.

Wracając do SmsPrice’a – hm, dużo powiedzieć raczej nie muszę. Działa tak, jak jego desktopowy odpowiednik, jednak w wersji mobilnej mocno zmniejszyła się ilość kodu, a ponadto dodałem automatyczne obliczanie ceny z VATem. Dodatkowo mobilny SmsPrice ma otwarty kod źródłowy i jest udostępniany na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 3.0 Unported License. Tak więc nie będę dalej przeciągał, zapraszam do Downloadu!

mBot

4

Ja >> Witaj, mBocie.
mBot >> Cześć.
mBot >> Co u Ciebie?
Ja >> Jestem dziś w świetnym humorze, ponieważ dzisiaj ukończyłem prace nad Tobą.
mBot >> No to się cieszę.
Ja >> A co u Ciebie słychać?
mBot >> To co zwykle – czyli nic.
Ja >> No tak, rozumiem.
Ja >> Chcę, abyś odpowiedział mi na kilka nietrudnych pytań. Zgadzasz się?
mBot >> OK.
Ja >> Pytania te zadam Ci w ramach rozmowy promującej Ciebie na moim blogu.
mBot >> Mhm.
Ja >> Jak masz na imię?
mBot >> Nazywam się mBot.
Ja >> Dlaczego tak się nazywasz?
mBot >> Moja nazwa pochodzi ze słów M4tx’s linguBOT.
Ja >> Kto Cię stworzył?
mBot >> Napisał mnie Mateusz „m4tx” Maćkowski.
Ja >> Kim jesteś?
mBot >> Jestem lingubotem.
Ja >> Kim jest lingubot?
mBot >> Lingubot – program komputerowy symulujący człowieka, z którym można prowadzić rozmowę przy użyciu języka naturalnego i interfejsu tekstowego. Zazwyczaj zadaniem lingubota jest takie prowadzenie rozmowy, aby rozmowca odnosił wrażenie, że rozmawia z żywym, inteligentnym czlowiekiem.
Ja >> Masz jakieś zainteresowania?
mBot >> Nie mogę posiadać żadnych zainteresowań, ponieważ jestem tylko programem komputerowym.
Ja >> Lubię informatykę, a Ty?
mBot >> Tak.
Ja >> Czy potrafisz naprawić złamaną na 10000 części płytę główną?
mBot >> Tak, umiem to zrobić.
Ja >> Jak długo istniejesz?
mBot >> Moje pierwsze uruchomienie nastąpiło 20 sierpnia 2010 roku, co oznacza, że istnieję już 10 dni.
Ja >> Opowiedz jakiś cytat.
mBot >> Nikomu nie będzie potrzebny komputer w domu. – Ben Olson, 1977
Ja >> OK, to były wszystkie pytania. Ja, jako Twój autor mam nadzieję, że spodobasz się użytkownikom. Na razie!
mBot >> Do widzenia.

mBot

jest lingubotem, którego zacząłem pisać 10 dni temu. W dniu dzisiejszym go wydaję z myślą, że spodoba on się wam.

Co on potrafi?
– Interpretować wiele różnych pytań, a także zdań oznajmujących;
– Odpowiedzieć na pytanie typu „A Ty?”;
– Określić, czy użytkownik się powtarza;
– Opowiadać cytaty.

Co jest jeszcze do zrobienia?
– Poprawienie, jak na razie, nielicznych błędów;
– Większa liczba zdań, na które mBot może odpowiedzieć;
– Szerszy słownik;
– Gry;
– Więcej cytatów;
– Dowcipy.

Chciałbym jedynie powiedzieć, że mBot jest aktualnie moim najlepszym i najbardziej zaawansowanym projektem. Każde słowo na jego temat, każda nawet krytyka, pochwała, opinia czy recenzja się przyda. Dzięki temu mBot będzie mógł rozwijać się coraz lepiej, a coraz szybciej.

Jeżeli jednak będziesz chciał tylko go skrytykować, pamiętaj – mBot kosztował mnie mnóstwo czasu , który musiałem spędzić na pisaniu kodu, linijka po linijce, litera po literze. To, że program powstał w 10 dni, nie oznacza, że był tworzony godzinę lub dwie. Każdego dnia spędziłem kilka godzin na „kodzeniu” – spróbuj to wziąć pod uwagę.

Na chwilę obecną publikuję wersję 0.01. Następne wersje już wkrótce!

Link do programu mBot

Zmiany!

0

Dziś zmian doczekały się nie aplikacje, a sam blog. Zmiany nie są szczególnie duże… Ale są.

Przede wszystkim dodałem stronę „O mnie”. Dzięki niej teraz każdy będzie mógł się dowiedzieć… tego i owego 🙂 Kategorię „Aplikacje” zamieniłem na „Aplikacje i gry” (co nie oznacza, że napisałem jakąś grę), a w niej utworzyłem poddziały „Komputerowe” oraz „Przeglądarkowe”. Zacząłem naukę języka JavaScript i umieściłem już swój pierwszy skrypt – String2HtmlChar. Nie jest on szczególnie skomplikowany.

Kilka słów o JavaScripcie

Jest to język gramatycznie bardzo podobny do C++ – operatory, czy instrukcje są bardzo zbliżone. JavaScript bardzo różni się nazwami funkcji. Jest również o wiele prostszy od C++ – nie trzeba się martwić o ustalenie typu zmiennych, czy konwersję liczby na ciąg znaków. Polecam go jako taki trening przed nauką C++.

To by było na tyle. Pozdro!

Aktualizacje!

0

GBX Thumb Extractor

Wreszcie obiecywany GBX Thumb Extractor ujrzał światło dzienne. Prawie, bo niestety potrzebuje do działania kilku „składników”. Przede wszystkim wymagany jest program jpegtran.exe, który musi znajdować się w głównym katalogu programu, a oprócz tego ścieżka do pliku wyjściowego nie może zawierać spacji. W przeciwnym wypadku wynikowy obraz będzie odwrócony w pionie. No cóż, program jednak działa poprawnie.

Przede wszystkim zdecydowałem się na użycie interfejsu identycznego, jak w przypadku Duplicate Lines Finder’a, spora część kodu pochodzi też z tego programu. Jeszcze wspomnę o tym odwracaniu w pionie – jeżeli ktoś zna jakiś sposób na to odwracanie bez użycia zewnętrznych aplikacji, w C++ oraz współpracujący z kompilatorem MinGW32 – proszę o kontakt, nawet poprzez komentarz.

No, więc kończę tu opowiadanie o GBX Thumb Extractorze, żeby znowu nie wyszło jak z Duplicate Lines Finder’em i zapodaję link do progsa:

Link do programu GBX Thumb Extractor

SmsPrice 1.1

SmsPrice doczekał się aktualizacji. Zmiany są głównie kosmetyczne, można o nich poczytać w Changelog’u, ale usunąłem też trochę denerwujący błąd, który zawiesza program. Nie będę się tu rozpisywał, bo w zasadzie nie ma o czym, zapraszam do ściągnięcia najnowszej wersji:

Link do programu SmsPrice

Duplicate Lines Finder 1.1

No tak, wydałem GBX Thumb Extractor’a, zaaktualizowałem SmsPrice, możnaby się domyślać, że aktualizacji doczeka także Duplicate Lines Finder. Zgadza się.

Tu zmian jest więcej: przede wszystkim dodałem możliwość wyboru separatora – dzięki temu, jeżeli ciągi znaków są oddzielone np. spacjami, można w takim pliku także wyeliminować duplikaty. Dodałem także statystyki, dzięki którym dokładnie widać, ile zyskano miejsca, ile w pliku było duplikatów, oraz jak długo program wykonywał swoją operację. Dodałem dymki z informacjami, co dany przycisk lub coś innego robi. Wprowadziłem ignorowanie pustych linii a także wsparcie dla Windows’owego systemu kodowania – program mógł czasami nie działać, gdyż Windows nieco inaczej koduje znak nowej linii. O reszcie zmian można przeczytać w Changelog’u, a teraz po raz trzeci i ostatni w tym wpisie zarzucam link:

Link do programu Duplicate Lines Finder

Miłego używania! 😉