Kategoria: Na każdy temat

W dziale „Na każdy temat” umieszczam różne wpisy nie będące pełnymi artykułami. Są to różne ciekawostki, skrypty oraz sposoby rozwiązywania różnych problemów informatycznych.

Python i MIDI

Przymierzam się do napisania edytora brzmień do mojego syntezatora Korg Triton Le, na początek zrobiłem kilka eksperymentów w pythonie, żeby zobaczyć jak sprawnie będzie szła komunikacja z interfejsem MIDI. Do komunikacji z syntezatorem używam interfejsu USB-MIDI Roland UM-ONE.

Na początek zainstalowałem bibliotekę rtmidi (https://github.com/patrickkidd/pyrtmidi) i sprawdziłem czy wykrywa ona prawidłowo porty MIDI.

import rtmidi
import random
import time

midiout = rtmidi.RtMidiOut()
ports = range(midiout.getPortCount())

if ports:
print("Available MIDI output ports:")

for i in ports:
print(str(i) + ': ' + midiout.getPortName(i))

else:
print('No MIDI output ports available')
exit()

Po wykonaniu powyższego kodu otrzymałem:

Available MIDI output ports:
0: Midi Through 14:0
1: UM-ONE 28:0

Jest dobrze, python widzi mój interfejs.

Poeksperymentowałem trochę z wysyłaniem komunikatów MIDI do urządzenia i w rezultacie napisałem poniższy kod: (więcej…)

Oprogramowanie deweloperskie z lat 80-90.

Mamy rok 2019 a w mojej szufladzie wciąż leżą dwie dyskietki 5.25″. Nie sądzę, żeby się jeszcze kiedyś do czegoś przydały, traktuję je raczej jak namacalny fragment poprzedniej epoki w historii IT.

Dyskietki 5,25″ „KL100 (Keil 8051) Professional Development Package Demo” oraz „Wgłąb języka C”.

Pierwsza dyskietka to dodatek do książki „Wgłąb języka C” Adama Sapka, zawiera ona kod źródłowy do przykładów z książki.

Druga to „KL100 (Keil 8051) Professional Development Package (Demo)”. Dość enigmatyczna nazwa, ale po małej wizycie u wujka google, dowiadujemy się, że jest to oprogramowanie do programowania 8-bitowych mikrokontrolerów 8051, powstałych na początku lat osiemdziesiątych poprzedniego wieku. Z lekką dozą przesady można powiedzieć, że to takie ówczesne arduino 😉

Uczę dziecko programować

Jakiś czas temu moja sześcioletnia córka miała powiedzieć w przedszkolu czym zajmują się rodzice i bezbłędnie powiedziała że jestem programistą, ale do końca nie wiedziała o co w tym chodzi.

Dziś, gdy siedziałem i czytałem książkę o Pythonie, przyszła do mnie mówiąc jakie obliczenia matematyczne umie robić. Jako że miałem komputer z odpalonym linuksem pod ręką, odpaliłem interpreter pythona i zacząłem wpisywać równania, które mówiła córka: 1+1, 2+2, później odejmowanie, a nawet pokazałem jej dzielenie i co się dzieje gdy podzielimy przez zero. Widziałem w jej oczach zainteresowanie, więc zacząłem opowiadać że to właśnie na tym polega programowanie, że mówimy komputerowi żeby coś policzył a on to bardzo szybko robi. Aby pokazać że nie tylko o liczenie możemy poprosić nasz komputer wpisałem w pythonie:

>>> import turtle
>>> turtle.forward(50)
>>> turtle.left(90)
>>> turtle.forward(50)

Na ekranie zaczęło się coś rysować, a rysowanie to jest hobby mojej córki, więc zainteresowanie się nasiliło do tego stopnia, że już po chwili mieliśmy narysowany prosty domek.

(więcej…)

Praca z time trackerami

Czasami ludzie pytają mnie gdzie pracuję, odpowiadam że w domu. Często wtedy jestem wypytywany o szczegóły, zwłaszcza jeśli mój rozmówca nie miał wcześniej styczności z pracą zdalną. No i gdy tak opowiadam o tajnikach sztuki „remote work”, rozmowa w którymś momencie dojdzie do momentu: „masz fajnie, bo nikt cię nie kontroluje…”, no i wówczas tłumaczę, że używam aplikacji do logowania czasu pracy, które również robią zrzuty ekranu. I w tym momencie dla czar pryska, rozmówca zaczyna szukać drugiego dna, inwigilacji, ograniczenia wolności osobistych i tym podobnych straszności.

Tutaj dochodzimy do tematu niniejszego artykułu: jak się pracuje z time-trackerami i dlaczego nie jest to takie straszne.

(więcej…)

Komunikator napisany w Javie w 2008 roku.

Jakże miłe było moje zaskoczenie, gdy przeglądając katalogi ze starymi projektami znalazłem komunikator, który pisałem ponad 10 lat temu jako pracę licencjacką na Uniwersytecie Łódzkim. Jeszcze większym zaskoczeniem było dla mnie to, że komunikator zadziałał od ręki.

Na screenie widać konsole uruchamiające serwer i klienta oraz interfejs graficzny klienta. Ładny, prawda? 🙂

Komunikator jest napisany w Javie i składa się z dwóch części: klienta i serwera. Wiadomości zapisują się w bazie MySql.

 

Api w Laravelu – zwracanie odpowiedzi zamiast przekierowań

Dawno mnie tu nie było, bo byłem na urlopie a zaraz po nim wskoczyłem do nowego projektu i jakiś czas zastanawiałem się o czym napisać. Natrafiłem na jedną rzecz, której użyłem już w kilku projektach, dlatego myślę, że warto o tym napisać.

Jeśli robiłeś API w Laravelu, możliwe że spotkałeś się z takim zachowaniem, że gdy walidacja requestu nie przechodzi, wykonywane jest przekierowanie. Zamiast tego, lepiej byłoby dostać w odpowiedzi JSON z informacją o błędzie. Jak to zrobić? Już pokazuję.

(więcej…)

Ionic – wrażenia po napisaniu pierwszych aplikacji

Jakiś czas temu pisałem o mojej Wyszukiwarce Rymów. Ten projekt jest moim poligonem doświadczalnym, dlatego wróciłem do niego podczas nauki Ionica i przepisałem wersję mobilną na ten właśnie framework.

Aplikację na androida znajdziecie tutaj natomiast starą wersję pisaną w javie tutaj.

Wcześniej, w ramach zapoznania z Ioniciem napisałem też prostą gierkę typu memory: klik.

Skoro więc poznałem już co to jest ten Ionic, opowiem wam czego się dowiedziałem.

(więcej…)

Hakerski ekran w React JS

W ramach ćwiczenia React’a napisałem dziś prostą aplikację.

Do jej napisania zainspirował mnie jeden z odcinków „Twin Peaks” w którym na ekranie komputera było widocznych kilka konsolek z przewijającymi się danymi, kodem, itp. Moja wersja jest na razie dość prosta, ale zamierzam to rozbudować jak znajdę na to czas.

Repozytorium znajduje się tutaj.

Aby odpalić aplikację, sklonuj repozytorium i uruchom: npm start. Polecam uruchomić przeglądarkę z apką w trybie pełnoekranowym!

Demo aplikacji można zobaczyć tutaj.

Aplikacja wyświetlająca pogodę w Laravel + ReactJS

Dziś, w ramach samoszkolenia się z React’a, napisałem prostą appkę w Laravelu, która używa customowych komponentów napisanych w react’cie do wyświetlenia aktualnej pogody w zadanym mieście.

Demo: Aplikacja działa tutaj i wyświetla pogodę dla miasta Tomaszów Mazowiecki.

Nic nie stoi na przeszkodzie, żebyś sklonował(a) sobie repozytorium i uruchomił(a) aplikację podającą pogodę dla Twojej miejscowości.

„Pragmatyczny Programista. Od czeladnika do mistrza” Andrew Hunt, David Thomas

Nie ma co tu kryć, książki o programowaniu są często nudne, zwłaszcza jeśli są to suche, techniczne opisy kolejnych technologii. Chciałbym Państwu jednak zaprezentować książkę, którą czyta się doskonale i wynosi się z niej bardzo dużo.

Tytuł: „Pragmatyczny programista. Od czeladnika do mistrza
Autorzy: Andrew Hunt, David Thomas

Słowa które najlepiej oddają jakość tej książki, to cytat zawarty na tylnej okładce:

„Gdybym organizował teraz jakiś projekt, zrobiłbym wszystko, aby zatrudnić autorów tej książki. (…) A gdyby to się nie udało, szukałbym ludzi, którzy przynajmniej przeczytali ich książkę”. 

– Ward Cunningham, słynny amerykański programista, pionier w dziedzinie wzorców projektowych oraz programowania ekstremalnego

Ja sam przeczytałem tą książkę w bardzo dobrym momencie, kiedy mam już za sobą sporo projektów w których działałem częściowo (np. tylko jako developer) lub całościowo – od pierwszych rozmów z klientem po działający biznes. Dało mi to możliwość odnoszenia czytanych rozdziałów do konkretnych sytuacji z moich projektów. Panowie A. Hunt i D. Thomas w bardzo przystępnym języku prezentują inny sposób myślenia o wytwarzaniu oprogramowania, wynosząc je niemal do rangi sztuki.

Nawet jeśli po przeczytaniu streszczenia i spisu treści stwierdzisz, że już to wszystko wiesz, i tak sięgnij po tę książkę, zaczniesz w inny sposób postrzegać to co wydaje ci się, że znasz już doskonale.

Gorąco polecam!

Książka jest dostępna wydawnictwie Helion:

Wiadomość Arceibo, czyli nierozwiązany dylemat z dzieciństwa

Dużą część mojej wiedzy o świecie zawdzięczam Encyklopedii Larousse, którą studiowałem w dzieciństwie. Wyglądała ona tak:

Z książki tej utkwiła mi w głowie dość mocno informacja o wiadomości wysłanej w kosmos, aby przekazać informacje o ludziach obcym cywilizacjom. Nazywa ta nazywa się Wiadomością Arceibo i wygląda tak:

Na wikipedii czytamy:
Wiadomość Arceibo – wiadomość radiowa skierowana do potencjalnych obcych cywilizacji pozaziemskich, wyemitowana w kosmos 16 listopada 1974 roku, za pomocą największego ziemskiego radioteleskopu w Arecibo.”

Obok obrazka w encyklopedii znajdowało się wyjaśnienie, co ta wiadomość zawiera i właśnie tej zawartości dotyczył mój dziecięcy dylemat – w jaki sposób ci biedni zielonoskórzy mieliby rozszyfrować, że wiadomość ta zawiera następujące informacje (za wikipedią):

  • Liczby od 1 do 10 w zapisie dwójkowym.
  • Liczby atomowe podstawowych pierwiastków z których zbudowane są związki organiczne: wodór, węgiel, azot, tlen i fosfor.
  • Składniki kwasu DNA (cztery nukleotydy po dwie pary zasad: adenina, tymina, cytozyna i guanina oraz cukier deoksyryboza i reszty fosforanowe tworzące DNA)
  • Prosty schemat podwójnej spirali DNA (Ilość nukleotydów w DNA oraz podwójna helisa DNA)
  • Średnie wymiary człowieka; Postać człowieka; Liczba ludzi na Ziemi (liczba 4.292.853.750 mieszkańców naszej planety w listopadzie 1974 roku)
  • Schemat Układu Słonecznego (z wyróżnioną Ziemią)
  • Schemat czaszy radioteleskopu w Arecibo oraz średnica teleskopu (305 metrów).

 

Grey Hack – Poczuj się jak Hacker

Odkryłem właśnie na steamie grę „Grey Hack„, która na screenach wygląda bardzo podobnie do moich ekranów kiedy pracuję. I tak: z jednej strony bym sobie pograł, bo wydaje się to być ciekawe, z drugiej strony nie bardzo mi się chce po pracy patrzeć w konsole, które – swoją drogą – mają takie same ustawienia kolorów jak konsole w moim linuksie 🙂

To może wy pogracie i zdacie mi relację?