Show HN: Caster – Screencasts Manager in Elixir, Phoenix and Vue
github.com
github.com
Anyway, I wanted an excuse to play with Elixir & Phoenix, and to play around with Vue, so I remade the app. It also allows you to pull in a youtube video / playlist.
All video's are downloaded locally, and then just shells out to vlc to actually play the videos.
Anyway, it's pretty basic, but I find it useful to have all my videos (for learning) in one place, maybe you'll find it handy.
PRs welcome for any RSS feeds :)
I just did a hello world this week.
Also, the first time you completely replace a process and things just keep running perfectly - well, it's amazing!
It is used for having a CRUD app for managing feeds of videos (like vimcasts.org, rubytapas etc) so that you can have them all in one place, take notes on them. It's also a very simple interface to youtube-dl, so when you come across a useful looking video on HN or whatever, you can just add it to Caster and watch it later.
I like the way the videos are all downloaded offline, it was useful when ravelling in South America last year and not having a heap of bandwidth.
But honestly, it was as much about playing around with Elixir Phoenix & Vue ;)
Vue on the other hand I found _very_ straightforward to use and really enjoyable. I did make the effort to use the .vue components, so most of the logic is in nice self contained units. That said, React certainly has a huge user base & is probably a safer bet long term. I just found Vue easier to understand and use & for me that's important (esp on a toy side project which is supposed to be _fun_ ;)
I was looking at both and Vue was definitely a lot easier to work with and less finicky. Love the fact that you can just link a script and play - it's also supposedly more performant than React although I haven't verified that.
React took me a fairly long time to 'get' (to the extent that I do) but I can see why it's gotten so popular. IMO it really forces you to be more organized and nudges you toward a more FP-centric approach.
I'm curious about integrating React/Vue with Elixir/Phoenix at some point as I'm really interested in Elixir/Phoenix as a possible future stack.
Converting to Phoenix I found pretty straightforward, however, that was _after_ I had spent 3ish weeks going through the Programming Elixir & Phoenix books, so you'd want to factor in time to get up to speed with the language. I found working with Vue very straightforward, I found setting up the browserify development environment with Phoenix & Vue _hard_. Well, tricky anyway. For example, starting up the node processes to watch & rebuild the assets, reload the code in the browser, and getting that to start & stop automatically when you run `mix phoenix.server`, things like that took ages for me to work out, but it'd be way quicker now.
I also found Ecto a bit of a mind-bender to begin with. I'm certainly not holding up my code as a paragon of "the right way to do things" ;) Working out a neat way to do polymorphism in Elixir took me a little time. It's my first functional language so that all took time to get up to speed with (and even then I'm no expert)
Finally, using a client-side framework is total overkill for what is essentially a bog standard client-side app. But I wanted to get to grips a bit with Vue, websockets, and I really wanted to play with Elixir (I'd love to get work in it someday).
You can see the entire git-history if you want to see _roughly_ how long I was spending. I'd still be quicker to build in Rails I'm sure, but, I'd say once I was practiced at Elixir it'd be roughly the same amount of time building in either, and the websocket & ease of integration of JavaScript tooling (pre Rails 5) is definitely better with Phoenix. Converting the Vue was easy though, that just ported as-is (definitely a benefit of only talking JSON)
Anyway, sorry not to be able to give a proper answer.
Videos are downloaded locally, and then viewed using vlc.
Hmm, this is going to take tonnes of space. Any chance it could be optimized? I like how Kodi and similar streaming players works.P.S I am on a metered connection. I'm a little frustrated by this new age of streaming everything. I would like my movies in my hdd, my music in my hdd, my videos locally. I don't mind buying an external storage device if i run out of space.
You can easily delete the video once it's downloaded and viewed though. I wanted a way to download a bunch of videos, and then just copy them where I wanted (so, if I was going on a plane ride or whatever I could have a bunch of content easy to look at)
That said, PRs are welcome, just make sure that whatever functionality you add it's easy to configure (and remove, if streaming isn't what's wanted)
But yes, it does take heaps of space ;)