184 Matching Annotations
  1. Sep 2021
    1. Three days before Labor Day, on Friday, September 2, 1921, the U.S. Army intervened on the side of coal companies against striking coal miners, marking the end of the Battle of Blair Mountain in southern West Virginia. The battle was the climax of two decades of low-intensity warfare across the coalfields of Appalachia, as the West Virginia miners sought to unionize and mining companies used violent tactics to undermine their efforts. The struggle turned deadly.
  2. Aug 2021
    1. All answers here which mention scrollHeight/scrollWidth should be adjusted a bit to take body margins into account. Browsers apply default nonzero margins for documents' body element (and it's also applicable to content loaded into frames). The working solution I found is to add this: parseInt(window.getComputedStyle(this.contentDocument.body).margin.
  3. Jul 2021
  4. Jun 2021
    1. targeting what the user actually sees
    2. The most important guideline to give is the following: Write clean unit tests if there is actual value in testing a complex piece of logic in isolation to prevent it from breaking in the future Otherwise, try to write your specs as close to the user’s flow as possible
    3. Another common gotcha is that the specs end up verifying the mock is working. If you are using mocks, the mock should support the test, but not be the target of the test.
    4. It’s better to test a component in the way the user interacts with it: checking the rendered template.
  5. May 2021
    1. And asking them if they think they know what they are doing will not help, because many people will overestimate their knowledge, making the support even more complicated as the tech guy may at first believe them and only find out later that they told wrong things because they do not actually know what they are pretending to know.
    1. Even with data that’s less fraught than our genome, our decisions about what we expose to the world have externalities for the people around us.

      We need to think more about the externalities of our data decisions.

    1. A tyrannical few deny their writer-serfs bylines, ensuring that the value from every article accrues to the brand and not the author.
    2. Some newspapers, most recently the New York Times, have forbidden writers from launching personal newsletters without permission.

      Using their platform to build your own platform apparently isn't kosher any more?

    1. The European Commission has prepared to legislate to require interoperability, and it calls being able to use your data wherever and whenever you like “multi-homing”. (Not many other people like this term, but it describes something important – the ability for people to move easily between platforms

      an interesting neologism to describe something that many want

  6. Apr 2021
    1. I like how Dr. Pacheco-Vega outlines some of his research process here.

      Sharing it on Twitter is great, and so is storing a copy on his website. I do worry that it looks like the tweets are embedded via a simple URL method and not done individually, which means that if Twitter goes down or disappears, so does all of his work. Better would be to do a full blockquote embed method, so that if Twitter disappears he's got the text at least. Images would also need to be saved separately.

    1. Facebook provides some data portability, but makes an odd plea for regulation to make more functionality possible.

      Why do this when they could choose to do the right thing? They don't need to be forced and could certainly try to enforce security. It wouldn't be any worse than unveiling the tons of personal data they've managed not to protect in the past.

    1. Manifold – Building an Open Source Publishing Platform

      Zach Davis and Matthew Gold

      Re-watching after the conference.

      Manifold

      Use case of showing the process of making the book. The book as a start to finish project rather than just the end product.

      They built the platform while eating their own cooking (or at least doing so with nearby communities).

      Use for this as bookclubs. Embedable audio and video possibilities.

      Use case where people have put journals on the platform and they've grown to add meta data and features to work for that.

      They're allowing people to pull in social media pieces into the platform as well. Perhaps an opportunity to use Webmentions?

      They support epub.

      It can pull in Gutenberg texts.

      Jim Groom talks about the idea of almost using Manifold as an LMS in and of itself. Centering the text as the thing around which we're gathering.

      CUNY Editions of standard e-books with additional resources.Critical editions.

      Using simple tools like Google Docs and then ingest them into Manifold using a YAML file.

      TEI, LaTeX formats and strategies for pulling them in. (Are these actually supported? It wasn't clear.)

      Reclaim Cloud has a container that will run Manifold.

      Zach is a big believer in UX and design as the core of their product.

    1. We are are continuing our commitment to creating our games that are free and widely accessible anyone that is curious by making our game files available under Creative Commons license BY–NC–SA 4.0. That means we will continue offering a full, free print-and-play kit for Pax Pamir, and later this campaign, John Company! Anyone can use, remix, and share the game, so long as they do not use it for commercial purposes. 
    1. And it’s easy to leave. Unlike on Facebook or Twitter, Substack writers can simply take their email lists and direct connections to their readers with them.

      Owning your audience is key here.

    1. My surprise that no one is insulted by this is quickly overtaken by surprise that Venmo is condoning alcohol consumption among kindergarteners, the only group in America who is routinely asked, with educational toys like Leapfrog, to match short words with pictures.

      I appreciate what Barron is getting at here but I think he's taking an extremely contrarian stance to get at his point. Obviously Venmo is not condoning childhood alcohol consumption - a better and more nuanced take (which he alludes to elsewhere in the article) is that the conditions of modern life have prolonged adolescence for millennials (and generation z) - the traditional signifiers of adulthood are gone and the aesthetics of contemporary corporate app and internet design have adjusted to reflect this shift.

    1. Most would argue a cardboard drum is better than options like grease drums. The reason for this is that a cardboard drum does not have ridges on it, so it can level the yard properly. Another advantage of this homemade lawn-roller equipment is that it is lightweight and as such won’t lead to soil compaction.
    1. Ultimately, Shelter Generations relies on your capacity to dig into its subtleties. On that overt level it's an obtuse and obviously indie game, and it's really quite demanding of the player; it asks them to figure their own way through the game, and it asks them to really commit to an emotional connection to these hopeless little cubs.
  7. Mar 2021
    1. It's the feedback that's motivating A-list bloggers like Digg founder Kevin Rose to shut down their blogs and redirect traffic to their Google+ profiles. I have found the same to be true.

      This didn't work out too well for them did it?

    1. Am sa caabi!

      Prends ta clé!

      am -- used in the imperative: "HERE!", etc. (it's the same word as "to have").

      sa -- your.

      caabi ji -- (Portuguese) key. 🔑

    2. Abal ma sa téere!

      Prêtre-moi ton livre!

      abal v. -- lend to.

      ma -- me.

      sa -- your.

      téere bi -- book. 📗

    3. Loolu sa afeer la.

      C'est ton affaire.

      loolu -- that.

      sa -- your.

      afeer bi -- (French: "affair") case.

      la -- the (?).

  8. Feb 2021
    1. Not only does it help to structure myself,
    2. 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.
    3. To make it short: we returned to the Rails Way™, lowering our heads in shame, and adhere to the Rails file and class naming structure for operations.
    4. There is nothing wrong with building your own “service layer”, and many companies have left the Traiblazer track in the past years due to problems they had and that we think we now fixed.
    1. And yes, some add-ons exist, but I just wish the feature was native to the browser. And I do not want to rely on a third party service. My quotes are mine only and should not necessary be shared with a server on someone's else machine.

      Ownership of the data is important. One could certainly set up their own Hypothes.is server if they liked.

      I personally take the data from my own Hypothes.is account and dump it into my local Obsidian.md vault for saving, crosslinking, and further thought.

    1. 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.
    1. 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. 
    1. Now let me ask you, do you write JS for a single page application differently from a "traditional" web application? I sure hope you do! In a "traditional" application, you can get away with being sloppy because every time the user navigates to a new page, their browser destroys the DOM and the JavaScript context. SPAs, though, require a more thoughtful approach.
    2. where's the code that unloads the table-sorter plugin when the page unloads? There isn't any. There didn't need to be back in the day because the browser handled the cleanup. However, in a single-page application like Turbolinks, the browser doesn't handle it. You, the developer, have to manage initialization and cleanup of your JavaScript behaviors.
    3. When people try to port traditional web apps to Turbolinks, they often run into problems because their JS never cleans up after itself.
    4. All Turbolinks-friendly JavaScript needs to: Initialize itself when a page is displayed Clean up after itself before Turbolinks navigates to a new page.
  9. Jan 2021
    1. The ad lists various data that WhatsApp doesn’t collect or share. Allaying data collection concerns by listing data not collected is misleading. WhatsApp doesn’t collect hair samples or retinal scans either; not collecting that information doesn’t mean it respects privacy because it doesn’t change the information WhatsApp does collect.

      An important logical point. Listing what they don't keep isn't as good as saying what they actually do with one's data.

    1. Trust me, I'm not trying to stress you right now, but I just wanted to do a friendly bump in case you forgot about this. (I know how it is sometimes) If you get this notification and feel "Ugh, I really don't have time" you don't have to comment here and I'm sorry. I'm just sending you a notification in case you forgot. If not, feel free to archive the email and not click/tap on anything.
    1. In this example, we’re changing the name of a podcast episode to something that makes sense when downloaded to the user’s device, while maintaining something that makes sense to the podcast’s producer:
  10. Dec 2020
  11. Nov 2020
    1. And please stop saying that there are bugs everywhere except your code, we are both developers and may make a mistake in our code, so I prefer to investigate firstly and then say where the problem is.
  12. Oct 2020
    1. Focus on your application: forget about forms details like I'm dirty, field touched...
    2. Of course you can start implementing your own thing, but you will waste a lot of precious time reinventing the wheel. Why not take advantage of a validation library that takes care of all this complexity for you?
    3. You can try to build a solution to tackle these issues on your own, but it will cost you time and money... why not use a battle-tested solution to handle all this complexity?
    4. If you want to implement a form with a superb User Experience, you have to take care of many variables:
    1. One of the primary tasks of engineers is to minimize complexity. JSX changes such a fundamental part (syntax and semantics of the language) that the complexity bubbles up to everything it touches. Pretty much every pipeline tool I've had to work with has become far more complex than necessary because of JSX. It affects AST parsers, it affects linters, it affects code coverage, it affects build systems. That tons and tons of additional code that I now need to wade through and mentally parse and ignore whenever I need to debug or want to contribute to a library that adds JSX support.
    1. With Alphabet Inc.’s Google, and Facebook Inc. and its WhatsApp messaging service used by hundreds of millions of Indians, India is examining methods China has used to protect domestic startups and take control of citizens’ data.

      Governments owning citizens' data directly?? Why not have the government empower citizens to own their own data?

    1. I tried very hard in that book, when it came to social media, to be platform agnostic, to emphasize that social media sites come and go, and to always invest first and foremost in your own media. (Website, blog, mailing list, etc.)
    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. Maybe of interest for some readers here: With your plugin, it's also straightforward to import the "tweets.csv" file from the official Twitter archive, which contains all the tweets (and a lot of metadata) from one's personal account. Still don't know what to do with this in TiddlyWiki, but there is certainly potential...
    1. We believe that Facebook is also actively encouraging people to use tools like Buffer Publish for their business or organization, rather than personal use. They are continuing to support the use of Facebook Pages, rather than personal Profiles, for things like scheduling and analytics.

      Of course they're encouraging people to do this. Pushing them to the business side is where they're making all the money.

    1. Third, the post-LMS world should protect the pedagogical prerogatives and intellectual property rights of faculty members at all levels of employment. This means, for example, that contingent faculty should be free to take the online courses they develop wherever they happen to be teaching. Similarly, professors who choose to tape their own lectures should retain exclusive rights to those tapes. After all, it’s not as if you have to turn over your lecture notes to your old university whenever you change jobs.

      Own your pedagogy. Send just like anything else out there...

    1. For example, the idea of “data ownership” is often championed as a solution. But what is the point of owning data that should not exist in the first place? All that does is further institutionalise and legitimate data capture. It’s like negotiating how many hours a day a seven-year-old should be allowed to work, rather than contesting the fundamental legitimacy of child labour. Data ownership also fails to reckon with the realities of behavioural surplus. Surveillance capitalists extract predictive value from the exclamation points in your post, not merely the content of what you write, or from how you walk and not merely where you walk. Users might get “ownership” of the data that they give to surveillance capitalists in the first place, but they will not get ownership of the surplus or the predictions gleaned from it – not without new legal concepts built on an understanding of these operations.
    1. First, Manton's business model is for users to not own their content. You might be able to own your domain name, but if you have a hosted Micro.blog blog, the content itself is hosted on Micro.blog servers, not yours. You can export your data, or use an RSS feed to auto-post it to somewhere you control directly, but if you're not hosting the content yourself, how does having a custom domain equal self-hosting your content and truly owning it? Compared to hosting your own blog and auto-posting it to Micro.blog, which won't cost you and won't make Micro.blog any revenue, posting for a hosted blog seems to decrease your ownership.

      I'm not sure that this is the problem that micro.blog is trying to solve. It's trying to solve the problem of how to be online as simply and easily as possible without maintaining the overhead of hosting and managing your own website.

      As long as one can easily export their data at will and redirect their domain to another host, one should be fine. In some sense micro.blog makes it easier than changing phone carriers, which in most cases will abandon one's text messages without jumping through lots of hoops. .

      One step that micro.blog could set up is providing a download dump of all content every six months to a year so that people have it backed up in an accessible fashion. Presently, to my knowledge, one could request this at any time and move when they wished.

    2. Manton says owning your domain so you can move your content without breaking URLs is owning your content, whereas I believe if your content still lives on someone else's server, and requires them to run the server and run their code so you can access your content, it's not really yours at all, as they could remove your access at any time.

      This is a slippery slope problem, but people are certainly capable of taking positions along a broad spectrum here.

      The one thing I might worry about--particularly given micro.blog's--size is the relative bus factor of one represented by Manton himself. If something were to happen to him, what recourse has he built into make sure that people could export their data easily and leave the service if the worst were to come to happen? Is that documented somewhere?

      Aside from this the service has one of the most reasonable turn-key solutions for domain and data ownership I've seen out there without running all of your own infrastructure.

    1. The main thing Smith has learned over the past seven years is “the importance of ownership.” He admitted that Tumblr initially helped him “build a community around the idea of digital news.” However, it soon became clear that Tumblr was the only one reaping the rewards of its growing community. As he aptly put it, “Tumblr wasn’t seriously thinking about the importance of revenue or business opportunities for their creators.”
  13. Sep 2020
    1. Your styles are scoped to the component. No more leakage, no more unpredictable cascade.
    2. It's fashionable to dislike CSS. There are lots of reasons why that's the case, but it boils down to this: CSS is unpredictable. If you've never had the experience of tweaking a style rule and accidentally breaking some layout that you thought was completely unrelated — usually when you're trying to ship — then you're either new at this or you're a much better programmer than the rest of us.
    3. It gets worse when you're working on a team. No-one dares touch styles authored by someone else, because it's often unclear what they're doing, what markup they apply to, and what disasters will unfold if you remove them. The consequence of all this is the append-only stylesheet. There's no way of knowing which code can safely be removed, so it's common to undo some existing style with another, more specific style — even on relatively small projects.
    1. 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.

  14. Aug 2020
    1. After reading the title of the blog post ”Replace axios with a simple custom fetch wrapper”, it makes you go through the thought process from the start of this blog post. It makes you question your choices.
    1. I have over 689 hours into this game and would like to talk about the changes made to the Exploration. In my opinion the Exploration which made this game amazing now stinks!. You know longer need a ship to hit the islands. The exploration has pretty much been removed. One of the things that made this game so amazing was grinding to make your ship and heading out to Explore and find the other islands. Now all the islands are really close to the spawn point, there are not that many and well they stink. There is no reason or need to make a ship because you can easily reach all the island with a raft.
    1. Stack Exchange does not divide up by topic, it divides up by readership. This is something that people stumble over, but if you look at all of the site descriptions in the drop-down list of "Stack Exchange communities" at the top of this very page you'll see that all of the communities are described in terms of the people that read and write the questions and answers, not in terms of the subject matters. It takes a while to spot this, especially if one has a background in the likes of CompuServe, Fidonet, Usenet, I-Link, and so forth, which did divide up by topic, and whose FAQ documents did as well. But it is how things are structured by the company that runs the sites, and is the methodology that one can see all the way back to 2009 (where the question was "Which community do you consider yourself a part of?") if one goes and looks.
    2. Knowing that there's wacky semantics to the (Linux) settimeofday() system call that make the system time jump around at bootstrap is something that concerns users, especially when it affects things like filesystem checks (c.f. https://unix.stackexchange.com/a/600490/5132). But whether one can pass a time_t to settimeofday() is a question for programmers (c.f. https://stackoverflow.com/q/3374659/340790). It's the same system call, but two different readerships.
    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.
  15. Jul 2020
    1. And on the topic of this particular article you need to own bigger mistakes too. It doesn't matter if the Apache board genuinely believed in 2014 that this was a good idea, it should now be obvious to everyone that it wasn't. Board members allowing it to continue can't fall back to "Well we didn't know...", because they do now. Every day that they have the evidence in front of them that the project is failing and do nothing they're _culpable_ for that as members of the board.
    2. Own the mistake. Say to yourself "I am human and I screw up sometimes" and remember that when you see somebody else screw up too.
    1. Designers are tempted to enforce users to actually use the interface or browse through the site they have created.
    2. In fact, developers often tend to forget a simple, almost elementary fact: if users want to close the application or leave a site, they will — doesn’t matter which obstacles are placed on their path to the exit-button. The more obstacles there are the more negative the user experience will be.