Java 13 si reducerea verbozității

Puteam să jur că am apăsat pe butounul de Publish din editor. 👴

La momentul în care am început să scriu articolul, Java 13 nu era in stadiul de GA, dar acum mai sunt 5 zile si și apare Java 14. 😀

Două noi funcționalități vor contribui la reducerea verbozității in baza de cod a aplicațiilor.

 

 Text blocks sau multi line strings sau raw strings

Un feture bine venit. Pe scurt:

String html = """
               <html>
                   <body>
                       <p>Hello, World</p>
                   </body>
               </html>
       """;

String json = """
               {
                   "name":"mkyong",
                   "age":38
               }
               """;

Sintaxa este asemănatoare, dacă nu identică cu ce este in Kotlin și Python. Încă nu există conceptul de string interpolation ca în C# sau Javascript, darrrrr este binevenit și acest lucru. Văd utilitatea acestei construcții în query-urile sql complexe. Dacă mai intră în joc și parametrii, se poate folosi String#format

var query = String.format("""
        select * from table where name = %s
        """, name);

var query1 = """
select * from table where name = %s"""
        .formatted(Main.class.getName());//deprecated method

System.out.println(query);
System.out.println(query1);

Rezultatul este următorul:

select * from table where name = cosmin

select * from table where name = com.company.Main

Mai multe lucruri despre aceast feature si o analiză mai detaliată, in acest link

 

Switch expressions

Sunt multe de discutat despre acest lucru, alții au făcut-o mai bine si mai în detaliu. Eu mă voi rezuma la un exemplu de cod scurt și la obiect

    static void howMany(int k) {
        System.out.println(
                switch (k) {
                    case  1 -> join("-", "java", "javascript", "C#"); // a complicated expression :D
                    case  2 -> "two" ;
                    default -> "many";
                }
        );
    }
// howMany(1) = java-javascript-C#

Sigur, nu recomand acel mod de screre al codului 😀

 

In loc de concluzie

Cam atât din partea mea!

Cel putin pe partea de scriere de cod.

De asemenea, las câteva link-uri cu mai multe detalii despre ce am scris mai sus, precum si alte functionalități introduse in limbaj

  1. https://blog.codefx.org/java/java-13-guide/
  2. https://mkyong.com/java/what-is-new-in-java-13/
  3. https://openjdk.java.net/projects/jdk/13/
  4. https://www.baeldung.com/java-pattern-matching-instanceof
  5. https://blog.codefx.org/java/enable-preview-language-features/
  6. https://vladmihalcea.com/multiline-string-java-text-blocks/

 

You have a new mail

De fiecare data când intru cu ssh pe un sistem Linux, primesc acest mesaj You have a new mail.  Acesta se poate citi în /var/spool/mail, fișierul având numele utilizatorului.

La o simplă căutare pe Google, am aflat următoarele lucruri:

  • Este un mesaj care conține output-ul unui job de cron, log, sau, in cazul meu, o logare nereușită
  • Chiar este un email cu toate elementele necesare

Las acest link, pentru cei care doresc să citească mai mult. 🙂

.

Marele final – build-ul 2019

Mai bine mai târziu decât niciodată.

  • Am adus pe cineva mișto în viața mea
  • Un an si ceva de sală
  • Chiar am scris mai des pe blog
  • Mai mult Java, C#, programare și activitate pe Github
  • Am început, timid, să fac voluntariat in Code4Romania
  • Mi-am gestionat mai bine timpul (rămâne sa vedem în 2020 😁)
  • Am încercat noul editor de la WordPress, Gutenberg și nu prea mi-a placut
  • Multe altele 😀

Four Women

 

 

 

Cum să contribui la un proiect open source chiar dacă nu știu programare ?

Am avut o discutie cu un coleg de breaslă care mai face fork la proiecte open source, dar nu prea are idee cum să contribuie la ele pe parte de cod. Așa că i-am sugerat următoarele lucruri. Dar pentru că ar putea inspira mai multă lume să contribuie, m-am gândit sa le scriu si aici.

Primul lucru pe care îl poti face este să încerci prin a contribui la documentație. Ai găsit o greșeală de scriere,  o greșeala gramaticală, o eroare in documentație, atunci este timpul să faci fork la proiect și să incepi sa corectezi. Commit-ul cu “Fixed a small typo” este perfect. 🙂

Un alt lucru pe care îl mai poți face, este să traduci documentația. Astfel proiectul va căpăta expunere mai mare chiar și printre persoanele non-tehnice. Îmi amintesc că acum ceva timp, am tradus în română pagina introductivă a motorului de randare Geko folosit de Firefox.

Ai ceva cunoștințe tehnice, dar nu suficiente încât să contribui la cod ?

Nu este nicio problema !

Poți testa proiectul local și să observi cum se comporta pe sistemul de operare gazdă, ce erori intervin în procesul de setup etc.

Nu în ultimul rând, discută despre proiect și laudă-te la cafeaua de dimineață cu colegii, cu ce contribuții ai făcut 😛 Cine știe, poate stârnești interesul pentru proiect.

Cam astea ar fi ideile mele. 🙂

Spor la contribuții 😀

PS: Multe comunitați open sorce au canale pe toate mediile online, unde discută între ei despre proiecte, evoluția acestora și altele.

 

Top-ul utilizatorilor români pe StackOverflow

Site-ul nu cred că mai are nevoie de nicio prezentare, dar totuși vreau sa menționez că oferă posibilitatea de a interoga baza de date. Zis și făcut și după câteva zeci de minute mi-a ieșit acest query care afișează top 20 utilizatori români pe StackOverflow.

select top 20 Reputation, DisplayName, WebsiteUrl, Location, RANK()
  over (order by Reputation desc) as Ranking
from Users
where Location like '%Romania%'
order by Reputation desc

Am făcut filtrarea după locație, întrucât mi s-a părut cea mai la îndemână. Însă, având în vedere că nu toți o au trecută, o parte din aceștia nu sunt luați în considerare, exemplu notabil fiind Vald Mihalcea cu o reputație de 57,250.

Aici rezultatul interogării și aici pentru toți utilizatorii. De asemenea query-urile pot fi găsite și aici.  Sugestii sau observații, în rubrica de comentarii.  🙂

Digi24, Știrile ProTv, Adevărul, alții și El Chapo

De câteva ori pe luna, observ o știre sau mai multe despre El Chapo. Nu știu cine este El Chapo, dar după nume ar fi mexican sau spaniol. O simplă căutare pe Google zice că este mexican și este un mare mafiot acolo.  Wikipedia are un articol imens unde zice cam totul despre acest individ.

Aici însă, a ajuns să fie la fel de  cunoscut ca și la el acasă, mulțumită jurnaliștilor de la sport.ro și din când în când, câte un articol, ba pe Știrile ProTv, ba pe Adevărul, ba pe Digi24 cu un link către cele menționate. Atât, un link !

O știre proaspătă cu un link care duce spre sport.ro. Este de apreciat că măcar nu au făcut copy-paste  🙂

Dar să fim noi sănătoși !

Și uite cum în loc de un articol cu potențial interesant, am scris și eu un articol despre El Chapo. Dar mai este puțin și se termină luna, iar eu era să nu am nimic pe blog pentru luna acesta.

 

Marele final !

În altă ordine de idei:

  • Master terminat
  • Schimbat job
  • Scris mai des pe blog
  • Participat la 2 conferințe de IT
  • Am trecut pe la sala de sport. Mi-a plăcut. Păstram și pentru la anu’
  • Am schimbat rezoluția la 2K. Merită 🙂
  • TDD pentru prima dată. Mai trebuie lucrat. Pentru la anu’
  • Multe altele