sobota, 14 stycznia 2017

Fedora - instalacja Maven & SBT

Bardzo dobry artykuł opisujący jak 'czysto' zainstalować narzędzie maven bez dodatków które wchodzą wraz z yum install maven

https://technoref.wordpress.com/2016/01/19/install-apache-maven-in-fedora-23/

Podobne podejście można zastosować instalując inne narzędzia lub biblioteki takie jak scala czy spark.Poniżej zamieszczam komendy wymagane do instalacji SBT w podejściu przedstawionym w cytowanym artykule.


Otwieramy terminal i...

[skht@fedell ~]$ cd /usr/local/lib
[skht@fedell lib]$ sudo mkdir sbt

[skht@fedell lib]$ cd sbt
[skht@fedell sbt]$ sudo wget https://dl.bintray.com/sbt/native-packages/sbt/0.13.13/sbt-0.13.13.tgz

...
[skht@fedell lib]$ cd sbt
[skht@fedell sbt]$ ls
sbt-0.13.13.tgz
[skht@fedell sbt]$ sudo tar -xvf sbt-0.13.13.tgz
...

[skht@fedell sbt]$ cd sbt-launcher-packaging-0.13.13/
[skht@fedell sbt-launcher-packaging-0.13.13]$ pwd
/usr/local/lib/sbt/sbt-launcher-packaging-0.13.13

[skht@fedell sbt]$ vim ~/.bashrc
 ...
export SBT_HOME=/usr/local/lib/sbt/sbt-launcher-packaging-0.13.13
export PATH=...:$SBT_HOME/bin:$PATH
 ...

[skht@fedell sbt-launcher-packaging-0.13.13]$cd
[skht@fedell ~]$ sbt

Getting org.scala-sbt sbt 0.13.13 ...
...



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).