niedziela, listopada 05, 2017

Ach te narzędzia, zawsze się na nie narzeka ale bez nich nie ma roboty

Ciekawe wyniki corocznego raportu na temat stanu javy wydawany przez JRebel - https://zeroturnaround.com/rebellabs/developer-productivity-report-2017-why-do-you-use-java-tools-you-use/. Jako IDE coraz wyraźniej zwycięża IntelliJ IDEA (54%) kosztem spadku Eclipse (33%) , NB idzie równo (13%) - innych nie ma! Baza danych: Oracle (33%), jej klon PostgreSQL i MySQL (czwarte miejsce MS SQL Sever), najmniej zadowolenie z korzystania z IDE są użytkownicy Eclipse, potem IntelliJ IDEA, najbardziej zadowoleni są korzystający z NB. Dlaczego korzystają z Eclipse: polityka firmy, wymagania projektu, znajomość, budżet. Przywiązanie/inercja do istniejącego ekosystemu deweloperskiego jest duże, powody: znajomość narzędzi (63%), projekt jest zaawansowany  (12%), ale aż 10% czuję potrzebę zmian!
Podsumowując wiele narzekań ale siła przywiązania do wykorzystywanych narzędzi jest wielka i trudno przejść na coś innego, nawet lepszego. Z drugiej strony narzędzia nie różnią aż tak bardzo by porzucić swoje przyzwyczajenia
Dodatek: lista nowych technologii wschodzących w 2017 roku 

piątek, listopada 03, 2017

Hity na Gicie

Coroczny raport o stanie rozwoju i projektów aplikacji na Github - https://adtmag.com/articles/2017/10/20/github-octoverse.aspx. Jako język programowania wiedzie prym JS potem Python (wygryzł Java) za nimi nieźle się ma TS. Sam raport jest tu - https://octoverse.github.com/

Nareszcie jest - debuger dla Javy w środowisku Visual Code - https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug - oprócz błękitnego nieba cóż nam jeszcze dziś potrzeba?

Do testowanie przekształceń XSL - Microsoft XML NotePad - http://www.lovettsoftware.com/downloads/xmlnotepad/readme.htm, można też użyć procesorów Javy : xalan i saxon.

Historia jednego standardu - XSLT. Wersja pierwsza powstała z potrzeby uporządkowania prac nad transformacją XML w inne formaty. Było to w 1991. Dalej zaczęło się implementowanie i rozszerzanie tego co ustalono (MS, IBM, SUN i inne mniejsze wyspecjalizowane w narzędziach bazujących na XML firmy np. Altova, Saxonica itd.). Prace nad kolejną wersją w wyniku przepychanego i walki o pozycję swych implementacji trwały długo. Wyglądało to tak: firmy nie chciały czekać na twardy standard wprowadzały własne rozszerzenia mając nadzieję, że to one wejdą do oficjalnego standardu.Wersja XSLT 2.0 powstała dopiero w 2007 roku (to nie żarty tak to długo trwało), po drodze utarto nosa implementacją i rozszerzeniom m.in. MS. Wygrał te kto miał więcej głosów w komisji W3C. Najwięcej mieszał  Michael Kay założyciel Saxonica i proponent XSLT.

czwartek, kwietnia 20, 2017

Co nowego w czwartek?

Temat certyfikatów oraz SSL - https://tersesystems.com/blog/archives/. Jest tam kilka ciekawych artykułów:
  1. Certyfikaty od kuchni:
    1. https://tersesystems.com/2014/03/31/testing-hostname-verification/ 
    2. https://tersesystems.com/2014/03/23/fixing-hostname-verification/
  2. Stosowanie sprawdzonej biblioteki kryptograficznej keyczar, dobra, ale nie do końca, np. ciągle stosuje SHA-1 - https://tersesystems.com/2015/10/05/effective-cryptography-in-the-jvm/
Temat wdrażania aplikacji w Javie pos stronie klienta (obecnie applety nie działają) -  dokumentacja Oracle

wtorek, kwietnia 18, 2017

Dla programistów

Stary problem - kolizja obiektów i algorytmy jej wykrywania -https://dzone.com/articles/n-body-collision-simulation-with-react-d3-and-mobx

Czyszczenie danych pochodzących od użytkownika: ważne dla ochrony aplikacji - https://dzone.com/articles/sanitize-good-for-beer-good-for-data-1

Machine Learning:

  1. O ML, ale to ciężkie jak dla mnie - https://dzone.com/articles/reinforcement-learning
  2. Część pierwsza - https://github.com/ZuzooVn/machine-learning-for-software-engineers/blob/master/README.md

Aplikacje mobile:

  1. Dla UX/UI - Jednak jQuery Mobile robi dobre wrażenie - https://dzone.com/articles/jquery-mobile-lesson-4 - ale czy to aby tylko dla smartfornów - czy na tabletach będzie to wyglądało lepiej?
  2. W co pakować gotowe aplikacje? Cordova czy CodeWalk?

Ważne - https://betanews.com/2017/04/14/gdpr-business/ - GDPR (Global Data Protection)- musi być wyznaczony w firmie DPO, olbrzymie kary. Wchodzi w życie w maju 2018 roku.

Zainstaluj sobie W10 - https://www.microsoft.com/en-us/software-download/windows10 lub https://blogs.windows.com/windowsexperience/2017/04/11/how-to-get-the-windows-10-creators-update/

Biblioteki do klonowania obiektów w C# - https://www.codeproject.com/Articles/1166667/Cloning-Objects-in-NET-Framework-Part-II

Matka wszystkich bomb - http://www.theregister.co.uk/2017/04/13/us_military_bombs_daeshbags/, Rosjanie mają Ojca.

Doskonała sposobność nauki tworzenia kompilatora - https://the-super-tiny-compiler.glitch.me/tokenizer

Nareszcie wszystko w jednym miejscu. Przeglądarka API od MS - https://docs.microsoft.com/pl-pl/dotnet/api/

Dobrze byłoby zapoznać się z App Inventor

Co daje GitLab - https://docs.gitlab.com/ce/user/markdown.html#lists - opis języka markdown. W przeglądarce Chrome jest wtyczka - https://redirect.viglink.com/ - StackEdit. 10 zasobów darmowych aplikacji - http://opensourceforu.com/2017/03/top-10-open-source-tools-web-developers/:

  1. SAAS - Website: http://sass-lang.com/
  2. MongoDB

czwartek, marca 02, 2017

Stan JEE


Stan rynku serwerów będących kontenerami  Java EE - Tomcat rządzi, Jetty niestety traci, Jboss średnio -https://dzone.com/articles/most-popular-java-ee-servers-2016-edition?utm_content=buffer3efc9&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer:



Stan ekosystemu rozwoju aplikacji w Javie - https://zeroturnaround.com/rebellabs/java-web-frameworks-index-by-rebellabs/ - za rok 2016). Około 705 programistów tworzy aplikacje webowe przy pomocy frameworków. Wyróżniamy rusztowania ciężkie (spring mvc, gwt, vaadim ijsf) oraz coraz bardziej popularne, lekkie bazujące na REST API (tu rządzi spark - https://zeroturnaround.com/rebellabs/sparkjava-is-an-amazing-java-web-framework-do-you-really-need-it chociaż przy cięższych wymaganiach zalecane są Playframework lub Spring framework) .



Karty referencyjne:

piątek, stycznia 13, 2017

Walka o utrzymanie JEE

Negatywny raport Gartnera (https://www.gartner.com/doc/reprints?id=1-3N8E378&ct=161205&st=sb - Digital business initiatives require new features and capabilities in application platforms, and Java EE has failed to keep pace. Application leaders responsible for modernizing application infrastructure should develop a strategy to deal with the obsolescence of Java EE. By 2019, fewer than 35% of all new business applications will be deployed in Java EE application servers.) na temat schyłku JEE wywołał mnóstwo kontrowersji. Napotkał odpór wśród społeczności związanej z ruchem open-source jak i samego Oracle - https://www.infoq.com/news/2016/12/Gartner-downgrades-Java-EE. Faktem jest że java serwerowa nie rozwija się, Oracle ograniczył się w nowych wersjach jedynie dodaniem micro services (mikro usług) oraz wsparcia dla rozwiązań cloud.

czwartek, stycznia 12, 2017

Znowu Java

  1. Biblioteki do Java od Google - https://www.javacodegeeks.com/2016/07/forget-guava-5-google-libraries-java-developers-know.html
  2. Java + najbardziej popularne biblioteki (na podstawie analizy Github) - https://www.javacodegeeks.com/2016/05/top-100-java-libraries-2016-analyzing-47251-dependencies.html 
  3. Np. wsparcie dla JSON-a:
    1. fasterxml.jackson.core.jackson-databind 
    2. #19 – google.code.gson.gson 
    3. #43 – json.json 
    4. #80 – googlecode.json-simple.json-simple 
    5. #89 – thoughtworks.xstream.xstream 
    6.  CURL - bardzo ciekawe zastosowania tego polecenia - https://www.systemcodegeeks.com/shell-scripting/bash/linux-curl-example/ - dodawanie nagłówków, wysyłanie formularza, autentykacja bazowa (przeglądarki) 

Aktualności o Javie


  1. Ciekawy projekt związany z IoT - chodzi o wypróbowanie kolejki między urządzeniami w celu wymiany komunikatów - http://tgrall.github.io/blog/2017/01/02/getting-started-with-mqtt/. Do tego celu wykorzystano  bibliotekę mosquito (implementacja MQTT) oraz biblioteki Javy PAHO (z fundacji Eclipse). Cały projekt jest hostowany na githubie - https://github.com/tgrall/mqtt-sample-java
  2. Gniazda w Javie - implementacja - http://www.oracle.com/technetwork/articles/java/jsr356-1937161.html
  3. Sesje szkoleniowe z Oracle:  https://blogs.oracle.com/java/top-12-javaone-sessions
  4. Tamże, zachęta do używania bibliotek w Javie - "Google Guice, an implementation of dependency injection for Java (JSR 330) is his recommendation to best manage dependencies. He suggest the use of Retrofit, a type-safe HTTP client for Java. It reduces repetitions of REST calls by defining a Java API on top of any REST API when building HTTP clients. Repository POJO combined with Lombok and Jackson will help omit unmapped properties and eliminate boilerplate code. JDeferred, a JQuery-inspired implementation using promises and MBassador, an event bus implementation, enable the execution of background threads, chaining behavior, and notifying data consumers at the appropriate time. "
  5. Rozwiązanie bezpieczeństwa aplikacji w JEE narzędziami wbudowanymi w platformę - https://dzone.com/refcardz/getting-started-java-ee
  6. Nauka MAVEN - http://javarevisited.blogspot.sg/2016/09/3-maven-eclipse-tips-for-java-developers.html