https://www.gravatar.com/avatar/306d401b2a8c0efe0996fec60e0c90aa?s=240&d=mp

My coding journey

Disclaimer: it's just for fun

Dart for Java developers

Welcome in a new series of articles about Dart programming language.

It is not a beginner tutorial. I focus mainly on features that may be surprising and/or interesting for a Java(Script) developer.

Slides

Slide notes are available here.

The resources:

Start with these:…

  1. https://dart.dev/guides/language/language-tour (language overview)
  2. https://dartpad.dev/ (write & run in online editor)
  3. https://dart.dev/guides/language/spec (language specification page, current spec pdf: 2.10)
  4. https://dart.dev/guides/language/effective-dart (good practices)

Basics

… or look below:

Summaries of 2022 and predictions for 2023

Java predictions

Predictions by authors of Java JVM Trends focus on faster adoption of new Java features and long-term releases

  • frameworks (Helidon, Vert.x etx.) start providing Virtual Threads programming models, so the usage of this language/platform feature would grow
  • native Java could become more visible due to Project Leyden (back to life in 2022) and focus on ease of use for Spring developers
  • migration from MicroProfile Metrics to metrics and tracing by Micrometer.
  • frameworks set the baseline to Java 17 (Spring)
  • Java 11 takes over Java 8 (market): needs modernization of old stacks (libs, dependencies), challenge for many Java developers
  • adoption of Java 17 is faster than Java 11
  • Java as a language is strong (Jetbrains dev ecosystem research from 2021, waiting for 2022 one)

Resources

IT predictions

  • more focus on security
  • recognition for core value of IT Ops / Dev Ops
  • Amazon (or: Cloud) rising even more
  • optimization of development, processes, libraries in the direction of
    • containers
    • CI/CD
  • more impact of developers and engeneers on company-level decision making
  • no-code is not a threat for developers
  • GPT-4 would be a game-changer; robotics will go mainstream expected adoption of self-driving cars
  • buzzing in social platforms (Twitter, Tik-Tok), possible further content-moderation regulatory actions (esp. in Europe)
  • new trends: IoB (Internet of Behaviour) - analysis of human behaviour with analytics (security issues) and prediction of futire behavior

Resources

What I think

I’m reading about the trends in IT and expected directions for companies, inverstors and business in IT world and one theme comes again and again as a common denominator of all the predictions. This theme is: the client. But we as individuals are not “the client”: we are “the revenue stream”. The real client (the one who gives money to software companies) wants the information and needs software professionals to dig that information in order to know:

Drugie urodziny bloga

Dziś spisuję swoje przemyślenia dotyczące prowadzenia bloga. Z góry zastrzegam, że nie napiszę tu nic odkrywczego ani wartego Waszego czasu, więc ci z Was, którzy śledzą artukuły techniczne, będą musieli na kolejny techniczny wpis jeszcze trochę poczekać.

Java w VSCode

Java na szybko

Załóżmy, że potrzebujesz “na szybko” napisać jakiś program w Javie. Jakiego edytora użyjesz? Myślę, że większość Javowców, nawet jeśli są wyznania Vim-owego albo wyznawcami Kościoła Emacs, ucieknie się do uruchomienia grubego IDE takiego jak Eclipse, IntellijIdea lub - szczególnie ostatnimi laty - VSCode.

Przynam się, że ja też jakś czas temu zainstalowałam VSCode (zdaje się, że przy okazji nauki języka Go). Wciąż się docieramy (ja i VSCode) - mimo możliwości “podpięcia” sktótów klawiszowych z innych IDE wciąż staram się nauczyć sktótów właściwych dla VSCode i zrozumieć “filozofię” tego edytora.

Testuję scp i rsync

Nowy hosting?

Ten wpis to krótka notka do siebie samej na temat użycia scp i rsync do synchronizacij katalogów.

Testuję właśnie  hosting na smarthost.pl (i jestem bardzo zadowolona - choć nie można wykluczyć, że parametry podczas testowania są sztucznie “podkręcane” - przy czym na hostingach i ich parametrach nie znam się zbytnio). Przede wszystkim ucieszył mnie zawarty w “najmniejszym” pakiecie hostingowym dostęp przez ssh.

Użycie scp

Próbowałam sobie przypomnieć, jaka jest składnia polecenia scp do “uploadu” plików na serwer. I dopiero po chwili odkryłam, że ssh działa na niestandardowym numerze portu, więc konieczna byłam opcja -P:

Modern Java in Action 8 - concurrency and reactive programming

Task appropriate for the job

  • high parallelization : use fork-join pool and and parallel streams for highly CPU-bound calculations
  • high interactivity: high concurrency and a need to keep a lot of IO-bound tasks on single CPU: use Future (Completable Future) or Flow API

Problems and solutions

Threads problems

  • map 1:1 to OS threads (expensive to create and of limited number)
  • much higher number than hardware threads (cores? well, it seems a core is more complex)

CPUs like the Intel i7-6900K have multiple hardware threads per core, so the CPU can execute useful instructions even for short delays such as a cache miss.