﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MagdaQ</title>
	<atom:link href="http://www.programistka.eu/blog/lang/en-us/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programistka.eu/blog</link>
	<description>Because there are women in IT too</description>
	<lastBuildDate>Thu, 16 Feb 2012 23:21:28 +0000</lastBuildDate>
	<language>en-us</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>[ABAP] Odczyt pliku z archiwum do stringa</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2012/02/17/odczyt</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2012/02/17/odczyt#comments</comments>
		<pubDate>Thu, 16 Feb 2012 23:15:32 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[archive link]]></category>
		<category><![CDATA[base64]]></category>
		<category><![CDATA[hricolfoto]]></category>
		<category><![CDATA[inline]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=173</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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 &#8211; 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.</p>
<p>Konkretniej &#8211; będziemy konwertować obrazki z postaci binarnej do stringa o podstawie 64bitowej. Taką konwersję dla dowolnego pliku można zrobić np. w takim <a href="http://www.motobit.com/util/base64-decoder-encoder.asp">edytorze</a>. Po wczytaniu i przekonwertowaniu obrazka w takim edytorze otrzymamy ciąg znaków, który możemy wstawić w HTMLowy tag IMG:</p>
<p>&#60;img src=&#8221;data:image/jpeg;base64,CIĄG_ZNAKÓW_OBRAZKA&#8221; height=&#8221;100&#8243; width=&#8221;100&#8243;/&#62;</p>
<p>Aby powyższy ciąg znaków otrzymać dla dokumentu zapisanego w archiwum wykorzystamy cztery moduły funkcyjne:</p>
<p>1. Pobieramy listę dokumentów przypisanych do pracownika &#8211; wykorzystujemy do tego funkcję ARCHIV_CONNECTINFO_GET_META. Ważne, żeby w parametrze object_id podać numer pracownika i na końcu gwiazdkę (*) np. &#8217;10000021*&#8217;</p>
<pre>  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.</pre>
<p>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ę &#8211; ARCHIVEOBJECT_GET_TABLE, która pobiera plik binarnie do tabelki:</p>
<pre>    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.</pre>
<p>3. Obliczamy długość pliku (raczej mało elegancko):</p>
<pre>  length = LINES( binary_tab ).
  length = length * 1024.</pre>
<p>4. Wywołujemy funkcję SCMS_BINARY_TO_XSTRING, która stworzy nam jeden ciąg bajtów w postaci xtsringa z tabelki binarnej:</p>
<pre>  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.</pre>
<p>5. Teraz wystarczy tylko zakodować wynik do postaci stringa o podstawie 64bitowej:</p>
<div>
<pre>  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.</pre>
</div>
<p>W zmiennej lv_picture mamy ciąg znaków, który możemy wkleić w tag img.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2012/02/17/odczyt/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Oxford] szkoła, czyli chodźmy na zajęcia</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2010/10/12/oxford-szkola-czyli-chodzmy-na-zajecia</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2010/10/12/oxford-szkola-czyli-chodzmy-na-zajecia#comments</comments>
		<pubDate>Mon, 11 Oct 2010 23:05:40 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[Erasmus]]></category>
		<category><![CDATA[Oxford]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=161</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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 :)</p>
<p>Studenci w Brookes&#8217;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 &#8216;Research &#38; Study Methods&#8217;, który trwa przez dwa semestry i jest faktycznie pisaniem pracy magisterskiej &#8211; najpierw poszukiwanie materiałów w pierwszym semestrze, a potem pisanie pracy w drugim. Ponieważ ja jestem tu tylko semestr nie realizuję tego modułu.</p>
<p>Powiedzmy sobie szczerze &#8211; tu nikt się nie przepracowuje specjalnie. Na jeden moduł przypadają 3h zajęć w tygodniu &#8211; 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.</p>
<p>Same nazwy przedmiotów, które tu realizuję niewiele mówią, więc napiszę kilka słów o każdym z nich.</p>
<p><strong>Formal Software Engineering &#8211; Formalna Inżynieria Oprogramowania</strong></p>
<p>To jedyny przedmiot bezpośrednio związany z inżynierią oprogramowania, jaki miałam do wyboru &#8211; nad czym ubolewam. To dosyć wąska jej dziedzina i na zajęciach będziemy głównie zajmować się Metodą B (<a href="http://en.wikipedia.org/wiki/B-Method" target="_blank">B-Method</a>) &#8211; 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 &#8211; zatem w pociągu nie ma kierowcy! Najfajniej oczywiście siedzi się w pierwszym wagonie &#8211; jak w pociągu widmo &#8211; rewelacja, polecam! :)</p>
<p><strong>Structured Data &#8211; Strukturyzacja danych</strong></p>
<p>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 &#8211; pierwsza to typowe relacyjne bazy danych, druga to struktury drzewiaste, czyli XML. Coursework podzielony jest na 3 części &#8211; 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.</p>
<p><strong>Middleware &#8211; Oprogramowanie pośredniczące, albo po prostu Middleware</strong></p>
<p>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 <a href="http://pl.wikipedia.org/wiki/PVM" target="_blank">PVM</a>, która ma działać na uczelnianym klastrze.</p>
<p><strong>Paradigms of Programming &#8211; Paradygmaty Programowania</strong></p>
<p>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 &#8211; 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 &#8216;eksploracja&#8217; 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++ &#8211; 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.</p>
<p>Jak widać będę miała co tutaj robić przez najbliższe tygodnie. O międzynarodowej integracji i zwiedzaniu nie wspomnę.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2010/10/12/oxford-szkola-czyli-chodzmy-na-zajecia/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome to Oxford</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2010/09/25/welcome-to-oxford</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2010/09/25/welcome-to-oxford#comments</comments>
		<pubDate>Sat, 25 Sep 2010 16:38:04 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[Erasmus]]></category>
		<category><![CDATA[Oxford]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=155</guid>
		<description><![CDATA[No to jestem. Mija prawie tydzień odkąd przyleciałam do Wielkiej Brytanii, więc chyba mam już prawo do &#8216;pierwszych wrażeń&#8217;. Od razu uprzedzam, że wcześniej w UK byłam tylko przelotem (dosłownie &#8211; 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 [...]]]></description>
			<content:encoded><![CDATA[<p>No to jestem. Mija prawie tydzień odkąd przyleciałam do Wielkiej Brytanii, więc chyba mam już prawo do &#8216;pierwszych wrażeń&#8217;. Od razu uprzedzam, że wcześniej w UK byłam tylko przelotem (dosłownie &#8211; kilka godzin na lotnisku), więc to prawdziwie świeże obserwacje. No to lecimy:</p>
<ul>
<li>Anglicy jeżdżą <strong>nie po tej stronie ulicy</strong>, 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&#8230;!</li>
<li><strong>Przechodzenie na drugą stronę</strong> 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 &#8216;wyjątkowości&#8217;, bo na bardziej skomplikowanych skrzyżowaniach, albo rondach malują na przejściach dla pieszych na jezdni napisy &#8216;look left&#8217;, &#8216;look right&#8217;, &#8216;look both sides&#8217;. Jeśli ktoś nie rozumie angielskiego to niestety i tak nic mu to nie pomoże.</li>
<li>Wydaje mi się, że na <strong>chodnikach</strong> też obowiązuje jakiś kodeks drogowy. Ale jeszcze nie rozkminiłam, jaki.</li>
<li>Anglicy nie mają <strong>chleba</strong>. 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.</li>
<li>W Oxfordzie większość miejskich<strong> autobusów</strong> jest dwupiętrowa. I to jest super &#8211; 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.</li>
<li>Angielskie <strong>domki</strong> 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.</li>
<li><strong>Wejścia do mieszkań</strong> wprost z chodnika &#8211; 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 &#8211; rewelacja! Bardzo dużo jest niebieskich &#8211; zupełnie jak w &#8216;Notting Hill&#8217;.</li>
<li>Ciekawym zjawiskiem są<strong> kolejki</strong>. 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.</li>
<li><strong>Polaków</strong> 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: &#8220;Marjola, how are you doing?&#8221;, &#8220;Krzisztoff, are you OK? dajeszz rade?&#8221; nie pozostawiają wątpliwości, co do narodowości tych pracowników.</li>
<li>Jakże miło było znaleźć<strong> polskie jedzenie</strong> w Tesco! Fajnie tu jeść pierogi ruskie &#8216;U Jędrusia&#8217;.</li>
<li>I na koniec jeszcze jedno. Albo Anglicy <strong>piją</strong> 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 &#8211; angielskie dziewczyny ubierają się na wyjścia do klubów, jak <strong>dziwki</strong>. 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.</li>
</ul>
<p>Wiem, stronniczo. Ale może zmienię zdanie. I pewnie do większości tych rzeczy da się przyzwyczaić.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2010/09/25/welcome-to-oxford/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ABAP: finding logical database with table name</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2010/05/04/abap-poszukiwanie-logicznej-bazy-danych-na-podstawie-nazwy-tabeli</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2010/05/04/abap-poszukiwanie-logicznej-bazy-danych-na-podstawie-nazwy-tabeli#comments</comments>
		<pubDate>Tue, 04 May 2010 17:30:15 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=146</guid>
		<description><![CDATA[I wrote this tip to embrace many &#8211; sometimes strange &#8211; needs of ABAP programmers. To find a logical database having database table name only you should use transaction SE36 &#8211; Logical database builder. We choose Extras -&#62; Table usage and write table name. The result is a list of logical databases, which use this [...]]]></description>
			<content:encoded><![CDATA[<p><br />
</p>



<p><span lang="en-us">I wrote this tip to embrace many &#8211; sometimes strange &#8211; needs of ABAP programmers.</span></p>
<p><span lang="en-us">To find a logical database having database table name only you should use transaction <strong>SE36</strong> &#8211; Logical database builder. We choose <strong><em>Extras -&#62; Table usage</em></strong> and write table name. The result is a list of logical databases, which use this table.</span></p>
<p><span lang="en-us">And for instance for PERNR table we got LDBs: PNP  (HR Master Data) i PNPCE (HR Master Data including concurrent employment).</span></p>
<p><span lang="en-us">This knowledge may be useful for example during exploration of not known ERP modules, when your only anchor point is table name from that area. <em><strong>Quick&#38;useful.</strong></em></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2010/05/04/abap-poszukiwanie-logicznej-bazy-danych-na-podstawie-nazwy-tabeli/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WDI2010, czyli konferencje, konferencje&#8230;</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2010/03/18/wdi2010-czyli-konferencje-konferencje</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2010/03/18/wdi2010-czyli-konferencje-konferencje#comments</comments>
		<pubDate>Wed, 17 Mar 2010 23:15:24 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[BitLocker]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[WDI2010]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=139</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Miałam dzisiaj przyjemność uczestniczyć w drugim dniu konferencji ukrytej pod nazwą <a href="http://www.wdi2010.pl" target="_blank">Warszawskie Dni Informatyki 2010</a>. 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ć.</p>
<ol>
<li><strong>&#8220;BitLocker i BitLocker To Go w Windows 7 &#8211; DeepDive&#8221; Paula Januszkiewicz</strong>
<p>Dla mnie nowość. O BitLockerze słyszałam, co więcej &#8211; 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&#8217;ów &#8211; 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 &#8211; 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. </p>
</li>
<li><strong>&#8220;IntelliTrace &#8211; Nowość w Visual Studio 2010&#8243; Michał Komorowski</strong>
<p>IntelliTrace, czyli narzędzie do &#8216;nagrywania&#8217; 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 &#8211; 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 &#8211; 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 &#8211; przynajmniej na razie &#8211; jedynie Visual Studio 2010 w wersji Professional, zatem IntelliTrace obecnie nie jest dostępny dla przeciętnego studenta, a szkoda.</li>
<li><strong>&#8220;ASP.NET WebForms vs. ASP.NET MVC&#8221; Michiel van Otegem</strong>
<p>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.</li>
<li><strong>&#8220;Gra w augmented reality &#8211; wstęp do XNA. (XBOX, C#).&#8221; Mateusz Kierepka</strong>
<p>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 &#8211; 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.</li>
</ol>
<p>Podsumowując jestem zadowolona, że uczestniczyłam w WDI2010 &#8211; 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ę.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2010/03/18/wdi2010-czyli-konferencje-konferencje/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DigiGirlz startuje!</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2010/03/16/digigirlz-startuje</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2010/03/16/digigirlz-startuje#comments</comments>
		<pubDate>Mon, 15 Mar 2010 23:25:42 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=135</guid>
		<description><![CDATA[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). Konferencja podzielona jest na 3 części ze względu na grupy docelowe (więcej szczegółów w agendzie spotkania), ale jeżeli [...]]]></description>
			<content:encoded><![CDATA[<p>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).</p>
<p style="text-align: center;"><a href="http://digigirlz.pl"><img class="aligncenter" src="http://programistka.eu/images/digigirlz-logoSmall.png" alt="Digigirlz.pl" /></a></p>
<p>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!</p>
<p>Kolejne przystanki to:</p>
<p>* 20 marca 2010 &#8211; Warszawa, Uniwersytet Warszawski<br />
* 10 kwietnia 2010 – Gdańsk, Uniwersytet Gdański<br />
* 24 kwietnia 2010 &#8211; Kraków<br />
* 22 maja 2010 &#8211; Wrocław<br />
* 29 maja 2010 &#8211; Poznań</p>
<p>Ze względu na duże zainteresowanie ruszamy najprawdopodobniej z drugą edycją od października dla pozostałych miast Polski.</p>
<p>Informacja pochodzi z bloga <a href="http://blogs.technet.com/plwit/">Pauli Januszkiewicz.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2010/03/16/digigirlz-startuje/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>404 missing kids</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2010/03/06/404-zaginione-dzieci</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2010/03/06/404-zaginione-dzieci#comments</comments>
		<pubDate>Sat, 06 Mar 2010 17:28:54 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[błąd 404]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[zaginione dzieci]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=95</guid>
		<description><![CDATA[Scott Hanselman wrote another great post on his blog.  However this one was so special, that it inspired me to action. But let&#8217;s get to the point. All is about very simple idea of using 404-error pages. Every day there are thousands of them displayed in polish internet, but nobody so far hit on an [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hanselman.com/blog/PutMissingKidsOnYour404PageEntirelyClientSideSolutionWithYQLJQueryAndMSAjax.aspx" target="_blank">Scott Hanselman</a> <span lang="en-us">wrote another great post on his blog.  However this one was so special, that it inspired me to action. But let&#8217;s get to the point.</span></p>
<p> <span lang="en-us">All is about very simple idea of using 404-error pages. Every day there are thousands of them displayed in polish internet, but nobody so far hit on an idea to use them (let&#8217;s say it clear) for the good of humanity. Scoot suggested to link simple page displaying photos and details about missing kids to your 404 page (page not found). In his post you may find details how to use it in american and british locations. In comments to this post there is a link to <a href="http://jwbs-blog.blogspot.com/2010/02/amber-alert-404.html" target="_blank">Dutch version</a>.</span></p>
<p><img class="alignright" style="float: right;" title="404 missing kids" src="http://pczatr.webd.pl/magda/images/404missingkids.jpg" alt="404 missing kids" width="40%" height="40%" /><br />
<span lang="en-us">Following both above examples  I created polish version. You can check this for instance here: </span><a href="http://www.programistka.eu/whatever" target="_blank">http://www.programistka.eu/whatever</a>.</p>
<p><span lang="en-us">How does it work? Very easily &#8211; it uses police <a href="http://zaginieni.policja.pl/rss/6" target="_blank">missing kids</a> RSS channel. You may use <a href="http://zaginieni.policja.pl/rss/5" target="_blank">missing people</a> channel or <a href="http://zaginieni.policja.pl/rss/4" target="_blank">wanted people</a> channel.</span></p>
<p><span lang="en-us">The easiest way to use it in WordPress blog engines is to replace 404.php page in theme you&#8217;re currently using.</span></p>
<p><span lang="en-us"><br />
</span></p>
<pre class="brush: xml; title: ; notranslate">
&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3c.org/1999/xhtml&#34; xml:lang=&#34;pl&#34; lang=&#34;pl&#34;&#62;
  &#60;head&#62;
    &#60;title&#62;404 - Strona nie istnieje&#60;/title&#62;
    &#60;meta http-equiv=&#34;content-type&#34; content=&#34;text/html; charset=windows-1250&#34; /&#62;
    &#60;script type=&#34;text/javascript&#34; src=&#34;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&#34;&#62;&#60;/script&#62;
	&#60;script type=&#34;text/javascript&#34;&#62;
(function($){$.extend({jGFeed:function(url,fnk,num,key){if(url==null){return false;}var gurl=&#34;http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&#38;callback=?&#38;q=&#34;+url;if(num!=null){gurl+=&#34;&#38;num=&#34;+num;}if(key!=null){gurl+=&#34;&#38;key=&#34;+key;}$.getJSON(gurl,function(data){if(typeof fnk==&#34;function&#34;){fnk.call(this,data.responseData.feed);}else{return false;}});}});})(jQuery);
	&#60;/script&#62;
	&#60;style&#62;
		.name {
			clear:both;
			font-weight:bold;
			padding-top:5px;
		}
		#feedPlaceholder {
			margin-left: 50px;
		}
	&#60;/style&#62;
  &#60;/head&#62;

  &#60;body&#62;
	&#60;p&#62;&#60;b&#62;Nie znaleziono strony&#60;/b&#62;, ale Ty szukaj &#60;b&#62;zaginionych dzieci&#60;/b&#62;.&#60;/p&#62;
	&#60;p&#62;&#60;i&#62;Informacje ze strony &#60;a href=&#34;http://zaginieni.policja.pl&#34;&#62;http://zaginieni.policja.pl&#60;/a&#62;&#60;/i&#62;&#60;/p&#62;

	&#60;div id=&#34;feedPlaceholder&#34;&#62;

	&#60;/div&#62;

    &#60;script type=&#34;text/javascript&#34;&#62;
		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 &#60; feed.entries.length; i++) {
						var entry = feed.entries[i];
						var link = entry.link.split(&#34;.pl/&#34;);
						link = link[1];
						var content = entry.content.split(&#34;/&#34;);
						content = '&#60;img src=&#34;http://zaginieni.policja.pl/g2/zdjecia/' + content[content.length - 1];
						content = content.replace(&#34;.htm&#34;, &#34;.jpg&#34;);

						$('#feedPlaceholder').append(
							'&#60;span class=&#34;name&#34;&#62;' + content + '&#60;a href=&#34;http://zaginieni.policja.pl/' + link + '&#34;&#62;' + entry.title 							+ '&#60;/a&#62;&#60;/span&#62;&#60;br /&#62;'
						);
					}
				},
				Items
			);
        });
    &#60;/script&#62;
  &#60;/body&#62;
&#60;/html&#62;
</pre>
<p><span lang="en-us"> The main problem in polish version was proper preprocessing of RSS data. In particular in original police RSS there is an error in link to details of concrete missing person &#8211; it leads to non-existing page, which is probably their previous web address. I reported that to their webmaster, but as for now, the problem still exists. I make proper corrections in above JS file manually.</span></p>
<p><span lang="en-us">Some people said, that all that does not make any sense, that there are more powerful organisations, which cares of such problems. Personally I think, that if I can help this way, so why not? It does not cost anything. </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2010/03/06/404-zaginione-dzieci/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Search help for PCHOBJID in PNP raport</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2010/02/03/pomoc-wyszukiwania-dla-pchobjid-w-raporcie-z-pnp</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2010/02/03/pomoc-wyszukiwania-dla-pchobjid-w-raporcie-z-pnp#comments</comments>
		<pubDate>Wed, 03 Feb 2010 15:33:49 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[pch]]></category>
		<category><![CDATA[pnp]]></category>
		<category><![CDATA[searchhelp]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=77</guid>
		<description><![CDATA[Lately I went through a problem in SAP HR program, HR-PA to be precise. I write an application, which uses PNP database, but one of its functionality uses organizational management, that means PCH usage. Generating selection screen fields from PCH application is quite easy. The problem shows off, when we want to add search help [...]]]></description>
			<content:encoded><![CDATA[<p><br />
<span lang="en-us">Lately I went through a problem in SAP HR program, HR-PA to be precise. I write an application, which uses PNP database, but one of its functionality uses organizational management, that means PCH usage. Generating selection screen fields from PCH application is quite easy. The problem shows off, when we want to add search help for object ID &#8211; common for PCH selection screen.</span><br />
<span id="more-77"></span><img class="aligncenter" title="Pomoc wyszukiwania dla obiektu OBJID z ekranu selekji PCH" src="/images/f4objid.jpg" alt="Pomoc wyszukiwania dla obiektu OBJID z ekranu selekji PCH" width="558" height="455" /></p>
<p><br />
<span lang="en-us">After quick googling the answer is found for instance in this <a href="http://www.saptechnical.com/Tips/ABAP/F4/ObjID.htm">post</a>. In brief you have to use a macro called rhxmacro by adding these four lines:</span></p>
<p><br />
<span lang="en-us"><em>At top of the report&#8230;</em></span></p>
<p>INCLUDE rhxmacro.</p>
<p><br />
<span lang="en-us"><em>&#8230;in INITIALIZATION section&#8230;</em></span></p>
<p>rhx-f4-objid-data.</p>
<p><br />
<span lang="en-us"><em>&#8230;and finally&#8230;</em></span></p>
<p>AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_obj_o-low.</p>
<p>rhx-f4-objid-low pchplvar pchotype so_obj_o &#8221; &#8221;.</p>
<p><br />
<span lang="en-us">Everything would be perfect, if only there wasn&#8217;t an error in rhxmacro, which causes the code not to compile (it&#8217;s SAP, indeed). Last change provided by SAP comes from March 2009 and it looks like someone started doing some corrections in the macro, but didn&#8217;t finish his work. Later on, this &#8216;correction&#8217; went to users with one of the notes. The error, which makes macro not compiling is very common &#8211; to solve it you should delete one line of code, which tries to clear non-existing parameter (deleted during &#8216;correction&#8217; of the macro).</span></p>
<p><br />
<span lang="en-us">So taking everything into account, to have beautiful search help you should create new client macro (unfortunatelly), which is a corrected (definietly) and shortend for our needs version of rhxmacro. Code below. Enjoy.</span><br />
*INCLUDE ZRHXMACRO</p>
<p>DEFINE RHX-F4-OBJID-DATA.<br />
TABLES PLOGI.<br />
DATA : %F4_REPID LIKE SY-REPID.<br />
DATA : %F4_DYNNR LIKE SY-DYNNR.<br />
DATA : %F4_LINES TYPE I.<br />
DATA : %F4_SUBRC LIKE SY-SUBRC. &#8220;XMK E-MSG<br />
DATA : %F4_T77EO LIKE T77EO.    &#8220;XMK #431960<br />
DATA : BEGIN OF %F4_MACO_TAB OCCURS 1,<br />
PLVAR LIKE PLOG-PLVAR,<br />
OTYPE LIKE PLOG-OTYPE,<br />
OBJID LIKE OBJEC-REALO,<br />
END   OF %F4_MACO_TAB.<br />
DATA : %F4_PCHOBJID_LINES TYPE I.<br />
DATA : %F4_PLVAR LIKE WPLOG-PLVAR.<br />
DATA : %F4_OTYPE LIKE WPLOG-OTYPE.<br />
DATA : %F4_OLD_OTYPE LIKE WPLOG-OTYPE.<br />
DATA : %F4_SEL_OBJECTS    LIKE OBJEC   OCCURS 10 WITH HEADER LINE.<br />
DATA : %F4_MARKED_OBJECTS LIKE HRSOBID OCCURS 10 WITH HEADER LINE.<br />
END-OF-DEFINITION.</p>
<p>DEFINE RHX-F4-OBJID-LOW.</p>
<p>SET EXTENDED CHECK OFF.</p>
<p>%F4_REPID = SY-REPID.<br />
%F4_DYNNR = SY-DYNNR.<br />
DESCRIBE TABLE &#38;3 LINES %F4_LINES.<br />
IF &#38;4 EQ SPACE.<br />
PERFORM CHECK_PLVAR_F4(RHXCHK00) USING &#38;1 %F4_SUBRC.<br />
CHECK %F4_SUBRC = 0.<br />
ENDIF.<br />
IF &#38;5 EQ SPACE.<br />
IF &#38;2 IS INITIAL.<br />
CALL FUNCTION &#8216;ASK_OTYPE&#8217;<br />
EXPORTING<br />
D_OTYPE         = &#38;2<br />
IMPORTING<br />
OTYPE           = &#38;2<br />
EXCEPTIONS<br />
NO_OTYPE_SET    = 2<br />
WRONG_OTYPE_SET = 4.<br />
ENDIF.<br />
ENDIF.<br />
IF SY-DYNNR EQ &#8217;1000&#8242;.<br />
%F4_OLD_OTYPE = &#38;2.<br />
CLEAR:   %F4_MARKED_OBJECTS.<br />
REFRESH: %F4_MARKED_OBJECTS.<br />
%F4_MARKED_OBJECTS-PLVAR = &#38;1.<br />
%F4_MARKED_OBJECTS-OTYPE = &#38;2.<br />
CLEAR %F4_T77EO.<br />
SELECT SINGLE * FROM T77EO INTO %F4_T77EO.<br />
LOOP AT &#38;3 WHERE SIGN = &#8216;I&#8217;.<br />
CASE &#38;3-OPTION.<br />
WHEN &#8216;EQ&#8217;.<br />
%F4_MARKED_OBJECTS-SOBID = &#38;3-LOW.<br />
APPEND %F4_MARKED_OBJECTS.<br />
WHEN &#8216;BT&#8217;.<br />
IF %F4_T77EO IS INITIAL.<br />
SELECT * FROM PLOGI<br />
WHERE OBJID &#62;= &#38;3-LOW  AND<br />
OBJID &#60;= &#38;3-HIGH AND<br />
OTYPE EQ &#38;2      AND<br />
PLVAR EQ &#38;1.<br />
%F4_MARKED_OBJECTS-SOBID = PLOGI-OBJID.<br />
APPEND %F4_MARKED_OBJECTS.<br />
ENDSELECT.<br />
ENDIF.<br />
ENDCASE.</p>
<p>ENDLOOP.<br />
CALL FUNCTION &#8216;RH_OBJID_REQUEST&#8217;<br />
EXPORTING<br />
PLVAR             = &#38;1<br />
OTYPE             = &#38;2<br />
DYNPRO_REPID      = %F4_REPID<br />
DYNPRO_DYNNR      = %F4_DYNNR<br />
DYNPRO_PLVARFIELD = &#38;4<br />
DYNPRO_OTYPEFIELD = &#38;5<br />
SET_MODE          = &#8216;X&#8217;<br />
IMPORTING<br />
SEL_PLVAR         = %F4_PLVAR<br />
SEL_OTYPE         = %F4_OTYPE<br />
TABLES<br />
SEL_OBJECTS       = %F4_SEL_OBJECTS<br />
MARKED_OBJECTS    = %F4_MARKED_OBJECTS<br />
EXCEPTIONS<br />
CANCELLED         = 1<br />
WRONG_CONDITION   = 2<br />
NOTHING_FOUND     = 3<br />
ILLEGAL_MODE      = 4<br />
INTERNAL_ERROR    = 5<br />
OTHERS            = 6.<br />
IF &#38;5 NE SPACE AND<br />
%F4_OLD_OTYPE NE %F4_OTYPE.<br />
REFRESH &#38;3.<br />
ENDIF.<br />
IF SY-SUBRC EQ 0.<br />
REFRESH: &#38;3.<br />
CLEAR:   &#38;3.<br />
LOOP AT %F4_SEL_OBJECTS.</p>
<p>&#38;3-LOW    = %F4_SEL_OBJECTS-REALO.<br />
&#38;3-OPTION = &#8216;EQ&#8217;.<br />
&#38;3-SIGN = &#8216;I&#8217;.<br />
APPEND &#38;3.</p>
<p>ENDLOOP.<br />
CLEAR:   %F4_SEL_OBJECTS.<br />
REFRESH: %F4_SEL_OBJECTS.<br />
else.                                             &#8220;Note1265523<br />
clear: %f4_sel_objects, %f4_sel_objects[].<br />
clear: %f4_marked_objects, %f4_marked_objects[].<br />
clear: &#38;3-low, &#38;3[].<br />
ENDIF.<br />
ELSE.<br />
PERFORM OBJID_REQUEST_PLVAR_OTYPE<br />
USING SPACE &#38;1   &#38;2<br />
%F4_REPID  %F4_DYNNR<br />
SPACE      SPACE<br />
%F4_PLVAR  %F4_OTYPE<br />
&#38;3-LOW.<br />
IF &#38;4 NE SPACE.<br />
&#38;1 = %F4_PLVAR.<br />
ENDIF.<br />
IF &#38;5 NE SPACE.<br />
&#38;2 = %F4_OTYPE.<br />
ENDIF.<br />
EXIT.<br />
ENDIF.<br />
DESCRIBE TABLE &#38;3 LINES %F4_PCHOBJID_LINES.<br />
IF %F4_PCHOBJID_LINES GT %F4_LINES.<br />
IF %F4_LINES EQ 0.<br />
MESSAGE S026(PP).<br />
ELSE.<br />
MESSAGE S027(PP).<br />
ENDIF.<br />
ELSE.<br />
ENDIF.<br />
******CLEAR : SUBRC. &#60;&#8212; <span lang="en-us">this is the line we need to remove from original macro</span><br />
READ TABLE &#38;3 INDEX 1.<br />
IF SY-SUBRC GT 0.<br />
CLEAR &#38;3.<br />
ENDIF.<br />
IF &#38;4 NE SPACE.<br />
&#38;1 = %F4_PLVAR.<br />
ENDIF.<br />
IF &#38;5 NE SPACE.<br />
&#38;2 = %F4_OTYPE.<br />
ENDIF.<br />
SET SCREEN SY-DYNNR.<br />
LEAVE SCREEN.</p>
<p>SET EXTENDED CHECK ON.</p>
<p>END-OF-DEFINITION.</p>
<p><br />
<span lang="en-us">Anyway, that should be reported to SAP.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2010/02/03/pomoc-wyszukiwania-dla-pchobjid-w-raporcie-z-pnp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Certyfikat Microsoftu może mieć nawet dziecko?</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2010/01/26/certyfikat-microsoftu-moze-miec-nawet-dziecko</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2010/01/26/certyfikat-microsoftu-moze-miec-nawet-dziecko#comments</comments>
		<pubDate>Tue, 26 Jan 2010 17:51:07 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[certyfikat]]></category>
		<category><![CDATA[informatyka]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=73</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Natknęłam się dzisiaj na ciekawy news:</p>
<p><a title="Najmłodszy informatyk świata certyfikowany przez Microsoft" href="http://tech.wp.pl/kat,1009779,title,Najmlodszy-informatyk-swiata-certyfikowany-przez-Microsoft,wid,11890643,wiadomosc.html?ticaid=19883" target="_blank">Najmłodszy informatyk świata certyfikowany przez Microsoft</a>.</p>
<p>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 &#8216;wznieść się&#8217; 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?</p>
<p>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 &#8211; owo cudeńko nazywa się <a title="SCRATCH" href="http://web.media.mit.edu/~mres/papers/Scratch-CACM-final.pdf " target="_blank">Scratch</a> i jest to &#8211; w zamierzeniu &#8211; 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 <a href="http://www.ddj.com/222100073" target="_blank">artykule</a>. Koncepcja wygląda bardzo interesująco &#8211; 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 &#8216;na żywym materiale&#8217;, czy faktycznie jest to koncepcja warta uwagi.</p>
<p>Ponadto interesująca jest odpowiedź na pytanie jak traktować dziecko w wieku wczesnoszkolnym, powiedzmy w klasach I &#8211; 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 &#8211; 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?</p>
<p>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?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2010/01/26/certyfikat-microsoftu-moze-miec-nawet-dziecko/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

