[ABAP] Odczyt pliku z archiwum do stringa

Posted on February 17, 2012, under SAP.

Ostatnio rozwiązywałam problem odczytu zdjęcia pracownika zapisanego w kartotece pracowniczej. Takie zdjęcie przechowywane jest w postaci Archive Linku i o ile ściągniecie go na dysk nie stanowi problemu (jest kilka modułów funkcyjnych, które do tego służą) to odczytanie go w sposób zrozumiały dla edytora tekstu, jakim jest MS Word już nie jest takie proste. Do zapisu dowolnych plików do formatu .doc korzystamy z dedykowanej aplikacji opartej na zapisie żądanego dokumentu w języku HTML (który jest bardzo zrozumiały dla MS Word), zatem problem ograniczył się do ściągnięcia zdjęcia w formacie akceptowalnym dla tagu IMG – w postaci inline. Dzięki temu nie musimy zapisywać oddzielnie obrazków, linkować ich do pliku i martwić się, czy na pewno zawsze będą w lokalizacji, w której je zapisaliśmy. W zapisie obrazka inline, nasze zdjęcie jest zapisane w postaci ciągu znaków w treści dokumentu HTML.

Konkretniej – będziemy konwertować obrazki z postaci binarnej do stringa o podstawie 64bitowej. Taką konwersję dla dowolnego pliku można zrobić np. w takim edytorze. Po wczytaniu i przekonwertowaniu obrazka w takim edytorze otrzymamy ciąg znaków, który możemy wstawić w HTMLowy tag IMG:

<img src=”data:image/jpeg;base64,CIĄG_ZNAKÓW_OBRAZKA” height=”100″ width=”100″/>

Aby powyższy ciąg znaków otrzymać dla dokumentu zapisanego w archiwum wykorzystamy cztery moduły funkcyjne:

1. Pobieramy listę dokumentów przypisanych do pracownika – wykorzystujemy do tego funkcję ARCHIV_CONNECTINFO_GET_META. Ważne, żeby w parametrze object_id podać numer pracownika i na końcu gwiazdkę (*) np. ’10000021*’

  CALL FUNCTION 'ARCHIV_CONNECTINFO_GET_META'
    EXPORTING
      object_id    = lv_objid
      ar_object    = ''
      sap_object   = 'PREL'
    IMPORTING
      number       = lv_number_hits
    TABLES
      connect_info = lt_hit_table
    EXCEPTIONS
      OTHERS       = 1.

2. Tabela lt_hit_table zawiera wszystkie dokumenty przypisane do osoby. Nas interesują zdjęcia ( pole ar_object w tabeli = HRICOLFOTO). Szukamy wybranego wpisu (ja go zapisałam do ls_hit_table) i dla niego wywołujemy kolejną funkcję – ARCHIVEOBJECT_GET_TABLE, która pobiera plik binarnie do tabelki:

    doc_type = ls_hit_table-ar_object.
    CALL FUNCTION 'ARCHIVOBJECT_GET_TABLE'
    EXPORTING
      archiv_id                = ls_hit_table-archiv_id
      document_type            = doc_type
      archiv_doc_id            = ls_hit_table-arc_doc_id
    TABLES
      binarchivobject          = binary_tab
    EXCEPTIONS
      error_archiv             = 1
      error_communicationtable = 2
      error_kernel             = 3
      OTHERS                   = 4.

3. Obliczamy długość pliku (raczej mało elegancko):

  length = LINES( binary_tab ).
  length = length * 1024.

4. Wywołujemy funkcję SCMS_BINARY_TO_XSTRING, która stworzy nam jeden ciąg bajtów w postaci xtsringa z tabelki binarnej:

  CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
    EXPORTING
      input_length = length
      first_line   = 0
      last_line    = 0
    IMPORTING
      buffer       = lv_pic_xstring
    TABLES
      binary_tab   = binary_tab
    EXCEPTIONS
      failed       = 1
      OTHERS       = 2.

5. Teraz wystarczy tylko zakodować wynik do postaci stringa o podstawie 64bitowej:

  CALL FUNCTION 'SSFC_BASE64_ENCODE'
    EXPORTING
      bindata                  = lv_pic_xstring
    IMPORTING
      b64data                  = lv_picture
    EXCEPTIONS
      ssf_krn_error            = 1
      ssf_krn_noop             = 2
      ssf_krn_nomemory         = 3
      ssf_krn_opinv            = 4
      ssf_krn_input_data_error = 5
      ssf_krn_invalid_par      = 6
      ssf_krn_invalid_parlen   = 7
      OTHERS                   = 8.

W zmiennej lv_picture mamy ciąg znaków, który możemy wkleić w tag img.

[Oxford] szkoła, czyli chodźmy na zajęcia

Posted on October 12, 2010, under Inne.

Kilka słów o samych zajęciach. Właśnie zaczął się trzeci tydzień roku akademickiego tutaj, więc mogę już coś opowiedzieć o samych modułach, czyli przedmiotach, które realizuję w tym semestrze. Jeszcze przed wyjazdem wybrałam cztery. O jeden za dużo, bo w zasadzie potrzebne mi są tylko trzy. Miałam z jednego zrezygnować i pewnie jeszcze to zrobię, jeśli mi się uda, chociaż na mojej macierzystej uczelni twierdzą, że nic by mi się nie stało, gdybym zrobiła cztery. Oczywiście, że nic by się nie stało, ale nie ma to aż tyle czasu :)

Studenci w Brookes’ie w jednym semestrze nie robią więcej niż trzy, albo cztery moduły. Do tego często (przynajmniej na studiach magisterskich) dochodzi jeszcze przedmiot ‘Research & Study Methods’, który trwa przez dwa semestry i jest faktycznie pisaniem pracy magisterskiej – najpierw poszukiwanie materiałów w pierwszym semestrze, a potem pisanie pracy w drugim. Ponieważ ja jestem tu tylko semestr nie realizuję tego modułu.

Powiedzmy sobie szczerze – tu nikt się nie przepracowuje specjalnie. Na jeden moduł przypadają 3h zajęć w tygodniu – 2h wykładu i 1h zajęć praktycznych, tzw. practicals, przy czym nie na wszystkich przedmiotach zajęcia praktyczne się odbywają, nieraz mają formę konsultacji. Forma zaliczenia zajęć też może być różna. Najczęściej to pewna kombinacja oceny z egzaminu i projektów (jednego lub kilku), które robi się przez cały semestr i oddaje pod jego koniec do sprawdzenia. W moim przypadku trzy z czterech modułów kończą się egzaminem.

Same nazwy przedmiotów, które tu realizuję niewiele mówią, więc napiszę kilka słów o każdym z nich.

Formal Software Engineering – Formalna Inżynieria Oprogramowania

To jedyny przedmiot bezpośrednio związany z inżynierią oprogramowania, jaki miałam do wyboru – nad czym ubolewam. To dosyć wąska jej dziedzina i na zajęciach będziemy głównie zajmować się Metodą B (B-Method) – przynajmniej w pierwszej części semestru. Ideą jest tworzenie specyfikacji systemów wolnych od błędów. Tak, brzmi surrealistycznie, ale wszystko opiera się na opisywaniu problemów matematycznie i automatycznym dowodzeniu poprawności ich rozwiązań. Oczywiście nie robi się tego dosłownie ręcznie, ale za pomocą odpowiednich narzędzi. I dalej następuje automatyczna konwersja specyfikacji na kod np. w C. Zachęcający jest fakt, że słynna paryska linia metra nr 14 została zaprojektowana z użyciem tej metodyki i jak na razie (tfu-tfu) wszystko działa znakomicie. Dodam tylko, że na wspomnianej linii metra poruszają się pociągi sterowane centralnie przez system komputerowy – zatem w pociągu nie ma kierowcy! Najfajniej oczywiście siedzi się w pierwszym wagonie – jak w pociągu widmo – rewelacja, polecam! :)

Structured Data – Strukturyzacja danych

Nazwa tego modułu ewidentnie kojarzy mi się ze strukturami danych, ale ten moduł skupia się na sposobach zapisu danych w bazach danych. Ponadto jest odseparowany od konkretnych rozwiązań, więc nie opiera się na porównywaniu MySQL z Oracle, ale dużo bardziej ogólnie. Podzielony jest na 2 części – pierwsza to typowe relacyjne bazy danych, druga to struktury drzewiaste, czyli XML. Coursework podzielony jest na 3 części – jedna z relacyjnych baz danych, druga z XMLa, a trzecia z połączenia dwóch poprzednich. Jak do tej pory nie mogę powiedzieć, że nauczyłam się czegoś nowego, bo zaczęliśmy od SQL i podstaw relacyjnych baz danych. Natomiast mniej więcej połowa uczestników tego modułu pierwszy raz widziała bazę danych na oczy, więc nie wróżę temu modułowi zbytniego skomplikowania w przyszłości.

Middleware – Oprogramowanie pośredniczące, albo po prostu Middleware

To coś, czego u nas w programie nie ma w ogóle. Wykład bardzo interesujący, ale poza tym jak dla mnie za dużo Unixa, C i programowania rozproszonego ;) Coursework to napisanie kolejki RPC w C z użyciem PVM, która ma działać na uczelnianym klastrze.

Paradigms of Programming – Paradygmaty Programowania

I na koniec mój zdecydowany faworyt. Z nazwy modułu nie można oczywiście wywnioskować absolutnie nic. A okazuje się, że wykład jest przekrojem przez różne typy języków programowania, paradygmaty, uniwersalne techniki, strukturę języków i reguły implementacji. Ogólnie chodzi o to by stać się programistą, który stając przed problemem, nie zastanawia się, jak rozwiązać go w danym języku, ale jaki język będzie najodpowiedniejszy do tego typu problemu. Czyli nabranie pewnego rodzaju biegłości w różnych językach programowania, a także biegłości w ich zmienianiu zależnie od potrzeb. Najciekawszy jednak jest coursework. Należy stworzyć portfolio 7 programów – 5 małych i 2 większych napisanych w 7 różnych językach. Jest bardzo duża dowolność co do samych programów, co więcej najważniejsza jest ‘eksploracja’ danego języka i zabawa nim. No bajka po prostu. Oczywiście wybór języków jest ograniczony, ale nie aż tak bardzo, żeby nie było z czego wybierać. Lista prezentuje się następująco: Java, C/C++, Objective-C, Perl, C#, PHP, JavaScript, Ruby, Python, AS3, LUA, Pascal, Haskell, F#, Visual Prolog, Prolog, Jay, Scala, Clojure, Delphi, Visual Basic, Lisp, D, Scheme, Erlang, Groovy, Delphi Prism, Eiffel, Common Lisp, CLIPS, Vala, TCL, Go. Jeśli chodzi o większe projekty, to pewnie zostanę przy Javie i C++ – i jeden i drugi używałam już dosyć dawno temu, więc pewnie warto sobie coś przypomnieć. Wybranie 5 języków z pozostałych jest już dużo trudniejsze. Na razie ograniczyłam wybór do takiej listy: F#, Haskell, Ruby, Python, LUA, D, Erlang, Eiffel, Go, CLIPS. To dwa razy za dużo.

Jak widać będę miała co tutaj robić przez najbliższe tygodnie. O międzynarodowej integracji i zwiedzaniu nie wspomnę.

Welcome to Oxford

Posted on September 25, 2010, under Inne.

No to jestem. Mija prawie tydzień odkąd przyleciałam do Wielkiej Brytanii, więc chyba mam już prawo do ‘pierwszych wrażeń’. Od razu uprzedzam, że wcześniej w UK byłam tylko przelotem (dosłownie – kilka godzin na lotnisku), więc to prawdziwie świeże obserwacje. No to lecimy:

  • Anglicy jeżdżą nie po tej stronie ulicy, co trzeba. Nikt, absolutnie nikt nie jest w stanie mi wmówić, że tak da się normalnie jeździć. W życiu nie wsiadłabym tu do samochodu za kierownicę. Przede wszystkim dlatego, że na pewno wsiadłabym do niego nie z tej strony…!
  • Przechodzenie na drugą stronę ulicy nadal napawa mnie strachem, szczególnie na większych skrzyżowaniach. Nerwowo kręcę głową we wszystkich możliwych kierunkach, bo nie mam pojęcia, z której strony może mnie potrącić samochód. W dodatku samochód bez kierowcy, bo przecież po prawej stronie siedzi pasażer (przynajmniej w normalnym kraju). Dobrze, że chociaż rowery mają kierowców na swoim miejscu. Natomiast Anglicy chyba zdają sobie sprawę ze swojej ‘wyjątkowości’, bo na bardziej skomplikowanych skrzyżowaniach, albo rondach malują na przejściach dla pieszych na jezdni napisy ‘look left’, ‘look right’, ‘look both sides’. Jeśli ktoś nie rozumie angielskiego to niestety i tak nic mu to nie pomoże.
  • Wydaje mi się, że na chodnikach też obowiązuje jakiś kodeks drogowy. Ale jeszcze nie rozkminiłam, jaki.
  • Anglicy nie mają chleba. Coś, co wygląda , jak chleb w rzeczywistości jest napowietrzoną bułką. W dodatku wiecznie świeżą i wiecznie miękką. Aż do momentu spleśnienia.
  • W Oxfordzie większość miejskich autobusów jest dwupiętrowa. I to jest super – więcej ludzi może do nich wejść, no i z góry jest dużo fajniejszy widok. Natomiast nie mam pojęcia jak te autobusy mieszczą się w tych wszystkich wąskich uliczkach, w których samochody są zaparkowane po obu stronach ulicy pomiędzy śmietnikami.
  • Angielskie domki są urocze, ale wyglądają na zaprojektowane przez przedszkolaki. Bałagan architektoniczny jest wszechobecny, ale wszystko razem wygląda po prostu ładnie. Nie wiem, jak to możliwe. Może dlatego, że wszystko jest kolorowe. Dużo bardziej niż w Polsce.
  • Wejścia do mieszkań wprost z chodnika – chyba nie mogłabym się do tego przyzwyczaić. Ani do tego, że ktoś z chodnika zagląda mi do kuchni. Ale kolorowe drzwi wejściowe – rewelacja! Bardzo dużo jest niebieskich – zupełnie jak w ‘Notting Hill’.
  • Ciekawym zjawiskiem są kolejki. Z tego co zauważyłam nikt się nigdzie nie przepycha, ale obowiązują kolejki. Nawet jeśli z pozoru ich nie widać. Na przykład przy wchodzeniu do autobusu. To akurat przydałoby się w Polsce.
  • Polaków jest tutaj po prostu mnóstwo. Nawet w takim Oxfordzie, który nie wydaje się być pierwszym wyborem rodaków przy wyjeździe do UK. Pomijając to, ile polskiego słyszy się na ulicach, to rozmowy kierowników sklepu z pracownikami typu: “Marjola, how are you doing?”, “Krzisztoff, are you OK? dajeszz rade?” nie pozostawiają wątpliwości, co do narodowości tych pracowników.
  • Jakże miło było znaleźć polskie jedzenie w Tesco! Fajnie tu jeść pierogi ruskie ‘U Jędrusia’.
  • I na koniec jeszcze jedno. Albo Anglicy piją za dużo, albo mają strasznie słabe głowy. Chyba jedno i drugie. Albo po prostu nie umieją pić. Na pewno nie wszyscy, ale pozytywnych przykładów jeszcze nie widziałam. Będę wytrwale szukać. Aha – angielskie dziewczyny ubierają się na wyjścia do klubów, jak dziwki. Dosłownie i niestety w większości. I jeśli chodzi o te dwie obserwacje to naprawdę mam nadzieję, że się mylę i najbliższe tygodnie wyprowadzą mnie z błędu.

Wiem, stronniczo. Ale może zmienię zdanie. I pewnie do większości tych rzeczy da się przyzwyczaić.

ABAP: poszukiwanie logicznej bazy danych na podstawie nazwy tabeli

Posted on May 4, 2010, under SAP.

For English please choose the language in the right panel –>

Wychodząc naprzeciw różnym dziwnym potrzebom ABAPerów zamieszczam poniższe.

Aby znaleźć logiczną bazę danych posiadając jedynie nazwę tabeli należy skorzystać z transakcji SE36 – edytor logicznej bazy danych. Wybieramy Dodatki -> Wykorzystanie tabeli i podajemy nazwę tabeli. Rezultatem jest lista logicznych baz danych, które z niej korzystają.

I tak np. dla tabeli PERNR otrzymujemy LDB: PNP (Dane podstawowe HR) i PNPCE (Dane podst. HR wraz z równoczesnymi etatami).

Ta wiedza może przydać np. przy eksploracji mało znanych nam modułów ERP, kiedy jednym z niewielu punktów zaczepienia, jakim dysponujemy jest jedna z tabel z danego obszaru. Quick&useful.

WDI2010, czyli konferencje, konferencje…

Posted on March 18, 2010, under Inne.

Miałam dzisiaj przyjemność uczestniczyć w drugim dniu konferencji ukrytej pod nazwą Warszawskie Dni Informatyki 2010. Niestety czas nie pozwolił na uczestnictwo w pierwszym dniu, poza tym agenda na dzisiaj wydawała mi się ciekawsza. Z pięciu sesji, które się odbyły, mniej lub bardziej intensywnie (ach, to wieczne niedospanie) uczestniczyłam w czterech i pokrótce postaram się je podsumować.

  1. “BitLocker i BitLocker To Go w Windows 7 – DeepDive” Paula Januszkiewicz

    Dla mnie nowość. O BitLockerze słyszałam, co więcej – używam go na firmowym sprzęcie, ale z czym to się je i jak to działa od środka to nie miałam pojęcia. Poziom sesji był dosyć wysoki, co momentami utrudniało uczestnikom niewdrożonym w temat podążanie za prelegentką, ale nie zmienia to faktu, że dowiedziałam się kilku ciekawych rzeczy. Między innymi o udostępnionym z Windows 7 oprogramowaniem BitLocker To Go przeznaczonym do szyfrowania pendrive’ów – w praktyce mam zamiar sprawdzić to w ciągu najbliższych kilku dni. Ponadto była to pierwsza sesja techniczna Pauli, w której miałam okazję uczestniczyć i bardzo podobał mi się jej sposób prelegowania – merytorycznie, ale bez tracenia kontaktu z publicznością. Paula poza tym, że jest wysokiej klasy specjalistką w IT Security (MVP zobowiązuje) to jest założycielką i główną inicjatorką działam grupy Women in Technology, stąd miałam z nią do czynienia już wcześniej.

  2. “IntelliTrace – Nowość w Visual Studio 2010″ Michał Komorowski

    IntelliTrace, czyli narzędzie do ‘nagrywania’ i analizowania działania programu, w połączeniu z klasycznym debuggerem stanowi rozwiązanie (a przynajmniej znacząco ułatwia jego znalezienie) każdego problemu przeciętnego (nieprzeciętnego też) programisty. Samo narzędzie wygląda bajecznie – pozwala zapisywać kolejne kroki wykonania programu (wywoływane metody i ich parametry, aktualny stos etc.) i ich późniejszą analizę. Działa w tle niemal niezauważalnie dla programisty – w podstawowej wersji nie obniżając wydajności w znaczący sposób. Ułatwia współpracę na linii programista-tester. Wszystko pięknie, ale jest dostępne jedynie w wersji MS Visual Studio 2010 Ultimate. MSDN AA oferuje – przynajmniej na razie – jedynie Visual Studio 2010 w wersji Professional, zatem IntelliTrace obecnie nie jest dostępny dla przeciętnego studenta, a szkoda.

  3. “ASP.NET WebForms vs. ASP.NET MVC” Michiel van Otegem

    Odnoszę wrażenie, że sesja była przeznaczona dla webdeveloperów, którzy nie mieli wcześniej w ogóle styczności z MVC (to możliwe?). Po napisaniu pracy inżynierskiej z użyciem MVC 1.0 (w wersji beta nawet) wartość merytoryczna tej sesji w moim przypadku jest niewiele wyższa niż zero. Sesja interesująca, ale nie z mojego punktu widzenia niestety.

  4. “Gra w augmented reality – wstęp do XNA. (XBOX, C#).” Mateusz Kierepka

    Chyba najciekawsza sesja w ciągu całego dnia. Prowadzona dynamicznie, z użyciem mnóstwem przykładów. Podobało mi się przedstawienie jak wygląda programowanie gier na różnych platformach – rewelacyjnie pokazało to moc drzemiącą w XNA. Zmieniając kilka linijek w kodzie można udostępnić grę na Windows, Zune, czy Xboxa.

Podsumowując jestem zadowolona, że uczestniczyłam w WDI2010 – takie konferencje poszerzają horyzonty. Dobrze nie zapominać, że to co robi się na studiach, czy w pracy to nie jedyny słuszny kierunek rozwoju i czasem warto skręcić w jakąś inną ścieżkę.

DigiGirlz startuje!

Posted on March 16, 2010, under Inne.

Women in Technology zaprasza na cykl konferencji mających na celu zachęcenie młodych ludzi, a zwłaszcza kobiet, do studiowania kierunków o specjalności technicznej (kandydaci na studia), a także zachęcenie do rozwijania umiejętności technicznych (gimnazjalistki, przyszłe kandydatki na studia).

Digigirlz.pl

Konferencja podzielona jest na 3 części ze względu na grupy docelowe (więcej szczegółów w agendzie spotkania), ale jeżeli każda z grup ma ochotę posłuchać o wszystkim – przyjdźcie koniecznie!

Kolejne przystanki to:

* 20 marca 2010 – Warszawa, Uniwersytet Warszawski
* 10 kwietnia 2010 – Gdańsk, Uniwersytet Gdański
* 24 kwietnia 2010 – Kraków
* 22 maja 2010 – Wrocław
* 29 maja 2010 – Poznań

Ze względu na duże zainteresowanie ruszamy najprawdopodobniej z drugą edycją od października dla pozostałych miast Polski.

Informacja pochodzi z bloga Pauli Januszkiewicz.

404 zaginione dzieci

Posted on March 6, 2010, under Inne.

Scott Hanselman napisał na swoim blogu kolejnego wspaniałego posta. Ten jednak był na tyle wyjątkowy, że zainspirował mnie do działania. Ale do rzeczy.

Chodzi o bardzo prostą ideę wykorzystania stron z błędem 404. Codziennie są wyświetlane tysiące takich stron w polskim internecie, ale nikt jakoś nie wpadł na pomysł, żeby wykorzystać je (powiedzmy to dobitnie) dla dobra ludzkości. Scott zasugerował, żeby pod stronę z błędem 404 (żądana strona nie istnieje) podpiąć prostą stronę wyświetlającą zdjęcia i dane zaginionych dzieci. W jego poście można dokładnie dowiedzieć się, jak zastosować to w warunkach amerykańskich i brytyjskich. W komentarzach pojawił się link do wersji holenderskiej.

404 missing kids
Wzorując się na obu tych notkach stworzyłam wersję polską. Do sprawdzenia np. tu: http://www.programistka.eu/whatever.

Jak to działa? Bardzo prosto – opiera się na policyjnym kanale RSS dotyczącym zaginionych dzieci. Można wykorzystać też kanały osób zaginionych ogólnie lub osób poszukiwanych.

Aby zastosować to w silnikach blogowych opartych na WordPressie należy podmienić stronę 404.php w obecnie używanym szablonie.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="pl" lang="pl">
  <head>
    <title>404 - Strona nie istnieje</title>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
	<script type="text/javascript">
(function($){$.extend({jGFeed:function(url,fnk,num,key){if(url==null){return false;}var gurl="http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q="+url;if(num!=null){gurl+="&num="+num;}if(key!=null){gurl+="&key="+key;}$.getJSON(gurl,function(data){if(typeof fnk=="function"){fnk.call(this,data.responseData.feed);}else{return false;}});}});})(jQuery);
	</script>
	<style>
		.name {
			clear:both;
			font-weight:bold;
			padding-top:5px;
		}
		#feedPlaceholder {
			margin-left: 50px;
		}
	</style>
  </head>

  <body>
	<p><b>Nie znaleziono strony</b>, ale Ty szukaj <b>zaginionych dzieci</b>.</p>
	<p><i>Informacje ze strony <a href="http://zaginieni.policja.pl">http://zaginieni.policja.pl</a></i></p>

	<div id="feedPlaceholder">

	</div>

    <script type="text/javascript">
		var feedUrl = 'http://zaginieni.policja.pl/rss/6';
		var Items = 6;

        $(document).ready(function() {
			$.jGFeed(
				feedUrl,
				function(feed) {
					if (!feed) return;
					for (var i = 0; i < feed.entries.length; i++) {
						var entry = feed.entries[i];
						var link = entry.link.split(".pl/");
						link = link[1];
						var content = entry.content.split("/");
						content = '<img src="http://zaginieni.policja.pl/g2/zdjecia/' + content[content.length - 1];
						content = content.replace(".htm", ".jpg");

						$('#feedPlaceholder').append(
							'<span class="name">' + content + '<a href="http://zaginieni.policja.pl/' + link + '">' + entry.title 							+ '</a></span><br />'
						);
					}
				},
				Items
			);
        });
    </script>
  </body>
</html>

Całe skomplikowanie problemu w polskiej wersji polegało na odpowiednim przetworzeniu danych z RSSa. W szczególności w oryginalnym policyjnym RSSie jest błąd w linku do szczegółów danej poszukiwanej osoby – prowadzi na nieistniejącą stronę, prawdopodobnie poprzedni adres serwisu. Zgłosiłam to webmasterowi serwisu, ale póki co błąd nadal istnieje. Poprawiam to ręcznie w powyższym JS’ie.

Pojawiają się głosy, że takie coś jest kompletnie bez sensu, że są dużo bardziej skuteczne organizacje zajmujące się takimi problemami, ale osobiście uważam, że jeśli mogę pomóc w taki sposób, to dlaczego nie? To nic nie kosztuje.

Pomoc wyszukiwania dla PCHOBJID w raporcie z PNP

Posted on February 3, 2010, under SAP.

Spotkałam się ostatnio z problemem w programie w SAP HR, konkretniej w HR-PA. Piszę aplikację, która w założeniu opiera się na bazie PNP, ale pewna jej funkcjonalność korzysta ze struktury organizacyjnej, czyli z bazy PCH. Wygenerowanie pól ekranu selekcji, takiego jak w programie opartym na bazie PCH nie stanowi większego problemu. Kłopot pojawia się dopiero, kiedy chcemy dodać pomoc wyszukiwania do pola ID obiektu – standardową dla ekranu selekcji raportu ze struktury.

(more…)

Certyfikat Microsoftu może mieć nawet dziecko?

Posted on January 26, 2010, under Luźne refleksje.

Natknęłam się dzisiaj na ciekawy news:

Najmłodszy informatyk świata certyfikowany przez Microsoft.

Niesamowite! Tylu programistów i administratorów poświęca długie godziny na naukę do egzaminów certyfikacyjnych, a tu okazuje się, że ośmioletnie dziecko posiada ich nie jeden, a już kilka. Nieodparcie natomiast nasuwa mi się pytanie, czy takie dziecko nie traci czegoś w życiu? Czy jeśli dzieciak zaczął programować w wieku powiedzmy 3 lat to nie wyrośnie z niego już nie tylko zwykły informatyk (trzeba przyznać, że to przecież szczególna klasa ludzi), ale nawet ktoś pokroju mega-informatyka? Osoby, która z nikim nie będzie mogła się dogadać, bo nikt nie będzie w stanie ‘wznieść się’ na wyżyny abstrakcji jej toku myślenia? Albo z drugiej strony może to właśnie on stworzy kolejny fenomen na miarę Google, czy Microsoft?

Rozważając istotę rozwoju inteligentnych dzieci warto wspomnieć również o języku programowania stworzonym specjalnie z myślą o nich. Czytałam ostatnio o takim – owo cudeńko nazywa się Scratch i jest to – w zamierzeniu – język dla osób, które z programowaniem nigdy wcześniej nie miały do czynienia. Więcej można przeczytać także w tym artykule. Koncepcja wygląda bardzo interesująco – ciekawa jestem ile można osiągnąć w praktyce. Prawdopodobnie najlepszym testem byłoby posadzenie totalnego humanisty z dobrymi chęciami przed komputerem i sprawdzeniem ‘na żywym materiale’, czy faktycznie jest to koncepcja warta uwagi.

Ponadto interesująca jest odpowiedź na pytanie jak traktować dziecko w wieku wczesnoszkolnym, powiedzmy w klasach I – III przejawiające nadmierne zainteresowanie komputerem. Czy skierować jego uwagę w stronę np. wyżej wymienionego Scratcha, albo LOGO, żeby spędzało czas pożyteczniej niż tylko na grach? Czy też przeciwnie – wysyłać na świeże powietrze, żeby zażywało potrzebnego w tym wieku ruchu, a także rozwijało się prospołecznie w kontaktach z rówieśnikami?

Jak dobrze, że ja będąc w wieku Marko nie miałam takich dylematów. W domu było tylko poczciwe Commodore 64 z odtwarzaczem kasetowym, a mój pierwszy DOSowy programik nie dał się uruchomić z powodu braku dysku twardego. Czy gdybym jednak go odpaliła moje życie potoczyłoby inaczej?

o WIT nr 7 słów kilka

Posted on November 29, 2009, under Inne.

W czwartek byłam na kolejnym spotkaniu Women in Technology. I znowu wróciłam zadowolona.

Tym razem Monika Michasiewicz-Krzątała opowiedziała o prezentacji i autoprezentacji, czyli o tym ‘jak prezentować informacje i siebie, tak aby inni odebrali/zrozumieli dokładnie to co chcemy im przekazać’. Ciekawa sesja – bardzo podobało mi się podejście Moniki do słuchaczy, jej interaktywność, to, że umiała wykorzystać wypadający mikrofon (3 razy!) do pokazania, jak sobie radzić z takimi problemami w czasie wystąpień publicznych. W praktyce pokazała to, o czym mówiła. Czekam na materiały z tej sesji, żeby je przeanalizować i wdrożyć!

Kolejna sesja dotyczyła Active Directory w podejściu developerskim. Raczej nie spodziewałam się niczego bardzo porywającego po tej sesji – chyba dlatego, że AD nie wywołuje dreszczy na moim ciele. A jednak Tomek Onyszko poprowadził naprawdę ciekawą i wciągającą prezentację. W dodatku dwugodzinną – wcale nie dziwię się, że na MTSie tak wysoko ocenili go jako prelegenta.

Tomek rozgadał się na tyle, że postanowiliśmy dać mu skończyć, a przesunąć sesję Grzegorza Tworka o klastrach na kolejne spotkanie (17 grudnia 2009!).

Pomimo moich usilnych starań nie udało mi się ściągnąć żadnej IT Girl na to spotkanie, ale zaobserwowałam poprawę w liczbie uczestniczek (oby tak dalej!). Ponadto w drugiej części sesja była łączona z Warszawską Grupą .NET, co wygenerowało istny tłum w porównaniu z poprzednim spotkaniem. Jak mogłam się spodziewać – w WG.NET spotkałam więcej znajomych niż w WIT (czas to zmienić!).

Warto wspomnieć, że tak samo jak poprzednie spotkanie, tak również i to było dostępne on-line poprzez portal Virtual Study. I tam też wkrótce sesje ze spotkania będą dostępne off-line. Miło słyszeć, jak ktoś z WG.NET mówi:

No proszę, WITki potrafią zorganizować się on-line, a nam to się jeszcze nie udało.

A my dopiero się rozkręcamy..