DevXplaining
DevXplaining
  • 159
  • 368 135
What's New In Java 23? | Java New Features
Today's video is about Java 23 new features. Java 23 is the next intermediate update to Java platform. It comes with a few new released things, a few removals, and a lot of changes. In this video, I'll cover them on high level as fast as I can, with some code examples.
Some cool things of note:
- What happened to String templates?
- Deprecations hitting Unsafe
- Generational ZGC Garbage Collector to the rescue!
- Why import packages when you can do the whole module?
- And more
As always, appreciate any likes and subscribe to my channel for more of this. Also, feel free to use the comment section as you see fit.
Here are some links mentioned in the video:
- openjdk.org/projects/jdk/23/
- ua-cam.com/video/Ul50FFmOzU4/v-deo.html (Virtual threads and structured concurrency)
- ua-cam.com/video/4X0YcXdbL2M/v-deo.html (What's new with Java 22?)
Переглядів: 151

Відео

Ollama in a RASPI | Running a Large Language Model in a Raspberry Pi
Переглядів 7412 місяці тому
Hi and welcome back to DevXplaining channel! In todays video, we'll go through how to install Ollama and a large language model in a Raspberry Pi. I'll also cover the prerequisites needed to make it happen smoothly, and give you a glimpse at the performance and use cases for this. So join me for a bit and as always, I appreciate any likes, feedback and comments. Feel free to subscribe to my cha...
Retrieval Augmented Generation with Python+Ollama+Phi3+ChromaDB | How to RAG with a local model
Переглядів 1,2 тис.3 місяці тому
Hi and welcome to DevXplaining channel! Todays I've got a long-form video of a Retrieval Augmented Generation (RAG) using Ollama, ChromaDB, and a little bit of Python. We'll be using RSS feed as our source, and create a program that's able to query that source and use generative AI model to answer questions. Cool thing in todays video is that it's all open source, it's all local model, so this ...
Ollama + Phi3 + Python - run large language models locally like a pro!
Переглядів 3,6 тис.3 місяці тому
Large Language Models are popular these days. In this video I'll cover what is Ollama, how you can use it to pull and run local LLM models like Phi3, Mistral, Llama, or similar ones. We'll also cover the setup, do a bit of model customization, and a little bit of Python programming in the end as well. I'll be doing a follow-up video on Ollama RAG if there is enough interest. Let me know how you...
Certifications Are (Still) Useless!!?
Переглядів 3664 місяці тому
Welcome to DevXplaining video - this one is some thoughts on certifications, getting certified, skill levels, and effects on salary. Sorry, no coding in this one, we'll get back to that later. This video should work nicely also as just audio, if you like me like to listen to UA-cam rants when working out. Are certifications useless? Is there any value in obtaining a certification for AWS Certif...
Spring AI RAG | Chat with your PDF Documents using Java and Spring Boot
Переглядів 6 тис.5 місяців тому
Hi and welcome back to my channel! Todays video goes through an example of Retrieval Augmented Generation using Large Language Models (OpenAI in this case)- or how to chat with your PDF documents - using Java 21, Spring Boot, and Spring AI module. As always, the code I will show here is available in Github, link below this. I will cover how to use Vector databases and prompt engineering to limi...
Java 21 + Spring Boot 3.2 + Spring AI = Software Development Advice from Miyamoto Musashi
Переглядів 1,4 тис.6 місяців тому
Hi and welcome to DevXplaining channel! Todays video is a nice tutorial on how to slam together three modern components: Java 21, Spring Boot 3.2, and Spring AI - the newcomer. I will start from scratch, put these together, and create a RESTful AI service that leverages OpenAI API to provide deep and meaningful advice for a software developer - from the late and great Miyamoto Musashi, a legend...
Java 22 New Features | What's coming up in future of Java?
Переглядів 3,8 тис.7 місяців тому
Hi and welcome back to DevXplaining channel! It's time to start this year by learning and talking tech again. For this first video, we'll stick to basics. Java 21 was recently released in 2023, but now we have bold new year 2024, and upcoming Java 22, that will build on the previous version, and add a bunch of new features. Join me for this video, where I'll comment through all the new things c...
Virtual AI Assistant | Code it yourself with Python
Переглядів 7829 місяців тому
Earlier, I made a video about how to build your own voice-based AI virtual assistant - with a personality. Today it's time to revisit that topic, but with some improvements, and a bit more elaboration, plus all the code you see me do, you can check out from my Git repository link below. The assistant uses as combination of SpeechRecognition (google in this case), OpenAI API with gpt-4 turbo mod...
Advent of Code 2023 | Advent Calendar For The Coders
Переглядів 1,6 тис.10 місяців тому
In this video, I'll cover what is the Advent of Code, why you should consider participating in it this year, and how can you participate in the Advent of Code. I'll also share some tips and tricks to make the most of it while attending. I'll also explain why I'll be investing some of my precious December time to participate here, and what programming language and setup I'll be using this year. ...
Java 21 Record Patterns and Pattern Matching | Making Switch Great Again
Переглядів 1,5 тис.10 місяців тому
Java 21 was recently released with a lot of goodies now out of preview and ready to use. Unlike virtual threads, Java 21 changes related to switch statements, record patterns, record deconstruction, and pattern matching are things every developer should know now. Some of them will give you a big boost for Java code efficiency and readability, as well, so learn them now. I made a short video tha...
Java 21 Virtual Threads | Scale your threads optimally
Переглядів 45511 місяців тому
In this video, I'll go through one of the major features of Java 21 - the virtual threads model. Virtual Threads allow thread-using applications to scale with much better resource utilization, thus we achieve better scaling and faster speeds when the hardware allows it. Another cool thing is that any changes to your existing code would be minimal. So join me for a bit, I'll introduce this topic...
Java 21 String Templates | Java 21 New Features
Переглядів 1,2 тис.Рік тому
Today's video is about Java 21 String Templates. String Templates (JEP 430) is a preview feature of Java 21 - the latest big update for the Java platform. In this video, I'll cover the basics with some examples of what you can do with it, and what is it good for. As always, appreciate likes and feedback if you like the content, and do drop questions or feature requests if you have any. Subscrib...
Java 21 New Features | What's New In Java 21?
Переглядів 4,2 тис.Рік тому
In this video, I'll cover what's new in Java 21? More precisely, three sections: 1) What's new since Java 17 (Java releases 18, 19, 20) 2) What's new in Java 21 that's released? And 3) What's in the preview/incubator state in Java 21, in other words, what's coming up in later releases? So join me and watch this video to get an overview of what's included, what they mean, whether or not you shou...
Java 21 Hello World | Java 21 New Features
Переглядів 656Рік тому
Java 21 Hello World | Java 21 New Features
Langchain Memory Model | How can LLM AI hold a ChatGPT-like conversation?
Переглядів 4,1 тис.Рік тому
Langchain Memory Model | How can LLM AI hold a ChatGPT-like conversation?
Getting Started With Langchain | ChatGPT Python Agents With Web Search Capabilities
Переглядів 2,3 тис.Рік тому
Getting Started With Langchain | ChatGPT Python Agents With Web Search Capabilities
Chat with your blogs | Langchain, OpenAI APIs and GPT4All Embeddings
Переглядів 2,3 тис.Рік тому
Chat with your blogs | Langchain, OpenAI APIs and GPT4All Embeddings
How to run ChatGPT in your own laptop for free? | GPT4All
Переглядів 4,2 тис.Рік тому
How to run ChatGPT in your own laptop for free? | GPT4All
How To Create ChatGPT Virtual Assistant With Python
Переглядів 2,5 тис.Рік тому
How To Create ChatGPT Virtual Assistant With Python
ChatGPT API
Переглядів 287Рік тому
ChatGPT API
ChatGPT Fails And Limitations | Artificial Stupidity
Переглядів 1,5 тис.Рік тому
ChatGPT Fails And Limitations | Artificial Stupidity
Java 20 New Features | Scoped Values and beyond Java 20
Переглядів 3 тис.Рік тому
Java 20 New Features | Scoped Values and beyond Java 20
ChatGPT writes my code - AND my unit tests??
Переглядів 1,3 тис.Рік тому
ChatGPT writes my code - AND my unit tests??
The Best Advent Calender? | Tips and tricks for getting the most out of Advent of Code
Переглядів 150Рік тому
The Best Advent Calender? | Tips and tricks for getting the most out of Advent of Code
Best Jupyter Keyboard Shortcuts | Data Science For The Developer
Переглядів 616Рік тому
Best Jupyter Keyboard Shortcuts | Data Science For The Developer
7 Reasons Why I Love Jupyter Lab! | Data Science For The Developers
Переглядів 4,2 тис.Рік тому
7 Reasons Why I Love Jupyter Lab! | Data Science For The Developers
How To Get Started With Jupyter Notebook | Data Science For The Developers
Переглядів 530Рік тому
How To Get Started With Jupyter Notebook | Data Science For The Developers
Let's Terraform Part 6: AWS S3 Backend And Remote State | Terraform Backends And Statefiles
Переглядів 148Рік тому
Let's Terraform Part 6: AWS S3 Backend And Remote State | Terraform Backends And Statefiles
Java 19 and beyond | What's new in Java 19?
Переглядів 3,4 тис.Рік тому
Java 19 and beyond | What's new in Java 19?

КОМЕНТАРІ

  • @hexadecimalhexadecimal5241
    @hexadecimalhexadecimal5241 47 хвилин тому

    how do we combat the non existent job market?

  • @kamertonaudiophileplayer847
    @kamertonaudiophileplayer847 2 години тому

    What's bytecode version for these new features? I do a bytecode analyzer and need to be sure it's compatible with new versions.

  • @-na-nomad6247
    @-na-nomad6247 12 годин тому

    Hear a suomalainen speak and you know he's suomalainen no matter the language 😁

  • @another-morning-comes
    @another-morning-comes День тому

    My favorite feature is Module Import Declarations

  • @tarunarya1780
    @tarunarya1780 10 днів тому

    Thanks for this and your "How to run ChatGPT in your own laptop for free? | GPT4All" video showing the practicalities of running a language model. I think that an important aspect and benefit of a local model is being able to train it. Please cover this or point us. Being able to read pdfs to learn would be great.

  • @47s18
    @47s18 14 днів тому

    Great video! Thank you

  • @MuayViaura
    @MuayViaura Місяць тому

    Good video but, editor color does not match for broadcast and dragging mouse in code editor is not good

    • @DevXplaining
      @DevXplaining Місяць тому

      Thank you! I'll take a look at those, details are important.

  • @user-cj9tn4sl7j
    @user-cj9tn4sl7j Місяць тому

    hey bro. did you see that the new aws challenge just give you the code to put reward functions only. mine is good in the track but its slow how do i increase the speed

    • @DevXplaining
      @DevXplaining Місяць тому

      Yeah, they tend to have great challenges and competition leagues going on most of the time, some with really great prices including trip to Vegas. I won a smaller qualifier and got some sweet swag for it. As for how to win. I try to give some basics in this video, but the fun thing is: There's no right or wrong answer. I always try to compete against myself, make it faster than before. What I do know is that typically the fastest models are trained using waypoints that are specific to track, and since that requires human to define optimal routes, it's not what I typically like to do myself. I enjoy letting the algorithm figure it out using 100% machine learning. It does not grant the greatest results but I enjoy it. I always start with a theory of how to reward. Let's say I reward based on progress on track, and keeping close to centerline. Then I let the training do its thing. I've surprisingly had great results often with very simple reward function, just a lot of training on proper track. I can drop one hint, there's a great Discord community that I'm also part of, they will happily discuss approaches, tips and tricks, and the community includes some very skilled people who tend to do well in the challenges. Besides, things are often more fun in a community, to share. Here's the link: join.deepracing.io/

    • @Scarecrow_official-
      @Scarecrow_official- Місяць тому

      @@DevXplaining let me try this. Thanks man

  • @andreperez9403
    @andreperez9403 Місяць тому

    Keep going dude..😀

  • @blazy6907
    @blazy6907 Місяць тому

    Hi I tried this RAG with pdf document , some of pdf is not parsed by PagePdfDocumentReader

    • @DevXplaining
      @DevXplaining Місяць тому

      Hi, yes, that's a known issue, it's not perfect. Pdf readers often struggle with table data even in the best RAG solutions, and of course cannot easily understand any information that's not in text format already. It's mostly for poc level example, to make it work better, much more work is needed. What can be done? - check which part is not parsed properly - you can isolate the code that parses pdf and play with it - there are typically adjustments you can make to better meet your needs, but as mentioned, it can mostly handle text chapters and titles, table data and images need some other approach overall - possibility to see the library issues list, see if anyone else is struggling with same issues - possibility to check to see if there's a better library available for your needs - there typically are options. This was just one that was fast to get working. So, pdf documents are not the easiest usecase to feed for RAG, something that would be better structured is typically going to give better results. But it's a nice starting place. I'm a bit concerned myself about losing the graphs, images, and potentially having table data cut in halves etc, those can alter the results vastly. If you can find any better means of converting the pdf to any structured format that would retain what you need, that would improve the results.

  • @botnnesen8946
    @botnnesen8946 Місяць тому

    You have save my day - THANKS 🙂

  • @sugaith
    @sugaith Місяць тому

    yes the best coding videos are very long and we are able to see the person suffering when coding as it is in the reality.

    • @DevXplaining
      @DevXplaining Місяць тому

      Hahaa yeah, I can relate to that :)

  • @LanJulio
    @LanJulio 2 місяці тому

    Thanks for the Video !!! Will try on my Raspberry Pi 5 with 8GB of RAM !!!

    • @DevXplaining
      @DevXplaining 2 місяці тому

      Perfect! It's gonna be slowwww... But fully local too :)

  • @leonardosouzaconradodesant6213
    @leonardosouzaconradodesant6213 2 місяці тому

    Great thank you. And by the way, I'd like that video using chromaDB as an application node running in background. See you!

  • @JoanApita
    @JoanApita 2 місяці тому

    Thank you for sharing this video. I learned a lot today. Please keep them coming. Thank you

    • @DevXplaining
      @DevXplaining 2 місяці тому

      Thank you for your feedback! Much appreciated!

  • @praveenmail2him
    @praveenmail2him 2 місяці тому

    Great video. Please keep posting more examples.

  • @julienr8114
    @julienr8114 2 місяці тому

    What a useless feature... and a dirty impletentation of templating

    • @DevXplaining
      @DevXplaining 2 місяці тому

      Indeed. Seems it's not going to make it into future releases.

  • @liqwis9598
    @liqwis9598 3 місяці тому

    one doubt i have ollama which will have a ai model lets say mistral or meta now i am connecting this to my springboot app and lets say i have a pdf about my product can show me how a rag implementation done here and when a api is sent it should give me the data about the PDF

  • @liqwis9598
    @liqwis9598 3 місяці тому

    good ones , we want more usecases for AI and springboot

  • @cesarhernandezcinfo
    @cesarhernandezcinfo 3 місяці тому

    Great video, very practical information. Thanks

    • @DevXplaining
      @DevXplaining 3 місяці тому

      Thank you! Much appreciated! More to follow on the topic. Stay tuned. :)

  • @rasmustoivanen2709
    @rasmustoivanen2709 3 місяці тому

    Great video! Ideas for future videos: Try out different embedding models (I think the ChromaDB default is all-MiniLM-L6-v2) Set up a separate embedding database. Maybe something more familiar with developers like Postgres + pgvector + hnsw indexing (Important to trial out different index building parameters)

    • @DevXplaining
      @DevXplaining 3 місяці тому

      Thank you! Very good ideas!

  • @suraj_bini
    @suraj_bini 3 місяці тому

    Documents Q&A mini project with Phi3 mini

  • @m12652
    @m12652 3 місяці тому

    Is it better than VSCode?

    • @DevXplaining
      @DevXplaining 3 місяці тому

      Well, I use both. VSCode is awesome for dealing with multiple languages and config files, very flexible. Jupyter is great when dealing with mostly Python and data files, soecialized in those. I've got Jupyter plugin in VSCode too, so I use both, depending on what I'm working on.

    • @m12652
      @m12652 3 місяці тому

      @@DevXplaining Fair enough... does Lab do anything vsc doesn't?

  • @CodeWithSeenu
    @CodeWithSeenu 3 місяці тому

    Is there a way to enable jdk 22 features by default without mentioning it everytime “-preview-enable -source 22”? If I use JAVA_TOOL_OPTIONS = -preview-enable -source 22 environment variable, then I’m getting “Unrecognized option: -source”. And tried JDK_JAVA_OPTIONS environment variable instead of JAVA_TOOL_OPTIONS. It’s working 🎉 But now vscode is not working as expected 😅. Is there a solution for this?

    • @DevXplaining
      @DevXplaining 3 місяці тому

      No, the preview features are always behind the preview flag. Of course the idea is that eventually they get out of preview and become just normal features and thus flag is no longer neede. (Or not, they may never become features, or may change a lot before becoming features). So anything behind the flag is more like a cutting edge sneak peak than something actually released and stable. So good for playing and feedback, but not so reliable for production use - yet. Of course you can hide any flags you need in some kind of startup script etc, so nobody needs to actually see them. Java typically uses all kinds of parameterization anyways.

    • @CodeWithSeenu
      @CodeWithSeenu 3 місяці тому

      @@DevXplaining yeah got it thanks. Hope they’ll make those features normal soon ✌🏼

  • @kisho2679
    @kisho2679 3 місяці тому

    Why does exporting mathematical formulas (Markdown, LaTex) into PDF or HTML not work (e.g. $\Epsilon$)?

    • @DevXplaining
      @DevXplaining 3 місяці тому

      Oh yes, you've hit one of the weaknesses/limitations of the current RAG model in general (and vector databases). They are suprisingly awesome at digesting and using huge amounts of unstructured data. But the simple examples do not even attempt to deal with bits that require specific interpretations. PDF readers are good at grabbing document data, titles and paragraphs, to make sense of it. But they currently already struggle with tabular data, diagrams, charts, and yes, math formulas. Furthermore, those are fed into vector database as text typically, and similarity search also works text-based. And when you retrieve it, you retrieve text. I'm afraid there's not much to do about it, except you can of course create a specific pre-parser for the documents, or tune your pdf processor or write your own, to decide the rules how the pdf or html is interpreted and stored. I don't know your exact use case, but my advice would be: yes, it's not working, because it's not a trivial problem to solve. Yes, you can probably solve it, but you need to rethink it. Math formulas typically benefit from more structured content. You can always handle them outside the system, perhaps store some links or references in the rag solution to find and fetch them etc. I have to say haven't had to solve this issue yet but already the tables are a common challenge and question with current gen RAG solutions. It's a decent start but more is needed.

    • @DevXplaining
      @DevXplaining 3 місяці тому

      Oh, forgot one thing: multimodal models that are able to make sense of images might be interesting to explore for formulas, to work around text conversion.

  • @victortarus2814
    @victortarus2814 3 місяці тому

    Kiitos paljon

  • @user-pb8qi4ht4h
    @user-pb8qi4ht4h 3 місяці тому

    Create a Basic RAG model AI chatbot using any open-source model available. Database: Zilliz/Supabase or any Vector DB, of your choice. Backend: Java Frontend: HTML/CSS/JS (or anything you are familiar with) Backend should haveAPI for: • Upload a file or text - text should then be converted into chunks and then embeddings (You can use any open-source embedding model or paid one too). Embedding should then be stored in a vector DB with vector index of your choice (Cosine/ L2/KNN). • Chat API -> prompt or user queries should be passed in this API and using prompt engineering response should be derived from any Language model. Frontend: UI does not have to look pretty. basic pages should be there - 1. For uploading docs or text for training the RAG model. 2. Basic chat interface where user can send message and receive the response. Sir please help me how to do this project🙏🙏🙏🙏🙏🙏

    • @DevXplaining
      @DevXplaining 3 місяці тому

      Awesome idea! Working on something else right now, but this sounds like a good plan for a long form video, and a fun one.

    • @steffonell
      @steffonell 3 місяці тому

      Give me your job, Ill do it for easy

  • @MrSocialPirate
    @MrSocialPirate 3 місяці тому

    Thank you for the video! I think what must be said is the non-techincal filter on job applications. Many recruiters/HR will be inundated with applications in these market conditions, so, why not offer yourself another reason to get put in the 'positive' pile.

    • @DevXplaining
      @DevXplaining 3 місяці тому

      Oh yeah, a very good point. Job market is a bit more challenging right now, so anything concrete to be able to show might just give you that edge. In that sense, even the lightweight free certificates you can do within few hours work. Probably not going to be the main decision factor, but just a little bit of extra on top.

  • @user-hd1mn9hh8b
    @user-hd1mn9hh8b 4 місяці тому

    Nice video! Can you do it with front end like nextJs ? it will be really appreciated and helpful!

    • @DevXplaining
      @DevXplaining 4 місяці тому

      Thank you! I did not include frontend because on top of API that is quite straightforward, and tried to keep the video compact. But I've been thinking of doing a bigger video with full stack, because it looks a lot nicer. But not there yet, at least. It would really be a trivial NextJs (or any other framework) web app that you dump into spring boot 'public' folder under sourcecode. So I'll definitely take that under consideration, but probably not going to happen soon.

  • @jsch2710
    @jsch2710 4 місяці тому

    Hey, I just saw this video and I think the potential is huge, really great video! I was wondering if you could show how to correlate with the different tags you can add in oura? That would be really helpful :)

    • @DevXplaining
      @DevXplaining 4 місяці тому

      Interesting idea, haven't done that yet so need to look into it, if I find something cool I'll definitely be back. Not sure how the API works for them yet, but can see how that could be useful.

  • @zznabil8109
    @zznabil8109 4 місяці тому

    Certificates are the new Degree Scrolls

    • @DevXplaining
      @DevXplaining 4 місяці тому

      Haha, should actually be delivered as sealed physical scrolls I think :)

  • @conceptin10minutes
    @conceptin10minutes 4 місяці тому

    Very informative video. Nice one.

    • @DevXplaining
      @DevXplaining 4 місяці тому

      Thank you! Much appreciated!

  • @lahiruchethiyaJayasinghe
    @lahiruchethiyaJayasinghe 4 місяці тому

    Hi How to read and save json document in vector db

    • @DevXplaining
      @DevXplaining 4 місяці тому

      Hmm, perhaps a topic for another video. Short answer is... depends.

  • @kappaj01
    @kappaj01 4 місяці тому

    Greate video with lots and lots of great information.

    • @DevXplaining
      @DevXplaining 4 місяці тому

      Thank you for the feedback! Much appreciated! Love to learn and share these things, I understand best by building and tinkering. Some more cool RAG stuff coming up soon! :)

  • @joalafreak1588
    @joalafreak1588 4 місяці тому

    Hi, am new to Java can you make a viode about what type of project should I create to practice Spring boot framework.

    • @DevXplaining
      @DevXplaining 4 місяці тому

      Sure, I've done few in the past on my channel, but of course might be nice to redo since both Java and Spring have gone a long way since then. I've mostly been showing Spring Boot + Web module, to create RESTful APIs, and what you want to do behind that is of course up to you, but most often it includes database. But, while waiting for new video, these should still work to give you the big picture: - ua-cam.com/video/xxRw0XIoKvA/v-deo.html - ua-cam.com/video/KsWg6nPVwsg/v-deo.html - ua-cam.com/video/Sg1b0sugbtg/v-deo.html Thanks for tuning to my channel!

  • @lazar9677
    @lazar9677 4 місяці тому

    Well explained, thank you!

  • @SuperVinayaka
    @SuperVinayaka 5 місяців тому

    Great video. I had a question. lets say we are building a chatBot and we need to make sure that the bot answers questions that are available in a document as well as personalized questions for a specific customer [which can be retrieved using some API's that have been exposed]. How would you do it?

    • @DevXplaining
      @DevXplaining 5 місяців тому

      Hmm ,interesting question. If I got it right, some customers would get answers based on the document, but others would get answers based on some APIs? If so, in both cases you want to inject some context in system level instruction, either from vector database/document, or an API - so that part remains the same. So when you need to answer an API, you would call the API, get the context for the question, then include that in system direction. No need for vector database, as long as what the API returns a) has all the context info needed and b) is relevant and c) is not too massive to chat in the available tokens. So in both cases, grab the context information, feed in the system level instruction like in my code. Decide on top of that which context is used for which user. One thing I'm not doing in this video, is keeping a conversational memory: I'm just asking a question, and activating context + chatgpt to handle it, but then forgetting all the conversation. So with conversational memory, would need to be a bit more careful, because also the conversational context is typically injected into the calls. Also I think would have to be careful with size, of course depending on your model token limits. And you would need to keep the contexts separate so each user would see their own personal context only (instead of same shared one for everyone). I hope this helps and I got the question right!

  • @nicolasfelipe1
    @nicolasfelipe1 5 місяців тому

    very good video, thanks for the into, great more examples about rag.

    • @DevXplaining
      @DevXplaining 5 місяців тому

      Thank you! It seems RAG usecases are in demand right now, and there's also uses for own internal tools. Some of these of course will appear as part of available tooling, but being able to do it yourself is great for like-minded tinkerers that like to understand things by building them, I think.

  • @user-us2ee8gr2f
    @user-us2ee8gr2f 5 місяців тому

    please create from the scratch

    • @DevXplaining
      @DevXplaining 5 місяців тому

      Noted, need to make a longer video then but would be fun :)

  • @ArcWeltraumpert
    @ArcWeltraumpert 5 місяців тому

    I don't mean to mock you, but when you say "model", it sounds like "module" in my ears. 😅 nice video bro, keep create content like this...

    • @DevXplaining
      @DevXplaining 5 місяців тому

      Haha, I actually aporeciate feedback on my pronounciation, lets me work on it. Thank you!

  • @ArcWeltraumpert
    @ArcWeltraumpert 5 місяців тому

    i subs you

    • @DevXplaining
      @DevXplaining 5 місяців тому

      Thank you! Appreciated! :)

  • @TheRealMangoDev
    @TheRealMangoDev 5 місяців тому

    JNI is cool. I once tried to build an ide with it: but i failed bc i was on mac and for some stupid reason java runs JNI on a separate thread: and as you know, mac only wants guis fron the main thread… and my structure would’ve been this: JNI - will handle GUI, and java - would handle the actual syntax highlighting, and all at junk

    • @DevXplaining
      @DevXplaining 5 місяців тому

      Haha, you know, I coded myself an IDE too, when starting to learn Java Swing. It never got full featured enough, but it was fun to build it from scratch and then use it to develop it further. Also made me appreciate people who work on modern IDEs a lot more - there's a boatload of details to solve and take care of to make them work beautifully.

    • @TheRealMangoDev
      @TheRealMangoDev 5 місяців тому

      @@DevXplaining i tried to do it with imgui, and failed bc macos is stupid :( and i never even figured out how to make it so JNI executes on the main thread. Altho if java adds a feature like this then ill probably try doing it all over again

  • @EliseyzScripts
    @EliseyzScripts 5 місяців тому

    Thank you so much!

  • @Chrisbees
    @Chrisbees 6 місяців тому

    Very interesting sample of Virtual threads. How does this integrate when youre building an application with a framework? Dont the framework handle the creation of threads?

    • @DevXplaining
      @DevXplaining 6 місяців тому

      Yes, a good question. Short answer is that yes, typically that's what happens, and typical software project inside any web framework pretty much ignores you needing to tap into parallelism - you just think about it when accessing background resources. But two reasons to still keep up with Java parallelism features: 1) Well sometimes you do build something from scratch, that would mainly happen if you want to do some intensive calculations without web servers, or if you are building a server. 2) Virtual Threads are currently finding their way into popular servers and frameworks, so mostly you can just enjoy the benefits, but it's at least good to get the idea why they may bring more performance when your favorite framework start using them. So mostly I think this is the message that Java platform is still very much alive and kicking, and still getting better. Spring Framework is already embracing them, for example: spring.io/blog/2022/10/11/embracing-virtual-threads Might be a fun topic for a future video.

    • @Chrisbees
      @Chrisbees 6 місяців тому

      okay great. Maybe you might consider making a video in the future for this question or you could please share your ideas here. I'm a bit confused if Virtual Threads are going to replace Reactive Programming. If they would, why? and if they won't, why?@@DevXplaining

  • @Chrisbees
    @Chrisbees 6 місяців тому

    This is really cool. Thank you for making this video, now I have to look more into SpringAI. But what would you say about code safety when using AI, dont that have access to your code that shouldn't be public?

    • @DevXplaining
      @DevXplaining 6 місяців тому

      Yeah, it's a good question. AI takes many forms, so rule of thumb is: anything you would not like to/be permitted to publish on front page of a popular magazine tomorrow, you should not send to AI - unless you know how the data is handled, stored, etc. And additionally, is your input used to train the models (which could cause it to pop up as an answer for future users). So for example using ChatGPT like I do here, I'd limit it to general advice. But for example Github Copilot Enterprise is my tool for daily work, and there are some rules in place to stop my code from leaking. So either know how your AI handles input data, or be safe and just use it for general questions. But as always, keep your secrets secret! :)

    • @Chrisbees
      @Chrisbees 6 місяців тому

      very insightful, Thank you@@DevXplaining

  • @julborre
    @julborre 6 місяців тому

    JEP 463 should have been since more than 10 years ago on Java! As someone who learned Java in 2001 this JEP would have been a godsend at that time. I always have said that Java is not a beginner friendly programming language

    • @DevXplaining
      @DevXplaining 6 місяців тому

      Yes, agreed. I was teaching Java for a decade and that getting started part for new coders is tough with it. Once you push through it does get better. So I'm very happy to see they finally added beginner-friendly features, even though old hands really don't need all that :) But much easier to learn it, teach it, do something small just for fun.

  • @mevluterdogdu7418
    @mevluterdogdu7418 6 місяців тому

    Hello, How does it understand that the question ends and that it has to answer?

    • @DevXplaining
      @DevXplaining 6 місяців тому

      Hi, that's a good question. That's built-in the speech recognition library, so it stops to interpret the speech when there's long enough pause. So I'm kinda giving it the whole text by not pausing before I'm at the end. Similarly, the SR library also starts interpreting speech to text only when some audio begins. For any SR library (I'm using Google API in this example), there are typically settings to adjust how long pause means speech has ended, and it's time to interpret it. Alternatively, there's also possibility to introduce walkie-talkie-like push button to speak mechanism to signal end. Finally, one could also of course just interpret constant length blocks constantly, but then that might not make sense to be sent for AI to interpret.

    • @DevXplaining
      @DevXplaining 6 місяців тому

      To give a more concrete answer, here are the parameters that could be passed in my code to adjust how long pause means end of block of speech (in seconds): recognizer = sr.Recognizer(pause_threshold=0.5) # or other value

  • @mevluterdogdu7418
    @mevluterdogdu7418 6 місяців тому

    Could you make video with local models also:) ?

    • @DevXplaining
      @DevXplaining 6 місяців тому

      Hi, you know, that is a possibility I've been thinking about. :) Two things on the way: It takes some effort, so I need to find the time for it. Second, there's been a lot of options available currently, so need to choose which one is good. If I can find the time, what I've been thinking about would be to get something running in Raspberry Pi/other low-end hardware that's easily available. I would probably use a suitable Mistral model right now. But no promises, time is hard to come by these days :)

  • @akshaysivadas5516
    @akshaysivadas5516 6 місяців тому

    Nice explanation!

    • @DevXplaining
      @DevXplaining 6 місяців тому

      Thank you! Much appreciated!