czwartek, 28 kwietnia 2016

SBT - tworzenie projektu od zera


Aby utworzyć nowy projekt wystarczy jedynie zainstalowany SBT, nie trzeba tworzyć już więcej pliku opisującego gdyż istnieje możliwość wygenerowania takowego przy użyciu definicji skonfigurowanych w sesji SBT.
Poniżej znajduje się minimalna lista kroków które do tego wystarczą.
1) uruchomić sesję SBT, czyli z terminala wpisujemy sbt w miejscu naszego nowego projektu
2) jak widzimy znak zachęty ">" wpisujemy poniższe informacje

set name:="NewProject"
set version:="1.0-SNAPSHOT"
set scalaVersion:="2.11.7"
3) Na koniec
session save

I wszystko już gotowe. Pozostaje jeszcze utworzenie katalogów src/main/scala i src/test/scala i można kodować.

Taki projekt moża już wczytywać do IntelliJ jako "SBT project".
Aby istniała możliwość pracy w Eclise to należy stworzyć adekwatny projekt. Aby to uzyskaćnależy dodać jeszcze plugin SBT

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")

i wydać komendę

sbt eclipse

Po zakończeniu komendy będzie można zaimportować nowy projekt bezpośrednio do IDE.

wtorek, 29 grudnia 2015

Scala - od źródła do celu

W trakcie nauki języka Scala warto korzystać z dobrych materiałów. Na pewno warte odnotowania to:
https://github.com/jaceklaskowski/scalania
http://scala-exercises.47deg.com/
http://aperiodic.net/phil/scala/s-99/

sobota, 19 kwietnia 2014

Hadoop - kompilacja na systemie Windows 8 - 32bit


Z uwagi że domyślna instalacja Hadoop nie zawiera bibliotek dla Windows, aby móc pracować w tym systemie operacyjnym trzeba najlepiej samemu wykonać kompilację Hadoopa ze źródeł. Poniżej prezentuję kroki aby to osiągnąć:
1. Pobrać plik ze strony dystrybucyjnej i rozpakować np. do ścieżki c:\hadoop-src
http://ftp.piotrkosoft.net/pub/mirrors/ftp.apache.org/hadoop/common/hadoop-2.3.0/hadoop-2.3.0-src.tar.gz
2. Zainstalować Windows SDK 2010 - (Microsoft Visual Studio 2010 PRofesional)
Można pobrać z http://download.cnet.com/Microsoft-Visual-Studio-2010-Professional/3000-2212_4-10618634.html
5. JDK 1.6+
Pobrać i zainstalować
3. Cygwin - http://www.cygwin.com/
Pobrać i zainstalować
4. Protocol buffer - https://code.google.com/p/protobuf/
Pobrać i dodać do zmiennej systemowej PATH
6. Maven - http://maven.apache.org/
Pobrać i dodać do zmiennej systemowej PATH
6. Ustawić zmienną systemową SET JAVA_HOME=<ścieżka do JDK>
7. Ustawić zmienną systemową SET PLATFORM=Win32
8. Uruchomić Command Line najlepiej z uprawnieniami administratora
9. Uruchomić skrypt C:\Program Files\Microsoft Visual Studio 10.0\VC>vcvarsall.bat
10. Przy kompilacji pod 32 bitowy system Windows występuje znany problem opisany na Jira
https://issues.apache.org/jira/browse/HADOOP-10144
https://issues.apache.org/jira/browse/HADOOP-9922
Aby go rozwiązać należy wykonać edycję plików z projektu hadoop-common:
src/main/native/native.sln - edycja 4 linii konfiguracja Win32
src/main/native/native.vcxproj - dodanie 4 sekcji z konfiguracja Win32
To co należy wkleić dostępne jest w Patchu 9922 - https://issues.apache.org/jira/secure/attachment/12600760/HADOOP-9922.patch
11. Zbudować dystrybucję mvn package -Pdist,native-win -Dtar -DskipTests
Uruchomić ze ścieżki c:\hadoop-src lub innej gdzie rozpakowaliśmy źródła. Przy budowie najlepiej pominąć wykonanie testów jednostkowych, ponieważ wydłuży to czas oczekiwania. Po upływie kilkunastu lub kilkudziesięciu minut Hadoop powinien być skompilowany i gotowy do instalacji

czwartek, 12 września 2013

Webservice - specyfikacje

W skład usług sieciowych opartych o XML wchodzi wiele odrębnych i niezależnych specyfikacji, od najbardziej podstawowych służących do opisu i kontroli transmisji do specyficznych zagadnień wchodzących w skład tzw. WS Stack. Opisy standardów dostępne są w sieci pod różnymi adresami, dlatego poniżej znajduje się zestawienie części z nich wraz z odpowiednim linkiem precyzującym treść.


XML - treść komunikatu - http://www.w3.org/TR/REC-xml/

SOAP - protokół wymiany komunikatów - http://www.w3.org/TR/soap/

WSDL - opis usługi sieciowej - http://www.w3.org/TR/wsdl

WS-ReliableMessaging - http://docs.oasis-open.org/ws-rx/wsrm/200702/wsrm-1.1-spec-os-01.pdf

WS-I Simple SOAP Binding Profile - http://www.ws-i.org/Profiles/SimpleSoapBindingProfile-1.0-2004-08-24.html

WS-I Basic Profile - http://www.ws-i.org/profiles/basicprofile-1.0.html

WS-MakeConnection - http://docs.oasis-open.org/ws-rx/wsmc/200702/wsmc-1.0-spec-cd-01.html

WS-I BSP (Basic Security Profile) - http://www.ws-i.org/profiles/basicsecurityprofile-1.0.html

WS Security - https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss

czwartek, 28 marca 2013

ANSI C - suplement

Dla wszystkich czytających legendarną książkę Brian W. Kernighan oraz Dennis'a Ritchie

Język ANSI C. Programowanie - Kernighan Brian W., Ritchie Dennis M.

Polecam link http://users.powernet.co.uk/eton/kandr2/.

Znajdują się tam rozwiązania ćwiczeń proponowanych w książce, ułatwiające pójście na przód w przypadku  blokady na jakimś zadaniu. Udanego i efektywnego studiowania zadań!

środa, 14 marca 2012

Hibernate i aplikacje Web

Aby w pełni wykorzystać funkcjonalność leniwego ładowania encji (lazy fetch) jaką daje Hibernate4 w aplikacji webowej Spring MVC można wykorzystać gotowy filtr dostępny w Spring - OpenSessionIvViewFilter. Jego konfiguracja w aplikacji kończy się na dokonaniu następującego wpisu w plik web.xml:

<filter>
<filter-name>sessionFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class&gt
</filter><

<filter>
<filter-name>sessionFilter</filter-name>
<url-pattern>*.xhtml</url-pattern>
</filter>

Po jego uaktywnieniu, w przypadku odwołania się do dynamicznie ładowanej kolekcji/obiektu nie powinien się już pojawiać błąd:

org.hibernate.LazyInitializationException: could not initialize proxy - no Session

Jednak wykorzystywanie filtra niesie za sobą również pewne problemy. Jak jest napisane w dokumentacji:

WARNING: Applying this filter to existing logic can cause issues that have not appeared before, through the use of a single Hibernate Session for the processing of an entire request. In particular, the reassociation of persistent objects with a Hibernate Session has to occur at the very beginning of request processing, to avoid clashes with already loaded instances of the same objects.

Należy zwrócić szczególną uwagę na wykorzystanie filtra w działających już aplikacjach (może nagle zmienić się ich funkcjonowanie) oraz zwrócić uwagę na możliwe błędy w aktualnie tworzonym kodzie (w szczególności na operacje ponownego przypisania obiektów do sesji Hibernate).

wtorek, 11 października 2011

Start z SAP NetWeaver

Pare dni temu udało się znów zainstalować deweloperski serwer SAP Netweaver. Dzięki niemu można poćwiczyć programowanie w ABAP, gdyż taki serwer jako jedyny daje możliwość uruchamiania programów w tym języku, Piszę, że znów, ponieważ już jest to moje kolejne podejście do tematu SAP i ABAP. Pozostaje mieć nadzieję, że teraz będzie bardziej efektywne i z większymi sukcesami, czym te zapiski mają pomóc.

Aby rozpocząć zabawę należy sciągnąć 2 prawie 2GB pliki z sdn.sap.com -> SAP Netweaver Main Releases -> SAP NetWeaver Application Server ABAP 7.02 SP6 32-bit. Wymagania co do instalacji nie są wygórowane, poza przestrzenią dyskową. Tutaj wymagane jest ponad 30GB przestrzeni dyskowej, a do instalacji jeszcze więcej. I to tylko by napisać HelloWorld w ABAP :-). No ale czego nie robi się dla siebie samego.

Instalacja na Windows Vista przebiegła bez problemu, ale trwała dobre 8h. Trochę długo, ale na szczęście laptop został włączony na noc, to instalacja nie zakłócała korzystania. Po zainstalowaniu pojawia się szereg katalogów, baza danych,użytkowników systemowych, usług etc. Tak jak w prawdziwym, tłustym systemie informatycznym. I pomyśleć, że to wszystko na poczciwym T61. Uruchomienie przebiega bez problemu, a wykonywane jest z poziomu aplikacji SAP Managment Console. Niestety, jak tylko kolor sygnalizujący start systemu zmieni się na zielony, komputer wyraźnie spowolnił - w końcu 8h instalacji, 30GB przestrzeni dyskowej musi na coś iść...

Po uruchomieniu pozostaje jedynie zalogowanie się do nowego SAP'a z poziomu SAP GUI.
Jest to osobna aplikacja, nie instaluje się z cały środowiskiem NetWeaver, aczkolwiek jej instalator znajduje się w pobranych wcześniej plikach. Instalacja SAP GUI przebiega standardowo i bez problemu, dzięki czemu po kilkunastu minutach możemy już łączyć się do SAP. Uruchomienie SAP GUI przywita nas oknem z dostępnymi systemami do logowania. Aby lista się zapełniła, należy wcześniej oczywiście wpisać dane podstawowe wymagane do połączenia. Wymagane dane przedstawione to położenie serwera aplikacji, id systemu oraz numer instancji. Poza pierwszym, elementy brzmią tajemniczo więc należy posłużyć się pomocą.
Po wpisaniu informacji o systemie w konfiguracji połączenia, wystarczy kliknąć 2 razy nazwę systemu z którym chcemy się połączyć i po chwili pojawi nam się ekran logowania. Oznacza to że nasz SAP jest gotowy do pracy!