Research

Community manager Almas Baimagambetov

Senior Lecturer, Computing Department Lead at the University of Brighton. Author of #FXGL game engine. #Java #JavaFX #Kotlin open sourcerer. PhD in Computer Science.

    • Research

    Deep Learning in Java for Nuclear Physics using Deep Netts

    We use the Deep Netts library to implement our neural networks to do track classification, using Multi-Layer Perceptron (MLP) Neural Network.

    Read more
  • Java Panama Polyglot (Python/Tensorflow) Part 3

    How can you, as a Java developer, execute Python script code and access 3rd party Python libraries such as Tensorflow?

    Read more
  • Introducing the OpenJDK “Coordinated Restore at Checkpoint” Project

    Do you want to dramatically decrease JVM startup time, from hundreds of seconds to tenths of milliseconds? Find out about Java on CRaC.

    Read more
    • Research

    Error Handling in Java and Across Different Languages

    In this post, I’d like to describe how a couple of popular languages cope with errors. Get started here for an overview of errors everywhere!

    Read more
    • Research

    Alternatives to DTO

    I believe that DTOs should be a thing of the past. Yet, it seems their usage is still widespread.

    Read more
  • A Tentative Comparison of Fault Tolerance Libraries on the JVM

    If you’re implementing microservices or not, chances are that you’re calling HTTP endpoints. With HTTP calls, a lot of things can go wrong.

    Read more
  • Extending Third-Party APIs in Different Languages

    I’d like to describe how to add new behavior to an existing object/type. I won’t use any reactive type to make it more general.

    Read more
  • Choosing a Cache: Capabilities

    Like in many design decisions, a cache is a trade-off. Caching is a trade-off where you accept stale data to have them available/fast.

    Read more
    • Research

    Reassessing TestNG vs. Junit

    Given that the JUnit ecosystem is much more developed, I think I’ll switch to JUnit for new projects and reassess again in a few years.

    Read more
  • Multiple Ways to Configure Spring

    Many alternatives are available to configure your Spring app.

    I’d like to list them in this post, leaving Spring Boot out of the picture on purpose.

    Read more
  • Annotation-free Spring

    Some, if not most, of our judgments regarding technology stacks come either from third-party opinions or previous experiences. Yet, we seem to be adamant about them!

    Read more
  • Deep Learning in Java for Drug Discovery

    I see tremendous potential for Deep Netts in the drug discovery pipeline and I feel it is necessary to share Deep Netts existence with the scientific community.

    As a Java developer, I have especially come to appreciate having a tool in my language that I could immediately use out of the box and not have to add on weeks, or even months, of training in order to become proficient in another language.

    Read more
    • Research

    Rust and the JVM

    The JVM automatically releases objects from memory when they are not needed anymore. This process is known as Garbage Collection.

    In languages with no GC, developers have to take care of releasing objects. With legacy languages and within big codebases, releasing was not applied consistently, and bugs found their way in production.

    As the ecosystem around the JVM is well developed, it makes sense to develop applications using the JVM and delegate the most memory-sensitive parts to Rust.

    Read more
  • Java in Education: Combining Java with Raspberry Pi and the Pi4J Library

    Although a lot of universities and high schools focus on Python and C# in their program, there are luckily a lot of others who go “full Java”.

    Don’t get me wrong, I definitely don’t want to start a “programming-languages-war”, but Java is the language I used myself more than any other for the last 10 years.

    Setting up a new project or building a proof-of-concept for a new idea, is a matter of hours. And there is always a solution for the problem I need to solve.

    This is probably true for each developer who has enough experience in the language used the most. But having used and experimented with many other languages, I still keep returning to my “one true love”, being Java, as it always delivers the result I’m aiming for, with the right amount of code to be readable, understandable, and testable!

    Read more
  • Optimizing Relational Database Access

    PostgreSQL’s protocol is currently at version 3, and there are concerns about improving the protocol in this regard.

    The V4 wire protocol changes and the wanted features for V4 documents share concerns about version 4 with pipelining and multiplexing in mind. PostgreSQL also has a proposed feature called Protocol hooks that decouples PostgreSQL from the current protocol. It aims to provide extensibility of the wire protocol. Such a feature could be an enabler for multiplexing.

    It took 25 years to deliver HTTP/2 and introduce multiplexing to increase performance drastically. Most database protocols have not followed the same path yet and remain in the stone age of connection pooling (at least databases with an openly documented protocol).

    Multiplexed database protocols could improve performance, and make connection pools a thing of the past. It would also provide the foundation for efficient data streaming from databases.

    Read more
  • BlockHound: How It Works

    BlockHound will transparently instrument the JVM classes and intercept blocking calls (e.g., IO) if they are performed from threads marked as “non-blocking operations only” (ie. threads implementing Reactor’s NonBlocking marker interface, like those started by Schedulers.parallel()).

    If and when this happens (but remember, this should never happen!), an error will be thrown.

    Read more
  • JavaFX: June 2021 Community Update

    In order for any technology to grow and improve, community support and feedback are paramount.

    To get a general idea of what the community would like to see in JavaFX in the future, I have asked developers to share their thoughts. The collated results are given below.

    Each entry also includes links to open-source libraries and other resources that may provide (or help develop) some of the necessary functionalities.

    Read more
    • Research

    Open Source Tools as an Opportunity for SMEs to Use AI?

    Time-traveling cyborgs and robots that are able to love. These interesting and romantic ideas emerged from the imagination of Hollywood film directors.

    Nevertheless, many people are afraid of Artificial Intelligence (AI). This also can be seen in the economic world.

    Small and medium-sized enterprises (SMEs), in particular, see AI as a threat to their own business. Surprisingly however, all different-sized companies are able to see the potential of AI when it comes to penetrating the national and global market.

    NP
    Read more
  • A Close Look at Kotlin’s Delegation

    Kotlin offers many exciting features. In general, developers tend to cite null safety as their favorite. For me, it’s function extensions. But delegation comes a close second.

    Read more
  • Hazelcast, from Embedded to Client-Server

    Java developers are particularly spoiled when using Hazelcast. Because Hazelcast is developed in Java, it’s available as a JAR, and we can integrate it as a library in our application.

    Just add it to the application’s classpath, start a node, and we’re good to go. However, I believe that once you start relying on Hazelcast as a critical infrastructure component, embedding limits your options. In this post, I’d like to dive a bit deeper into the subject.

    Read more
  • Your own custom Spring Data repository

    Functional Programming is becoming more and more popular. Spring provides a couple of DSLs for the Kotlin language. For example, the Beans DSL and the Routes DSL allow for a more functional approach toward Spring configuration. On the type side, Vavr (previously Javaslang) is pretty popular in Java, while Kotlin has Arrow.

    In this post, I’d like to describe how one can use Arrow’s type system with Spring Data. Ultimately, you can benefit from the explanations to craft your custom Spring Data repository.

    Read more

Subscribe to foojay updates:

https://foojay.io/feed/
Copied to the clipboard