6 ms·
A good way to not be completely overwhelmed by all the new tooling and frameworks is to have a strong grasp of the fundamentals, here are three foundational res
by mxschumacher 6y ago
A good way to not be completely overwhelmed by all the new tooling and frameworks is to have a strong grasp of the fundamentals, here are three foundational resources:
"You don't know JS": https://github.com/getify/You-Dont-Know-JS https://github.com/getify/You-Dont-Know-JS
"How browsers work": https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/ https://www.html5rocks.com/en/tutorials/internals/howbrowser...
"High performance browser networking": https://hpbn.co/ https://hpbn.co/
- recursivedoubts 6y agoAgreed. I think a lot of folks suffer from not understanding how web 1.0 worked and really groking REST/HATEOAS (which has since been hijacked for JSON APIs, which is complete nonsense.) Sometimes I jokingly call htmx "web 1.1 tech", but increasingly I wonder if I'm really joking.
- no_wizard 6y agoThere is the the HATEOAS compatible JSON-LD standard being worked on at the W3C https://json-ld.org/ https://json-ld.org/
- recursivedoubts 6y agoYeah, but it doesn't make up for the decade+ now that plain JSON (perhaps with the occasional URL, which still has to be interpreted correctly by client code!) has been called "REST-ful". On top of that, JSON-LD is still mainly focused on networked object graph serialization. Unfortunately it manages to be a complex specification without providing the functionality that HTML came with out of the gates as a hypertext in an obvious manner. HTML is a good-enough-to-great hypertext, we should probably stick with it.
- thanatropism 6y agoIn 1996-1998 as a teen I "made some websites" for local businesses. The one I made for my parents even had a search function (in PHP) in a CSV with their products (which were like 100). The CSV was generated by taking whatever Lotus Approach (their desktop DB) generated and transforming it with some custom Haskell code (I was a teen, what did I know). They clicked an icon to pull the data and another to run a FTP batch file. Fast forward, I understand nothing of the website being developed in React for my startup. The othe technical cofounder does grok it, but I could not lend a hand and can barely even supervise the outside help we brought. I like to think of myself as well-versed in a generalist manner. I can hack a custom sparse matrix (with a very particular structure I was able to prove an iteration for) inversion algorithm, but I understand nothing about painting the background the correct shade of blue!
- recursivedoubts 6y agoI have something for you: https://htmx.org https://htmx.org
- thanatropism 6y agoYow. I have an application growing out of control in Streamlit (https://streamlit.io https://streamlit.io), which is a rshiny-type interactive dashboard gizmo. I'm now able to consider rewriting it with a proper front-end. It's like a whole world I had been sealed off from has reopened.
- randyzwitch 6y ago(Note: I'm Head of Developer Relations at Streamlit) Out of curiosity, which features are you looking for in a "proper" front-end? Flexibility?
- thanatropism 6y agoStreamlit is magic and I don't want this to come off as a dismissal, but it can be unpredictably unreliable. I keep having this issue if I run > 0.58: https://github.com/streamlit/streamlit/issues/1440 https://github.com/streamlit/streamlit/issues/1440 It's over a month old now, with multiple people reporting the same bug and iterating on the problem with no apparent narrowing towards a reason for why this happens, let alone a solution.
- randyzwitch 6y agoThanks for clarifying. Since HN isn't the right place for a detailed discussion, I would invite you to comment on that issue and try to help us work through it. As one of our engineers mentions in the linked issue, this bug is hard to trigger (as is the nature of many bugs), and she is working on a solution[1]. This issue has also been reported here[2], with the solution of adding time.sleep(1) inside the loop usually resolving that problem. [1] https://github.com/streamlit/streamlit/pull/1494 https://github.com/streamlit/streamlit/pull/1494 [2] https://discuss.streamlit.io/t/displaying-images-from-opencv/3014 https://discuss.streamlit.io/t/displaying-images-from-opencv...
- draw_down 6y agoMaybe people ignore fancy ideas like HATEOAS because they don't actually help them make something useful for users. This particular fancy idea appears to exist mostly so people can make comments like yours. If this wasn't true, as a user you would notice if the thing you were using didn't use HATEOAS, even though it should. The thing's functionality would be deficient in some manner that you could discern. I doubt that has ever happened.
- leanstartupnoob 6y ago> not understanding how web 1.0 worked and really groking REST/HATEOAS (which has since been hijacked for JSON APIs, which is complete nonsense.) Anyone who really grokked REST would never say it's nonsense to use with a JSON API.
- recursivedoubts 6y agoYes, I know it's confusing because the language has been so thoroughly corrupted over the last decade. Let me show you my reasoning: JSON is not a hypertext, even if you include URLs in it. [0] HATEOAS requires a hypertext (see the first word of the acronym) HATEOAS is "an essential part of the of the 'uniform interface' feature of REST" [1] Therefore a JSON API, even with some embedded URLs, using multiple HTTP Methods and following a traditional hierarchical path scheme, is not REST-ful. [0] - A sufficiently advanced client could interpret a JSON-encoded hypertext in a general, uniform manner. However, in practice, this is almost never the case. [1] - https://en.wikipedia.org/wiki/HATEOAS https://en.wikipedia.org/wiki/HATEOAS
- recursive 6y agoI really "doubt" you were joking! I'm sorry, I couldn't resist the pun.
- no_wizard 6y agoI also want to add the great Eloquent JavaScript[0] to this list. While its targeted at learning programming as a whole, its still a wonderful resource, even for seasoned programmers, to learn some ins and outs of the language if you haven't had a lot of experience with it. I also want to give mention to JavaScript: The Good Parts by Douglas Crockford[1], and his new book, How JavaScript Workers[2] [0]: https://eloquentjavascript.net/ https://eloquentjavascript.net/ [1]: https://www.amazon.com/dp/0596517742/wrrrldwideweb https://www.amazon.com/dp/0596517742/wrrrldwideweb [2]: https://howjavascriptworks.com/ https://howjavascriptworks.com/
- scruple 6y ago> JavaScript: The Good Parts by Douglas Crockford I've been wondering lately, as I'm moving (back) into a JavaScript-heavy stack (it's been... 4-5 years for me), is this book still relevant in the face of 12 years of JavaScript language development?
- agentultra 6y agoThe code in it will still run and work but there are much better patterns and features now that help you write more succinct and less error-prone code. ES6 and ES7 are widely supported now and are much better languages IMO.
- scruple 6y agoThanks, that's kind of what I thought. I recently, finally, took it off of my book shelf and stuffed it into a box in the garage, but it's been in the back of my mind a few times as I've been going through other resources. It's good for the historical understanding but I couldn't see it being terribly relevant today.
- piyh 6y agoAs a noobie, Eloquent Javascript was much better for me than The Good Parts. The Good Parts was a book of how not to program, followed by the right way of doing it. Eloquent was a guided path to understanding the language without being shown all the dead ends. Knowing the dead ends and the history behind them is nice, but I spent a lot of brain power on the dead ends that Eloquent put towards better use. We're also talking a small book vs a tome of knowledge, but the philosophy is different regardless of size.
- JMTQp8lwXL 6y agoSomewhat agree. Fundamentals help, but understanding them won't immediately clarify every configuration item in a Webpack configuration.
- brailsafe 6y agoThat's true, but nothing will.
- DelightOne 6y agoWhat helped me most understanding the tooling around babel & co was to watch an intro video from vue.js on the new Viue 3.0. Copying anything by hand while he explains it. With minimal package count. And always use a code generator later like when you start a Typescript/JS project, because you can do so many little things wrong on your own while you don't know enough. https://classic.yarnpkg.com/en/docs/cli/create/ https://classic.yarnpkg.com/en/docs/cli/create/
- z3t4 6y agoIn order to learn JS you should grasp the event loop. Once you learned to think async, being able to write queues, limit concurrency, etc its just different flavours of syntax and ES6 is mostly syntatic sugar. If you are a web dev you should learn the basic web APIs and avoid libraries and frameworks at all cost. Dont use React until you have written a web component without it. Also if you are a web dev, learn CSS its very simple and powerful once you understand that a rule below overides a rule above, and a more specific rule overides a less specific rule.
- garyclarke27 6y agoI would add Javascript- The definitive guide (David Flanagan) I just bought it again, Version 7 just been released 9 years after version 6. It’s an amazing book.