- Jun 2021
-
www.mutuallyhuman.com www.mutuallyhuman.com
-
For me the diagrams make it easier to talk about what the tests do without getting bogged down by how they do it.
Tags
- communication: use the right level of detail
- describe the what without getting bogged down by how (implementation details; too detailed)
- communication: effective communication
- communication: focus on what is important
- focus on what it should do, not on how it should do it (implementation details; software design)
- too detailed
Annotators
URL
-
-
docs.gitlab.com docs.gitlab.com
-
Test we react correctly to any events emitted from child components:
-
Test any directive that defines if/how child component is rendered (for example, v-if and v-for).
-
-
docs.gitlab.com docs.gitlab.com
-
When mocking is deemed profitable:
-
targeting what the user actually sees
-
The most important guideline to give is the following: Write clean unit tests if there is actual value in testing a complex piece of logic in isolation to prevent it from breaking in the future Otherwise, try to write your specs as close to the user’s flow as possible
-
It’s better to test a component in the way the user interacts with it: checking the rendered template.
Tags
- guidelines
- only do it if it makes sense/is worth it (may be sometimes but not always worthwhile)
- end-to-end testing
- is it worth it?
- testing: unit tests
- testing: tests should resemble the way your software is used
- quotable
- rule of thumb
- pragmatic
- just because you can doesn't mean you should
- reasonable compromise
- do pros outweigh/cover cons?
- good advice
- testing: what is worth testing?
Annotators
URL
-
-
www.lesswrong.com www.lesswrong.com
-
-
outdoors.stackexchange.com outdoors.stackexchange.com
-
You can watch videos, but videos can't watch you.
-
No article or video can replace qualified instruction and experience
-
-
-
dba.stackexchange.com dba.stackexchange.com
-
Careful, Instead of != you may need to IS DISTINCT FROM operator which also compares NULL value
-
-
github.com github.com
-
We need to be really careful about what's 'same origin' because the server has no idea what host/path the various cookies are associated with. It just has a list of cookies that the browser had determined to be relevant for this SSR'd page, and not for any other subrequests.
-
- May 2021
-
interpersonal.stackexchange.com interpersonal.stackexchange.com
-
If you're already an admin for the zone in question, then the proper way to get that information is to log on to the DNS server or DNS control console and read it right from there. If you're not an admin for the zone, you're not supposed to have that information. Note that the person you are talking to on the phone is almost certainly not a DNS zone admin, so they also should not have that information. If they somehow did have it, they definitely shouldn't give it out over the phone. This is for your protection.
-
DNS zone information is sensitive. Many years ago it was possible for anyone to query a DNS server and literally get back all the records at once, but that was a security issue. Now you have to be an admin for the zone to get that info.
-
However I appreciate that price and functionality often dictates who we deal with.
-
-
github.com github.com
-
one of the following package repositories:
-
-
en.wikipedia.org en.wikipedia.org
-
As the token is unique and unpredictable, it also enforces proper sequence of events (e.g. screen 1, then 2, then 3) which raises usability problem (e.g. user opens multiple tabs). It can be relaxed by using per session CSRF token instead of per request CSRF token.
-
-
www.washingtonpost.com www.washingtonpost.com
-
sanjaykumarro.com sanjaykumarro.com
-
what is ozonation?
what is ozonation. Ozone gas perfect disinfectant and this is used to purify water. Unlike chlorine gas, which leaves harmful residual chlorine gas in the treated water, ozone leaves no harmful residual gases. Any unreacted ozone decomposes to oxygen gas.
-
-
kit.svelte.dev kit.svelte.dev
-
Building an app with all the modern best practices — code-splitting, offline support, server-rendered views with client-side hydration — is fiendishly complicated. SvelteKit does all the boring stuff for you so that you can get on with the creative part.
-
-
jeetheer.substack.com jeetheer.substack.com
-
I miss the thriving blogging culture of circa 1999-2012. People blogged before and after those dates, but that was a period where blogging really had an outsized voice in shaping political and cultural conversation.
Maybe it's the fact that there's more thoughts, ideas, and actual conversation in longer form media? Too much has moved to social media which really immediately implies small, bite-sized bits of information---a short note, a photo, a star or a heart.
-
-
mijn.bsl.nl mijn.bsl.nl
-
orchitis
Orchitis of orchiditis is een ontsteking van de testes. Orchitis wordt veelal veroorzaakt door SOA's als chlamydia en gonorroe. Bij het doormaken van de bof door jongens vanaf de puberteit is orchitis een veel geziene complicatie.
-
-
stackoverflow.com stackoverflow.com
-
Negative margins are in many cases equivalent to position:relative; with negative position, e.g. position:relative; top:-100px, as in Guffa's answer.
-
-
stackoverflow.com stackoverflow.com
-
Negative margins get removed by Gmail and others. So, no negative margins.
-
-
stackoverflow.com stackoverflow.com
-
You can't use negative margin in html email. To mimic this, there are 2 ways to do it, the nested tables way and the more complex rowspan way:
-
gmail and other mail services are ignoring the negative margin.
-
-
stackoverflow.com stackoverflow.com
-
Negative values are mostly unsupported in html email. So is CSS position. For webmail at least, this is so that your email doesn't render outside of the desired window. Imagine Gmail with your CSS or email affecting the interface - they've limited the CSS you can use specifically to prevent this.
-
-
hashnode.com hashnode.com
-
But more so, external style cannot be applied to a subsection of a web page unless they force it into an iframe, which has all sorts of issues of it's own which is why external CSS is usually ignored. Inline CSS is often stripped by the tag strippers who don't want you turning things on or off... and media queries shouldn't even play into it since the layout should be controlled by the page it's being shown inside (for webmail) or the client itself, NOT your mail.
-
-
mjml.io mjml.io
-
Email is Hard: learn how MJML will help you.
Tags
Annotators
URL
-
-
litmus.com litmus.com
-
I'd say the author's updated version is canonical: https://hyp.is/2lzvXK4sEeu3s1Piywmzww/www.hteumeuleu.com/2016/using-flexbox-in-an-email/
-
-
css-tricks.com css-tricks.com
-
Please have a look at (in same order)
-
- Apr 2021
-
github.com github.com
-
There is a similar feature in the standard library Logger class, but the implementation here is safe to use with multiple processes writing to the same log file.
-
-
github.com github.com
-
I don't believe the sprockets and sprockets-rails maintainers (actually it's up to the Rails maintainers, see rails/rails#28430) currently consider it broken. (I am not a committer/maintainer on any of those projects). So there is no point in "waiting for someone else to fix" it; that is not going to happen (unless you can change their minds). You just need to figure out the right way to use sprockets 4 with rails as it is.
Tags
- whose responsibility is it?
- frustrating when maintainers stubbornly stick to opinions/principles/decisions and won't change despite popular user support
- waiting for someone else to fix it: that is not going to happen
- whether maintainer or contributor should/will implement something
- at the mercy of maintainer
Annotators
URL
-
-
stackoverflow.com stackoverflow.com
-
This is definitely not the place to report bugs related to sass, rails, or sprockets. Each project has it's own issue tracker (not on SO)
-
-
github.com github.com
-
can you remove the not a bug label considering that PaperTrail is creating this empty versions even when :updated_at is an ignored attribute?
-
-
stackoverflow.com stackoverflow.com
-
According to Google (not that they are the end all of browser knowledge)
-
-
www.kickstarter.com www.kickstarter.com
-
We are are continuing our commitment to creating our games that are free and widely accessible anyone that is curious by making our game files available under Creative Commons license BY–NC–SA 4.0. That means we will continue offering a full, free print-and-play kit for Pax Pamir, and later this campaign, John Company! Anyone can use, remix, and share the game, so long as they do not use it for commercial purposes.
-
-
linux.die.net linux.die.net
-
english.stackexchange.com english.stackexchange.com
-
It has two very different meanings, that you would have to distinguish by context. One meaning is just expressing that we have limitations. If you don't know something, that's just tough, you don't know it and you have to live with that. You don't have information if you don't have that information. The other meaning is that not only are there gaps in our knowledge, but often we don't even know what the gaps in our knowledge are. I don't know how to speak Finnish. That's a gap in my knowledge that I know about. I know that I don't know how to speak Finnish. But there are gaps in my knowledge that I'm not even aware of. That's where you can say "You don't know what you don't know" meaning that you don't even know what knowledge you are missing.
I had this thought too.
-
-
english.stackexchange.com english.stackexchange.com
-
What is the difference between “wry” and “dry” humor?
-
-
en.wikipedia.org en.wikipedia.org
-
The basic rule of thumb is: "I'm not aware of all types of security exploits. I must protect against those I do know of and then I must be proactive!".
-
-
docs.microsoft.com docs.microsoft.com
-
How is a pseudoconsole different from a pseudoterminal ?
I'm guessing that's just a Microsoftism to make it easier to search/find things that are specifically about Microsoft's flavor of pseudoterminal.
I see they don't use the word "pseudoterminal" at all, but they do mention
ConPTY, or the Windows PTY
where PTY is another synonym/name for pseudoterminal. So I think we're safe in saying that this is talking about a pseudoterminal.
-
-
en.wikipedia.org en.wikipedia.org
-
Operating systems implement a command-line interface in a shell for interactive access to operating system functions or services.
-
-
-
Of course you must not use plain-text passwords and place them directly into scripts. You even must not use telnet protocol at all. And avoid ftp, too. I needn’t say why you should use ssh, instead, need I? And you also must not plug your fingers into 220 voltage AC-output. Telnet was chosen for examples as less harmless alternative, because it’s getting rare in real life, but it can show all basic functions of expect-like tools, even abilities to send passwords. BUT, you can use “Expect and Co” to do other things, I just show the direction.
Tags
Annotators
URL
-
-
empty.sourceforge.net empty.sourceforge.net
-
In some cases empty can be the simplest replacement for TCL/expect or other similar programming tools because empty:
-
-
en.wikipedia.org en.wikipedia.org
-
In many computing contexts, "TTY" has become the name for any text terminal, such as an external console device, a user dialing into the system on a modem on a serial port device, a printing or graphical computer terminal on a computer's serial port or the RS-232 port on a USB-to-RS-232 converter attached to a computer's USB port, or even a terminal emulator application in the window system using a pseudoterminal device.
It's still confusing, but this at least helps/tries to clarify.
-
-
en.wikipedia.org en.wikipedia.org
-
TTY is right there in the name, but this article makes no attempt to clarify what exactly the relationship between a pseudoterminal and a TTY. I feel like a whole paragraph about the relation to TTY would be warranted, including a link to TTY article, of course, which does link [back] to and explain some of the relation to pseudoterminal:
In many computing contexts, "TTY" has become the name for any text terminal, such as an external console device, a user dialing into the system on a modem on a serial port device, a printing or graphical computer terminal on a computer's serial port or the RS-232 port on a USB-to-RS-232 converter attached to a computer's USB port, or even a terminal emulator application in the window system using a pseudoterminal device.
-
-
linusakesson.net linusakesson.net
-
Then who is responsible for the actual rendering?
-
-
unix.stackexchange.com unix.stackexchange.com
-
Although echo "$@" prints the arguments with spaces in between, that's due to echo: it prints its arguments with spaces as separators.
due to echo adding the spaces, not due to the spaces already being present
Tag: not so much:
whose responsibility is it? but more: what handles this / where does it come from? (how exactly should I word it?)
-
-
github.com github.com
-
-
COPYRIGHT Rsync was originally written by Andrew Tridgell and is currently maintained by Wayne Davison. It has been improved by many developers from around the world. Rsync may be used, modified and redistributed only under the terms of the GNU General Public License, found in the file COPYING in this distribution, or at the Free Software Foundation.
Only answered:
- who maintains
- what the license is
-
-
git.samba.org git.samba.org
-
Was trying to figure out where the canonical repo even is. Hard to figure out. Could be made clearer (like a prominent notice on one saying this is an unofficial clone with a link to the canonical source).
Ended up here via link from https://unix.stackexchange.com/questions/86879/suppress-rsync-warning-some-files-vanished-before-they-could-be-transferred to https://git.samba.org/?p=rsync.git;a=blob_plain;f=support/rsync-no-vanished;hb=HEAD
But then found https://github.com/WayneD/rsync, which I now believe to be canonical based on:
- last change here is Mon, 15 Mar 2021 09:35:39 -0700 (09:35 -0700) but on https://github.com/WayneD/rsync it was April 3.
- https://rsync.samba.org/bug-tracking.html links to: create an issue on GitHub
-
-
medium.com medium.com
-
Class Methods Are Singleton MethodsSince in Ruby classes are objects as well, class methods are merely methods defined on a specific instance of Class.
-
-
github.com github.com
-
Read the code! No, really. I wrote this code to be read.
-
-
store.steampowered.com store.steampowered.com
-
Not really sure who the audience is... the puzzles are a bit too difficult for kids but won't tax adults very much at all--some bare bones hidden object, match-3 and peg hopping.
-
-
www.smashingmagazine.com www.smashingmagazine.com
-
However, the reason for these problems isn’t the theory itself, but the way the theory is interpreted - by developers and browsers.
-
-
stackoverflow.com stackoverflow.com
-
An admonition is a parenthetical
-
-
www.kickstarter.com www.kickstarter.com
-
Academy Games has always prided itself in the quality of its rules. Most of our rules are taught in stages, allowing you to start playing as soon as possible without needing to read everything. We are very careful about the order we teach rules and rely heavily on graphics and pictures to facilitate understanding. We also include a large number of detailed picture examples, often with 3D renders, that help you understand the context of the rules.
-
-
github.com github.com
-
Wasn't sure if this belonged as an issue in Devise or Rails though.
-
-
guides.rubyonrails.org guides.rubyonrails.org
-
The hostname's first n segments, starting from the right (the TLD).
-
- Mar 2021
-
final-form.org final-form.org
-
Your validation functions should also treat undefined and '' as the same. This is not too difficult since both undefined and '' are falsy in javascript. So a "required" validation rule would just be error = value ? undefined : 'Required'.
-
-
www.bbc.com www.bbc.com
-
Both Prof Wu and Ms Truong cited the 1875 Page Act, one of the earliest pieces of federal law restricting immigration to the US. On paper, the legislation barred the entry of any woman from China, Japan "or any Oriental country" for "lewd and immoral purposes", including prostitution.In reality, the law blocked virtually all immigration from Asian women, who were collectively presumed to be sex workers or prostitutes.This racist and sexist stereotype that they "were bringing their immorality to the US", Ms Truong explains, has lingered.
le bruh moment.
-
-
bugs.ruby-lang.org bugs.ruby-lang.org
-
In fact, I'm only here because it seems like something one would 'expect' ruby already to do.
-
-
store.steampowered.com store.steampowered.com
-
dont belive the tags, it doesn't have any steam trading cards. waste of money and time.
-
-
www.jackfranklin.co.uk www.jackfranklin.co.uk
-
but I like that Svelte comes with a good CSS story out the box.
comes with a good CSS story out the box
-
-
www.martinfowler.com www.martinfowler.com
-
en.wikipedia.org en.wikipedia.org
-
It consists of two relations; the first one being exemplified in "An X is a Y" (simple hyponymy) while the second relation is "An X is a kind/type of Y". The second relation is said to be more discriminating and can be classified more specifically under the concept of taxonomy.
So I think what this saying, rather indirectly (from the other direction), if I'm understanding correctly, is that the relationships that can be inferred from looking at a taxonomy are ambiguous, because a taxonomy includes 2 kinds of relationships, but encodes them in the same way (conflates them together as if they were both hyponyms--er, well, this is saying that the are both kinds of hyponyms):
- "An X is a Y" (simple hyponymy)
- "An X is a kind/type of Y".
Actually, I may have read it wrong / misunderstood it... While it's not ruling out that simple hyponymy may sometimes be used in a taxonomy, it is be saying that the "second relation" is "more specifically under the concept of taxonomy" ... which is not really clear, but seems to mean that it is more appropriate / better for use as a criterion in a taxonomy.
Okay, so define "simple hyponymy" and name the other kind of hyponymy that is referenced here.
-
The hierarchical structure of semantic fields can be mostly seen in hyponymy.
Good explanation about semantic fields.
I assume the same or an even stronger statement can be made about semantic classes (which to me are like more clear-cut, distinct semantic fields), then? 
-
Tags
- semantics
- relationship
- good point
- semantic field
- language
- taxonomy
- ambiguous
- semantic class
- hierarchical
- hyponym
- I have a question about this
- please elaborate
- relationship: is a
- relationship: type of
- set theory
- lexical semantics
- good explanation
- is-a/hyponymy
- relationship: subset
Annotators
URL
-
-
www.aclweb.org www.aclweb.org
-
t is used to create tax-onomies of terms
-
Hypernymy, or the IS-A relation, is one of the most important lexical relations.
-
-
en.wikipedia.org en.wikipedia.org
-
Tree structure
-
-
en.wikipedia.org en.wikipedia.org
-
In fact categories can themselves be viewed as type theories of a certain kind
-
-
en.wikipedia.org en.wikipedia.org
-
Taxonomies are often represented as is-a hierarchies where each level is more specific (in mathematical language "a subset of") the level above it. For example, a basic biology taxonomy would have concepts such as mammal, which is a subset of animal, and dogs and cats, which are subsets of mammal. This kind of taxonomy is called an is-a model because the specific objects are considered as instances of a concept. For example, Fido is-an instance of the concept dog and Fluffy is-a cat.
-
In the simple biology example, dog is a hypernym and Fido is one of its hyponyms. A word can be both a hyponym and a hypernym. For example, dog is a hyponym of mammal and also a hypernym of Fido.
I wish they hadn't used tokens/objects in this example. Wouldn't it be just as clear or clearer if they had stuck to only comparing types/classes?
It may be okay to mix them like that in some contexts, but in other cases it seems like this would be suffering from ignoring/conflating/[better word?] the Type–token distinction.
Does linguistics just not make the https://en.wikipedia.org/wiki/Type%E2%80%93token_distinction ?
This statement seems to reinforce that idea:
words that are examples of categories are hyponyms
because an example of a category/class/type could be either a sub-class or an instance of that category/class/type, right?
-
-
en.wikipedia.org en.wikipedia.org
-
The is-a relationship may also be contrasted with the instance-of relationship between objects (instances) and types (classes): see Type–token distinction.
-
-
en.wikipedia.org en.wikipedia.org
-
Semantic class
-
-
stackoverflow.com stackoverflow.com
-
As to why both is_a? and kind_of? exist: I suppose it's part of Ruby's design philosophy. Python would say there should only be one way to do something; Ruby often has synonymous methods so you can use the one that sounds better. It's a matter of preference.
-
-
trailblazer.to trailblazer.to
-
definitely less rough to work with than Devise
-
With all this “monetization” happening around Trailblazer, we will also make sure that all free and paid parts of the project grow adult and maintan an LTS - or long-term support - status. Those are good news to all you users out there having been scared to use gems of this project, not knowing whether or not they’re being maintained, breaking code in the future or making your developers addicted to and then cutting off the supply chain. Trailblazer 2.1 onwards is LTS, and the last 1 ½ years of collaboration have proven that.
Tags
- long-term support (LTS)
- claim that this project is better than competition/alternative
- competition in open-source software
- pointing out gaps/downsides/cons in competition/alternatives
- maintenance status: knowing that it is maintained (peace of mind)
- stability (works well enough / has few enough bugs)
- stability
- gem: devise
- support: peace of mind for those that have it
- stability (API not changing)
- Tyrant (Ruby)
Annotators
URL
-
-
sandradodd.com sandradodd.com
-
It means "You're about to talk about words, but words don't matter."
-
-
gitlab.gnome.org gitlab.gnome.org
-
It sounds like a gnome-open (or the equivalent library call) bug. Reassigning.
-
I agree that it's bad to have to handle this at the application level
-
-
api.rubyonrails.org api.rubyonrails.org
-
Third configurable block to run.
I like how they identify in the description which order things run in: 1st, 2nd, 3rd, and last.
Though, it would be more readable to have a list of them, in chronological order, rather than having them listed in alphabetical order.
-
Last configurable block to run. Called after frameworks initialize.
-
-
medium.com medium.com
-
Very often in these monorepos, packages are so incredibly specific in functionality, the question then becomes why even have a separate package at all if it’s tightly coupled? Can you use these packages independently or are they tied to specific versions of other packages in the monorepo? It’ll probably be easier to remove the mask and just work as a monolith.
-
-
blog.izs.me blog.izs.me
-
In the real world, we are faced with the completely unfair constraint of being human while writing programs and while debugging them, and none of these costs can ever be reduced to zero.
-
It is about balancing the twin needs of writing good software, and writing any software at all.
-
-
tobeagile.com tobeagile.com
-
So the question becomes how many tests are enough?
-
I am a big advocate of having a complete test base and even erring on the side of caution when it comes to quality engineering and software validation but that is not what we’re talking about here. What we’re talking about here are the tests that we write when we’re doing test-first development and I’m proposing that writing those tests from the perspective of specifying the behaviors that we want to create is a highly valuable way of writing tests because it drives us to think at the right level of abstraction for creating behavioral tests and that allow us the freedom to refactor our code without breaking it.
-
-
news.ycombinator.com news.ycombinator.com
-
I suspect you aren't seeing much discussion because those who have a reasonable process in place, and do not consider this situation to be as bad as everyone would have you believe, tend not to comment on it as much.
-
-
en.wikipedia.org en.wikipedia.orgPyPy1
-
There used to be other backends in addition to C: Java, CSharp, and Javascript but those suffered from bitrot and have been removed.
-
-
en.wikipedia.org en.wikipedia.org
-
much software requires continuous changes to meet new requirements and correct bugs, and re-engineering software each time a change is made is rarely practical.
-
-
www.inuse.se www.inuse.se
-
Or perhaps there was no printed manual, only a link to a web page - that has since disappeared (because the provider went bust, or just changed their web content management system).
-
A product’s onceability is, to a certain extent, linked to its usefulness. If it is really useful, we will certainly go to considerable lengths to repair it.
-
-
www.sitepoint.com www.sitepoint.com
-
As to opinions about the shortcomings of the language itself, or the standard run-times, it’s important to realize that every developer has a different background, different experience, different needs, temperament, values, and a slew of other cultural motivations and concerns — individual opinions will always be largely personal and, to some degree, non-technical in nature.
Tags
- annotation meta: may need new tag
- software project created to address shortcomings in another project
- JavaScript
- software preferences are personal
- non-technical reasons
- good point
- runtime environment
- +0.9
- everyone has different preferences
- everyone has different background/culture/experience
- reaction / reacting to
- what is important/necessary for one person may not be for another
Annotators
URL
-
-
github.com github.comd3/d31
-
Microlibraries are easier to understand, develop and test. They make it easier for new people to get involved and contribute. They reduce the distinction between a “core module” and a “plugin”, and increase the pace of development in D3 features.
-
-
github.com github.com
-
I don't understand why this isn't being considered a bigger deal by maintainrs/the community. Don't most Rails developers use SCSS? It's included by default in a new Rails app. Along with sprockets 4. I am mystified how anyone is managing to debug CSS in Rails at all these days, that this issue is being ignored makes sprockets seem like abandonware to me, or makes me wonder if nobody else is using sprockets 4, or what!
-
Meh... as I said earlier, I think using Webpack is the recommended way now. Another issue is there is no way to generate source maps in production.
-
But maybe few are still using sprockets at all, for JS or (S)CSS anymore? Hard to say.
-
Is there a PR to... something? sassc-rails? That would make the patch not necessary? (I don't know if there's any good way to monkey-patch that in, I think you have to fork? So some change seems required...) Should the defaults be different somehow? This is very difficult to figure out.
-
I am not sure this whole ecosystem currently has much maintainers unfortunately. :( Pick your reaction
-
Is there a PR to... something? sassc-rails?
-
I agree about lack of maintenance. It's probably because people use more and more Webpack.
Tags
- hard to figure out where the problem lies / how to solve the problem / where to even begin
- switching/migrating to something different
- possible response/reaction to lack of maintainance / maintainer absence/silence
- unfortunate that this is no longer maintained
- why aren't the maintainers more concerned about / fixing this?
- why aren't people talking about/asking this?
- where (which project) do I even report this problem/bug? (whose responsibility is it?)
- official preferred convention / way to do something
- annotation meta: may need new tag
- is anyone even still using it anymore?
- sprockets
- switching/migrating from Sprockets to Webpack (Rails)
- webpack
- abandoning/migrating away from
- falling out of favor
- shift in preference
Annotators
URL
-
-
github.com github.com
-
What is the point of avoiding the semicolon in concat_javascript_sources
For how detailed and insightful his analysis was -- which didn't elaborate or even touch on his not understanding the reason for adding the semicolon -- it sure appeared like he knew what it was for. Otherwise, the whole issue would/should have been about how he didn't understand that, not on how to keep adding the semicolon but do so in a faster way!
Then again, this comment from 3 months afterwards, indicates he may not think they are even necessary: https://github.com/rails/sprockets/issues/388#issuecomment-252417741
Anyway, just in case he really didn't know, the comment shortly below partly answers the question:
Since the common problem with concatenating JavaScript files is the lack of semicolons, automatically adding one (that, like Sam said, will then be removed by the minifier if it's unnecessary) seems on the surface to be a perfectly fine speed optimization.
This also alludes to the problem: https://github.com/rails/sprockets/issues/388#issuecomment-257312994
But the explicit answer/explanation to this question still remains unspoken: because if you don't add them between concatenated files -- as I discovered just to day -- you will run into this error:
(intermediate value)(...) is not a function at something.source.js:1
, apparently because when it concatenated those 2 files together, it tried to evaluate it as:
({ // other.js })() (function() { // something.js })();
It makes sense that a ; is needed.
-
-
github.com github.com
-
If a company really wanted to invest, I would prefer they dedicated an employee for X hours a week for Y months than money.
-
Money could be good if it is spent to provide some of the above things. Money on it's own is hard because then it means I would have to spend time book-keeping and managing instead of programming.
-
I think that's fine, but I also don't particularly care about @mikeycgto's desire to not have the linking comment be present in the minified JS.
Tags
- doing what you love: leaving what's boring to you for others
- good point
- receiving money: is it worth the hassle/responsibility of bookkeeping?
- boring
- would prefer _ over _
- work: doing what you love
- bookkeeping
- unfun
- what is important/necessary for one person may not be for another
Annotators
URL
-
-
-
There's no release of sprockets 4 so there's nothing to revert. Master branch is a WIP. I would recommend using Sprockets 3.
-
-
stackoverflow.com stackoverflow.com
-
Usually when people are talking about code being semantically correct, they're referring to the code that accurately describes something.
-
Semantically correct usage of elements means that you use them for what they are meant to be used for.
-
It means that you're calling something what it actually is.
-
-
jangawolof.org jangawolof.orgPhrases4
-
Nee na ndëmm amul.
Il dit que la sorcellerie n'existe pas.
nee -- pr. circ. so, demonstratively distant. Cf. nale.
na -- 1. pr. circ. so, defined distant. How? 'Or' What. 2. function indicator. As.
ndëmm gi -- symbolic anthropophagia. 🧙
-
Fexeel ba kër gi bañ ñàkk alkol.
Veille à ce qu'il ne manque pas d'alcool à la maison.
fexe+el (fexe) v. -- search/seek by all means.
ba -- the (?).
kër gi -- house; family.
gi -- the (indicates nearness).
bañ v. -- refuse, resist, refuse to; to hate; verb marking the negation in subordinate clauses.
ñàkk v. / ñàkk bi -- vaccinate / vaccine (not sure exactly how this fits in the sentence if it's even the right translation -- perhaps it has to do with surgical alcohol rather than drinking alcohol).
alkol ji -- (French) surgical alcohol. (I'm certain this is also used for the type of alcohol you drink -- but sangara is probably the most used term).
-
Ci taatu guy googu la jigéeni Ajoor yi di jaaye sanqal.
C'est sous ce baobab que les femmes originaires du Kayor vendent de la semoule de mil.
ci -- close; at @, in, on, inside, to.
taat+u (taat) wi -- base, bottom, foundation, buttocks.
guy gi -- baobab. 🌴
googu -- that (closeness).
la -- (?).
jigéen+i (jigéen) bi ji -- sister versus brother; woman as opposed to man. 👩🏽
ajoor bi -- person from Kayor.
yi -- the (plural).
di -- be; mark of the imperfective affirmative not inactual.
jaay+e (jaay) v. -- sell.
sanqal si -- millet semolina. 🌾
-
Sëriñ boobu aj na daaw, doomam a ko wuutu léegi.
Ce marabout est décédé l'an dernier, c'est son fils qui le remplace maintenant.
sëriñ bi -- marabout.
boobu -- this.
aj (Arabic: Hajj) v. -- make the pilgrimage to Mecca. 🕋; deceased ☠️ (for a religious personality).
na -- he (?).
daaw n. -- last year. 🗓
doom+am (doom) ji -- child by descent 👶🏽; doll🪆; to have a child.
Tags
- kër
- alkol
- seek
- is
- shortage
- fexe
- hate
- vaccine
- under
- millet
- died
- no
- make
- ajoor
- who
- bi
- resist
- thing
- na
- as
- di
- that
- women
- year
- ci
- boobu
- wuutu
- witchcraft
- of
- jaaye
- there
- ndëmm
- daaw
- sëriñ
- la
- replaces
- nee
- it
- semolina
- aj
- the
- sell
- his
- sure
- now
- ko
- from
- sanqal
- taatu
- says
- ji
- him
- amul
- refuse
- surgical
- doomam
- at
- family
- vaccinate
- yi
- -el
- a
- ba
- search
- last
- bañ
- alcohol
- home
- googu
- this
- feexeel
- such
- baobab
- son
- marabout
- sangara
- jigéeni
- léegi
- he
- ñàkk
- house
- guy
- kayor
- gi
Annotators
URL
-
-
trailblazer.to trailblazer.to
-
In production, you will never trigger one specific callback or a particular validation, only. Your application will run all code required to create a Song object, for instance. In Trailblazer, this means running the Song::Create operation, and testing that very operation with all its side-effects.
-
There’s no need to test controllers, models, service objects, etc. in isolation
-
Run the complete unit with a certain input set, and test the side-effects. This differs to the Rails Way™ testing style, where smaller units of code, such as a specific validation or a callback, are tested in complete isolation. While that might look tempting and clean, it will create a test environment that is not identical to what happens in production.
Tags
- isolation (programming)
- the Trailblazer way
- testing: tests should resemble the way your software is used
- testing: avoid unnecessarily testing things in too much isolation, in a different way than the code is actually used (should match production)
- testing: test the side effects
- testing: avoid testing implementation details
- testing: philosohy of testing
- unnecessary
- rails: the Rails way
Annotators
URL
-
-
trailblazer.to trailblazer.to
-
Hey, that’s is an imaginary complication of our example - please don’t do this with every condition you have in your app.
-
-
Local file Local file
-
CHILD DEVELOPMENT PERSPECTIVES
The article is found in this scholarly journal.
-
- Feb 2021
-
steamcommunity.com steamcommunity.com
-
Do you have collaborators who could have generated keys and sold them on their own? DIG's Steam keys and other stores' Steam keys must have some source, after all. Keys don't generate themselves, and only your accounts should be able to request them.This particular game was in Bunch Keys Indie Wizardry Bundle. I assume you had a proper contract for that. Maybe DIG or an intermediary bought 50-200 copies of it?
-
It isn't stealing because you or an associate must have generated and given them the keys in some way or another?Ideally you would ask a DIG bundle buyer to show you their key for your game, so you can figure out what key request batch it came from, and then you can scratch your head and wonder who you gave those keys to and what journey they took afterwards.
-
-
www.reddit.com www.reddit.com
-
Anyway, sorry for the short novel. But that's the danger of pithy one-liners: assumed context for the poster can be entirely lost in translation.
-
-
trailblazer.to trailblazer.to
-
For branching out a separate path in an activity, use the Path() macro. It’s a convenient, simple way to declare alternative routes
Seems like this would be a very common need: once you switch to a custom failure track, you want it to stay on that track until the end!!!
The problem is that in a Railway, everything automatically has 2 outputs. But we really only need one (which is exactly what Path gives us). And you end up fighting the defaults when there are the automatic 2 outputs, because you have to remember to explicitly/verbosely redirect all of those outputs or they may end up going somewhere you don't want them to go.
The default behavior of everything going to the next defined step is not helpful for doing that, and in fact is quite frustrating because you don't want unrelated steps to accidentally end up on one of the tasks in your custom failure track.
And you can't use
fail
for custom-track steps becase that breaksmagnetic_to
for some reason.I was finding myself very in need of something like this, and was about to write my own DSL, but then I discovered this. I still think it needs a better DSL than this, but at least they provided a way to do this. Much needed.
For this example, I might write something like this:
step :decide_type, Output(Activity::Left, :credit_card) => Track(:with_credit_card) # Create the track, which would automatically create an implicit End with the same id. Track(:with_credit_card) do step :authorize step :charge end
I guess that's not much different than theirs. Main improvement is it avoids ugly need to specify end_id/end_task.
But that wouldn't actually be enough either in this example, because you would actually want to have a failure track there and a path doesn't have one ... so it sounds like Subprocess and a new self-contained ProcessCreditCard Railway would be the best solution for this particular example... Subprocess is the ultimate in flexibility and gives us all the flexibility we need)
But what if you had a path that you needed to direct to from 2 different tasks' outputs?
Example: I came up with this, but it takes a lot of effort to keep my custom path/track hidden/"isolated" and prevent other tasks from automatically/implicitly going into those steps:
class Example::ValidationErrorTrack < Trailblazer::Activity::Railway step :validate_model, Output(:failure) => Track(:validation_error) step :save, Output(:failure) => Track(:validation_error) # Can't use fail here or the magnetic_to won't work and Track(:validation_error) won't work step :log_validation_error, magnetic_to: :validation_error, Output(:success) => End(:validation_error), Output(:failure) => End(:validation_error) end
puts Trailblazer::Developer.render o Reloading... #<Start/:default> {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model> #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model> {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error> {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=save> #<Trailblazer::Activity::TaskBuilder::Task user_proc=save> {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error> {Trailblazer::Activity::Right} => #<End/:success> #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error> {Trailblazer::Activity::Left} => #<End/:validation_error> {Trailblazer::Activity::Right} => #<End/:validation_error> #<End/:success> #<End/:validation_error> #<End/:failure>
Now attempt to do it with Path... Does the Path() have an ID we can reference? Or maybe we just keep a reference to the object and use it directly in 2 different places?
class Example::ValidationErrorTrack::VPathHelper1 < Trailblazer::Activity::Railway validation_error_path = Path(end_id: "End.validation_error", end_task: End(:validation_error)) do step :log_validation_error end step :validate_model, Output(:failure) => validation_error_path step :save, Output(:failure) => validation_error_path end
o=Example::ValidationErrorTrack::VPathHelper1; puts Trailblazer::Developer.render o Reloading... #<Start/:default> {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model> #<Trailblazer::Activity::TaskBuilder::Task user_proc=validate_model> {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error> {Trailblazer::Activity::Right} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=save> #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error> {Trailblazer::Activity::Right} => #<End/:validation_error> #<Trailblazer::Activity::TaskBuilder::Task user_proc=save> {Trailblazer::Activity::Left} => #<Trailblazer::Activity::TaskBuilder::Task user_proc=log_validation_error> {Trailblazer::Activity::Right} => #<End/:success> #<End/:success> #<End/:validation_error> #<End/:failure>
It's just too bad that:
- there's not a Railway helper in case you want multiple outputs, though we could probably create one pretty easily using Path as our template
- we can't "inline" a separate Railway acitivity (Subprocess "nests" it rather than "inlines")
-
step :direct_debit
I don't think we would/should really want to make this the "success" (Right) path and :credit_card be the "failure" (Left) track.
Maybe it's okay to repurpose Left and Right for something other than failure/success ... but only if we can actually change the default semantic of those signals/outputs. Is that possible? Maybe there's a way to override or delete the default outputs?
Tags
- semantics
- I have a question about this
- tip
- helper functions
- example: in order to keep example concise/focused, may not implement all best practices (illustrates one thing only)
- verbose / noisy / too much boilerplate
- feels wrong
- trailblazer-activity
- powerful
- useful
- flexibility
- example: not how you would actually do it (does something wrong/bad/nonideal illustrating but we should overlook it because that's not the one thing the example is trying to illustrate/show us)
- concise
Annotators
URL
-
-
trailblazer.to trailblazer.to
-
The sole purpose to add Dev::Trace::Inspector module is to make custom inspection possible and efficient while tracing. For example, ActiveRecord::Relation#inspect makes additional queries to fetch top 10 records and generate the output everytime. To avoid this, Inspector will not call inspect method when it finds such objects (deeply nested anywhere). Instead, it’ll call AR::Relation#to_sql to get plain SQL query which doesn’t make additional queries and is better to understand in tracing output.
-
-
github.com github.com
-
Personally, I'm starting to think that the feature where it automatically adds xray.js to the document is more trouble than it's worth. I propose that we remove that automatic feature and just make it part of the install instructions that you need to add this line to your template/layout: <%= javascript_include_tag 'xray', nonce: true if Rails.env.development? %>
-
-
github.com github.com
-
Now that I've thought more about it, I honestly think the auto-adding the script feature is overrated, over-complicated, and error-prone (#98, #100), and I propose we just remove it (#110).
-
-
github.com github.com
-
now that I've thought more about it, I think the auto-adding the script feature is overrated, over-complicated, and error-prone (#100), and ought to just be removed (#110).
-
-
github.com github.com
-
now that I realize how easy it is to just manually include this in my app: <%= javascript_include_tag 'xray', nonce: true if Rails.env.development? %> I regret even wasting my time getting it to automatically look for and add a nonce to the auto-injected xray.js script
Tags
- wasted effort
- removing features to simplify implementation
- removing legacy/deprecated things
- removing feature that is more trouble than it's worth (not worth the effort to continue to maintain / fix bugs caused by keeping it)
- fix design/API mistakes as early as you can (since it will be more difficult to correct it and make a breaking change later)
- regret
Annotators
URL
-
-
github.com github.com
-
Here's the last issue where source maps were discussed before the beta release.
-
How do you know if source maps are working correctly? Try adding a syntax error to one of your assets and use the console to debug. Does it show the correct file and source location? Or does it reference the top level application.js file?
-
-
www.schneems.com www.schneems.com
-
As we know, naming is hard.
-
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.
-
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
- sad/unfortunate conclusion
- depends on use case / application
- the specific context is important
- why?
- anticipating what could go wrong / error/exception cases
- error/exception handling: spotting potential exceptions is hard
- need to solve specific case/problems individually (there is no general solution)
- error/exception handling
- easy to miss / not notice (attention)
- actually consider / think about how it _should_ (ideally) be
- difficult/hard problem
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
- _ is to _ (analogy)
- I have a question about this
- confusing
- misleading
- avoid duplication
- good point
- reusability
- 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)
- good analogy
- software development: code organization: where does this code belong?
- active_interaction
- why is it better?
- unclear
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
- investing time to really understand something
- rationale
- timing is part of state
- understand both sides of an issue
- understand the trade-offs
- justification for existence
- doing something without knowing why/how it works
- race condition
- eager vs. lazy initialization
- why?
- understand the ramifications/effects/consequences
- fallacy: doing something because it's popular / everyone is doing it
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.save
then it may silently fail to save - if you use
object.save
then 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
- making it easy to do the right thing
- annotation meta: may need new tag
- reform (Ruby)
- overlooking/missing something
- DSL
- rails: validation
- good point
- making it easy to do the wrong thing
- simplicity by design
- whose responsibility is it?
- have to remember
- missing the point
- I have a differing opinion
- order is important / do things in the right order
- state management
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
- no longer maintained
- using the right tool for the job
- ruby: desktop app framework
- programming languages
- determining if something is an appropriate application / best tool for the job
- programming languages: choosing the best language 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
- software development
- the activity of _
- what programmers are like
- hard to agree on
- good point
- becomes/gets easier with practice/experience
- quotable
- technical problems
- funny because it's unexpected
- naming: the importance of good names
- requires/demands creativity
- funny because it's true
- relentless
- contrast
- creative people
- why is it difficult/hard?
- naming
- considering your audience
- source code is meant to be read primarily by humans (human-readable more important)
- creative
- communication
- cache invalidation is hard
- incidental
- frequently encountered (common) problem
- well-written
- naming things is hard
- why is it important? / why does it matter?
- refactoring: rename
- creativity
- good analogy
- big change/rewrite vs. continuous improvements / smaller refactorings
- programming
- is just one part of _
- human-readable vs. machine-readable
- expectations
- _is_ (strong is-a/hyponymy/equivalence)
- hard to determine/recognize if it is better / an improvement or not
- surprising
- non-technical problems
- satisfying/rewarding
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?
-