- Видео 23
- Просмотров 102 290
Between Two Parens
Канада
Добавлен 10 май 2019
Learn Clojure(Script) and more with Thomas!
My name is Thomas and this is a channel about my life Between Two Parens. I'm a professional Software Developer specializing in Clojure(Script) and JavaScript. On this channel we cozy up between two parens while we tutorial, walkabout code and experience this epic walk known as life through the lens of code.
I do it all because I want to give back but if your interested in supporting this channel beyond your most welcome likes, views and subs checkout my Github Sponsors page github.com/sponsors/athomasoriginal
Be sure to stay for a while and say hi!
Business Inquires- tm.mattacchione@gmail.com
My name is Thomas and this is a channel about my life Between Two Parens. I'm a professional Software Developer specializing in Clojure(Script) and JavaScript. On this channel we cozy up between two parens while we tutorial, walkabout code and experience this epic walk known as life through the lens of code.
I do it all because I want to give back but if your interested in supporting this channel beyond your most welcome likes, views and subs checkout my Github Sponsors page github.com/sponsors/athomasoriginal
Be sure to stay for a while and say hi!
Business Inquires- tm.mattacchione@gmail.com
Build a ClojureScript App FAST!
Build a ClojureScript app FAST with Create Reagent App. This is a template builder for creating a Reagent App. I use it on a daily basis and will be using it a lot in my upcoming courses so I figure it would be helpful to talk a little about it now.
⏰ Timestamps:
(00:00) Intro
(00:25) Show your love
(01:05) Run Create Reagent App
(02:30) Explore the CLJS Template
(03:40) What's Included with Create Reagent App
(04:08) Quickstart
(05:32) Alias for Create Reagent App
(06:35) Documentation
(06:49) Finale
📚Additional Resources
Getting Started with ClojureScript ruclips.net/video/P60dMljS-OM/видео.html
Create Reagent App - github.com/athomasoriginal/create-reagent-app
clj-new - github.com/seancorfield/clj...
⏰ Timestamps:
(00:00) Intro
(00:25) Show your love
(01:05) Run Create Reagent App
(02:30) Explore the CLJS Template
(03:40) What's Included with Create Reagent App
(04:08) Quickstart
(05:32) Alias for Create Reagent App
(06:35) Documentation
(06:49) Finale
📚Additional Resources
Getting Started with ClojureScript ruclips.net/video/P60dMljS-OM/видео.html
Create Reagent App - github.com/athomasoriginal/create-reagent-app
clj-new - github.com/seancorfield/clj...
Просмотров: 1 668
Видео
Git Tutorial - Add and Edit Commits (Hunks)
Просмотров 3,3 тыс.4 года назад
Editing Git Patches is a real power move. This lets the world and your team know that you have the power of the Git. The best part is that everyone can do it. Here is a video to show you how. Quick note about naming your app: org-name/project-name is a structure proposed by clj-new. By "org-name" I mean your companies name and "project-name" would be your app's name. See the Create Reagent App ...
How to Build ClojureScript for Production
Просмотров 8794 года назад
How to build ClojureScript for Production is the final piece of the puzzle when it comes to working on a ClojureScript app. This video will show you how to configure Figwheel to build a production version of your ClojureScript app! 😎 UPDATES OCTOBER 08, 2020 As of the latest version of the Clojure CLI Tools, the command we run the app with was clj -A:dev but you SHOULD NOW USE clj -M:dev instea...
Welcome to Between Two Parens
Просмотров 2,7 тыс.4 года назад
Welcome to Between Two Parens and Clojure!! My goal is to share Clojure, ClojureScript and Web Development knowledge. If you're new to Clojure and ClojureScript than you've come to the right place. I also have a website where I post similar content: www.betweentwoparens.com Start by: - Setting up your editor - Create a ClojureScript Project - Learn Clojure/ClojureScript! If you ever get stuck f...
Setup Reagent And ClojureScript
Просмотров 1,6 тыс.4 года назад
Setup Reagent and ClojureScript with me and begin the journey to a ClojureScript Single Page Application (SPA) 😎 UPDATES OCTOBER 08, 2020 As of the latest version of the Clojure CLI Tools, the command we run the app with was clj -A:dev but you SHOULD NOW USE clj -M:dev instead ALSO! Rename `reagent` in `deps.edn` to `reagent/reagent` ⏰ Timestamps: (00:43) Setup your project like me (01:06) What...
How to use React in a ClojureScript project | beginner
Просмотров 1,5 тыс.4 года назад
How to add React to your ClojureScript project is easier than ever and is the first step before we can even start writing React code. This video will show you how to add React to a ClojureScript project through NPM. The goal is to provide another example of using an NPM package. NOTE: If you're developing a ClojureScript project and you want to use React, I recommend using Reagent over Vanilla ...
How to use NPM Packages in ClojureScript
Просмотров 1,6 тыс.4 года назад
How to use NPM Packages in ClojureScript! ClojureScript has recently made great strides to improve their NPM Module (package) support. This video will show you how to configure your project to use NPM modules in a ClojureScript project. We will also provide some additional content to support you in your next steps! 😎 UPDATES OCTOBER 26, 2020 If you are running this after the official release of...
Get Started with CLJS + Figwheel-Main
Просмотров 2,5 тыс.4 года назад
Time to add figwheel-main to our hello-world ClojureScript project. This is the next step in setting up a professional ClojureScript development environment 😎 UPDATES OCTOBER 08, 2020 As of the latest version of the Clojure CLI Tools, the command we run the app with was clj -A:dev but you SHOULD NOW USE clj -M:dev instead ⏰Timestamps: 00:21 - Intro 01:33 - What will be covered in this video 02:...
Getting Started with Clojure Aliases
Просмотров 1,1 тыс.4 года назад
Getting Started with Clojure Aliases. This video will walk you through Clojure Aliases. What they are and how and when to use them. This is the continuation of our ClojureScript Hello World app. We're going to evolve our project by adding Clojure aliases which make it easier to run our ClojureScript app for development. 😎 UPDATES OCTOBER 08, 2020 As of the latest version of the Clojure CLI Tool...
Beginner ClojureScript Socket REPL
Просмотров 1,8 тыс.4 года назад
This is a ClojureScript socket REPL without ANY 3rd party tools. Just Clojure Command Line Tools and ClojureScript. This is a great thing to learn because you will have at your disposal a CLJS socket REPL which is great for exploration and just getting familiar with REPL driven development. 😎 UPDATES OCTOBER 08, 2020 As of the latest version of the Clojure CLI Tools, the commands used in this a...
How to search for code in Github
Просмотров 50 тыс.4 года назад
How to search for code in Github is, like anything, a skill we can learn. In this video, I use Clojure and ClojureScript as an example of how when we're stuck we can use Github's powerful search functionality to give us a hand find us some code examples. Aside from getting unstuck, reading other peoples code is a must! ❤️Follow Me Twitter - athomasoriginal Between Two Parens Blog - ...
Beginner ClojureScript - Debug Quick Tip - Logging
Просмотров 1 тыс.4 года назад
There is a difference between println and console.log in ClojureScript and this video will explore it. This is a great tip for clojurescript beginners who are looking for a way to effectively debug their clojurescript programs ❤️Follow Me Twitter - athomasoriginal Between Two Parens Blog - betweentwoparens.com/ Github - github.com/athomasoriginal
Getting Started w/ ClojureScript | Setup ClojureScript
Просмотров 8 тыс.4 года назад
Learn how to get started w/ ClojureScript. This video will teach beginners and intermediate developers how to setup and run a minimal clojurescript project! 😎 UPDATES OCTOBER 08, 2020 As of the latest version of the Clojure CLI Tools, the command we run the app with was clj -A:dev but you SHOULD NOW USE clj -M:dev instead ⏰Timestamps: 00:16 - Intro 00:35 - Housekeeping (what you need to follow ...
How to Install Clojure on Mac | 2020
Просмотров 3,1 тыс.4 года назад
Install Clojure on macOS. Here we walk you through how to install Clojure using the NEW Clojure brew tap! This is going to install TWO command line commands: clojure and clj. Are you curious about the difference between these two commands? See the 2018 - 2019 version of this video at this timestamp: ruclips.net/video/PjkIUZUiVy0/видео.html CLJ v. Leiningen v. Boot? If you already have Leiningen...
How to Install Clojure | 2018 - 2019
Просмотров 4784 года назад
SEE THE 2020 VERSION of how to install Clojure at ruclips.net/video/5_q5pLoz9b0/видео.html. This video does still have some great information learning the difference between the clojure and clj commands. See the timestamps below ⏰Timestamps: 0:48 - Install Clojure 1:44 - Difference between clojure vs. clj commands Notes There are two command line tools commands that both run clojure: clojure an...
How to Use a ClojureScript REPL in Atom (Chlorine)
Просмотров 1 тыс.5 лет назад
How to Use a ClojureScript REPL in Atom (Chlorine)
How to Use Clojure(Script) REPL Shortcuts in Atom (Chlorine)
Просмотров 6305 лет назад
How to Use Clojure(Script) REPL Shortcuts in Atom (Chlorine)
How to Install and Use Parinfer in Atom
Просмотров 7715 лет назад
How to Install and Use Parinfer in Atom
Getting Started with Clojure/ClojureScript using Atom
Просмотров 1,4 тыс.5 лет назад
Getting Started with Clojure/ClojureScript using Atom
It was pleasure meeting you yesterday Thomas! I didn't realize at the time that I am subscribed to your channel and read your blog. Excellent work.
Have your setup change since then?
A little. I still code in Clojure/ClojureScript daily. My editor is nvim and searching code is a combination of many tools. Github search is one of them.
How code searching? I was facing the same issue, whereby the documentation is very dry, can't figure how a certain lib APIs would fit my usecase. My current approach is using sourcegraph locally-hosted for local repos & their cloud search. however I was looking for a more streamlined approach as it needs bit of query wizardy & can become a rabbit hole.
Weimann Pass
Cole Expressway
amazing videos, really, help me a lot
Gold!
video starts at 0:33
Great explanations, thank you so much.
Thanks for the video--great stuff. I have a fair amount of Clojure knowledge but always struggle setting up a cljs project. The idea of doing the minimum and fixing it bit by bit is really helpful. Less helpful is the way the Clojure CLI tools seem to have changed every time I come back to Clojure! What worked for me was: clj -M -m cljs.main --compile app --repl instead of: clj --main cljs.main --compile app --repl and: clj -M -m cljs.main --watch src --compile app --repl instead of: clj -M cljs.main --watch --compile app --repl
Thanks for the post! I'll look into this and I agree that Clojure CLI tools went through a good amount of evolution since this video was initially made. A new one will be incoming. 🙏
man clojure is a so interesting language. why don't there is more begginer friendly tutorials like these?! this content is gold! thanks!
Really helpful
Where is the video about reloadable code?
Please provide an updated video series using the Pulsar editor for Clojure development. Pulsar is the new replacement editor for Atom.
You're a very good teacher. Thanks
Appreciate it!
It would be more useful if you can zoom in to your screen, the color of the cursor doesn't see clearly, so I could appreciate better what are you doing.
Very helpful!
thanks bro, it was helpful, much obliged
I rewatch this video every time I forget how to edit hunks. Thanks a lot!
Great tutorial!, do you use any plugin for git diff styling?
Hey there! see github.com/athomasoriginal/dotfiles/blob/master/git/.gitconfig#L14
Man, WTF :D You don't have to change the "hunk header" to edit the commit, git developers aren't that stupid. Just use the syntax git uses. Don't delete context lines and everything will be fine. (In your "example of apply path error" you deleted one context line: with curly brace)
Could you elaborate?
@jonaskuliesius6802 hunk in this case is basically an instruction on how to change the file to get from previous version to the new version. It must follow some rules: if you add new line, you add "+" at the start of it if you delete existing line, you add "-" at the start of it if you do nothing with existing line, you add " " at the start of it (changing line is basically deleting old version, then adding new version) What he did after 5:05 is he removed line 22 starting with " " from the hunk. You can't do that. As said in comment below the hunk, you could remove "+" lines or you could change "-" lines back to " " lines. Deleting " " line is not correct hunk syntax, so it is only natural that git didn't like that. To delete such a line the correct way would be to change " " at the start of the line to "-", or better, don't touch that line at all and remove line 12 "+}". Changing "hunk header" (line 2) is completely pointless behaviour.
Although I should say that editing hunks was never intended to be a simple way of editing code. If you work with hunks very often, you should find some git GUI that will work with hunks for you.
@@Дмитрий-т2л4ц ~As said in comment below the hunk, you could remove "+" lines~ and that what he did after 5:05
@@salehrezq so, what's your point?
Thanks for posting. How did you get your git diff to look that way? I assume you are using an alias of some sort, as normally git diffs have a much different look.
Hey there, see github.com/athomasoriginal/dotfiles/blob/master/git/.gitconfig#L14
can you please keep our points in a tabular comparitive format in forefront & keeping your face at BACKGROUD as this is RUclips & NOT a dating site to keep your FACE alone for whole presentation period, hope you give a better one next time thanks
You should do it and stop being so rude to content creators who are actually giving useful information. There is no such a rule that says he can't keep his face there as much as he wants.
I love Lisp
What is ink needed for? It no longer appears in the Atom search and appears abandoned.
Im not sure if Ink is required to use Chlorine anymore. I would recommend using Sublime 4 until Atom gets some more love from community maintainers.
Sad to see Atom being sunsetted. Even though it's not till Dec 2022, the site seems to barely work, and the extension download server appears to be failing
Indeed. Atom is no longer maintained by Github, but I believe there may be a community effort underway to revive it. Not sure of their progress. For now, I would recommend Sublime 4.
Fantastic thank you! Question: the initial setup outputs a message saying, "WARNING: Implicit use of clojure.main with options is deprecated, use -M instead. What is this and how would it be used correctly now?
Hey David! I believe there is a note addressing this in the description. Please take a look and let me know if it helps :)
Love the video and instruction, but since there is nothing on the web page you probably don't need it to be so big. So you could have the project directory open the whole time instead of switching it every time.
github search is magic, awesome, thank you so much for this brief video that helps a lot
Why did you stop uploading my man. I miss your videos.
Life got busy, but I haven't abandoned the channel.
Thank you so much for doing this. It is crazy that Clojure / Clojurescript is so powerful but the onboarding is so poor. A bunch of videos like this really help out those who are interested.
Appreciate it and I agree!
what is the difference btwn shadow-cljs and cljsjs?
Hey! Those two things are different tools. It's like comparing a hammer to a shovel. Very different purposes 😄 - shadow-cljs and figwheel-main provide tooling to enhance the development experience (HMR, Live CSS Reload etc) - cljsjs - this is a technique to package JS libraries so they can be used in Clojure land. This technique is not really used on project anymore because ClojureScript now has strong support for consuming NPM libraries "directly" now. Let me know if this helps!
To the point and precise! Thanks
Hi, is webpack necessary? I did not use npm deps in my clojure reagent website and I have the same config as you except the webpack option in the prod config. On my host Netlify, it does not seem to find my scripts for some reasons while locally everything is working fine. So I was wondering if figwheel can actually work without the webpack bundle and so npm? Thank you.
Hey there! If you are using figwheel-main and want to use npm packages in the modern approach in your CLJS project than you will need to have :auto-bundle :webpack set in your build config file and use webpack. There is no way around that.
@@BetweenTwoParens Thank you for your reply. Actually, I don't want to use npm in my project. (No need for a simple website imo). Without webpack, it actually creates a `prod.main.js` in `public/cljs-out` but this should be picked up by Netlify. However, I have the good old error with the js file filled with html (the js src path is correct in index.html) On the figwheel website, the owner shows how to use webpack but I was wondering if a non-npm reagent app needs it. I have no packages.json, only deps.edn. I just have `clj -A:prod` as a build command on Netlify and I am not sure if that's enough.
Nice content but the font is way too small. I had to strain my sight to see what you are doing . Thanks for the video though
I'm using your keybindings as I was not able to run "ctrl-; b" . How I press this on a mac, just for curiosity?
I configure my Mac so that Caps Lock becomes the meta key. So, for me its: Caps Lock + b. This article should get you started: www.howtogeek.com/409904/how-to-turn-your-mac’s-caps-lock-into-an-extra-modifier-key/
which JDK is best for android apk and rom system development
what are the extensions? What does with extension mean?
Hey Kyle, see docs.github.com/en/search-github/searching-on-github/searching-code#search-by-file-extension for the official docs. TL;DR -- extensions tells Github search that you only want to search within files ending in ".cljs". In other words: only look for my term inside of ClojureScript files. You can change the extension to whichever language you're working in. Example: if you want to only search Python, update the extension to be "py". I hope this helps!
@@BetweenTwoParens oh, file extensions. gotcha, makes perfect sense! Thanks!
Thanks
Thanks
I appreciate your detailed explanation, but I cannon see your cursor when you are indicating line 37 6:50
I am going to thumb down your video for your font size. The reason I am here is that I want to see something happening, otherwise I am fully capable of reading the instructions online myself. Redo your video please. Also, you should teach this tool while you install two java versions.
Hi thanks for your tutorials they are great. How to setup a hello world reagent cljs without figwheel-main; I found the main.js is created in out directory and that the index.html must be in REPL directory and not in resources/public; thank you again for your help.
Mad sh*t
come back!
😀🙏🏻
I tried as per your video at 9.45 change from "Hello, sailor" -> "Hello, sailoremoon" in app.cljs, refresh doesn't show the latest. clj --main cljs.main --watch src --compile app --repl rlwrap: warning: could not set locale warnings can be silenced by the --no-warnings (-n) option WARNING: Implicit use of clojure.main with options is deprecated, use -M WARNING: app is a single segment namespace at line 1 /Users/eric/Desktop/hello-world/src/app.cljs ClojureScript 1.10.866 cljs.user=> Watch compilation log available at: out/watch.log my chrome shows Hello, sailor VM482:1 POST localhost:9000/ net::ERR_EMPTY_RESPONSE VM482:1 POST localhost:9000/ net::ERR_EMPTY_RESPONSE I am using latest clojure 1.10.3 and jdk 11 Any idea?
out/watch.log shows this, wonder this is the cause .. how do you fix this in Mac? Building ... #error { :cause Requested array size exceeds VM limit :via [{:type java.lang.OutOfMemoryError :message Requested array size exceeds VM limit :at [java.util.Arrays copyOf Arrays.java 3745]}] :trace [[java.util.Arrays copyOf Arrays.java 3745] [java.lang.AbstractStringBuilder ensureCapacityInternal AbstractStringBuilder.java 172] [java.lang.AbstractStringBuilder append AbstractStringBuilder.java 748] [java.lang.StringBuffer append StringBuffer.java 424] [java.io.StringWriter write StringWriter.java 77] [java.io.StringWriter append StringWriter.java 210] [java.io.StringWriter append StringWriter.java 41] [clojure.core$fn__7343 invokeStatic core_print.clj 218] [clojure.core$fn__7343 invoke core_print.clj 212] [clojure.lang.MultiFn invoke MultiFn.java 234] [clojure.core$pr_on invokeStatic core.clj 3662] [clojure.core$pr_on invoke core.clj 3656] [clojure.core$print_sequential invokeStatic core_print.clj 66] [clojure.core$fn__7349 invokeStatic core_print.clj 225] [clojure.core$fn__7349 invoke core_print.clj 225] [clojure.lang.MultiFn invoke MultiFn.java 234] [clojure.core$pr_on invokeStatic core.clj 3662] [clojure.core$pr_on invoke core.clj 3656] [clojure.core$print_prefix_map$fn__7352 invoke core_print.clj 233] [clojure.core$print_sequential invokeStatic core_print.clj 66] [clojure.core$print_prefix_map invokeStatic core_print.clj 229] [clojure.core$print_map invokeStatic core_print.clj 238] [clojure.core$fn__7381 invokeStatic core_print.clj 266] [clojure.core$fn__7381 invoke core_print.clj 263] [clojure.lang.MultiFn invoke MultiFn.java 234] [clojure.core$pr_on invokeStatic core.clj 3662] [clojure.core$pr_on invoke core.clj 3656] [clojure.core$print_prefix_map$fn__7352 invoke core_print.clj 233] [clojure.core$print_sequential invokeStatic core_print.clj 66] [clojure.core$print_prefix_map invokeStatic core_print.clj 229] [clojure.core$print_map invokeStatic core_print.clj 238] [clojure.core$fn__7381 invokeStatic core_print.clj 266]]} Watching paths: /Users/eric/Desktop/hello-world/src
now it shows Building... but still can't work
if i run without the --watch src first time in chrome dev console, i can see this goog.require could not find: cljs.pprint any idea?
refreshed on chrome too many times, showed me this in terminal Exception in thread "Thread-774" java.net.SocketException: Protocol wrong type for socket (Write failed) at java.base/java.net.SocketOutputStream.socketWrite0(Native Method) at java.base/java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:110) at java.base/java.net.SocketOutputStream.write(SocketOutputStream.java:150) at java.base/jdk.internal.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:167) at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:102) I tried jdk 11 adopt hotsport and zulu, made no difference. Any idea why --watch not working?
Hey Eric, I don't believe your issue is related to the JVM or Clojure. - What version of ClojureScript are you working with? (try 1.10.879) Are you running windows or mac? - How did you run the command? can you try: clj -M cljs.main --watch src --compile app --repl
Seems you now need to use: 'ctrl-y': 'chlorine:connect-socket-repl' rather than either of the connect-clojure-socket-repl and connect-clojurescript-socket-repl options
also the braveclojure slurp thing doesn't seem to work anymore
Oh, very nice! I will update this. Thank you for heads up!!
Well mate, I have a strong background with PHP / NodeJS ... (10years as Full Stack Development) but I always feel empty about those languages... then my friend suggests that I should go with Clojure. At an early stage! just () '() things impressed me. Do you have more videos about getting started with Clojure? Your method of explaining things is the real deal! I would like to hear more from you! Greetings!
I understand completely. I also came from a similar world (Node/Browser JS/Python) so I can relate. It's also the thing that made me want to share these videos. I don't have much on Clojure the language. I have found that this area has some good resources like "Getting Clojure", "Quick Clojure" and "Elements of Clojure". Those are my fav' for the early learning journey. Then there are a bunch of others for the rest of the journey too. My focus right now is hoping to flesh out the areas where I often see less coverage e.g. getting started with an app, structuring a Clojure codebase etc. More is in the works!! Cheers!
nice stuff buddy
Really great to hear, my friend!
Straight to the point. Thank you sir!
When you said " One last thing I want to show you ", instead of the --view command, I expected/hoped for an introduction to figwheel. Thanks for this, great back to basics tutorial.
I totally wanted to, but the video would be loooong. If you haven't seen it already, checkout this video: ruclips.net/video/7b5114xE_GA/видео.html