DJ's Office Hours
DJ's Office Hours
  • 43
  • 107 682
Julia: Recursive Code and Using Debugger
#julialang #packages #programming
Today I go a little bit into recursion as an example for using the Debugger.jl package. A debugger is great when print lines are not cutting it and is a tool that any expert developer would know to fix their code. Something I have seen in my coding experience is developers are sometimes apprehensive to use a debugger because of the time it takes to learn when projects get tougher, and sometimes the project suffers or the programmer is just using up tons of time using print lines to debug their code. Having some comfort with these tools can benefit your future especially if your projects get complex!
Sections
--------------
0:00 - Intro
0:40 - Simple Recursive Example
4:00 - Why use a debugger?
5:10 - Debugger.jl Documentation
6:50 - Fibonacci example
9:40 - Factorial example
Debugger.jl
------------------
github.com/JuliaDebug/Debugger.jl
Repo
--------
github.com/da-james/djs-office-hours
GM: djsofficehours@gmail.com
IG: djsofficehours
TT: www.tiktok.com/@djsofficehours
T: DJsOfficeHours
Переглядів: 1 771

Відео

Fortran: Using MPI BCAST and REDUCE
Переглядів 1,3 тис.3 роки тому
#Fortran #MPI #Programming I finish up these MPI examples this week in BCAST and REDUCE for MPI. These are other functions that allow for processes to interact with each other. There are tons more of MPI functions that exist and in the webpage I was referencing there are a couple more functions mentioned, if you're looking for something that fits your needs! Sections 0:00 - Intro 0:52 - Code Re...
Fortran: SEND and RECV Messages in MPI
Переглядів 1,2 тис.3 роки тому
#Fortran #MPI #Programming I continue the MPI discussion going into the SEND and RECV functions for parallel programming. These functions help different processes "talk" to each other so that operations can given accurately. I had an intention to go through all my examples in this video, but the example took longer than expected. The next example will be covered in the next video! Sections 0:00...
Fortran: Getting Started in Multiprocessing with MPI
Переглядів 2,7 тис.3 роки тому
#Fortran #MPI #Programming Today I go into MPI and more specifically how to set it up and run some basic calls. MPI is used a lot in high performance computing (HPC) and is a staple for parallel processing. It is also good to make sure your program is full tested and robust before you implement a paralleled version of it, because of the debugging you may go through. Moreover, good coding practi...
Julia: Making CLI Programs with ArgParse
Переглядів 7283 роки тому
#julialang #packages #programming Today I'm going into CLI programs! CLIs are fun and if you don't want to go into the hassle of making a GUI, CLIs pretty much get the job done. I go into how to make a simple program and later how to call it! Sections 0:00 - Intro 1:11 - Documentation 2:32 - Setting up a CLI 4:15 - Calling a CLI 5:18 - Adding more functions to CLI 6:37 - Calling the CLI with fl...
Julia: Calling Python Programs
Переглядів 2,7 тис.3 роки тому
#julialang #python #programming Running a bit late from being out of town, but I covered using PyCall.jl. Julia is great, but sometimes we need help from other languages such as Python to fill the cracks. Python has been around for decades now and has so many packages doing so many great things. Using the speed and efficiency of Julia along with the maturity of the Python Package environment ca...
Fortran: Object Oriented Programming
Переглядів 3,4 тис.3 роки тому
#fortran #OOP #Programming Today I go into Fortran objects. A newerish design in Fortran, but OOP is a style to know because basically everyone uses it now. Lol Sections 0:00 - Intro 0:11 - Main Program 0:27 - Module Description 0:51 - Class Types, Elements, and Extending 1:35 - Class Methods 3:43 - Testing the Objects Repo github.com/da-james/djs-office-hours GM: djsofficehours@gmail.com IG: i...
Julia: Extending Unitful with Multiple Dispatch
Переглядів 5443 роки тому
#julialang #packages #programming Decided to continue the discussion on Multiple Dispatch. The concept itself isn't too intensive, but I see a lot of questions online about it, so I try to touch on all the different areas it is beneficial in. Also wanted to show how to extend Unitful, because it's always nice to have your own units when doing your own work. (: Sections 0:00 - Intro 0:25 - Multi...
Julia Intermediate 7: Using Multiple Dispatch
Переглядів 2,1 тис.3 роки тому
#julialang #tutorial #programming Multiple Dispatch is a powerful concept to be aware of when designing structs. The main aspects I showed here was some examples of it used in the Julia Base library, and some cases where you can do method overloading. While there are more advance cases, the method overloading side of coding is great to use and helps when designing structs to maintain the nomenc...
Fortran: Getting Started with Fortran in Jupyter
Переглядів 5 тис.3 роки тому
#fortran #ide #programming Another tool for the Fortran world! In this case, if you're a fan of Juypter this tool allows you to run Fortran code in a cell-like environment. Do note that this is still very much in development, but it is a very cool package and can be a nice addition to your workspace! Sections 0:00 - Intro 0:30 - LFortran Description 1:19 - LFortran Documentation 1:41 - Installi...
Julia: 3D Animations with DifferentialEquations
Переглядів 3,8 тис.3 роки тому
#julialang #packages #programming More animations! This time 3D to touch on other elements just to show other cool things that you can add to your design. Also I use the DifferntialEquations.jl library again to show how the two can be used to make some cool animations. Enjoy! Sections 0:00 - Intro 0:32 - Describing the System 0:54 - Going into Documentation Example 2:03 - Lorenz Plots 3D Animat...
Julia: Making Animations with Macros in Plots
Переглядів 3,5 тис.3 роки тому
#julialang #packages #programming Today I go into animations! Making animations is always cool and now can give a picture to our story whether that story is some physics or big data. I first describe how to make an animation with a scatter call, but then go into how to use a Plotting macro to make more animations. Also if you're a fluids person, do check out DIYnamcis! They're a cool group and ...
Fortran: Getting Started with the Fortran Package Manager
Переглядів 3,2 тис.3 роки тому
#fortran #fpm #programming Today I'm going into the Fortran Package Manager! One of the coolest packages I have ever covered, and enjoyed learning about. I go into some of the installation and cover some examples of how to use it. The project is very new, so be aware of bugs, but it is very cool. Sections 0:00 - Intro 0:38 - Conda Process 1:39 - FPM Installation 2:28 - Building, Running, and Te...
Julia: Implementing Units with Unitful
Переглядів 1,2 тис.3 роки тому
#julialang #packages #programming Today we go into Unitful! One question I always get a couple times a quarter is "did you check your units?", and while now I'm better about that now, it is something that can save you in finding mistakes. Unitful is a project that allows unit implementation into your code, and it'll track the unit math and serve as anther check for your code. It's really great ...
Julia: Calling Fortran Code with Julia
Переглядів 2,1 тис.3 роки тому
#julialang #tutorial #programming Now coming back to Julia, I build off of the Fortran video I did, and look at interfacing it with Julia. The documentation Julia maintains has a lot of examples for C Code, but not so much for Fortran, and I work with Fortran a lot more than C. I thought I would cover some examples and cover some of the jargon that is in the ccall to call your own Fortran code....
Fortran 2: Extra Keywords and Making a Makefile
Переглядів 3,6 тис.3 роки тому
Fortran 2: Extra Keywords and Making a Makefile
Fortran 1: Crash Course on Modern Fortran
Переглядів 17 тис.3 роки тому
Fortran 1: Crash Course on Modern Fortran
Julia: Matrix Operations and Solving Systems of Equations with LinearAlgebra
Переглядів 2,6 тис.3 роки тому
Julia: Matrix Operations and Solving Systems of Equations with LinearAlgebra
Julia: Using Polynomials for finding Roots and Extrema
Переглядів 6993 роки тому
Julia: Using Polynomials for finding Roots and Extrema
Julia: Solving ODEs with Euler, RK4, and DifferentialEquations
Переглядів 5 тис.3 роки тому
Julia: Solving ODEs with Euler, RK4, and DifferentialEquations
Julia: Numerical Integration with Simpson's Method and QuadGK
Переглядів 1,4 тис.3 роки тому
Julia: Numerical Integration with Simpson's Method and QuadGK
Julia: Making REST API Calls
Переглядів 1,8 тис.3 роки тому
Julia: Making REST API Calls
Julia: Polynomial and Nonlinear Fitting
Переглядів 3,4 тис.3 роки тому
Julia: Polynomial and Nonlinear Fitting
Julia: Plot Attributes, Log Plots, and Subplots
Переглядів 1,1 тис.3 роки тому
Julia: Plot Attributes, Log Plots, and Subplots
Julia: Navigating Documentation
Переглядів 6813 роки тому
Julia: Navigating Documentation
Julia: Efficient Coding (02)
Переглядів 8483 роки тому
Julia: Efficient Coding (02)
Julia: Efficient Coding (01)
Переглядів 1,8 тис.3 роки тому
Julia: Efficient Coding (01)
Julia: Parametrics and Types
Переглядів 3,1 тис.3 роки тому
Julia: Parametrics and Types
Julia Intermediate 6: Designing Modules
Переглядів 4,8 тис.3 роки тому
Julia Intermediate 6: Designing Modules
Julia Intermediate 5: Constructors for Structs
Переглядів 3,7 тис.3 роки тому
Julia Intermediate 5: Constructors for Structs

КОМЕНТАРІ

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

    Amazing video! Integrating Fortran with Julia would be great as well!

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

    Font needs to be bigger. I can't really read this as shown.

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

    Awsome Explaination. Thanks man.,

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

    ...aaand "next week" never came :/

  • @Ptr-NG
    @Ptr-NG 4 місяці тому

    Those tutos are great and they would be better if you zoomed in more for us to see the written example. Thanks

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

    Hello! Thank you for the video. What IDE are you using?

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

    Thanks! "env = Conda.PYTHONDIR" solved it for me

  • @user-wf3fn6fy7i
    @user-wf3fn6fy7i 6 місяців тому

    Thank you for a great video on MPI with Fortran! It would be interesting if you could compare what you have shown in this and the previous videos on MPI, with using Fortran's own Co-array features (which I think covers much of the same use as MPI).

  • @user-wf3fn6fy7i
    @user-wf3fn6fy7i 6 місяців тому

    You have probably figured out TYPE vs CLASS when declearing dummy aeguments (equiv to function parameters in C) by now (2yrs later), but for anyone wondering: CLASS(type-name) is polymorphic and will allow an actual argument of the declared type (ie. "type-name") or one that extends that type, whereas TYPE(type-name) allows only arguments of that declared type. CLASS also allows abstract types.

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

    This is the first good example I've seen of how to use and write inner constructors. Most examples to try to put the inner constructor on one line of code, which, coming from Python and C, is hard for my head to grasp (or use foo and bar, which is as concrete an example as ether).

  • @Robdawger
    @Robdawger 7 місяців тому

    Appreciate the video my guy! It's been a huge help with my numerical methods course.

  • @nuhuhbruhbruh
    @nuhuhbruhbruh 8 місяців тому

    I think you missed including this one in the basic playlist.

  • @nxannevera
    @nxannevera 9 місяців тому

    Thank you so much!!

  • @richardbennett4365
    @richardbennett4365 9 місяців тому

    I'm completely lost. At just 1:13 into the show, the presenter is setting up PI as integer type and defining it to have the value of 3.14. What??? 3.14bis not an integer. It equals 3 plus seven-fitieths more, being a rational number and definitely not an integer. What's going to happen? Firtran will make PI equal 3 or it will change the type to float? I don't know, but 3.14 is NOT an integer. Pass on this film. Next.

  • @mg7509
    @mg7509 9 місяців тому

    Hey, I have been trying to dive into fortran programming for a while now and you are the only one that actually made a good and understandable tutorial. Honestly, coming from python i found such a difficulty barrier and you just made it all click together, thank you !

  • @hermilocortes1197
    @hermilocortes1197 10 місяців тому

    Me salvaste!! Muchas gracias!!

  • @mehdimabed4125
    @mehdimabed4125 11 місяців тому

    Hi, how did you managed to have the plot to appear in a new window ? When I plot the graph appears in the plot pane of VScode and I would like to have the plot in a separate window... Thanks

  • @cappontap
    @cappontap 11 місяців тому

    i cannot see what you typed, cant you please make things larger? thanks.

  • @michaelolayinka441
    @michaelolayinka441 Рік тому

    @DJ Is there a way to code GUI in Fortran where you can create objects like textbox, buttons etc. Please help

  • @user-vm1xy9zz5s
    @user-vm1xy9zz5s Рік тому

    Hi there, where is the next session?? how to make it connect with GPU

  • @d.malafaia
    @d.malafaia Рік тому

    I didn't know how to use this type of units on Julia, thanks for showing how it works.

  • @edumation
    @edumation Рік тому

    The font is too small

  • @marcrippee4365
    @marcrippee4365 Рік тому

    Can you do a speed test against Python for HTTP calls?

  • @sakshamkiroriwal3234
    @sakshamkiroriwal3234 Рік тому

    Thanks a lot for this video

  • @CaribouDataScience
    @CaribouDataScience Рік тому

    Is Modern Fortran a name or a description?

  • @coopergarciaandy
    @coopergarciaandy Рік тому

    post requests?

  • @jakenirmal5441
    @jakenirmal5441 Рік тому

    Wow! Thanks man you made it easy to understand and learn it!

  • @uwealex9168
    @uwealex9168 Рік тому

    Thank you

  • @IK-ow2zk
    @IK-ow2zk Рік тому

    Thanks for the video! Please explain do we need MPI_Barrier before MPI_Bcast?

  • @JamesHauffa
    @JamesHauffa Рік тому

    Are booleans defined as true without explicit definition

  • @JamesHauffa
    @JamesHauffa Рік тому

    So do all variables have to be in the global scope?

  • @roshinroy5129
    @roshinroy5129 Рік тому

    Come on bro. I thought you will explain in a better way. You can do much better..

  • @raretapes8057
    @raretapes8057 Рік тому

    I have the same issues with the Julia docs. I love that they’re easily accessible in the REPL though.

  • @raretapes8057
    @raretapes8057 Рік тому

    Hi. By watching your videos I think you would love emacs. Specifically doom emacs, since it comes set up with vim bindings by default. It has great support for julia, either using it in a repl or notebooks, or a combination of script + repl. For instance you can type something in your script, then hit 'C-c C-c' to send that line/section to the repl for evaluation, rather than saving, switching to the shell, etc etc. Great videos by the way, I hope you make more soon.

  • @dadir_alvarez9748
    @dadir_alvarez9748 Рік тому

    I was just wondering whether to start studying Fortran or Julia. Which one would you start with? Greetings from Mexico :)

  • @khalidbinhida
    @khalidbinhida Рік тому

    Thank you sir!

  • @brainfitness6066
    @brainfitness6066 Рік тому

    More fortran codes, if it would be possible to go deeper in OOP

  • @user-wr4yl7tx3w
    @user-wr4yl7tx3w Рік тому

    Any way to make the fonts bigger?

  • @freddyfozzyfilms2688
    @freddyfozzyfilms2688 2 роки тому

    you are my hero

  • @QUICKguils
    @QUICKguils 2 роки тому

    I don't understand why the `using` and `import` statements are required in the main file (04-modules.jl in your example). When I try this on my computer, I realize that I can just include the module files (04a-PrismMod.jl and 04b-CircleMod.jl) with the `include` statement, this is sufficient. In other words, I can remove line 4 and 5 in the file 04-modules.jl and it works fine.

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

      It seems that include() just copies the file so using/import doesn't do anything useful

  • @RandallStephens397
    @RandallStephens397 2 роки тому

    After watching this and seeing how Fortran handles things, I suddenly understand why I see things done in certain ways in c++ like void functions that take parameters by reference to store their output to instead of just returning a value. Mind == blown

  • @luzzyrogue
    @luzzyrogue 2 роки тому

    Hi man, you call this advanced? Why using a loop instead of array operations?

  • @WojciechowskaAnna
    @WojciechowskaAnna 2 роки тому

    Even though i had jupyter noteook installed i still had to run conda install jupyter -c conda-forge.

  • @fen4527
    @fen4527 2 роки тому

    I like it :D

  • @omarpasha9855
    @omarpasha9855 2 роки тому

    I learned a lot!

  • @VauRDeC
    @VauRDeC 2 роки тому

    Great Introduction man ! thanks a lot

  • @karkaroff1617
    @karkaroff1617 2 роки тому

    Make pi as PI=4.d0*DATAN(1.0d0)

  • @pohljaviermorenoroncancio6773
    @pohljaviermorenoroncancio6773 2 роки тому

    I just wanted to say that these series of videos are great. Thanks for your work!

  • @patricior7300
    @patricior7300 2 роки тому

    Carme i'm I can't read that font!! Please enlargthe font size so that it can be read from a tablet and for people Tha uses glasses.

  • @snarbywrx
    @snarbywrx 2 роки тому

    I have been playing with FPM as a way to avoid really long compile commands when calling gfortran from a python Jupyter notebook. Instead I just import os and run "fpm run", and fpm handles all of the heavy lifting. At this point I am having a little bit of trouble with fortran code that emits formatted text. The text is composed of numbers that are the results of calculations. FPM gives me errors about outputting files. There are examples of working with output files in the FPM github repo, so I will try to emulate what they are doing. In any case, FPM is a really cool concept and it will definitely make Fortran that much more relevant for day to day engineering computation tasks.