Marek Wywiał

python software developer

Jamendo gra

by Marek Wywiał
    More posts about:  
  • muzyka

W sam raz na poranek przed kodowaniem.

iPhone w akcji

by Marek Wywiał

Nawet nic nie będę pisał, zobaczcie sami jak działa.

automatyzacja pracy z svn - svnauto

by Marek Wywiał
    More posts about:  
  • tools

Svnauto jest wrapperem konsolowej komendy 'svn', który automatyzuje i standaryzuje wykonywanie rozgałęzień (branches) i złączeń (merge).

SC jest skryptem napisanym w języku Ruby i jest dostępny poprzez RubyGems:

gem install svnauto --include-dependencies

Hmm, ale czemu to nie działa?

Skrypt sc bazuje na komunikatach zwracanych przez komendę svn w języku angielskim, więc nie będzie działać poprawnie w innych lokalizacjach. Można to rozwiązać np. tak:

mv /usr/bin/sc /usr/bin/sc.orig

stworzyć nowy plik /usr/bin/sc:

#!/bin/bash

LC_ALL=C

/usr/bin/sc.orig $*

i nadać mu prawa do wykonywania (w przypadku systemów Linux):

chmod 755 /usr/bin/sc

Podstawy na początek

Standardowa praca z SC wygląda mniej więcej tak:

Konfigurujemy dostęp do naszego repozytorium (SC obsługuje ich wiele)

  sc config --add

Tworzymy nowy projekt (zostaniemy zapytani o repozytorium, którego chcemy użyc)

  sc create my-new-project

W naszym repozytorium zostanie dodany katalog my-new-project wraz ze strukturą:

 myproject:
  |
  +--trunk
  |   |
  |   +--project-files
  |
  +--branches
  |   |
  |   +--rel
  |   +--bug
  |   +--exp
  |
  +--tags
      |
      +--rel
      +--bug
      +--exp

Do katalogu ze zródłami lokalnymi (domyślnie ~/src, ale możemy to zmienić podczas konfigurowania repozytorium w SC) zostanie wyciągnięty trunk naszego nowego projektu do katalogu ~/src/nazwa_repozytorium/my-new-project-trunk.

W przypadku kolejnych pobrań projektu (np, na inną maszynę, dla innego użytkownika) wywołujemy komendę:

 sc checkout my-new-project

i dostaniemy domyślnie źródła trunk'a do lokalnej kopii. Używając opcji w linii komend (-r, -b, -e) możemy pobrać odpowiednio wybrany release, bug lub eksperymentalną gałąź.

Tu sobie pracujemy normalnie jak to z SVN'em bywa, add, commit, update.

Kolejne wydania

Aby wydać kolejną wersję naszego projektu wydajemy komendę:

 sc release 1.0.0

Nasz trunk zostanie skopiowany do branches/rel/1.0 i tags/rel/1.0 oraz do ~src/nazwarepozytorium/my-new-project-rel-1.0 zostanie wyciągnięty ten release.

Praca z błędami

Jeżeli znajdziemy błąd, wydajemy komendę:

 sc bug 1

gdzie 1 to numer błędu (przydzielony np przez trac'a). W naszym repozytorium zostanie założony katalog branches/bug/1 i oczywiście trafi do nas jego lokalna kopia ~/src/nazwarepozytorium/my-new-project-bug-1.

Po naprawieniu błędu zamykamy go (i zatwierdzeniu zmian przez 'commit' oczywiście):

 sc bug --close 1

Zostaniemy zapytani czy zrobić merge naszej poprawki do release 1.0, a następnie czy chcemy też tą poprawkę zmergować do trunk'u, gdzie najczęściej na wszystko się potulnie zgadzamy.

Wersje eksperymentalne

Tworząc nowy eksperymentane rozgałęzienie kodu wydajemy komendę:

 sc exp new_feature

Podczas pracy z taką gałęzią przyda nam się możliwość złączenia zmian z trunk'a do nas:

 sc expt --up new_feature

oraz na zakończenie prac (lub w miarę potrzeb) złączenie gałęzi eksperymentalnej z trunkiem:

 sc exp --down new_feature

Co ja z tego mam

Dzięki svnauto możemy zapomnieć o podawaniu pełnej ścieżki do repozytorium (jest skonfigurowana na początku pracu), więc przeglądanie projektu umożliwia nam prosta komenda

 sc list my-new-project

Dodatkowo mamy porządek w naszym repozytorium. Nawet jeżeli będziemy potrzebowali złączyć kilka rozgałęzień w jeden niestandardowy projekt z różnymi poprawkami, łatwo nam jest odnaleźć wszystkie potrzebne nam gałęzie i pojedynczo połączyć.

Praca nad poprawkami i nowymi wersjami jest prosta dzięki automatycznemu łączeniu odpowiednich gałęzi. Oczywiście nie uwolni nas to od rozwiązywania konfliktów, ale operacje, które wykonujemy już prawie automatycznie (prawie robi różnicę, np literówki, błąd w nazwie gałęzi) są robione naprawdę automatycznie.

Dzięki temu możemy się skupić na pracy nad projektem, zamiast nad prowadzeniem repozytorium do projektu.

aardvark 2.0

by Marek Wywiał

Może jestem spóźniony ale znalazłem nowego aardvark'a na http://addons.mozilla.org/ w wersji 2.0 działający z firefox'em 2, więc mój fix na wersję 1.1 dla firefox'a 2 przestał być potrzebny.

aardvark i firefox2.0

by Marek Wywiał

Aardvark to świetne narzędzia dla developera stron internetowych.

Niestety po aktualizacji firefox'a do wersji 2.0 przestało się instalować, zgłaszając, że najwyższa wersja firefox'a, z którą współpracuje to 1.6.

Unzip -> vim -> zip i mamy wersję działającą w firefox'ie 2.0 :)

» aardvark dla firefox'a 2.0

aktualizacja: jest juz oficjalna wersja dla firefox'a 2

» aardvark dla firefox'a 2.0

linux flash player 9

by Marek Wywiał

Czyżby 'ktoś' w końcu zainteresował się zdesperowanymi użytkownikami Linuksa ? I dobrze, bo choć beta to mamy już flash player'a 9.

I co tu więcej pisać :) pozostaje potestować.

muzyka, słuchanie, promocja

by Marek Wywiał

Jamendo to serwis internetowy pozwalający artystom na udostępnianie swojej twórczości w internecie na zasasach licencji Creative Commons. W ten sposób można zaistnieć, dotrzeć do szerokiego grona słuchaczy, informować ich o koncertach.

Słuchacze udostępnione utwory mogą odsłuchać (w praktycznie dowolnych odtwarzaczu muzyki w formacie Ogg lub MP3), legalnie pobrać za pomocą BitTorrenta lub eMula (programy P2P), napisać rezencję. Jeżeli artysta nam się spodoba możemy kupić jego płytę lub wpłacić dla niego pieniądzę.

Podczas słuchania, dzięki systemowi iRATE system będzie dobierał dla nas muzykę wegług naszych gustów.

Cała platforma jest oczywiście bezpłatna.

prototype cheat sheet

by Marek Wywiał

Kolejna tablica informatyczna, tym razem dla frameworka JavaScript prototype.

gentoo dbf2csv ebuild

by Marek Wywiał
    More posts about:  
  • onjin

Potrzebowałem zamienić .dbf na .csv. Znalazłem odpowiedni skrypt ale ... aby był porządek w dystrybucji zmontowałem do niego .ebuild (gdyż takowego nie znalazłem).

Może komuś też się przyda (wersja dbf2csv to 5.0).

Google Code Free Hosting

by Marek Wywiał
    More posts about:  
  • tools

Google jak zawsze do przodu i w kierunku OpenSource (czy też raczej w kierunku programistów, z którymi stara się żyć dobrze) otwarło wczoraj hosting projektów.

W prezencie dostajemy Issue Tracker nie odbiegający zbytnio od przyjętych standardów funkcjonalności tego typo programów, dostęp do repozytorium SVN poprzez HTTPS z dostępem anonimowym (tylko do odczytu) oraz dla nas (za pomocą wygenerowanego hasła).

W części administracyjnej możemy zmienić nazwę projektu, jego opis, licencję (od Apache, Artistic, GNU General/Lesser, MIT, Mozilla Public oraz BSD) oraz pola dodatkowe (dowolne), zestaw odnośników do strony projektu, forum i bloga. Możemy też podać adresy email, na które zostaną wysłane powiadomienia o zmianach w repozytorium kodu.

Kolejne opcje administracyjne to zarządzanie właścicielami i członkami zespołu projektowego, ustawienia Issue Trackera oraz opcja usunięcia projektu.

Z poziomu przeglądarki mamy też możliwość przeglądania zasobów repozytorium.

Dziś serwis choci powoooli, lecz zapewnie spowodowane jest to obciążeniem wywołanym przez rzesze zainteresowanych ;)

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/IT dx s: a C+++$ U>$ P+ L++$ !E-(+) W++$ N+ !o K--? !w !O !M !V PS PE !Y PGP !t !5 X++ R tv+ b+++ DI D G e+++(++++) h--- r y+++
------END GEEK CODE BLOCK------