4,885 Matching Annotations
  1. Oct 2020
  2. mdxjs.com mdxjs.com
    1. MDX seeks to make writing with Markdown and JSX simpler while being more expressive. Writing is fun again when you combine components, that can even be dynamic or load data, with the simplicity of Markdown for long-form content.
    2. Why?
    1. Description: This text describes adult learning theories best used in a workforce training. It describes the environmental factors which lead to success in an adult student (such as a positive atmosphere) as well as techniques like heterogeneous learning groups. It attempts to persuade the reader to address the personal needs of each student while still moving the class towards the trainings goal. As a whole, this article covers the basics of what trainers need to know when teaching adults in a workface setting.

      Rating: 6/10

      Reason for rating: This article is very quick and direct. It discusses each technique, skill, or factor with examples and reasoning for the suggestions. Each suggestion is well-thought out and logical. Yet, the article cites few other texts which discredits it a little. The article was found through JSTOR which only sources peer-reviewed texts.

    1. An alternative (maybe not good) would be to restrict {@const} to certain blocks like {#each} and {#if}. In both cases, it significantly reduces the "multiple ways to do the same thing" problem and avoids ergonomic and performance overhead of our current situation.
    2. it also allows for more divergence in how people write there code and where they put their logic, making different svelte codebases potentially even more different due to fewer constraints. This last point is actually something I really value, I read a lot of Svelte code by a lot of different people and broadly speaking things look the same and are in the same places.
    1. Generally, you should read the value of a store by subscribing to it and using the value as it changes over time. Occasionally, you may need to retrieve the value of a store to which you're not subscribed. get allows you to do so.
    1. I'm suggesting there should be a way to write lifecycle related code that also responds to changing props, like how useEffect works. I think how React handles this could be a good source of inspiration.
    2. I'm not sure I understand the problem, everything you are describing is already possible.
    3. 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.
    4. While react hooks were one of the catalysts for v3 we don't agree with with the APIs or the model and won't be emulating it.
    1. Meanwhile, politicians from the two major political parties have been hammering these companies, albeit for completely different reasons. Some have been complaining about how these platforms have potentially allowed for foreign interference in our elections.3 3. A Conversation with Mark Warner: Russia, Facebook and the Trump Campaign, Radio IQ|WVTF Music (Apr. 6, 2018), https://www.wvtf.org/post/conversation-mark-warner-russia-facebook-and-trump-campaign#stream/0 (statement of Sen. Mark Warner (D-Va.): “I first called out Facebook and some of the social media platforms in December of 2016. For the first six months, the companies just kind of blew off these allegations, but these proved to be true; that Russia used their social media platforms with fake accounts to spread false information, they paid for political advertising on their platforms. Facebook says those tactics are no longer allowed—that they've kicked this firm off their site, but I think they've got a lot of explaining to do.”). Others have complained about how they’ve been used to spread disinformation and propaganda.4 4. Nicholas Confessore & Matthew Rosenberg, Facebook Fallout Ruptures Democrats’ Longtime Alliance with Silicon Valley, N.Y. Times (Nov. 17, 2018), https://www.nytimes.com/2018/11/17/technology/facebook-democrats-congress.html (referencing statement by Sen. Jon Tester (D-Mont.): “Mr. Tester, the departing chief of the Senate Democrats’ campaign arm, looked at social media companies like Facebook and saw propaganda platforms that could cost his party the 2018 elections, according to two congressional aides. If Russian agents mounted a disinformation campaign like the one that had just helped elect Mr. Trump, he told Mr. Schumer, ‘we will lose every seat.’”). Some have charged that the platforms are just too powerful.5 5. Julia Carrie Wong, #Breaking Up Big Tech: Elizabeth Warren Says Facebook Just Proved Her Point, The Guardian (Mar. 11, 2019), https://www.theguardian.com/us-news/2019/mar/11/elizabeth-warren-facebook-ads-break-up-big-tech (statement of Sen. Elizabeth Warren (D-Mass.)) (“Curious why I think FB has too much power? Let's start with their ability to shut down a debate over whether FB has too much power. Thanks for restoring my posts. But I want a social media marketplace that isn't dominated by a single censor. #BreakUpBigTech.”). Others have called attention to inappropriate account and content takedowns,6 6. Jessica Guynn, Ted Cruz Threatens to Regulate Facebook, Google and Twitter Over Charges of Anti-Conservative Bias, USA Today (Apr. 10, 2019), https://www.usatoday.com/story/news/2019/04/10/ted-cruz-threatens-regulate-facebook-twitter-over-alleged-bias/3423095002/ (statement of Sen. Ted Cruz (R-Tex.)) (“What makes the threat of political censorship so problematic is the lack of transparency, the invisibility, the ability for a handful of giant tech companies to decide if a particular speaker is disfavored.”). while some have argued that the attempts to moderate discriminate against certain political viewpoints.

      Most of these problems can all fall under the subheading of the problems that result when social media platforms algorithmically push or accelerate content on their platforms. An individual with an extreme view can publish a piece of vile or disruptive content and because it's inflammatory the silos promote it which provides even more eyeballs and the acceleration becomes a positive feedback loop. As a result the social silo benefits from engagement for advertising purposes, but the community and the commons are irreparably harmed.

      If this one piece were removed, then the commons would be much healthier, fringe ideas and abuse that are abhorrent to most would be removed, and the broader democratic views of the "masses" (good or bad) would prevail. Without the algorithmic push of fringe ideas, that sort of content would be marginalized in the same way we want our inane content like this morning's coffee or today's lunch marginalized.

      To analogize it, we've provided social media machine guns to the most vile and fringe members of our society and the social platforms are helping them drag the rest of us down.

      If all ideas and content were provided the same linear, non-promotion we would all be much better off, and we wouldn't have the need for as much human curation.

    1. I just wrote a long, considered, friendly, and I hope helpful comment here but -- sorry, I have to see the irony in this once again -- your system wouldn't let me say anything longer tahn 1,500 characters. If you want more intelligent conversations, you might want to expand past soundbite.

      In 2008, even before Twitter had become a thing at 180 characters, here's a great reason that people should be posting their commentary on their own blogs.

      This example from 2008 is particularly rich as you'll find examples on this page of Derek Powazek and Jeff Jarvis posting comments with links to much richer content and commentary on their own websites.

      We're a decade+ on and we still haven't managed to improve on this problem. In fact, we may have actually made it worse.

      I'd love to see On the Media revisit this idea. (Of course their site doesn't have comments at all anymore either.)

    1. Capitalists and market-thinkers inevitably seek to enclose the commons, privatizing benefits and externalizing costs onto society.
    1. Mr. Duncombe published the results online using CommentPress, open-source software by the Institute for the Future of the Book. Online discussion and commenting is made possible by Social Book, a social-reading platform created by the institute.
    1. Conservatives have fought for schools to promote patriotism, highlight the influence of Christianity and celebrate the founding fathers. In a September speech, President Trump warned against a “radical left” that wants to “erase American history, crush religious liberty, indoctrinate our students with left-wing ideology.”

      I can't help but think here about a recent "On The Media" episode A Civilization As Great As Ours which highlighted changes in how history is taught in India. This issue obviously isn't just relegated to populist India.

    1. I can't help but wonder what Jonah Goldberg's review of this book will be given his prior effort earlier this year?

      I'm also reminded here of Mark Granovetter's ideas that getting a job is more closely tied to who you know. One's job is often very closely tied to their identity, and even more so when the link that got them their job was through a friend or acquaintance.

    1.  recording it all in a Twitter thread that went viral and garnered the hashtag  #PlaneBae.

      I find it interesting that The Atlantic files this story with a URL that includes "/entertainment/" in it's path. Culture, certainly, but how are three seemingly random people's lives meant to be classified by such a journalistic source as "entertainment?"

    1. It's the part of your garden that you might actively show people when they come round to visit, that you're most proud of.

      It's a bit like cleaning up just for company, or in our current pandemic, just cleaning up the section of the house that's seen in the camera as in this New Yorker Cartoon:

    1. Put another way, many tools for thought are public goods. They often cost a lot to develop initially, but it’s easy for others to duplicate and improve on them, free riding on the initial investment. While such duplication and improvement is good for our society as a whole, it’s bad for the companies that make that initial investment. And so such tools for thought suffer the fate of many public goods: our society collectively underinvests in them, relative to the benefits they provide
    1. Solid supports templating in 3 forms JSX, Tagged Template Literals, and Solid's HyperScript variant.
    2. Why struggle with custom Syntax DSLs when you can use one so widely supported?
    3. It was only pragmatic to use a tool that basically gives you that all for free.
    4. So while Solid's JSX and might resemble React it by no means works like React and there should be no illusions that a JSX library will just work with Solid. Afterall, there are no JSX libraries, as they all work without JSX, only HyperScript or React ones.
    1. People constantly suggest that I should have just worked with a different library instead of writing another one.
    2. If there was a place I thought reactivity would be weak, I embraced it and I worked on it until I was happy with the results.
    3. focuses way too much on the getter/tracking part of the equation which is really the part you want reduce the mental bandwidth on
    4. 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.
    1. If a part of the content deserves its own heading, and that heading would be listed in a theoretical or actual table of contents, it should be placed in a <section>. The key exception is where the content may be syndicated; in this case, use <article> element instead.
  3. Sep 2020
    1. let:hovering={active}

      It seems like it should be the other way around:

      let:active={hovering}
      

      to make it look like a regular let assignment.

      It's only when you consider what/how let:hovering on its own means/works that it makes a bit more sense that it is the way it is. When it's on its own, it's a little clearer that it's saying to "make use of" an available slot prop having the given name. (Very much like bind, where the LHS is also the name of the prop we're getting the data from.) Obviously we have to identify which prop we're wanting to use/pull data from, so that seems like the most essential/main/only thing the name could be referring to. (Of course, as a shortcut (in this shorthand version), and for consistency, it also names the local variable with the same name, but it wouldn't have to.)

      Another even simpler way to remember / look at it:

      1. Everything on the left hand of an prop/attribute [arg] corresponds to something in the component/element that you're passing the [arg] to. Usually it's a prop that you're passing in, but in this case (and in the case of bind:) it's more like a prop that you're pulling out of that component, and attaching to. Either way, the name on the LHS always corresponds to an export let inside that named component.
      2. Everything on the right side corresponds to a name/variable in the local scope. Usually it passes the value of that variable, but in the case of a let: or bind: it actually "passes the variable by reference" (not the value) and associates that local variable with the LHS (the "remote" side).

      Another example is bind: You're actually binding the RHS to the value of the exported prop named on the LHS, but when you read it (until you get used to it?) it can look like it's saying bind a variable named LHS to the prop on the RHS.

    1. Why do we use bundlers again?Historically, bundlers have been used in order to support CommonJS files in the browser, by concatenating them all into a single file. Bundlers detected usages of require() and module.exports and wrap them all with a lightweight CommonJS runtime. Other benefits were allowing you to serve your app as a single file, rather than having the user download several scripts which can be more time consuming.
    1. You can see that Rollup mapped browser globals called "React" and "ReactDOM" to variables called "React" and "ReactDOM". The latter are what you imported by writing import React and import ReactDOM. (The variable names don't have to be the same as the browser globals, but it's common.)
    1. But library users are more numerous, and so their needs are more important.
    2. remember that the needs of the many outweigh the needs of the few
    3. small modules allow library authors to become lazy. Why include that six-line helper function when you can do a one-line `require`?
    4. These are all things that make your life as a library author easier.
    5. possibly making it harder for them to appreciate how severe the discoverability issues are for the rest of us.
    6. The natural assumption is that this is because a) it is the best package manager, and b) the JavaScript community is the most energetic and productive.
    7. I think I know why: it’s because the small modules philosophy favours library authors (like Sindre) at the ultimate expense of library users.
    1. Svelte will not offer a generic way to support style customizing via contextual class overrides (as we'd do it in plain HTML). Instead we'll invent something new that is entirely different. If a child component is provided and does not anticipate some contextual usage scenario (style wise) you'd need to copy it or hack around that via :global hacks.
    2. The main rationale for this PR is that, in my hones opinion, Svelte needs a way to support style overrides in an intuitive and close to plain HTML/CSS way. What I regard as intuitive is: Looking at how customizing of styles is being done when applying a typical CSS component framework, and making that possible with Svelte.
    3. Explicit interfaces are preferable, even if it places greater demand on library authors to design both their components and their style interfaces with these things in mind.
    4. Web developers are well aware of the mess you can get into with global CSS, and the action of writing <Child class="foo"/> and <div class={_class}>` (or similar) in the child component is an explicit indication that, while taking advantage of all the greatness of style encapsulation by default, in this case you have decided that you want a very specific and controlled "leak", of one class, from one component instance to one component instance.
    1. This has already forced me to forgo Svelte Material because I would like to add some actions to their components but I cannot and it does not make sense for them to cater to my specific use-case by baking random stuff into the library used by everyone.
    2. The point of the feature is to not rely on the third-party author of the child component to add a prop for every action under the sun. Rather, they could just mark a recipient for actions on the component (assuming there is a viable target element), and then consumers of the library could extend the component using whatever actions they desire.
    3. I think Svelte's approach where it replaces component instances with the component markup is vastly superior to Angular and the other frameworks. It gives the developer more control over what the DOM structure looks like at runtime—which means better performance and fewer CSS headaches, and also allows the developer to create very powerful recursive components.
    1. Does it look like a decorator plugin in Ractive, right
    2. Lets not extend the framework with yet another syntax
    3. Your LazyLoad image is now inextensible. What if you want to add a class? Perhaps the author of LazyLoad thought of that and sets className onto the <img>. But will the author consider everything? Perhaps if we get {...state} attributes.
    4. one problem with 'behavior' is that's the terminology we use to describe all of a component's encapsulated logic — methods, transitions, etc.
    1. While there is some precedence in other frameworks for using as, the word doesn't fit well. Since you are adding functionality to elements I like the word add better (and it only has 1 more character).
    1. The more I think about this, the more I think that maybe React already has the right solution to this particular issue, and we're tying ourselves in knots trying to avoid unnecessary re-rendering. Basically, this JSX... <Foo {...a} b={1} {...c} d={2}/> ...translates to this JS: React.createElement(Foo, _extends({}, a, { b: 1 }, c, { d: 2 })); If we did the same thing (i.e. bail out of the optimisation allowed by knowing the attribute names ahead of time), our lives would get a lot simpler, and the performance characteristics would be pretty similar in all but somewhat contrived scenarios, I think. (It'll still be faster than React, anyway!)
    2. I'll work on a preliminary PR (which I expect will need some love from maintainers, sorry!)
    1. The value of dotAll is a Boolean and true if the "s" flag was used; otherwise, false. The "s" flag indicates that the dot special character (".") should additionally match the following line terminator ("newline") characters in a string, which it would not match otherwise: U+000A LINE FEED (LF) ("\n") U+000D CARRIAGE RETURN (CR) ("\r") U+2028 LINE SEPARATOR U+2029 PARAGRAPH SEPARATOR This effectively means the dot will match any character on the Unicode Basic Multilingual Plane (BMP). To allow it to match astral characters, the "u" (unicode) flag should be used. Using both flags in conjunction allows the dot to match any Unicode character, without exceptions.
    1. Your knowledge of her character dates from a day or two since. My knowledge of her character dates from the beginning of her life. State your suspicion of her as strongly as you please–it is impossible that you can offend me by doing so. I am sure, beforehand, that (with all your experience) the circumstances have fatally misled you in this case. Mind! I am in possession of no private information. I am as absolutely shut out of my daughter’s confidence as you are. My one reason for speaking positively, is the reason you have heard already. I know my child.”

      Is it not possible that Rachel read the will, that proposed the diamond be sent away and chopped up into little pieces? Is it not possible that being possessed by the diamond, she decided to protect it? Why have the other characters not noticed this? Am I missing something?

    2. The Colonel had been a notorious opium-eater for years past

      It should be mentioned that Wilkie Collins was a "notorious opium-eater" himself. The Colonel may be an allusion to himself, and the negative way in which he is depicted could be interpreted as Collins' self-loathing.

      The curse of the Diamond itself may be an allegory for the corrupting influence of opium addiction. The "wretched crystal" that he "picked up" in India can be construed as a metaphor for a bad drug habit.

    3. “The Last Rose of Summer”

      I looked up a recording of “The Last Rose of Summer”, and the rose in the lyrics/story of the song seem to fit Rosanna (who obviously has “rose” in her name)...the story is about the last rose of summer that has survived all the other roses that have died and faded. Ultimately though, the narrator decides to kill it because it seems so sad that the rose is the last one, saying in the last stanza that they would choose a quick death than to be like the friendless, lonely rose. Could this be parallel to Rosanna being the rose and somehow the narrator being Betteredge/Lady Verinder breaking her off into being with people she doesn’t fit in with as some twisted Christian act in the name of helping the poor?

    1. when choosing community building activities that ask students to disclose information about themselves, and especially about how they are feeling, it is important to recognise the risk of unintended harm.

      Most faculty in a teaching setting chooses to do certain activities that can make a student very uncomfortable. In high school my teachers would do "icebreakers" and I would hate them because that meant I would have to talk in front of people and sometimes the topic would be a little too personal.

    1. But you think sometimes about what the real world is. Just what your brain mixes together from what your senses tell you. We create the world in a lot of ways. I suppose it shouldn’t be surprising that, when we’re not being careful, we can change it.
    1. They might even hate each other; the creature who already lived loathed his own deformity, and might he not conceive a greater abhorrence for it when it came before his eyes in the female form? She also might turn with disgust from him to the superior beauty of man; she might quit him, and he be again alone, exasperated by the fresh provocation of being deserted by one of his own species.

      A lot of misogyny is radiating from these lines. Victor is implying that his female creation might be so ugly that even his male creation will be offended by her existence one he sees her. But on the other hand, what if his creation isn't her type and just abandon's him? It's interesting to see how much thought Victor puts in when it comes to making a female creation...I thought he was trying to create a new species?

    1. Nic Fildes in London and Javier Espinoza in Brussels April 8 2020 Jump to comments section Print this page Be the first to know about every new Coronavirus story Get instant email alerts When the World Health Organization launched a 2007 initiative to eliminate malaria on Zanzibar, it turned to an unusual source to track the spread of the disease between the island and mainland Africa: mobile phones sold by Tanzania’s telecoms groups including Vodafone, the UK mobile operator.Working together with researchers at Southampton university, Vodafone began compiling sets of location data from mobile phones in the areas where cases of the disease had been recorded. Mapping how populations move between locations has proved invaluable in tracking and responding to epidemics. The Zanzibar project has been replicated by academics across the continent to monitor other deadly diseases, including Ebola in west Africa.“Diseases don’t respect national borders,” says Andy Tatem, an epidemiologist at Southampton who has worked with Vodafone in Africa. “Understanding how diseases and pathogens flow through populations using mobile phone data is vital.”
      the best way to track the spread of the pandemic is to use heatmaps built on data of multiple phones which, if overlaid with medical data, can predict how the virus will spread and determine whether government measures are working.
      
    1. Why make another UI component kit when we already got Smelte and SMUI? What's so special about Svelta?
    1. Because of that, it's easy to end up in a situation where the styles for a given piece of markup are defined far away (in terms of number of lines) from the markup itself, which reduces the advantage of having styles and markup co-located in the first place.
    1. Please focus on explaining the motivation so that if this RFC is not accepted, the motivation could be used to develop alternative solutions. In other words, enumerate the constraints you are trying to solve without coupling them too closely to the solution you have in mind.
    2. A huge part of the value on an RFC is defining the problem clearly, collecting use cases, showing how others have solved a problem, etc.
    3. An RFC can provide tremendous value without the design described in it being accepted.
    1. One key advantage of 'HTML-plus' languages is that you don't actually need tooling in order to be productive — most editors give you out-of-the-box support for things like syntax highlighting (though imperfect, as JavaScript expressions are treated as strings) and auto-closing tags. Tools like Emmet work with no additional setup. HTMLx should retain that benefit.
    1. 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.

    2. Now of course we know how React handles this conflict: it takes the new nodes in your virtual DOM tree — the waters in your flowing river — and maps them onto existing nodes in the DOM. In other words React is a functional abstraction over a decidedly non-functional substrate.

      To me this is a warning sign, because in my experience, the bigger the gap between an abstraction and the thing it abstracts, the more likely you are to suffer what programmers like to call ‘impedance mismatches’, and I think we do experience that in React.

  4. eclass.srv.ualberta.ca eclass.srv.ualberta.ca
    1. he will crush[j] your head,(BL)    and you will strike his heel.”

      God curses the serpent after deceiving Eve in the garden, and creates "enmity between [the serpent] and the woman." In the "Harry Potter" series by JK Rowling, the serpent is a symbol of evil, and near the end of the books, is the only piece of evil left to destroy before good can truly be restored.

    1. While I am not homosexual, I have always felt that discrimination against homosexuality is completely ludicrous because I think people should love who they love. This belief that I have has giving me an idea for my research topic for my bibliography project where I look over the state of homosexuality in 2020. I decided to annotate this article because it gave a lot of good information about the state of homosexuality in 2020 and it has some links to other articles about homosexuality.

    1. loss of Silesia

      Conquered from Maria Theresa during the War of Austrian Succession in violation of the Pragmatic Sanction of 1713, to which Frederick was a signatory.

      In many ways, this is seen as an example of Realpolitik, in which a nation's strategic strength is the determining factor in how it conducts policy (rather than promises or a sense of honour). This is a concept that will become increasingly important in Prussian policy into the 19th century, under Bismarck.

    1. Thus, Confucius meditated upon water; and the Confucian Xunzi later attempted to systematize the relationship between water’s various forms and people’s moral qualities. This assumption of a correspondence between the principles which inform both water and human conduct was not limited to the Confucians; it was generally assumed in all early philosophical texts. Nor was the imagery the provenance of any particular school. For example, water which moves forward without force, giving life to everything, is described in Xunzi as ‘wuwei’ (without action) or (doing nothing) a term that is particularly associated with Daoism.

      CONTEXT: Shuen-fu Lin addresses "the sage", the person with the highest spiritual attainment who was first emulated and thought of in the Wei-Jin movement, following the Han Dynasty. The sage allows the innate tendencies and has all five of the human emotions addressed in the passage, but "...does not act, complies, and does not implement. He eliminates what leads things astray and gets rid of what confuses them." The sage is addressed as exhibiting qualities of both the Daoist way of life and the Confucianist way. The sage is like the image of water that is an unattainable, sage-like, presence and moral conduct, desired by both Daoist and Confucianist beliefs. "Gentlemen" look at water in awe, gazing upon the perfection of its inaction and lack of effort in attaining its intellect, beauty, and respect. The water has of "ziran", or perhaps, is "ziran" that humans are able to express communion with nature and nonpurposive action. This word is also described as spontaneously existing and being "so oneself" -nothing acting behind them. Water does not decide or dwell for too long, it just exists in movement and in detachment which I think human beings desire greatly.

      Cai, Zongqi. Chinese Aesthetics: The Ordering of Literature, the Arts, and the Universe in the Six Dynasties. Honolulu: University of Hawaii Press, 2004.

      RELATE: In 'The Experience of Nature' by Rachel and Stephen Kaplan, human action and thought is addressed as influenced by our setting/environment whether the setting require immediate responsive action or the response take place in a slower, observational method varies. The authors write, "People are particularly aware of information that is visual, that concerns what they see. That does not mean that people interpret the information in visual terms exclusively; rather, visual stimuli are effective in conjuring associated information. The sight of water provides information about potential opportunities which may or may not be visual in themselves" (Kaplan, 4). Reverie from observation that allows self reflection, thought free from distraction, and intuitive action is typically included in our broader categorization of landscape qualities when we discuss as landscape architects. Human reaction to landscape is so much bigger than the texture, color, or even kinesthetic feeling within the place and can be thought of as artwork in addition- prompting development of thought even subconsciously within the the one experiencing.

      Kaplan, Rachel, and Stephen Kaplan. The Experience of Nature: A Psychological Perspective. Cambridge: Cambridge University Press, 1989.

    1. LSP creates the opportunity to reduce the m-times-n complexity problem of providing a high level of support for any programming language in any editor, IDE, or client endpoint to a simpler m-plus-n problem.
    1. Customers care more about the value our application adds to their lives than the programming language or framework the application is built with. Visible Technical Debt such as bugs and missing features and poor performance takes precedence over Hidden Technical Debt such as poor test code coverage, modularity or removing dead code
    2. In the real world — the time to pay off technical debt is scarce — in most of the time fueled by the fear of the unknown. The management loves to milk the cow but not to change the litter. The developers on another hand avoid modernizing legacy code — to avoid trouble in case anything breaks.
  5. Aug 2020
    1. It can come as a refreshment to follow the hype and ride the bandwagon from time to time, but you should always do your research first.
    2. The hype is something common in our industry. Remember NoSQL? Or when everyone went crazy over microservices? Or the AI / Machine learning burst? The list goes on and on. People get excited about new and breakthrough technologies and ideas.
    3. The idea of having to learn something new is good, and I agree with that, but how often should you do that? Looking at the world of JavaScript, a new idea, blog post, library, framework, and whatnot pops up very often. Things become trending, and people quickly try to adopt that. I’m not saying you should not adopt new things and consider different approaches to a solution, not at all! I am trying to propose the idea of doing that less often.
    1. Furthermore, incumbents who generally do a good job, often manage to continue reigning. According to Brad Gerstner, CEO of Altimeter Capital, who recently did a podcast on Invest Like The Best, large tech companies have managed to take even more market share than 10 years ago. Some people may argue this is because the large tech companies have improved their products over time to stay ahead due to their increased collection of data and better algorithms that feed on that data over time. That may be true for some companies but not all. This also applies to other products that have not made significant strides in their technology — Craigslist, Salesforce CRM, Turbotax, Quickbooks to name a few. Even Google Search which arguably had a better product in the 1990s compared to its peers is about on par with alternative search engines today, but 90% of people worldwide still use Google. Old habits die hard, and distribution matters more than ever if you are just starting a business. It’s hard to topple incumbents who have strong distribution and already large audiences — even if you can build a much better product.

      Large incumbent tech companies have managed to retain their lead, partly due to network effects, but it also applies to companies that haven't made significant strides (e.g. Salesforce), probably because old habits die hard and success goes to the successful.

    1. Facebook has apologized to its users and advertisers for being forced to respect people’s privacy in an upcoming update to Apple’s mobile operating system – and promised it will do its best to invade their privacy on other platforms.

      Sometimes I forget how funny The Register can be. This is terrific.

    1. “the unexamined life is not worth living.

      We mus examine life to be able to choose. We are born taught things that sometimes we don't understand but we just know because it was passed down to us, but it is up to us to experience these things t be able to decide for ourselves.

    1. We share our labor of love

      Here's something to share from the margins--George Carlin. Like Carlin, we in the margins need is to crash into the open and yoke academic power (good ideas, clearly expressed, and openly political) to systemic change. Open education seems too tame to do that. Prove me wrong.

      https://youtu.be/Nyvxt1svxso

    1. This is a rather large island. We have a map to the side called a Table of Contents. I am sure there is hidden treasure, but I don't have a map. Where shall I start?

    1. As a web designer, I hate that "log in" creates a visual space between the words. If you line up "Log In Register" - is that three links or two? This creates a Gestalt problem, meaning you have to really fiddle with spacing to get the word groupings right, without using pipe characters.

      Sure, you can try to solve that problem by using a one-word alternative for any multi-word phrase, but that's not always possible: there isn't always a single word that can be used for every possible phrase you may have.

      Adjusting the letter-spacing and margin between items in your list isn't that hard and would be better in the long run since it gives you a scalable, general solution.

      "Log in" is the only correct way to spell the verb, and the only way to be consistent with 1000s of other phrasal verbs that are spelled with a space in them.

      We don't need nor want an exception to the general rule just for "login" just because so many people have made that mistake.

    1. With more and more productivity apps creating their own messaging systems, users suddenly face a new problem: Multiple inboxes. You now have to check notifications in Github, Trello, Google Docs and half a dozen (if not more) other tools in your productivity stack.

      The multiple inbox problem.

    1. I will have to look at code to be sure but the rule that */* trumps all is applied only when the request is not an ajax request. So if you are making ajax request then you should be good.
    2. The problem is that opting out of mime type negotiation simply because there is a catch-all in there is wrong according to the specifications of HTTP.
    1. More information about CC and open licensing

      Additional Resource: I would like to recommend adding Uploading Godzone https://www.tohatoha.org.nz/2018/11/uploading-godzone/

      A non-North American view of how community members view and use CC licenses to contribute to the Commons.

    2. Elinor Ostrom’s 8 Principles for Managing a Commons by On the Commons

      I found this article to be a succinct description of the 8 key principles for managing The Commons. It made me curious to explore more about the range of research that Elinor Ostrom undertook about the Commons. (June 2020 cohort CC Cert)

    1. Stallman has also stated that considering the practical advantages of free software is like considering the practical advantages of not being handcuffed, in that it is not necessary for an individual to consider practical reasons in order to realize that being handcuffed is undesirable in itself.
    1. Decentralized Social Networks vs. The TrollsDerek CaelinIn the summer of 2019, the alt-right social network Gab migrated to the decentralized "Fediverse" of social networks after being booted from mainstream financial services and hosting solutions. Almost immediately, Gab was met by a dedicated movement to isolate it. The movement was largely successful; within a year, the Gab CTO announced they would leave the Fediverse. This talk will cover how moderators, activists, and developers in the Fediverse used human moderators, strong moderation tools, representative codes of conduct, and no small amount of organization to promote healthy online spaces.We’ll review how some of the challenges faced by centralized platforms, which struggle with their own size and scale, have been addressed in networks of smaller, community run, more moderated servers. In the debate over how to make a healthier internet, the open platforms and open protocols in the model of the Fediverse may have some of the best resources to isolate bad actors, including Gab.
    1. It’s understandable that in order to relax, users need to know they’re not being overheard – though there is a less playful side to this. If groups are perceived as a place to say what you really think, away from the constraints of public judgement or “political correctness”, then it follows that they are also where people turn to share prejudices or more hateful expressions, that are unacceptable (or even illegal) elsewhere.

      The idea of public judgement or "political correctness" here is exactly the definition of a modern digital pale, around which technology is being used to extend people's thoughts.

    2. The ongoing rise of WhatsApp, and its challenge to both legacy institutions and open social media, poses a profound political question: how do public institutions and discussions retain legitimacy and trust once people are organised into closed and invisible communities? The risk is that a vicious circle ensues, in which private groups circulate ever more information and disinformation to discredit public officials and public information, and our alienation from democracy escalates.
    3. WhatsApp groups can not only breed suspicion among the public, but also manufacture a mood of suspicion among their own participants. As also demonstrated by closed Facebook groups, discontents – not always well-founded – accumulate in private before boiling over in public. The capacity to circulate misinformation and allegations is becoming greater than the capacity to resolve them.
    1. Then when giving answers I'm even less certain. For example I see occasional how-to questions which (IMO) are ridiculously complex in bash, awk, sed, etc. but trivial in python, (<10 lines, no non-standard libraries). On such questions I wait and see if other answers are forthcoming. But if they get no answers, I'm not sure if I should give my 10 lines of python or not.
    2. I went against the grain, applying other tools that people have written over the years to directly perform the job at hand which do not involve entering a program for awk or a shell to run, with answers like https://unix.stackexchange.com/a/574309/5132 and https://unix.stackexchange.com/a/578242/5132 . Others have done similar. https://unix.stackexchange.com/a/584274/5132 and https://unix.stackexchange.com/a/569600/5132 are (for examples) answers that show alternative tools to answers employing shell script and (yet again) awk programs, namely John A. Kunze's jot and rs (reshape), which have been around since 4.2BSD for goodness' sake!
    3. There is an observable widespread tendency to give an awk answer to almost everything, but that should not be inferred as a rule to be followed, and if there's (say) a Python answer that involves less programming then surely that is quite on point as an answer for a readership of users.
    1. Java may have been designed as a completely object oriented language, but when Java SE 8 was released in 2014, it added Lambda expressions (aka closures), which added some functional programming elements. Not every problem is best served by OOP, and by adding Lambdas, Java became more flexible. 
  6. Jul 2020
    1. Ruby has some really nice libraries for working with linked data. These libraries allow you to work with the data in both a graph and resource-oriented fashion, allowing a developer to use the techniques that best suit his or her use cases and skills.
    1. "that text has been removed from the official version on the Apache site." This itself is also not good. If you post "official" records but then quietly edit them over time, I have no choice but to assume bad faith in all the records I'm shown by you. Why should I believe anything Apache board members claim was "minuted" but which in fact it turns out they might have just edited into their records days, weeks or years later? One of the things I particularly watch for in modern news media (where no physical artefact captures whatever "mistakes" are published as once happened with newspapers) is whether when they inevitably correct a mistake they _acknowledge_ that or they instead just silently change things.
    1. "AOO is not, and isn't designed to be, the 'super coolest open source office suite with all the latest bells and whistles,'" Jagielski continued. "Our research shows that a 'basic,' functional office suite, which is streamlined with a 'simple' and uncluttered, uncomplicated UI, serves an incredible under-represented community.
    1. Due to social media, it's now easier than ever to make a defamatory statement. That's because social media services like Twitter and Facebook allow you to instantly "publish" a statement that can reach millions of people.
    2. Lastly, in order for a statement to be defamatory, it must be unprivileged. You cannot sue for defamation in certain instances when a statement is considered privileged. For example, when a witness testifies at trial and makes a statement that is both false and injurious, the witness will be immune to a lawsuit for defamation because the act of testifying at trial is privileged.
    1. The meta charset information must also be the first child of the <head> tag. The reason this tag must be first is to avoid re-interpreting content that was added before the meta charset tag.

      But what if another tag also specified that it had to be the first child "because ..."? Maybe that hasn't happened yet, but it could and then you'd have to decide which one truly was more important to put first? (Hopefully/probably it wouldn't even matter that much.)

    1. If you have worked with emails before, the idea of placing a script into an email may set off alarm bells in your head! Rest assured, email providers who support AMP emails enforce fierce security checks that only allow vetted AMP scripts to run in their clients. This enables dynamic and interactive features to run directly in the recipients mailboxes with no security vulnerabilities! Read more about the required markup for AMP Emails here.
    1. Why did Rails team decide they need to implement their own "version" of Timecop?

      On the one hand, that's great to reduce dependencies, but on the other hand, small dependencies are great (and rails already has lots of them), it just bloats ActiveSupport more, and creates a needless "duplication" of an already popular de facto standard for this problem -- one which (unlike Timecop) can't be easily used outside of the Rails/ActiveSupport ecosystem. It doesn't seem different enough to warrant creating it...

      Timecop: Works with Rails and non-Rails

      ActiveSupport::Testing::TimeHelpers: for use outside rails, requires dependency on bigger gem, AS.

    1. These seem to be better reasons to support sub-nanosecond resolution. I think either storing picoseconds or storing sec fraction as 64-bit integer are better approaches than storing a rational. However, either change would be very invasive, and it seems unlikely to be worth the effort.
    1. Even having useCallback() returning the same function instance, it doesn’t bring any benefits because the optimization costs more than not having the optimization.
    1. We need to teach youth to fish for mentors and we need to stock the pond with more mentors.

      I like this analogy