Archiwum kategorii ‘Programowanie’

Dzień Programisty

wtorek, 13 Wrzesień 2011

W zeszłym roku chciałem coś napisać z okazji Dnia Programisty, ale skończyłem na tych dwóch odnośnikach (poniżej). W zasadzie nie opublikowałem tego, bo jakoś nie było czasu, ale zaśmieca mi Kokpit w WordPress (leży tez wpis z wakacji ’08), więc puszczę jak jest. W sumie to chyba aktualne i dziś.

Jeśli ktoś pyta skąd i po co, to odpowiedź poniżej (na nic bardziej kreatywnego mnie teraz nie stać):

mysql> SELECT DAYOFYEAR(CURDATE());
+----------------------+
| DAYOFYEAR(CURDATE()) |
+----------------------+
| 256 |
+----------------------+
1 row in set (0.09 sec)

Dodanie czasu w GPS Track

środa, 3 Sierpień 2011

W czerwcu w trakcie testowania aplikacji do śledzenia tras (via GPS) wspominałem o programie GPS Track. Aplikacja jest wystarczająca do zapisu samej ścieżki, ale niestety nie zapisuje znaczników czasu dla każdego punktu, więc jest bezużyteczna w przypadku korzystania z serwisu Endomondo (nie sprawdzałem jak zachowuje się Sports Tracker). Nie zapisuje też wysokości, tym samym tracimy rozszerzone informacje o treningu (Endomondo czy Google Earth sam sobie tego nie ‘dopisuje’). (więcej…)

PHPExcel

środa, 16 Marzec 2011

Czasem spadają na mnie jakieś drobne projekty, którymi wcale nie chcę się zajmować, bo okazuje się, że wymaga to głębszego poznania tematu i zajmuje więcej czasu niż przerwa śniadaniowa. Tym razem dostałem do wypełnienia arkusz kalkulacyjny MS Excel danymi przesłanymi przez klienta. Dostępna technologia – PHP.

Od razu zacząłem szukać gotowca i znalazłem! PHPExcel. Po krótkiej pracy z nim wiem, że nie jest to idealne narzędzie, ale może to wynikać z formatu pliku jaki obrabiałem i od tego jak i czym został wcześniej zapisany (wzór dostarczony z zewnątrz). Z dwóch wyglądających podobnie komórek po otwarciu i zapisaniu przez PHPExcel nagle jedna gubi formatowanie. Dziwne. Ale jako, że nie chciałem się zagłębiać, uznałem, że tak właśnie musi być.
Jako, że arkusze nie są skomplikowane, to przed samym zapisem robię ‘normalizację’ komórek, czyli ustawiam takie formatowanie, jakie jest w pliku źródłowym i wszystko działa.

Prócz wypełniania komórek odpowiednimi wartościami i zmianie formatowania nic więcej nie robiłem (a pewnie się da). Do takich celów, uważam, że projekt nadaje się wystarczająco.

flaker

niedziela, 27 Luty 2011

W październiku zeszłego roku stworzyłem prostego klienta Blip i twitter w C i Perl. Dziś, w końcu, udało mi się dotrzeć do API flakera (jak pisałem poprzednie programy, to długo tej strony nie było, a dziś jest pod adresem http://blog_backup.flaker.pl/api/index.html). W zasadzie to niewiele trzeba zmienić kod do twitter:

  • nazwa użytkownika to user->login (linia 20),
  • data i godzina wpisu – datetime (lub jak kto woli time czy nawet timestamp; linia 21),
  • no i oczywiście URL: http://api.flaker.pl/api/html:false/tag:tag/limit:limit (linia 63).

Pliku różnicowego nie zamieszczam, bo szanuję czytelników ;-)

Nie, nie mam konta w tym serwisie (a w tamtych tylko firmowe).

Klient twitter (C)

czwartek, 14 Październik 2010

Źródła klienta twitter poniżej. W zasadzie to tylko mała zmiana w stosunku do klienta Blip, bo różnią się formatem danych wejściowych (ale nadal to JSON) i nazwami pól (user_path -> from_user, body -> text). Tak jak wcześniej – kod nie jest optymalny. Mam tego świadomość, dlatego czekam na wszelkie uwagi.
W przypadku korzystania z tego wyszukiwania trzeba wiedzieć, że nie są dostępne wszystkie statusy, a jedynie te najnowsze. (więcej…)

Klient Blip (Perl)

środa, 13 Październik 2010

Po południu opublikowałem źródła klienta Blip w C, teraz odnalazłem kod w Perl (mniej funkcjonalny) i wklejam poniżej

#!/usr/bin/perl -w

use strict;
use WWW::Mechanize;
use JSON -support_by_pp;

my $tag = "perl";
my $limit = 3;

if (@ARGV) {
    $tag = shift;
}
if (@ARGV) {
    $limit = shift;
}

my $url = "http://blip.pl/tags/$tag?limit=$limit";
my $browser = WWW::Mechanize->new();
$browser->add_header('Accept' => 'application/json', 'X-Blip-api' => '0.02', 'X-Blip-Application' => 'Infowizja.pl');
$browser->get($url);
my $content = $browser->content();
my $json = new JSON;
my $json_text = $json->decode($content);

eval {
    foreach my $tag(@{$json_text}) {
        $tag->{user_path} =~ s/^.*\///g;
        print "$tag->{created_at}\t$tag->{user_path}\t$tag->{body}\n";
    }
};

Najlepiej uruchamiać ze zmienną środowiskową PERL_UNICODE=S (na terminalu wyświetlającym znaki w UTF-8).

Klient Blip (C)

środa, 13 Październik 2010

Wspominałem już, że nie jestem programistą? Dlatego proszę o wszelkie uwagi odnośnie poniższego kodu.
Jest to prosty klient Blip, który w zasadzie tylko pobiera statusy konkretnego użytkownika (^user) lub o konkretnym znaczniku (#tag). (więcej…)