1,206 Matching Annotations
  1. Dec 2021
    1. I don't have a proper answer to solve the problem that I mentioned related to the unsustainable community in web-dev. Maybe someone could create a version of NPM which has a revenue model similar to Netflix.

      I wonder how you might build pricate modules for the web. The most common solution we have to this currently is the SAAS model. This model does work generally well, like Auth0 for auth, Vercel for deployment, Stripe for payments. There are many more micro-saas companies that solve for more niche problems like Onfido for ID verification.

      I think the concern here is the amount of flexibility expected by most developers on the web. In Game Development people are much more invested in their tools. An Unreal Engine developer likely has no reason to ever leave unless they change jobs significantly. Really, this is similar to React. Which is why we are seeing frameworks built entirely around this like Remix and Next. Is this such a bad system?

      It seems like a No-Code solution really could just build on top of these frameworks and take advantage of their existing patterns for uniformity.

    1. In a world where labs become sustainable by spinning out products, researchers need some way to de-risk their initial work, when they won’t have any new products or technologies to sell. I think this is an effective place for open-ended research grant programs.

      This is a lovely idea, but it feels like it's just kicking the can down the road. Who's funding these grants? Where do those monies come from? That's the real problem.

    1. What is an assembler language? https://en.itpedia.nl/2019/11/11/wat-is-een-assembler-taal/ An #assembler_language is a low-level programming_language designed for a specific processor type. We can produce Assembler by compiling #source_code from a high-level programming language (such as C / C ++). But we can also write #programs in this language ourselves. In turn, we can convert Assembler_code into machine_code using an assembler.

    1. In this study, we drew on sociocultural notions of agency – where individual actions are entwined with community goals. A community is comprised of people with shared and individual goals, in their environments, in the midst of a historical context (Wenger 1998Wenger, E. 1998. Communities of Practice: Learning, Meaning, and Identity. New York, NY: Cambridge University Press. [Crossref], [Google Scholar]). Due to this web of relationships with people, environment, and history, people do not act autonomously, but according to possibilities within the community. Such possibilities for agency are negotiated over time; actions that strengthen ties to the community constitute investments in the self that in turn, have outcomes for the community as well (Peirce 1995Peirce, B. N. 1995. “Social Identity, Investment, and Language Learning.” TESOL Quarterly 29: 9–31. doi:10.2307/3587803. [Crossref], [Web of Science ®], [Google Scholar]). The financial metaphor in using the word investment is critical – it connotes spent effort that yields dividends. These dividends emerge immediately and over time.

      This helps me consider communities of practice, and unpacking the relational aspects - agency within a context, not autonomous, informed by the context and others. Is there a tension with "groupthink", how to value the diversity in a group, and build stronger not weaker, not defaulting or regressing to a mean?. How do we build a group to be more than the sum of the parts. how does the community work to enhance practice.

  2. Nov 2021
    1. rofessional development was designed using the Adaptation of Blended Learning framework to meet the new requirements of online schooling. Twenty-six teachers participated in the intervention of professional development, spanning six months.

      rofessional development was designed using the Adaptation of Blended Learning framework to meet the new requirements of online schooling. Twenty-six teachers participated in the intervention of professional development, spanning six months.

  3. Oct 2021
    1. The idea of development suggests that communities of Color are impoverished because of some inherent failing, rather than as a result of having their resources pillaged. Development narratives imply that they don’t have the skills, technology, or education to fix things for themselves.

      Development, one could conclude, is therefore a disguise for institutionalized racism.

    1. Here's a framing I like from Gary Bernhardt (not set off in a quote block since this entire section, another than this sentence, is his). People tend to fixate on a single granularity of analysis when talking about efficiency. E.g., "thinking is the most important part so don't worry about typing speed". If we step back, the response to that is "efficiency exists at every point on the continuum from year-by-year strategy all the way down to millisecond-by-millisecond keystrokes". I think it's safe to assume that gains at the larger scale will have the biggest impact. But as we go to finer granularity, it's not obvious where the ROI drops off. Some examples, moving from coarse to fine: The macro point that you started with is: programming isn't just thinking; it's thinking plus tactical activities like editing code. Editing faster means more time for thinking. But editing code costs more than just the time spent typing! Programming is highly dependent on short-term memory. Every pause to edit is a distraction where you can forget the details that you're juggling. Slower editing effectively weakens your short-term memory, which reduces effectiveness. But editing code isn't just hitting keys! It's hitting keys plus the editor commands that those keys invoke. A more efficient editor can dramatically increase effective code editing speed, even if you type at the same WPM as before. But each editor command doesn't exist in a vacuum! There are often many ways to make the same edit. A Vim beginner might type "hhhhxxxxxxxx" when "bdw" is more efficient. An advanced Vim user might use "bdw", not realizing that it's slower than "diw" despite having the same number of keystrokes. (In QWERTY keyboard layout, the former is all on the left hand, whereas the latter alternates left-right-left hands. At 140 WPM, you're typing around 14 keystrokes per second, so each finger only has 70 ms to get into position and press the key. Alternating hands leaves more time for the next finger to get into position while the previous finger is mid-keypress.) We have to choose how deep to go when thinking about this. I think that there's clear ROI in thinking about 1-3, and in letting those inform both tool choice and practice. I don't think that (4) is worth a lot of thought. It seems like we naturally find "good enough" points there. But that also makes it a nice fence post to frame the others.
    2. As with this post on reasons to measure, while this post is about practical reasons to improve productivity, the main reason I'm personally motivated to work on my own productivity isn't practical. The main reason is that I enjoy the process of getting better at things, whether that's some nerdy board game, a sport I have zero talent at that will never have any practical value to me, or work. For me, a secondary reason is that, given that my lifespan is finite, I want to allocate my time to things that I value, and increasing productivity allows me to do more of that, but that's not a thought i had until I was about 20, at which point I'd already been trying to improve at most things I spent significant time on for many years.
    3. A specific example of something moving from one class of item to another in my work was this project on metrics analytics. There were a number of proposals on how to solve this problem. There was broad agreement that the problem was important with no dissenters, but the proposals were all the kinds of things you'd allocate a team to work on through multiple roadmap cycles. Getting a project that expensive off the ground requires a large amount of organizational buy-in, enough that many important problems don't get solved, including this one. But it turned out, if scoped properly and executed reasonably, the project was actually something a programmer could create an MVP of in a day, which takes no organizational buy-in to get off the ground. Instead of needing to get multiple directors and a VP to agree that the problem is among the org's most important problems, you just need a person who thinks the problem is worth solving.
    4. Unlike most people who discuss this topic online, I've actually looked at where my time goes and a lot of it goes to things that are canonical examples of things that you shouldn't waste time improving because people don't spend much time doing them. An example of one of these, the most commonly cited bad-thing-to-optmize example that I've seen, is typing speed (when discussing this, people usually say that typing speed doesn't matter because more time is spent thinking than typing). But, when I look at where my time goes, a lot of it is spent typing.
  4. Sep 2021
  5. Aug 2021
    1. With JavaScript, you can actually calculate the width of the scrollbar and whether it’s visible by comparing two properties—window.innerWidth and document.body.clientWidth. If these are equal, the scrollbar isn’t visible. If these are different, we can subtract the body width from the window width to get the width of the scrollbar:const scrollbarWidth = window.innerWidth - document.body.clientWidthWe’ll want to perform this both on page load and on resize, in case someone resizes the window vertically and changes the overflow. Then, once we have the scrollbar width, we can assign it as a CSS variable:document.body.setProperty("--scrollbarWidth", `${scrollbarWidth}px`)

      missing feature: vw/vh can't be used "directly" because doesn't account for scrollbars

  6. developer.mozilla.org developer.mozilla.org
    1. All topics were framed as specific but open questions

      When meetings are framed around reading titles, they suggest a level of certainty. Framing around questions starts with what is unknown instead of known - more open to novices? (See next paragraph - "facilitators located expertise in readings and research ... not themselves")

    2. we first thought about starting a reading group, as many other institutions and departments have done. But we wanted to make the barrier to joining the conversation as low as possible

      This is an interesting point. Faculty members take reading assignments seriously; some folks will skip events rather than show up unprepared. Starting with a facilitator's presentation is an interesting way over that barrier.

  7. Jul 2021
  8. Jun 2021
    1. The salary for each profession varies from similar factors. What determines the salary of software developers? After reading this article, I concluded that the greatest role is played by the country in which the developer works. For example, there are countries where developer salaries are much lower, although skills are not inferior. Skills, background and many other points also affect. Enjoy reading!

  9. May 2021
    1. Being opportunistic can be useful, but having a big positive impact often requires doing something unusual and on developing strong skills, which can take 10+ years.

      Academics (and other knowledge workers) tend not to focus too much attention on getting better. Skills development happens in an ad hoc way rather than a structured and focused approach to improvement.

    1. Purpose for the Mentor:Develop leadership skills‍Being put in the position of a role model can help mentors become better leaders and instill confidence in their leadership ability. The responsibility of helping guide someone’s career and goals requires the senior employee to teach, to motivate and to offer honest feedback in difficult conversations. All these skills are at the top of the required list for a leader.

      This is something that I've been thinking about in terms of career growth, and how one of the things we expect of engineers as they become more senior - is that they can take on leadership roles, level up other people, etc - but we often don't provide them with the tools or opportunity to work on these skills, or go into what skills are required to go into this tk.

    2. An important point to note is that there's a difference between coaching and mentoring. A coach's job is to improve a particular skill, but a mentor plays a more holistic role in helping a mentee improve

      Mentoring and Coaching are different, and being able to identify the differences between the two is important.

      For managers, sometimes they need to wear a coaches hat, or a mentors hat - but these are roles that a manager can have but not their only job.

      Considerations for L&D programs

      • how can mentoring fit in with L&D?
      • how can coaching fit in with L&D?
  10. Apr 2021
    1. Here are the economics: The cost of recruiting a midcareer software engineer (who earns $150,000- 200,000 per year) can be $30,000 or more including recruitment fees, advertising, and recruiting technology. This new hire also requires onboarding and has a potential turnover of two to three times higher than an internal recruit. By contrast, the cost to train and reskill an internal employee may be $20,000 or less, saving as much as $116,000 per person over three years.  The net savings: it can cost as much as 6-times more to hire from the outside than to build from within.
      • the cost of hiring talent vs upskilling talent
    1. GitHub Actions is GitHub’s platform for automation workflows. A workflow is a sequence of jobs that can run either in series or in parallel. A job usually contains more than one step, where each step is a self-contained function. To learn more about GitHub Actions, go through the tutorial on Continuous Integration for Android.

      Brief description on what GitHub Actions is.

    1. Preferences DataStore and Proto DataStore DataStore provides two different implementations: Preferences DataStore and Proto DataStore. Preferences DataStore stores and accesses data using keys. This implementation does not require a predefined schema, and it does not provide type safety. Proto DataStore stores data as instances of a custom data type. This implementation requires you to define a schema using protocol buffers, but it provides type safety.

      Currently, I am using SharedPreference which is still alright to use. However, there is a better option called DataStore. This allows data to be stored asynchronously.

    1. “child-directed” or “caretaker” speech.

      Child-directed speech (CDS) refers to speech from a caregiver directed towards a child, as opposed to overheard speech - for example "Is lil'timmy ready for a nappy wappy?" Speech acquisition in children is an area of particular interest for linguists because it has significant implications for later childhood development and socialization. This article is not directly concerned with language acquisition, but rather the sense of forced infantilization that users of many major applications such as Venmo or Yelp feel is being imposed on them. Still, this is an interesting way to frame the topic of app design and the implications it has for the relationship between users and companies.

      Source: Shneidman, Laura A., and Meadow, Susan Goldin. “Language Input and Acquisition in a Mayan Village: How Important Is Directed Speech?” Developmental Science 15, no. 5 (September 2012): 659–73. doi:10.1111/j.1467-7687.2012.01168.x.

    1. My favorite part of this entire plan has to be the part where I use Github Issues as a blog. Kind of. For every new feature (or set of features) I want to add to the site—no matter how small, like adding a Favicon, for example—I will open a new issue and create a corresponding branch where the work on that feature will happen. I will basically produce a(n) infrequent stream of short “blog posts” in the form of Github issues. The live code for each issue/feature will live in the issue’s corresponding branch. As someone who tends to do multiple things at once, this will take a lot of organization and discipline, and that’s the challenging part for me.

      This is a fascinating and very illustrative use of GitHub for web development. I mostly like that she's pointing out her use case.

  11. Mar 2021
    1. Why separate out red tests from green tests? Because my green tests serve a fundamentally different purpose. They are there to act as a living specification, validating that the behaviors work as expected. Regardless of whether they are implemented in a unit testing framework or an acceptance testing framework, they are in essence acceptance tests because they’re based upon validating behaviors or acceptance criteria rather than implementation details.
    2. Have you ever played the game 20 questions? Most of us have played that game at one point in our lives. One person thinks of something that could be an animal, vegetable, or mineral and then they answer yes/no questions that are asked of them. The point of the game is to ask as few questions as possible in order to accurately guess what the person is thinking.  This is how I think of the unit tests that I write the specified behavior as I’m doing test-first development. I ask what are the fewest tests that I need to write in order to assert the behavior I want to create.
    3. I am a big advocate of having a complete test base and even erring on the side of caution when it comes to quality engineering and software validation but that is not what we’re talking about here. What we’re talking about here are the tests that we write when we’re doing test-first development and I’m proposing that writing those tests from the perspective of specifying the behaviors that we want to create is a highly valuable way of writing tests because it drives us to think at the right level of abstraction for creating behavioral tests and that allow us the freedom to refactor our code without breaking it.
  12. Feb 2021
    1. Devoted to Trump, and committed to his fictions about the election, Republicans are doing everything they can to keep voters from holding them and their leaders accountable. They will restrict the vote. They will continue to gerrymander themselves into near-permanent majorities. A Republican in Arizona has even proposed a legislative veto over the popular vote in presidential elections

      The author starts the paragraph by explaining the Republicans as people who are "devoted to Trump". This makes it seem as Trump were god and everyone has to follow his orders. It gives both a humorous appeal to the audience and illustrates to them the sly techniques that the Republicans are using to escape from punishment. Furthermore, when the author said that the Republicans were ready to propose a veto against the popular vote, it was very ironic. As senators, they are supposed to give constitutional rights to the citizens, but rather they are taking it away for their own purpose. This further emphasizes the extent at which Republicans do not want to lose power to the Democrats.

    2. naked attempt to change the rules of American politics to benefit one party”

      The previous paragraph emphasizes the benefits of the HR.1 and how it specifically helped restore the voting system. However, in this paragraph, McConell exclaims that it is a vague attempt to benefit one party even though the Act was created to benefit the public. This illustrates to the readers the misuse of power by republican senators, which is one of the author's main points.

    3. — and not to lose the next presidential election the way they lost the last one. To that end, they have introduced bills to restrict the vote, to make the race for the Electoral College — a

      The author uses multiple dashes in this paragraph to show the different ways that the republicans will go to stop the Democrats from gaining power. The dashes emphasizes the extent at which republicans are willing to restrict votes. Without the dashes, it would simply sound as an example of what Republicans are doing, but the dashes creates a pause and further emphasis. Also, from John Lewis, the claim shifted to the extreme techniques that Republicans are using to stop Democratic power from taking over.

    1. Why is all this interaction code better? Two reasons: One, you can reuse the FindAccount interaction in other places, like your API controller or a Resque task. And two, if you want to change how accounts are found, you only have to change one place.

      Pretty weak arguments though...

      1. We could just as easily used a plain object or module to extract this for easy reuse and having it in only one place (avoiding duplication).
    1. What this means is: I better refrain from writing a new book and we rather focus on more and better docs.

      I'm glad. I didn't like that the book (which is essentially a form of documentation/tutorial) was proprietary.

      I think it's better to make documentation and tutorials be community-driven free content

    1. Trailblazer extends the conventional MVC stack in Rails. Keep in mind that adding layers doesn't necessarily mean adding more code and complexity. The opposite is the case: Controller, view and model become lean endpoints for HTTP, rendering and persistence. Redundant code gets eliminated by putting very little application code into the right layer.
    1. Before the pandemic, I normally called chefs after I’d written a review of their restaurant but before it was published, to check facts. The chefs usually sounded as if I were calling with the results of a lab test. One chef called me back from a hospital and told me his wife was in the next room giving birth to their first child, but — oh no, don’t worry, it’s fine, he said; in fact, I’d picked a perfect time to call! These were, in other words, awkward conversations.The ones I had last spring were different. It was as if the fear and distrust all chefs feel toward all critics were gone. They talked about going bankrupt, they talked about crying and not wanting to get out of bed. What did they have left to lose by talking to me?

      Pete highlights a key change that came with COVID, except he emphasizes the good that came from it. This compare and contrast allows the reader to see how the personalities have developed along with the times. There was a silver lining amidst the "crying and not wanting to get out of bed". The drastic comparison of his importance before and after the pandemic with a chef giving equal importance to Pete and his first child underlines just how wrong priorities were previously. His diction, utilizing awkward perfectly to encapsulate the environment surrounding his job before COVID, pushing forth the idea that good can result from change.

    1. Why not, it asked? More and more, Republican members of the House were being elected from gerrymandered districts drawn up by Republican state legislators from gerrymandered districts. Meanwhile, the Senate overrepresented sparsely populated red states, meaning the Electoral College favored Republican presidential candidates, who could then stack the court system with conservative judges who would allow Republican politicians to suppress the votes of Black and other Democratic-leaning constituencies.

      Friedman asks a rhetorical question and then builds off of it. He gives more examples of what the Republican members were doing to infringe upon the rights of all the people. He once again shows the unfair practices of the Republican Party to emphasize his point of how democracy in the United States is no longer democracy.

    2. That starts with getting rid of the filibuster so President Biden can enact his agenda for both reviving the economy and rebuilding our infrastructure. It also involves adding two senators each from D.C. and Puerto Rico — most likely Democrats at first. That will tell the G.O.P. that if it wants to hold power it has to once and for all abandon its fantasy of minority rule based largely on white voters — and take up the “growth and opportunity” strategy of that 2013 R.N.C. report.

      Next, he offers a solution. He tells the reader what type of changes need to occur in order to change the nation for the better and bring more equality. He goes from stating all the negatives of the nation and the political party to what needs to be done. He emphasize how change needs to occur after persuading the audience that change does need to occur.

    1. With the introduction of CPUs which ran faster than the original 4.77 MHz Intel 8088 used in the IBM Personal Computer, programs which relied on the CPU's frequency for timing were executing faster than intended. Games in particular were often rendered unplayable. To provide some compatibility, the "turbo" button was added. Engaging turbo mode slows the system down to a state compatible with original 8086/8088 chips.