Author of 'Getting started with Java on Raspberry Pi' - #JavaOnRaspberryPi
Software developer and Java Champion with over 30 years of experience in video, multimedia, technical project management, digital signage, and (web) programming. Experimenting, writing and speaking about Java on Raspberry Pi.
At work focusing on Java, but also used or using ASP.NET, C#, JavaScript, SQL Server, Flex, CSS, HTML5, Java, Eclipse, Qt...
I love to KISS (Keep It Simple, Stupid) and try to do this in everything I do.
Once a month lead coach of the CoderDojo Belgium club in Ieper, where we teach children (7-18) the fun of programming with Scratch, Arduino, Lego Mindstorms, and Minecraft...
Thanks for your question! JavaFX uses hardware acceleration by default, so the whole application “runs” on the gpu (rendering the scenegraph), but that probably depends on the system it's running on and if the Java runtime can access the GPU. But this is probably a good question for another video ;-) How LogoRRR is doing it: Pixelbuffer is “as direct” as you can get without relying on native code via Panama where you maybe could squeeze out even more performance. Anyway, there is probably no faster way to write to the screen with JavaFX, but let us know if you find one, and it will be used to improve LogoRRR even more :-) Almas Baim (creator of the FXGL game library) uses the same approach for some demos where he showcases some million pixels moving around: github.com/AlmasB/FXGL-FastRender. Check that project if you are interested in performance experiments.
as a question to Geert Bevin , so given where java is in 2024 , does it qualify java to participate in the DAWs as a tool , assuming that latency is now reasonably low ?
@@FrankDelporte in my case, I have always wanted to create a DAW using JavaFX and java plus allow 3rd party vsti integrations, so becuase how much java had it bad for music and memory at the time.
This was really informative as much especially for Music in java , its always has been a question that how come java is not visible as much in the Audio fraternity and manipulations as much !
Wow that looks amazing, pretty good applications by Christopher. Thansk so much Frank and Christopher for showing it us, and for this wonderful JavaFX series.
Hey great overview of enum functionality, you could also show that an enum is basically a immutable class and can also implement interfaces, this could potentiality lead to interesting use cases like an light version of strategy pattern, also quick question, why you are doing Arrays.stream().sequential() is'n it sequential by default ? Other then this great video you got one more subscriber :D
Does Pi4J also support the hardware video decoder of the Pi4 for video playback? I am trying to play a 1080p RTSP H264 video stream in my application and the performance is terrible. (works flawless when using VLC or Gstreamer with v4l2h264dec).
What happened to all the Java Rockstar's in the skin tight leather 😀who used to put video's on You Tube showing us great stuff we can do with JavaFX? We never get any of that now.
1. "Enum members are instances of the enum type" ehm, yeah. Surprise. It is the case since forever. It is not hidden, always been there. "Enum type much like any class can have fields and methods, including constructors". Yeah, nothing new really, nothing hidden either! 2. Also, cringe using java instead of normal javac->java sequence. You are targeting pupils, students, newbies! Don't teach them bad!
Good question! I found this info: * webtide.com/jetty-12-virtual-threads-support/ * eclipse.dev/jetty/documentation/jetty-12/programming-guide/index.html#pg-arch-threads-thread-pool-virtual-threads
A few notes: - your project directory has an .idea directory but you open it with vscode. You don't want to show people your IntelliJ? :) - you're using java 17, aren't you? If yes, your switch (...) { case ...: return 1; ... } doesn't look very nice as there are a lot of return's in there. - you use jband EnumExtended.java instead of java EnumExtendec.java. What's the advantage of using jbang over java?
Hi, thanks for your feedback! 1/ I use both Visual Studio Code and IntelliJIDEA, normally I add the .idea directory to gitignore, but probably forgot it here... Check out my other videos, you'll see I definitely do show it :-) 2/ Yes switch/case can be further improved with newer Java versions, good remark! 3/ When you don't use dependencies, java can handle it. But I do prefer JBang as it has a way to define dependencies inside the file and you don't need a full Maven or Gradle project. See pi4j.com/examples/jbang/ for more info.
Hai boy of me, I am listenet to you, I vind het verry intressesant. I like to luisteren to you because it is goed for my Engels. I have al many things geleerd. Kisses from uw moeder.
I'm with you. It's even more verbose for me than working with old plain arrays. I'd really like to understand all the enthusiasm with them, but I just can't 🫤
@@donwinston of course you can, there are many ways to skin a cat. We could also create a complete large program using only the main class and opt out of using oop in java. Whichever suits the use case.
The moment i saw the 4Drums website, i knew i had to coomment i recently just stumbled upon Vaadin, about a week ago and your 4Drums website was such an inspiration to choose Vaadin as my goto framework
Initially skeptical about Java, having started with Python, I now recognize its broad capabilities. Java's versatility shines through with user-friendly tools like JavaFX for easy app development and Spring Boot for rapid production-ready applications. I don't claim Java to be the best language, but it excels in various aspects. What sets Java apart is its balanced coverage of key programming concepts-OOP, classes, methods, threads. It simplifies these concepts, making them accessible and clear. Unlike Python's simplicity or C++'s complexity, Java strikes a well-calibrated balance, catering to both beginners and advanced users. It stands out as a language that seamlessly integrates fundamental principles while remaining practical for real-world applications
Great video Frank! Learnt a lot from it. Please keep posting regularly about such java concepts. I also had a doubt about how and when the method fromValue() annotated with @JsonCreator at 18:10 being called. Also, there's no @JavaProperty annotation used. While converting the JSON to Java based LogMessage, I was expecting the record to be something like this :- record LogMessage(Level level, @JsonProperty("timestamp") Long timestamp, @JsonProperty("message") String message) and inside enum Level, the attribute "severity" to have @JsonProperty("level") in order to map the 0,5 or 9 to the severity attribute of the Level enum. Also, the @JsonCreator was not used on Constructor of the enum, which I understand is not possible because we need to get a Level out of severity to map to a Level in the LogMessage object. And hence, fromValue method was used right? Now, fromValue is also not a factory method. How does the fromValue method knows, while creating json, that the integer value being received is the "severity" attribute of enum, without this :- public static Level fromValue(@JsonProperty("level") Integer severity)? I did try implementing it in the above said way, but things fail. I guess I am not understanding it properly. Please help : )
I created example code and a video with RGB LED strips (and matrix) for the Pi4J project, you can find all info here: pi4j.com/examples/jbang/pixelblaze_output_expander_image/
Thanks for your feedback! And I agree, headless is definitely the most used approach. But even in those cases, JBang can be very useful to test something new for instance.
Hi, thanks for your interest in my book! Yes, it gets updated. The paper book is sold out, but the ebook that you can buy via LeanPub at leanpub.com/gettingstartedwithjavaontheraspberrypi/ has had many updates since the initial release. Especially for you, I now included this example and a new update is available on LeanPub... Once you have bought the ebook, you can download any new update for free!
Hello, thanks for your project! It is exactly what I was looking for! I see you used the HQ camera and the Raspberry Pi 4 and the Raspberry Pi Zero 2 W on your post, with the HQ camera! Do you know if thus setup works with with the Raspberry Pi Zero W(not the 2) and the lower quality camera rev 1.3? Thanks!
The V1 Zero definitely works, see webtechie.be/post/2023-04-04-raspberry-pi-camera-module-3-autofocus-as-hdmi-camera/. Camera I don't know, that calls for an experiment ;-)
How well does Java run on IOS? Is it better I learn Java for developing apps on both IOS and Android or should I learn Kotlin because Kotlin Multiplatform exists and Java does not really have a mature answer?
Wonderful video Frank. Learned a new thing in Java. Please also make videos on JavaFX tutorials. There are very few JavaFX tutorials online. Please keep posting videos regularly.
Hopefully over the next few updates we will see some long overdue improvements in the graphics department. JavaFX 3D has barely changed since JavaFX 2 launched all those years ago. It still hasn't even got a lookAt camera function like there is in OpenGL.
I have 30 years of experience and still each day there are things I don't understand. That's how things work. Embrace it! It's an opportunity to evolve and learn continuously 😃