Archiwum autora: Marcin

O Marcin

Projektant, programista fascynat

Seminarium IPI PAN

Mam przyjemność zaprosić na seminarium Zespołu Podstaw Sztucznej Inteligencji, które odbędzie się w Warszawie 31 maja 2012 r. w budynku przy ul. Jana Kazimierza 5. Seminarium ma się odbywać cyklicznie co tydzień. Będą na nich prezentowane sylwetki osób z zespołu oraz ich badania. Informacje o odbytych i nadchodzących prezentacjach można znależć na stronia http://www.ipipan.waw.pl/ssi/. Na zbliżającym się seminarium przedstawię prezentację pt. „Autoreferat oraz elementy projektowania systemów informacyjnych”. W prezentacji zostanie przedstawiona sylwetka referującego, który jest absolwentem Politechniki Białostockiej – wydziału Elektrycznego kierunku Elektronika i Telekomunikacja. Na seminarium zostanie omówiona jego praca dyplomowa oraz tematyka rozprawy doktorskiej. Prace te związane są z inżynierią oprogramowania i projektowaniem systemów informacyjnych SI. Podczas prezentacji przedstawione zostaną także osiągnięcia, zainteresowania oraz aktualne projekty referującego.

R hadoop

Dzisiaj krótki wpis na temat możliwości zastosowania Hadoopa w swoich programach napisanych w R project. Poniżej podaje kilka ciekawych linków:

– How to program MapReduce jobs in Hadoop with R

– RevolutionAnalytics / RHadoop

Życzę jak zawsze miłej lektury.

Wydane artykuły na temat segmentacji tekstu i przeglądu metod jego przetwarzania

Po dłuższej przerwie i oczekiwaniu ukazały się nowe artykuły. Ostatnio ukazał się artykuł – Marcin Mirończuk, Tadeusz Maciak Proces i metody eksploracji danych tekstowych do przetwarzania raportów z akcji ratowniczo-gaśniczych. Metody Informatyki Stosowanej, 4/2011 oraz artykuł tych samych autorów pt.  System informacyjny na temat sieci hydrantów dla krajowego systemu ratowniczo-gaśniczego: metoda segmentacji tekstu i jej ocena także w czasopiśmie Metody Informatyki Stosowanej, 4/2011. Zainteresowanych tematyką zapraszam do działu Abstrakty lub Publikacje, gdzie znajdują się streszczenia oraz linki do wersji elektronicznych ww. artykułów.

Artykuły

Ostatnio większość czasu spędzam nad szlifowaniem rozprawy i opisem rezultatów badań. Uzbierało się trochę tego. W między czasie widzę, że spływają recenzje wysłanych artykułów do wydawnictw. Ostatnio ukazał się artykuł – Marcin Mirończuk, Tadeusz Maciak Wykorzystanie komponentów platformy ERP do budowy drugiej generacji hybrydowego systemu wspomagania decyzji dla PSP. Metody Informatyki Stosowanej, 3/2011. Zainteresowanych tematyką zapraszam do działu Abstrakty lub Publikacje, gdzie znajdują się streszczenia oraz linki do wersji elektronicznych ww. artykułów.

Laboratoria nr 16 program nr 1

Poniżej przedstawiam zrefaktoryzwoany, przedstawiony wcześniej szkielet kodu aplikacji do przetwarzania tekstów (Labolatorium nr 15) . Aktualnie zaprezentowane zostały tematy związane z takimi zagadnieniami jak:

– biblioteka boost i wykorzystanie inteligentnych wskaźników (rozwiązanie problemów z ewentualnymi wyciekami pamięci np. przy wywoływaniu wyjątków),

– biblioteka standardowa STL,

– modyfikator const.

W miarę czasu postaram przedstawić zagadnienia związane z tampletami (ang. tamplates) stosowanymi do programowania ogólnego oraz wykorzystanie wyrażeń regularnych w budowaniu macierzy wyrażeń (ang. term matrix). Dobre wprowadzenie do biblioteki boost i wyrażeń regularnych zawiera Przemoc’s wiki. W dalszej kolejności planowane jest też pokazanie sposobów testowania kodu (ang. test unity) zamiast stosowania testów wewnątrz funkcji main().

Na koniec, a może nawet w następnym poście dotyczącym C/C++, chciałbym przedstawić zagadnienie związane z łączeniem PHP z C++. Maszyna zenda jest dość ciężka do opanowania (wiele pośrednich makr, dokumentacji etc.). Opanowanie jej zajmuje trochę czasu. Powstało jednakże bardziej elastyczne narzędzie w postaci SWIG w którym na pierwszy rzut oka zadanie to wydaje się o wiele elastyczniejsze i łatwiejsze niż poprzez hackowanie bezpośrednio zenda. Z rozwiązaniem tym pierwszy raz spotkałem się w Linux Magazine (artykuł pt. “PHP z C++”) a następnie na blogu IBMa  Build PHP extensions with SWIG, gdzie Martin Streicherwyjaśnia w bardzo przystępny sposób jak pisać rozszerzenia używając C/C++ do PHP.

Czytaj dalej

Laboratoria nr 15 program nr 1

Projektowanie klas i programowanie obiektowe na przykładzie aplikacji do przetwarzanie tekstu.

Poniżej został zaprezentowany szkielet aplikacji do przetwarzania tekstu, który będzie rozbudowywany i omawiany wraz z nowymi laboratoriami. Przedstawiane zagadnienia będą obejmowały zawansowane aspekty programowania w c++. Czytelnicy nabiorą biegłości w wykorzystaniu biblioteki standardowej STL oraz Boost. Zapoznają się z szablonami oraz metodami projektowania klas. Wszytko zostanie przedstawione na podstawie projektowania i implementacji programu do przetwarzania tekstu.

Poniżej zaprezentowano interfejsy jak i ich implementacja klas które będą omawiane, refaktoryzowane i stosowane podczas omawiania ww. materiału. Podstawowy szkielet aplikacji składa się z następujących plików:

– agencyText.cpp – zawiera kod wykonawczy programu oraz testy zaprojektowanych i zaimplementowanych interfejsów,

– textAgent.h oraz textAgent.cpp – interfejs oraz jego implementacja do rejestrowania i użytkowania modułu do przetwarzania tekstu,

– textTool.h oraz textTool.cpp – interfejs oraz jego implementacja do przetwarzania strumienia tekstowego.

Kod aplikacji wykorzystujący utworzone interfejsy przedstawia listing poniżej:

Czytaj dalej

R rozszerzenia i R paczki

Osoby zainteresowane opublikowaniem swego kodu utworzonego w R project, zarówno w czystym R jak i w postaci rozszerzeń w innych językach, na pewno zainteresują materiały na stronie http://cran.r-project.org/doc/manuals/R-exts.html. Materiały tam zebrane omawiają szczegółowo i wyczerpująco temat tworzenia własnych dodatków do R. Osobom które początkują w tym temacie polecam nieco bardziej „lżejsze” lektóry w postaci:

– opracowania krok po kroku jak tworzyć paczki w R http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf

– w googlu albo http://search.carrot2.org/stable/search wstukać frazę Writing R Extensions 

Osobiście korzystałem z pierwszego jak i drugiego linku. Natomiast projekt który utworzyłem związany z implementacją softu do kalsyfikacji umieściłem na platformie http://r-forge.r-project.org/.

Resolved problem with revoIPC 1.0-3 and new g++

Few days ago I had a installation problem package revoIPC 1.0-3 and doSMP 1.0.1. When I was compiled revoIPC 1.0-3, compilator returned this error:

g++ -I/usr/local/lib64/R/include  -I/usr/local/include   -I . -fpic
-g -O2 -c interface.cc -o interface.o
In file included from ./boost/interprocess/detail/

utilities.hpp:29:0,
                from ./boost/interprocess/mapped_region.hpp:20,
                from
./boost/interprocess/detail/managed_open_or_create_impl.hpp:17,
                from boost/interprocess/managed_mapped_file.hpp:20,
                from queue.h:17,
                from interface.cc:3:
./boost/interprocess/detail/iterators.hpp:352:15: error: reference
'm_value’ cannot be declared 'mutable’ [-fpermissive]
make: *** [interface.o] Błąd 1
ERROR: compilation failed for package 'revoIPC’

Rich Calaway from revolutionanalytics.com helped me quickly and sent solution. The patch with fix this problem is a:

„… go to src/boost/interprocess/detail/iterators.hpp and comment out lines 341-353”

Thanks for this advice we can compile revoIPC 1.0-3 and use it in with doSMP 1.0.1. Just one thinks, if we use doSMP 1.0.1 in new revoIPC 1.0-4 and we try execute this program:

rmSessions(all.names = TRUE)
w <- startWorkers(2)
registerDoSMP(w)
foreach(i=1:3) %dopar% sqrt(i)

R return this error:

> foreach(i=1:3) %dopar% sqrt(i)  *** caught segfault ***
address 0x7fd0e562f58c, cause 'memory not mapped’ Traceback:
 1: .Call(„returnResult”, q, t$task, serialize(res, NULL))
 2: ipcTaskReturnResult(taskq, taskchunk, resultchunk)
 3: doSMP:::workerLoop(qname, rank, verbose, out)
aborting …

Rich Calaway helped me fixed this problem to. I don’t check it but if someone want to use revoIPC 1.0-4 must:

„… remove the PKG_CPPFLAGS=-DNDEBUG line from Makevars.in in the src directory.”

Good luck.

Artykuły

Na koniec roku spłynęły recenzje artykułów oddanych do czasopism. Trochę się tego nazbierało a sam rok był bardzo owocny w badania i eksperymenty, przynoszące dość zaskakujące rezultaty.

Zainteresowane osoby tematyką eksploracji danych a dokładniej eksploracją danych tekstowych miło mi jest poinformować, że na ten temat będą mogły poczytać w czasopiśmie Metod Informatyki Stosowanej (http://www.pan.wi.zut.edu.pl/). Artykuł opisujący dziedzinę eksploracji danych tekstowych wraz z jej zastosowaniem w Państwowej Straży Pożarnej PSP nosi tytuł Proces i metody eksploracji danych tekstowych do przetwarzania raportów z akcji ratowniczo-gaśniczych i ukarze się w numerze 4/2011 ww. czasopisma. Z tematyką tą związany jest też następny artykuł pt. System informacyjny na temat sieci hydrantów dla krajowego systemu ratowniczo-gaśniczego: metoda segmentacji tekstu i jej ocena, który także zostanie wydany w tym czasopiśmie i ukaże się w numerze 1/2012. W artykule tym opisano szczegółową realizację eksperymentu opisującą podział tekstu na segmenty. Zajawka tego jak i poprzedniego artykułu w postaci abstraktów dostępne są w dziale Abstrakty, życzę miłej lektury.

Ostatnim nadesłanym do ww. czasopisma artykuł stanowił opis projektu związanego z rozwijaną koncepcją Systemu Wspomagania Decyzji dla PSP z wykorzystaniem komponentów platformy do planowania zasobów przedsiębiorstwa ERP. Artykuł ten ukaże się pod tytułem Wykorzystanie komponentów platformy ERP do budowy drugiej generacji hybrydowego systemu wspomagania decyzji dla PSP, w numerze 3/2011. Również jego zajawkę można zobaczyć w dziale Abstrakty.

Aktualnie cały czas oczekuje na decyzje z wydawnictwa CNBOP „Bezpieczeństwo i Technika Pożarnicza” w którym umieściłem dość interesujące przemyślenia i badania z zakresu inżynierii oprogramowania jak i eksploracji i segmentacji raportów. Niestety na ich ukazanie jak i recenzje jeszcze widać trochę będzie trzeba poczekać.