7,345 Matching Annotations
  1. Mar 2021
    1. Fibar bi jàngal na taawan bu góor ni ñuy dagge reeni aloom.

      Le guérisseur a appris à son fils aîné comment on coupe les racines du Diospyros.

      fibar -- (fibar bi? the healer? as in feebar / fièvre / fever? -- used as a general term for sickness).

      bi -- the (indicates nearness).

      jàngal v. -- to teach (something to someone), to learn (something from someone) -- compare with jàng (as in janga wolof) and jàngale.

      na -- pr. circ. way, defined, distant. How? 'Or' What. function indicator. As.

      taaw+an (taaw) bi -- first child, eldest. (taawan -- his eldest).

      bu -- the (indicates relativeness).

      góor gi -- man; male.

      ni -- pr. circ. way, defined, distant. How? 'Or' What. function indicator. As.

      ñuy -- they (?).

      dagg+e (dagg) v. -- cut; to cut.

      reen+i (reen) bi -- root, taproot, support.

      aloom gi -- Diospyros mespiliformis, EBENACEA (tree).

      https://www.youtube.com/watch?v=BryN2nVE3jY

    2. Fexeel ba kër gi bañ ñàkk alkol.

      Veille à ce qu'il ne manque pas d'alcool à la maison.

      fexe+el (fexe) v. -- search/seek by all means.

      ba -- the (?).

      kër gi -- house; family.

      gi -- the (indicates nearness).

      bañ v. -- refuse, resist, refuse to; to hate; verb marking the negation in subordinate clauses.

      ñàkk v. / ñàkk bi -- vaccinate / vaccine (not sure exactly how this fits in the sentence if it's even the right translation -- perhaps it has to do with surgical alcohol rather than drinking alcohol).

      alkol ji -- (French) surgical alcohol. (I'm certain this is also used for the type of alcohol you drink -- but sangara is probably the most used term).

      https://www.youtube.com/watch?v=SsUjvAItysA

    1. Open source code library for building innovative e-learning that is accessible, usable, interoperable, mobile-friendly and multilingual. Based on the Web Experience Toolkit (WET) and bootstrap. This collaborative open source project is led by the Canada School of Public Service, Government of Canada.
    1. Posting an issue on the discussion boards for a three year old game, yesterday, I wasn't holding my breath for a reply. Earlier, this morning, a dev. responded, stating they'd look at fixing it, and it was just a few hours before it were sorted!
    1. Run the complete unit with a certain input set, and test the side-effects. This differs to the Rails Way™ testing style, where smaller units of code, such as a specific validation or a callback, are tested in complete isolation. While that might look tempting and clean, it will create a test environment that is not identical to what happens in production.
    1. Using ::delegates works exactly like the Forwardable module in Ruby, with one bonus: It creates the accessors in a module, allowing you to override and call super in a user module or class.
    1. Having an understanding of higher level abstractions, such as tasks, activities and the historical code path taken, its debugging trace is much closer to how you, as an engineer, think about your code.
    2. Admittedly, both the signature and the return values of invoke feel a bit clumsy. That’s becaus we’re currently working with the low-level interfaces.
    3. Additionally, you may add debugging steps, error handler or rewire the conditions dynamically without touching the original snippet.
  2. Feb 2021
    1. Eh, that's just sales. Humans are dumb, panicky animals: just look at how J.C. Penny's "Fair and Square" initiative went.Short version: they went full-on no bullshit: no limited time sales, no fake prices discounted, things cost what they cost, no more FOMO, no waiting for deals.It tanked. Horribly.
    2. Why do companies insist on making deals a gamble? Is it basically just to capture FOMO sales?Both rhetorical questions.Edit: I'm talking about how you can pay one price for a deal and then a couple months later it's even cheaper.
    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. You’re free to test this activity in a separate unit test.
    2. Whatever data from the outside is needed in the activity has to be passed explicitely into the activity’s call method.
    3. In other words: the controllers usually contain only routing and rendering code and dispatch instantly to a particular operation/activity class.
    4. They help streamlining the control flow, and take away control code while providing you with an incredibly cool developer experience.
    5. You’re allowed to blame us for a terrible developer experience in Trailblazer 2.0. It’s been quite painful to find out which step caused an exception. However, don’t look back in anger! We’ve spent a lot of time on working out a beautiful way for both tracing and debugging Trailblazer activities in 2.1.
    1. identity theft

      Saw this while scrolling through quickly. Since I can't meta highlight another hypothesis annotation

      identity theft

      I hate this term. Banks use it to blame the victims for their failure to authenticate people properly. I wish we had another term. —via > mcr314 Aug 29, 2020 (Public) on "How to Destroy ‘Surveillance C…" (onezero.medium.com)

      This is a fantastic observation and something that isn't often noticed. Victim blaming while simultaneously passing the buck is particularly harmful. Corporations should be held to a much higher standard of care. If corporations are treated as people in the legal system, then they should be held to the same standards.

    1. Please note that this is a higher-level debugging tool that does not confront you with a 200-lines stack trace the way Ruby does it, but pinpoints the exceptional code and locates the problem on a task level. This is possible due to you structuring code into higher abstractions, tasks and activities.
    1. Nonviolent direct action seeks to create such a crisis and foster such a tension that a community which has constantly refused to negotiate is forced to confront the issue.

      How it works - what it seeks to accomplish.

    1. That’s it. If you have a previous “precompile” array, in your app config, it will continue to work. For continuity sake I recommend moving over those declarations to your manifest.js file so that it will be consistent.
    2. Instead of having this confusing maze of lambdas, regexes, and strings, we could, in theory, introduce a single entry point of configuration for Sprockets to use, and in that file declare all assets we wanted to compile. Well, that’s exactly what the manifest.js file is.
    3. For example, what if your site has a customer interface and an “admin” interface? If the two have totally different designs and features, then it might be considerable overhead to ship the entirety of the admin interface to every customer on the regular site.
    1. Did the district just not see the problem with taking away some schools busing?

    2. why don't the teachers look at this and see that the cause is racism?

    3. I find it crazy that the school lost 100 students weekly.

    1. Literally, everything in this example can go wrong. Here’s an incomplete list of all possible errors that might occur: Your network might be down, so request won’t happen at all The server might be down The server might be too busy and you will face a timeout The server might require an authentication API endpoint might not exist The user might not exist You might not have enough permissions to view it The server might fail with an internal error while processing your request The server might return an invalid or corrupted response The server might return invalid json, so the parsing will fail And the list goes on and on! There are so maybe potential problems with these three lines of code, that it is easier to say that it only accidentally works. And normally it fails with the exception.
    2. Now you can easily spot them! The rule is: if you see a Result it means that this function can throw an exception. And you even know its type in advance.
    3. Almost everything in python can fail with different types of exceptions: division, function calls, int, str, generators, iterables in for loops, attribute access, key access, even raise something() itself may fail. I am not even covering IO operations here. And checked exceptions won’t be supported in the nearest future.
    4. You still need to have a solid experience to spot these potential problems in a perfectly readable and typed code.
    1. Though rarer in computer science, one can use category theory directly, which defines a monad as a functor with two additional natural transformations. So to begin, a structure requires a higher-order function (or "functional") named map to qualify as a functor:

      rare in computer science using category theory directly in computer science What other areas of math can be used / are rare to use directly in computer science?

    2. Monads achieve this by providing their own data type (a particular type for each type of monad), which represents a specific form of computation
    3. Supporting languages may use monads to abstract away boilerplate code needed by the program logic.
    1. it is inconvenient to write specific implementations for each datatype contained, especially if the code for each datatype is virtually identical. For example, in C++, this duplication of code can be circumvented by defining a class template
    1. Any time a change is needed, rather than creating new ads and groups, business data can be updated seamlessly, trickling the change to ad copy without triggering an ad Quality Score review.

      Not creating new ad groups or campaigns is mentioned frequently, what is the average number of campaigns recommended to use per vertical?

    1. The activity gem is an extraction from Trailblazer 2.0, where we only had operations. Operations expose a linear flow which goes into one direction, only. While this was a massive improvement over messily nested code, we soon decided it’s cool being able to model non-linear flows. This is why activities are the major concept since Trailblazer 2.1.
    1. An endpoint links your routing with your business code. The idea is that your controllers are pure HTTP routers, calling the respective endpoint for each action. From there, the endpoint takes over, handles authentication, policies, executing the domain code, interpreting the result, and providing hooks to render a response.
    1. I am a delegation junkie. Whenever possible, I assign tasks and responsibilities originally assigned to me onto others.
    2. If you ask my former students, they will tell you that as a teacher, my goal is to do nothing. I dream of the day when I can sit at my desk, feet propped up, reading a book, while the classroom bursts with activity and learning around me.
    3. They fail to recognize the value of an initial investment of time in future productivity.
    1. I work with crazy geniuses who share many of my opinions (not all, and that’s good).
    2. Using a terminus to indicate a certain outcome - in turn - allows for much stronger interfaces across nested activities and less guessing! For example, in the new endpoint gem, the not_found terminus is then wired to a special “404 track” that handles the case of “model not found”. The beautiful thing here is: there is no guessing by inspecting ctx[:model] or the like - the not_found end has only one meaning!
    3. A major improvement here is the ability to maintain more than two explicit termini. In 2.0, you had the success and the failure termini (or “ends” as we used to call them). Now, additional ends such as not_found can be leveraged to communicate a non-binary outcome of your activity or operation.
    4. Yes, Trailblazer is adding new abstractions and concepts and they are different to the 90s-Ruby, but now, at the latest, it becomes obvious how this improves the developing process. We’re no longer talking in two-dimensional method stack traces or byebug hoops, the language and conception is changing to the actual higher level code flow, to activities sitting in activities structured into smaller step units.
    5. 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.
    6. It’s so simple that I sometimes wonder why it took years to develop it!
    7. 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.
    8. We removed the trailblazer-loader gem just like Apple removed the headphone jack from the iPhone 6. This brings you faster startup and consistency with Rails autoloading.
    1. One of the main reasons to work with components is re-usability and portability, but also a delegation of responsibilities. Adding a component should be as easy as simply adding the component without having to know the inner workings (or markup) of this component. A consumer should only be aware of the properties, methods and events of a component. In order to style a child component one has to be aware of the markup as well, which violates this 'delegation of responsibility'-principle.
    1. a framework containing the basic assumptions, ways of thinking, and methodology that are commonly accepted by members of a scientific community. such a cognitive framework shared by members of any discipline or group:
    1. Trailblazer offers you a new, more intuitive file layout in applications.
    2. Instead of grouping by technology, classes and views are structured by concept, and then by technology. A concept can relate to a model, or can be a completely abstract concern such as invoicing.
    3. Concepts over Technology
    4. While Trailblazer offers you abstraction layers for all aspects of Ruby On Rails, it does not missionize you. Wherever you want, you may fall back to the "Rails Way" with fat models, monolithic controllers, global helpers, etc. This is not a bad thing, but allows you to step-wise introduce Trailblazer's encapsulation in your app without having to rewrite it.
    5. Trailblazer is no "complex web of objects and indirection". It solves many problems that have been around for years with a cleanly layered architecture.
    1. bird counts across the United States have fallen a staggering 29 percent in the last 50 years

      29% in 50 years? That means in the next 50 years half of the bird population could decrease!

    1. Fifth, is the idea of the ledger of things. We're already seeing applications of this new Internet of devices and things. Soon though, most transactions will happen between devices and not between people. Consider the smart home, homeowners are adding smart devices such as thermostats and solar panels. Soon potentially, trillions of devices will be connected to the Internet. Doing everything from driving us around to keeping our house lit to managing our affairs and managing our health information. These devices need to be resistant to hacking. They need to be able to communicate value such as money or assets like electricity, peer-to-peer. Consider electricity, if you imagine that your neighbor's home is generating energy from a solar panel and you've got a device that needs to buy that electricity, then those two devices need away to be able to contract, bargain, and execute a payment peer-to-peer. It's not going to happen through the Visa network. It can only happen on the blockchain.

      ledger of things

    1. Grouped inputs It can be convenient to apply the same options to a bunch of inputs. One common use case is making many inputs optional. Instead of setting default: nil on each one of them, you can use with_options to reduce duplication.

      This is just a general Ruby/Rails tip, nothing specific to active_interaction (except that it demonstrates that it may be useful sometimes, and gives a specific example of when you might use it).

      Still, in my opinion, this doesn't belong in the docs. Partly because I think repeating the default: nil for every item is an acceptable type of duplication, which would be better, clearer (because it's more explicit), simpler, keeps those details closer to the place where they are relevant (imagine if there were 50 fields within a with_options block).

      I also think think that it creates a very arbitrary logical "grouping" within your code, which may cause you to unintentionally override/trump / miss the chance to use a different, more logical/natural/important/useful logical grouping instead. For example, it might be more natural/important/useful to group the fields by the section/fieldset/model that they belong with, even if your only grouping is a comment:

      # User fields
      string :name
      integer :age
      date :birthday, default: nil
      
      # Food preferences
      array :pizza_toppings
      boolean :wants_cake, default: nil
      

      may be a more useful grouping/organization than:

      # Fields that are required
      string :name
      integer :age
      array :pizza_toppings
      
      # Fields that are optional
      with_options default: nil do
        date :birthday
        boolean :wants_cake
      end
      

      Or it might be better to list them strictly in the same order as they appear in your model that you are trying to match. Why? Because then you (or your code reviewer) can more easily compare the lists between the two places to make sure you haven't missed any fields from the model, and quickly be able to identify which ones are missing (hopefully intentionally missing).

      In other words, their "optionalness" seems to me like a pretty incidental property, not a key property worthy of allowing to dictate the organization/order/grouping of your code.

    2. In this simple example, the destroy interaction doesn't do much. It's not clear that you gain anything by putting it in an interaction.
    3. ActiveInteraction plays nicely with Rails. You can use interactions to handle your business logic instead of models or controllers.
    4. Since we're using an interaction, we don't need strong parameters. The interaction will ignore any inputs that weren't defined by filters. So you can forget about params.require and params.permit because interactions handle that for you.
    5. This probably looks a little different than you're used to. Rails commonly handles this with a before_filter that sets the @account instance variable.
    6. It's an implementation of the command pattern in Ruby.
    1. Amid awful suffering and deteriorating conditions, Texas Republicans decided to fight a culture war.

      The author has a criticizing tone, which can be implied by him emphasizing Texas's conditions using a negative diction. It is kind of humorous as he stated "cultural wars" instead of disputes. Usually wars leave a drastic impact on the land, but this time, the "war" is occurring on an already destroyed land, which reflects the author's point of view that leaving a conflict dissolved is worse than creating a new conflict.

    1. Establish structured daily check-ins: Many successful remote managers establish a daily call with their remote employees.

      make sure there is space during standup for chit-chat.

    1. Recognize that all people are both located in systems and also uniquely individual

      I love this point, there are so many different places and there is always inequality everywhere.

    2. Some people "get" the idea of systemic privilege and ask "But what can I do?" My answer is, you can use unearned advantage to weaken systems of unearned advantage. I see white privilege as a bank account that I did not ask for, but that I can choose to spend. People with privilege have far more power than we have been taught to realize, within the myth of meritocracy. Participants can brainstorm about how to use unearned assets to share power; these may include time, money, energy, literacy, mobility, leisure, connections, spaces, housing, travel opportunities. Using these assets may lead to key changes in other behaviors as well, such as paying attention, making associations, intervening, speaking up, asserting and deferring, being alert, taking initiative, doing ally and advocacy work, lobbying, campaigning, protesting, organizing, and recognizing and acting against both the external and internalized forms of oppression and privilege.
    3. Think about why U.S. people, especially White people, have trouble seeing systemically. Explain the myth of meritocracy: that the unit of society is the individual and that whatever one ends up with must be whatever that individual wanted, worked for, earned, and deserved. Why do you think this myth survives so successfully, suppressing knowledge of systemic oppression and especially of its "up-side,"systemic privilege?
    4. I repeatedly forgot each of the realizations on this list until I wrote it down. For me, white privilege has turned out to be an elusive and fugitive subject. The pressure to avoid it is great, for in facing it I must give up the myth of meritocracy.

      We need more research and details on the idea of the American myth of meritocracy.

    1. Agents are usually understood to be human, although some paradigms, such as actor-network theory, maintain that non-humans are also endowed with agency.
    2. actor-network theory

      Actor network theory (ANT), also known as enrolment theory or the sociology of translation, emerged during the mid-1980s, primarily with the work of Bruno Latour, Michel Callon, and John Law. Actor–network theory tries to explain how material–semiotic networks come together to act as a whole; the clusters of actors involved in creating meaning are both material and semiotic.

    3. In Translation Studies (TS), the notion of agent has received various definitions. For Juan Sager (quoted in Milton & Bandia 2009: 1), an agent is anyone in an intermediary position (i.e. a commissioner, a reviser, an editor, etc.) between a translator and an end user of a translation whereas for Milton & Bandia (2009) an agent of translation is any entity (a person, an institution, or even a journal) involved in a process of cultural innovation and exchange. A third avenue was suggested by Simeoni (1995) who defined the agent as “the ‘subject,’ but socialized.
    1. No one has requested it before so it's certainly not something we're planning to add.
    2. To give a little more context, structures like this often come up in my work when dealing with NoSQL datastores, especially ones that rely heavily on JSON, like Firebase, where a records unique ID isn't part of the record itself, just a key that points to it. I think most Ruby/Rails projects tend towards use cases where these sort of datastores aren't appropriate/necessary, so it makes sense that this wouldn't come up as quickly as other structures.
    1. class FormsController < ApplicationController class SearchForm < ActiveModel::Form

      I kind of like how they put the form class nested directly inside the controller, although I would probably put it in its own file myself, unless it was quite trivial.

    1. The press release also quoted a UA assistant provost for institutional research who explained that while the swipes of student ID cards were not used in the current student retention analytics, about 800 other data points were

      The research in questions was not currently being used by the institution to improve rention, but other student data was already being used for that purpose

    2. The researcher noted that the data she had used had been anonymized before she was given access to it—however, she added that if/when her research might inform the ongoing efforts to improve student retention, the student’s personal details would be “shared” with the students' academic advisers.

      The data was anonymized before she was given access, but she admitted that there might be interest in sharing students' personal details with academic advisors

    3. She then used that data to create large networks mapping which students interacted with one another and how often.

      The researcher sought to track the personal interactions of students with one another

    4. On the university’s website, a press release

      The university share the finding of the research after the fact

    5. At the University of Arizona, for example, a researcher analyzed the swipes of student ID cards at locations across campus, “to see what they reveal about students' routines and relationships, and what that means for their likelihood of returning to campus after their freshman year.”

      Fact. Student ID Cards Collect Data Fact. A researcher was given access to this data for her own purposes.

    1. As a result, dry-types, dry-struct and dry-schema were born. These projects should be considered as virtus' successors, with better separation of concerns and better features.
    1. which have recently become umbrella terms referring to any piece of quickly-consumed comedic or relatable content
    1. The Chicago Manual of Style and the Associated Press (AP) both revised their formerly capitalized stylization of the word to lowercase "internet" in 2016.[3] The New York Times, which followed suit in adopting the lowercase style, said that such a change is common practice when "newly coined or unfamiliar terms" become part of the lexicon.
    2. The spelling "internet" has become often used, as the word almost always refers to the global network; the generic sense of the word has become rare in non-technical writings.

      rare to see "internet" used to mean an internetwork in the general sense

    1. However, sometimes actions can't be rolled back and it is unfortunately unavoidable. For example, consider when we send emails during the call to process. If we send before saving a record and that record fails to save what do we do? We can't unsend that email.
    2. I typically save everything I can first, and then call the side-effects afterwards. If the side-effects fail I can handle them elsewhere and retry when necessary.
    3. The basic classification of a form object is a class that contains writable attributes, validations and logic to persist the attributes to ActiveRecord objects. These forms can also include other side-effects like background job triggers, emails, and push-notifications etc. The simplest way to understand the concept is to think of them as a representation of a controller action where all of the business logic that happens in that controller action is abstracted into a form object.

      This definition may be a bit too broad. Others (like Reform) define it to have smaller scope — only the part where it persists/validates attributes. The other side effects might be better to put in a different location, like the controller action, or a service/processor object that has a form object.

    1. Foucault probably offers the most helpful theoretical approach. His “archaeology of knowledge” suggests a way to study texts as sites that bear the marks of epistemological activity, and it has the advantage of doing justice to the social dimension of thought.

    1. famous movie review which describes the Wizard of Oz as: “Transported to a surreal landscape, a young girl kills the first person she meets and then teams up with three strangers to kill again.”

      This is a great example of context collapse. It's factually true, but almost no one who's seen it would describe it this way.

      It's reminiscent of how advertising and politics can twist meaning. Another great example is the horror cut of Disney's Frozen trailer https://www.youtube.com/watch?v=CIMk1_wwxz8

    1. Frame of reference has been manipulatedCrime statistics are often manipulated for political purposes by comparing to a year when crime was very high. This can expressed either as a change (down 60% since 2004) or via an index (40, where 2004 = 100). In either of these cases, 2004 may or may not be an appropriate year for comparison. It could have been an unusually high crime year.This also happens when comparing places. If I want to make one country look bad, I simply express the data about it relative to whichever country which is doing the best.This problem tends to crop up in subjects where people have a strong confirmation bias. (“Just as I thought, crime is up!”) Whenever possible try comparing rates from several different starting points to see how the numbers shift. And whatever you do, don’t use this technique yourself to make a point you think is important. That’s inexcusable.

      This is an important point and when politicians are speaking it, they should cite their sources meticulously.

    1. NO support whatsoever will be given for the moment unless I gave you the program personally. This is because all of this is work in progress and I can't code while constantly writing documentation and answering questions.
    1. Because the mainstream social networks have been designed by a tiny number of people, we have been prevented from experimenting and creating new knowledge about what sustainable community management online looks like. Start erasing the line between operators, customers, and community members and squint; you begin make out the shape of a group of people who can build for themselves and determine their own path of development.

      Interesting to look at this idea from the perspective of the IndieWeb community that owns and operates its own community spaces that are aggregated around a wiki and chat, but which overflow into the web itself.

      How does this relate to my idea of A Twitter of Our Own?

    2. Education and practitioner networks We’re seeing a lot of new venture funded education communities, but here once more is a reason to be more excited about bottom-up community-driven businesses. What happens when groups of independent teachers or consultants who are already chatting have shared interfaces to formalize, quote, and invoice? In the past, guilds have provided excellent education opportunities, and they can again.

      Yes, how can we build tooling around an education related community?

    1. The Timeless Way of Building is the first in a series of books which describe an entirely new attitude to architec- ture and planning. The books are intended to provide a complete working alternative to our present ideas about ar- chitecture, building, and planning—~an alternative which will, we hope, gradually replace current ideas and practices,

      [[the timeless way of building]]

    1. As of today, you can Wishlist OpenTTD on SteamE. Historically, OpenTTD always had a single home from where we distributed the game. We used to be hosted on SourceForge (you know you are old, if you remember that being a thing :D), and slowly moved towards our own self-created distribution methods. These days, we mostly distribute our game via our website. But times are changing, and so is our hair. Over the last few months, we have silently been working to become a bit more visible in the world. Don’t worry, not for reasons you might think: OpenTTD has as many active users as it had in 2007. But more because we no longer think it is the right approach to only distribute via our own website. This became painfully apparent when we noticed other people post OpenTTD on some stores. They are not always updated with new releases, sometimes even slacking behind a few years. And maybe more important to us: we can not guarantee that the uploaded version is unmodified and is the version as we intended. So, instead of fighting it, why not turn around and join them! Why not release our own, verified, builds on those stores! And this is exactly what we have been working on lately. And when I say “we”, a bit ironic to me, I mean the two developers that are around longest (myself and orudge) ;) A while back orudge added OpenTTD to the Microsoft Store. And today, I am happy to announce we will be on SteamE too! Well, we are on Steam, but we haven’t released anything there yet (sorry that I got your hopes up, just to squash them right after :( ). This is partially because of how Steam works, but also because we know we can bring a better experience for Steam with our upcoming release. That brings me to the most exciting news: if everything goes as planned, we will release OpenTTD 1.11 on Steam on the first of April, 2021! And that is not even an April fools’ joke! You can already Wishlist OpenTTD today .. and till we release on Steam, you can find our game via our website ;)
    1. As of today, you can Wishlist OpenTTD on SteamE. Historically, OpenTTD always had a single home from where we distributed the game. We used to be hosted on SourceForge (you know you are old, if you remember that being a thing :D), and slowly moved towards our own self-created distribution methods. These days, we mostly distribute our game via our website. But times are changing, and so is our hair. Over the last few months, we have silently been working to become a bit more visible in the world. Don’t worry, not for reasons you might think: OpenTTD has as many active users as it had in 2007. But more because we no longer think it is the right approach to only distribute via our own website.
  3. parsejournal.com parsejournal.com
    1. To what extend does that what is perceived as human agency actually emerge from what is afforded by the ecologies in which humans operate?

      key question here so far

    1. Unlike naming children, coding involves naming things on a daily basis. When you write code, naming things isn’t just hard, it’s a relentless demand for creativity. Fortunately, programmers are creative people.
    2. Naming matters for both idealogical and practical reasons.
    3. Naming is just one part of the micro-design activity that we call programming. If design weren’t hard, we wouldn’t find good design so satisfying.
    4. In principle, the naming things in code need only be temporary, but names in code stick just like nicknames at school.
    1. Well, I'm glad they did, because Turbolinks is a much better piece of software than jquery-pjax ever was. It's actively maintained and doesn't require jQuery at all! So we're one step closer to our dream of ditching $.
    1. Innovative learning, on the other hand, refers to becoming familiar with unfamiliar situations that have no clear precedent for action, or with managing familiar situations in better ways, such as seeking alternative solutions to existing problems.

      This innovative learning is clearly important for designers. I think that modifying an existing situation to try and make it better would be far easier than a completely unfamiliar one. This lends itself to more creativity due to no clear previous path.

    1. (1) gaining the attention of the learners, (2) demonstrating the relevance of the instruction to the learners, (3) instilling learners with confidence to succeed with the instruction, and (4) deriving satisfaction when they do.

      This model is a great way to ensure engagement with learners. Specifically part 2 and 3 stuck out to me as key. The second point was that we must demonstrate relevance of instruction. This is fixes that question that always seems to come up, "Why are we doing this if I'll never use it in real life?". Any time I preface a lesson with why we are learning something and how it is necessary in our lives my students always seem to receive it better. Part 3 noted that we must instill confidence to succeed. Giving students the confidence to try hard things is vital to success.

    1. undermine the integrity of the Version of Record, which is the foundation of the scientific record, and its associated codified mechanisms for corrections, retractions and data disclosure. 

      This misrepresents the situation. Authors accepted manuscripts (AAM) have been shared on institutional and subject repositories for around two decades, with greater prevalence in the last decade. Despite this the version of record (VoR) is still valued and preserves the integrity of the scholarly record. The integrity of the VoR continues to be maintained by the publisher and where well-run repository management are made aware, corrections can be reflected in a repository. The solution to this problem is the publisher taking their responsibility to preserving the integrity of the scholarly record seriously and notifying repositories, not asserting that authors should not exercise their right to apply a prior license to their AAM.

    2. the Rights Retention Strategy is not financially sustainable

      So far as I know this is not tested or based on any evidence. If the publishers think an open accepted manuscript would undermine the version of record, it doesn't demonstrate much confidence in their added value to me.

    1. Feenberg (2014) - The Philosophy of Praxis

      • https://is.gd/rRdkpf
      • urn:x-pdf:66643138316666396434353333386635343038303761366166633161366638316662343434306138303065653764313430666538396130653139366537353237

    Tags

    Annotators

    1. Cressman (2020) - Contingency and Potential: Reconsidering a Dialectical Philosophy of Technology

    1. Greene went on to say, "If it weren't for the Facebook post and comments that I liked in 2018, I wouldn't be standing here today and you couldn't point a finger and accuse me of anything wrong."

      Sure... blame Facebook!

      I'll bet dollars to donuts that she doesn't vote to regulate Facebook in any way during her tenure.

    1. Because of the way the CSS “or” operator works, I wouldn’t be able to mix the retina conditions with other expressions since a (b or c) would be compiled into (a or b) c and not a b or a c.
    1. div:nth-of-type(3n+1) { grid-column: 1; } div:nth-of-type(3n+2) { grid-column: 2; } div:nth-of-type(3n+3) { grid-column: 3; } div:nth-of-type(-n+3) { grid-row: 1; }
    2. #ttt > * { border: 1px solid black; border-width: 0 1px 1px 0; display: flex; /* flex styling to center content in divs */ align-items: center; justify-content: center; } #ttt > *:nth-of-type(3n) { border-right-width: 0; } #ttt > *:nth-of-type(n+7) { border-bottom-width: 0; }
    1. Although one thing you want to avoid is using frames in such a manner that the content of the site is in the frame and a menu is outside of the frame. Although this may seem convienient, all of your pages become unbookmarkable.
    1. Iframes can have similar issues as frames and inconsiderate use of XMLHttpRequest: They break the one-document-per-URL paradigm, which is essential for the proper functioning of the web (think bookmarks, deep-links, search engines, ...).
    2. The most striking such issue is probably that of deep linking: It's true that iframes suffer from this to a lesser extent than frames, but if you allow your users to navigate between different pages in the iframe, it will be a problem.
    1. Keep your domain in one place. If you ever get mad at your web host and decide to move your site, you’ll also probably want to transfer your domain if it’s registered with the old host. Domain transfers can be annoying, time-consuming, and confusing. But if you’ve registered the domain elsewhere, you don’t have to do anything except update your DNS settings to point to the new host.
    1. remember that for each loaded iFrame, a DOM is created, HTML requests are made and document wrappers are instantiated, eating memory and bandwidth in the process
    1. cultural capital

      Introduced by Pierre Bourdieu in the 1970s, the concept has been utilized across a wide spectrum of contemporary sociological research. Cultural capital refers to ‘knowledge’ or ‘skills’ in the broadest sense. Thus, on the production side, cultural capital consists of knowledge about comportment (e.g., what are considered to be the right kinds of professional dress and attitude) and knowledge associated with educational achievement (e.g., rhetorical ability). On the consumption side, cultural capital consists of capacities for discernment or ‘taste’, e.g., the ability to appreciate fine art or fine wine—here, in other words, cultural capital refers to ‘social status acquired through the ability to make cultural distinctions,’ to the ability to recognize and discriminate between the often-subtle categories and signifiers of a highly articulated cultural code. I'm quoting here from (and also heavily paraphrasing) Scott Lash, ‘Pierre Bourdieu: Cultural Economy and Social Change’, in this reader.