Posts by develwithoutacause@techhub.social
(DIR) Post #AScieRuClYzoqUjvLE by develwithoutacause@techhub.social
2023-02-13T01:59:32Z
0 likes, 1 repeats
@slightlyoff "It turns out, HTML and its ecosystem remains undertooled to date, whereas the framework web continues to flourish! You're now almost guaranteed to get stranded as being in a desert land building anything in vanilla HTML and the DOM."I've had a similar observation. It's incredible to me that given the massive complexity of modern frontend tooling (and there is a lot of complexity) it is still often even harder to build with simpler tech stacks. There's no good reason for this, just that every tool seems to assume you're bought into one of the major frameworks.It also leads to a lot of duplication, since every problem needs to be solved for every framework. If we properly abstracted things to diverge from these "non-native"ecosystems, we would reduce duplicated effort *and* make the web less reliant on them where it doesn't need to be.
(DIR) Post #ASmQlKwdBoFPgpbmqW by develwithoutacause@techhub.social
2023-02-17T19:25:13Z
0 likes, 1 repeats
Question for people using #MicroFrontends and #Monorepos: What do your #integration tests look like?The #Google model of monorepos always builds everything at HEAD, but doing so would not catch version skew issues that come with independent deployments. That implies that your integration tests _cannot_ just build and run everything at HEAD, you actually have to deploy each change individually to a staging environment and alert on failures.That feels like a much more complex setup than I'm used to seeing for integration tests. Do people actually do this or is version skew a giant blind spot for microfrontend testing?
(DIR) Post #AZV4GplZGP0K0VBwpc by develwithoutacause@techhub.social
2023-09-06T19:29:37Z
0 likes, 0 repeats
@changelog As a Googler I 100% agree. #Git is way too complicated and difficult to work with. #GitHub is decent, but is quite far off from internal tools.CodeSearch and code indexing are a big piece. Stacked diffs for code reviews, remote clients, comprehensive build system, all add on top of this.I have personally advocated for literally selling the google3 development model and all its tooling as a service, but I'm not high enough in the org chart for my opinion to matter.I do struggle to see how you could build an equivalent in OSS. Certainly individual features can be implemented, tools can be built. But the real "secret sauce" to Google is the integration. Everything connects to everything else because we can make assumptions about the other tools you're using. You can't really replicate that in an open ecosystem.
(DIR) Post #AZd05XIWjuYnX369Ng by develwithoutacause@techhub.social
2023-09-09T07:38:39Z
0 likes, 1 repeats
Are there any good #web conferences / meetups with an #RFP open in the #BayArea or virtual?There are a few projects I've been working on which I'd love to give talks about and share with the community (not Angular related). Could be talking about any/all of:1. #HydroActive - A different take on hydration in an HTML-first world. https://github.com/dgp1130/HydroActive/2. #rules_prerender - A #Bazel ruleset serving as a fast and scalable #StaticSiteGenerator. https://github.com/dgp1130/rules_prerender/3. #HTMLFragments - A no-tooling, web standard-based approach to HTML over the wire. https://blog.dwac.dev/posts/html-fragments/Greatly appreciate boosts for reach!
(DIR) Post #Abut66LUiAxRFH0MTo by develwithoutacause@techhub.social
2023-11-18T01:10:34Z
0 likes, 1 repeats
I had to install #Git on a #Windows machine today and OH MY GOD I forgot how complex of a set up process it is. I went through it again just to count the unbelieveable number of steps it took:1. License agreement.2. Which components to install (includes proper nouns like "Git Bash", "Git LFS", and "Scalar"). Notably does *not* enable automatic updates by default.3. Default editor for Git (doesn't include #Emacs as an option).4. Default branch name.5. How to configure the `PATH`.6. Which #OpenSSH to use.7. Which #SSL / #TLS library to use.8. How to handle CRLF / LF line endings.9. Which terminal emulator to use.10. Whether to use merge or rebase by default.11. Whether to enable the credential helper.12. Extra options: * File system caching. * Symbolic links.13. Experimental options: * Pseudo consoles (?) * File system monitor (?)This is utterly absurd and probably the most unnecessarily complicated install experience I can think of.
(DIR) Post #Abut67x6jodgEDbukK by develwithoutacause@techhub.social
2023-11-18T01:18:47Z
0 likes, 0 repeats
I've been doing #Git for the better part of a decade and my day job is dealing with tools which directly deal with some of these problems. Yet even I don't understand some of these questions.How is a new Git user supposed to understand any of this? How much background knowledge do you expect a Git user to have?Worst of all, the most critical piece of information is lost: You need to log out and back in to apply the `PATH` change and use `git` on the command line.If the user is following any kind of tutorial odds are it looks like:1. Install Git [here](link).2. Run `git init # ...`Any new user is going to immediately fail at step 2.My suggestion: Just use the default options for everything. Shove all this nonsense into an "Advanced options" section and put a "Restart" button / "Please log-out" message on the final screen.This would make Git infinitely less intimidating and more approachable.
(DIR) Post #Aca318nA32IL0SoirA by develwithoutacause@techhub.social
2023-12-07T04:39:18Z
0 likes, 0 repeats
The more I think about this, the more I realize this is the most profound meme I've ever created.It's not even funny, I'm just stating a fact.https://techhub.social/@develwithoutacause/111535073936156394
(DIR) Post #AckTdInDqyQTPvIoL2 by develwithoutacause@techhub.social
2023-12-12T23:31:18Z
0 likes, 0 repeats
@daniel `magic-regexp` looks very cool. Reminds me of #Melody and a conversation I had about that recently.https://techhub.social/@develwithoutacause/110728449170312777All for an improved #regex alternative, I hope one of these projects can find long-term success!
(DIR) Post #AhtVNLSxqhA5eDCcBE by develwithoutacause@techhub.social
2024-05-06T06:13:52Z
0 likes, 0 repeats
#JavaScript How does the new resource management proposal clean up async disposables?IIUC, it seems like it will inject an `await` into the scope close, when the object is disposed. That sounds very intuitive to me. Consider this snippet:```let x = 1;if (x) { // ... console.log('first', x);}console.log('second', x);```The two console log should always print the same thing right? No statements can happen between them (assuming a dispose operation does not change `x`).Except that's not true with `await using`:```let x = 1;if (x) { await using stack = /* ... */; setTimeout(() => x++, 50); console.log('first', x);}console.log('second', x);```There's a very sneaky race condition here. `await using` implies that line awaits, but it really means that the `}` line awaits.That seems very unintuitive to me and requires the reader to check every line in the block to know the behavior of `}`. That feels brittle to me.Am I missing something here?
(DIR) Post #AhtVNMhBHK7zSarTyi by develwithoutacause@techhub.social
2024-05-06T06:15:58Z
0 likes, 0 repeats
I guess in theory you can have a similar problem with synchronous dispose functions, but that requires the disposal to directly trigger the change in state and doesn't affect execution timing.Async disposables feel much more fragile as a result. In particular the syntax-less await on the `}` line feels *very* sketchy to me.
(DIR) Post #AhtVNOaWF3zHKVlBs8 by develwithoutacause@techhub.social
2024-05-06T19:31:18Z
0 likes, 0 repeats
I tried this out and found that my understanding does appear to be correct, there is indeed a very sneaky `await` at the `}`.https://www.typescriptlang.org/play/?target=9&module=1#code/CYUwxgNghgTiAEBzCB7ARlC8DeAoe8AlgHYAuIMAZlGAgMoCeAtmihAMIrEDOpMArmFIoYOfAXhwowLhAbxghbgAcU3EAC54-YoQCO-BN2asIAbnEEpM4nPhRjxMABElq9Vp37D8YyzYWBAC+uOIk5FQ0CK4qalBoEAh4EvAA2oz+EAB0irHqALoAFACUWgBuKITAgfAhYWQU1LTwAIKOLm5xCUmWaRmmWQ4MTjHuIEWl8AAKMChMSiAAPBVVAHw1IXWF-Wz23PbEDMU5nerwALzwOxCFAOS5Y7fFFtsmuw4HR4Pto2oIl9c7kMRqcQE8LLhIA59gBZBi-bjxRJEJjKRJMEBkfZtYYdPJInoEZQwQhlKDkSQgaSyeRgTAQDBgADW3C0LRgMCgDEWJQuq3gK2A8AAPtNZvN1MtKsBVvzLql8hCifwEoQwAoQJQKIU6RAGTQmVpeed+YLJoKxClSAALJRZXX65ncLLKfjca06+mMpnPcR1IkkskUh5-IWXagQdQ1V2q9XA9XpN7ZeMI8YlLQzOYLKVrS0SQiUeCFG12kPqYDFeA22YAd3gxBAdYAohyRHcWhBrPIyyAhSIFKcSIhwb0S86e2GqwIQEqJFAa1BCKQxVn1IM9cXbc6Hd7nUwoMpCjq0JWTfAwGgSsVfcFcFt40XT-zkvBEsuAB4XeAARhqBaL76Vi+BDzouy5ukOlL7JcDZ1nCCIEiUNRWCA46atqxr8qQhAYig-CkIUADsACs16zgQ2G4fhhTEQADMcNqYkeT7wO+ADUbG+r0YBcNwbAgFkqCIHclCEDAvC3AANKxN61PAAD08nwAAElUoDEPAAAGoFLpp8DWhQAniDxPD8YJKDCbc6gmcAUkyRYQTFEhoSUDoQiEFwVY4SAeEEaA0AMFoxD8CwFCTJmEpLIKz7iHApD8DAGmwSukU5jKR5wHxEBlCALHAb4ICkAAKt5vnMXyOBQWwOVIbU0n+VysmOQ5oQgO+qgwMu2BBBYQA
(DIR) Post #AhtVNQVz4tY3J1eb56 by develwithoutacause@techhub.social
2024-05-06T19:47:40Z
0 likes, 0 repeats
Personally, I'd much rather see a block syntax like:```using (const res = getResource()) { // ...} // Executes `res[Symbol.dispose]()`.```Async can work just like `for await`:```using await (const res = getResource()) { // ...} // Executes `await res[Symbol.asyncDipose()]()````That feels much clearer to me as `using` will _always_ carry the requirement that dispose happens at the `}` and even `awaits` for the async case.I'm sure the spec authors considered this as many examples in this issue reference a block-style syntax.https://github.com/tc39/proposal-explicit-resource-management/issues/15I don't see a single consolidated summary for exactly _why_ they didn't go with that approach however.