- Apr 2021
-
www.kickstarter.com www.kickstarter.com
-
John Company offers players a new understanding of British history in the eighteenth and nineteenth century that reflects contemporary scholarship on the subject and extensive research into primary documents. John Company attempts to put the critical events of that time in their proper context and show how the imperial experience transformed the domestic culture of Britain. The East India Company lurked behind every building of a textile mill and every bit of wealth in a Jane Austen novel. John Company is an uncompromising portrait of the people who made the Company and the British Empire what it was. It is as frank as it is cutting in its satire. Accordingly, the game wrestles with many of the key themes of imperialism and globalization in the eighteenth and nineteenth centuries and how those developments were felt domestically. As such, this game might not be suitable for all players. Please make sure everyone in your group consents to this exploration before playing.
-
If you'd like to read more about the game's arguments, click here.
I'm not familiar with this term "arguments" used like this. Isn't this more referring to the motivation for this game?
-
-
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.
-
but in essence I expect OP means Rumsfeld's "unknown unknowns"
-
But there are also unknown unknowns – the ones we don't know we don't know.
-
We also know there are known unknowns; that is to say we know there are some things we do not know.
known unknown
like what?
-
Some risk management techniques urge practitioners to consider the "known unknowns" and the "unknown unknowns"
-
Incidentally, I'd add that it can also be used in looking toward the future, in awareness that we lack such a crystal ball: We base our plans on our knowledge, and there'll be times where we know there is a gap in that knowledge, but we're also aware that there may be things we can't possibly foresee, because "we don't know what we don't know".
-
Yet, in all these instances, life offers no crystal ball; there's no way of knowing what the future holds, or to be cognizant of something we are unaware of. This is the essence of "You don't know what you don't know," only it's being expressed in a comical way
-
Had I known the van was going to overheat, I would have driven the car instead.
-
If I had known you were going to get such bad grades on your report card, I wouldn't have let you go to the dance last weekend.
-
If I had known your plane was going to be two hours late, I wouldn't have rushed to the airport.
-
-
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!".
-
A good heuristic is to not trust the libraries you did not write either.
Tags
- proactive
- you don't know what you don't know
- error/exception handling: spotting potential exceptions is hard
- trust: how do you know you can trust them/it?
- trust/reliance/dependence on third party
- rule of thumb
- defensive programming
- security
- trust/reliance/dependence on open-source libraries
Annotators
URL
-
-
-
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.
-
At first you feel confused because usual pipe constructions such as: $ echo luser && echo TopSecret | telnet foo.bar.com fail you and the problem which seemed so plain on the face of it grows into “mission impossible”.
-
-
github.com github.com
-
Mentioned here:
but I can't find it on my system
-
-
stackoverflow.com stackoverflow.com
-
It seems inelegant to me to split this into two different modules, one to include, the other to extend.
the key thing (one of them) to understand here is that: class methods are singleton methods
-
include adds instance methods, extend adds class methods. This is how it works. I don't see inconsistency, only unmet expectations :)
-
-
reallifemag.com reallifemag.com
-
The privacy policy — unlocking the door to your profile information, geodata, camera, and in some cases emails — is so disturbing that it has set off alarms even in the tech world.
This Intercept article covers some of the specific privacy policy concerns Barron hints at here. The discussion of one of the core patents underlying the game, which is described as a “System and Method for Transporting Virtual Objects in a Parallel Reality Game" is particularly interesting. Essentially, this system generates revenue for the company (in this case Niantic and Google) through the gamified collection of data on the real world - that selfie you took with squirtle is starting to feel a little bit less innocent in retrospect...
-
Yelp, like Google, makes money by collecting consumer data and reselling it to advertisers.
This sentence reminded me of our "privacy checkup" activity from week 7 and has made me want to go and review the terms of service for some of the companies featured in this article- I don't use yelp, but Venmo and Lyft are definitely keeping track of some of my data.
-
-
github.com github.com
-
Machinist was written because I loved the idea behind Factory Girl, but I thought the philosophy wasn't quite right, and I hated the syntax.
-
-
store.steampowered.com store.steampowered.com
-
The game has been on sale for a year, but sales have been dismal.
-
-
www.kickstarter.com www.kickstarter.com
-
The good news: everyone had a genuine blast. We knew we had experimented our way into something fun, even if the rules and designs still needed a lot of work.
-
-
english.stackexchange.com english.stackexchange.com
-
I actually think this is Not Constructive, since there's no absolute rule about which pairings can be joined into a single word or hyhenated, and it's pointless having "votes" here about each specific case. Follow a style guide if you have one, or search Google Books and copy whatever the majority do. Or just make your own decision.
-
-
stackoverflow.com stackoverflow.com
-
Of course, there is no reason why you can't use <aside> for all sidenotes, if it makes your code simpler. Think of it as civil disobedience. :)
-
-
stackoverflow.com stackoverflow.com
-
however, if this is relevant to just one spec, you don't necessarily need to include devise helpers to all your controllers specs, you can just explicitly include those helpers in that one controller describe block: require 'spec_helper' describe MyCoolController include Devise::TestHelpers it { } end
-
-
github.com github.com
-
Yes, you are right. That was a very bad workaround. Stubbing methods on NilClass can be compared to switching to dark side of force. Powerful but comes with a huge price. I highly don't recommend using my workaround from 1 year ago.
-
- Mar 2021
-
blog.codinghorror.com blog.codinghorror.com
-
If you've ever talked about regular expressions with another programmer, you've invariably heard this 1997 chestnut: Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
-
-
bugs.ruby-lang.org bugs.ruby-lang.org
-
Would it be desirable to specify the new object in a block? That would make it somewhat symmetrical to how Hash.new takes a block as a default value.
-
-
www.jackfranklin.co.uk www.jackfranklin.co.uk
-
This isn't really a downside to React; one of React's strengths is that it lets you control so much and slot React into your environment
-
Svelte is different in that by default most of your code is only going to run once; a console.log('foo') line in a component will only run when that component is first rendered.
Tags
- allowing developer/user to pick and choose which pieces to use (allowing use with competing libraries; not being too opinionated; not forcing recommended way on you)
- opinion
- important point
- opinionated
- flexibility to use the tool that you prefer
- difference
- reasonable defaults
- turning things around / doing it differently
- unfortunate defaults
- Svelte vs. React
- trying to doing things the same way you did in a different library/framework (learning new way of thinking about something / overcoming habits/patterns/paradigms you are accustomed to)
Annotators
URL
-
-
trailblazer.to trailblazer.to
-
Currently, I’m working on designing the interfaces and it’s real fun!
-
-
trailblazer.to trailblazer.to
-
This could be an operation, a workflow, or hand-baked Ruby code completely unrelated to Trailblazer.
-
-
www.kickstarter.com www.kickstarter.com
-
click the images below
why not make this a link too?
-
-
github.com github.com
-
Or if you need to change the way the string is assembled, you can provide a proc, for example: if defined?(BetterErrors) BetterErrors.editor = proc { |file, line| "vscode://file/%{file}:%{line}" % { file: URI.encode_www_form_component(file), line: line } } end
-
-
store.steampowered.com store.steampowered.com
-
This games a scam. Reviews are fake.
-
-
www.chevtek.io www.chevtek.io
-
he goes on to talk about third party problems and how you're never guaranteed something is written correctly or that even if it is you don't know if it's the most optimal solution
-
Small modules are extremely versatile and easy to compose together in an app with any number of other modules that suit your needs.
-
Second, I don't agree that there are too many small modules. In fact, I wish every common function existed as its own module. Even the maintainers of utility libraries like Underscore and Lodash have realized the benefits of modularity and allowed you to install individual utilities from their library as separate modules. From where I sit that seems like a smart move. Why should I import the entirety of Underscore just to use one function? Instead I'd rather see more "function suites" where a bunch of utilities are all published separately but under a namespace or some kind of common name prefix to make them easier to find. The way Underscore and Lodash have approached this issue is perfect. It gives consumers of their packages options and flexibility while still letting people like Dave import the whole entire library if that's what they really want to do.
Tags
- micropackages
- small units/components/modules/libraries/packages/projects
- dependencies: trusting open-source dependencies: review the source code/diff before installing/updating
- allowing developer/user to pick and choose which pieces to use (allowing use with competing libraries; not being too opinionated; not forcing recommended way on you)
- trust/reliance/dependence on third party
- allowing developer/user to pick and choose which pieces to use (a la carte, not all or nothing)
- flexibility to use the tool that you prefer
- modularity
- composability
- how can you know?
- vetting a dependency/library/framework
- composition
- granularity of control
- all or nothing (granularity of control)
- trust/reliance/dependence on open-source libraries
Annotators
URL
-
-
github.com github.com
-
Normally you should not register a named module, but instead register as an anonymous module: define(function () {}); This allows users of your code to rename your library to a name suitable for their project layout. It also allows them to map your module to a dependency name that is used by other libraries.
-
-
github.com github.com
-
I don't even know how to tell if they're working 100%, I'm getting mixed signals ..
-
Should it only contain link* calls?
-
When should I use link, vs dir, vs. tree?
-
but I still have no idea if I'm writing this new file correctly.
-
-
github.com github.com
-
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.
-
Triaging issues, reproducing bugs, fixing reported bugs are all helpful.
-
-
www.codetriage.com www.codetriage.com
-
Better yet, send them a link to this page to help them understand why and how to make an example app:
-
If you want the issue fixed as fast as possible, then you should try to help the maintainers as much as possible. Make an example app! Even if it takes extra time for you, it will ultimately lead to your issues getting fixed faster.
-
-
store.steampowered.com store.steampowered.com
-
If you plan on using a gamepad with big picture mode I made a config that works perfectly so check it out.
-
-
tylergaw.com tylergaw.com
-
My collection (this isn’t all of it) grows at a comical pace.
-
This is a non-exhaustive list of other things I love;
-
Designing and writing code get me money so I can have food so they get a lot of my attention.
-
-
-
The HTML5 form validation techniques in this post only work on the front end. Someone could turn off JavaScript and still submit jank data to a form with the tightest JS form validation.To be clear, you should still do validation on the server.
-
-
www.html5rocks.com www.html5rocks.com
-
Therefore client side validation should always be treated as a progressive enhancement to the user experience; all forms should be usable even if client side validation is not present.
-
It's important to remember that even with these new APIs client side validation does not remove the need for server side validation. Malicious users can easily workaround any client side constraints, and, HTTP requests don't have to originate from a browser.
-
Since you have to have server side validation anyways, if you simply have your server side code return reasonable error messages and display them to the end user you have a built in fallback for browsers that don't support any form of client side validation.
-
-
jangawolof.org jangawolof.orgPhrases1
-
Noo mën a def dinga fey alamaan bi.
Quoi que tu fasses, tu paieras l'amende.
noo -- you (?)
mën v. -- power ; be stronger than 💪🏽; can, will.
a -- (?).
def v. -- do, commit, execute; to put.
dinga -- you will.
fey v. -- turn off, switch off 📴, appease; pay 💵.
alamaan bi -- (French: l'amende) fine.
bi -- the.
-
-
github.com github.com
-
It can also be included as individual modules, i.e. Hashie::Extensions::MethodReader, Hashie::Extensions::MethodWriter and Hashie::Extensions::MethodQuery.
-
-
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.
-
- Feb 2021
-
github.com github.com
-
URI::MailTo::EMAIL_REGEXP
First time I've seen someone create a validator by simply matching against
URI::MailTo::EMAIL_REGEXP
from std lib. More often you see people copying and pasting some really long regex that they don't understand and is probably not loose enough. It's much better, though, to simply reuse a standard one from a library — by reference, rather than copying and pasting!!
-
-
github.com github.com
-
Since we're not passing any inputs to ListAccounts, it makes sense to use .run! instead of .run. If it failed, that would mean we probably messed up writing the interaction.
-
ActiveModel provides a powerful framework for defining callbacks. ActiveInteraction hooks into that framework to allow hooking into various parts of an interaction's lifecycle.
-
-
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?
-
While you could nest an activity into another manually, the Subprocess macro will come in handy.
-
The macro automatically wires all of Validate’s ends to the known counter-part tracks.
Tags
- concise
- useful
- example: in order to keep example concise/focused, may not implement all best practices (illustrates one thing only)
- leverage library/tool to do something for you
- tip
- 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)
- feels wrong
- trailblazer-activity
- flexibility
- semantics
- powerful
- helper functions
- good abstraction
- I have a question about this
- verbose / noisy / too much boilerplate
- automatic
- macro
Annotators
URL
-
-
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 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)
- removing legacy/deprecated things
- regret
Annotators
URL
-
-
github.com github.com
-
As a workaround, I guess I'll have to disable my strict CSP in development, but I'd prefer to keep it strict in development as well so that I ran into any CSP issues sooner...
-
-
github.com github.com
-
Here's the last issue where source maps were discussed before the beta release.
-
-
www.schneems.com www.schneems.com
-
Have you ever felt like a framework was getting in the way instead of helping you go faster? Maybe you’re stuck on some simple task that would be easy to do manually, but your framework is making you jump through configuration hoops. I end up getting lost in a sea of documentation (or no documentation), and the search for that one magical config key takes just a tad bit too long. It’s a productivity sink, and worse than the time delay it adds to my frustration throughout the day.
-
-
en.wikipedia.org en.wikipedia.org
-
found that using only the Pascal-provided control structures, the correct solution was given by only 20% of the subjects, while no subject wrote incorrect code for this problem if allowed to write a return from the middle of a loop.
-
That such minimalism is possible does not mean that it is necessarily desirable
-
-
dry-rb.org dry-rb.org
-
Another solution is using the Safe Navigation Operator &. introduced in Ruby 2.3 which is a bit better because this is a language feature rather than an opinionated runtime environment pollution
-
-
trailblazer.to trailblazer.to
-
provide interfaces so you don’t have to think about them
Question to myself: Is not having to think about it actually a good goal to have? Is it at odds with making intentional/well-considered decisions?  Obviously there are still many of interesting decisions to make even when using a framework that provides conventions and standardization and makes some decisions for you...
-
You’re allowed to blame us for a terrible developer experience in Trailblazer 2.0. It’s been quite painful to find out which step caused an exception. However, don’t look back in anger! We’ve spent a lot of time on working out a beautiful way for both tracing and debugging Trailblazer activities in 2.1.
Tags
- software design patterns
- developer experience
- debugging tools
- admit when you failed (failures)
- intentional/well-considered decisions
- framework
- standardization
- so you don’t have to think about it
- newer/better ways of doing things
- I have a question about this
- interfaces (programming)
Annotators
URL
-
-
trailblazer.to trailblazer.to
-
Feel free to pick and choose what you need for your applications.
-
-
-
In the short term you may have the stamina to get up earlier, stay later, and out-work the demands you face. But the inverse equation of shrinking resources and increasing demands will eventually catch up to you, and at that point how you involve others sets the ceiling of your leadership impact.
-
-
trailblazer.to trailblazer.to
-
Around 2 years ago I decided to end the experiment of “TRB PRO” as I felt I didn’t provide enough value to paying users. In the end, we had around 150 companies and individuals signed up, which was epic and a great funding source for more development.
-
The new 2.1 version comes with a few necessary but reasonable changes in method signatures. As painful as that might sound to your Rails-spoiled ears, we preferred to fix design mistakes now before dragging them on forever.
-
The new call API is much more consistent and takes away another thing we kept explaining to new users - an indicator for a flawed API.
Tags
- learn from your mistakes
- admit when you failed (failures)
- experimental
- transparency
- if it's incorrect; fix it
- do it right/well the first time because it may be too hard to clean up/fix later if you don't
- fix design/API mistakes as early as you can (since it will be more difficult to correct it and make a breaking change later)
- pointing out gaps/downsides/cons in competition/alternatives
- better late than never
- discontinued products/services
- freemium model
Annotators
URL
-
-
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.
-
-
github.com github.com
-
The bare bones operation without any Trailblazery is implemented in the trailblazer-operation gem and can be used without our stack.
-
While Trailblazer offers you abstraction layers for all aspects of Ruby On Rails, it does not missionize you. Wherever you want, you may fall back to the "Rails Way" with fat models, monolithic controllers, global helpers, etc. This is not a bad thing, but allows you to step-wise introduce Trailblazer's encapsulation in your app without having to rewrite it.
-
Only use what you like.
-
you can pick which layers you want. Trailblazer doesn't impose technical implementations
Tags
- allowing developer/user to pick and choose which pieces to use (allowing use with competing libraries; not being too opinionated; not forcing recommended way on you)
- freedom of user to override specific decision of an authority/vendor (software)
- rails: the Rails way
- abstractions
- leaving the details of implementation/integration up to you
- Trailblazer
- making changes / switching/migrating gradually/incrementally/step-wise/iteratively
- focus on concepts/design/structure instead of specific/concrete technology/implementation
- newer/better ways of doing things
- trailblazer-operation
- focus on what it should do, not on how it should do it (implementation details; software design)
Annotators
URL
-
-
web.hypothes.is web.hypothes.is
-
In order to support easy reuse, revision, remixing, and redistribution, the entire Hypothesis Help knowledge base by Hypothesis is dedicated to the public domain via CC CC0 1.0. While we appreciate attribution and links back to Hypothesis from anywhere these works are published, they are not required.
-
-
github.com github.com
-
ActiveModel::Form happened because the "tableless model" presented in RailsCast 219 wasn't as powerful as the "real deal" from RailsCast 193.
-
-
railscasts.com railscasts.com
-
Teaching is my passion
-
-
github.com github.com
-
Read about the motivation to understand why this separation of concerns is important.
-
-
www.infoworld.com www.infoworld.com
-
Some people believed I argued that object orientation is bad simply because extends has problems, as if the two concepts are equivalent. That's certainly not what I thought I said, so let me clarify some meta-issues.
first sighting: meta-issue 
-
The Java packages contain a lot of great code. But there are also parts of that code I'm sure the authors are embarrassed to admit they wrote.
-
This article explains why you shouldn't use getters and setters (and when you can use them) and suggests a design methodology that will help you break out of the getter/setter mentality.
-
-
davefleet.com davefleet.com
-
If you think you’ve conveyed something but the other person hears something completely different, is that their fault or yours?
-
From my perspective the onus is on you to consider not just the words coming out of your mouth, but how they are received.
-
Everyone has their own background and context that they overlay on top of what they hear. It’s our jobs as communicators to consider that perspective and to adjust the way we communicate accordingly. If we do, we stand a better chance of persuading them to agree with our point of view.
-
-
-
www.velaction.com www.velaction.com
-
People often hear what they think should be said, not the words that are actually spoken. This comes from the tendency of people to think faster than they talk. A listener makes assumptions about what they expect because their minds race ahead. This can be especially problematic when you misinterpret what your boss said.
-
-
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.
-
-
github.com github.com
-
Bowline will bind up Ruby and HTML - letting you concentrate on the more interesting things
-
-
-
I apologize for the slow development of Reform after the "explosion" when I released it initially. The reason for this is I changed jobs and didn't use Reform (yet).
-
-
cherrycreekschools.instructure.com cherrycreekschools.instructure.com
-
I did not know that 1.2 million black men served in the army during ww2.
-
I never realized that German army's had a separate army for African Americans and White Americans.
-
-
hilton.org.uk hilton.org.uk
-
Scalability is the problem you want to have, and sooner rather than later, but maintainability is the problem you’re definitely going to have, sooner or later.
-
-
stackoverflow.com stackoverflow.com
-
I have checked the following close stackoverflow sources : Relation passed to #or must be structurally compatible. Incompatible values: [:references]
referencing similar questions so it won't be marked as duplicate
-
-
stackoverflow.com stackoverflow.com
-
that's a point, but I would say the opposite, when entering credit card data I would rathre prefer to be entirely in the Verified By Visa (Paypal) webpage (with the url easily visible in the address bar) rather that entring my credit card data in an iframe of someone's website.
-
-
stackoverflow.com stackoverflow.com
-
If you teach your users to trust that URL bar is supposed to not change when they click links (e.g. your site uses a big iframe with all the actual content), then the users will not notice anything in the future either in case of actual security vulnerability.
-
-
medium.com medium.com
-
The point is, just because you don’t see it, doesn’t mean it’s not happening. It’s been more than two years and as far as I know, no one has ever noticed one of my requests. Maybe it’s been in your site this whole time
-
- Jan 2021
-
-
This is open-source. You can always fork and maintain that fork yourself if you feel that's warranted. That's how this project started in the first place, so I know the feeling.
-
-
css-tricks.com css-tricks.com
-
Bordering an element with a single repeating image is something that seems like it should be easy with a property called border-image, but the process for actually doing that is somewhat counter-intuitive. Let’s say, for example, that you want to border an element with a repeating heart icon. You can’t do that with a image of a single heart. Instead, you have to make an image of a “frame” of hearts arranged as you’d like them to appear in the border, then slice that image. <img sizes="(min-width: 735px) 864px, 96vw" src='https://i2.wp.com/css-tricks.com/wp-content/uploads/2013/01/enlarged-border-image-slice.png' alt='' data-recalc-dims="1" />Eight hearts in a “frame” image, enlarged to show detail. The red lines indicate slices. If you think that sounds preposterous, you’re in good company. There was a lengthy discussion of the subject on Eric Myer’s blog a few years ago where many frontend development greats weighed in.
-
-
stackoverflow.com stackoverflow.com
-
Great, I can use vw to scale text so it doesn't look puny on a desktop! Perfect... Oh. Huh, now the text is too small to read when viewed on a phone. Okay, well I can just use "max(x,y)" to make sure it doesn't get shrunk beyond a minimum size. Perfect... Oh. Hmm. Looks like "max" isn't supported properly by Chrome. Okay, well guess I'll just use "px" again.
-
-
askubuntu.com askubuntu.com
-
I'm very (VERY!) tempted to use that ppa, but without offense to it's maintainers... it's just some random ppa. If it had more "traction" I'd use it. Right now it has only 3 maintainers.
-
-
forums.theregister.com forums.theregister.com
-
What's wrong here is Canonical trying to position itself as a powerhouse and ascertain control over Linux users.
-
Canonical are really taking whole chapters out of the Microsoft 'How To' book. Do it our way or not at all.
-
-
github.com github.com
-
You should default to the most permissive option imo and there really is no reason to check anything until you really need to If it were left to me I'd just use optional chaining, as it also eliminates the need for no-ops
(lazy checking)
-
-
en.wikipedia.org en.wikipedia.org
-
In other words, programs that send messages to other machines (or to other programs on the same machine) should conform completely to the specifications, but programs that receive messages should accept non-conformant input as long as the meaning is clear.
-
be conservative in what you do, be liberal in what you accept from others
-
-
magpierss.sourceforge.net magpierss.sourceforge.net
-
Why? I wrote MagpieRSS out of a frustration with the limitations of existing solutions. In particular many of the existing PHP solutions seemed to: use a parser based on regular expressions, making for an inherently fragile solution only support early versions of RSS discard all the interesting information besides item title, description, and link. not build proper separation between parsing the RSS and displaying it.
-
-
discourse.ubuntu.com discourse.ubuntu.com
-
Progress is made of compromises, this implies that we have to consider not only disadvantages, but also the advantages. Advantages do very clearly outweigh disadvantages. This doesn’t mean it perfect, or that work shouldn’t continue to minimize and reduce the disadvantages, but just considering disadvantages is not the correct way.
-
I’m not a dev either, so no Ubuntu fork, but I will perhaps be forced to look at Debian testing, without some advantages of Ubuntu - but now that Unity is gone (and I deeply regret it), gap would not be so huge anymore…
-
If folks want to get together and create a snap-free remix, you are welcome to do so. Ubuntu thrives on such contribution and leadership by community members. Do be aware that you will be retreading territory that Ubuntu developers trod in 2010-14, and that you will encounter some of the same issues that led them to embrace snap-based solutions. Perhaps your solutions will be different. .debs are not perfect, snaps are not perfect. Each have advantages and disadvantages. Ubuntu tries to use the strengths of both.
Tags
- do pros outweigh/cover cons?
- moving/changing in a different direction than users want
- the needs of the many outweigh the needs of the few
- disadvantages/drawbacks/cons
- improving one's process
- non-devs have more limited options
- compromise
- progress
- trade-offs
- forking: you can always fork it if you want
- focus on ways/what you can improve
- progress requires compromises
- advantages/merits/pros
- Snap
- constant evolution/improvement of software/practices/solutions
- good point
Annotators
URL
-
-
askubuntu.com askubuntu.com
-
How do you know this? I've looked all over the internet and can't find any proof that Lightdm is more "lightweight" (whatever this means) or faster.
-
-
css-tricks.com css-tricks.com
-
If there’s a lot more to aligning icons to text than you expected, then you are not alone.
-
- Dec 2020
-
www.whatech.com www.whatech.com
-
Find Your Passion, Then Monetize It The
-
Try a little of everything, and then choose a specialization. Money is not the most important thing. You need to LOVE your activity! But you don't know what you like until you try it.
-
-
developer.mozilla.org developer.mozilla.org
-
If you'd prefer, you can use a third-party library like Modernizr or Detect It to do this test for you.
-
-
hacks.mozilla.org hacks.mozilla.org
-
Better contribution workflow: We will be using GitHub’s contribution tools and features, essentially moving MDN from a Wiki model to a pull request (PR) model. This is so much better for contribution, allowing for intelligent linting, mass edits, and inclusion of MDN docs in whatever workflows you want to add it to (you can edit MDN source files directly in your favorite code editor).
-
- Nov 2020
-
stackoverflow.com stackoverflow.com
-
It would help greatly if you provided references for "articles online about what universal javascript is". But I think this is just too dependent on opinion.
-
-
github.com github.com
-
All projects here are completely frozen, though feel free to fork and continue using them on your own.
-
-
uxdesign.cc uxdesign.cc
-
Secondary buttons are the alternative we give users to the primary action.
-
-
hackernoon.com hackernoon.com
-
Many linguists believe that the natural language a person speaks affects how they think. Does the same concept apply to computer languages?
-
-
developer.mozilla.org developer.mozilla.org
-
The use of __proto__ is controversial and discouraged. It was never originally included in the ECMAScript language spec, but modern browsers implemented it anyway. Only recently was the __proto__ property standardized by the ECMAScript 2015 specification for compatibility with web browsers, so it will be supported into the future.
-
-
alligator.io alligator.io
-
We won’t go into all the details that make an application a PWA, because it all sort of depends on who you ask.
Tags
Annotators
URL
-
-
github.com github.com
-
We are working to develop better communication within TC39 and with the broader JavaScript community so that this sort of problem can be corrected sooner in the future.
-
-
github.com github.com
-
This is Sass based, and therefore doesn't require Svelte components
Just because we could make Svelte wrapper components for each Material typography [thing], doesn't mean we should.
Compare:
material-ui [react] did make wrapper components for typography.
- But why did they? Is there a technical reason why they couldn't just do what svelte-material-ui did (as in, something technical that Svelte empowers/allows?), or did they just not consider it?
svelte-material-ui did not.
- And they were probably wise to not do so. Just reuse the existing work from the Material team so that there's less work for you to keep in sync and less chance of divergence.
-
-
tunnelgram.com tunnelgram.com
-
I've worked at Facebook and Google, and I know who can see the messages you send over their platforms. It's scary.
-
-
github.com github.com
-
There are a few intentional behavioral differences between Dart Sass and Ruby Sass. These are generally places where Ruby Sass has an undesired behavior, and it's substantially easier to implement the correct behavior than it would be to implement compatible behavior. These should all have tracking bugs against Ruby Sass to update the reference behavior.
Tags
- learn from your mistakes
- don't let previous decisions/work constrain you
- get back on course
- intentional/well-considered decisions
- reference implementation
- reverting a previous decision/change/commit
- intentionally doing it differently / _not_ emulating/copying the way someone else did it
- intentional
- reversible decisions
Annotators
URL
-
-
github.com github.com
-
Obviously we shouldn't rush into anything. But changes like these are best made earlier on in a project's lifecycle, so I'm eager to hear what people think so that we can start making some progress.
-
-
-
However, that really doesn't mean we should expose everything else in JSON too...
-
- Oct 2020
-
www.scispike.com www.scispike.com
-
I came up with this solution by piecing together man pages and random google result. I was surprised at how many incomplete and inaccurate answers were out there. What may have been more surprising was the complete lack of a full intact solution.
-
-
github.com github.com
-
It took a lot of searching around to find that variable.
-
-
-
Don’t fetch stuff unless you actually need it Judging from the response to our 503 errors, much of the software requesting DTDs and schemata from our site doesn’t even need them in the first place, so requesting them just wastes bandwidth and slows down the application. If you don’t need it, don’t fetch it!
-
-
ponyfoo.com ponyfoo.comPony Foo1
-
There are other features you *could* actually polyfill, such as Array.of, Number.isNaN or Object.assign, because those don’t introduce syntax changes to the language – except that you shouldn’t.
-
-
humanwhocodes.com humanwhocodes.com
-
github.com github.com
-
Polyfills are naughty as they patch native APIs, while ponyfills are pure and don't affect the environment.
-
How are ponyfills better than polyfills? A polyfill is code that adds missing functionality by monkey patching an API. Unfortunately, it usually globally patches built-ins, which affects all code running in the environment. This is especially problematic when a polyfill is not fully spec compliant (which in some cases is impossible), as it could cause very hard to debug bugs and inconsistencies. Or when the spec for a new feature changes and your code depends on behavior that a module somewhere else in the dependency tree polyfills differently. In general, you should not modify API's you don't own.
-
-
github.com github.com
-
if you think this project can help you or anyone else, you may star it on GitHub
-
-
github.com github.com
-
However, in function components there really isn't much need for this pattern since you can just use JS default arguments
-
-
dylanvann.com dylanvann.com
-
Svelte should make something like useEffect part of the framework so that this could work better and be less verbose.
-
-
github.com github.com
-
Svelte doesn't re-render, so you need to respond to component mount/dismount and prop changes separately as they are distinct concepts and never tied together, unlike in React.
Tags
- UI library: reacting to prop changes
- lifecycle callbacks
- distinction
- different way of thinking about something
- trying to doing things the same way you did in a different library/framework (learning new way of thinking about something / overcoming habits/patterns/paradigms you are accustomed to)
Annotators
URL
-
-
medium.com medium.com
-
Sometimes, you may be tempted to write that wrapper. Because all your (React or Vue or insert your reactive framework here) instincts tell you so.Resist the temptation. There is a better way. A svelter way. Introducing: the use-directive (a.k.a. “actions”).
-
However, especially when starting out, it’s very easy to fall into the “this is how I did things in my previous framework” trap.
Tags
- overcoming preconceived opinions
- different way of thinking about something
- Svelte
- getting a fresh perspective
- paradigm shift
- trying to doing things the same way you did in a different library/framework (learning new way of thinking about something / overcoming habits/patterns/paradigms you are accustomed to)
- Svelte: action (use:)
Annotators
URL
-
-
-
I started Solid years ago before I thought anyone would be interested in using it. I only started promoting it because it had already achieved the goals I had set out for it.
-
- Sep 2020
-
github.com github.com
-
Since this issue seems to pop up periodically, it would be useful to turn this into a warning. It may not be elegant, but it prevents surprise blank screens due to a navigation error.
Not an actual fix.
-
-
stackoverflow.com stackoverflow.com
-
It is showed as an error, but it is a warning as it doesn't break anything. I hate having warning/error in my console not coming from me. It is not justified as it's not bad practice imho
-
-
final-form.org final-form.org
-
You probably want initialValue! ⚠️ The value of the field upon creation. This value is only needed if you want your field be dirty upon creation (i.e. for its value to be different from its initial value).
-
-
medium.com medium.com
-
The benefit of this approach is that rather than having these defaults and fighting against them, it’s fully up to you to decide how to handle everything.
-
Instead, rather than trying to implement what it thinks is the best way to bundle different type of assets, it leaves that entirely up to the developer to decide.
-
-
www.wired.com www.wired.com
-
Basically, the idea is that a train tried to start with the caboose brakes stuck on. After releasing the caboose, the train still could not start. The problem was that when the train attempted to start with the caboose brake on, it stretched all the inter-car couplings so that the whole train was just like one big car. At this point, the friction from the engine train wheels was not enough to get the whole thing going. Instead, you need to just get one car moving at a time - this is why there is space between the couplings.
-
-
github.com github.com
-
new style RFC
-
-
github.com github.com
-
They don't need to add a prop for every action. The action itself can be passed in as a prop. <script> export let action; </script> <div use:action>whatever</div> The argument for the action can be another prop or can be part of the same prop.
-
-
github.com github.com
-
Lets not extend the framework with yet another syntax
-
-
-
And to illustrate another way actions are helpful, take your above example and put the button into a {{#each}}. It gets more complicated.
-
I'm just pushing on the "is this really a good idea" front
-
Another problem I ran into was knowing when an element is removed. I had to add a MutationObserver on the current tooltip target so if it gets removed by Svelte while the tooltip is visible (e.g. if a click moves to another route) the tooltip isn't left hanging around on the screen. No mouseleave/mouseout events are dispatched on elements that are removed.
First sighting: MutationObserver
-
-
github.com github.com
-
The feature is highly likely to be implemented, the API and implementation are the only real topics of discussion right now.
-
-
jsrocks.org jsrocks.orgJS Rocks1
-
6to5 attempted to ship a quick and dirty TDZ static checking feature but had to retract it immediately afterwards due to various bugs in the algorithm.
-
-
css-tricks.com css-tricks.com
-
docs.google.com docs.google.com
-
I’ve seen some version of this conversation happen more times than I can remember. And someone will always say ‘it’s because you’re too used to thinking in the old way, you just need to start thinking in hooks’.
But after seeing a lot of really bad hooks code, I’m starting to think it’s not that simple — that there’s something deeper going on.
-
-
www.americanyawp.com www.americanyawp.com
-
I think this is such a fantastic viewpoint. Sometimes in order to reach our overall goal, we have to "cast down our bucket" in compromise or be the first to extend the olive branch. I like that he used this same analogy for the white southerners as well. We all have to compromise to some degree to reach progress.
-
-
tailwindcss.com tailwindcss.com
-
Now I know what you're thinking, "this is an atrocity, what a horrible mess!" and you're right, it's kind of ugly. In fact it's just about impossible to think this is a good idea the first time you see it — you have to actually try it.
-
- Jul 2020
-
stackoverflow.com stackoverflow.com
-
Ultimately though, I'd say the file structure that makes the most sense for your i18n workflow is the best one.
-
-
svelte.dev svelte.dev
-
You must opt in to continue. If you're not paying, you're the product.
-
-
bugs.ruby-lang.org bugs.ruby-lang.org
-
So, which is better? t.inspect # => "2007-11-01 15:25:00 8483885939586761/68719476736000000 UTC" t.inspect # => "2007-11-01 15:25:00.123456789000000004307366907596588134765625 UTC"
-
-
github.com github.com
-
But I love it, and so I plan to keep it alive.
-
- Jun 2020
-
edgeguides.rubyonrails.org edgeguides.rubyonrails.org
-
If you've found a problem in Ruby on Rails which is not a security risk, do a search on GitHub under Issues in case it has already been reported. If you are unable to find any open GitHub issues addressing the problem you found, your next step will be to open a new one.
-
-
github.com github.com
-
It's funny that in such a complex gem like this, there's only one open issue, exactly about what I came here to post.
-
- May 2020
-
kellysutton.com kellysutton.com
-
there’s 3 steps to building software: Make it work Make it right Make it fast
-
-
www.digital-democracy.org www.digital-democracy.org
-
By putting our data in the corporate cloud, we are that kid. We are giving corporations and governments a way to see where we are looking towards, and they can predict our future and decide whether and how to intervene or subvert.
-
From a game theoretic standpoint, we’ve already lost. Too many of our civil society adversaries have too much of our data, and we have so little of theirs.
-
The words that you have not spoken; you are their owner. The words you have spoken, they own you.
-
-
en.wikipedia.org en.wikipedia.org
-
Hewson also identifies three properties of human beings that give rise to agency: intentionality, power, and rationality.
-
They also have differing amounts of abilities and resources resulting in some having greater agency (power) than others.
-
-
www.darpa.mil www.darpa.mil
-
Moreover, common search practices miss information in the deep web—the parts of the web not indexed by standard commercial search engines
-
-
www.helpscout.com www.helpscout.com
-
When chat is available, customers can reach out using the channel that works best for them.
-
-
medium.com medium.com
-
github.com github.com
-
Introducing React-Static! How it works and why we built it!
-
-
about.gitlab.com about.gitlab.com
-
We believe everyone deserves to report to exactly one person that knows and understands what you do day to day. The benefit of having a technically competent manager is easily the largest positive influence on a typical worker’s level of job satisfaction. We have a simple functional hierarchy, everyone has one manager that is experienced in their subject matter.
-
-
gitlab.com gitlab.com
-
If we can encourage people to create clean commits as they go, the example as you showed above should be far less common, because cleaning up such history as an after-math is most of the time almost impossible.
-
-
spreadprivacy.com spreadprivacy.com
-
It is a choice to squeeze every last ounce of profit at the expense of privacy, democracy and society. A choice they don’t have to make.
-
-
complianz.io complianz.io
-
A complete snapshot of the user’s browser window at that moment in time will be captured, pixel by pixel (!)
-
The mix of a fingerprint and first-party cookies is pervasive as Google can give a very high level of entropy when it comes to distinguishing an individual person.
-
-
www.fastcompany.com www.fastcompany.com
-
Google encouraging site admins to put reCaptcha all over their sites, and then sharing the resulting risk scores with those admins is great for security, Perona thinks, because he says it “gives site owners more control and visibility over what’s going on” with potential scammer and bot attacks, and the system will give admins more accurate scores than if reCaptcha is only using data from a single webpage to analyze user behavior. But there’s the trade-off. “It makes sense and makes it more user-friendly, but it also gives Google more data,”
-
For instance, Google’s reCaptcha cookie follows the same logic of the Facebook “like” button when it’s embedded in other websites—it gives that site some social media functionality, but it also lets Facebook know that you’re there.
-
-
www.iubenda.com www.iubenda.com
-
It’s always best practice to either simply follow the most robust legislations or to check the local anti-spam requirements specific to where your recipients are based.
-
-
stackoverflow.com stackoverflow.com
-
Whether it's "better" for your implementation is up for you to decide.
-
- Apr 2020
-
www.cnbc.com www.cnbc.com