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




piątek, lipca 22, 2016

Oracle - kierunek chmura

Oracle w końcu powiedział jak zamierza rozwijać JEE. Oskarżany o brak zainteresowania rozwojem wersji korporacyjnej Javy (wersja 1.8 będzie za rok, może później, spowodował oddolny ruch za wzięciem w swe ręce inicjatywy rozwoju Javy w duchu open-source nawet bez Oracle. Takie plany mieli Gosling oraz Java EE Guardians and MicroProfile.i.

Kierunek rozwoju Javy to przetwarzanie w chmurze i zastosowanie kontenerów. Oficjalnie strategia będzie ogłoszona we wrześniu na konferencji JavaOne w SF.

Nastąpi zwrot od modelu server-based do cloud-based, służby IT korporacji nie będą musiały troszczyć się o zasoby IT potrzebne do uruchomienia i rozwoju swych aplikacji. Dane aplikacji zostaną utrwalone jako para key-value w bazach MoSQL. Aplikacje w chmurze będą działały w trybie multitenant tj. na wspólnej infrastrukturze. JEE 1.8 otrzyma wiele udoskonaleń głównie w zakresie autoryzacji i autentykacji tożsamości - w chmurach publicznych pojawią się nowe modele zabezpieczeń oparte o żetony OAuth i OpenID Connect. Technologia kontenerów (głównie Docker) pozwoli lepiej izolować aplikację w tym współdzielonym środowisku. Wymaga to też rozwinięcia narzędzi do zarządzania konfiguracją.

W zakresie tworzenia aplikacji nastąpi ujednolicenie modelu obsługi zdarzeń (z racji historycznej ewolucji w Javie do tej pory różne warstwy oprogramowania używały różnych modelów zdarzeń). Planuje się ujednolicenie tych modeli w jeden tzw. react (patrz implementację w JS - framework React). Jest to wymóg dla aplikacji rozproszonych dużej skali, budowanych asynchronicznie, luźno ze sobą powiązanych i opartych na modelu zdarzeniowym.

Planuje się także wykorzystanie nowego protokołu HTTP/2 oraz mikroserwisów; tutaj mały zgrzyt IBM i Red Hat nie czekając na Oracle same zgłosiły poprzez organizację microprofile.io propozycję standardu micro service dla JEE (opartej o JAX-RS, CDI, and JSON-P). Oracle obiecał wypracowanie wspólnego standardu.

Prace na ulepszeniem implementacji HTML5 i HTTP 2.0 będą odbywać się tradycyjnie w ramach JSR.


niedziela, lipca 17, 2016

Trochę Javy i inne tematy

  1. Pięknie o kodzie w stylu ZEN - http://thecodelesscode.com/contents - i tworzeniu oporgramowania
  2. Za darmo e-booki z Java. Książki do nauki Javy - http://www.java67.com/2013/11/10-free-java-programing-books-download-PDF-HTML.html
  3. Najdziwniejsze języki programowania - http://blog.fogus.me/2011/10/18/programming-language-development-the-past-5-years/ 
  4. Niesamowite projekty java (.NET też tam gdzieś jest) - https://github.com/akullpp/awesome-java 
  5. Znany od lat pedagog uczący Javy i C++ http://www.dickbaldwin.com/toc.htm

czwartek, lipca 14, 2016

Znowu o tej Javie

  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) 

Aplikacje mobilne, różne implementacje

  1. Push dla JS (node.js) - http://nickersoft.github.io/push.js/
  2. Android/Cordova - skanowanie kodów QR - https://www.sitepoint.com/scanning-qr-code-cordova/
  3. CodeWalk/Intel - ich wersja studia do tworzenia hybryd - https://software.intel.com/en-us/intel-xdk/details, ich zasoby - https://software.intel.com/en-us/xdk/docs/using-the-build-tab#buildcordovaapps
  4. Android jak zacząć pisać oprogramowanie - https://examples.javacodegeeks.com/android/android-tutorial-beginners-with-examples/
  5. Architektura. Powstaje nowy model przetwarzania - bezserwerowe - http://martinfowler.com/articles/serverless.html#benefits (wykorzystuje API własne i stron trzecich)
  6. Jak stworzyć aplikację mobilną na AZURE - https://dzone.com/articles/creating-a-mobile-app-using-azure-services
  7. Typy aplikacji mobilnych - https://dzone.com/articles/hybrid-or-native-mobile-app-use-the-right-tool-for
  8. https://dzone.com/articles/ionic-how-to-access-or-browse-sqlite-database-byte
  9. Jak wygląda życie web-developera: https://www.webcodegeeks.com/web-development/become-web-developer/?utm_content=buffer1b75a&utm_medium=social&utm_source=plus.google.com&utm_campaign=buffer 
  10. Autentykacja JWT w Ionic - http://grossman.io

Java i pokrewne tematy

  1. Poezja o kodowaniu - http://thecodelesscode.com/case/228 - ciekawa pozycja, piękna angielszczyzna, opis różnych technik tworzenia oprogramowania na wzór mnichów Zen
  2.  Podstawy jUnit - http://javastart.pl/static/efektywne-programowanie/junit/ - testy jednostkowe. Inna publikacja na ten temat, bardzo głęboko rozważona  -  https://www.javacodegeeks.com/2014/11/junit-tutorial-unit-testing.html?utm_content=buffer09f2b&utm_medium=social&utm_source=plus.google.com&utm_campaign=buffer. Tutaj jeszcze teoria annotacji - https://www.javacodegeeks.com/2014/11/java-annotations-tutorial.html?utm_content=buffer412e8&utm_medium=social&utm_source=plus.google.com&utm_campaign=buffer 
  3. Architektura. Powstaje nowy model przetwarzania - bezserwerowe - http://martinfowler.com/articles/serverless.html#benefits (wykorzystuje API własne i stron trzecich)

poniedziałek, marca 14, 2016

Wreszcie coś nowego

Powrót z przeszłości:

  1. Prawo Demeter - zasady namniejszej wiedzy - http://javarevisited.blogspot.com/2014/05/law-of-demeter-example-in-java.html. Tam też są odnośniki do innych materiałów na temat zasad i wzorców programowania w Javie
  2. Wątki, komunikacja między nimi w Javie - http://javarevisited.blogspot.sg/2013/12/inter-thread-communication-in-java-wait-notify-example.html

sobota, września 26, 2015

Ważne skróty klawiszowe w Eclipse IDE

    Oto co znalazłem w sieci na ten temat:
  • http://www.shortcutworld.com/en/win/Eclipse.html
  • znany autor - http://www.vogella.com/tutorials/EclipseShortcuts/article.html

piątek, grudnia 05, 2014

Deweloperskie linki

Materiały szkoleniowe na temat różnorodnych technologii Microsoft - http://weblogs.asp.net/ricardoperes/microsoft-developer-training-kits

Wprowadzenie do XAML:

Java. Ciekawe tematy:

WS z PHP (bazowanie na REST) - http://www.mcpressonline.com/web-languages/web-service-basics-for-ibm-i.html

Propozycje do nauki kolejnego języka programowania przez porównanie - http://www.infoworld.com/article/2825055/application-development/5-sites-to-help-developers-make-a-cross-language-leap.html. Portale porównujące różne języki programowania w świetle typowych zadań programistycznych:

Zasoby Androida:

Ciekawy portal z zakresu bibliotek JS - http://dailyjs.com/. Ciekawa bibliotek semantyczne do tworzenia oryginalnego GUI w HTML/JS - http://semantic-ui.com/collections/form.html

Bardzo ciekawe przekształcenia XLST - http://weblogs.asp.net/ricardoperes/Tags/XSLT, np. pokazana jest pętla - http://weblogs.asp.net/ricardoperes/xslt-for-loop

  1: <xsl:template name="for">
   2:     <xsl:param name="from"/>
   3:     <xsl:param name="to"/>
   4:  
   5:     <xsl:if test="$from &lt;= $to">
   6:         <xsl:variable name="newfrom" select="$from+1"/>
   7:  
   8:         Here I am! <xsl:value-of select="$from"/>
   9:  
  10:         <xsl:call-template name="for">
  11:             <xsl:with-param name="from" select="$newfrom"/>
  12:             <xsl:with-param name="to" select="$to"/>
  13:         </xsl:call-template>
  14:     </xsl:if>
  15: </xsl:template>
 

poniedziałek, grudnia 01, 2014

Lista ciekawych tematów na początek grudnia

  1. DataTable w jQ - http://www.codeproject.com/Tips/844403/jQuery-Datatables-For-Beginners

  2. http://betanews.com/2014/11/19/comodo-8-delivers-smarter-sandboxing/

  3. http://betanews.com/2014/11/20/diagnose-process-hangs-with-whatishang/

  4. Mega ćwiczenia - jest ich tylko 8 - http://www.mensjournal.com/expert-advice/the-only-8-moves-you-need-to-be-fit-20140306/classic-push-up

  5. Nowe prezzi - http://betanews.com/2014/11/21/create-stylish-animated-presentations-with-notzy/

  6. Do zarządzania plikami PDF - http://www.downloadcrew.com/article/32979-unitypdf

  7. IE rozwój i dostosowanie do innych przeglądarek (gonienie za nimi) - https://status.modern.ie/cssfilterimagefunction (niektóre są zakończone np. Web CryptoAPI). Można zobaczyć na co można liczyć tworząc przenaszalne aplikacje.

  8. Portal about ma ciekawe zasoby - http://websearch.about.com/od/internetresearch/a/newsreference.htm

  9. Bardzo pragmatyczne podejście do WPF i jej przyszłości - http://pragmateek.com/is-wpf-dead-the-present-and-future-of-wpf/

  10. Zacznij z Androidem - http://lifehacker.com/i-want-to-write-android-apps-where-do-i-start-1643818268?utm_campaign=socialflow_lifehacker_facebook&utm_source=lifehacker_facebook&utm_medium=socialflow

  11. Zasoby a Android - http://www.vogella.com/tutorials/AndroidCommandLine/article.html

  12. Kursy JS/HTML i inne za darmo - https://www.codeschool.com

  13. Nowa wersja Unity 3D - http://techcrunch.com/2014/11/26/unity-4-6-finally-brings-the-long-promised-user-interface-creator/

  14. Naprawdę dobry tutorial do JS - https://developer.mozilla.org/en-US/docs/Web/Tutorials

  15. Autorytet JS - wykład o DOM-ie (prezentacja wraz z video) - http://yuiblog.com/blog/2006/10/20/video-crockford-domtheory . Okazuje się, że znajomość JS to nie wszystko, trzeba również poznać otoczenie czyli przeglądarkę w której się JS uruchamia.

niedziela, listopada 30, 2014

Nowy stopień wirtualizacji

Technologia DOCKER, pod nią podpisało się wiele firm (IBM, Red Hat, VM Ware oraz ostatnio Microsoft. Google też ale coś szykuje na boku ze swym własnym kontenerem Kubernetes w ramach inicjatywy Compute Engine cloud. Microsoft obiecuje wsparcie uruchamiania kontenerów Dockera w środowisku Azure i Windows Server.

Obraz  ASP.NET jest dostępny na gihubie Dockera do zainstalowania już teraz na AZURE Linux VM. Adres do pobrania obrazu https://registry.hub.docker.com/u/microsoft/aspnet/

wtorek, listopada 18, 2014

Ciekawostki ze środy 20 sierpnia 2014

Monografia o Ajax i pokrewnych technologiach - http://ajaxpatterns.org/. Szczególnie jest ciekawy rozdział o IFrame do komunikacji przeglądarka-serwer. Taka ramka ma własny adres źródłowy URL i można go zmieniać. Czytając wynik pobrania tej strony w ramce można dynamicznie w stronie wywołującej ramkę wstrzyknąć ‘obcą’ zawartość. ramka służy jako repozytorium danych dlatego się ją ukrywa poprzez klasę w arkuszu stylów. Można obsłużyć pobranie danych z serwera (GET), z POST-em jest kłopot, ale można go obejść poprzez wysyłanie sygnatury formularza z danymi (<FORM>…</FORM>). To była dobra technologia PRZED pojawieniem się XMLHttpRequest. Teraz to czysta ‘sztuczka’ (hack) nikomu właściwie niepotrzebna. Szczegółowy opis jest tu - http://www.pxl8.com/iframes_3.html – bardzo ciekawa technika ale już ustępująca.

Coś na wirusy i ich pochodne – Malwarebytes Anti-Exploit, oprogramowanie które zabezpiecza komputer przed wykorzystaniem podatności w przeglądarkach, jej dodatkach i Javie (dziur w oprogramowanie użytkowym wykorzystywanych przez złośliwe oprogramowanie). W wersji płatnej również PDF, Office, oprogramowanie mutimedialne. Usuwa nie produkty (złośliwe oprogramowanie) ale problemy przez nie pozostawione.  Jest to uzupełnienie do  ich innego produktu - Malwarebytes Anti-Malware (zabezpiecza przed załadowaniem kodu przez złośliwe oprogr. po fakcie zarażenia komputera). Podobnym produktem jest MS Enhanced Mitigation Experience Toolkit, ale on wymaga jeszcze trochę doszlifowania.

Poradnik inwestora - http://jakoszczedzacpieniadze.pl/

Tutoriale Java: