For example, what if your site has a customer interface and an “admin” interface? If the two have totally different designs and features, then it might be considerable overhead to ship the entirety of the admin interface to every customer on the regular site.
- Feb 2021
-
www.schneems.com www.schneems.com
-
-
Before we get into what the manifest.js does, let’s look at what it is replacing.
-
-
sobolevn.me sobolevn.me
-
we also wrap them in Failure to solve the second problem: spotting potential exceptions is hard
-
Not all cases can be covered and easily restored. And sometimes when we will reuse this function for different use-cases we will find out that it requires different restore logic.
-
But why do we return 0? Why not 1? Why not None? And while None in most cases is as bad (or even worse) than the exceptions, turns out we should heavily rely on business logic and use-cases of this function.
-
So, the sad conclusion is: all problems must be resolved individually depending on a specific usage context. There’s no silver bullet to resolve all ZeroDivisionErrors once and for all. And again, I am not even covering complex IO flows with retry policies and expotential timeouts.
Tags
- depends on use case / application
- easy to miss / not notice (attention)
- difficult/hard problem
- error/exception handling: spotting potential exceptions is hard
- need to solve specific case/problems individually (there is no general solution)
- sad/unfortunate conclusion
- why?
- anticipating what could go wrong / error/exception cases
- error/exception handling
- actually consider / think about how it _should_ (ideally) be
- the specific context is important
Annotators
URL
-
-
www.kickstarter.com www.kickstarter.com
-
let's be honest, print-and-play is A LOT of work (printing, cutting, laminating, sleeving, etc) and it is not everyone's cup of tea.
-
-
jrsinclair.com jrsinclair.com
-
Don’t worry if you get confused at first. Everyone does. I’ve listed some other references at the end that may help. But don’t give up.
-
-
mmhaskell.com mmhaskell.com
-
So every program starts in the IO monad. From here you can get any input you need, call into relatively "pure" code with the inputs, and then output the result in some way. The reverse does not work. You cannot call into IO code from pure code like you can call into a Maybe function from pure code.
-
-
www.huffpost.com www.huffpost.com
-
If you ask my former students, they will tell you that as a teacher, my goal is to do nothing. I dream of the day when I can sit at my desk, feet propped up, reading a book, while the classroom bursts with activity and learning around me.
-
-
2019.trailblazer.to 2019.trailblazer.to
-
Trailblazer (TRB) is an Open-Source project. Since we want to keep it that way, we decided to raise awareness for the “cost” of our work - providing new versions and features is incredibly time-consuming for us, but we love what we do.
-
-
unix.stackexchange.com unix.stackexchange.com
-
Example (in bash, but my question shouldn't be considered bash-specific):
-
-
www.washingtonpost.com www.washingtonpost.com
-
The Quest for Truth
The quest for Truth is everywhere and not limited to the economic topics linked here. This is just a topic that started a thought process where I had access to a convenient tool (Hypothesis) to bookmark my thoughts and research.
Primary thought is: The Quest for Truth. Subcategories would provide a structured topic for the thought. In this case the subcategory would be: US Economy, Inflation
The TRUTH is a concept comprised of inconsistencies and targets that frequently move.
Targets (data, methods, people, time, semantics, agenda, demographic, motive, means, media, money, status) hold a position in time long enough to fulfill a purpose or agenda. Sometimes they don't consciously change, but history over time shines light and opens cracks in original narrative that leads to new truth's, real or imagined.
Verifying and validating certain Truth is very difficult. Why is That?
-
-
-
This is in fact where I started, but this gives me all processes, which is exactly what I don't want.
-
-
psychclassics.yorku.ca psychclassics.yorku.ca
-
stolen love from the child and infant and made it the exclusive property of the adolescent and adult
Love is not exclusive to adults and adolescents as there are many types of love. I do not believe it has been stolen but added to love in general.
-
-
github.com github.com
-
compose(Add, x: x, y: 3)
How is this better than simply:
Add.run(x: x, y: 3)?
I guess if we did that we would also have to remember to handle merging errors from that outcome into self...
-
If ActiveModel deals with your nouns, then ActiveInteraction handles your verbs.
It's a good analogy, but I think it's misleading/confusing/unclear/incorrect, because parts of ActiveInteraction are ActiveModel, so I guess ActiveInteraction deals with your nouns too?
-
Why is all this interaction code better? Two reasons: One, you can reuse the FindAccount interaction in other places, like your API controller or a Resque task. And two, if you want to change how accounts are found, you only have to change one place.
Pretty weak arguments though...
- We could just as easily used a plain object or module to extract this for easy reuse and having it in only one place (avoiding duplication).
-
For this one we'll define a helper method to handle raising the correct errors. We have to do this because calling .run! would raise an ActiveInteraction::InvalidInteractionError instead of an ActiveRecord::RecordNotFound. That means Rails would render a 500 instead of a 404.
True, but why couldn't it handle this for us?
Tags
- why is it better?
- reusability
- avoid duplication
- active_interaction
- software development: code organization: where does this code belong?
- unclear
- I have a question about this
- good point
- good analogy
- library/framework should provide this (standard solution) rather than everyone having to write their own slightly different solution (even if it is easy enough to write yourself)
- _ is to _ (analogy)
- confusing
- misleading
Annotators
URL
-
-
www.searchenginejournal.com www.searchenginejournal.com
-
Microsoft has the advantage of exclusively serving Yahoo search traffic, powering several digital assistant voice searches, and the ability to target searchers with LinkedIn profile data such as company, job function, and industry.
I also was curious when reading this about how relevant Microsoft ads are nowadays. I feel like everything these days is focused on Google or Google centered. When I use Safari on my iPhone, it takes me to Google search results. I don't think I have ever used Bing and I haven't used Yahoo in probably 10+ years. Is it beneficial for companies to still put effort into Microsoft? Or could this be a case by case thing depending on the size of the company. I feel like it wouldn't be very cost effective for a small business to put money into Microsoft ads since the majority of users use Google.
-
-
github.com github.com
-
I'm sure there will be a few other people out there who eventually want something like this, since Interactions are actually a great fit for enforcing consistency in data structures when working with a schemaless NoSQL store, but obviously it's still a bit of a niche audience.
-
-
github.com github.com
-
I don't think seeing it in Rails PRs naturally means we should do it blankly. Put it another way, what's the justification in those PRs for doing it?
-
The rationale is that it's actually clearer to eager initialize. You don't need to worry about timing/concurrency that way. Lazy init is inherently more complex than eager init, so there should be a reason to choose lazy over eager rather than the other way around.
Tags
- understand both sides of an issue
- investing time to really understand something
- understand the trade-offs
- race condition
- rationale
- fallacy: doing something because it's popular / everyone is doing it
- why?
- timing is part of state
- doing something without knowing why/how it works
- justification for existence
- eager vs. lazy initialization
- understand the ramifications/effects/consequences
Annotators
URL
-
-
github.com github.com
-
The assert method is used by all the other assertions. It pushes the second parameter to the list of errors if the first parameter evaluates to false or nil.
Seems like these helper functions could be just as easily used in ActiveRecord models. Therefore, they should be in a separate gem, or at least module, that can be used in both these objects and ActiveRecord objects.
-
-
github.com github.com
-
you mean Action Form, right?
-
-
github.com github.com
-
-
Set your models free from the accepts_nested_attributes_for helper. Action Form provides an object-oriented approach to represent your forms by building a form object, rather than relying on Active Record internals for doing this.
It seems that the primary/only goal/purpose was to provide a better alternative to ActiveRecord's accepts_nested_attributes_for.
Unfortunately, this appears to be abandoned.
-
-
github.com github.com
-
rafaelfranca closed this on Feb 27, 2018
continued in: https://github.com/rails/rails/pull/36183
-
-
davefleet.com davefleet.com
-
From my perspective the onus is on you to consider not just the words coming out of your mouth, but how they are received.
-
-
www.infoworld.com www.infoworld.com
-
This column and last month's article are about design. Design, by nature, is a series of trade-offs. Every choice has a good and bad side, and you make your choice in the context of overall criteria defined by necessity. Good and bad are not absolutes, however. A good decision in one context might be bad in another.
-
Stating that some language feature or common programming idiom (like accessors) has problems is not the same thing as saying you should never use them under any circumstances.
-
And just because a feature or idiom is commonly used does not mean you should use it either.
-
-
softwareengineering.stackexchange.com softwareengineering.stackexchange.com
-
Say you have software to keep track of your grocery list. In the 80's, this software would work against a command line and some flat files on floppy disk. Then you got a UI. Then you maybe put the list in the database. Later on it maybe moved to the cloud or mobile phones or facebook integration. If you designed your code specifically around the implementation (floppy disks and command lines) you would be ill-prepared for changes. If you designed your code around the interface (manipulating a grocery list) then the implementation is free to change.
-
-
www.javaworld.com www.javaworld.com
-
Rather than implement features you might need, you implement only the features you definitely need, but in a way that accommodates change. If you don't have this flexibility, parallel development simply isn't possible.
-
At the core of parallel development, however, is the notion of flexibility. You have to write your code in such a way that you can incorporate newly discovered requirements into the existing code as painlessly as possible.
-
-
-
with ActiveForm-Rails, validations is the responsability of the form and not of the models. There is no need to synchronize errors from the form to the models and vice versa.
But if you intend to save to a model after the form validates, then you can't escape the models' validations:
either you check that the models pass their own validations ahead of time (like I want to do, and I think @mattheworiordan was wanting to do), or you have to accept that one of the following outcomes is possible/inevitable if the models' own validations fail:
- if you use
object.savethen it may silently fail to save - if you use
object.savethen it will fail to save and raise an error
Are either of those outcomes acceptable to you? To me, they seem not to be. Hence we must also check for / handle the models' validations. Hence we need a way to aggregate errors from both the form object (context-specific validations) and from the models (unconditional/invariant validations that should always be checked by the model), and present them to the user.
What do you guys find to be the best way to accomplish that?
I am interested to know what best practices you use / still use today after all these years. I keep finding myself running into this same problem/need, which is how I ended up looking for what the current options are for form objects today...
- if you use
-
DSLs can be problematic for the user since the user has to manage state (e.g. am I supposed to call valid? first or update_attributes?). This is exactly why the #validate is the only method to change state in Reform.
-
The reason Reform does updating attributes and validation in the same step is because I wanna reduce public methods. This is to save users from having to remember state.
I see what he means, but what would you call this (tag)? "have to remember state"? maybe "have to remember" is close enough
Or maybe order is important / do things in the right order is all we need to describe the problem/need.
Tags
- rails: validation
- order is important / do things in the right order
- missing the point
- state management
- reform (Ruby)
- making it easy to do the right thing
- DSL
- overlooking/missing something
- good point
- annotation meta: may need new tag
- making it easy to do the wrong thing
- I have a differing opinion
- whose responsibility is it?
- have to remember
- simplicity by design
Annotators
URL
-
-
github.com github.com
-
We think that, although Ruby is a great language for the backend, the view should be written in languages designed for that purpose, HTML and JavaScript.
-
Tags
- unfortunate that this is no longer maintained
- ruby: desktop app framework
- programming languages
- programming languages: choosing the best language for the job
- using the right tool for the job
- no longer maintained
- determining if something is an appropriate application / best tool for the job
Annotators
URL
-
-
github.com github.com
-
Let's assume that something in the system has to change (as it rarely does..), and we need to add a new step to the process to the runner
-
-
Local file Local file
-
-
hilton.org.uk hilton.org.uk
-
Unlike naming children, coding involves naming things on a daily basis. When you write code, naming things isn’t just hard, it’s a relentless demand for creativity. Fortunately, programmers are creative people.
-
If we renamed things more often, then it probably wouldn’t be so hard to name them in the first place.
-
We also find it hard to agree on what good names and bad names look like, which makes it hard to know when renaming improves a name.
-
This is funny because it’s unexpected. Cache invalidation sounds like a hard thing, while naming sounds more straightforward. The joke works because it violates our expectation that hard things should be technical. It’s also funny because it’s true.
-
Naming is communication
-
‘Programs are meant to be read by humans and only incidentally for computers to execute.’
-
Naming matters for both idealogical and practical reasons.
-
Naming is just one part of the micro-design activity that we call programming. If design weren’t hard, we wouldn’t find good design so satisfying.
-
Anyone who has ever tried to name a child knows that naming is hard. Naming things in code is harder. It’s bad enough that you have to commit to a name that someone isn’t going to like. You also have to be able to live with it.
Tags
- non-technical problems
- software development
- creativity
- hard to determine/recognize if it is better / an improvement or not
- surprising
- cache invalidation is hard
- creative
- refactoring: rename
- hard to agree on
- creative people
- is just one part of _
- considering your audience
- _is_ (strong is-a/hyponymy/equivalence)
- why is it difficult/hard?
- good point
- programming
- naming things is hard
- why is it important? / why does it matter?
- contrast
- relentless
- the activity of _
- technical problems
- becomes/gets easier with practice/experience
- well-written
- human-readable vs. machine-readable
- naming
- requires/demands creativity
- good analogy
- expectations
- communication
- satisfying/rewarding
- frequently encountered (common) problem
- naming: the importance of good names
- funny because it's true
- quotable
- what programmers are like
- funny because it's unexpected
- incidental
- big change/rewrite vs. continuous improvements / smaller refactorings
- source code is meant to be read primarily by humans (human-readable more important)
Annotators
URL
-
-
en.wikipedia.org en.wikipedia.org
Tags
Annotators
URL
-
-
www.reddit.com www.reddit.com
-
It's difficult because it's a case-by-case basis - there is no one right answer so it falls into subjective arguments.
-
The underlying data might get changed by another process and then your process that uses the cache will be working with incorrect data
-
-
www.quora.com www.quora.com
-
-
So the hard and unsolvable problem becomes: how up-to-date do you really need to be?
-
After considering the value we place, and the tradeoffs we make, when it comes to knowing anything of significance, I think it becomes much easier to understand why cache invalidation is one of the hard problems in computer science
the crux of the problem is: trade-offs
-
The non-determinism is why cache invalidation — and that other hard problem, naming things — are uniquely and intractably hard problems in computer science. Computers can perfectly solve deterministic problems. But they can’t predict when to invalidate a cache because, ultimately, we, the humans who design and build computational processes, can’t agree on when a cache needs to be invalidated.
-
Cache invalidation is hard because: Everything in life we want to know, changes.Those changes are non-deterministic.
-
Sometimes humorously extended as “cache invalidation, naming things, and off-by-one errors.”
Tags
- good explanation
- hard things in computer science
- cache invalidation is hard
- everything changes over time
- good question
- generalized explanation
- deterministic
- funny
- excellent technical writing
- computers
- knowledge
- nondeterministic
- good point
- main/key/central/essential/core thing/point/problem/meat
- where it shines / best application
- why?
- how good/perfect does it really need to be?
- trade-offs
Annotators
URL
-
-
www.computers.wtf www.computers.wtf
-
There’s only one hard thing in Computer Science: human communication. The most complex part of cache invalidation is figuring out what the heck people mean with the word cache. Once you get that sorted out, the rest is not that complicated; the tools are out there, and they’re pretty good.
-
-
www.honeybadger.io www.honeybadger.io
-
One reason Turbolinks sites seem faster than traditional web apps is because of its cache. However, the cache can be a source of great frustration. Many of the edge cases we're going to discuss involve the cache in some way.
-
Turbolinks is a Single-Page Application Turbolinks doesn't just give you some of the benefits of a single-page app. Turbolinks is a single page app. Think about it: When someone visits your site, you serve them some HTML and Javascript. The JavaScript takes over and manages all subsequent changes to the DOM. If that's not a single-page app, I don't know what is.
-
Our app is mostly about displaying pages of static information. We crunch a lot of data to generate a single error report page.
-
Honeybadger isn't a single page app, and it probably won't ever be. SPAs just don't make sense for our technical requirements.
Tags
- depends on use case / application
- not the most appropriate / best tool/application/fit for every use case
- not the most appropriate / best tool/application/fit for this use case
- definition
- Turbolinks
- determining if something is an appropriate application / best tool for the job
- cache invalidation is hard
- single-page app
- relationship: is a
- cache invalidation
Annotators
URL
-
-
jakearchibald.com jakearchibald.com
-
Flexbox's strength is in its content-driven model. It doesn't need to know the content up-front. You can distribute items based on their content, allow boxes to wrap which is really handy for responsive design, you can even control the distribution of negative space separately to positive space.
-
-
css-tricks.com css-tricks.com
-
Flexbox is for one dimensional layout (row or column). CSS grid is for two dimensional layout.
-
-
stackoverflow.com stackoverflow.com
-
There is one situation where iframes are (almost) required: when the contents of the iframe is in a different domain, and you have to perform authentication or check cookies that are bound to that domain. It actually prevents security problems instead of creating them. For example, if you're writing a kind of plugin that can be used on any website, but the plugin has to authenticate on another domain, you could create a seamless iframe that runs and authenticates on the external domain.
-
-
stackoverflow.com stackoverflow.com
-
I normally try to figure out if that's a good solution for the problem before resorting to iframes. Sometimes, however, an iframe just does the job better. It maintains its own browser history, helps you segregate CSS styles if that's an issue with the content you're loading in.
-
-
stackoverflow.com stackoverflow.com
-
Usually, if you can do it without an iframe, that is a better option. I'm sure others here may have more information or more specific examples, it all comes down to the problem you are trying to solve.
-
- Jan 2021
-
slackmojis.com slackmojis.com
-
Slackmojis is made by some random dude in Brooklyn. He doesn't work for Slack, isn't paid by Slack, he just thinks Slack is pretty cool. Super Official Lawyer Talk: Slackmojis is not created by, affiliated with, or supported by Slack Technologies, Inc.
-
-
github.com github.com
-
The code is far simpler and easier to understand/verify
-
-
ubuntu.com ubuntu.com
-
Ubuntu also supports ‘snap’ packages which are more suited for third-party applications and tools which evolve at their own speed, independently of Ubuntu. If you want to install a high-profile app like Skype or a toolchain like the latest version of Golang, you probably want the snap because it will give you fresher versions and more control of the specific major versions you want to track.
-
-
forums.theregister.com forums.theregister.com
-
if it's not broken, fix it until it is.
-
-
www.americanpressinstitute.org www.americanpressinstitute.org
-
The purpose of news is to inform, educate, and give us understanding and knowledge of what is going on in the world. It helps us to keep up to date with issues so we are in the know and fully aware of events taking place.
-
-
-
If components gain the slot attribute, then it would be possible to implement the proposed behavior of <svelte:fragment /> by creating a component that has a default slot with out any wrappers. However, I think it's still a good idea to add <svelte:fragment /> so everyone who encounters this common use case doesn't have to come up with their own slightly different solutions.
-
-
github.com github.com
-
github.com github.com
-
www.donielsmith.com www.donielsmith.com
-
Depending on what other component libraries you’ve used, you may be used to handling events by passing callback functions to component properties, or using a special event syntax – Svelte supports both, though one is usually more appropriate than the other depending on your situation. This post explains both ways.
-
-
www.npmjs.com www.npmjs.com
-
Think first: why do you want to use it in the browser? Remember, servers must never trust browsers. You can't sanitize HTML for saving on the server anywhere else but on the server.
-
-
discourse.ubuntu.com discourse.ubuntu.com
-
When there are imperfections, we rely on users and our active community to tell us how the software is not working correctly, so we can fix it. The way we do that, and have done for 15 years now, is via bug reports. Discussion is great, but detailed bug reports are better for letting developers know what’s wrong.
-
-
www.alfiekohn.org www.alfiekohn.org
-
They may skim books for what they’ll “need to know.” They’re less likely to wonder, say, “How can we be sure that’s true?” than to ask “Is this going to be on the test?”
This is completely true! As a student we honestly do not care about anything, as long as our grade is an A. I hate that it is true, because sometimes as a student, I just want to really learn for a second. Although it is nearly impossible when pressured is applied based on a letter grade that may or may not affect one's life. This class is really helping realize that it is not me, is that pressure kills the beauty of learning.
-
- Dec 2020
-
chem.libretexts.org chem.libretexts.org
-
Nodes A wave function node occurs at points where the wave function is zero and changes signs. The electron has zero probability of being located at a node.
Nodes
Tags
Annotators
URL
-
-
todoist.com todoist.com
-
You’re in good companyTrusted by leaders at some of the world’s most inspired organizations
How can they disclose this? Is it based on email address? Do they have permission?
-
-
github.com github.com
-
Maybe something more neutral just meaning a virtual element / no-element container would better express the intention? And regarding the syntax, maybe it would also feel less repetitive / boilerplaty than <svelte:slot slot="name" />... Maybe something like <svelte:fragment slot="name"> or <svelte:virtual slot="name">?
-
-
github.com github.com
-
more leading edge than bleeding
-
Is using bleeding edge tech risky and foolish? How much blood are we talking about? My experience tells me Svelte is a safe choice, more leading edge than bleeding.
-
-
www.bbc.co.uk www.bbc.co.uk
-
Magnetic materials are always made of metal, but not all metals are magnetic
-
-
www.andrews.edu www.andrews.edu
-
If only Santa Anna had not repealed the Constitution of 1824. If only Santa Anna had not dissolved the legislatures. If only Santa Anna had not killed every Texan prisoner. If only Santa Anna had not gone to sleep without posting a guard at San Jacinto. If only Santa Anna had done any of these things Texas would probably still be a Mexican state; however, Santa Anna did none of these things. In fact it was his failure to do any of these things that caused Texas to become an independent republic.
This is good opinion/info to support my claim. If only Santa Anna had given mercy to the Texans, he could've used them against their side, and they could've helped him get more prisoners or win the revolution and continue his rein over Texas.
-
At first Santa Anna's policy of execution carried the desired effect; all the Texans ran toward the American border (see map). However, his policy backfired. All the weak hearted Texan soldiers quit the army leaving only the hard core men.
This is good to show how his execution of Texas soldiers wasn't working for him because everyone was willing to fight even harder, not going to die without a fight.
-
-
github.com github.com
-
These are sequential because build:ssr imports the public/index.html that build:dom produces.
-
- Nov 2020
-
www.reddit.com www.reddit.com
-
I wouldn't use Flutter for web, mobile is good though.
-
It's super promising for web apps, just maybe not for web pages. I went from React to Svelte to Flutter for my current app project, and every step felt like a major upgrade.Flutter provides the best developer experience bar none, and I think it also has the potential to provide the best user experience. But probably only for PWAs, which users are likely to install anyway. Or other self-contained experiences, like Facebook games. It does have some Flash vibes, but is far more suitable for proper app development than Flash ever was while still feeling more like a normal website to the average user. It won't be the right choice for everything, but I believe it will be for a lot of things.
-
-
developer.mozilla.org developer.mozilla.org
-
Fallback values aren't used to fix the browser compatibility. If the browser doesn't support CSS custom Properties, the fallback value won't help.
-
-
uxdesign.cc uxdesign.cc
-
Secondary buttons are the ‘go back’ to the primary button’s ‘next’, or the ‘cancel’ button to the ‘submit’ button
-
-
github.com github.com
-
I hope @hperrin you're still alive to discuss about this and eventually for a pull request.
-
After i've stabilized the library i can start to discuss about adding new components and features!
-
@monkeythedev can your work be used already? I would suggest not yet, i'm still doing core changes every day
-
@monkeythedev I am curious how do you "organize" your work - You forked https://github.com/hperrin/svelte-material-ui and https://github.com/hperrin/svelte-material-ui is not very active. Do you plan an independent project ? I hope the original author would return at some times, if not, i'll see
-
Maybe @hperrin would be able to make an appearance and select a few additional maintainers to help out.
Tags
- order is important / do things in the right order
- expect it to break / be broken frequently
- avoid forking if possible
- stability (works well enough / has few enough bugs)
- pre-release
- maintainer is missing (uncertain if they plan to continue maintaining)
- maintenance status uncertain
- maintainer: should add additional maintainers to help out
- stability (API not changing)
- forked because no longer maintained
- should they fork and create new alternative independent project?
- is it too early to use software/product? (pre-release / stability)
- maintainer: more maintainers needed
Annotators
URL
-
-
github.com github.com
-
passive: true instructs chrome that no body will call e.preventDefault() so chrome can optimized scrolling just because no body will call e.preventDefault and so there is no need to wait listeners...
-
-
www.snowpack.dev www.snowpack.devSnowpack1
-
Who’s Using Snowpack?
-
-
www.youtube.com www.youtube.com
-
If everyone did this, the repair shops would be out of business.
-
-
www.styled-components.com www.styled-components.com
-
www.npmjs.com www.npmjs.com
-
This module should not be used in other npm modules since it modifies the default require behavior! It is designed to be used for development of final projects i.e. web-sites, applications etc.
-
-
www.cl.cam.ac.uk www.cl.cam.ac.uk
-
Alexanderproposeshomesandofficesbedesignedandbuiltbytheireventualoccupants.Thesepeople,hereasons,knowbesttheirrequirementsforaparticularstructure.Weagree,andmakethesameargumentforcomputerprograms.Computerusersshouldwritetheirownprograms.KentBeck&WardCunningham,1987 [7]
Users should program their own programs because they know their requirements the best.
[7]: Beck, K. and Cunningham, W. Using pattern languages for object-oriented programs. Tektronix, Inc. Technical Report No. CR-87-43 (September 17, 1987), presented at OOPSLA-87 workshop on Specification and Design for Object-Oriented Programming. Available online at http://c2.com/doc/oopsla87.html (accessed 17 September 2009)
-
-
www.roambrain.com www.roambrain.com
-
Connected to this are Andy Matuschak’s comments about contextual backlinks bootstrapping new concepts before explicit definitions come into play.
What Joel says here about Contextual Backlinks is that they allow you to "bootstrap" a concept (i.e. start working with it) without explicit definitions coming into play (or as Andy would say, the content is empty).
-
Easily updated pages: don’t worry about precisely naming something at first. Let the meaning emerge over time and easily change it (propagating through all references).
Joel highlights a feature here of Roam and ties it to incremental formalisms.
In Roam you can update a page name and it propagates across all references.
-
Cognitive Overhead (aka Cognitive Load): often the task of specifying formalism is extraneous to the primary task, or is just plain annoying to do.
This is the task that you're required to do when you want to save a note in Evernote or Notion. You need to choose where it goes.
-
The basic intuition is described well by the Shipman & Marshall paper: users enter information in a mostly informal fashion, and then formalize only later in the task when appropriate formalisms become clear and also (more) immediately useful.
Incremental formalism
Users enter information in an informal fashion. They only formalize later when the appropriate formalism becomes clear and/or immediately useful.
-
It’s important to notice something about these examples of synthesis representations: they go quite a bit further than simply grouping or associating things (though that is an important start). They have some kind of formal semantic structure (otherwise known as formality) that specifies what entities exist, and what kinds of relations exist between the entities. This formal structure isn’t just for show: it’s what enables the kind of synthesis that really powers significant knowledge work! Formal structures unlock powerful forms of reasoning like conceptual combination, analogy, and causal reasoning.
Formalisms enable synthesis to happen.
-
-
notes.andymatuschak.org notes.andymatuschak.org
-
Systems which display backlinks to a node permit a new behavior: you can define a new node extensionally (rather than intensionally) by simply linking to it from many other nodes—even before it has any content.
Nodes in a knowledge management system can be defined extensionally, rather than intensionally, through their backlinks and their respective context.
-
-
stackoverflow.com stackoverflow.com
-
This is the real issue here, and it's a bug with chrome devtools, fixed in Chrome 46.
-
-
github.com github.com
-
I think it would be much better to whitelist registries
-
-
en.wikipedia.org en.wikipedia.org
-
The meaning of the word "modularity" can vary somewhat based on context. The following are contextual examples of modularity across several fields of science, technology, industry, and culture:
-
-
github.com github.com
-
In Rust, we use the "No New Rationale" rule, which says that the decision to merge (or not merge) an RFC is based only on rationale that was presented and debated in public. This avoids accidents where the community feels blindsided by a decision.
-
I'd like to go with an RFC-based governance model (similar to Rust, Ember or Swift) that looks something like this: new features go through a public RFC that describes the motivation for the change, a detailed implementation description, a description on how to document or teach the change (for kpm, that would roughly be focused around how it affected the usual workflows), any drawbacks or alternatives, and any open questions that should be addressed before merging. the change is discussed until all of the relevant arguments have been debated and the arguments are starting to become repetitive (they "reach a steady state") the RFC goes into "final comment period", allowing people who weren't paying close attention to every proposal to have a chance to weigh in with new arguments. assuming no new arguments are presented, the RFC is merged by consensus of the core team and the feature is implemented. All changes, regardless of their source, go through this process, giving active community members who aren't on the core team an opportunity to participate directly in the future direction of the project. (both because of proposals they submit and ones from the core team that they contribute to)
Tags
- feeling blindsided
- open-source projects: allowing community (who are not on core team) to influence/affect/steer the direction of the project
- allowing sufficient time for discussion/feedback/debate before a final decision is made
- build concensus
- welcoming feedback
- attracting contributors
- have discussion/feedback/debate in public (transparency)
- soliciting feedback
- change proposal workflow: RFCs
Annotators
URL
-
-
github.com github.com
-
If nobody objects or can come up with improvements, I'll approve.
-
-
stackoverflow.com stackoverflow.com
-
And the App will be responsible for display a list of users adding/removing users of said list
-
-
hypothes.is hypothes.is
-
e annotations are visible to everyone both in the document itself and our public stream. Privat
lol test 1
Tags
Annotators
URL
-
-
github.com github.com
-
Tell you why tree-shaking fails, if it does.
-
What it doesn't do
Tags
Annotators
URL
-
-
webpack.js.org webpack.js.orgConcepts1
-
We expect a certain pattern when validate devtool name, pay attention and dont mix up the sequence of devtool string. The pattern is: [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map.
-
-
github.com github.com
-
I've only done components that need to/can be Svelte-ified. For some things, like RTL and layout grid, you can just use the MDC packages.
-
-
css-tricks.com css-tricks.com
-
will only apply up the chain
Should this "up the chain" be "down the chain"?
In terms of a tree, I think of the caller/consumer/thing that imports this file as "up" and the things that I call/import as "down".
That is more consistent with a tree, but not a stack trace (or any stack), I suppose, which has most recently called thing at the top ("up"), and the consumer of that at the bottom ("down").
-
-
github.com github.com
-
Maybe it's also a bug because every warning should be ignorable? Not sure.
-
-
github.com github.com
-
This is linux. Ouput first, formatting second. systemctl --no-pager -l should be the default.
-
- Oct 2020
-
www.getcloudapp.com www.getcloudapp.com
-
Over 4 million people trust CloudApp
-
-
meta.stackoverflow.com meta.stackoverflow.com
-
Retagging the HTML/CSS questions to use html-heading seems the right thing to do. For the other uses, I don't have enough grounding in the geographic area to know whether the direction and bearing are replacements for heading. But the tag information for heading should be created and should firmly point at the other tags — at least until it is expunged.
-
-
github.com github.com
-
We could broadcast a warning if we find the variable to be set in the environment, but that is more likely than not to annoy people who intentionally set it.
New tag?: warnings that may annoy people who intentionally do something. (Need a way to selectively silence certain warnings?)
-
-
stackoverflow.com stackoverflow.com
-
If you have a better/simpler/"more official" solution, I'd still love to see it!
The "official" solution is to use submitErrors (see Erik's answer).
-
-
www.basefactor.com www.basefactor.com
-
You may want to execute validations in a given specific order (this can be tricky especially when you have got asynchronous validations).
-
-
svelte.dev svelte.dev
-
-
This is a philosophical issue, I think. People (and presumably form libraries) have different definitions of what "dirty" means. Yours: "The field has ever been edited" Mine: "The value of the field is different from the initial value"
-
We could potentially have another flag that was your definition of dirty, but then we run into the hard problem in computer science: naming things.
-
-
github.com github.com
-
If that one somehow ends up being deemed an intended behavior rather than a bug, then it should definitely get explained in the docs too.
Tags
Annotators
URL
-
-
github.com github.com
-
I'm not sure yet how much of this is a bug.
Tags
Annotators
URL
-
-
github.com github.com
-
This isn't a bug. Svelte's reactivity is triggered by assignment, so it won't re-render on mutations like array pushing.
-
We want arr.push(foo); arr = arr; to work, and this is a bug.
-
-
-
Especially when rollup is configured with multiple outputs, I find this particular onwarn to be helpful in reducing warning clutter. It just displays each circular reference once and doesn't repeat the warning for each output:
-
I think my personal preference would be to see them all at once. Or maybe limit it to up to 10 messages and then list the count of how many more messages were not displayed. Pick your reaction
-
Another thing we could do to limit output would be to only every show the first circular dependency warning. I think we already do this for other types of warnings. Then you would need to tackle the warnings one-by-one, though.
-
Yeah I see what you're saying. In my case, I had a group of classes that relied on each other but they were all part of one conceptual "module" so I made a new file that imports and exposes all of them. In that new file I put the imports in the right order and made sure no code accesses the classes except through the new interface.
-
-
github.com github.com
-
Doing so also means adding empty import statements to guarantee correct order of evaluation of modules (in ES modules, evaluation order is determined statically by the order of import declarations, whereas in CommonJS – and environments that simulate CommonJS by shipping a module loader, i.e. Browserify and Webpack – evaluation order is determined at runtime by the order in which require statements are encountered).
Here: dynamic loading (libraries/functions) meaning: at run time
-
Specifically, since Root, Rule and AtRule all extend Container, it's essential that Container is evaluated (and therefore, in the context of a Rollup bundle, included) first. In order to do this, input.js (which is the 'gateway' to all the PostCSS stuff) must import root.js, root.js must import rule.js before it imports container.js, and rule.js must import at-rule.js before it imports container.js. Having those imports ensures that container.js doesn't then try to place Root, Rule or AtRule ahead of itself in the bundle.
-
Replaced nested `require` statements with `import` declarations for the sake of a leaner bundle. This entails adding empty imports to three files to guarantee correct ordering – see https://github.com/styled-components/styled-components/pull/100
-
-
medium.com medium.com
-
Modules from the following layer can require anything from all the previous layers, but not vice versa.
-
-
-
Note that these are not hyperlinks; these URIs are used for identification. This is a machine-readable way to say “this is HTML”. In particular, software does not usually need to fetch these resources, and certainly does not need to fetch the same one over and over!
-
-
danielmiessler.com danielmiessler.com
-
When communicating, being more specific is usually better, and a “URL” is a specific type of URI that provides an access method/location.
-
-
-
Every URL is a URI; Every URN is a URI; URI and URL are NOT interchangeable – a URL is a URI, but a URI is not always a URL; URLs always contain an access mechanism.
-
-
store.steampowered.com store.steampowered.com
-
Their trailer said "A video game for the home computer". Not sure why they said that instead of PC, but it was a refreshing new term for it.
-
-
m5qwxpr6o8.csb.app m5qwxpr6o8.csb.app
-
Note that the <WarningEngine/> component must be at the bottom of the form to guarantee that all the fields have registered.
-
-
humanwhocodes.com humanwhocodes.com
-
Anyone who’s ever worked with me knows that I place a very high value on what ends up checked-in to a source code repository.
-
-
-
Of all the compile-to-languages, the one that strikes me as having the least merit is JSX. It's basically a ton of added complexity for the sake of what boils down to syntax. There are no real gains in terms of language semantics in JSX.
-
-
www.onwebsecurity.com www.onwebsecurity.com
-
Yet it can be deceivingly difficult to properly encode (user) input
They were talking about output encoding but then switched to input encoding? Did they really mean to say input encoding here?
-
Encoding is dependent on the type of output - which means that for example a string, which will be used in a JavaScript variable, should be treated (encoded) differently than a string which will be used in plain HTML.
-
Escaping is a subset of encoding, where not all characters need to be encoded. Only some characters are encoded (by using an escape character).
-
Encoding is transforming data from one format into another format.
-
-
2ality.com 2ality.com
-
trusktr herman willems • 2 years ago Haha. Maybe React should focus on a template-string syntax and follow standards (and provide options for pre-compiling in Webpack, etc).
Well anywho, there's other projects now like hyperHTML, lit-html, etc, plus some really fast ones: https://www.stefankrause.ne...
React seems a little old now (and the new Hooks API is also resource heavy).
• Share ›  Michael Calkins trusktr • 4 years ago • edited That's a micro optimization. There isn't a big enough difference to matter unless you are building a game or something extraordinarily odd.
• Share › −  trusktr Michael Calkins • 2 years ago True, it matters if you're re-rendering the template at 60fps (f.e. for animations, or for games). If you're just changing views one time (f.e. a URL route change), then 100ms won't hurt at all.
-
-
www.python.org www.python.org
-
code is read much more often than it is written.
-
A style guide is about consistency. Consistency with this style guide is important. Consistency within a project is more important. Consistency within one module or function is the most important.
-
-
medium.com medium.com
-
But the vast majority of things that our apps are doing are just conditional and list rendering.
-
-
docs.google.com docs.google.com
-
But it’s really hard to see, because our human brains struggle to think about this Clock function as something for generating discrete snapshots of a clock, instead of representing a persistent thing that changes over time.
-
-
-
More in-depth examples definitely sound like a good idea. I've seen cookbooks quite a few times already and they are always helpful.
-
-
github.com github.com
-
When using TypeScript, cast the type of file.contents on your side.
-
-
en.wikipedia.org en.wikipedia.org
-
object orientation
-
-
dylanvann.com dylanvann.com
-
Disclaimer: I’m new to Svelte so this isn’t so much a recommendation as it is a “I guess this is a way to do it 🤷♂️”
-
-
github.com github.com
-
JSX is an XML-like syntax extension to EcmaScript (https://facebook.github.io/jsx/). It is not a language or runtime.
-
-
-
helped me carve a niche for what would become SolidJS. I still see that space today, so I'm glad that I did.
-
-
-
There's one downside to Reacts reactivity model - the hooks (useState and useEffect) have to always be called in the same order and you can't put them inside an if block.
-
createState and createSignal are improvements over React's useState as it doesn't depend on the order of calls.
-
-
codesandbox.io codesandbox.io
-
Is that expected behavior or am I doing something wrong?
-
-
-
(Note sure if this is a feature request or a bug...)
-
-
github.com github.com
-
Because I haven't worked with React Native, and so I'm not a specialist in it, and developing a React Native version of this package would better be done by someone being an expert in React Native.
-
-
github.com github.com
-
perhaps, imo this would make more sense. but it would slow down Parcel significantly as packages who don't have a browserslist or something similar will all get compiled (and most packages actually do target commonjs, which makes this prob not such a good idea). Which unfortunately is way too many packages. It would be great if tools like babel actually enforced a similar pattern to Parcel and use browserlist file or package.json instead of allowing defining target env in babel. Or at least not encourage it.
-
-
-
Whilst
I think he meant "Because"
-
- Sep 2020
-
sapper.svelte.dev sapper.svelte.dev
-
But we face our own hostile environment: underpowered devices, poor network connections, and the complexity inherent in front-end engineering.
-
-
github.com github.com
-
I took the same approach with _layout.svelte and not just for the svelte-apollo client. Except I put all of that setup into another module (setup.js) and imported from _layout. I just couldn't stomach having all that code actually in my _layout file. It's for layout, supposedly, but it's the only component that is a parent to the whole app.
-
-
svelte.dev svelte.dev
-
let:hovering={active}
It seems like it should be the other way around:
let:active={hovering}to make it look like a regular let assignment.
It's only when you consider what/how
let:hoveringon its own means/works that it makes a bit more sense that it is the way it is. When it's on its own, it's a little clearer that it's saying to "make use of" an available slot prop having the given name. (Very much likebind, where the LHS is also the name of the prop we're getting the data from.) Obviously we have to identify which prop we're wanting to use/pull data from, so that seems like the most essential/main/only thing the name could be referring to. (Of course, as a shortcut (in this shorthand version), and for consistency, it also names the local variable with the same name, but it wouldn't have to.)Another even simpler way to remember / look at it:
- Everything on the left hand of an prop/attribute [arg] corresponds to something in the component/element that you're passing the [arg] to. Usually it's a prop that you're passing in, but in this case (and in the case of bind:) it's more like a prop that you're pulling out of that component, and attaching to. Either way, the name on the LHS always corresponds to an
export letinside that named component. - Everything on the right side corresponds to a name/variable in the local scope. Usually it passes the value of that variable, but in the case of a let: or bind: it actually "passes the variable by reference" (not the value) and associates that local variable with the LHS (the "remote" side).
Another example is bind: You're actually binding the RHS to the value of the exported prop named on the LHS, but when you read it (until you get used to it?) it can look like it's saying bind a variable named LHS to the prop on the RHS.
- Everything on the left hand of an prop/attribute [arg] corresponds to something in the component/element that you're passing the [arg] to. Usually it's a prop that you're passing in, but in this case (and in the case of bind:) it's more like a prop that you're pulling out of that component, and attaching to. Either way, the name on the LHS always corresponds to an
-
-
discuss.rubyonrails.org discuss.rubyonrails.org
-
Getting the JS infrastructure upgraded can take hours of Googling.
-
-
engineering.mixmax.com engineering.mixmax.com
-
But this is only a halfway decent way to clarify that this is an external dependency, because the only way to resolve a peer dependency warning is to install react from npm—there's no way to notify npm that you resolve the dependency to a browser global. So peer dependencies should be avoided in favor of external declarations. Then Rollup will take care of warning about "unresolved dependencies", even if external declarations can't express a particular version range with which your library is compatible like peer dependencies can.
Interesting. Didn't realize. From my perspective, I usually do install packages via npm, so wouldn't have known about this problem.
npm and rollup both try to solve this problem but in different ways that apparently conflict? So if a lib author lists peerDependencies then it can cause problems for those getting lib via browser (CDN)? How come so many libs use it then? How come I've never heard of this problem before?
-
If you've followed React's guide, you've installed react from npm. You can teach Rollup how to find this package within your project's node_modules directory using the rollup-plugin-node-resolve plugin. Since React exports a CommonJS module, you'll also need to convert that into an ES6 module using the rollup-plugin-commonjs plugin.
-
-
github.com github.com
-
Then, the projects that use these libraries get to process these import statements how they like when they are bundled. For the ones that wish to load jQuery from a global, we again mark 'jquery' as an external—since we still don't want Rollup to bundle jQuery—and as a global.
-
-
medium.com medium.com
-
possibly making it harder for them to appreciate how severe the discoverability issues are for the rest of us.
-
-
stackoverflow.com stackoverflow.com
-
(Note that you're responsible for handling any race conditions that arise as a result of the component being destroyed before the promise resolves, though assigning state inside a destroyed component is harmless.)
-
-
github.com github.com
-
This isn't really a bug, because if you have an async function that returns a function, it doesn't really return a function - it returns a promise. I don't remember whether the Svelte internals currently check for the onMount callback's return being a function or whether they check for it being truthy. Maybe there's some adjustment to be made there.
-
-
github.com github.com
-
It would be tiresome - and bloated - to include a class pass-through for every component or assigning custom properties (from the RFC linked) for all potential properties on every component, just in case it's gonna be used in layouts that requires it. Wrapping them in a wrapper div is certainly an option, but potentially creates 100s or 1000s (long lists, several lists etc.) of new elements in the DOM slowing down low-end devices.
-
The RFC is more appropriate because it does not allow a parent to abritrarily control anything below it, that responsibility still relies on the component itself. Just because people have been passing classes round and overriding child styles for years doesn't mean it is a good choice and isn't something we wnat to encourage.
-
margin, flex, position, left, right, top, bottom, width, height, align-self, justify-self among other is CSS properties that should never be modified by the child itself. The parent should always have control of those properties, which is the whole reason I'm asking for this.
Tags
- control (programming)
- bloat
- who should have control over this? (programming)
- scalability
- constraints are helpful
- verbose / noisy / too much boilerplate
- Svelte: components are their own boss (encapsulation)
- why this feature is needed
- limiting how much library consumers/users can control/override
- whose responsibility is it?
- programming: who is responsible for this concern?
- which component/tool/organization/etc. is responsible for this concern?
Annotators
URL
-
-
github.com github.com
-
This has already forced me to forgo Svelte Material because I would like to add some actions to their components but I cannot and it does not make sense for them to cater to my specific use-case by baking random stuff into the library used by everyone.
-
-
github.com github.com
-
Your tooltip component will have to wrap your image with a span tag or something, it can’t just add events to its children. And if you are adding multiple actions to it you will have to wrap it multiple times.
<Concern1> <Concern2> </Concern2> </Concern1>
vs.
<img use:concern1 use:concern2>
-
-
-
You can imagine the ensuing combinatorial explosion if we needed to add borders or box shadows or filters or what-have-you.
-
If this was tied into Svelte's flow with hooks this would not be necessary since it would know when it was being removed from the DOM.
-
You must: reference each element you are extending using refs or an id add code in your oncreate and ondestroy for each element you are extending, which could become quite a lot if you have a lot of elements needing extension (anchors, form inputs, etc.)
-
This is where hooks/behaviors are a good idea. They clean up your component code a lot. Also, it helps a ton since you don't get create/destroy events for elements that are inside {{#if}} and {{#each}}. That could become very burdensome to try and add/remove functionality with elements as they are added/removed within a component.
Tags
- difficult/hard
- library/framework could make this easier
- framework taking care of responsibility so users can leverage it and not have to worry about that responsibility themselves
- combinatorial explosion
- too hard/difficult/much work to expect end-developers to write from scratch (need library to do it for them)
- scalability
- why this feature is needed
- could be easier / more difficult than it needs to be
Annotators
URL
-