Process timeout on git clone with composer update

git clone exceeded timeout “2000” seconds The process git clone exceeded the timeout of 2000 seconds. maximum The process "git clone --mirror -- 'https://github.com/drupal/core.git' '/m nt/ddev-global-cache/composer/vcs/https---github.com-drupal-core.git/'" exc eeded the timeout of 2000 seconds. This is after putting "process-timeout": 0 under "config" in the composer.json file.

Blockquote quotation with citations in Drupal CKeditor

drupal ckeditor insert quotation cite author drupal ckeditor insert quotation attributions Seems really heavy to use paragraphs for this element. That’s just not a nice content authorship experience. Wish we would move to server-side-rendered web components. https://www.drupal.org/project/ckeditor_quote

Best embed of Twitter tweets with styles, height adjusted, and fallback to archive

Making the embedded tweet the right height oembed twitter full height twitter embed height postMessage twitter embedded tweet set iframe height A service that successfully works with Twitter to get the height: https://twitframe.com/ Note that it is necessary to work with Twitter somehow; it is not possible to calculate the height of another website’s page embedded as an iFrame without providing a way for you to get this info. Per the author of https://github.

drupal 9 view media entities standalone on own page

drupal 9 view media entities on own pages modern drupal 10 view media entities standalone This is simply a configuration option that is disabled by deafult for some good reasons documented in the issue that removed the public display: Media items should not be available at /media/{id} to users with ‘view media’ permission by default [#3017935] | Drupal.org Change in config/media.settings.yml that enables the media entity on its own page:

Drupal module to block known bad passwords

drupal module block known bad passwords drupal module prevent known bad passwords password blocklist drupal module block weak passwords drupal module One of the basic safety improvements Best one probably: https://www.drupal.org/project/pwned_passwords For avoiding bad (but novel!) passwords maybe consider https://www.drupal.org/project/better_passwords for implementing the NIST guidelines, or https://www.drupal.org/project/password_policy which can be configured the same way but allows more flexibility.

Developing software with documentation future programmers and collaborators will benefit from

See this talked about a lot—given lip service—in terms of the importance of “documentation”, but have best practices in transferability. programmers communicating application decisions with future developers CHANGELOG roadmap From Brian Dominick’s Codewriting: Lots of people in different roles can readily contribute to documentation efforts. Content is managed as discrete components of a whole, instead of merely at the document level. All content can be single-sourced, meaning tech writers and engineers maintain one canonical source of truth, no matter how many places that content needs to appear in the generated docs.

Filter a list of names with JavaScript

drupal in-place search javascript For Drupal, this has been suggested but not acted upon yet: Create Javascript library for searching rendered lists on the client. [#3028968] | Drupal.org One implementation: https://www.w3schools.com/howto/howto_js_filter_lists.asp

Adding bundle subclass to node types in Drupal 9 and modern Drupal

There is no good example in Drupal core: Add a bundle subclass for forum.module’s business logic [#3233398] | Drupal.org has no code yet Make buildBundleFieldDefinitions use Bundle Classes for building bundleFieldDefinitions [#3266287] | Drupal.org does not seem to be applicable to common custom or contrib use cases There is no example in the Examples project (@TODO file issue) And the change record – Introducing bundle classes | Drupal.org – and the definitive blog post by one of the main authors of the functionality – Adding Bundle Subclasses to Drupal Core 9.

Track origin of traffic from what part of page in Plausible analytics

How to easily track internal origin of traffic (reached an article from trending vs editor’s picks blocks, got to donate page via main menu vs footer links) Track origin of internal traffic from what part of page the person followed a link from The goal is to track things like: how many people clicked on links from what parts of pages? in the ‘related content’ block or ‘popular content’ block or the donate link and

Seeing mail stored by mail collector in Drupal 9 not just word array

drush sget system.test_mail_collector just gave Array. Yeah, the word array. The secret is var_dump So: drush sget system.test_mail_collector --format=var_dump Updated https://www.drupal.org/docs/develop/local-server-setup/managing-mail-handling-for-development-or-testing#s-mail-to-state-system-drupal-8 to include this format part— without providing a forgiving format, you can get just ‘array’ or an error from this state get command. In our case, on DDEV, we would much rather these e-mails end up in mailhog, so on this old site which was using Swiftmail we changed the config in settings.

Suddenly broken Clipboard History Gnome Extension (and maybe others?)

May 20 06:45:53 d64 gnome-shell[2300]: JS ERROR: TypeError: undefined has no properties loop/<@/home/mlncn/.local/share/gnome-shell/extensions/clipboard-history@alexsaveau.dev/store.js:144:56 parseAvailableAware@/home/mlncn/.local/share/gnome-shell/extensions/clipboard-history@alexsaveau.dev/store.js:189:7 loop@/home/mlncn/.local/share/gnome-shell/extensions/clipboard-history@alexsaveau.dev/store.js:142:26 loop/<@/home/mlncn/.local/share/gnome-shell/extensions/clipboard-history@alexsaveau.dev/store.js:137:11 Apparently it means my history corrupted the database: https://github.com/SUPERCILEX/gnome-clipboard-history/issues/67 Reason i thought there was/is a more general Gnome Extensions issue is because the settings buttons on any of the extensions simply does not work. Other errors: Unhandled promise rejection. To suppress this warning, add an error handler to your promise chain with .catch() or a try-catch block around your await expression.

Missing views template suggestions in reality not just what is shown for skins a module that adds additional suggestions

views template suggestions drupal 9 Template override suggestions not working for specific views [#3280592] | Drupal.org This is probably caused by Drupal core bug of not listing Views template suggestions, so Skins isn’t able to add its new ones. [PP-1] Use hook_theme_suggestions in views [#2923634] | Drupal.org Incorrect order and duplicate theme hook suggestions [#2752443] | Drupal.org Twig debug output does not display all suggestions when an array of theme hooks is passed to #theme [#2118743] | Drupal.

Awful first experience starting to use Discord

Main thing is i signed up with an invitation link from a group i’m in that started using it; Discord did not ask for a phone number during registration, but then every time i tried to log in Verify Discord Login from New Location first time it told me the link has expired the second time… IP authorization link has expired Please login to resend the link THIS. IS. MADNESS.

Modern Drupal plain text as HTML via a field formatter

drupal 8 plain text as html field formatter https://www.drupal.org/project/html_field_formatter OR maybe https://www.drupal.org/project/advanced_text_formatter can do it. https://www.drupal.org/docs/contributed-field-formatters/text-plain Via https://sarahcodes.medium.com/getting-drupal-8-field-values-in-twig-22b80cb609bd

Store subscriber source in Listserv

listserv add subscribe source Looking through the not-particularly https://www.lsoft.com/manuals/16.0/htmlhelp/list%20subscribers/LSCommands.html https://www.technology.pitt.edu/help-desk/how-to-documents/mailman-advanced-preferences-list-administrators

OpenCollective integration with Drupal and WordPress

drupal opencollective integration There’s been interest but it was only done at a very shallow level in Drupal 7, not yet at all in modern Drupal. Funding: Upgrade to Drupal 9 [#3272821] | Drupal.org

A notify messaging framework that can do SMS and Signal, and allow signups without logging in with e-mail

message stack sms framework drupal drupal content variants publish once everywhere https://www.drupal.org/project/smssystem email_registration Anonymous subscriptions. OTP Login | Drupal.org https://www.drupal.org/project/sms_register_login https://www.drupal.org/project/courier sms_twilio Key module for relating our new ’notifyme’ entity to nodes or taxonomy terms that we want to subscribe to: https://www.drupal.org/project/dynamic_entity_reference smsframework already requires this module but not sure how it makes use of it. DANSE DANSE Drupal - Audit - Notification - Subscription - Event | Drupal.org

Quality control modern Drupal modules

Drupal 8 9 10 11 modern Drupal modules for quality control improvements Modules useful for quality control. To consider for Drutopia. Content Node Link Report Editoria11y Accessibility Checker | Drupal.org Simple Style Guide | Drupal.org Split Preview | Drupal.org - drupal preview content at different sizes - request from Longshore Workers Coalition Admin notifications Push Framework Alerta | Drupal.org PoorMans Uptime Checker | Drupal.org Making it easier to enable and disable features Feature toggle | Drupal.

PHP talk to command line programs

php arbitrary command line interaction The goal here is not to run PHP programs from the command line, but to talk to programs available on the command line, like at srv/local/bin, through your (web-based) PHP software. Talk to the other server directly from PHP: Not installed by default. https://www.php.net/manual/en/function.ssh2-exec.php On your server: https://www.php.net/exec Making it much nicer: https://github.com/mikehaertl/php-shellcommand

Tech for mutual aid

Free/libre open source software, tools, technology for mutual aid work. curious what https://www.twincitieslogistics.org/ would say i added a tech section to the notes here: https://pad.drutopia.org/p/mutual-aid-adjacent (very cursory i am sure there’s great and helpful stuff i’m missing) Not knowing context i’d hazard that https://www.ushahidi.com/ might be the best bet. They’ll set up a demo for you or i can add people to the demo i got set up, have not done much with, https://againstterror.

Adding a .ics file event to Nextcloud/Thunderbird calendar in one click on Debian Gnome or Ubuntu

For a while through some magical happenstance for the first time in my GNU/Linux experience downloading an ical or ics file would open by default in Evolution which would then add it to my calendar in a couple clicks, even though i was not using Evolution for e-mail or honestly the calendar. It was just synched to the same calendar account (provided via NextCloud) that i used for everything else, somehow, wonderfully.

Redirect to nearest matching longer path when someone visits via a cutoff URL

drupal complete cut off URLs drupal redirect to page with cut off URL Stopped writing this raw note to instead add this issue: Redirect to nearest matching longer path when someone visits via a cutoff URL [#3276755] | Drupal.org A really great feature would be if someone tries to visit a URL that has been cut off (by e-mail wrapping, missing a bit in copy-paste, or SMS character limit) to automatically forward the person to the full path when there’s only one matching.

Federated share of NextCloud folders

does your nextcloud have federated sharing enabled? if so could you just do a share this folder with me@fileshare.example.org? or, if it’s easier, maybe just upload them here? download all files from your instance isn’t generating a valid ZIP file unfortunately  nm, you can trigger a federated share apparently that is awesome about federated shares!! I tried adding “Allow editing” and “Allow creating” to your share and it gave an error

Just never try to nest a git project in a git project

Use git submodules, sure. Ignore the directory and handle with a package manager like composer, sure. But think you can just stage and commit the folder, and just have a working complete repository when someone else clones the code… no. How to undo this situation: Via https://stackoverflow.com/a/1789374/1028376 which also has the solution for preserving the git commit history. git undo submodule keep code However having an autocommit running while dealing with folders that have .

Applying Tom Select to multiple elements based on matching css selector

“tomselect” multiple matching css selector document.getElementsByTagName iterate First i tried this, and expected it to apply to every multiple select element on the page: var settings = {}; new TomSelect("select[multiple]", settings); This did not work. In documentation that was removed tomselect does indeed “Note: using CSS Selectors that match multiple elements will only create a Tom Select instance on the first matching element.” It is not hard to fix, you just have to know that TomSelect will not be doing the iteration for you.

Inject embedded social media follow link buttons or signup forms into node content between paragraphs Drupal 8 9 10

drupal 9 add token for nodes https://www.drupal.org/project/token_filter References that were not needed but look good for similar stuff https://kevinquillen.com/creating-custom-token-drupal-8 https://codimth.com/blog/web/drupal/how-create-custom-token-drupal-8-9 drupal 8 form add hash fragment to submit path Because we always want to go to the same place on the page when using the mini form, that is, this destination does not have to be dynamic, this works great: $form['#action'] = "#snapshot-mini-form"; This sends the reader back to where they were in article—the form—after submit.

Restore the individual commits history that was lost in a squashed merge

git undo squashed merge commit to restore commit history git merge origin/squashed-branch --strategy-option ours When done, you should end up with identical files when you do this: git diff main origin/main But with the full commit history will be there on your local branch when you git log. At this point you will have to force push to replace the branch without all the individual commit history.

Create a path alias from a contrib module in drupal 9 10

Motivation Create a path alias for paths used by your contributed module to give nicer paths for module-name-prefixed paths, if those paths are not already taken. Words searched contrib module create path alias drupal contributed Drupal 9 10 11 module make new path alias programmatic create path alias drupal Per https://drupal.stackexchange.com/a/291584/4195 this is the way to programmatically save a path alias:

Notes on making web components with React in Typescript, using Styled Components, Tachyons CSS, and displaying in Storybook

typescript react components storybook https://medium.com/@annycarolinegnr/storybook-with-react-typescript-1c15a1cbc26a https://medium.com/@jikkujose/tachyons-styled-components-pure-joy-6173d3888548 https://blog.logrocket.com/build-component-library-react-typescript/ react typescript component extend https://www.erikverweij.dev/blog/making-your-components-extensible-with-typescript/ https://dev.indooroutdoor.io/how-to-extend-any-html-element-with-react-and-typescript storybook react menu icons https://storybook.js.org/tutorials/intro-to-storybook/react/en/simple-component/ react component menu link active react component variations styled-components react components typescript props styled-components background color https://www.freecodecamp.org/news/visual-variants-for-react-components-with-styled-components-dfaff6a76273/ https://www.danielbischoff.com/blog/2018-02-26--ts-react-props https://blog.devgenius.io/using-styled-components-and-props-with-typescript-react-a3c32a496f47 https://styled-components.com/docs/basics#passed-props https://dev.to/annysah/build-a-sidebar-menu-with-react-typescript-and-styled-components-54ge Other https://tachyons.io/docs/table-of-styles/ https://styled-components.com/docs/api#attrs https://styled-components.com/docs/basics#attaching-additional-props https://blog.logrocket.com/how-to-use-svgs-in-react/

Fixing Markdown module setup after an upgrade to Drupal 9-compatible 3.x branch

Other Don’t remember what the deal with this was, saw it at some point clearly, [08-Mar-2022 12:11:17] WARNING: [pool www] child 19770 said into stderr: “NOTICE: PHP message: Uncaught PHP Exception Drupal\markdown\Exception\MissingVersionException: “The library “commonmark” did not not specify a version. If the plugin has no version, it must be explicitly set to “0.0.0”.” at /var/www/html/web/modules/contrib/markdown/src/Plugin/Markdown/InstallablePluginBase.php line 316”

How to scuttle your Gnome desktop without hardly trying, and how to recover

Not entirely positive, but possibly what brought the whole thing down was uninstalling a package which was blocking upgrades (and could not be fixed, sudo apt --fix-broken install libwacom9 also failed): $ sudo apt remove libwacom9 That seemed fine. sudo apt update && sudo apt upgrade && sudo apt dist-upgrade Running the upgrades seemed fine, except that while they were running, the screen lock came up— and trying to log back in through the GUI was a complete nonstarter.

Shut down all running docker containers

This stops all docker containers, running or not. docker stop $(docker ps -a -q) Note that this will also stop/break running DDEV projects, as DDEV uses docker under the hood, and same for any docker-using tools.

SSH into a docker container

Presuming it is already running: docker-compose exec app bash where “app” is the name of your application. Check currently running docker containers for your project and their names with docker compose ps.

Identifying Composer Update Unresolvable Requirements Dependencies Conflicts

When you run composer update and get a huge wall of text telling you that your requirements could not be resolved to an installable set of packages, you can be forgiven for thinking that the important information will be at the beginning of the problem listing or perhaps at the very end. Or perhaps in one of the dozen or more authoritative-sounding statements such as “Conclusion: don’t install drupal/core 9.4.x-dev (conflict analysis result)”.

Drupal 9 non-existent permissions configuration removed

non-existent perms and list dependencies Per Permissions must exist | Drupal.org: An update function is provided to remove invalid permissions from existing roles. After running that update hook, you will note the old and invalid permissions are removed from your configuration (the user.role.name_of_role.yml files). When noting this change on Portside, where the changes were significant because it was a site that had been updated from Drupal 7 and had permissions for modules that were long gone hidden in there.

Using Signal as a collective receiver and broadcaster to replace Signal Boost with signal-cli

The big breakthrough for me was being told by wolcen that signal-cli could be used to register a phone number with Signal. Before that i had been trying to follow guides like this but having no success because my Android devices available already had Signal app in use and did not have multiuser capability enabled or was an old Android tablet which Signal does not support (not any tablets, i don’t think).

does zoom show your phone number

Another possible entry in the list of reasons Why Not to use Zoom: if people might associate their phone number with Zoom, and if so, if the host of a Zoom meeting might see participant’s phone numbers (even though they are joining via computer)? Friend here started getting phone messages from unfriendlies just after joining a Zoom meeting pseudonymously

Stop Signal from displaying names from your address book contacts and show only what people have set in their Signal profile

This basic bit of crucial security so people don’t accidentally dox their own friends in group chat is utterly missing from Signal, which purports to be a secure chat app. make signal not use system contacts You can go to Android settings, to permissions, to the app and remove the Contacts permission specifically. Restart your phone to actually get it to stop pulling in your contact name.

distributed tool library software for keeping track of where lent out stuff is so the next person can borrow it

open source library checkout sharing borrow Looking for open source free software for building a tool library. I have a hammer, or post-hole digger, or circular saw. I can list it so people know i’m open to lending it. When someone borrows it, it gets listed as with them. The original owner of the tool (or really any physical object, from decorative lace curtains to a book) is tracked, if the initial giver does not disclaim ownership of it, but more importantly

Submitting Drutopia as a project for funding through Open Source Collective

We are trying to meet this criteria: https://www.oscollective.org/#criteria It’s automatic for projects with 100 stars on GitHub. Currently 41 stars on GitLab, pretty good for GitLab without promotion or being a framework for developers but intended as a distribution for regular users. https://gitlab.com/drutopia The flagship distribution itself currently has 41 stars on GitLab, https://gitlab.com/drutopia/drutopia/ Everything that goes into the distribution is built to be modular and support the Drupal ecosystem, and in some cases PHP overall.

Signing up for a Twitter development account

We will be posting from the Drupal content management platform. We are upgrading the public contributed module https://www.drupal.org/project/social_post_twitter for this purpose. The posts will be to put content from our website onto Twitter, sometimes with the complete post back to the related post on the website. We are doing this for ourselves, and are also interested in doing this for select not-for-profit organizations we support. We will be posting tweets based on content of our websites.

Individual retirement accounts for a partnership

partners individual 401ks SEP with partnership Agaric is a cooperative but the United States worker-owners are taxed as partners in a pass-through LLC. https://www.irs.gov/retirement-plans/retirement-plans-faqs-regarding-seps https://www.irs.gov/retirement-plans/choosing-a-retirement-plan-simple-401k-plan https://www.irs.gov/retirement-plans/plan-sponsor/simple-ira-plan Decent overview: https://www.415group.com/tax-favored-retirement-plans-for-partnerships Very wide overview of everything: https://investmentfirms.com/best-401k-alternatives/ https://www.irahelp.com/forum-post/29757-solo-401k-partnership-firm https://www.solo401k.com/llc-contributions/ https://individual401k.com/rules.html SEP vs Solo 401K https://smartasset.com/retirement/sep-ira-vs-solo-401k-which-is-better https://www.guideline.com/blog/sep-ira-vs-401k/ Defined Benefit Plan Cash-Balance Defined-Benefit Plan LLC partnership K1 Comparison with others: https://www.mlrpc.com/articles/tax-favored-retirement-plans-partnerships/ https://saberpension.com/2019/05/01/defined-benefit-plan-self-employed/#Chapter5 SEP IRA account options digital credit union SEP IRA https://www.dcu.org/bank/retirement/ira-savings.html https://investor.vanguard.com/accounts-plans/small-business-retirement-plans/sep-ira

Some responses to a survey about cooperatives and libre software by Cooperativa Tierra Común

Survey put out by Cooperativa Tierra Común of México. Job role: software programming for websites (PHP/Drupal, Python/Django, JavaScript, HTML, CSS); identifying client needs; writing user stories; participating in internal planning and documenting policies and practices; speaking to potential clients; attending and speaking at events; social media marketing; research; bookkeeping. What is your opinion on Free/Libre and/or Open Source Software (FLOSS)? Please elaborate on your answer. We use libre software as part of our commitment to helping people gain the most power possible over their own lives; it is part of giving people control over their websites.

Change a Drupal 9/10 system message to say what you want it to say

modern Drupal 8 9 10 11 override message warning alert information text overriding message strings customize Drupal messages shown to users The easiest way to do this is actually with string overrides. grep your codebase for a part of the message you want to change, because you need to get the original source code to have an exact match on the string, including exactly how much it includes or doesn’t include, and any variable names it has that are substituted for something dynamic in the message.

Unkown path components Facebook SDK

Error Facebook\Exceptions\FacebookResponseException with message 'Unknown path components: /<my-fb-page-id>/feed Solution Previously had attempted posting to facebook using the v12 api but the api expects v12.0 path example: /v12.0/<my-fb-page-id>/feed Accordingly, The error was fixed by appending .0 to the version string as shown above Unfortunately the error is not particularly helpful in indicating which path component is unknown or what needs to be fixed

Using regular expressions to pull information out of a column, remove it from that column, and put it in a new one with Pandas

pandas str extract and remove There’s got to be a better way to do this, but here’s what i’m doing: python cast to int That’s simply int(something) but i did not end up using that. python concat pandas add string to all values of column pandas str replace from series pandas str replace frame re.sub pandas substitute text two columns pandas substitute string from series pandas replace part of column with another column

Fix or obviate need for and work around failed CKEditor Mentions update hook

The 2.x branch of CKEditor Mentions introduces an update hook 8002 which is causing an error when we update to it. Update aborted by: ckeditor_mentions_update_8002 In this commit for issue Use the official CKEditor mention plugin [#3009308] | Drupal.org. It could be a flaw in the update hook itself (why return false and so abort?) or it may be, as often happens, an update hook that only makes sense within the context of the 2.

Update hooks showing as pending and they run without error but do not actually run and continue to always show as pending

drupal module update hooks listed but never run shown again drupal updates dependencies always pending modern drupal 8 9 10 showing update hooks that need to be run but never running them but never showing an error either So here is what’s causing it: As long as the group module is not enabled, this just prevents any of the related update hooks from being run. /** * Implements hook_update_dependencies(). * * - Make group status column filling run before hide revision field update.

Automatically fill value of one field with a copy of what was just entered in another Drupal 9

Drupal 8 copy field value to another field https://www.drupal.org/project/safeword drupal behaviors attach in order There’s several patches to do this, with various approaches (weight, specifying before / after) that nod_ in particular has put a lot of work into but none are in Drupal core yet. So yeah we’ll just do everything we need to do in one module. drupal 8 drupalSettings To add your variable to drupalSettings it’s simply (in our case for the form where we are attaching our JavaScript file to, it’s the second line that passes in a variable):

Not found CKEditor plugin JavaScript already present at different libraries path

downloaded to libraries/ckeditor.link but looking for it at libraries/link drupal 9 After stumbling upon this issue and indeed there was: https://packagist.org/packages/drupal-ckeditor-libraries-group/fakeobjects I now have exactly identical files at: web/libraries/fakeobjects/plugin.js web/libraries/ckeditor.fakeobjects/plugin.js OK, And there is also (a presumably incompatible?) issue to fix the problem of it being in two places: Store plugin in libraries/ckeditor.fakeobjects [#3208959] | Drupal.org My commit message as i added + "drupal-ckeditor-libraries-group/fakeobjects": "^4.17", + "drupal-ckeditor-libraries-group/link": "^4.17", to composer.

Hook form alter for node add or edit forms in Drupal 9

drupal 8 node add edit form alter /** * Implements hook_form_BASE_FORM_ID_alter() for node_form. */ function drutopia_findit_program_form_node_form_alter(&$form, FormStateInterface $form_state, $form_id) { $bundle = $form_state->getFormObject()->getEntity()->bundle(); if (!in_array($bundle, ['findit_program', 'findit_event'])) { return; } // Do things on the edit form or the content creation form for program or event nodes. } https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Form%21form.api.php/function/hook_form_BASE_FORM_ID_alter/9.2.x

Copy Thunderbird rich text HTML e-mail as Markdown

“thunderbird” copy as markdown email copy HTML as markdown-formatted plain text This Thunderbird extension does not exist and seems not to have existed. A whole bunch for copying as plain text? Huh maybe what i really want is a GNU/Linux, Debian or Ubuntu Gnome or otherwise utility that takes rich text in the clipboard and pastes it as markdown. Anyhow it’s something i’d like to find like three other people who want it and fund someone else to develop!

Suggest consistent casing to authors of article titles through JavaScript but allow human to override

drupal 8 title case suggestion drupal 9 field text formatting suggestions edit drupal 9 edit form sentence case suggestions drupal edit form text suggestions javascript formatting of text fields drupal wordpress format title field title case JavaScript javascript suggestions as you type title case javascript library OK, it’s surprisingly hard to find, but there is one in NPM: https://www.npmjs.com/package/title-case Auto-Capitalization of Title and Index Title fields Please review this email which was shared today on the Mods list.

Ensure images maintain aspect ratio on Drupal 9 upgraded site which adds width and height to HTML source of image output

css properly scale images with width and height image ratios kept correct not skewed Ensure all images retain aspect ratio, not just ones we size here. Ensure images maintain aspect ratios on Drupal 9 upgraded site which adds width and height to HTML source of image output. The correct solution here is to ensure anywhere you have an auto width or a percentage width in CSS, you also have an auto height.

No longer able to pull config from live on "Too many open files" error

drush config pull too many open files2021-11-082021-11-08 Workaround Do not use config pull (cpull), just sync down the database and config export instead: ddev drush sql-sync @live @self ddev drush cr ddev drush -y cex Fix The fix will probably have to be done by Siteground. On the live server instance (ssh -p 18765 u7-5w7gvgfcdysg@c54895.sgvps.net), ulimit -n -S reports 1024 as the maximum number of open file descriptors. The number of configuration files is 1867 currently— and while 1867 is more than 1024, the number of config file we were trying to pull was only 10 more than last time they were committed, so the reason for getting this error now remains unclear, unless something else changed on the live instance side.

Adding a programmatically defined computed field to an entity in modern Drupal 8 9 10

drupal 8 computed field views Ran into an issue where Computed Field module caused infinite loops. Changing the field from multiple (unlimited) value to single value fixed this. Also, an aside: The fact that Computed Field module does not use proper hooks but rather asks you to create functions with the computed_field namespace in your own module is very un-Drupal and quite ridiculous on the face of it, and really makes me fear for the code quality overall.

Securing a modern Drupal site interacting with remote front-end framework

Lock security down a bit with CORS: parameters: # [...all other parameters cut from this example; you should start by copying default.services.yml...] # Configure Cross-Site HTTP requests (CORS). # Read https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS # for more information about the topic in general. # Note: By default the configuration is disabled. cors.config: enabled: true # Specify allowed headers, like 'x-allowed-header'. allowedHeaders: ['content-type'] # Specify allowed request methods, specify ['*'] to allow all possible ones.

Using background processes in modern Drupal 8 9 10 to avoid slowing page loads

The Background Process module for Drupal 7 looks really cool but maintenance for it seems to have petered out even as users aimed to ease its transition to modern Drupal: The module_invoke_all() is not available on D8 [#3029375] | Drupal.org Oh! No, i’m wrong, there’s a dev release for Drupal 8 and Drupal 9: https://www.drupal.org/project/background_process/releases/2.0.x-dev

Sync data from custom internal server to Drupal

drupal 9 api endpoint Current use case is a very small amount of data. We have an internal SQL Server where [some data] are updated once, occasionally twice per day. What is the most efficient way to publish the [data] to the [relevant] page and the featured [relevant data] bar? My ideas so far: A job on the internal server that publishes a file via FTP to the Drupal website, then Drupal can get the rates from that file (using Feeds module or something similar)?

Make image files with missing or incorrect file extensions still work with modern Drupal 8 9 10

drupal 8 add image extension based on mime type A cool core issue about this (closed as duplicate but it looks more like it acted as the ‘meta’ grouping issue): Allow image effects to change the extension [#2341251] | Drupal.org https://www.drupal.org/project/drupal/issues/2311679 Contrib module for figuring out mime type from file extension: https://www.drupal.org/project/sophron

Maintaining a modern Drupal module (D8, D9, and beyond) draft thoughts

maintaining a Drupal 9 module github.com/guides/providing-your-ssh-key Start committing before you know what you are doing. Commit early and often. Read Definitive Guide to Drupal 7 chapter 14, “Developing from a Human Mindset” by Károly Négyesi. Experiment freely! drupal.org/coding-standards … is this still a thing? drupal.org/project/projectapplications Ensure you are subscribed to issues. If you are the sort of organized person with folders for e-mails, make a rule for the Drupal.org sender e-mail plus your module machine name in brackets – “[example]” – because that is how issues for your specific module will come to you, and you may want to pull them out of all the other notifications if you promiscuously subscribe to Drupal.

Gnome Extensions not working on Debian with Gnome 40.5

All were listed on https://extensions.gnome.org/local/ an off and i could flip them on but nothing actually happened and if i reloaded the page they would be listed as off again. Opening the dedicated Gnome settings configuration, and enabling extensions as a whole there, fixed it. Somehow they must have been turned off during a software update. (I am on Debian testing.)

Using Regex in Vim to clean up Twitter thread pastes

Easier probably to use one of the ‘unroll’ apps that you can at-mention and then copy-paste from that, especially since twitter’s pathetic website only really shows/lets you copy a dozen or so tweets at a time, even when in a thread not on the timeline. But if doing it manually, something like: :%s/Alexander\ McCoy\n@AlexanderMcCoy4\n.\n4h/\r/g does it for a specific person, time, etc. I’ll update this post as i improve this with actual regular expressions.

Fixing tab order on Drupal content edit forms for keyboard accessibility

fixing tab order on drupal forms tabbing manager content editing drupal 8 Documentation: https://www.drupal.org/docs/drupal-apis/javascript-api/accessibility-tools-for-javascript-in-drupal-8 Specifically: https://www.drupal.org/docs/drupal-apis/javascript-api/accessibility-tools-for-javascript-in-drupal-8#tabbing Announcement: New accessibility feature: Drupal.tabbingManager | Drupal.org

bookshop.org link to particular book at bookstore

bookshop.org link to particular book at bookstore I asked: why can’t i share a link for a particular book at a particular bookstore? I search for a book through a particular bookstore’s Bookshop page and find it. Now i want to share that link—for that book, at that bookstore—with friends when i tell them i just ordered it. Why is this feature not available?

How not to handle your site working badly (except as a temporary fix with a solumn promise to be working on it)

AliExpress KNOWS their site is terrible. " Did not receive email verification code? 1.Your email code may take up to 10 minutes to arrive (depending on your email service provider), please do not repeat clicking. 2. Please check if your mailbox works or if it goes to trash/spam folder or your mail inbox is full. 3. Network anomalies may cause loss of messages, please re-submit request or try again later with different browsers or with browser cookies cleared.

Converting multivalue date and time field to smart date recur

Smart date recur SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column ‘field_findit_opportunity_dates_end_value’ at row 1: INSERT INTO “node__field_findit_opportunity_dates” (“bundle”, “deleted”, “entity_id”, “revision_id”, “langcode”, “delta”, “field_findit_opportunity_dates_value”, “field_findit_opportunity_dates_end_value”, “field_findit_opportunity_dates_duration”, “field_findit_opportunity_dates_rrule”, “field_findit_opportunity_dates_rrule_index”, “field_findit_opportunity_dates_timezone”) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_ 2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeho lder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_pl aceholder_10, :db_insert_placeholder_11); Array ( [:db_insert_placeholder_0] => findit_event [:db_insert_placeholder_1] => 0 [:db_insert_placeholder_2] => 8289 [:db_insert_placeholder_3] => 44925 [:db_insert_placeholder_4] => en [:db_insert_placeholder_5] => 0 [:db_insert_placeholder_6] => 1586167200 [:db_insert_placeholder_7] => 253402254000 [:db_insert_placeholder_8] => 4196934780 [:db_insert_placeholder_9] => [:db_insert_placeholder_10] => [:db_insert_placeholder_11] => )

Malware spam attempt coming in through contact form claiming DDOS and threatening legal action and linking to Google Drive

Here’s the message a client of ours received, “Subject: example.org has been hacked and is now participating in the DDoS attack on our company’s servers. You need to take action immediately!” It is spam, it is an attempt to infect your computer with malware. Do NOT click the link to the google drive, and please no one else did or does! https://www.bleepingcomputer.com/news/security/fake-dmca-and-ddos-complaints-lead-to-bazaloader-malware/ Your Name Jon Your Email JonSood@mailchimp.com Your Telephone 7189643812 City New York.

Personal finance expenses and income tracking tool with automated import from banks that does not spy on you

Investigated Firefly III self-hosted personal finance app. https://www.firefly-iii.org/ https://github.com/firefly-iii/firefly-iii https://docs.firefly-iii.org/firefly-iii/about-firefly-iii/introduction/ Thanks to AlternativeTo for identifying it as a Free Software (open source) alternative to Mint.com. Related but separate and crucially important, a non-spying alternative to Mint (owned by Intuit, which seems to be trying to get into the evil social credit scoring industry) and all such similar. firefly III hosting cooperative I cannot find a a LibreSaaS Platform Cooperative that is hosting Firefly III, but there are several reputable-looking commercial offerings:

call to a member function setTime on null in SmartDateOnlyWidget

Fixed this with a patch contributed to Smart Date [11-Sep-2021 13:06:58] WARNING: [pool www] child 92652 said into stderr: "NOTICE: PHP message: Error: Call to a member function setTime() on null in /var/www/html/web/modules/contrib/smart_date/src/Plugin/Field/FieldWidget/SmartDateOnlyWidget.php on line 56 #0 /var/www/html/web/core/lib/Drupal/Core/Field/WidgetBase.php(400): Drupal\smart_date\Plugin\Field\FieldWidget\SmartDateOnlyWidget->massageFormValues(Array, Array, Object(Drupal\Core\Form\FormState))" [11-Sep-2021 13:06:58] WARNING: [pool www] child 92652 said into stderr: "#1 /var/www/html/web/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php(235): Drupal\Core\Field\WidgetBase->extractFormValues(Object(Drupal\datetime_range\Plugin\Field\FieldType\DateRangeFieldItemList), Array, Object(Drupal\Core\Form\FormState))" [11-Sep-2021 13:06:58] WARNING: [pool www] child 92652 said into stderr: "#2 /var/www/html/web/core/lib/Drupal/Core/Entity/ContentEntityForm.php(334): Drupal\Core\Entity\Entity\EntityFormDisplay->extractFormValues(Object(Drupal\node\Entity\Node), Array, Object(Drupal\Core\Form\FormState))" [11-Sep-2021 13:06:58] WARNING: [pool www] child 92652 said into stderr: "#3 /var/www/html/web/core/lib/Drupal/Core/Entity/EntityForm.

Cropper is not a function error in Image Widget Crop

Uncaught TypeError: this.$image.on(…).on(…).on(…).cropper is not a function initializeCropper https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCropType.js?v=2.1:496 jQuery 8 interval https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCropType.js?v=2.1:553 setInterval handler*Drupal.ImageWidgetCropType.prototype.pollVisibility https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCropType.js?v=2.1:550 init https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCropType.js?v=2.1:462 ImageWidgetCropType https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCropType.js?v=2.1:207 init https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCrop.js?v=2.1:93 jQuery 2 init https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCrop.js?v=2.1:92 ImageWidgetCrop https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCrop.js?v=2.1:55 createInstances https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/iwc.behaviors.js?v=2.1:40 jQuery 2 createInstances https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/iwc.behaviors.js?v=2.1:37 attach https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/iwc.behaviors.js?v=2.1:21 attachBehaviors https://findit-dev.ddev.site/core/misc/drupal.js?v=9.2.5:27 attachBehaviors https://findit-dev.ddev.site/core/misc/drupal.js?v=9.2.5:24 https://findit-dev.ddev.site/core/misc/drupal.init.js?v=9.2.5:29 listener https://findit-dev.ddev.site/core/misc/drupal.init.js?v=9.2.5:17 domReady https://findit-dev.ddev.site/core/misc/drupal.init.js?v=9.2.5:24 https://findit-dev.ddev.site/core/misc/drupal.init.js?v=9.2.5:28 https://findit-dev.ddev.site/core/misc/drupal.init.js?v=9.2.5:31 ImageWidgetCropType.js:496:8 initializeCropper https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCropType.js?v=2.1:496 self-hosted:1179 jQuery 8 interval https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCropType.js?v=2.1:553 (Async: setInterval handler) pollVisibility https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCropType.js?v=2.1:550 init https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCropType.js?v=2.1:462 ImageWidgetCropType https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCropType.js?v=2.1:207 init https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCrop.js?v=2.1:93 jQuery 2 init https://findit-dev.ddev.site/modules/contrib/image_widget_crop/js/ImageWidgetCrop.js?v=2.1:92 ImageWidgetCrop https://findit-dev.

Fixing focused entity reference for working with Selectize widgets

Working: 1 Object { command: “updateOptionsCommand”, method: “html”, elementId: “edit-field-findit-areas-of-focus”, … } command “updateOptionsCommand” method “html” elementId “edit-field-findit-areas-of-focus” options [ {…} ] 0 key 90 value “STEAM (Science, Technology, Engineering, Arts, Math)” formatter “select” multiple true Not working: 1 Object { command: “updateOptionsCommand”, method: “html”, elementId: “edit-field-findit-areas-of-focus”, … } command “updateOptionsCommand” method “html” elementId “edit-field-findit-areas-of-focus” options [ {…} ] 0 key 253 value “Pools & Waterplays” formatter “selectize” multiple true

Prerender callbacks must be methods of class that implements Drupal core security TrustedCallbackInterface Drupal 9 PHP exception

PHP Exception Drupal\Core\Security\UntrustedCallbackException: “Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function After upgrading to Drupal 9, when i tried to edit a node got error: ‘PHP message: Uncaught PHP Exception Drupal\Core\Security\UntrustedCallbackException: “Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was field_group_form_pre_render. See https://www.drupal.org/node/2966725" at /var/www/html/web/core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php line 96’ This is fixed by identifying which module is doing the old-style inapplicable callback and updating to the new better ways.

undefined method Drupal core URL render in template method toString must not throw an exception

Call to undefined method Drupal\Core\Url::render() in /var/www/html/web/sites/default/files/php/twig/613a21e284d52_form.html.twig_6hDWqscLwUGaxSubSPoJrz7dW/k0gVVD-gQvYGE6HS_9bUwO9Hk6cfX-y3XsWFreXDY1A.php Call to undefined method Drupal\Core\Url::render() in form.html.twig drupal identify template twig errors This change was needed because ‘url()’ method was removed from FormBase: - $form['#action'] = $this->url('findit_search.search'); + $form['#action'] = \Drupal\Core\Url::fromRoute('findit_search.search'); But it resulted in a harder-to-track-down error: “Call to undefined method Drupal\Core\Url::render()” buried in an indeterminate (but also innocent) Twig template. That was wrapped in all this mess: [09-Sep-2021 15:00:42] WARNING: [pool www] child 75759 said into stderr: "NOTICE: PHP message: PHP Fatal error: Method Drupal\Core\Template\Attribute::__toString() must not throw an exception, caught Error: Call to undefined method Drupal\Core\Url::render() in /var/www/html/web/sites/default/files/php/twig/613a21993788b_form.

Give terminal windows a very short title indicating path, starting with the most likely information-dense part of the path, the immediate (last) folder

gnome terminal window titles “path” first terminal window title ubuntu command line concise terminal title giving short window title based on most relevant parts of directory path first How are there not 100 command line power users each giving their precise preference as an answer to this question? OK at least i have found what is currently in my Debian (default?) .bashrc: # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" ;; *) ;; esac But i removed the \u@\h: part, which must be “user@host”, to at least make it shorter, but that’s still showing up…

Open a new tab in the terminal at a specified path, relative or absolute

open tab at path from command line Try to open a tab in a specific folder from the command line. This command is already working quite nicely, simply putting it in a function seems to make tilde home directory expansion work when it does not on the command line directly: tcd() { gnome-terminal --tab --working-directory=$1 } Usage example: tcd ~/Projects/find-it-program-locator/findit-dev/web/modules/contrib/findit_mit_sync/ Initial command courtesy of a few places, probably most clearly indicated at https://askubuntu.

Deleting unused files in Drupal 9

removing unused orphan files from the file system modern Drupal 8 9 10 drupal 8 remove orphan files As of Drupal 8.4, files that have no remaining usages are no longer deleted by default. You can change this in a configuration-file-only setting. https://www.drupal.org/project/file_delete files are still there for each revision, so to remove from being listed: https://www.drupal.org/project/node_revision_delete And finally (as Clay noted) https://www.drupal.org/project/auditfiles And Unmanaged / Unused Files | Manage | Delete | Drupal.

Switch tabs in Gnome Terminal windows with control-tab on Debian or Ubuntu

gnome terminal control tab for switching tabs ctrl+tab After living with the annoyance for quite a while and then taking a bit to find it, only to note i’d already upvoted the answer that fixes everything (in Debian too!), i figured i’d better keep my own note on convenient terminal tabbing here where i can find it easily. Bug #162000 “Cannot use Ctrl-Tab as keyboard shortcut in gnome-terminal” : Bugs : gnome-terminal package : Ubuntu

use solr to find documents that are most similar to other documents

solr rank by similarity https://solr.apache.org/guide/8_9/morelikethis.html Finally, the MLT query parser can be used. This operates in much the same way as the request handler but since it is a query parser it can be used in filter queries, boost queries, etc., and results can be paginated or highlighted as needed. Older answers suggested the TFiDF scoring algorithm. https://gitlab.com/find-it-program-locator/findit/-/issues/202

Add to Calendar capability in modern Drupal 8 9 10

best “add to calendar” So AddToCal has been around and was updated to Drupal 8 but is inflexible and doesn’t have recent updates. I think we’ll go with this new contender: Add to Calendar Date Augmenter | Drupal.org and set In Other Words date formatting to work with it.

Add tour to create content

drupal add tour to route based on parameter The route (node.add) will autocomplete, but you are on your own node.add - node_type: findit_organization

Boosting results based on facet being in a particular field (other than the facet) with Solr and Drupal Search API Solr

increase relevance of that have a given term in a second vocabulary search_api_solr_query_alter set keys Impossible to alter Solr “q” parameter [#2978694] | Drupal.org Possible completely different approach drupal search api groups views exposed filter select https://www.drupal.org/project/views_filters_populate Idea of above module, could put the same query string in multiple fields at once, that could have their own boost? Back to the suffering, forget how we got out of it 2021-08-28 06:18:59.

Replacing a screen on Blackview BV9100

Disjointed unprofessional message to https://ifixonwheelz.com of Cambridge, but serving from Rhode Island to New Hampshire, and so i guess most of Massachusetts as well. Phone: Blackview BV9100 i searched for a phone that had a long battery life and was indestructible– long battery life, yes; indestructible, apparently not so much. Fell out of my pocket while running and the screen is spiderweb cracked. Phone is still functioning so not sure if i’m so lucky that only protective glass needs to be replaced?

Dynamically create multiple blocks in modern Drupal 8 9 10

drupal 8 dynamically create multiple blocks I sort of agree with this person saying it should be documented, @TODO get documentation on drupal.org and link from this issue https://www.drupal.org/project/documentation/issues/2985953 The secret is derivatives. https://www.drupal.org/docs/drupal-apis/plugin-api/plugin-derivatives There unfortunately is not yet an examples module with a derivatives-using block, just more regular blocks: https://git.drupalcode.org/project/examples/-/tree/3.x/modules/block_example/src/Plugin/Block Some tutorials and answers: https://blog.dev030.com/posts/dynamically-define-blocks-drupal-8-derivatives https://www.sitepoint.com/tutorial-on-using-drupal-8-plugin-derivatives-effectively/ https://drupal.stackexchange.com/questions/264177/how-do-i-create-multiple-blocks

Prepopulating taxonomy term or other entity reference values from helper links in Drupal

Sort of long after the fact notes from making the Create Content with Category | Drupal.org module. Entity reference field implementation clarification [#3047862] | Drupal.org https://git.drupalcode.org/project/prepopulate/blob/8.x-2.x/tests/src/Functional/PrepopulateFieldTest.php#L172 Prepopulate for Entity Reference fields in Drupal 8/D8 [#2668010] | Drupal.org Support prepopulating entity reference field with entity-browser as widget [#3086126] | Drupal.org drupal 9 configFactory vs config https://www.drupal.org/docs/drupal-apis/configuration-api/working-with-configuration-forms

Upgrading from testing (bullseye) to testing (bookworm)

So first off i’m not sure i’m actually upgrading anything here, and second of all this is just going to be a copy-paste of tons of things i’m worried about. The software store thing failed and freaked out because it said the testing release endpoint changed name (to Bookworm from Bullseye). Running apt update (i think it was) allowed saying “yes” explicitly to the name changes of the various endpoints (for example security as well as main).

Doing a case-sensitive GROUP BY query with MariaDB or MySQL

mysql case-sensitive group by sql list items with same id mariadb show only duplicates Collate is frequently recommended; you only need to be sure you do the collate on the GROUP BY: GROUP BY field_alpha_key_value COLLATE SQL_Latin1_General_CP1_CS_AS Another option is to cast to binary: GROUP BY CAST(field_alpha_key_value AS BINARY) Or take an MD5 hash of the ID, which isn’t 100.000% guaranteed but should reduce false positives to zero: GROUP BY MD5(field_alpha_key_value)

Allowing elements to be dynamically added to a select box or a set of checkboxes despite Drupal's zealous form validation

drupal 8 make changes to form after validation fail Looks like the same problem: New values get lost during form validation when using select2boxes multiple values widget [#3228646] | Drupal.org drupal 8 how to override any class drupal 8 override FormValidator My first hint that you definitely could override this core service was chx proposing that one should not be able to: [security weakness] Hardwire FormValidator [#2282089] | Drupal.org

Speed up confirming git additions by allowing one-touch single letter without having to press enter for each chunk in git add -p and git reset -p

git one yes no enter faster git add -p quicker instant git add -p one letter git add -p without pressing enter git setting do not require pressing enter git add onetouch git add -p y no enter Wow could not find a single blog talking about this but i found the way to avoid having to press enter after each git add -p chunk, you can do this with this setting:

Hosting options (a draft to a client by Chris)

(For a client considering moving off of Siteground) To follow up on our conversation yesterday, here are some thoughts regarding web site hosting options: Fully-managed. In this category, [typically] a shared hosting option of some sort is provided along with a WebUI for configuration, etc. These are, of course, the most simple to maintain, however, the following considerations should be made: For more exclusive hardware access (i.e. a separate VPS underneath the web UI), pricing tends to be a good bit higher.

Add third-party JavaScript as for tracking codes in a way that does not slow down the site

There’s no really good set play for this, sticking some horrible bit of spying code your client’s marketing-oriented shot-callers insist be stuck on your beautiful pure website. There’s especially no set way to add inline JavaScript, async external JavaScript, and a non-JS fallback all in one go. Instead there is a lot of documentation to wade through, that doesn’t give you all you need in one place. Two modules are pretty well on their way to fixing this:

Good admin experience for privileged users with a dashboard maybe coming out from the side, a drupal off canvas admin drawer

https://www.drupal.org/project/responsive_menu drupal off canvas dashboard https://www.drupal.org/blog/how-to-use-drupal-8s-off-canvas-dialog-in-your-modules OK nothing about the drawer but really simple and refreshing after looking at the Total Control panels approach! https://www.drupal.org/project/banana_dashboard And a classic dashboard approach for Drupal 8/9: https://www.drupal.org/project/dashboards I’m tired. The cool things that someone would’ve added to Drupal if it weren’t apparently a dying ecosystem just aren’t there. Lot’s of cool stuff is, to be sure, just not as much if we were still growing.

Doing decent RSS easily in modern Drupal

Sadly, Drupal 8, 9, and likely 10 haven’t cleaned up the RSS support to be definitively better than, say, Drupal 1.0 twenty odd years ago. This is the big regression that’s not fixed yet: drupal 8 remove title from RSS description Views RSS display always outputs ‘submitted’ by and ‘authored on date’ inside the description tag [#2946812] | Drupal.org Seems it’ll take some digging to find where these unwanted additions get added to the description: https://api.

In a views listing of content, link to the content only if it is published or in a given state, otherwise print only the title without linking

drupal views show title of unpublished node field link if published drupal 8 views exposed filters is between hide show based on operator drupal 8 views field conditionally show link if user access content plain text otherwise drupal 8 views field conditionally show link Workflow states: Stub (published) Draft (private revision, does not change published (draft or ‘published’) version) Review (if you do editorial review, this is also a private revision but editors are pinged to look at it) Published (published) - ok let’s call published ‘Ready’ or ‘Public’ or ‘Full’ just to be a little less confusing.

Defining more types of site e-mails in modern Drupal 9 10

drupal 8 site e-mails translateable drupal 9 translate welcome e-mail messages The short answer to the translation question is if you enable configuration translation generally, the welcome and other built-in transactional e-mails, which are stored as translatable configuration, you can translate these emails. https://drupal.stackexchange.com/questions/252690/user-registration-email-translation http://www.hojtsy.hu/blog/2014-may-19/drupal-8-multilingual-tidbits-15-configuration-translation-basics It does seem perhaps a bit disruptive, though all the changing config may be an attempt to minimize disruction. enabled config translation and everything switched to translateable false Drupal 8 I guess all sorts of config declaring itself not translatable once translation is enabled is an attempt to keep the status quo?

Saving configuration in modern Drupal

This is $form_state->getValues() flat (#tree set to FALSE): link_all: 0 article_field_categories: 0 article_field_tags: 0 bond_disclosure_report_field_bond_disclosure_type: 0 committee_meeting_field_committee: 0 committee_meeting_document_field_committee: 0 committee_meeting_document_field_meeting_doc_type: 0 event_field_categories: 0 page_field_page_type: 1 press_release_field_categories: 0 submit: 'Save configuration' form_build_id: form-8DvlpJLttFXCx64DCUdOn0vPycCiiKyIdNJbCGPCx44 form_token: hX8vPQFxTqqp4Xm6Jds7Yug4VA1Vob11FjmIcXo-yaE form_id: createcontentwithcategory_settings op: 'Save configuration' link_all: 0 target_nodes_fields: article: article_field_categories: 0 article_field_tags: 0 bond_disclosure_report: bond_disclosure_report_field_bond_disclosure_type: 0 committee_meeting: committee_meeting_field_committee: 0 committee_meeting_document: committee_meeting_document_field_committee: 0 committee_meeting_document_field_meeting_doc_type: 0 event: event_field_categories: 0 page: page_field_page_type: 1 press_release: press_release_field_categories: 0 submit: 'Save configuration' form_build_id: form-BkNPXcaxiQ4i0cURKxcshqy9-CMmD_Gd-yx8vTNWMKU form_token: hX8vPQFxTqqp4Xm6Jds7Yug4VA1Vob11FjmIcXo-yaE form_id: createcontentwithcategory_settings op: 'Save configuration'

Why are redirects and url aliases translatable in modern Drupal

drupal 8 why are redirects and url aliases translatable Here are two bugs that are getting at what i’m getting at, i think: If you don’t want to translate your URL alias, the original URL alias won’t work with your translations [#2689459] | Drupal.org Language-specific aliases only work with url-based language negotiation [#1125428] | Drupal.org

Making a perfectly square (or round) undistorted image in modern Drupal 8 9 10

drupal 8 image effect perfect square Relative crop in https://www.drupal.org/project/image_effects does the necessary step. All the effects available with this module: https://git.drupalcode.org/project/image_effects/blob/HEAD/README.md#n6 To quote my own commit message: Add Image Effects module just for ‘Relative Crop’ (same effect used to be possible with an inner/outer checkbox for regular crop, but no more, Drupal, even though it still lies and says it can make perfect squares). css crop to circle Unrelated but kind of cool?

Use two different versions (view modes) of a referenced entity in the referencing entity's content display

That title is way more confusing than what we’re trying to do: An article references an author content type. When viewing an article, we want to show the author’s image from the author content type (one reference of the field) drupal 8 9 field copy duplicate field view mode Drupal 8 9 drupal 8 9 duplicate field display drupal 8 9 include field twice in display drupal 8 turn entity reference field into two elements It’s possible with EVA (Entity Views Attach):

Overriding line height for headings (h1, h2, h3, h4, h5, h6) variable in Bootstrap 4

Simple online searches didn’t bring this up, but my inspector and some digging in the code did provide a better way to override than re-define the styles: $headings-line-height So: $headings-line-height: 1.2; in your custom variables file, or anyhow your main global scss file right before loading bootstrap variables, does the same as: h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { line-height: 1.2; } Thanks to this code in bootstrap/scss/_type.

Date fields in Drupal 9 lack timezones and this is needed to allow events around the world to show local time accurately

drupal 9 datetime field lacks timezone I found the core issues about this problem. [PP-1] Add ability to select a timezone for datetime field [#2632040] | Drupal.org DateTimeIso8601::setDateTime() vs. DateTimeItem::schema(): (at least) one of them is broken [#2716891] | Drupal.org Here’s the issue set aside for patches that can be applied with composer to fix the problem! https://www.drupal.org/project/drupal/issues/3185750 Disappointed the fix isn’t (or maybe can’t be) in https://www.drupal.org/project/datetime_extras

Default value for parameters with a class type can only be NULL

Fix: Be sure you are using the built-in type you think you are using, for example, for an integer you must use int. [proxy_fcgi:error] [pid 2055] [client 172.18.0.6:39418] AH01071: Got error ‘PHP message: PHP Fatal error: Default value for parameters with a class type can only be NULL in /var/www/html/public_html/ etc. Today in fatal typos: WOW ‘Default value for parameters with a class type can only be NULL’ is an obtuse error message for accidentally using ‘integer’ instead of ‘int’ to cast the parameter!

Dell Latitude not charging correctly

The environmental conditions are humid but not too hot— low to mid 70s Fahrenheit. Seems it’s twice now gotten down to 73% and then started charging again. Last time it maxed out at 86% before no longer charging. Somewhere in that range is where the problem first presented itself earlier today; in this incarnation it neither charged nor lost power just remained at the same percentage (endlessly calculating how long it would take to reach full).

Adding a filter to insert an image from an image field into a body text area if there's not an image otherwise embedded in the first few paragraphs

drupal 8 embed field in content area TLDR i made a module: https://www.drupal.org/project/imagefieldintextifnone So i first searched for: move a div into the corner of another div CSS And that doesn’t seem to be a good approach, although you can do it if the divs are right after each other, float the top div right into the bottom div. Thought this would be done with the filter system but it turns out the there is no context available for what node—which piece of content—is being viewed.

Customizing the selection options of an entity reference field in modern Drupal 8 9 10

drupal 8 custom entity reference field selection drupal 9 10 field with options from selected in other field Um… maybe? https://www.williameaton.co.uk/snippets-scripts/drupal/custom-entity-reference-dropdown-filtered-roles YES: https://www.axelerant.com/resources/team-blog/writing-entity-reference-selection-plugin org name url of page if no contact, send to .. hmm, always CC Andrew

php convert array of objects to array of key value from properties

php make array with keys values from object properties array_map set keys as well as values $terms = $this->getAllTerms(); Gives me an array of objects that looks like this: => [ {#8116 +"tid": "215", +"revision_id": "427", +"vid": "findit_ages", +"langcode": "en", +"status": "1", +"name": "Pre-natal", +"description__value": null, +"description__format": null, +"weight": "0", +"changed": "1580746712", +"default_langcode": "1", +"revision_translation_affected": "1", +"depth": 0, +"parents": [ "0", ], }, {#8312 +"tid": "216", +"revision_id": "428", +"vid": "findit_ages", +"langcode": "en", +"status": "1", +"name": "Infant", +"description__value": null, +"description__format": null, +"weight": "1", +"changed": "1580746712", +"default_langcode": "1", +"revision_translation_affected": "1", +"depth": 0, +"parents": [ "0", ], }, I need to turn it into an array where the keys are the tid properties and the values are the name properties.

Marking fields required best practice for user experience and accessibility

best CSS to indicate required form field So we noticed that required form elements were not getting any kind of indicator. OK cool so i threw on in inspector a few extra classes indicating the field as a requirement, js-form-required required form-required required-input whatever, just to bring up the default styling. Nothing. Not that core or webform or Bootstrap form stylings were being overridden, but there was no default styling for required fields at all, anywhere.

Set a variable in a template based on URL parameter

drupal 8 template variable based on URL parameter Definitely possible with custom code did not find any modules but it opens up obvious security concerns, so you want it matching a hard-coded list not allowing it to be anything.

Nvim Orgmode require statement fail

I have my require statement how i want it for setup but i don’t know where to put it! nvim where do require statements go require('orgmode').setup({ org_agenda_files = {'~/Nextcloud/mlncn/org/*', '~/my-orgs/**/*'}, org_default_notes_file = '~/Nextcloud/mlncn/org/refile.org', }) vim.cmd[[autocmd FileType org setlocal iskeyword+=:,#,+]]

Select all settings for multiple content types on one page

Finally got around to making the module i claimed the namespace for… 11 years ago. https://www.drupal.org/project/all Whole point is to be able to set multiple at once. So we still have some work to do. One of these approaches may help get us there: core/misc/tableselect.js https://drupal.org/project/checkboxesjs

Show a different view mode other than full by default when pressing the preview button

drupal 8 change preview button view mode Seems sorta relevant/adjacent: Entity Reference with LayoutIssues Use “preview” view-mode as default for display in edit form https://www.drupal.org/project/entity_reference_layout/issues/3045508 drupal 8 extend node form Went with the original poster on this one— not with any of the answers! https://drupal.stackexchange.com/questions/163607/alter-an-existing-form

Adding classes to all links of a given type, on a certain field, in modern Drupal

Drupal 8 9 adding classes to links attributes to anchor text in Drupal 9 link fields Not sure i’m describing this well— the point is for the sitebuilder / developer to easily add classes used in theming to links. We could add link classes to ClassItUp, so at least there would be a class to hang styles on, where currently there is none. But really we want to be able to add classes that make semantic sense and fit into frameworks, like btn for Bootstrap or button for Bulma.

Get the non-simple not reduced expanded versions of a fraction

all whole multiples of numerator and denominator fraction complicating fractions decimal to fraction https://www.personal-math-online-help.com/expanding-fractions.html OK all is not what i’m looking for, since that is literally infinite, but, up to an arbitrarily large amount. Just displaying them: web typography fractions unicode fractions from https://lights0123.com/fractions/ ¹⁴⁄₂₃ This is the only online expander i could find, and you have to set the multiplier yourself one at a time, so it’s not what i’m looking for:

Is it possible to make use of annotations in the annotated class? Drupal using Doctrine

For updating Views in Drupal core to use plugins for aggregation functionality, i could replicate drupal plugin class see its own ID doctrine class read its own annotations doctrine can a class see its annotations Seems like a class knows its own classname, even if the method is in a base class i think you can access the current class, and then from their you can just load all of doctrine and grab the annotation out of its data store.

What happened and will more RAM fix it?

Jul 12 09:02:01 d64 kernel: [820138.810313] [ 826021] 1000 826021 4821098 3807315 34267136 6645 0 firefox Jul 12 09:02:01 d64 kernel: [820138.810390] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=user.slice,mems_allowed=0,global_oom,task_memcg=/user.slice/user-1000.slice/user@1000.service/app.slice/xdg-desktop-portal.service,task=firefox,pid=826021,uid=1000 Jul 12 09:02:01 d64 kernel: [820138.810524] Out of memory: Killed process 826021 (firefox) total-vm:19284392kB, anon-rss:14841532kB, file-rss:0kB, shmem-rss:387728kB, UID:1000 pgtables:33464kB oom_score_adj:0 Jul 12 09:02:01 d64 kernel: [820139.164160] oom_reaper: reaped process 826021 (firefox), now anon-rss:0kB, file-rss:0kB, shmem-rss:387808kB Firefox keeps crashing. Extended logs: Jul 24 22:13:18 d64 zeitgeist-datah[2097]: zeitgeist-datahub.vala:207: Error during inserting events: GDBus.

Provide automatic fill suggestions autocomplete for a form based on previously added entries

Really i just want a simple CSV spreadsheet program that can run on the web easily, no formulas or anything just a very basic Given the web-based approach, the simplicity, the autocompletion, i’m probably looking for a JavaScript app, but i can’t find one and am not really looking to write one right now. javascript csv editor https://www.drupal.org/project/webform_dynamic_autocomplete Google, which has effectively infinite resources to get this right, doesn’t even try to make a good mobile-version of their spreadsheet, instead having a nearly impossible to read message pop up:

Making a jagged image or background color section that is responsive

slanted lines in css https://css-tricks.com/creating-non-rectangular-headers/#svg https://codepen.io/erikdkennedy/pen/zNpXee Also interesting: https://9elements.com/blog/pure-css-diagonal-layouts/ I chose to go with the SVG approach. inkscape straighten line inkscape crop svg inkscape snap lines to vertical https://inkscape-manuals.readthedocs.io/en/latest/align-and-distribute.html svg override fill color with css

Making slanted lines in CSS

css jagged lines css diagonal shapes slanted lines in css Can do a ton with transform: rotate, skew etc. https://css-tricks.com/using-css-masks-to-create-jagged-edges/ https://9elements.com/blog/pure-css-diagonal-layouts/

Fatal error because a messy upgrade migration left some traces of comment fields in the database

drupal 8 leftover field map key_value table drupal 9 entity types and bundles still in field mapping of key_value table after fully deleted The website encountered an unexpected error. Please try again later. Drupal\Component\Plugin\Exception\PluginNotFoundException: The "comment" entity type does not exist. in Drupal\Core\Entity\EntityTypeManager->getDefinition() (line 143 of core/lib/Drupal/Core/Entity/EntityTypeManager.php). Drupal\Core\Entity\EntityFieldManager->buildBaseFieldDefinitions('comment') (Line: 193) Drupal\Core\Entity\EntityFieldManager->getBaseFieldDefinitions('comment') (Line: 342) Drupal\Core\Entity\EntityFieldManager->getFieldDefinitions('comment', 'comment_node_bond_disclosure_report') (Line: 107) Drupal\layout_builder\Plugin\Derivative\FieldBlockDeriver->getDerivativeDefinitions(Array) (Line: 101) Drupal\Component\Plugin\Discovery\DerivativeDiscoveryDecorator->getDerivatives(Array) (Line: 87) Drupal\Component\Plugin\Discovery\DerivativeDiscoveryDecorator->getDefinitions() (Line: 284) Drupal\Core\Plugin\DefaultPluginManager->findDefinitions() (Line: 175) Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (Line: 22) Drupal\Core\Plugin\DefaultPluginManager->getDefinition('broken') (Line: 16) Drupal\Core\Plugin\Factory\ContainerFactory->createInstance('broken', Array) (Line: 100) Drupal\Component\Plugin\PluginManagerBase->handlePluginNotFound('system_breadcrumb_block', Array) (Line: 93) Drupal\Core\Block\BlockManager->handlePluginNotFound('system_breadcrumb_block', Array) (Line: 79) Drupal\Component\Plugin\PluginManagerBase->createInstance('system_breadcrumb_block', Array) (Line: 62) Drupal\Core\Plugin\DefaultSingleLazyPluginCollection->initializePlugin('system_breadcrumb_block') (Line: 57) Drupal\block\BlockPluginCollection->initializePlugin('system_breadcrumb_block') (Line: 80) Drupal\Component\Plugin\LazyPluginCollection->get('system_breadcrumb_block') (Line: 45) Drupal\block\BlockPluginCollection->get('system_breadcrumb_block') (Line: 83) Drupal\Core\Plugin\DefaultSingleLazyPluginCollection->setConfiguration(Array) (Line: 99) Drupal\Core\Plugin\DefaultSingleLazyPluginCollection->addInstanceId('system_breadcrumb_block', Array) (Line: 55) Drupal\Core\Plugin\DefaultSingleLazyPluginCollection->__construct(Object, 'system_breadcrumb_block', Array) (Line: 34) Drupal\block\BlockPluginCollection->__construct(Object, 'system_breadcrumb_block', Array, 'claro_breadcrumbs') (Line: 156) Drupal\block\Entity\Block->getPluginCollection() (Line: 145) Drupal\block\Entity\Block->getPlugin() (Line: 118) Drupal\block\BlockAccessControlHandler->checkAccess(Object, 'view', Object) (Line: 105) Drupal\Core\Entity\EntityAccessControlHandler->access(Object, 'view', Object, 1) (Line: 314) Drupal\Core\Entity\EntityBase->access('view', NULL, 1) (Line: 56) Drupal\block\BlockRepository->getVisibleBlocksPerRegion(Array) (Line: 137) Drupal\block\Plugin\DisplayVariant\BlockPageVariant->build() (Line: 274) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.

Suggest creating a redirect (provide link to do so) to admins on 404 not found pages

drupal 8 suggest redirects on page not found Drupal provide link to create redirect from 404 not found page It’s just nice to have the first half of the redirect already filled out for you, the not found path that should redirect to content that does exist. And i know i’ve seen it in the past. Not an option on admin/config/search/redirect/404 and there’s no blocks with redirect in the name to place, either.

Give a block a class based on ID in modern Drupal 8 9 10

drupal 8 give block class based on ID The ID used for the actual ID attribute tends to be sorta idiosyncratic and ugly. The Plugin ID tends to make a better source for a place to hang markup. plugin_id: page_title_block base_plugin_id is same no derivative plugin Following the same pattern: system_main_block with a block originalID of greenhouse_vhfa_system_main system_messages_block " menu " " branding " system_menu_block:menu-header-menu $variables[“plugin_id”] = “block_content:80cded59-9651-5dae-bfeb-78a1930c76”

Convert internal node/123 style paths to pretty path aliases for links within content in modern Drupal 8 9

drupal 8 formatter internal node paths to path alias input filter The evidence that LinkIt does support was in https://www.drupal.org/project/linkit/issues/2988145, and then we found it also did it as a filter, the good old style, which i was happy to see, but apparently the filter is LinkIt-specific. This module, the usual go-to in Drupal 7, looks like it’s been upgraded to Drupal 8 and even has Drupal 9 fixes awaiting review, but no one has cut a release: https://www.

Copying from Gtk.Window does not work and can even freeze apps trying to paste into

Investigated Error writing data to X11 selection Failed to flush selection output stream BadWindow invalid Window parameter preventing copying from my pomodoro prompt window. It just gets worse the more i look, not sure it’s something my little script can fix or not. Error writing data to X11 selection: Failed to flush selection output stream: BadWindow (invalid Window parameter) Repeated a dozen times immediately. It didn’t show that error again, instead i see things like:

CSS-only responsive mobile menus hamburger style

Mostly i cribbed from https://codeconvey.com/responsive-hamburger-menu-css-only/ This is fancier but less relevant: https://moderncss.dev/css-only-accessible-dropdown-navigation-menu/ I don’t think escape to close is so important on a mobile-only visual effect, with a short menu— can just keep moving down to content, we don’t change the way it works really from mobile to desktop to screenreader.

Improving the editor experience of linking to things in Drutopia (or modern Drupal in general)

easily link to other content in Drupal 8 and Drupal 9 This module i don’t see much need for (don’t want to encourage random classes and stuff on links, or the bad habit of forcing links to open in new windows/tabs, although the title capability is cool) https://www.drupal.org/project/editor_advanced_link — hmm, only the listed ones will show in the dialog for filtered HTML, which is the norm for content editors, so actually this is pretty sweet site managers who want more functionality can get it without even having to enable the module, it’ll already be enabled for titles, just allow more HTML…

Renaming image styles through Drupal's UI can blow things up

It is exactly the image style i deleted: $image_style_setting: “front_page_news” Or rather, renamed through the UI, and it let me. It’s happening in a view that shows node 14309. In the view object itself i can’t find anything identifying the view (just the display, block_1) but in the $element["#theme"] object there is enough data to identify it: views_view_field__housing_matters_blog__block_1__field_image

Fade out the bottom of overly-long teaser paragraphs

fade to white in last 10px css gradient overlay gradient overlay over a paragraph weighted gradient css responsive style based on height of element It’s not pretty but i’m doing this. Well actually didn’t find a way to do it based on height, but i have a pretty good idea of how my heights change at different breakpoints, so did it conditionally that way. This worked pretty nicely (in Firefox) but had to abandon it because in Chrome it turned the whole text into a black block.

Images with Hugo content easily without changing from simple markdown file per post structure

hugo static site generator where do images content go hugo do i have to change post to be in a folder to add an image hugo support forum hugo stackexchange OK so Hugo has an approach called page bundles where the assets for a page or a post (or a note like these raw notes for Agaric, whatever you call your content type) So hugo forces the built content into this directory which means you can do lighter-weight, after-the-fact adding images to a page/post called here-is-my-example-post.

Uncaught PHP Exception UnexpectedValueException External URLs do not have internal route parameters

Uncaught PHP Exception UnexpectedValueException: “External URLs do not have internal route parameters.” $item[“url”] Here’s the culprit, the “News” link i replaced: “menu_link_content:c08f3236-1642-4d63-b130-925dd6ff844c” I guess this was caused by there no longer being a path for this menu content item? Random other things i ran into Symfony\Component\Routing\Exception\ResourceNotFoundException: No routes found for “/node/49”. Symfony\Component\Routing\Exception\RouteNotFoundException: Route “entity.node.create” does not exist. RuntimeException: Resource is not a file: “public://feeds/csv_file_for_reo_import_tool-1.csv” RuntimeException: Resource is not a file: public://feeds/pro-publica-sources.

Aggregating the total count of translations initiated by analyzing page query strings

pandas to integer multiple columns dataframe pandas convert_numeric ValueError: Unable to parse string “1,498” pandas convert numbers with comma thousands separators pandas import cast to number pandas groupby aggregate pandas group by contains regex pandas orderby import pandas as pd trnsltd = pd.read_csv('/home/mlncn/Nextcloud/agaric-nextcloud/agaric/clients/FindItCambridge/analytics/translated-pages-20200614-20210615.csv', thousands=',') trnsltd.drop(columns = ['Avg. Time on Page', 'Entrances', 'Bounce Rate', '% Exit', 'Page Value'], inplace=True) cols = trnsltd.columns.drop('Page') pattern = '.+\?language=([a-z][a-z]).*' language = trnsltd.Page.str.extract(pattern, expand=True) trnsltd['Language'] = language "trnsltd.

Preventing flash of extra unwanted spacing before JavaScript finishes loading in a Drupal theme

This is for Drupal 8 or Drupal 9, or Drupal 10 or 11 for that matter, what i call modern Drupal Unless i get this fixed in core which i will try to do. Identifying a By copying the full body HTML using Firefox inspector’s copy outer HTML and pasting it into a text file, once with JavaScript disabled and once with JavaScript enabled, and then comparing the two files with Meld, i could see that the only difference in this section of the page between no-JS and JS was

Listing translated taxonomy terms only once each in the current detected language

drupal 8 Views taxonomy term listing translation Drupal issue with workaround of filtering by original language, and then displaying in correct current language: Was (broken): Filter criteria Taxonomy term: Default translation (= True) Language Rendering Language: Interface text language selected for page Fixed: Removed translation from filter criteria entirely. and changed: Language Rendering Language: Content language of view row That was for a special listing view. For regular taxonomy term page views we have:

Show within-line changes when doing git add -p so you can see what you're doing

Show in-line changes in a git diff which characters and words changed from previous within same line git diff show inline changes git add –patch within-line diff character-level or at least word-level differences show in-line diff for git add interactive Really liking https://github.com/mookid/diffr git diff show inline changes git diff changes in a long line diff-highlight is script provided by git that shows word-by-word diff Use Homebrow to install diffr:

Providing autocomplete search suggestions in modern Drupal

Drupal search suggestions autocomplete search terms in Drupal 8, Drupal 9, Drupal 10 There doesn’t seem to be a particularly well-maintained module for suggesting search terms as you type them: In order of best maintained and actively used first: Search Autocomplete Autocomplete Search Suggestions Search Suggestions

python harvest api list of projects with clients

Tangential, but nice and helpful: https://dev.to/jakewitcher/using-env-files-for-environment-variables-in-python-applications-55a1 Working code: import os import json import urllib.request # Import our local settings management. import settings # Allow HARVEST_ACCESS_TOKEN etc to be loaded from a .env file. from dotenv import load_dotenv load_dotenv() url = "https://api.harvestapp.com/v2/projects?is_active=true" headers = { "User-Agent": "Python Harvest API", "Authorization": "Bearer " + os.environ.get("HARVEST_ACCESS_TOKEN"), "Harvest-Account-ID": os.environ.get("HARVEST_ACCOUNT_ID") } request = urllib.request.Request(url=url, headers=headers) response = urllib.request.urlopen(request, timeout=5) responseBody = response.read().decode("utf-8") api_projects = json.loads(responseBody) if (len(api_projects["projects"]) == 100): print("You retrieved exactly 100 projects, the API limit.

Firefox taking all the CPU and dying

May 31 14:44:43 d64 dockerd[1605]: time="2021-05-31T14:44:42.072757985-04:00" level=warning msg="Health check for container 829ff8412ca27408578c8bc03d810adb71bcc570ad5c2649a4e61311448dbdb4 error: context deadline exceeded" May 31 14:45:11 d64 containerd[964]: time="2021-05-31T14:45:09.368879483-04:00" level=error msg="get state for 829ff8412ca27408578c8bc03d810adb71bcc570ad5c2649a4e61311448dbdb4" error="context deadline exceeded: unknown" May 31 14:45:16 d64 containerd[964]: time="2021-05-31T14:45:10.752101394-04:00" level=warning msg="unknown status" status=0 May 31 14:45:21 d64 dockerd[1605]: time="2021-05-31T14:45:13.337410490-04:00" level=warning msg="Health check for container e8abd18023718a85d764858c0c0a5c05e9efb5fb76c7486999abc97f59d4df76 error: context deadline exceeded" May 31 14:45:27 d64 dockerd[1605]: time="2021-05-31T14:45:13.337406908-04:00" level=warning msg="Health check for container 9388ea6f24469a4372cdca136dd256175406c4b335b4963379f4ae5104060ab4 error: context deadline exceeded" May 31 14:45:31 d64 dockerd[1605]: time="2021-05-31T14:45:24.

Tell composer to use a Drupal issue fork

To include an issue fork like this one: https://git.drupalcode.org/issue/exclude_node_title-2624734/-/tree/2624734-page-title.html.twig-still-show Note that both the repository and the branch name are kind of crazy. The information you need is the git clone information from this repository (blue button top right of the content) and the branch name, which you’ll have to prefix with dev-. First, the repository and the path from git clone in the URL. Make your composer.json include something like this:

Prevent touchpad from scrolling when trying to press a button by completely disabling trackpad over the buttons area

Maybe i’m not as delicate and steady with my fingers as some, but it’s driving me absolutely batty to try to press a button and instead have my cursor move before the button push is registered. I always disable tap to click to not have similar problems over the trackpad as a hole I: Bus=0018 Vendor=06cb Product=7a13 Version=0100 N: Name="SYNA2393:00 06CB:7A13 Touchpad" P: Phys=i2c-SYNA2393:00 S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-23/i2c-SYNA2393:00/0018:06CB:7A13.0001/input/input17 U: Uniq= H: Handlers=mouse1 event13 B: PROP=5 B: EV=1b B: KEY=e520 10000 0 0 0 0 B: ABS=2e0800000000003 B: MSC=20 Whatever it is, it’s not a kind that Debian’s documentation could identify:

Reserve Drupal node IDs (protect certain internal paths from use)

prevent Drupal from using given Node IDs drupal 8 how to reserve a node ID There’s possibly a way to intervene at the moment of saving to manipulate the node series, to veto a given number and jump to the next one. There does not appear to be a way, in Drupal 7 or 8, to more simply increment the next node ID to 10,000 or such to jump over all the nodes on the old site (the one i need to avoid for a client is merely 98), or at least i don’t see any such thing in sequences, semaphore, key_value, or such database tables.

Error because theme requires module to work even though it's declared a dependency

Unable to install theme due to unmet module dependencies: ‘components’. drupal 8.9 Unable to install theme: ’newtowne’ due to unmet module dependencies: ‘comp onents’. Despite the epic, more than a decade long Allow themes to declare dependencies on modules add dependency to a module or a profile like this Change record: Themes can declare dependencies on modules | Drupal.org And big thanks to vaibhavjain for confirming my experience: Does not enable modules I tested it and I believe, the dependencies will not enable the module.

Option to set comments to Hidden on an individual piece of content (node), even when it has no comments

Drupal 8 and Drupal 9 comment fields provide three settings for the default, as configured at for example /admin/structure/types/manage/article/fields/node.article.comment: The default value for this field, used when creating new content. Comments Open Users with the “Post comments” permission can post comments. Closed Users cannot post comments, but existing comments will be displayed. Hidden Comments are hidden from view. But when creating or editing a node, the only options for comments are “Open” or “Closed”.

Setting up another new computer and making it work like i like

This is very much not for everyone, as the first thing we’re doing is switching from Debian stable to Debian testing, and most everyone won’t be on Debian at all let alone a few steps towards the edge. But it’s a place of freedom and power! We’re just going to do the whole thing as one long cut-and-paste into the terminal as much as possible. But first, replace /etc/apt/sources.list with this:

Use dialog window to capture entered text with Python Gtk.entry

A dozen examples and only one showed how to actually retrieve the text that was entered, how to take the entry text and close the dialog when the enter key is pressed. gtk entry window ctr+z undo text change Allegedly: Not going to happen in GTK3, but already in GTK4: https://gitlab.gnome.org/GNOME/gtk/-/issues/1690 Background, i guess: https://wiki.gnome.org/Projects/GTK/Undo python first row of CSV if not exists For this, you just have to check the file manually, there’s sadly no helper method in Python’s CSV writer and surprisingly few people seem to be trying to do the same thing.

Converting a simple pomodoro timelog into an aggregated, importable CSV

pandas groupby aggregate Useful tutorials and documentation: Pandas: How to Group and Aggregate by Multiple Columns pandas arithmetic on column pandas convert column to integer pandas tail where pandas filter https://pythonspot.com/pandas-filter/ timelog[timelog[“tmp_multiplier”].isnull()] started recorded description time date day_of_week project tmp_multiplier 86 2021-01-15 18:09:08.898848-05:00 2021-01-15 18:34:12.255947-05:00 NaN 30 2021-01-15 Friday NaN NaN 125 2021-01-18 17:22:37.486157-05:00 2021-01-18 17:47:38.451988-05:00 NaN 30 2021-01-18 Monday NaN NaN 225 2021-01-26 10:51:24.283985-05:00 2021-01-26 11:16:27.573177-05:00 NaN 30 2021-01-26 Tuesday NaN NaN 269 2021-01-28 12:34:49.

Comparing configuration page providing modules, simple ways for site managers to edit settings

For site managers to provide settings that need to be stored somewhere, instead of rolling our own config pages we can use https://www.drupal.org/project/site_settings or/and https://www.drupal.org/project/config_pages My first need is for the front page behind the image slogan: front-page-image.png The text there, the slogan, is already stored at admin/config/system/site-information. Does one of those modules work well to provide a place to upload the image? (And going forward, potentially other info like setting the default city.

Another try at getting a laptop that can handle what i put it through

I’m a web developer, so almost everything i do is in basically a text editor and a web browser, but apparently that’s too much to ask of modern hardware. All right, i also do lots of other stuff that ends up with me having hundreds of tabs open at any given time, and i may be running a dozen docker-based virtual machines, and word processers and music and multiple chat software, and plenty of videoconferencing, but i can use apparently infinite RAM and can at times bog down almost any system, it seems.

Allow retroactive creation of path aliases in drupal 8-9 which incorrectly believes contant had manually set aliases but are blank

**** drupal 8 incorrectly thinks manually set no alias drupal 8 retroactively aliases Basically, the bug seems to be that “Automatic URL alias” was unchecked for every node created, when in fact there was no automatic alias configured which is the only reason it didn’t get an automatic alias— and indeed, it got no alias at all. Trying to rectify this after the fact doesn’t work because of this weird behavior or bug.

Programmatically set default value for multiple row table webform element

YAML that looks like this: - account: '' adjustment: '123' principal: '' interest: '' fee: '' - account: '' adjustment: '456' principal: '' interest: '' fee: '' - account: '' adjustment: '789' principal: '' interest: '' fee: '' - account: '' adjustment: '012' principal: '' interest: '' fee: '' - account: '' adjustment: '345' principal: '' interest: '' fee: '' Can be done with code that looks like this:

webform drupal 8 view only field

webform drupal 8 view only field read only This is a simple checkbox in the webform UI: Read only, to be seen greyed out but also submitted. , to be ignored on submit. Note that neither of these enforces the read only aspect on a code level, so do not use this for anything that needs to be securely locked down. Visitors can manipulate the DOM (as through browser tools) and change the “read only” value.

Restrict access to edit fields by role in Drupal

drupal 8 drupal 9 restrict access to edit fields A much broader-in-scope module looks like the best maintained option for this: https://www.drupal.org/project/field_permissions You configure per field to allow the permissions to be set in the first place, so it does not overwhelm the (already overwhelming) permissions page. And probably it’s not a terrible hit on performance?

Belated update to the first Drutopia member

Hi! Thank you for following up, and apologies, time has gotten a little lost. Agaric hosts the majority of the Drutopia sites out there The latest Drutopia site in development is CRLA.org Oh, and i guess the latest one launched is https://solidaritynet.work/ Nothing particularly special about FAHN’s relationship except the length of time! $500/year remains our base rate for the Drutopia platform. Drutopia as an organization is not providing hosting currently, so your relationship is directly with Agaric, and we’re formally taking on the platform side of Drutopia.

Unbelievably A Small Orange does not offer Let's Encrypt to their shared hosting customers

TLDR this is what i was just finishing typing when the support agent just ended the damn support session on me! My question is why A Small Orange doesn’t provide the Let’s Encrypt CPanel plugin so that shared hosting customers can get access to the free SSL provided by Let’s Encrypt in this massive effort gaining near universal support over the past five years? Tech Support: SSL We would like to enable HTTPS (and make it default) for http://cockrillcorp.

Can one use Elastic Search as a service rather than installing it locally

Given the existence of Solr as a Service, such as Hosted Apache Solr from such a Drupal community stalwart as Jeff Geerling, i figured there surely had to be also hosted Elastic Search that would be easy to use with Drupal. It seems… not? Articles about Elastic Search and Drupal that only mention downloading and installing Elastic Search yourself: https://opensenselabs.com/blog/articles/elasticsearch-drupal https://blog.codeenigma.com/elastic-search-and-drupal-3b74030ff84e There are of course plenty of hosted elasticsearch options, including elastic.

LibreSaaS

(This is jut a copy of the etherpad at https://pad.drutopia.org/p/libresaas which will form the initial content of LibreSaas.org) Please also read https://dm.zimmer428.net/2018/11/libresaas-revisited/ by Kristian Rink (@kr428) who independently coined “LibreSaaS” for the exact same need and reasons, but better stated. LibreSaaS Read The Docs https://readthedocs.org/ Read the Docs simplifies software documentation by automating building, versioning, and hosting of your docs for you. It’s free to use on their site, and free to download and run yourself in its entirety, but they also have payment options.

PHP Fatal error Uncaught Error Class DrushCommands not found in BehatDrushEndpointCommands

(Note: Agaric did not build this site. We inherited it when the client was in desperate straits.) Why isn’t this happening to anyone else? On an inherited site’s codebase, but i’ve got my coposer.json file looking pretty much the same as Pantheon’s “drops” example. Fatal error: Uncaught Error: Class 'Drush\Commands\DrushCommands' not found in /var/www/html/drush/Commands/contrib/behat-drush-endpoint/BehatDrushEndpointCommands.php:18 Stack trace: #0 /var/www/html/web/vendor/drush/drush/includes/annotationcommand_adapter.inc(288): include_once() #1 /var/www/html/web/vendor/drush/drush/includes/annotationcommand_adapter.inc(269): annotationcommand_adapter_create_commandfile_instance('/var/www/html/d...', '\\Drush\\Commands...') #2 /var/www/html/web/vendor/drush/drush/includes/annotationcommand_adapter.inc(102): annotationcommand_adapter_get_commands(Array) #3 /var/www/html/web/vendor/drush/drush/includes/command.inc(1120): annotationcommand_adapter_commands() #4 /var/www/html/web/vendor/drush/drush/includes/command.

Making a website that's a grid of screenshots taken from other websites and saved locally

grid of cached screenshots website grid of cached screenshots drupal So the motivation is to share with a designer that we’re going to be working with that website design, modern Drupal, and Searching for drupal 8 9 showcase design eventually brought me to: https://drupalsites.net/ which is the best such listing i’ve found, certainly much better than drupal.com which is limited and rarely updated (and case studies while fantastic are not the best when focusing on design)

On leaving and deleting groups in Signal

I was wondering something about loops. There are definitely a couple where we set the messages to disappear right away as opposed to nuking the group and starting over. What are your thoughts on that? more thoughts than i have time for and… frustratingly i think i’ve typed them all out before into a Signal loop where the messages then disappeared 😭 😢 there is currently no way to “remote delete” messages.

Do not use array_splice twice to get the two parts of an array

A little lesson or two in the art of PHP may be forgiven. - $upcoming_initial = array_splice($series['upcoming'], 0, $upcoming_limit); - $upcoming = array_splice($series['upcoming'], $upcoming_limit); + // This code had two array_splice's in a row before, one to get the + // initial and the second to get the rest (upcoming limit as the offset + // with no length to get all the rest. This was unnecessary and indeed + // actively harmful, because array_splice takes the array it is given + // by reference and *removes* what it returns from it.

Scroll to next line with forward arrow key when using vim or nvim

neovim press back button to get to previous line Vi Vim scroll to next or previous line with right (forward) or left (back) arrow keys In .vimrc (or a file included from there) put: set whichwrap+=<,>,[,] https://superuser.com/questions/35389/in-vim-how-do-i-make-the-left-and-right-arrow-keys-change-line

Phone options for houseless people – winter in Minnesota

Having not found a Cheapest decent one i found online, $83 Nokia. https://www.newegg.com/nokia-31-5-2-gsm-hspa-lte-black/p/23B-0001-001T6 A person who has gotten phones for people at lots of encampments said he could usually find $60 phones, and advocated requesting donated equipment. The phone i have is probably the cheapest of the ruggeds, at $131, the Kyocera Duraforce Pro 2. https://www.newegg.com/kyocera-duraforce-pro-5-gsm-hspa-lte-black/p/23B-0086-00041?Description=Kyocera&cm_re=Kyocera-_-9SIABPXCYG4086-_-Product&quicklink=true The CATS60 Rugged Smartphone and the Kyocera Brigadier Rugged Smartphone just seemed too expensive for what they provided and/or not available.

Allow editing small strange-sized images with image crop in Drupal 8 and Drupal 9

The ideal thing would be to allow basic editing so that the canvas can be expanded before or while cropping— and the color or transparency of the added space can be set by a site administrator or possibly even the content editor doing the cropping. Posted this comment (and re-opened the issue): crop outside the image size [#2950769] | Drupal.org Clarification: Cropping a 200x300 image into a 250x250 image, adding whitespace (or transparent background) above and below, would be possible with “100% of Cropper features”?

Greenlight usability issues for Big Blue Button first-time tryers

It started with something that went wrong in the administrative user experience, that then very negatively impacted the experience of someone trying for the first time. In the initial room settings dialog that was part of creating the room in the frist place, i definitely checkmarked “Allow any user to start this meeting” and “All users join as moderators”. I’m not sure if there’s a UX bug and i missed the save button, or if there’s a software bug and these initial options get ignored.

Choosing a hosted CiviCRM provider or other LibreSaaS CRM for Agaric

Choosing an awesome CRM - Crazed fan Relationship Management - platform for Agaric. #LibreSaaS - hosted by someone else but open source free software CiviCRM options: https://civicrm.org/partners-contributors?country_id=&custom_157=Hosting&custom_181=All&cms=All Potential ‘hosts’ of CiviCRM (for most hosting isn’t their main thing) Friends: https://nubay.org/ https://palantetech.coop/ https://www.openflows.com/ Ex-Palante co-founder Jon Goldberg: https://www.megaphonetech.com/ https://www.progressivetech.org/ (not interested in for-profits nor unusual non-profits) Some that i know have contributed to CiviCRM: https://joineryhq.com/ Actual SaaS, should be able to just sign up: https://www.

Fixing zenipy errors, dependency pytz no longer there and then No module named gi after that was fixed

Could not find a version that satisfies the requirement gi Original problem that happened suddenly. Literally had worked the day before. $ python3 pomodoroprompt.py Traceback (most recent call last): File "/home/mlncn/Projects/agaric/pomodoroprompt/pomodoroprompt.py", line 6, in <module> from pytz import timezone ModuleNotFoundError: No module named 'pytz' OK fine re-install my requirements: $ python3 -m pip install --user -r requirements.txt Collecting playsound Using cached playsound-1.2.2-py2.py3-none-any.whl (6.0 kB) Collecting pytz Using cached pytz-2020.4-py2.py3-none-any.whl (509 kB) Collecting tzlocal Using cached tzlocal-2.

Responding to a person interested in an upgrade of Drupal (content migration)

Hey there. I have a longtime client that is running Drupal 7, and they just now are expressing interest in upgrading to 9. Is this a service agaric could provide? If so, I’d love to get a quote from you so we can get them moved over easily. Thank you for thinking of us. We can definitely do this upgrade; content migration from one site to a new one is one of our specialties.

firefox make page loading screen dark

Simply choosing Mozilla’s Dark theme does not do it. Using some legacy options to provide stylesheet to set new tab background color: https://gist.github.com/gmolveau/a802ded1320a7591a289fb7abd0d6c45 This one might affect some websites as well as new tabs? https://fedidat.com/640-dark-newtab-firefox/

Filtering by multivalue date range fields in Solr

solr filter multivalue date field See also Filtering by date range with Solr in Drupal 8 If we restrict events to only being one day (no multiday events) which is a request from Cambridge’s Find It staff for both data integrity and service provider user experience reasons (a simpler user interface encouraging proper behavior), this may be more possible, using something like the approach hinted at here: https://stackoverflow.com/questions/8793316/denormalizing-and-searching-date-ranges-in-solr?rq=1 That is, multivalue dates, rather than multivalue date ranges, may be much more manageable.

Transforming Community Safety in Minneapolis survey

Transforming Community Safety in Minneapolis Question Title In June 2020, the Minneapolis City Council pledged to create a new model of community safety. As part of that, they committed to a yearlong process of community engagement. The engagement will ask the Minneapolis community what the new model should look like. This survey is one of the first steps in that process. To stay informed about future opportunities to be involved, please visit: https://www.

Field moderation_state is unknown breaking content listing

InvalidArgumentException: Field “moderation_state” is unknown. in Drupal\Core\Entity\ContentEntityBase->getTranslatedField() (line 587 core/lib/Drupal/Core/Entity/ContentEntityBase.php). … and somehow no one else has run into this.

Copy the previous time into next-added time when entering multivalue datetime fields in Drupal 8 and 9

For editor convenience, the site should assume that times will stay the same even as dates change for multi-day events. drupal 8 add time copy previous time javascript drupal 8 copy field value to another field javascript node edit form Drupal 8 drupal 8 on press of button javascript drupal jquery ajax field add return respond jquery trigger response on ajax xhr response drupal 8 add to existing ajax request javascript remove last element of an array jquery get id

Re-using an existing route in Drupal

drupal 8 return a route named in routing.yml drupal re-using an existing route drupal 8 load and execute a route For Page Not Found Passthrough module we need to try a bunch of things and then fall back on the existing default 404 not found route if nothing else works. That route is very nicely defined in core/modules/system/system.routing.yml: system.404: path: '/system/404' defaults: _controller: '\Drupal\system\Controller\Http4xxController:on404' _title: 'Page not found' requirements: _access: 'TRUE' I’m looking for a way to effectively load and execute that route, with all those pieces as defined.

Towards a true honeypot module for Drupal

No disrespect to the current honeypot module, which is a great way to stop spam. But my understanding of a true honeypot is you really waste the time of the spambots and attacker bots. Here are some paths to put fake forms at to waste the time of malicious bots. Path Count Sort ascending Daily count Last accessed /auth/register 2,641 1 ‘20 Oct 05 /~kava/paypal/us/webscr.php?cmd=_login-run 1,638 0 ‘20 Oct 04

In Python order a dictionary by values and give all keys sharing the lowest value

Get keys of a dictionary grouped by their values get all unique values from a dictionary python python unique values in list python get all keys by value # This could be made more efficient. We want to check quickly "is there # any key with a value of 1?" and immediately return when we find one, and # if not, then try 2, then 3, and so on. But we can bail as soon as we # find a low integer, without sorting everything; also not known by me if # getting a unique set before sorting is faster than not.

python refresh script from shell

Trying out a simple script in the python command line interface, i noticed changes to my Python file were not reflected when i re-ran my function. There had to be an easy way to get it to update— and there sort of was: cd where/my/file/is python3 >>> import myrandomfile >>> from importlib import reload >>> reload(myrandomfile) and that works!

python remove from list see which value caused the error

python remove see which value caused the error python remove from list see which value caused the error python list remove You don’t actually have to do anything fancy for a list (well, except use list comprehension, which is pretty darn fancy). Here it is: list = ['war', 'peace', 'prisons', 'parks', 'hate', 'love'] remove = ['war', 'police', 'prisons', 'hate'] left = [i for i in list if i not in remove] With the result:

Ways of transfering money between people and businesses in different countries

For the US, how to transfer between bank accounts within the country is still a useful service, because we do banking terribly. Generally recommended as the best: https://transferwise.com/us … it does not support Nicaragua. A new one that has low fees: https://www.revolut.com/en-US … supports even fewer countries.

Image derivatives in Drupal not generating? Check your mod_rewrite

drupal 8 stopped generating image styles 404 file not found returned when visiting image styles If that 404 page is generated by your web server (says Apache Debian, or NGINX, or is anything other than your Drupal site) then you’ve just identified that the problem with your image styles not creating derivitive files for you to load has nothing to do with your file system or file permissions or anything like that, it has to do with you not telling Drupal it should handle those paths.

Trying to set up online banking sync with GnuCash and Digital Federal Credit Union

Agaric, LLC uses GnuCash, open source desktop accounting software, for our bookkeeping. We would like to connect it to our online banking. The software requests: DCU’s bank code The user ID that identifies us to the bank The internet address of DCU’s Online Banking server and “For HBCI Online Banking, information about the cryptographic public key of your bank (“Ini-Letter”) service rep: you need the dcu bank code do you know your pin?

Get LibreOffice Calc to interpret ISO datetime strings as dates

libreoffice format ISO as date libreoffice interpret ISO datetime as local timezone OpenOffice ISO date standard display Basically no. Wow. Great to have this helpful formula (in comments to answer linked below) but damn spreadsheet software should be able to automatically recognize common datetime standards if you just tell it what it is. https://ask.libreoffice.org/en/question/1673/possible-to-have-calc-recognize-iso-8601-date-format/

Composer giving cannot resolve to an installable set of packages because no matching package found for projects that definitely exist

In short: Make sure you haven’t deleted the Drupal repository from your composer.json or, what i did (as warned by the message that the key repositories is a duplicate!) accidentally overrode the repositories section. $ composer update Key repositories is a duplicate in ./composer.json at line 52 Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for drupal/drutopia_core dev-8.

When Drush just isn't working on your deployed site, make sure you've deployed your composer.json file

Is Drush status finding Drush but acting like it can’t find the website? $ drush @test status PHP binary : /usr/bin/php7.2 PHP config : /etc/php/7.2/cli/php.ini PHP OS : Linux Drush script : /home/members/example/sites/test.example.org/web/vendo r/drush/drush/drush Drush version : 9.7.2 Drush temp : /tmp Drush configs : /home/members/example/sites/test.example.org/web/vendo r/drush/drush/drush.yml drush @test uli In Process.php line 235: The command "ssh -o PasswordAuthentication=no exampletest@jacobs.mayfirst.org 'env PAT H=/home/members/example/sites/test.example.org/users/exampletest/bin:/ usr/local/bin:/usr/bin:/bin /home/members/example/sites/test.example.org/ web/vendor/bin/drush user-login --uri=https://test.example.org --root=/home/memb ers/example/sites/test.example.org/web/web'" failed.

Distributed peer-to-peer communication

Walkie-talkies are peer-to-peer! encrypted peer-to-peer chat Briar https://briarproject.org/ RetroShare Which i guess had this name when it started in 2006, and has just been getting truer since. https://retroshare.cc/ Tox Allegedly is distributed. https://tox.chat/ No iOS app per the downloads page and client comparison page. Not distributed peer-to-peer Decentralized XMPP The standard. Many clients: https://dino.im/ And many server options: And it’s got to be easier to set up ones own server with such an established

DDEV claims you have no internet connection, when you clearly do (and fills up your /etc/hosts as a result).

ddev network error ddev fills /etc/hosts ddev network timeout not an issue When I run, for example, ddev ssh, I always get the annoying error: Internet connection not detected, see https://ddev.readthedocs.io/en/stable/users/faq/ for info. Unfortunately, this isn’t the first time an annoying error of little effect got under my skin. If some error claims something to be true, when I quite clearly know it is not, I find myself constitutionally incapable of ignoring its ignorance.

Vim shortcut for copying or cutting everything inside two characters including the characters themselves

vim inclusive vim include vi grab between two letters greedy vim delete inclusive of characters This was the third or fourth time i’m trying to look this up so documenting here where i can find it most easily. Use di plus the character of your choice to delete everything between those two characters (and then you can use p to paste them somewhere else). Use yi to copy between things without deleting.

Prevent duplicate tabs by finding and switching to a tab with the identical URL rather than opening a new one when clicking links

firefox open link in open tab if exists firefox open link in existing tab prevent lots of duplicate tabs when clicking on links by finding and switching to a tab with the identical URL rather than opening a new one firefox link switch to open tab Firefox extension that prevents re-opening already open tabs firefox add-on that will stop me from reopening previously opened URLs … how am i the only person who needs this?

Change the extension for a large number of files at once on the command line

command line change extension on a batch of files linux command line change extension “repren” change ext ubuntu debian repren is a great little utility program that lets you do in one line what many command line tools would require a little script. Usually i find my minimal understanding to be enough; most things are pretty self-explanatory. For changing the extension for a bunch of files at once, however, it was much easier to re-learn about the --literal option to not interpret anything as regex than to figure out what regex i would need to change

Recording events by time in order to detect patterns

logging times to detect patterns open source time series data https://www.influxdata.com/time-series-platform/ https://cs.stackexchange.com/questions/57830/machine-learning-identify-patterns-in-time-series-data OK, when we’re talking three to thirty observations a week, like i am now, i suspect the answer is just a spreadsheet. But i don’t know of an easy way to detect time patterns in a spreadsheet. https://blog.timescale.com/blog/what-the-heck-is-time-series-data-and-why-do-i-need-a-time-series-database-dcf3b1b18563/ they do https://github.com/timescale/timescaledb but i’m really looking for something where i don’t have to build the app… ‘course, maybe i could build the app and others would also need it…

Resources for police and prison abolition

Just needed a public place to finally start putting things until getting some awesome (ideally git-backed) wiki up. Examples of the Present System Being Indefensible ‘Enraging and Inexcusable’: Louisiana Supreme Court Rules Black Man Convicted of Garden Tool Theft 20 Years Ago Should Die in Prison | Common Dreams News — manifestly concerned with process at best and never any conception of justice. Humorous Depictions of Status Quo Logic Angela Davis vs the Liberal Reformers - Existential Comics See also 2020-07-02-software-for-rapid-response-network-for-responding-to-crises-without-police.

Why choosing brands and investments that match one's impact persona probably isn't the way out of this mess

Or at least, not the way Ethos does it. When i say no poverty and stop destroying the enviornment, it should be directing me to resources to take down capitalism. Instead it thinks i’m going to love Microsoft (monopolist that gets buddy-buddy with oppressive governments everywhere), General Mills (major driver of monocrop agriculture), and Autodesk (probably a more price-gougy monopolist than Microsoft right now) are all buddy-buddy matches. Seems based mainly on how they treat their own employees, which, OK, that’s a great start, but hardly the measure of impact of a major corporation—

Infiltrating the Platform Cooperativism Facebook group

Platform Cooperativism - Discussion & Linkshare If you’d like to be admitted to this forum, please answer the following brief questions! How did you hear about us? Facebook suggested you. Seems y’all are keeping this on the downlow on the platform-discuss list, hmmmmm. Let me in or i’ll blow your cover. ;-) What interests you most about platform cooperativism? ALL the good things but also the need to do mass democracy, and so communication, well.

Proposing visions unite tools for Portside

Drafts of a letter to moderators. Subject: Increasing Portside’s impact In addition to the ideas for expanding Portside’s circulation, reach, and influence—which of course are intended to increase Portside’s impact—here are ideas especially for increasing the impact of Portside’s articles, which will have a virtuous loop of increasing circulation, reach, and influence. Your readers all want to change the world. Portside gives them the knowledge. But knowledge, by itself, is not power.

Further notes towards in-site documentation for Drupal

in-site help documentation So, i was trying to decide whether to install the year-old alpha2 or the reasonably recent version of advanced help, as the structure to start building more robust documentation into the site (like, documenting the fact that user profile information will be selectable as a public contact). Why not just ask the current Drupal 8 maintainer of https://www.drupal.org/project/advanced_help if only we could find this mysterious “gnuget” character…

Making inter-linking content easy in Grav nothing found

grav editor autocomplete page links grav editor find pages grav link to internal page easily grav plugin wiki link Even alternate editors focused on content like https://github.com/bleutzinn/grav-plugin-editable-contenttools/blob/master/README.md don’t mention internal linking. And nothing i installed or played around with did anything. Guess it’s back to Drupal, where i know there’s lots to build on. I’m sure this could be added and Grav would be a really first-class wiki tool, but if i’m going to keep cutting against the grain hey i have plenty of experience in Drupal.

Fix-meaning find-unterminated comment error in PHP

find unclosed comments in PHP PHPcs linter doesn’t seem to identify one. I see people complaining about PHPStorm identifying unclosed comments even when they are closed, so maybe let’s try that. phpstorm inspect code greyed out Turned out that was just because some background indexing hadn’t finished after i re-opened the project. While i was looking for a solution, it fixed itself!

Topics in Discourse

Oh… if we were to divide it into major topics (scaling communication, building a knowledge base) that can have multiple threads within them, is there a good way to do that in Discourse? (Answering myself) Yeah dude they’re called categories. Example: https://comment.mayfirst.org/categories

firefox tab search does not find unloaded tabs

firefox fails to prioritize open tabs to switch to firefox tabs search does not find unloaded tab firefox tab search does not find suspended tabs Unloaded, or suspended, or discarded, or sleeping, or whatever you want to call them— these tabs do not come up as a tab you can switch to when doing the tab search in Firefox, whether through the ’everything box’ (address bar) general autocomplete history search or through the dedicated open-tabs-only search, which just puts ‘% ’ at the start of the universal search bar for you, which tells it to give you only open tabs.

how to suspend a specific tab in firefox that's using way too much memory when i'm not even using it

sleep tab firefox sleep specific tab firefox. hibernate a memory-hogging tab suspend tabs in Firefox turn off tab disengage firefox tab sunpend specific tab firefox From the description, Sleep Mode doesn’t have an easy way to suspend a specific tab— just suspend all tabs other than specific tabs. Tab Suspender by Michalewicz Piotr will do what i want— an option to do “Manual tab suspending (suspend, suspend others, suspend all to the right/left)”.

move windows with keyboard ubuntu

I am positive that Chris showed me how to do this easily, but i cannot find nor figure it out now. Just want to be able to snap left (half the desktop) or snap right (other half of the monitor) easily.

Organizing tabs in Firefox for saving sessions for later

To consider: Switching from Tabs Aside to OneTab. Don’t presently know of a reason too, but should come back and research this. Maybe sessions as used by Tabs Aside are taking up memory? Or maybe this outside-of-Firefox’s-normal-operations-text-list as used by OneTab would actually take up more memory. Maybe no one knows the answer to that. Any other reasons to use one over the other? To consider: dropping the dedicated Window Titler and Tab Mover extensions for ones that will do more

Choosing a Mastodon instance and why i joined Social.coop

finding the best mastodon server for you Today i was asked: I’m not on Mastodon yet, since I wanted to be picky about joining an instance that would make a good home. Are you happy with social.coop? I responded: Are you into cooperatives? And have you tried https://instances.social/ to filter by some preferences and search (general search) to find closer interests/identity etc? you can run any instance you find by me and i can check to see if they have a way to be clear about who is running it, how it’s funded etc.

Collection of good publicly available session recordings from the Allied Media Conference 2020

Cultivating Resilience through Food in Borikén, Palestine & Diaspora Seeds of Power: Cultivating Resilience through Food in Borikén, Palestine & Diaspora [English] https://www.youtube.com/watch?v=e_0dUYSjxuM&list=PLRGNfsyQ1DehvbXp-6Y0FdNYWghZpL2kl&index=3&t=0s https://amc2020.sched.com/event/d8xS/seeds-of-power-cultivating-resilience-through-food-in-boriken-palestine-diaspora

Setting language, including text direction, in HTML

set headers for different languages html set headers for different languages direction html set language direction html Hey again Melancon, I’ve got a quick HTML/CSS question for you. Translations of the info pamphlet are starting to roll in. I’m going to send Jill new HTML files for them…but the three we’ve gotten so far are Russian, Arabic, and Serbo-Croatian. In other words, I’ll need to make sure fonts are available for Cyrillic and Arabic scripts/formatting.

Notes from Allied Media Conference on responses i did get to the Slack

said it so well, it will take a coalition how do we Do you have plans for sharing power within the large coalition, large collaboration needed to build a media distribution network with greater reach than any of our corporate competitors? (yes i have ideas - mlncn) Nia Austin-Edwards Honoring the falsehood of paying for “organic reach,” is there a pathway to divest from these social media platforms while still being able to get our stories to our people “broadly”?

can i run behat tests that are in my modules directory

running Behat tests which are distributed throughout feature modules in an open distribution like Drutopia Behavior-driven development in a multi-repository Drupal project drupal 8 testing You can manually set the path to the feature file if you want them in a different place, and presumably you could programmatically run a bunch of different feature files in progression, but we don’t want that. So there is/was something called “Contributed Module Subcontexts” but they seem to be being taken away:

Identifying and dealing with weird Signal behavior

are you getting that from me now? I did just figure out that every time i got a “DM” from you in my desktop Signal that said unable to decode sent message that it was actually a message you’d sent to a regular loop we are both on— and that i could see on my phone, but not the computer. Tried reset session as one suggested fix. Jul 10 11:30pm

Extending Drupal with Joe Shindelar (to incorporate parts into When There's Not a Module for That)

Melissa Armstrong (she/her) Organizer • 44 minutes ago Hi @Joe Shindelar ! Feel free to begin sharing your screen and testing out your audio/video as soon as you arrive! Bethany Lister Organizer • 41 minutes ago @Joe Shindelar , hello! Break a leg! Melissa Armstrong (she/her) Organizer • 40 minutes ago Hi Joe@ I can hear you Melissa Armstrong (she/her) Organizer • 40 minutes ago And the slides look good!

Inclusive content strategy notes from AmyJune Hineline to add to stylegudie

Where this learning has to end up: https://docs.agaric.coop/content-style-guide.html AmyJune Hineline - volkswagenchick (she/her) 4 hours ago Hello everyone!! Welcome. Here is the slide deck if you want to follow along. There is a list of links in the resources. AmyJune Hineline - volkswagenchick (she/her) 4 hours ago https://bit.ly/Inclusive-Content AmyJune Hineline - volkswagenchick (she/her) an hour ago https://github.com/AmyJuneH/Open-Source-Resources/edit/master/DCG_links Melissa Armstrong (she/her) Organizer • 30 minutes ago Hi @AmyJune Hineline - volkswagenchick (she/her) !

Page building showdown paragraphs vs layout builder

Kevin Basarab an hour ago Hi Jay! Thomas Donahue an hour ago o/ Jay Callicott an hour ago Greetings! Rich Lawson - Mediacurrent an hour ago Hi guys! Luke Leber an hour ago Hello! Brian Gilbert an hour ago wave from Australia Josh Wagner an hour ago o/ Shane Pfaffly an hour ago Hello! Hilmar The Drupalviking an hour ago Good evening from Iceland Kevin Basarab an hour ago Nice Brian!

recognizing racism as public health issue

recognizing racism as public health issue racism kills systemic racism and environmental justice implicit bias and medical professionals pollution and environmental racism https://www.usnews.com/news/healthiest-communities/articles/2020-07-08/racism-resonates-as-public-health-crisis-amid-pandemic-protests Minneapolis City Council declares racism a public health emergency - StarTribune.com That happened just a couple days after this BoF session, which is the reason i started researching the recent increased recognition of racism as a public health issue: https://agaric.coop/blog/are-you-building-communities-practice-community-health-time-public-recognition-injustice

Disable install new module link on the Extend page in Drupal 8 and 9

drupal 8 disable install new module link Add this to your settings.php or appropriate environment-specific settings.php if using that approach and wanting to allow this on some environments. $conf['allow_authorize_operations'] = FALSE; If you really don’t allow site administrators to access your server directly, this will prevent Drupal from lying to them and inviting them to install modules which they will not be able to do.

Discussion about using Drupal 8 Webform for HIPAA-compliant end-to-end encryption

This discussion took place in the chat of a presentation at the Healthcare Summit during DrupalCon Global 2020. user avatar Marie-Elise McNeeley in a few seconds Does Drupal provide end-to-end encryption with webforms? user avatar Steve Kessler in a few seconds Webform does not provide e2e encryption but it could be done. user avatar Sarah Kraushaar in a few seconds We’ve integrated with third parties like Jotform fr HIPAA compliance webforms

drafting and revising docs.agaric.coop introduction

If you find your way here, you are probably looking for: https://docs.agaric.coop/ Thanks! A worker-owned cooperative building web sites and applications with Free Software, Agaric prefers to share whatever we can. As a public-spirited worker cooperative building web sites and applications with Free Software, Agaric prefers to share whatever we can. This is a new home for that: Operational documentation Technical documentation How Agaric works: public documentation of a worker-owned technology cooperative’s inner workings as we build websites, apps, and a better world.

More on meritocracy

We’ve talked a bit about how meritocracy is not a thing as part of our presentation on scaling community decision-making our fellow cooperative builders at Vulk Coop break down why meritocracy can’t be achieved in corporate bureaucracies anyway: http://blog.vulk.coop/thirteen-reasons-why-you-are-not-in-a-meritocracy/

an agile approach to visual design

https://medium.com/@dnlbtlr/my-agile-design-process-to-redesign-scrimba-com-2b5d04f2692f https://www.uxmatters.com/mt/archives/2016/09/the-agile-manifesto-for-designers.php https://hackernoon.com/is-agile-the-enemy-of-good-design-14a35806cde7 https://techbeacon.com/app-dev-testing/visual-designers-guide-working-effectively-agile-teams https://pad.drutopia.org/p/designing-in-the-open-client-feedback-loop See also: https://pad.drutopia.org/p/designing-digital-value-mental-health

On choosing May First Movement Technology for client web hosting

Agaric and myself personally have been a members of May First Movement Technology for eleven years or so. May First has been a democratic membership organization for longer than i’ve been a member, but is new to identifying as and legally being a cooperative. May First sees itself as a movement organization first and provider of tech services second. They run lean but any doubts i had about sustainability went away after that first decade!

Simple shift scheduling software with a good mobile interface

open source scheduling web self-hostable shift scheduling software with a great mobile interface mobile spreadsheet open source Abandonware: https://github.com/staffjoy/suite or https://github.com/staffjoy/v2 Might be quite nice to fork and build on though. . Libre software part (shared code but proprietary features in separate repo) of https://fullcalendar.io/ is at: https://github.com/fullcalendar/fullcalendar But the demo website is horrific on mobile so good chance the software is too. . Could also do this with Rooms, maybe in Drutopia.

Simplest CSS to put inline for a single-page website

one page inline css simplest single page website tinycss oh wow Bulma is huge minimal hugo theme hugo zine theme Ended up stealing from… shamefully, i cannot find where i was stealing this from. I feel like i eventually ended up on a list of simple design examples and i don’t remember if they were pure CSS zen-garden style or for some static site generator. ::placeholder { color: #191919; } a.

gobject pygobject.rb error when updating homebrew

Error: An exception occurred within a child process:FormulaUnavailableError: No available formula with the name “/home/linuxbrew/.linuxbrew/opt/pygobject/.brew/pygobject.rb” Nope i have no idea how to fix it. I’m just posting because this error has not been posted anywhere else on the internet and i don’t see how it would be specific to me! The trigger: $ brew upgrade ddev But it updated a hundred things before that (i’m not a frequent brew user, but apparently my Python3 is installed with it, among other things?

A pomodoro time tracker that prompts for planned and completed tasks

lightweight way to record tasks done during pomodoro work sessions, and so effectively track time throughout the day pomodoro prompt what you did pomodoro timer with input in Python3 track what will do versus what did I’m sure i’ve searched for similar things many times before but i was focused on maybe actually building it myself this time. pedroarilla/pomothon: A project manager and time tracker written in Python. is pretty cool, but not quite the interaction i’m going for.

About Agaric text on Drupal.org

We build online. Agaric helps people create and use powerful web sites. As a collective of skilled workers, Agaric collaborates with you and open source free software communities to develop tools and build platforms that meet your needs. Ask Agaric about any of our strengths: We are passionate about creating collaborative networks that scale for companies and organizations who value openness and freedom. We pool the skills of our team to complement the goals of your team.

Software for rapid response network for responding to crises without police?

Some people are looking to start to build up “some sort of rapid response network for responding to crises without involving the cops. Wondering if you, or any of the other tech folks, might know of any good tools for alerting/activating that sort of network. All I’m aware of right now is Cell 411 (which has massive problems) and Buoy (which was abandoned in 2017). Right now all communication with those folks is happening over slack; I’m gonna try to move them over to an email list for setting up trainings, but obviously neither of those are options when an immediate response is needed.

Sphinx error WARNING unsupported theme option 'html_logo' given

WARNING: unsupported theme option ‘html_logo’ given This error is because … darn it, sorry, this is why i try to take notes live. This note somehow never got finished. It was something simple… oh! I remember now. This error is because i was putting it in the html_theme_options array when the logo should be outside the theme options array, given directly as a configuration setting. In general, any setting that starts with html_ of course applies to the theme but belongs outside the theme options settings cluster.

drupal configuration objects provided by installation profile have unmet dependencies

drupal configuration objects provided by installation profile have unmet dependencies See https://www.drupal.org/project/drupal/issues/2922417 for this coming up in Drupal core. See also: Don’t install a module when its default configuration has unmet dependencies [#2090115] | Drupal.org Dependency on configuration provided by install profile is throwing exception [#2850875] | Drupal.org Overriding module configuration in a Drupal 8 installation profile (with some “gotchas”) | Brian K Osborne UnmetDependenciesException on profile installation [#2890351] | Drupal.

Ensuring custom fonts work on mobile without delay or entirely disappearing

invisible text font loading Fixes/resources: Avoid flash of invisible text font-display for the Masses | CSS-Tricks Why your custom font isn’t showing on mobile • Thirty Eight Visuals Font not working on mobile devices. https://stackoverflow.com/questions/55761848/mobile-firefox-and-chrome-not-recognizing-font-face https://stackoverflow.com/questions/25741042/google-fonts-not-loading-on-mobile http://feedback.dominknow.com/knowledgebase/articles/243032-fonts-on-a-mobile-device See also / to be updated: 2018-08-14-including-your-custom-font-on-your-web-site-without-a-webfont-hosting-service.md.

Cooperatives Agarics belong to

Agaric itself is a member of: The United States Federation of Worker Cooperatives Digital Federal Credit Union Boston Chamber of Cooperatives May First Movement Technology Ben is a member of: Digital Federal Credit Union (separate account from Agaric) Northeast Investment Cooperative Wirth Coop (defunct) (pledged) Village Financial Cooperative (delayed/defunct?) Fair State Brewing Cooperative REI (with Bridget)

Using Drupal 8/9's UI templates module

You don’t need to do anything for UI templates module to be able to find templates in your module in a templates folder. At least,

Using Matrix and Riot for community organizing

We should start thinking about how it will interact with Signal loops. using matrix and riot for radical organizing using matrix and riot for community organizing Well, i can’t find anything written about how to set up your Matrix groups or rooms or communities (i don’t even know what they’re called) and otherwise use Matrix, and its web client Riot, for doing radical organizing in our communities. So, i guess we’ll have to write this ourselves.

what is a less-awful term for human resources

So a now-ex worker-owner at Agaric (actually he’s wonderful but i like that introduction in this context) created a folder called “human resources” in our shared file storage. So i had to come up with something else to call it. Wasted like an hour. what is a less-awful term for “human resources” This fine article comes up: https://www.inc.com/chuck-blakeman/why-you-should-never-use-the-term-human-resources-again.html …but it does not suggest an alternative term! The book “Injury Impoverished: Workplace Accidents, Capitalism, and Law in the Progressive Era”, by Nate Holdren, has a passage on page 128 quoting the last written words of Samuel Howard, a miner trapped in a mine, writing in his diary: “9:15 a.

Token to display webform markup elements in submission confirmation message Drupal

advanced html text element submission message Is it possible to re-display a markup (Advanced Html text element) in the submission confirmation message? [webform_submission:values:course_description] doesn’t work, which is to be expected as it’s not a value, but i’m not finding a token that would work (there’s title and description but not content), again to be expected, but i hope i’m missing some token. It’s static text, i can just copy and paste and have it in both places, but i know i’ll make some terrible mistake failing to update the confirmation text someday!

Show all solr inputs, relevancy calculations, and boosts affecting the order of results

show solr boosts results Seeing can definitely help understanding. I was frustrated with not being able to see what was affecting results. I wanted to be able to I also would like to see that in my site, or at least get the query produced by the site printed so i can paste it into the Solr web interface. Too hard to translate from what i’m doing on the site (filtering via facets plus searching via keywords) to what the site is causing Solr to do on the backend.

Cannot declare class error because name already in use when you know for sure it's only defined in one place

If you get an error like this: PHP Fatal error: Cannot declare class Drupal\search_api\Plugin\search_api\processor\ManualBoost, because the name is already in use in /var/www/drupal/web/profiles/contrib/findit/modules/custom/drutopia_findit_search/src/Plugin/search_api/processor/ManualBoost.php on line 20 And you are certain you’ve only declared the class in one place, and you run grep and confirm that the name is only ever used in the one place… Check your namespace declaration at the top of your file. That’s almost certainly what’s incorrect.

Updating documentation to ReadTheDocs version 2 and MyST commonmark with sphinx markdown parser

Finally added a .readthedocs.yml file after being walked through it by the maintainer of MyST Parser And got this build error: ERROR: Directory ‘.’ is not installable. Neither ‘setup.py’ nor ‘pyproject.toml’ found. Here’s my .readthedocs.yml that broke it, because i was following a model that didn’t match my simple setup: version: 2 python: version: 3 install: - method: pip path: . This is what it needed to look like: version: 2 sphinx: configuration: conf.

Transform label followed by count in parenthesis text list into CSV semi-manually in vim

Label (count) convert lines of text to tabular CSV Name of something (123) to comma-separated values Copy paste and do a few transformations to turn it into a spreadsheet-ready file. First, escape the commas (something like :%s/,/\\,/, then: :%s/ (/,/g :%s/)//g Legit, part-of-the-name parenthesis still get replaced like this though. This is actually a terrible way to do it and we could use a regular expression that identifies the number to do it better.

A web API for Git, both reading content and writing simple commits

web api for git simple web api for git commits simple api for git commits drupal git api rest API for writing reading files rest API for writing reading files GoLang rest API for writing reading files Python Really surprised that there aren’t any simple projects to provide a web API to Git. There’s Eclipse’s Orion Server API’s Git API: “The Git API is a web server API for browsing and manipulating Git repositories.

Remove anything already handled by a dependency from project root composer.json

root composer.json remove anything that is required by sub project project composer.json do not include redundant dependencies root composer.json exclude requirements in dependencies remove redundant from top-level composer.json I’d like to clean up my project composer.json so it doesn’t redundantly list anything already brought in by something it requires. That is, if i require Project A, and Project A requires Project B (in its composer.json), then i want the requirement of Project B to be removed from my project root composer.

Check your redirects

check redirects redirect checker http://www.redirect-checker.org/ - nice enough despite not redirecting themselves to https?! - but requires testing each entry point oneself. smallseotools.com/redirect-checker/ - less clear or useful information, still one by one.

Invalid libraries override specification exception in Drupal 8

So i was trying to override all the JavaScript a parent theme was adding by doing this in my subtheme: libraries-override: bulma/global: js: false That gave a big old fatal error when trying to load a page after a cache reload: Drupal\Core\Asset\Exception\Invalid Libraries Override SpecificationException: Library asset bulma/global/js is not correctly specified. It should be in the form “extension/library_name/sub_key/path/to/asset.js”. in Drupal\Core\Asset\LibraryDiscoveryParser->applyLibrariesOverride() (line 407 of /var/www/drupal/web/core/lib/Drupal/Core/Asset/LibraryDiscoveryParser.php).

Filtering by date range with Solr in Drupal 8

Find It Cambridge’s desired functionality: searching for a daterange gives anything that has at least one day of overlap with that date range. Issue #2981151 by mkalkbrenner, omegadela: Index multi-value daterange fields (5e21b07d) · Commits · project / search_api_solr · GitLab Key is to use the specific daterange field in Solr, as opposed to creating a separate date We have everything we want happening in

drupal 8 take action when node deleted

drupal 8 take action when node deleted D8 replacement for hook_node_delete Add comment here with Drupal 8 equivalent: https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/hook_node_delete/7.x It still exists in Drupal 8 and 9, as a specific case of hook_ENTITY_TYPE_delete: https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21entity.api.php/function/hook_ENTITY_TYPE_delete/9.0.x … of course, we’re using a soft-delete (trashbin) workflow, made somewhat elegant by the Workflow Buttons module. So acting on actual delete isn’t going to do what we need. Instead, we need to do stuff when the the workflow state changes.

Avoiding Forced reflow while executing JavaScript

Forced reflow while executing JavaScript took https://barthaweb.com/2020/04/avoid-layout-trashing-using-fastdom/ https://nicepage.com/questions/38746/forced-reflow-while-executing-javascript-took-44ms

Composer scaffolding change in Drupal 8.8 core

composer see what conflict requirement which Finally taking notes on how to deal with it, and related . webflo/drupal-core-require-dev was preventing upgrading 8.6 to 8.7 using composer [#3052057] | Drupal.org Add core scaffold assets to drupal/core’s composer.json extra field [#3067645] | Drupal.org Add composer-ready project templates to Drupal core [#2982680] | Drupal.org Guide to the Drupal 8.8 Update | Palantir.net | Chicago web strategy, design, Drupal development, consulting drupal/core-composer-scaffold: A flexible Composer project scaffold builder.

Zoom alternatives for audio-video chat like Jitsi

https://mayfirst.coop/en/post/2020/content-alternatives-live-meetings/ https://jitsi.org/what-is-jitsi/ Related: Privacy https://nonprofitquarterly.org/protecting-privacy-in-the-age-of-coronavirus-digital-tools-for-nonprofits/

will i lose my bank account if i don't make transactions

massachusetts abandoned bank account If you have an account with a non-evil bank (read: credit union) the fees eating up the account, even if “dormant”, is probably not going to be your problem. But Massachusetts for instance

free software open source development led by marginalized communities

free software open source “marginalized” communities At least some of these fit the bill: https://towardsdatascience.com/make-a-social-impact-by-contributing-to-these-open-source-projects-1d6d34e2b8b1 Digital Democracy’s work, see for instance https://www.digital-democracy.org/blog/localfirst/ Related political concepts From 2003: View of Democratizing software: Open source, the hacker ethic, and beyond | First Monday Always of note: https://www.ashedryden.com/blog/the-ethics-of-unpaid-labor-and-the-oss-community A Call to Our Movement: Let’s Talk Strategy Now! statement from May First Movement Technology Related technical concepts Local-first software: You own your data, in spite of the cloud

vim em dash taking up two spaces in terminal

Same thing happening with en-dashes and ellipses. Turns out there’s a setting in Terminal in Ubuntu, or at least Pop OS, to tell these wide characters to take exactly one space or not.

Providing recommended dependencies locked to ones known to work in a Drupal distribution

what is the purpose of a composer.lock file in a composer project template used with composer create-project composer “create-project” composer.lock Originally posted to: https://gitlab.com/drutopia/drutopia_template/-/issues/14 The lock file in the composer create project situation but is mostly a red herring, as far as how Drupal keeps its dependencies in check. Telling people not to update their composer.lock file themselves but to just get updates to it from the project is far too brittle for Drupal (“don’t add any of your own modules, or your off of our tested update path”); if it works for our own purposes though we can use it ourselves and document that (#12) as the way we do it.

Trying to make Config Overlay work with a complex Drupal distribution

Drupal 8 and Drupal 9 Find It Cambridge, NICHQ, IFSI I mean, it is working somewhat: l sync/* | wc -l 550 versus: l sync/* | wc -l 1062 before adding config overlay, and that’s with config snapshot still hanging around and adding 171 files versus 183 apiece. So config overlay has reduced the config/sync export file path by a bit more than half. But after a fresh install, that number should be about 100%— there should be zero files.

Is Instant Funds by Hyperwallet legit?

Instant Funds* powered by Hyperwallet It’s legitimate, but it costs 3% to deposit with it and that’s a big upcharge on a check, which is free. The e-checks they send are printable and so can be deposited for free without this service.

Print out the full domain name in relative links shown via print stylesheets

css print URL after link a tag but only if href drupal make all URLs full paths CSS get domain CSS print domain with path a tag href link css target href based on url begins with Substring matching attribute selectors wildcard There is no wildcard matching in attribute selectors, so i can’t do a[href^="/*"] to only target links that have a non-root link (the slash and at least one more character).

Libre tools for remote work and communication

Hi Jay! We (especially Micky) are so glad you asked. We can start to do our meetings together in Jitsi in https://meet.mayfirst.org/ or in https://meet.jit.si/ — and you can just make up any room name I think Micky has found the main Jitsi to be slightly more stable than May First’s, but that may change as more people try out Jitsi. Downloading the mobile app or Jitsi desktop app i find gives better quality also: https://jitsi.

Notes on getting landlord data in the Twin Cities

secretary of state Minnesota business filings API API beacon.schneidercorp.com qgis Prior art? https://github.com/openaddresses/machine/issues/580 They seemed to be able to get basic stuff without too much dificulty? And i don’t think we care about the polygons, so maybe this first take is good? https://github.com/openaddresses/pybeacondump Minnesota Secretary Of State - Business Data Available for Purchase Active Business Data The data file includes the business name and the primary address on record for each active business.

E-mails getting sent with unexpected sender- Mass Contact or Sendgrid fault?

why does sendgrid override sender e-mail address They give a reason why they might, but it doesn’t say they do: https://sendgrid.com/blog/dont-send-email-from-domains-you-dont-control/ There is the https://mc.sendgrid.com/senders option which seems like it might enforce who the actual sender is? Or it might be a Mass contact bug.

Using Git as the content backend for Drupal 8

git backend for Drupal content It’s been proposed… to the Drupal for Evil group! Use git as a database backend for Drupal https://groups.drupal.org/node/232048 See also: https://agaric.gitlab.io/raw-notes/notes/2018-07-24-thoughts-on-git-backed-content-management-system/

best local editors for static sites using markdown

best local editors for static site markdown Netlify is a clear leader, with one caveat: Note: No matter where you access Netlify CMS — whether running locally, in a staging environment, or in your published site — it always fetches and commits files in your hosted repository (for example, on GitHub), on the branch you configured in your Netlify CMS config.yml file. This means that content fetched in the admin UI matches the content in the repository, which may be different from your locally running site.

Starting a business so that it ends up owned by the community

Exit to Community: Community Culture | Media Enterprise Design Lab @ CU Boulder Exit to Community: Community Culture March 6, 2020 10-11:00 a.m. Mountain Time Webinar Learn about community culture from two specialists in digital organizing How can startups create truly empowered communities? A growing network of entrepreneurs, organizers, and investors is exploring the idea of “Exit to Community”—enabling startups to transition toward ownership by their core stakeholders. There are many possible pathways towards this goal, as well as many challenges along the way.

draft notes toward election-first politics not enough

It’s 2020, March 2nd, the day before the “Super Tuesday” primary. I’m being pulled into electoral politics again. I’m searching for “does the bernie sanders app help you offer rides to polls to people” on DuckDuckGo, an All i found was a recent Reddit thread about free rides to the polls from Lyft, but you need to go through a handful of nonprofits to get a voucher: Nonprofit organizations League of Women Voters, National Federation of the Blind, Student Veterans of America, National Urban League, The Civic Alliance and Voto Latino Foundation are working with Lyft to distribute rides directly to people in their networks whom they determine are most in need of transportation to the polls.

Force logout all users from a Drupal 8 site

drupal 8 log everyone out drupal 8 log out all users drush sqlc TRUNCATE sessions; Is still the way. After truncating the sessions table, people are logged out. To more thoroughly (Drupal hooks called) log out one user at a time, see https://www.drupal.org/node/3008131 drupal 8 prevent login on one domain, allow on another https://www.drupal.org/project/limit_domain_access_by_role

Restrict Drupal 8 cookies (and so sessions) to a single full domain

drupal 8 cookie domain It’s the nature of cookies to not work across domains, but you can make a cookie work for all subdomains of a given domain (subsite.example.com, www.example.com, and example.com). By default, Drupal doesn’t promote that: Someone logging into www.example.com will not be logged into example.com. Per an unedited sevices.yml: # Drupal automatically generates a unique session cookie name based on the # full domain name used to access the site.

Switch between open application windows by filtering with text search

ubuntu activities search only open applications gnome switch application windows type ubuntu open activities list only ubuntu text search window titles Switch between application windows in Ubuntu (well, Gnome) by typing a couple letters of their title, rather than alt tabbing indefinitely! https://extensions.gnome.org/extension/973/switcher/ https://github.com/daniellandau/switcher The first time i suspended after setting this up, Super + W started closing windows instead of bringing up the windows switcher. I changed the Window action key from Super to disabled in Ubuntu Tweaks, Windows options, but that had no effect.

Getting Resource URL not set correctly error when it is correct

Setting up CiviCRM and getting this warning in the dashboard even though clearly all assets are loading correctly, as you can see the dashboard with CSS and JavaScript working? “The Resource URL is not set correctly.” CiviCRM Resource URL Getting this message when you are sure it’s not right? Is there any chance your development or test site has simple http authentication or some other protection preventing visitors from happening upon it?

Override CiviCRM settings for test and local environments

drupal 7 override civicrm settings Unlike in Drupal itself, where the settings.php file is meant to be extended by local.settings.php etc., CiviCRM’s civicrm.settings.php does not encourage such behavior— it even has define statements, which do not react well to being duplicated. The use case of https://docs.civicrm.org/sysadmin/en/latest/customize/settings/

drupal 8 how do i find out what's producing pager_default_initialize

drupal 8 how do i find out what’s producing pager_default_initialize EarlyRenderingControllerWrapperSubscriber.php Pager missing on pages greater than 1, but returns on a refresh https://www.drupal.org/project/search_api/issues/3000344 https://drupal.stackexchange.com/questions/173391/how-to-use-pager-default-initialize-with-entity-field-query/173509 We’re working around this somehow in Find It (code base is public) but i know the main search pager is still adding a number when i think i should be able to show no number, even after partially fixing this (patch/fix in Search API Solr if i recall) so that it doesn’t have to start at 6 or something.

Collective living for coders

Starting a place to collect links about groups sort of doing what Dan Hakimzadeh wrote about: https://ratpark.org

notes on democracy for instances of the fediverse

Jan 11 post by anomaly 🌹 @anomaly@radical.town So, there’s this concept of “implicit feudalism” in online communities. Essentially, the vast majority of online communities - from old-school forums, to facebook groups, to large platforms like Twitter and Facebook themselves, even to fediverse instances - they’re all run as dictatorships by default. It’s built into the software - you’ll have a top admin who has full, unconstrained power, they might delegate mods who have some limited powers, and anyone else has to listen to what these dictators and lords tell them.

drupal 8 use node_view_multiple as list in twig template

Searched for: drupal 8 use node_view_multiple as list in twig template remove items in array key starts with # drupal 8 php filter array remove items matching key pattern drupal 8 #prerender a trick to remove a set of known keys: https://www.php.net/manual/en/function.array-filter.php#87912 But actually, better, array filter itself has a flag to use keys for the filtering now, https://www.php.net/manual/en/function.array-filter.php Anyway, after the truly awful forced rendering stuff, which has got to be undone sometime, comes the nifty filtering bit:

Find It youth opportunity locator for program, services, and events introduction to people interested

For Cambridge, Massachusetts, we built Find It Cambridge: https://finditcambridge.org and we are in the process of updating it, https://new.finditcambridge.org We think it’s very useful and want to help more cities start using it. For people working to increase opportunities accessible to residents, Find It reduces the time spent doing data entry or answering the same questions, and increases the time available for forging relationships with service providers and connecting people to the best resources for them.

Why i will never use Mailchimp again

A project of surpassing importance to me, but that i have not put enough time into, did have a mailing list signup that has apparently been broken for years. It used to work, and Mailchimp changed something on their side without warning. Unacceptable and unforgivable; Mailchimp had one job. Here’s their code, which they broke. Goes to a goddamn 404 page when people submit. I had set it up, tested it, and at some point, again, fairly certain it was years ago, it broke.

Define template suggestions available for templates defined by your own module

define template template suggestions module drupal 8 drupal 9 drupal 8 formatter view mode Documentation to update after we figure this out: https://www.drupal.org/docs/8/theming/twig/create-custom-twig-templates-for-custom-module Drupal 8 and 9 core’s Block module uses hook_theme_suggestions_HOOK, where the second “HOOK” is also ‘block’. The documentation says: HOOK is the least-specific version of the hook being called. For example, if ‘#theme’ => ’node__article’ is called, then hook_theme_suggestions_node() will be invoked, not hook_theme_suggestions_node__article(). … which means i don’t need any of this, i can stick my suggestion right in the invocation.

Detect a hash change no backspace with JavaScript

jquery detect hash change on backspace $details ​ 0: details#edit-group-findit-about.required-fields.field-group-tab.vertical-tabs__item.js-form-wrapper.form-wrapper.claro-details.claro-details–vertical-tabs-item​​ 1: details#edit-group-findit-contact.required-fields.field-group-tab.vertical-tabs__item.js-form-wrapper.form-wrapper.claro-details.claro-details–vertical-tabs-item​​ 2: details#edit-group-findit-who.required-fields.field-group-tab.vertical-tabs__item.js-form-wrapper.form-wrapper.claro-details.claro-details–vertical-tabs-item​​ 3: details#edit-group-findit-when.required-fields.field-group-tab.vertical-tabs__item.js-form-wrapper.form-wrapper.claro-details.claro-details–vertical-tabs-item​​ 4: details#edit-group-findit-where.required-fields.field-group-tab.vertical-tabs__item.js-form-wrapper.form-wrapper.claro-details.claro-details–vertical-tabs-item​​ 5: details#edit-group-findit-how.required-fields.field-group-tab.vertical-tabs__item.js-form-wrapper.form-wrapper.claro-details.claro-details–vertical-tabs-item​​ 6: details#edit-group-signup.required-fields.field-group-tab.vertical-tabs__item.js-form-wrapper.form-wrapper.claro-details.claro-details–vertical-tabs-item​​ 7: details#edit-group-findit-meta.required-fields.field-group-tab.vertical-tabs__item.vertical-tabs__item–last.js-form-wrapper.form-wrapper.claro-details.claro-details–vertical-tabs-item ​​ length: 8 the key: if (!tabFocus) { var $locationHash = $this.find(window.location.hash); if (window.location.hash && $locationHash.length) { tabFocus = $locationHash.is('.js-vertical-tabs-pane') ? $locationHash : $locationHash.closest('.js-vertical-tabs-pane'); } else { tabFocus = $this.find('> .js-vertical-tabs-pane').eq(0); } } if (tabFocus.length) { tabFocus.data('verticalTab').focus(false); } problem is i think that this only lives inside $(context).

Show only one empty form element for a multivalue field; after it is filled show just the add another item button

drupal 8 multivalue form field default to showing one Sometimes you want to allow multiple items but really only encourage the adding of just one, especially to keep the form clean. Or, in certain cases, this is necessary to prevent the ‘blank’ dates from getting saved or causing validation errors. In a .module file like this one, put: <?php use Drupal\Core\Form\FormStateInterface; /** * Implements hook_form_BASE_FORM_ID_alter() for node_form. * * - Remove open blank daterange form fields after one date is already saved.

Add programmatic field to Search API

drupal 8 search api add programmatic field https://www.drupal.org/docs/8/modules/search-api/developer-documentation/create-custom-fields-using-a-custom-processor

Banning toxic people creates spaces for other people to participate

MalwareTech @MalwareTechBlog 6h A while back I made a Discord server, but got tied up with real life stuff and couldn’t put in the time to moderate it. When I came back it had gotten super toxic, but the toxic members were also smart and extremely active. 1/? 11:06 PM · Jan 5, 2020 9 153 614 Image MalwareTech @MalwareTechBlog 6h I felt I was choosing between having an active server and having a welcoming server.

Block attempts to probe nonexistent files to keep them out of application logs and processing time

block annoying bot probes on my server ignore 404 probe attempts to keep out of application logs (The one i happened to notice, autodiscover.xml, seems to have gone from novelty to a constant.) The only place i know for certain i can just add a line to block an annoying meaningless bot probe from reaching my application logs is .htaccess Maybe we can at least have a line in our .

Getting Selectize to honor a weight field in sort with Drupal or maybe at all

Here’s the “beautified” version :-/ { “path”: { “baseUrl”: “/”, “scriptPath”: null, “pathPrefix”: “”, “currentPath”: “search”, “currentPathIsAdmin”: false, “isFront”: false, “currentLanguage”: “en”, “currentQuery”: { “types”: [ “findit_program”, “findit_organization” ] } }, “pluralDelimiter”: “\u0003”, “ajaxPageState”: { “libraries”: “admin_toolbar/toolbar.tree,admin_toolbar_tools/toolbar.icon,coffee/drupal.coffee,contacts/contacts.toolbar,contextual/drupal.contextual-links,contextual/drupal.contextual-toolbar,core/drupal.active-link,core/html5shiv,encontrarlo_toolbar/admin,microformats/microformats,newtowne/global,quickedit/quickedit,selectize/core,selectize/drupal,shortcut/drupal.shortcut,svg_select/base,system/base,toolbar/toolbar,toolbar/toolbar.escapeAdmin,tour/tour,user/drupal.user.icons”, “theme”: “newtowne”, “theme_token”: null }, “ajaxTrustedUrl”: { “form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM”: true, “/search”: true }, “ckeditorheight”: { “offset”: 1, “line_height”: 1.5, “unit”: “em”, “disable_autogrow”: false }, “coffee”: { “maxResults”: 7 }, “selectize”: { “edit-services”: “{"create":false,"createOnBlur":false,"hideTermId":false,"createFilter":null,"delimiter":",","delimiter_warning":false,"sortField":[{"field":false,"direction":"asc"}],"sortDirection":"asc","allowEmptyOption":false,"plugins":["remove_button"],"highlight":true,"maxItems":10,"persist":false,"diacritics":false,"closeAfterSelect":false,"placeholder":"Select one or more services"}”, “edit-activities”: “{"create":false,"createOnBlur":false,"hideTermId":false,"createFilter":null,"delimiter":",","delimiter_warning":false,"sortField":[{"field":false,"direction":"asc"}],"sortDirection":"asc","allowEmptyOption":false,"plugins":["remove_button"],"highlight":true,"maxItems":10,"persist":false,"diacritics":false,"closeAfterSelect":false,"placeholder":"Select one or more activities"}”, “edit-cost-subsidies”: “{"create":false,"createOnBlur":false,"hideTermId":false,"createFilter":null,"delimiter":",","delimiter_warning":false,"sortField":[{"field":false,"direction":"asc"}],"sortDirection":"asc","allowEmptyOption":false,"plugins":["remove_button"],"highlight":true,"maxItems":10,"persist":false,"diacritics":false,"closeAfterSelect":false,"placeholder":"Choose a cost subsidy option"}”, “edit-ages”: “{"create":false,"createOnBlur":false,"hideTermId":false,"createFilter":null,"delimiter":",","delimiter_warning":false,"sortField":[{"field":[{"field":"weight","direction":"asc"}],"direction":"asc"}],"sortDirection":"asc","allowEmptyOption":false,"plugins":["remove_button"],"highlight":true,"maxItems":10,"persist":false,"diacritics":false,"closeAfterSelect":true,"placeholder":"Select one or more ages","options":[{"text":"Pre-natal","value":"Pre-natal","weight":"-1","synonyms":null},{"text":"Infant","value":"Infant","weight":"0","synonyms":null},{"text":"1","value":"1","weight":"1","synonyms":null},{"text":"2","value":"2","weight":"2","synonyms":null},{"text":"3","value":"3","weight":"3","synonyms":null},{"text":"4","value":"4","weight":"4","synonyms":null},{"text":"5","value":"5","weight":"5","synonyms":null},{"text":"6","value":"6","weight":"6","synonyms":null},{"text":"7","value":"7","weight":"7","synonyms":null},{"text":"8","value":"8","weight":"8","synonyms":null},{"text":"9","value":"9","weight":"9","synonyms":null},{"text":"10","value":"10","weight":"10","synonyms":null},{"text":"11","value":"11","weight":"11","synonyms":null},{"text":"12","value":"12","weight":"12","synonyms":null},{"text":"13","value":"13","weight":"13","synonyms":null},{"text":"14","value":"14","weight":"14","synonyms":null},{"text":"15","value":"15","weight":"15","synonyms":null},{"text":"16","value":"16","weight":"16","synonyms":null},{"text":"17","value":"17","weight":"17","synonyms":null},{"text":"18","value":"18","weight":"18","synonyms":null},{"text":"19","value":"19","weight":"19","synonyms":null},{"text":"20s","value":"20s","weight":"20","synonyms":null}],"searchField":["text","synonym"]}” }, “toolbar”: { “breakpoints”: { “toolbar.

Affordable housing resources and strategies

Most of these will be far below the necessary mix of public housing and economic justice (equality) needed to truly ensure affordable housing, but as policy levers to fight for they may be of interest. Will also try to add right to the city approaches, which are usually more radical and effective. Here’s a list of policies to limit gentrification along a new commuter rail line to Baltimore, Maryland by the Purple Line Corridor Coalition:

Breaking things in popos packages

systemctl stop packagekit mlncn@oryx:books [master]$ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following package was automatically installed and is no longer required: pop-upgrade Use 'sudo apt autoremove' to remove it. The following packages have been kept back: gnome-control-center libnvidia-cfg1-435 libnvidia-common-435 libnvidia-compute-435 libnvidia-compute-435:i386 libnvidia-decode-435 libnvidia-decode-435:i386 libnvidia-encode-435 libnvidia-encode-435:i386 libnvidia-fbc1-435 libnvidia-fbc1-435:i386 libnvidia-gl-435 libnvidia-gl-435:i386 libnvidia-ifr1-435 libnvidia-ifr1-435:i386 libomp-dev linux-generic linux-headers-generic linux-image-generic linux-system76 nvidia-compute-utils-435 nvidia-dkms-435 nvidia-driver-418 nvidia-driver-435 nvidia-kernel-common-435 nvidia-kernel-source-435 nvidia-utils-435 pop-desktop xserver-xorg-video-nvidia-435 The following packages will be upgraded: alacritty amd64-microcode apport appstream-data-pop appstream-data-pop-icons base-files bind9-host binutils binutils-common binutils-x86-64-linux-gnu bsdutils chromium chromium-browser chromium-common chromium-sandbox cpio cpp-7 cpp-8 dkms dnsutils docker-ce docker-ce-cli fdisk ffmpeg firefox firefox-locale-ar firefox-locale-de firefox-locale-en firefox-locale-es firefox-locale-fr firefox-locale-it firefox-locale-ja firefox-locale-pt firefox-locale-ru firefox-locale-zh-hans firefox-locale-zh-hant firmware-manager-notify firmware-manager-shared fonts-opensymbol fwupd gcc-7 gcc-7-base gcc-8 gcc-8-base ghostscript ghostscript-x gir1.

How to prepare for a website relaunch

First thing in a relaunch is not making anything worse. That means, first, not losing search rank. Is the existing site registered with Google Search Console? It’s not connected to Google Analytics, so i’m guessing probably not. I would recommend you hook it up. If you haven’t already been sucked into Google’s web (Google account etc) don’t get pulled in now; there’s other tools to do this. But if like most of us you have a google account lying around, this is how to get the most direct feedback of how Google search is interpreting your site:

Free public transit

https://frepubtra.blogspot.com/ An excellent half-measure: Just stop enforcement. https://www.wired.com/2016/12/ignoring-fare-evaders-can-make-mass-transit-faster-richer/ Dunkirk, France: https://www.theguardian.com/cities/2018/oct/15/i-leave-the-car-at-home-how-free-buses-are-revolutionising-one-french-city https://frepubtra.blogspot.com/2019/06/freetransit-success-in-dunkirk-france.html (video) Estonia: https://www.citylab.com/transportation/2018/05/estonia-will-roll-out-free-public-transit-nationwide/560648/ https://popupcity.net/estonia-to-become-the-worlds-first-free-public-transport-nation/ An Atlantic article highlighting the negatives mentioned 1970s “failures” (walkers and bikers, so presumably poor people, rode more, people with cars, so presumably wealthier people, did not drive less).

Mark up TTY (teletypewriter) TDD (telecommunications device for deaf) telephone numbers with semantic HTML microformats

TTY microformat tty schema.org A 2014 SearchEngineWatch.com confidently declared that Google launched support for new schema.org markup that helps your organization define specific preferred phone numbers when listed on your website Itemprop parameters also allow you to indicate: if a number is toll-free if TTY/TDD service is available for deaf or hard-of-hearing if the number is specific to a country, certain countries, or is global … but it didn’t link to a shred of documentation for that, so i’m not linking to it.

Cannot change nickname while quieted on channel and cannot register to be un-quieted because not using a registered nickname Catch 22

IRC unable to change nickname in order to register because am not registered Cannot change nickname while banned/quieted on channel is not a registered nickname /nick mlncn mlncn #snowdrift Cannot change nickname while banned/quieted on channel /msg NickServ IDENTIFY MySecretPassword mlncn80 is not a registered nickname. Couldn’t find it documented anywhere, least of all Freenode’s registration documentation, but the workaround is very simple: Supply your username to the nickserv identify command (it goes before the password).

Get values of a specific property for everything in an array of objects

Don’t use below PHP 7 and you can just use array_column()! $TermStorage = \Drupal::entityTypeManager()->getStorage('taxonomy_term'); $neighborhood_terms = $TermStorage->loadTree('findit_neighborhoods'); // $neighborhood_terms are objects, but this works in PHP 7. $neighborhoods = ‌‌array_column($neighborhood_terms, 'name'); To set the PHP minimum for a Drupal module, add this to your .info.yml file: php: 7.0 Should only do this if you’re using more important features of PHP 7, though all of Drupal is upping the minimum.

Help gnucash recognize recurring transactions: Is it possible?

Looked further into how GnuCash might be trained to recognize and correctly categorize recurring transactions imported from OFX bank account files, and found no documentation, although it does have some sort of Bayes scoring capability to do this. Not looking good. All documentation and discussion points to directly editing the huge .gnucash XML file that holds all the transactions and everything: https://money.stackexchange.com/questions/55927/gnucash-creating-transactions-for-wrong-account-in-import?rq=1

Plans of the Contacts team

(uncertain of the date, these notes are being put in, but late 2019 is a decent guess) Freelygive: Emma Broome Jamie Abrahams Andrew Belcher services unite testing configuration management very important to larger scale sites, so moving to D8 very important we began to offer Promised we’d move main client to this in May 2018, still working on it. All Contacts clients moving to Drupal 8 now. Documentation lagging.

Custom relative date range formatter in Drupal 8

drupal 8 custom relative date range formatter Although we ended up adding our own to InOtherWords, there’s some good stuff out there, currently better than our pretty specialized use case. But if we steal from the others enough, we’ll do it all… See: https://www.drupal.org/project/daterange_compact php datetime get year There are like zero useful functions for actual date value getting, it’s really just string manipulation, what? https://www.php.net/manual/en/class.datetime.php

The most power possible to all people over our own lives

i like to say justice and liberty, it’s prettier, but harder to make sure you’re talking about the same thing. Famous douchebags like Friedrich Hayek made a whole career of defining liberty as the right of rich people to do whatever they want with their property. As much fun as it is to destroy an argument that hinges on claiming a person in a pit is as free as a person not in a pit, it’s better to avoid any confusion at the start.

Variable fonts

A variable font is a single font file that behaves like multiple fonts —John Hudson a good magazine layout might have ten or even thirty font varients. we are browbeaten into not doing that, axis of variations - coming from the font designer, not the browser. optical size, thicker stroke at smaller size font optical sizing defaults to auto. evolution of the open type specification by and large this is supported on the OS level, Windows and Mac, for two years

Boston Django meetup

James: long checks, validation that takes 15 seconds. Where’s the object stored in memory? Stored in a database, the Django Postgres database. C: A main participant has been reading Surveillance Capitalism, and advocates. His shirt has a Citgo sign, the Zakim bridge, and DevOpsDays Boston i think? Toby Patterson nasuni Showed https://www.fabfile.org/ as alternative to spendig months on Puppet or whatnot if your needs aren’t that complex.

Getting the path to theme assets in a twig template in Drupal 8

Twig\Error\SyntaxError: Unknown “asset” function. That’s an error because asset is a Symfony function which Drupal does not inherit. Instead: Thanks to https://drupal.stackexchange.com/questions/184148/get-path-to-theme-assets-in-twig-template

i tried to connect to some sketchy wifi and now i cannot connect to good wifi

One, i’m not finding anyone saying that connecting to bus or airport wifi broke wifi on their computer, like seems to have definitely happened to me. From a forum on an iPhone, which apparently has a habit of claiming passwords don’t work when they are correct, i saw the instruction thanks Jamie! to reset network settings. So: ubuntu reset network settnigs nmcli device This is out of date - https://askubuntu.com/questions/835195/how-do-i-reset-my-network-settings-to-default#835198 - because Ubuntu uses netplan now.

Prediction on the future of money

My mother and i have concluded that in about five years, after Harriet Tubman is finally on the $20 bill, there will be a high profile lawsuit and the stacked reactionary Supreme Court will rule that people have a religious, personal freedom to not accept $20 Tubman bills but instead be paid in old racist Jackson twenties or Hamilton fifties. Oh, and if we don’t liberate our money from the system that can create trillions, so long as it’s given to the rich, our planet and civilization will die.

uncaught PHP exception BadMethodCallException

Getting this error in the Find It logs: [proxy_fcgi:error] AH01071: Got error ‘PHP message: Uncaught PHP Exception BadMethodCallException: “The “\Drupal\menu_admin_per_menu\Access\MenuAdminPerMenuAccess::menusOverviewAccess” method is not callable as a _custom_access callback in route “/admin/structure/menu”” at /data/www/fic_test/web/core/lib/Drupal/Core/Access/CustomAccessCheck.php line 69\n’, Reference: https://drupal.stackexchange.com/questions/201328/what-arguments-does-a-custom-access-callback-exactly-receive Oh, so this is already the helpful error message… committed in June 2018 to Drupal 8.6: https://www.drupal.org/project/drupal/issues/2405241 Possibly related: Simplified custom access checker does not have access to Request Searched words Uncaught PHP Exception BadMethodCallException: \Drupal\menu_admin_per_menu\Access\MenuAdminPerMenuAccess::menusOverviewAccess method is not callable as a _custom_access callback

Messing with form submit processes and submit buttons

drupal 8 alter form form_state before save drupal 8 set order of submit functions on form Ultimately i found a way to do everything i was trying to do for https://gitlab.com/agaric/drupal/workflow_buttons

Platform coop 2019 close

Read Ursala K. LeGuin, Day before the revolution, and the book that it’s a prequal to. Antitrust has become a deeply neoliberal field. In the name of promoting cooperation, anti-trust laws have allowed At the same time, it has been used against the activity of individuals and small businesses working together, including Need to return to the anti-monopoly that gained traction in end of Sherman Act: to break up union of capital, and raise up union of farmers and of labor

Researchers on platform cooperatives short reports

Social franchising: can use trademarks, tech, on condition used for social purpose (ex Eva Coop) A federation can be created by coops that want to pool resources. (ex Mobility Factory SCE) Network governance. Baig’s theories of networks, shared governance architecture any network must have. Key takeaways develop social franchise agreements -use ‘freedom of establishment’ balance between open membership and vetting Protocol cooperatives, as federated entities, Mwongela Mikwa: The potential of platform cooperativism in Kenya.

Showing up for each other as cooperatives

“Stacco” - part of peer 2 peer foundation for many years exploring technology, careworker, and distributed cooperative organizations DAO - Decentralized Autonomous Organizations we need cooperative feminist commons-oriented alternatives to DAOs. Encrypted hyperledger. An Excel spreadsheet that’s everywhere. But people can’t just steal information Ledger is important. Transition from feudalism to capitalism facilitated by double-entry accounting. Trifecta of hierarchy: Patriarchy, certain benefits but also drawbacks Technology Goldman Socks, HBSC DisCO

Pair machine translation with human, vetted translation in a way that's transparent to the viewer

[somewhere i wrote about this, can’t find it right now, this will just be building a first take at a solution] drupal google translate with interface translation drupal 8 add hash to link in links alter trigger google translate from custom dropdown $link['fragment'] = "googtrans(en|$lang)"; https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Menu!menu.api.php/function/hook_link_alter/8.9.x drupal 8 inline javascript in footer For our current approach, see https://www.drupal.org/project/cyborgtranslate By making this simple module we successfully adopted a hybrid approach, whereby if Cambridge commits to translating elements of the site via Drupal’s built-in language interface, we can exempt those sections from Google translation.

Drutopia interview guide user research questions

[These have been on a pad for a year; did a couple interviews based on them, would love to do more] Acknowledging that no one knows better what they need to solve a problem, than the user experiencing the problem, is what human-centered design stands for. —Majo Juárez‏ @Majojuarez https://twitter.com/Majojuarez/status/1063136377464897536 How to conduct interviews - https://www.slideshare.net/johannakollmann/how-to-get-more-than-opinions-interview-techniques-and-advice Overall design research goals: * Describe the goals of potential Drutopia members * Describe the approaches and tools used by potential Drutopia members to meet their goals * Evaluate how Drutopia fits with the goals and needs of potential Drutopia members

How to deny access to a node/add/contenttype page but allow creating of that content type

drupal 8 block access to node/add/ content type for only created inline how to deny access to node/add page for someone who otherwise has access to create content type drupal 8 deny access to route custom access check on node/add/ routes drupal 8 drupal 8 alterRoutes with argument NodeAddAccessCheck Filed this issue: Include option to include content type create page in the rabbit hole? [#3092259] | Drupal.org A common pairing with never viewing a content type on its own is always creating that content type in-line.

replace drupal 8 logo in admin navbar

replace drupal 8 logo in admin navbar drupal 8 swap toolbar icon drupal 8 admin menu extra space drupal 8 gap in toolbar OK that was this: https://www.drupal.org/project/bulma/issues/3092395 drupal 8 remove manage link from admin toolbar remove Manage from toolbar drupal 8 hook_toolbar_alter not being triggered drupal 8 route to view for menu link Excellent blog post answering this: https://www.computerminds.co.uk/drupal-code/drupal-8-views-how-formulate-route-name Was also useful: https://drupal.stackexchange.com/questions/215394/how-can-i-add-items-to-the-admin-toolbar

Allow people to publish while viewing a draft piece of content (or do other workflow state transitions such as made possible by content moderation, from a view mode not having to go into the edit page)

First step is seeing the form. node template moderation controls content moderation controls twig Drupal 8 Solution: Add this to your custom node template: {{ content.content_moderation_control }} (If you’re already printing {{ content }} you don’t need to do this, it’ll just work.) Solution from https://www.drupal.org/project/drupal/issues/3066142 Also needs the answer: https://www.drupal.org/forum/support/post-installation/2018-08-09/drupal-8-content-moderation-missing-options-to-publish But it turns out we can’t use it for Find It because moderation controls bypass form validation moderation control pseudofield bypass moderation controls valiadate moderation controles don’t validate for form and entity constraints Result: Content is published without required fields.

What button types are available in Drupal 8?

drupal 8 button_type danger primary how to set button classes the way drupal 8 core does According to this issue the only button types are ‘primary’ and ‘danger’ (plus the standard default, which doesn’t need nor get any extra class). It references the proposed Seven admin theme style guide but that’s hard to count as real documentation. It’s not documented anywhere here - https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Render!Element!Button.php/class/Button/8.9.x - except in the source, which reveals that it will add a button--whatever class to the button if you were to put in ‘whatever’ as the button type— that is, there aren’t any button types in core, except for the conventions that themes adopt.

Show if there is a published revision when looking at the latest draft

twig unpublished revision drupal 8 see if there is a published revision when looking at latest draft drupal 8 So technically this is already done, albeit very, very subtly, with the tabs: View will be unselected at the left, and Latest version will be shown highlighted, when you are looking at the latest revision. But that’s really subtle. So just as i add a “This (content type) is not yet viewable by the public.

Meeting with Minneapolis Youth Coordinating Board

Questions i want to be sure to get to: How will you be using Smartsheet? Main thing comes down choice between: Service providers enter information into website, exported to Smartsheet, or Service providers enter information into Smartsheet forms, imported into to website Part of the answer to this Pardon my ignorance, but neighborhoods don’t fit neatly into wards, do they? This has to be two different measures? Not wanting to overlap with Parent Aware

Change Drupal's submit action buttons to simple workflow state based buttons, including replacing Delete link with delete to Trash state button

workflow buttons button for each workflow transition action drupal 8 workflow buttons Making our Delete button look like Drupal’s Delete button (with the cool trash icon that Claro provides) is complicated by the fact that in Drupal core the delete button is actually a link, and input buttons don’t allow the :before or :after pseudoclasses, which are used to add the trashcan icon. Another related issue, this one, to actually stop supporting Internet Explorer 6 in the very heart of our Form API, by using (themable) button elements instead of (nearly unstylable) submit, is merely seven and a half years old: https://www.

How to provide select options rendered with HTML emphasis or spans or even hidden but still searchable with Selectize in Drupal 8

The first step, the key, is that Selectize and the Drupal module do something pretty cool. If you define options in the usual #options value, same for '#type' => 'selectize' as for #type => 'select' form elements, and also in the Selectize settings options (where options provided as a PHP array will be converted to a JavaScript object, so don’t worry about matching Selectize documentation exactly)— if you define both, any that is in Selectize options will override items with the same value in the form element’s #options.

Local food in Minneapolis - how to make it happen

RED Market is where the action is. My advice to help it along: Channeling my friend Peter Woo: Technology upkeep will be more than you expect In part therefore: You need a plan to grow to be sustainable He and i argue about the need to grow to be sustainable, but ability to pay oneself properly and hire and train one’s replacement are the bare minimum, and that requires a certain scale, and scale brings costs of its own.

Filtering on a multivalue daterange field in Drupal 8

What the heck happens? drupal 8 views filter criteria multivalue field drupal 8 views filter criteria multiple values daterange field This discussion of filtering by date doesn’t mention multivalue daterange fields, unfortunately: https://drupal.stackexchange.com/questions/226884/how-to-filter-a-view-by-date-range-start-end Although in particular this answer on that thread, while handling a different complex case, suggests most anything is possible… https://drupal.stackexchange.com/a/235412/4195 Not-quite-useful references: https://stackoverflow.com/questions/29648428/drupal-8-using-custom-date-field-in-view-filter-criteria https://www.webomelette.com/creating-custom-views-filter-drupal-8 https://www.drupal.org/docs/8/core/modules/views/add-a-filter-to-a-view (no mention of multiple value field) Views filter on multi value field (unanswered support request, but suggests that ‘include’ works) https://www.

Solidarity or multistakeholder cooperatives in the farm and food space

Our Table, in Oregon https://www.ourtable.us/ https://www.ourtable.us/our-co-op.html#/ https://www.ourtable.us/membership.html https://www.ourtable.us/member-faq.html As far as i can tell from reading their bylaws, their bylaws (as of 2014, anyhow), a quorum of each class is required but each person has an equal vote. That i very much approve. (And member non-people entities needs to be represented by people, i didn’t see/read if larger or different entities had more than one human proxy or what the deal was with that challenge to proportional representation.

Change what DNS server is used for nameserver lookups in Ubuntu 18

I think my main problem is CenturyLink is terrible, and i don’t want to use its DNS. But i also don’t want to use DNS from whichever network i happen to be connected to, so i want an on-my-laptop setting (not my router) that is used regardless of whether i’m plugged in to ethernet or connected to absolutely any wireless network. how to see what is handling dns on my computer good goddamn holy hell why is it impossible to set alternate nameservers like opendns for Ubuntu, regardless of which wifi connection is used, these days?

Retroshare secure communications for everyone

https://retroshare.cc/ Connect with Friends and Family Retroshare establish encrypted connections between you and your friends to create a network of computers, and provides various distributed services on top of it: forums, channels, chat, mail… Retroshare is fully decentralized, and designed to provide maximum security and anonymity to its users beyond direct friends. Retroshare is entirely free and open-source software. It is available on Android, Linux, MacOS and Windows. There are no hidden costs, no ads and no terms of service.

File field titles look different from URL fields with which they are often paired with because they are collapsible; they shouldn't be collapsible

drupal 8 make file fields not collapsible drupal 8 suggest container file template drupal 8 do not use details for file upload field OK so i just switched to Bulma as the admin theme, and it uses form-element.html.twig without a mention of the details.html.twig that Claro is using. So this is theme dependent. Same with the Seven theme. So it’s just Claro adding this. Now in Drupal 8 all collapsible fieldsets have been replaced with HTML5 details elements, but that’s not my problem; my problem is that Claro is insisting on putting file fields in a collapsible fieldset—sorry, an HTML5 details element, that is also collapsible—in the first place.

Wifi regularly stops working until restart on System76 Oryx Pro Pop OS/Ubuntu

If you open up settings it will say, subtly in the window’s top bar: Wi-Fi Unavailable With recent regressions in the icons in the main top bar, no longer accurately showing the status of wifi, i don’t know if there’d be a clearer indication up there that something is broken. There’s suggestive errors in /var/log/syslog though, like: iwlwifi 0000:03:00.0: Error, can not clear persistence bit In the long sequence reproduced below i noted the Bluetooth-related errors, which was of concern because i am forcing Bluetooth to stay disabled, because all it does is cause trouble.

Force value of field based on values of other fields on an entity

drupal 8 validate multiple fields on an entity Back in Drupal 7, whether this was a good idea or not even then, it seems we always did munging of values before saving in the validation step. In Drupal 8 the Symfony constraint and constraint validator approach and i think it’s designed to not change values on an entity, but only enforce constraints when validating. The right way to manipulate values on save in Drupal 8 is with hook_entity_presave or it’s slightly more specific colleague, hook_ENTITY_TYPE_presave.

Embed a view in a node that displays things contextually relevant to that node

drupal 8 include view based on node Entity Views Attachment vs drupal 8 eva i could do it only with code but seems more consistent to make it a field like EVA does https://drupal.stackexchange.com/questions/198868/how-can-i-embed-a-view-inside-a-content-of-a-node https://api.drupal.org/api/drupal/core!modules!views!views.module/function/views_embed_view/8.8.x The missing documentation is in this issue (key piece of info: start with creating the view as an Entity View Attachment) Oh i’ll want this patch too: Hide output if empty option. https://www.zivtech.com/blog/empowering-drupal-8-content-editors-eva-attach-all-displays https://drupal.stackexchange.com/questions/261509/display-suite-vs-eva-for-displaying-a-view-as-field

Sources of information for how to be a good movement technologist

Tech for good movement technology blogs not-for-profit organizations applying technology case studies and news feed movement technologists Clayton brought up the subject. Drupal Nonprofit Page/Blog? What do we do with our page? https://www.drupal.org/community/nonprofit-drupal Might be good to have a gallery of session recordings from various cons and camps that are relevant and useful. Movement/Nonprofit Tech blogs, news, etc. (audience are np/activist technologists) Tactical Tech https://tacticaltech.org/ (and on Twitter as Info_Activism) Ragtag: https://ragtag.

Stop selected text outside Vim from being added to Vim paste queue

stop bash from copying select into vim paste cliboard unnamed This answer gave me enough information to find this answer, which came with the delightful news that on GNU/Linux you can choose whether or not the vim copy queue collides with the select copy queue (“middle click paste”). In my case all i had to do was change, in my .vimrc (actually ) untitled to untitledplus

Is there any way to stop third-party settings pollution in Drupal 8?

drupal 8 third party settings pollution fields This is purely a site builder / developer experience issue. The problem is that once a module that provides third-party settings to fields, like Display Suite or Custom Add Another, it adds an empty array to everywhere it could apply, before anything is configured there. It means these updates to the configuration add themselves whenever the configuration is touched for other reasons, so your diffs for configuration become very messy.

What's the difference between local actions and local tasks in Drupal 8?

drupal 8 local actions vs local tasks Actions “define local operations such as adding new items to an administrative list”, and are shown . Tasks generate the tabs on top of pages (up to two levels). These are mostly used on administrative pages but frontend pages like user pages or the registration/login/new password pages https://www.drupal.org/docs/8/api/menu-api/providing-module-defined-local-actions https://www.drupal.org/docs/8/api/menu-api/providing-module-defined-local-tasks Here’s a module to allow people to configure local actions (in Drupal 7):

White screen of death with undefined function _system_theme_data() in drupal 6 after update

undefined function _system_theme_data() drupal 6 drush returning HTML This similar-but-different issue - https://www.drupal.org/project/drupal/issues/766100 - made me think it was an incompatibility with Drupal 7. But this exact same error: update.php WSOD when settings.php’s $db_url or $db_prefix are wrong https://www.drupal.org/project/drupal/issues/281997 https://stackoverflow.com/questions/39469264/fatal-error-uncaught-error-call-to-undefined-function-ereg-replace-php-7 And this general information - https://stackoverflow.com/questions/44403451/is-drupal-6-is-compatible-with-php-7 - and all recent LTS releases of Drupal 6, which is what i upgraded to, are compatible with PHP 7 - makes me think the problem was somehow with the database credentials?

Accessibility user stories

We try to make everything we do accessible and for the most part i don’t think “accessibility user stories” make sense. We need to make sure each user story works for all users. So it’s more looking at accessibility guidelines like these and seeing how each of an application’s user stories can meet them. A keyboard user can skip the navigation and reach the main content. A colorblind user can read all text.

Git commit deleted files that match a given pattern

git commit deleted files by pattern exclude patterns shell git exclude pattern Extremely frustratingly, git add -u path/to/files/pattern* doesn’t seem to work, even though the path and asterisk-using pattern does for git add -p. Combining https://discoposse.com/2016/11/08/git-remove-multiple-deleted-files/ with https://stackoverflow.com/questions/15925079/why-does-git-ls-files-ignore-require-exclude-patterns got me this: git ls-files --deleted --exclude=config/sync/migrate_* --ignored -z | xargs -0 git rm

Upgrading a Drupal 6 or Drupal 7 site to Drupal 8 or Drupal 9: the command line steps

Presuming you’ve got a basic Drupal or Drutopia template based site set up with DDEV. This is based largely on the Agaric training developed by Mauricio Dinarte, “Upgrading to Drupal 8 using the Migrate API”. With these steps, we , leave the mysql command line prompt (the first exit), import our live database ddev ssh mysql -uroot -proot create database d6; GRANT ALL ON d6.* to 'db'@'%' IDENTIFIED BY 'db'; exit mysql d6 < .

Database inaccessible cannot be USEd or dumped

mariadb how to tell if table is locked mariadb how to tell if database is locked mysql database frozen mysql table hangs, never comes up with “USE” (i keep typing table when i mean database) mysql database hangs, never comes up with “USE” unusable database what to do mariadb mariadb database locked mariadb fix broken database Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2 “No such file or directory”)’ Entertainingly written for documentation, but no answers here:

Prevent duplicate additions of HTML markup added in a JavaScript function

The bug is that https://gitlab.com/agaric/drupal/checkboxesjs was adding more checkboxes every time autosave ran! drupal 8 get ID of checkboxes container jquery ensure dom updated before next method operates jquery ensure each runs after previous each drupal 8 #pre_render Ancient answers… https://forum.jquery.com/topic/waiting-for-a-dom-element-to-become-available No this can’t be a good idea. https://swizec.com/blog/how-to-properly-wait-for-dom-elements-to-show-up-in-modern-browsers/swizec/6663 https://www.drupal.org/docs/develop/standards/javascript/javascript-coding-standards#indenting This was fixed with

atom editor causes java and kswap processes to spike

This is reproducible. It also makes absolutely no sense. I do believe it started after updating a few plugins, so one of them might have been hijacked and is trying to mine bitcoin or something?

Change the title of a View to show a name based on its numeric contextual filter

twig conditional based on path drupal 8 load username in twig from uid This is how NOT to do it. /** * Implements hook_preprocess_page_title(); * * @param $variables */ function geofresco_preprocess_page_title(&$variables) { // WE SHALL BE SHAMELESS. if (!isset($variables['title']) || !is_array($variables['title'])) { // The pages we're interested in have title as markup, so bail if it's not. return; } $string = isset($variables['title']['#markup']) ? $variables['title']['#markup'] : FALSE; if ($string && $pos = strpos($string, "'s blog", -7)) { $uid = substr($string, 0, $pos); if (is_numeric($uid) && $account = \Drupal\user\Entity\User::load($uid)) { $variables['title'] = [ '#markup' => t("@username's blog", ['@username' => $account->getDisplayName()]) ]; } } } The approach in the answer here is what we’re doing, the path having the username is handled with an alias.

How to allow visitors to register while leaving a comment in Drupal 8

Short answer: As far as i know, this still isn’t possible. http://data.agaric.com/better-registration-and-login-workflow-drupal-8-allowing-logging-or-registering-while-posting-conten I really should be editing the data.agaric page, but these static markdown files is how i take notes now. Searched for: mlncn Drupal register while leaving comment

How to keep keys and data which should be on live out of your repository

drupal 8 encrypt configuration drupal 8 config alter keep only on live Drupal 8 remove configuration on export I think config_split is probably the best way (for low-security things like e-mail addresses that should just be kept out of public repos) See https://geertvd.github.io/post/exclude-config-from-cmi-in-d8/ Of course an encrypted vault that puts the keys into settings on deploy is also possible, but even encrypted it’s preferable not to put private information out in the open.

Assign user roles but not permissions as ability for site managers in Drupal 8

drupal 8 user management assign roles but not permissions … am i sort of asking for the opposite of my own old https://www.drupal.org/project/pwn ? Not really; the goal is much the same (let a user give out permissions they themselves have) but not as fine-grained (give out entire roles that they have, or are configured as ones they can grant, so presumably not greater in power than their own role).

Fallback environment instructions for migration training- do not work

Fallback environment instructions: Check that you have PHP installed on your computer (PHP 5.5.9+, 7.1+ preferred), test in a terminal with: php –version composer create-project drupal-composer/drupal-project:8.x-dev migrate-training –no-interaction cd migrate-training php -t web -S localhost:8008 Visit http://localhost:8008/ and install your Drupal 8 site with the database prefix d8_ Keep sites/default/files/.ht.sqlite as-is mkdir web/modules/custom cd web/modules/custom/ git clone git@github.com:dinarcon/ud_d8_upgrade.git cd ../../../ gunzip web/modules/custom/ud_d8_upgrade/drupal7/drupal7.sql.gz sqlite3 web/sites/default/files/.ht.d7sqlite -init web/modules/custom/ud_d8_upgrade/drupal7/drupal7.sql … cannot convert our SQL dump file to SQLite so this won’t work

Create a Drupal view with content based on a username in the URL path

drupal 8 create view with content per user username in path drupal 8 views get userid from username So naturally i explored the Blog module, formerly of Drupal core. It’s … not in great shape. pathauto views arguments drupal 8 create path alias for every contextual filter I’m not alone in the want for a pathauto type module to doit. But no answers! https://stackoverflow.com/questions/36018032/drupal-8-custom-url-path-for-node-with-taxonomy Most useful thread yet… https://www.drupal.org/forum/support/post-installation/2017-05-10/solved-views-contextual-filter-on-names-not-node-i

Providing a recommended citation format for content on your website

drupal 8 citation format Bibliography & Citation had a million options but We intentionally choose to do the citation in one big lump, because our expectation for making this more flexible would be to plug into bibcite or other citation API, rather than making it easy to re-theme this custom data. external link change did nothing we wanted it to. drupal 8 external links text format drupal 8 link allow setting target Force every external link to open in a new tab: https://www.

DiscoveryTrait.php The empty string plugin does not exist valid plugin IDs for EditorManager are ckeditor

DiscoveryTrait.php line 53: The "" plugin does not exist. Valid plugin IDs for Drupal\editor\Plugin\EditorManager are: ckeditor This suddenly came up. Only guess now is it’s related to our config_actions module powered, ah config actions. Because we have a couple of config/actions/editor.editor.basic_html.yml type files. But those were working fine. And they haven’t changed. So what changed? It appears to fail at drutopia_findit_organization module installed. I’m not quite sure why the syslog / journalctl log just has happy news, like the ancient Egyptian records where there were no defeats recorded, just victories that became more sporadic and closer to home.

track who created users drupal 8

It’s nice that Drupal comes from a perspective of “log nothing” first, but i’m pretty surprised no one has wanted this before Agaric’s one-and-only David (gnuget) is working on this for the Contact module

ddev auth ssh not working because it asks for a nonexistent passphrase

This has been going on a while and i finally filed an issue about it, hoping someone else has experienced it… ddev auth ssh Enter passphrase https://github.com/drud/ddev/issues/1844 As noted there, i of course did have a passphrase; the deal is that Ubuntu knows it and enters it for me in every other context, but DDEV isn’t able to use this, so i havve to enter it myself, but because Ubuntu has been storing it for me i don’t know it…

drupal 8 register while leaving comment

Searching for that brought up my own post wishing for better registration and login workflow, so it seems we’ve had no progress on that in the nine and a half years since i wrote that. I swear, soon we’ll have enough sites on Drutopia to make these investments possible.

Navigating files in vim

vim go to file https://vim.fandom.com/wiki/Open_file_under_cursor vim return to previous file CTRL-^ See also https://stackoverflow.com/questions/9160499/go-to-back-directory-browsing-after-opening-file-in-vim can just Ctrl 6

transgender symbol

Yes it’s the end of 2019 and i (ben) had to look this up. The Transgender Symbol Another transgender symbol, a combination of the male and female sign with a third, combined arm representing non-binary transgender people (Unicode: U+26A7 ⚧). From https://www.symbols.com/symbol/the-transgender-symbol This was the first source that explained that the extra left arm is of course a sort of combined male and female arm to represent nonbinary. Unicode just confusingly calls this: “Male with Stroke and Male and Female Sign”

Controlling which hidden files are synched by NextCloud

OK, i see why NextCloud tells us which files were not synched— it’s potetially something you very much need to know. Under advanced options, Edit synched files, checked “Sync hidden files” hoping that it’s lengthy excludes list at /etc/Nextcloud/sync-exclude.lst still is operational. Nevertheless, i’m sure there’s now a ton of files and folders that i’m synching that i would have rather not. nextcloud ignore git folders https://help.nextcloud.com/t/how-can-i-edit-the-default-ignored-files-list/5004/11

Don't use placeholders functionality of rendering for basic string token replacement

drupal 8 render arrays on same page same output drupal 8 field formatter caching Wasn’t really the render array part but the placeholder part and i still don’t understand how it caused the age results to be replaced with the grades results. But i was mis-using placeholder API anyway. All i really wanted was the t() function without the translation parts. drupal 8 list of render elements

Get the GitLab or GitHub URL for a specific commit using the command line from the local checkout of the repository

I thought my problems were solved when i saw that the git-open utility, which i was already using, had an issue to add a –commit option with a merged-in merge request referenced. Removed my npm-installed version and just git cloned it into a grabbag SoftwareApplications folder i have and cd ~/SoftwareApplications/ git clone git@github.com:paulirish/git-open.git sudo ln -s ~/SoftwareApplications/git-open/git-open /usr/local/bin/git-open Now i can do this: git-open -c But it can only open the current commit.

Replace an entire file with config actions in Drupal 8

“config actions” replace whole file drupal 8 https://config-actions.readthedocs.io/en/latest/example_override.html i think i did something pretty close pretty easily? Will have to look what was done. Ah ok just replaced most of the file like this: https://gitlab.com/find-it-program-locator/drutopia_findit_organization/commit/8bb53b52560eafd710f11efe0412cce0201d6ad0

Using a main branch on packagist that doesn't have the usual, suboptimal, name "master"

non-master branch on packagist Turns out it’s easy, just make sure that it’s your default branch on GitLab or GitHub and Packagist will take care of it from there. And if it’s your only branch to start, you’ll be fine. So for regular projects i start with: git checkout -b stable And for Drupal projects i start out with: git checkout -b 8.x-1.x Then i git push, and when that inevitably fails, put in what git/GitLab tells me to send:

See whether an array of elements are a subset, in terms of a single property, of another array of objects, and in the same order, in PHP

Some preliminaries, just to get the data we’re going to be comparing… drupal 8 taxonomy term load vocabulary https://api.drupal.org/api/drupal/core%21modules%21taxonomy%21src%21Entity%21Term.php/function/Term%3A%3AgetVocabularyId/8.8.x but that says use TermInterface::bundle() instead. php get a single value from a traversable https://www.php.net/manual/en/function.current.php drupal 8 taxonomy documentation drupal 8 get entity type of an entity I gotta say it: doing this huge lift to have object oriented code and then passing around objects that can’t even tell the code they arrive at what the hell they are is like building a giant electronic mail sorting system and forcing people to learn to write bar codes, but the mail sorting system can’t actually read addresses and you have to take things to the destination yourself.

Adding a JavaScript library to a Drupal 8 module so it just works with Composer-managed projects

Wait, what? It’s almost 2020 and there’s no set plan for this?!? https://www.drupal.org/project/documentation/issues/2605130 https://drupal.stackexchange.com/questions/269964/how-to-use-composer-to-install-third-party-libraries https://www.drupal.org/project/libraries_registry - seems abandoned? https://www.drupal.org/project/libraries/issues/1704734#comment-11493059 https://drupal.stackexchange.com/questions/223260/whats-the-correct-way-to-include-javascript-dependencies-into-modules Drupal 7 only: https://www.drupal.org/project/jquery_plugin Best i can tell from reading the documentation on package types there’s no way to use Composer to grab a single file, which is all i happen to need. Since there’s no documented way to link directly to jquery.checkboxes-1.2.2.js i’ll grab the source code as a zip file, which is documented, and just use one JavaScript file in the src/ directory, counting on my own assets packaging code to compress it.

Rename files and find and replace text inside those files at the same time with repren

https://github.com/jlevy/repren is pretty great. repren --full --preserve-case --from publishing_dropbutton --to workflow_buttons . For python 3, for now, do not use pip to install but get the file directly: cd ~/.local/bin && wget https://raw.githubusercontent.com/tstapler/repren-1/py3/repren && chmod +x repren Hope tstapler’s pull request gets accepted someday!

When to hide things from the screen but show for screenreaders

I’m finding precious little thoughtful commentary, let alone user tested or research-backed information, on when elements of a web page that you choose to hide from the graphical version of your website should be shown to people using screenreaders. There’s much more on how then why and in what context do we want to hide content on the page but keep it readable for people who use screen readers. My intuition is that most field labels (in a Drupal context, everything you’re putting out is from a field, so if the label is printed on the display not just the form for entry it would say “Title”, “Body” for the main text, “Tags”, etc) should be hidden hidden.

Repeating or recurring dates that may not follow consistent rules, best user experience?

What is the best user experience for being able to set recurring dates in Drupal 8? We’ll look at this from two main perspectives. First, for the content editor, how hard it is to do what they need to do as far as setting dates and times. What is it like to add a single date? (The most common use case for us, adding a simple one-off event, as the recurring events on Find It Cambridge tend to be programmatically created, imported from another source.

Selecting multiple checkboxes at once by holding down shift while clicking one and than another so that everything in the range in between gets checked in Drupal 8

Searched for: Drupal multiselect checkboxes drupal 8 select checkbox range Overdue update: Agaric made this happen CheckboxesJS module Gives range selection and check all / toggle all capabilities using Checkboxes.js. Specifically: Adds “Check all” and “Toggle” buttons to fields with more than four checkboxes. Adds shift-to-select-multiple (range selection) to all checkbox fields. New feature or bug report issues and patches are welcome here on drupal.org. Also accepting merge requests at Agaric’s GitLab repository for the CheckboxesJS Drupal module.

Clean up duplicate content or other entities by merging them

There’s tools like Entity Merge meant for developers. We added Simple Entity Merge to the new site and gave Site Managers the permissions needed to use it. It needs testing to ensure it does appropriately transfer references, but the goal is to avoid just that problem of tediously having to re-assign manually and then delete the now un-associated duplicates. Also needed: reporting content or other entities that are not affiliated with anything, and listing entities that appear to possibly be duplicates.

drupal 8 define action links in config

There really should be a module for this, instead of requiring custom code. But it’s not really custom code, it’s a short yaml file defining the link, which has some elegance of its own. http://data.agaric.com/adding-action-links-pages-drupal-8 https://www.drupal.org/docs/8/api/menu-api/providing-module-defined-local-tasks

drupal 8 list display formatters

https://www.drupal.org/project/formatter_suite - opinionated in possibly not the same ways i will be? https://www.drupal.org/project/list_formatter - seems pretty much abandoned Oxford comma usage [#2419643] | Drupal.org https://www.drupal.org/docs/8/creating-custom-modules/creating-custom-field-types-widgets-and-formatters/create-a-custom-0 This is unrelated, but very cool— choosing the formatter on a per-entity, per-field basis: https://www.drupal.org/project/formatter_field If it’s possible t In other words … this research led to creating the In Other Words module.

How do Drupal distributions get their installation numbers listed on Drupal.org

Searched for: drupal distribution maintainers how to have drupal.org record versions distros usage numbers not being shown on d.o project pages https://www.drupal.org/docs/develop/packaging-a-distribution/how-to-package-a-distribution-on-drupalorg We’re particularly interested in Drupal 8. Most of the documentation is out-of-date. https://www.drupal.org/docs/7/creating-distributions/usage-statistics-for-distributions We’re trying to add version, core and project keys to Drutopia’s .info.yml file, to see if that will start getting our installs counted on Drupal.org.

Output a link field as a plain URL

drupal link URL formatter See the Image Link Formatter module for an approach to solving a very similar problem, with lots of information on its project page about alternative solutions. Kudos, DYdave!

Searching a large collection of markdown files

Yes, grep is great but when you want to search non-consecutive words its way too frustrating. Somwhere i have a large note about all the tools i looked into for doing local file searches, but of course i can’t find it. That might change soon though! https://unix.stackexchange.com/questions/268870/how-can-i-get-the-recoll-package-to-index-markdown-md-files#269009 Searched words include: ubuntu markdown file search recoll index .md files

tell composer to use a dependency composer.lock file

I haven’t found the documentation, but i am nearly 100% certain that composer.lock file in any dependency is completely ignored, and that is, necessarily, just the way it is. Searched for: tell composer to use a dependency composer.lock

Validation-failing fields that are not in the current vertical tab block submit but produce zero feedback

Fields that are not in the current vertical tab when Submit is pressed and that fail validation cause submission to silently fail: Nothing happens, no feedback to the service provider at all Searched for: drupal 8 vertical tabs javascript validation silent fails with HTML5 or JS validation when required or otherwise problematic field is on a ‘closed’ vertical tab There’s this lonely core issue with patch: Correct vertical tab does not focus on form validation [#2911932] | Drupal.

composer update not applying patches to drupal core

Turns out that’s sort of exactly what’s happening: Drupal core patches apply incorrectly if they only add new files So, so, so many dead ends with this (although this person might possibly have been hitting the same problem?) The key is that it silently fails. People have trouble with patching and compeser-applied patches all the time! This is different. composer.json not applying patchs from theme (nope, that wasn’t the problem!)

drupal 8 redirect different roles to different pages on login

From https://drupal.stackexchange.com/a/223380/4195 and https://stackoverflow.com/a/49556334/1028376 we combined things to get this: use Drupal\Core\Url; use Drupal\user\UserInterface; /** * Implements hook_user_login(). */ function drutopia_findit_service_provider_user_login(UserInterface $account) { // Only do this for Service Providers. $roles = $account->getRoles(); if (!in_array('serviceprovider', $roles)) { return; } // Ignore password reset. $route_name = \Drupal::routeMatch()->getRouteName(); if ($route_name !== 'user.reset.login') { // Do not interfere if a destination was already set. $current_request = \Drupal::service('request_stack')->getCurrentRequest(); if (!$current_request->query->get('destination')) { // Default login destination to the service provider dashboard.

Running ansible commands as your current user

ansible run command as non-root ansible become own regular user https://stackoverflow.com/questions/26394096/in-ansible-how-do-i-get-a-variable-with-the-name-of-the-user-running-ansible

Alter Inline Entity Form's add form in Drupal 8

See our fix in action… well, as committed to the code. As noted, we needed to do a form alter on the regular entity’s add/edit form and a form alter on the inline entity form in order for the same fix to be reflected in both places. Have not yet figured out if there’s some way to make our form alter happen soon enough that IEF inherits it, if that’s the way it works at all.

Disable the vertical orientation of the admin toolbar's manage tray

It’s extremely annoying during development at least when the bar flips to vertical when the screen narrows Drupal 8 make toolbar tray stay horizontal drupal 8 disable toggle orientation on admin toolbar manage … i guess i’ll take the code from the accepted answer to defaulting the admin toolbar as left vertical orientation and adapt it to force the toolbar tray to always be horizontal. drupal 8 override library all JavaScript drupal 8 toolbar module weight Why isn’t my library override removal doing anything?

Error with Block Content Permissions

The website encountered an unexpected error. Please try again later. It’s a call to member function (method) listInfo() on null that breaks it. I don’t think it’s anything i did. I’d file an issue against Block Content Permissions if i hadn’t locked myself out of my Drupal.org account (for the moment). In fact, it’s probably an interaction of Block Content Permissions and Block Region Permissions. It only happens when trying to create a block directly from the block placement page (/admin/structure/block/list/newtowne), which gives a URL like this:

Remove the site slogan from the basic site settings form if the theme doesn't use it in Drupal 8

If a theme isn’t going to be showing the site slogan, the slogan field should be removed from the basic site settings form. … as soon as i made the commit “Hide site slogan from site managers; it’ll be edited in a block” i remembered that the slogan can also used in the title shown in the browser bar, though it isn’t by default. I remember way back in the day always using the slogan to provide part of the HTML title on the front page.

Getting template suggestions for fields based on the view made in which they are appearing

Drupal 8 does not provide template suggestions for fields per the view mode of the content they are on. (I was wrongly blaming Display Suite for them not being there.) Here are the file name suggestions for the image field on an article node shown with the full view mode: <!-- FILE NAME SUGGESTIONS: * field--default--node--field-image--article.html.twig * field--default--node--article.html.twig * field--default--node--field-image.html.twig * field--default--field-image--article.html.twig * field--default--article.html.twig * field--default--field-image.html.twig * field--default.html.twig * field--theme-ds-field-default.html.twig * field--node--field-image--article.

Upgrading Hugo

As an extremely casual user of Hugo, i barely so i searched for things like “update hugo site to 0.57” Dump Hugo flex; i tried switching to it to fix the index (home) being blank inexplicably and persistently. Hugo Flex seemed to require an updated version of Hugo; this was a bit confusing to me since GitLab was effectively providing Hugo (i hadn’t run/built the site locally for … a long time) but i figured out how to do that and then GitLab’s updated Hugo had trouble with Hugo Flex.

Why isn't composer using a particular version of PHP?

composer why using a particular version better composer why not php composer require solarium/solarium ~5.1.3 (… OK so finding these notes months later i’m not sure what i was trying to do exactly but i think i didn’t find a way for composer why to tell me why a particular version of PHP is used but i think i did find a minimum given in a dependency.)

Hax and Drupal

Checked out Hax again, more thoroughly in a Drupal context, because i will try anything to avoid diving deeper into the Paragraphs approach of having everything ever farther removed from the content itself. In this case, it’s content references. There’s a need for a collection content type to be able to reference other content (a book referencing chapters, a resource guide referencing resources, that sort of thing). So far, so good, but

Using inline entity form with contacts module profiles

inline entity form user reference user name inline entity form profile reference drupal 8 how to use profile forms Add integration for the user entity type https://www.drupal.org/project/inline_entity_form/issues/2702401 There is no doubt that profile fields reference the user profile entity, not the user entity. MariaDB [db]> select * from user__profile_crm_indiv; +--------+---------+-----------+-------------+----------+-------+-----------------------------+ | bundle | deleted | entity_id | revision_id | langcode | delta | profile_crm_indiv_target_id | +--------+---------+-----------+-------------+----------+-------+-----------------------------+ | user | 0 | 2 | 2 | en | 0 | 1 | +--------+---------+-----------+-------------+----------+-------+-----------------------------+ 1 row in set (0.

Getting an old Verizon Kyocera Duraforce Pro phone to fully work on T-Mobile

Searched words: fully unlock allow hotspot wifi tethering on Kyocera Duraforce Pro E6810 use kyocera Duraforce Pro Verizon on T-mobile can kyocera duraforce pro verizon work for att install stock android on kyocera duraforce pro verizon kyocera duraforce pro hotspot couldn’t run subscription check unlock usb easytether root kyocera duraforce pro e6810 kingroot root verizon kyocera duraforce pro kyocera duraforce pro hotspot app There is sufficient overlap of networks: https://www.howardforums.com/showthread.php/1900928-Does-the-Kyocera-Duraforce-Pro-Verizon-version-work-on-GSM-carriers-(like-AT-amp-T)

Bulma responsive mixin pass own value

bulma responsive mixin pass own value In this case i chose to create a variable to pass into Bulma’s until mixin but i could have just as easily just passed in 365px or such directly. @include until($mini) { .sitename.column, .logo.column { width: 100%; } } For the record, this simply produces: @media screen and (max-width: 362px) { .sitename.column, .logo.column { width: 100%; } } TODO: maybe circle back to https://github.com/jgthms/bulma/issues/1818 and help contribute docs.

Making accessibility usable for content editors adding image alt text

Searched words: drupal 8 mark required alt text as not informative Alternate text for uploaded images became required by default in Drupal when “Make the default ‘alt’ attribute for Image fields required” was fixed in 2015, and that’s great. “Make it Easier for Views with Images & Links to be Accessible”, which is still open, raises the point that in different contexts alt text might not be desired or should be different.

Allow configurable classes for menu items even if provided by a module

I wrote everything i knew in the queue of Menu Link Attributes module, which at least hasn’t stated a hard no against providing this. Provide a way of adding attributes to module-provided links · Issue #45 · yannickoo/menu_link_attributes The Link Attributes widget module said explicitly it won’t support this. Definitely curious if there’s anything about this module (Menu Link Attributes) that makes this more possible or if this module more amenable to bolting it on.

Viewing just the title attribute from a link not the link title as in the anchor text but the title next to a href in Drupal 8 twig

To further confuse thing, it’s the “Description” that’s put into the title="" spot, and Drupal claims “Shown when hovering over the menu link.” Totally unmentioned in this documentation: https://www.drupal.org/docs/8/theming-drupal-8/using-attributes-in-templates It’s completely black-boxed here: https://api.drupal.org/api/drupal/core%21themes%21classy%21templates%21navigation%21links.html.twig/8.2.x Can’t see much in here: https://api.drupal.org/api/drupal/core%21includes%21theme.inc/function/template_preprocess_links/8.2.x setting a random attribute like ‘data-title’ worked fine here: http://www.plousia.com/how-add-title-data-attribute-menu-links-drupal-8-and-twig URL: {{ item.url }} Get it: {{ item.attributes.getAttribute('title') }} Has it: {{ item.attributes.hasAttribute('title') }} All? <div{{ item.attributes }}></div> Just the title?

OpenTEAM collaborative data share for farmers

Via Sam Smith’s Undernews: Wolfe’s Neck Canter -Currently, farmers are faced with an ever-expanding assortment of decision-making software; however, these tools often do not “communicate” with each other, making it difficult to transfer, share or use by farmers and scientists or in supply chains. With OpenTEAM, farmers are not only in control of their own data, but also able to enter data once to access all available tools in the OpenTEAM collaborative.

Best listing of directory and file information

ls --help has lots of information, but for an overview of what it actually shows you, this is more helpful: https://www.computerhope.com/unix/uls.htm ls is not the way to the best listing of directory and file information, in my opinion. Even with all the options it has, it doesn’t have basic ones like, don’t show me the ‘hard links’ column that almost no one knows what it’s about anyway. (Here’s what it’s about: https://bertvv.

Crazy bug where just mobile Safari/Chrome when submitting on a page with a long URL/query string prints out some AJAX rather than posting as expected

Our problem is in the first line of that form: Our action has got a bit too much packed into it. <form data-nid="15294" action="/classes?field_discipline_tid=All&amp;level=All&amp;class-type=All&amp;instructor=15051&amp;field_age_group_tid=All&amp;field_class_day_of_week_value=All&amp;field_class_time_of_day_value=All&amp;keyword=" method="post" id="uc-product-add-to-cart-form-15294" accept-charset="UTF-8" class="uc-out-stock-processed"> <input type="hidden" name="form_build_id" value="form-5LMsf5MdT7sDjG2lwg1VAB9ef9qbobnurTG3E6S7-8A"> <input type="hidden" name="form_id" value="uc_product_add_to_cart_form_15294"> </form> Simply form-altering the action to /classes or url("classes") didn’t work any better than changing the HTML directly to that with inspector: We end up on that page, with nothing in the cart.

Getting laptops and other computing electronics used, good and cheap

https://anarchism.online/notice/9lUF0mJlFvx9sbzEci for a computer, i use a Lenovo Thinkpad T430. You can get one of these on ebay for around $80. I replaced the harddrive in mine for an SSD so that ended up costing a little bit more, but now it runs about the same as a macbook air. (I did the Lenovo T420 for about a decade, getting ~$150 replacements a couple times as needed and sticking my SSD and 16GB of RAM into the replacement, and will be back on it while hoping System76 finally repairs my insanely expensive Oryx Pro properly.

Mailchimp form does nothing after pressing submit

It’s got to be one of my adblockers, but i’ve disabled anything specifically being blocked about mailchimp in ublock origin etc. and still, nothing. The JavaScript that Mailchimp provides should really be smarter about this. Mailchimp’s own troubleshooting guide doesn’t mention the issue at all, which is ridiculous. Another in an increasing number of bad signs about Mailchimp. Actually it doesn’t seem to be any of the adblockers or CDN changes after all… but this:

Replace multiple terms (such as days of the week) with an intelligent, possibly customized summary

First question: Can you make a drupal 8 field formatter that applies to both text list and taxonomy fields? It appears technically yes, because a field formatter accepts multiple field_types: /** * Plugin implementation of the 'Random_default' formatter. * * @FieldFormatter( * id = "Random_default", * label = @Translation("Random text"), * field_types = { * "Random" * } * ) */ class RandomDefaultFormatter extends FormatterBase { we also want to do this with a multi-value date field, which is even more ambitious.

Use Twig to create custom computed fields with conditional logic and token replacement

Allow Twig in Views token replacement is the great triumph i want everywhere. Display Suite’s token field doesn’t have this. But it should. I’d prefer just Twig to a choice of text formats for a field like this! Field Token Value also doesn’t do this, but should. (And both it should and Display Suite’s should only need to be added as a special composite field on the display side, not on the actual fields, the FTV approach, or some weird )

Show a sidebar only on non-content pages (such as Views) or page content type pages

I also wanted to not have it on the front page, so i did that too. Twig if statements are full-powered. {# Sidebar first #} {% if page.sidebar_first and not is_front and (node and node.bundle == 'page') %} {# Set attributes for content. #} {% if not page.sidebar_first_attributes %} {% set page = page|merge({ 'sidebar_first_attributes': create_attribute().addClass([ 'sidebar-first', 'column', 'is-2', ]), }) %} {% endif %} <aside{{page.sidebar_first_attributes|without('role')}} role="complimentary"> {{ page.sidebar_first }} </aside> {% endif %} {% endblock sidebar_first %}

Seems Ubuntu lost the ability to easily create .url file system shortcuts to web addresses

https://askubuntu.com/questions/941706/create-link-to-file-on-desktop-or-in-folder – probably not the issue, as i don’t even have the Make Link menu item at all. And one of the worst threads on the internet, and that’s saying a lot, which i will not link to, wherein ‘helpful’ more experienced Linux users take offense at someone with the nerve to expect that if Windows and Mac do something a certain way, maybe it’s just a universally useful behavior.

Prevent submission of duplicate content in Drupal 8

Context We have a location entity (content type) which is referenced from other content (Programs, Organizations, Events, Places) on service providers on the Find It platform can re-use and share locations. Typing in addresses and zip codes is no one’s favorite thing. But asking people to search before adding is only so effective. How do we prevent ending up with hundreds of duplicate locations? Research Very old post but with an answer that almost stays relevant: https://www.

Monitoring multiple Drupal sites for core, module, and theme security status

Some general health monitoring would be nice but we’re using a couple uptime checkers, Monit and the proprietary (but no-cost for light use) Uptime Robot service to get the most basic “is my site up” info. The real need Agaric has is to know which modules are installed on each site without having to keep a manual list of them. We were moving toward having everything built on a Drutopia base, which is another solution: So long as our various codebases, just a handful of different ones, are up-to-date security-wise, then all the sites are.

Trim a summary field to full sentences under a character limit rather than just a number of words or characters

Use case: Migrate first sentences (up to 200 characters, but only full sentences) of program description fields to findit_program short summary Investigation: I thought Smart Trim did this but it explicitly rejects being that smart, this naive patch is as far as it got. Search for a library just turned up a bunch of articles like https://www.electrictoolbox.com/get-first-sentence-php/ But if we first cut at 200, then search backwards for the first .

Exclude UUIDs from Drupal config export

Failed attempts git diff -G ‘^\s*([^\s*]|*\s*[^\sG]|*\sG[^e]|*\sGe[^n]|*\sGen[^e]|*\sGene[^r]|*\sGener[^a]|*\sGenera[^t]|*\sGenerat[^e]|*\sGenerate[^d]).*’ git diff -G ‘^\su*([^u*]|uu*[^id]|ui[^d]|uuid[^:]|uuid:[^\s]).*’ git diff -G ‘^^uuid:\s.*’ git diff -G ‘^[^{uuid}.*’ Success git diff -G '^[^u][^u][^i][^d][^:].*' Made a .bashrc alias: # Diff that ignores config files whose only change is the UUID (ignores lines # starting with 'uuid:' and probably other stuff but it's solid so far.) alias gdu="git diff -G '^[^u]*([^u][^i][^d][^:]).*'"

Prevent content with a content reference from referencing itself

Entity reference for Drupal 7 has a ready-to-be-committed patch for this: https://www.drupal.org/project/entityreference/issues/1364802 And a “Needs work” patch for Drupal core: Add setting to EntityReferenceSelection plugins to prevent references to referencing entity https://www.drupal.org/project/drupal/issues/2280479 Ah but there’s a contrib fix: https://www.drupal.org/project/entity_reference_validators Needed for Find It: A service provider or content editor is prevented from creating a circular reference between organizations. as part of A content editor can associate an organization with a parent organization.

Notes on the subtle interplay between optional configuration and config actions

Or maybe they don’t work together at all. Optional configuration provided by modules and themes should be stored in config/optional. But that applies only to full pieces of configuration. There are other situations, especially permissions, where what is optional has to be a small piece of a configuration entity. According to the response to this request to test for dependency, config actions will just silently fail if they lack dependencies.

And PopOS/Ubuntu suddenly broke VirtualBox somehow?

mlncn@oryx:eliot-school [master]$ vagrant up Vagrant failed to initialize at a very early stage: The provider ‘virtualbox’ that was requested to back the machine ’eliot-school-vm’ is reporting that it isn’t usable on this system. The reason is shown below: VirtualBox is complaining that the installation is incomplete. Please run VBoxManage --version to see the error message which should contain instructions on how to fix this error. mlncn@oryx:eliot-school [master]$ VBoxManage –version WARNING: The character device /dev/vboxdrv does not exist.

Find a file by its filename on GNU/Linux

You likely don’t know the complete name of the file you’re looking for, so you can use wildcards: find docroot/ -name image.style.* Much more about the find command available with man find and at https://www.lifewire.com/uses-of-linux-command-find-2201100

recon-ng

workspaces add example show schema add domains example.com~ add companies Exmaple Inc~The Example Co description See what domains you've added, in your current workspace: show domains See what modules can act on domains. use domains use recon/domains-contacts/pgp_search show info Show any contacts that have been acquired. show contacts

Appetite for Change

Appetite for Change Received 501c3 in 2011 “Between February and May of 2012 Appetite for Change hosted eight events in its pilot Community Cooks program.” http://www.cura.umn.edu/publications/catalog/npcr-1332 focus on earned income to be sustainable Nonprofit, Appetite for Change, brings healthful food options to north Minneapolis http://www.startribune.com/nonprofit-appetite-for-change-brings-healthful-food-options-to-north-minneapolis/224648221/ Lawyer-turned-chef-turned-social entrepreneur Michelle Horovitz is taking a businesslike approach to expanding Appetite for Change, the nonprofit she co-founded to help bring healthful food options and economic development to north Minneapolis.

Tracking down an unexpected Facebook Pixel

facebook pixel finding unexpected in chrome pIxel helper plugin 713593178732145 Disclaimer: You should absolutely quit Facebook personally and not install any of it’s tracking, spying stuff on your sites. At least here i’m helping an organization remove an extra tracking pixel that’s showing up for an unknown reason.

Every person in an organization needs to be part of telling its story

https://iterativemarketing.net/communicate-brand-organization/ https://www.mckinsey.com/business-functions/marketing-and-sales/our-insights/building-a-marketing-organization-that-drives-growth-today Build brand tribes: Brands have long been managed by global teams that design global campaigns and local teams that execute those campaigns as well as manage local ones. This often results in frustration in both directions: Local teams think global doesn’t understand their market, and global thinks that local isn’t using collective assets. To combat this issue, we have seen marketers start to build “brand tribes”—informal, globally dispersed networks of marketers, who collectively identify and share their best assets.

How to see Firefox past web push notification messages?

There’s a lot of web push notifications i get, that i want to get, that disappear too quickly for me to really see them— especially some that are malformed, like the ones from Plan.io, and say “null” in big letters and the actual information in small letters. I think in my case it’s not quite using the ideal Ubuntu/PopOS messaging but something else. I cannot find any way to see recent messages that have had their flash and gone, so i’m trying out disabling the system message integration entirely.

Configure a Zulip Linkifier to expand GitLab links with regex pattern and URL

GitLab issues and commits are slightly more complex than GitHub because GitLab allows organizations (groups) to have sub-groups. Thus, here is our capturing regex, allowing a slash in the repo: (?P<org>[a-zA-Z0-9_-]+)/(?P<repo>[a-zA-Z0-9_/-]+)#(?P<id>[0-9]+) To test it with standard regex we need to escape the slashes: (?P<org>[a-zA-Z0-9_-]+)\/(?P<repo>[a-zA-Z0-9_\/-]+)#(?P<id>[0-9]+) This gets complicated fast, but hey, that’s RegEx As i wrote on a possibly unrelated Linkifier testing issue: Would any of this cover how linkifiers are supposed to overlap?

libresaas (pad.drutopia.org/libresaas)

**Occasional backups of https://pad.drutopia.org/p/libresaas ** Please also read https://dm.zimmer428.net/2018/11/libresaas-revisited/ by Kristian Rink (@kr428) who independently coined “LibreSaaS” for the exact same need and reasons, but better stated. LibreSaaS Ghost https://ghost.org “Ghost is a fully open source, adaptable platform for building and running a modern online publication. We power blogs, magazines and journalists” RoundEarth http://roundearth.io Drupal 8 + CiviCRM - distro and hosted SaaS. Constituent Relationship Management (CRM) and Content Management System (CMS) powered by your users and your content.

How to add additional text or punctuation around imported fields in migrations to Drupal 8

If you just need to get some text or characters in between fields your combining to gether, the concat (concatenation) plugin is all you need. process: title: plugin: concat source: - movie_name - release_year delimiter: ' — ' You need to use single quotes in defining the delimiter. If you want to do something abit more complex, constants: INTRO: 'Announcing: ' OUTRO: ' ...exactly as you\'ve seen it before' OPENPAREN: ' (' CLOSEPAREN: ')' process: title: plugin: concat source: - constants/INTRO - movie_name - constants/OUTRO - constants/OPENPAREN - release_year - constants/CLOSEPAREN Note that if using constants to inject strings, you probably don’t want to use a delimiter, as that would be added between both your real fields and the added strings (constants).

Replacing a broken automatic garage door with manual or other-wise non-breaking garage doors

Submitted inquiry to http://www.garagedoorrepaircomn.com/ Current garage door a heavy automatic one— broken since we bought the house. Now hopelessly jammed. Very likely needs to be replaced, open to manual swinging doors or whatever is affordable and won’t break. Current door 9 feet wide by 7 feet high. Garage in the alley behind the house. Available anytime today (Sunday) or tomorrow (Monday) from 8am-10am or 11am-8pm. Thanks! Home Depot has overhead doors, skipping any power or automation, starting at $500, closer to $800 with installation and a mysterious $79 “hardware upgrade” which is the only hope i have that the tracks and rollers and any springs are actually included with the garage door and installation.

Preventing duplicate transactions in Google Analytics when the JavaScript sending to GA is buried in Google Tag Manager

Links to an example of the problem: https://platform.funraise.io/transaction/1294609/profile https://analytics.google.com/analytics/web/#/report/conversions-ecommerce-transaction/a341980w565503p537677/_r.drilldown=analytics.transactionId:1294609&explorer-table.plotKeys=%5B%5D This is the string donating produces: https://www.example.org/checkout/success/thank-you-for-saving-lives?first_name=ben&last_name=melancon&address1=51%20Hano%20Street&city=Boston&state=Massachusetts&postal=02134&country=United%20States&email=ben%40agaric.coop&donation_id=1316894&amount=5&payment_type=card&frequency=o https://tagmanager.google.com/#/container/accounts/1699674669/containers/7376334/workspaces/85/tags <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); (function() { var GA_TRACKING_ID = 'UA-xxxxxx-1'; function getParameterByName(name) { var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search); return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); } function getDonationIds() { var cookies = decodeURIComponent(document.cookie).split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = cookies[i]; // Remove any whitespace from cookie strings.

Funding Free Software

https://sfconservancy.org/blog/2019/may/23/github-sponsors/ OpenCollective has put a little more thought in also, at least ensuring transparency in the distribution of funds. Ryan Price suggested Drupal follow suite with the FUNDING.yml file GitHub announced it will parse. Rachel Norfolk notes the increasing use of OpenCollective by Drupal projects, led of course by Jacob Rockowitz’ D8 Webform.

Installing Jitsi desktop client on Ubuntu or Debian

Don’t follow the initial repository instructions on https://jitsi.org/downloads/ - installing from the repository doesn’t seem to work for the “Jitsi Meet” desktop client, and the other seems to be for the server-side functionality. Instead follow May First’s instructions: https://support.mayfirst.org/wiki/web-conference If getting the AppImage for Debian or Ubuntu, be sure to edit permissions and make the file executable. Then you can just double-click it. Way more about AppImages here: https://itsfoss.com/use-appimage-linux/

drupal 8 include a sandbox module with composer after the move to gitlab

Where i say this needs to be documented better: https://www.drupal.org/project/project_composer/issues/2772557#comment-13115089 What works: { "require": { "dereine/jump_menu": "1.x-dev", }, "repositories": { "jump_menu": { "type": "package", "package": { "name": "dereine/jump_menu", "version": "1.x-dev", "type": "drupal-module", "source": { "url": "https://git.drupalcode.org/sandbox/dereine-2747697.git", "type": "git", "reference": "8.x-1.x" } } } } } With, of course, all the other bits needed to have a Drupal site.

Responses to Jo Freeman's The Tyranny of Structurelessness

A 1984 reprint: http://www.bastardarchive.org/books/Freeman_Levine-Untying_the_knot-reading.pdf I would pay someone to do a text version that fixes the punctuation and other typos that, at least in large part, stem originally from a bad OCR or transcription of a printed text. For instance, the sentence: The individual is alienated by the size, and relegated, to struggling against the obstacle created by the size of the group — as example, expending energy to get a point of view recognised.

Stop Google from hijacking address invites to addresses that are aliases in gmail

The only solution is to disassociate your non-gmail address from gmail entirely. My feedback on support.google.com/accounts/answer/176347 which was their link for “Learn more about alternate emails and how they’re used.” Admit that you use the alternate address to intercept calendar invites sent to that address from other people’s Google Calendars, and give a way to turn this mis-feature off, so it reaches my alternate address and its usual event invite handling rather than only going to my Google calendar.

Notes on optimizing page load time in Drupal, from David Valdez

Initial implementation notes for “Improve site performance” for the original Find It Cambridge project. Eliminate render-blocking JavaScript and CSS in above-the-fold content Accord with: https://developers.google.com/speed/docs/insights/BlockingJS https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery The way to do this is move the most critical parts of the scripts and put them inline, later add a script that loads the rest of the scripts. And for Javascript it suggest to add the async attribute in the tags which could be problematic because if the js depends of a different script in order to work this could break the functionality.

How to have webform's configuration sync export with proper formatting

drupal 8 webform keep export with linebreaks istead to put several lines of config it display everything in one line The discussion was getting morose: I used to just not commit when there’s no changes. But i guess we have to just start letting them all slip into ugly formatting style? there’s an export tool through Webform’s UI but that means that every time that I update drupal there will always be changes

Saving spreadsheets in a text-editable format

It’s bugged me for a while that while it’s a joy to replace blob-making rich text documents with a format like Markdown (or RST or AsciiDoc), which can be edited with Vim or any text or code editor and, crucially, committed to version control with human-readable diffs, there didn’t seem to be any way to do that with one of the top search results is from 2003, though there’s at least one CSV file handler for Vim that’s regularly updated.

A new contender for open source search?

https://jivesearch.com/ https://jivesearch.com/about https://github.com/jivesearch/jivesearch They don’t talk about the indexing of the web at all, so i have to presume that they’re doing what DuckDuckGo does, and getting results from other search engines. (Long live MetaCrawler?) Indeed, the setup instructions involve a Yandex key. So, they’re a LibreSaaS DuckDuckGo. Hey, that’s definitely an improvement. Via Steve - https://disqus.com/by/disqus_1CdZNhqJ5T/ The only way to beat Google is to combine the resources of many, many people and the only way to do that is via open source.

Analytics, probably Google, and Funraise

pantheon record referrers google analytics http://help.funraise.io/giving-form-v1-advanced-embed-code/giving-form-event-handlers-google-analytics https://support.google.com/analytics/answer/2795830?hl=en https://propecta.com/google-analytics-fake-traffic https://webmasters.stackexchange.com/questions/96769/why-do-i-get-irrelevant-urls-in-the-full-referrer-field-in-google-analytics https://www.drupal.org/sandbox/dsnopek/2844722 via https://www.drupal.org/project/ga_tokenizer/issues/2312527 Background We’re increasingly building out our own implementation of analytics software here, as thoroughly documented in #7511. Possible reasons that the referrer is incorrectly showing as actionagainsthunger.org itself include: The cookie isn’t getting set on the home page or (reliably?) any page other than the donate page, so if someone is linked to the home page and then donates, the referrer will be actionagainsthunger.

Uniting the stiffed: wage theft and short-changing contractors and non-payment of bills from small businesses

There needs to be an umbrella term for stolen wages and money stolen from small business through unpaid bills, especially when it’s larger or richer companies that don’t pay. Many small businesses are individuals, freelancers, and so it’s really the same thing as stolen wages, just not an employee relationship (because corporations hardly do employment anymore). But even small businesses that employ dozens of people should see remedying this as part of the same political fight.

how to make a shallow clone a full repository

You can make a shallow clone in the first place (useful if you are in a place with a tenuous or slow internet connection) like this: git clone --depth 1 git@git.example.com/repo.git You can later make it a complete repository, with history and branches, like this: git fetch --unshallow git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" git fetch origin This only applies to modern Git. Via https://stackoverflow.com/a/17937889/1028376

Getting a minimal Drupal install up for training or development

In preparation for Agaric’s migration training at DrupalCon Seattle, we’ve seen again that getting a development environment suitable for working on Drupal with Composer is a big road block. For that reason, here are instructions for getting it all going, suitable for our training or for working on Drupal in a code sprint, with only one hard requirement: PHP. Getting a local development going is a problem for everyone, including programmers and people who should be skilled at this.

Names people and machines have called me

Benjamin Melaní_on (from some corruption to Color of Change’s database, because they used to have my name right). Ben Alarcon (And then it got somewhat corrected, and this is my favorite, because it got my cedilla correct while still messing up so much, Ben Alarçon) For the record, my name is Benjamin Maurice Melançon the First.

why is composer reading dependencies of branches

$ composer update Loading composer repositories with package information Reading composer.json of drutopia/drutopia (124-a-visitor-sees-the-active-menu-t Reading composer.json of drutopia/drutopia (69-install-signup) Updating dependencies (including require-dev) Package operations: 0 installs, 1 update, 0 removals It’s those first two lines after composer update that confuse me. Why is it checking out what random old branches have to say about what it should load? Doesn’t it already know the branch it should be getting for drutopia/drutopia?

Preventing database lock problems

Mentions Memcache and Redis and recommends MariaDB over MySQL: https://www.valuebound.com/resources/blog/a-beginners-guide-to-performance-optimization-drupal-8 https://www.drupal.org/project/memcache Oh and there’s also Memcache Storage module but it’s not had a release for Drupal 8 in four years!? Oh but then we read that Redis is better: https://pantheon.io/blog/why-we-recommend-redis-drupal-or-wordpress-caching-backend Oh but then David Strauss who worked on all that is saying not to use Memcached or Redis? But it’s not clear what we’re supposed to use? OK finally there’s a little blog post from Pantheon.

Notes on Shoshana Zuboff talk at data and society on Surveillance Capitalism and Democracy

https://datasociety.net/events/databite-no-118-shoshana-zuboff/ Capitalism is bearing down on us in ways outside the economic domain, separate from us as workers. The only name we have is the name they gave us, “users”. In 1830s the binary of aristocracy and the lower classes (from bankers to paupers) gave way to a new consciousness, identity, of a laborer, out of a felt recognition of shared interests that were new in the world. Which became the basis for a new form of collective action that formed the basis of democratic movements which tethered industrial capitalism to the needs of society.

Thoughts on Clark C. Evans' partially-free licensing

He’s absolutely right that people paying for the software they want is a crucial element of control, of shaping how the software develops. Otherwise non-developers have very little control over what software they use. “Software needs owners when it gets started”, when it costs money to develop. But needs collaborative ownership. “There are no good revenue models for Free Software.” But that’s what LibreSaaS can provide— there’s very little downloaded software anymore, in the directly consumer-facing world at least.

Libre Software and LibreSaaS password managers

Agaric uses the old-school open source KeePass encrypted password and metadata format to manage our passwords with various slightly more modern front-ends such as KeePassX and KeePassXC. To share this between multiple members on the Agaric team, we store the encrypted .kdbx file in NextCloud. This is the industrial-strength approach many security people recommend. But easier-to-use web-based password managers definitely have their place. Here’s a rundown of some options: BitWarden is the most robust solution with team features like collections and shared items and enterprise services like support, an audit trail, and password vault heath reports.

Crimes of CKEditor

Turns paragraphs within blockquotes into multiple blockquotes Mangles your input— instead of preserving your source, when it collapses linebreaks into a single paragraph in rich text view, it deletes them in source view also. That is evil and very un-drupal. Fails to save changes made in source view if you don’t return to rich text view Puts ugly paragraph tags in source and generally makes source unreadable; WYSIWYG Linebreaks doesn’t seem to be able to ameliorate all of this in Drupal 8.

Notes on online cooperation and loss of advantage by free software talk by Benjamin Mako Hill

“an end to predatory vendor lock-in” is a benefit of freedom learn from groups fighting for other public goods (environment, public works, public broadcasting) Work with governments and engage in lobbying. Support change through civil society organizations, non-profits, and activism. Will involve coalitions (and more support for the Free Software Foundation). https://media.libreplanet.org/u/libreplanet/m/free-software-and-the-shifting-landscape-of-online-cooperation/ mako@atdot.cc The highest level of freedom and control over our own lives that is the historic purpose of the Free Software Movement can be achieved, not by Free Software alone, but by the cooperative ownership and democratic control over key resources, including computers running software as a service.

MidCamp Code of Conduct notes

https://www.midcamp.org/code-conduct my understanding is they took them directly from DrupalCon’s Code of Conduct. Ah, from the bottom: “The MidCamp Code of Conduct is largely based on the DrupalCon Code of Conduct, and is licensed under a Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by-sa/3.0/) and is available for others to use and adapt for their own events.” “and any other status protected by laws in which the conference or program is being held”

Liz Davis on recruiting people from the disability community to test the accessibility of your projects

LizDoesDesign https://www.lizdoesdesign.com/ Microsoft when a company talks about being inclusive… how we have one guy who broke his leg once can miss the mark, and edge toward sympathy instead of empathy it’s cool to be inclusive, it’s bad to not be inclusive But maybe you don’t know how, you may have no idea what you’re doing. Step 1: Talk to someone with a disability. For me, as a disabled person

Event organizer panel at MidCamp

Kevin - freelance frontend Dan Moriarty - Mike Anello - trainer, consultant in Drupal for 13 years Amy-June Hineline (volkswagonchick) April Sides - DrupalCamp Asheville in Drupal community through marriage for paid to help people, so help Mike with Florida, help with New Jersey, also in WordPress space. Mike: sponsor-only event yesterday? Very interested in that, as a way of adding value to sponsors. Heard that what happened in that room stayed in the room, but it was reall

Jack Garratt on why building a small non-profit site with Drupal 8 is OK

https://www.midcamp.org/2019/topic-proposal/my-ambitious-experience-drupal-8-rest-history Jack Garratt jack.garratt@debugacademy.com https://www.drupal.org/user/3577103 German socialism Geramn participation in the slave trade in 19th century Togo Debug Academy - D.C-based training, courses https://arcsyria.org/ “and of course, most important, the donate button in the top right corner” old D7 site had slideshow at the top (new articles and blog posts and calls to action) and straightforward content types: articles, blog posts, projects, and member organizations Debug Academy Students - 13 students.

People are obsessed with categorizing things

… the ‘is it a sandwich’ thing is proof. Not sure what, if any, talk or article i’d want to bring this up in, but if i do, it’s probably in service of the larger point that as much as we want and instinctively feel everything belongs in categories, there’s always edge cases. Also not sure what the canonical website to reference is… cuberule.com ? Seems to be degrading.

web component variations

As far as i can tell, there is no recommended, established way in web components to do variations, or at least, not where they talk about it as such that i can find by searching the web. What i want is basically a way to apply classes, or even, if feasible, to have the parts of the web component assembled slightly differently <textbox-in-image> <image>Image URL defined here</image> <textbox>Text goes here.</textbox> <variation>Accepts 'left' or 'right'</variation> </textbox-in-image> Which would produce something like:

Looking for sites comparable to Find It Cambridge in view of building a platform for finding town-affiliated activities and programs

[https://gitlab.com/agaric/find-it](Find It platform) https://www.smcfrc.org/San-Mateo-County-Family-Resource-Center https://www.orangecounty.net/html/fun_kids.html http://www.jumpstart.com/parents/resources/kids-resources Whom to talk to about Find It for their cities: http://www.citymayors.com/ https://icma.org/ - association of professional city and county managers and other employees who serve local governments Colorado local governments - https://dola.colorado.gov/lgis/ (both those sites are via student projects at https://www.lessonsonlocalgovernment.org/ !)

Exporting your content and data from various platforms

NationBuilder – Exports people, financial, and supporter action data to CSV files. Not clear that it can export other website content. Wix – Officially, “cannot be exported”, “not possible” Drupal – views_data_export module (CSV, Excel, text, XML), built-in rss.xml and JSON serialization Joomla – Extensions such as J2XML ActionNetwork – Implements the Open Supporter Data Interface (OSDI) NationBuilder – Exports people, financial, and action data to CSV files Weebly – 3rd-party tool XML file (same WXR as WordPress) Squarespace – Exports to XML file WordPress – Easily exports to XML file Ghost – Built-in JSON, 3rd-party Markdown Hotel California - Can never leave GoDaddy Website Builder – Worse than Wix or Hotel California; won’t even tell you there’s no easy way out.

Libre Software is Not Enough; We Need to Own the Computers, Collectively

The software that you can see, understand, and control Richard Stallman and other stalwarts in the libre software movement take the position that software running on other people’s computers (aka, the cloud) is inherently un-free. This is unfortunate. The Free Software movement embraces that writing software is inherently cooperative. The Platform Cooperative movement embraces that using software is inherently cooperative. IndieWeb movement is working on how you can build your own social

drupal 8 drush re-aggregate CSS

Can’t believe Drupal 8 doesn’t have this built-in. Wonder if advagg adds this? Anyhow it is possible to use drush evaluate PHP to do it: drush ev '\Drupal::service("asset.css.collection_optimizer")->deleteAll(); \Drupal::service("asset.js.collection_optimizer")->deleteAll(); _drupal_flush_css_js();' https://drupal.stackexchange.com/questions/205813/clear-only-css-javascript-cache-when-files-are-aggregated

Advanced CSS/JS Aggregation module

https://www.drupal.org/project/advagg/ (still has a Drupal 7 focus but has amazing support) https://groups.drupal.org/node/517292

How to add post-submission pages to webforms such as for a one-question survey on a confirmation page

Create a multipage webform, that saves on each page, with an un-advertised final page, so that the last page can be used for entirely optional post-submission questions (like, how did you come to find our popsicle stand?) ?submission=[webform_submission:sid] You – our clients, colleagues, and crazed adoring fans – are the reason we do what we do. We’d love to hear from you.

harvest include non-billable tasks on invoices

So i wrote to Harvest support: We’d like to be able to include non-billable tasks on invoices Is there a hidden way to include non-billable tasks on Harvest invoices? We want to provide a full record of work for clients who are receiving some kinds of tasks at a 100% discount, while not inflating our ‘billable’ hours. If there isn’t a way yet… could you make one? Thank you!

Scaling Community Decision-making talk submitted to MinneBar

Any libre software, volunteer, or even startup project will have elements of do-ocracy (rule of those who do the work) but not all decisions should devolve to implementors. Rather, a basic principle is that decisions should be made by the people who are most affected. Particularly when a decision strongly affects more than those who carry it out, therefore, we need better ways of making decisions that give everyone their say.

Notes on Deep Democratization of Capital with The Boston Ujima Project

Nia Evans Mean wealth of white families vs median wealth of Black families (that’s what she said, that may have been what she meant) $250,000 vs $8. Accessible report from the federal reserve bank of Boston Affordable housing situation bad and new plan addresses mostly only upper income. Huge disparity in assets and in cost of debt for white and Black households in Boston. Aaron Tanaka, executive director of Center for Economic Democracy, he/him pronouns.

how to select a scientifically random sample from a whole

https://pynative.com/python-random-sample/ Background reading Some background reading i did of tangential relation at best, or at any rate i ignored it all and went with the simplest thing for now. https://nbviewer.jupyter.org/github/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/blob/master/Chapter4_TheGreatestTheoremNeverTold/Ch4_LawOfLargeNumbers_PyMC3.ipynb https://engineering.ucsb.edu/~shell/che210d/python.pdf https://medium.freecodecamp.org/how-to-get-embarrassingly-fast-random-subset-sampling-with-python-da9b27d494d9 easily send post requests from command line

Juries are not evidence of a problem with sortition

Generally, the problems with our judicial system is the lack of access to jury trials, the overruling of jury verdicts, and the skewed representation on juries, not the concept of a jury of peers itself. http://rall.com/2019/02/22/dear-california-supreme-court

trying to see if facebook is worth it

Possible key metrics: visits from facebook posts visits from boosted (paid for promotion) Facebook posts. This requires at least one extra step: https://www.apasters.com/blog/how-to-track-facebook-ads-promoted-posts-with-google-analytics/ visits from e-mail? subscribe funnel (clicking subscribe, and succeeding) donation funnel from a totally separate problem with facebook, being able to post: We need responses to our questions. We specified we did not wish to use the Facebook login permission for this app but were unable to remove it, and needed help.

Did Bernie Sanders just lose the web developer vote?

Why do i only think how to frame things for twitter when i come to copy my outrage for posterity? . @BernieSanders and team (and if anyone can direct this to people who manage the website and communications) it’s incredibly irresponsible to launch the campaign after removing all content from your website. People might want to see your issues page: 1 reply 0 retweets 0 likes Reply 1 Retweet Like View Tweet activity

Resources for cooperative enterprises in Minneapolis and Minnesota

Resources Farm Commons (via how to start a worker-owned cooperative farm on resilience.org (Side note, was curious when i saw the resource directory and it’s a Drupal 7 site.) Cooperative Development Services: “CDS is a nonprofit organization created and governed by the cooperative community of the Upper Midwest.” http://www.cdsus.coop/services/cooperative-development/starting-co-op Cooperative Network Northcountry Cooperative Foundation, resources Assessment Cooperatives in Minneapolis: An inventory and assessment (2016, PDF) Government resources http://www.minneapolismn.gov/business/C-TAP In 2016, the City of Minneapolis expanded its Business Technical Assistance Program (B-TAP) to include services aimed at supporting the development of new Minneapolis co-operatives by launching the Co-operative Technical Assistance Program (C-TAP).

Some cases against Cloudflare

https://blog.torproject.org/trouble-cloudflare http://cryto.net/~joepie91/blog/2016/07/14/cloudflare-we-have-a-problem/ https://tech.tiq.cc/2016/01/why-you-shouldnt-use-cloudflare/

News articles and other information that makes the case for a land-wealth-tax-funded resident dividend

via https://twitter.com/lizzadwoskin/status/1096510455101571072 https://www.washingtonpost.com/business/economy/google-reaped-millions-of-tax-breaks-as-it-secretly-expanded-its-real-estate-footprint-across-the-us/2019/02/15/7912e10e-3136-11e9-813a-0ab2f17e305b_story.html All absentee or non-human landowners should be taxed at a much higher rate. It’s bearable for all actual human residents because they get the dividend. All this shell company nonsense becomes a waste. #ResidentDividend

Automatically posting to Facebook from your website

https://www.wpbeginner.com/beginners-guide/how-to-automatically-post-to-facebook-from-wordpress/ https://wordpress.org/plugins/accesspress-facebook-auto-post/ https://wordpress.org/support/plugin/accesspress-facebook-auto-post/

Drush make fails to get latest release despite repeated cache clears

This was for quite an old version of drush— Drush 5.4 Happily there’s an old issue to light the way: https://www.drupal.org/project/drush/issues/1816566 dr fixed it. (I’m using such an old version of Drush for the old and barely maintained Cultura project. It’s really cool though, anyone want something like that, please contact Agaric!) update drupal 7 install profile how to update drupal.org makefile Downloading https://www.drupal.org/project/drupalorg_drush didn’t work so i used composer to get another version of Drush just for this.

Getting both table doesn't exist and base table or view already exists for the same table

https://support.plesk.com/hc/en-us/articles/213931725-Dump-of-the-MySQL-database-hosted-on-the-Plesk-server-fails-mysqldump-table-doesn-t-exist-when-using-LOCK-TABLES add write permission for group chmod | 7155896 | 0 | php | %type: @message in %function (line %line of %file) @backtrace_string. | a:6:{s:5:"%type";s:45:“Drupal\Core\Database\DatabaseExceptionWrapper”;s:8:"@message";s:1116:“SQLSTATE[42S01]: Base table or view already exists: 1050 Table ‘cache_bootstrap’ already exists: CREATE TABLE {cache_bootstrap} ( cid VARCHAR(255) CHARACTER SET ascii BINARY NOT NULL DEFAULT ’’ COMMENT ‘Primary Key: Unique cache ID.’, data LONGBLOB NULL DEFAULT NULL COMMENT ‘A collection of data to cache.’, expire INT NOT NULL DEFAULT 0 COMMENT ‘A Unix timestamp indicating when the cache entry should expire, or -1 for never.

Getting your own personal app to be approved to push posts to Facebook

To get your own personal Facebook application able to publish posts on your behalf, you need to get approved for two key permissions. A lot of what it asks for doesn’t seem to apply for instances where you never ask a user who isn’t you (or isn’t one of the administrators of your page) to use the application. Facebook sort of acknowledges this and points to their Server-to-Server Apps documentation as a partial cheat sheet for what to answer.

Foss2serve

http://foss2serve.org/index.php/Main_Page Foss2serve promotes student learning via participation in Humanitarian Free and Open Source Software (HFOSS) projects. Humanitarian FOSS projects exist to meet a social need in areas such as health care, economic development, disaster management, ecology, and education. Becoming a participant in these projects is appealing to many people, but there is a learning curve that can create a daunting barrier to entry. Foss2serve aims to reduce that learning curve for instructors and students.

Fathom Analytics

Jeff Geerling ‏ @geerlingguy 37m37 minutes ago More “It’s not me, Google, it’s you.” After 11 years using Google Analytics on my personal website, I’ve switched off to using Fathom. Took me < 1 hour to build a (kinda robust) Fathom server on Digital Ocean with my new Ansible role + Docker container + Nginx. Blog post to come. 2 replies 0 retweets 10 likes Reply 2 Retweet Liked 10 Direct message

the pitches and proposals for Agaric Grassroots— er, Mycelial

For: Mass Global Action Black Immigrant Collective community housing Pitches We take care of your web site for a fixed rate and continually improve it. It’s more expensive than a lot of proprietary services—which start at free—but it gives you more power and freedom. Proposals Agaric will migrate four active websites to Drutopia. Legacy websites which are no longer used will be converted to static sites (viewable, but non-interactive and without easy editing capabilities) and hosted for free, forever.

Earl Miles on burnout in open source software coming from not being able to scale as a contributor to match a growing contributed project

https://twitter.com/merlinofchaos/status/1091063290883526656 Earl Miles ‏ @merlinofchaos 10h10 hours ago Earl Miles Retweeted Titus Brown Earl Miles added: As someone who invested a large chunk of time into OSS maintainership, and was paid to do it, the root cause of burnout from my perspective is not money. Don’t get me wrong, money is a factor, but factors are not root causes. Titus Brown @ctitusbrown Maybe? I am very much on board with the general point ($$!

Keeping ways for people to get into code without barriers

Alternate titles: Onramps to writing software Leaving ways for people to find their way into programming (she links to the point in her video where she defends (modern versions of) view source) https://twitter.com/jennschiffer/status/1089893228491476998 #writing #blog #Drutopia

Participatory budgeting as ambitious implementations of mass communication and democratic decision-making

Working software Decidim Barcelona https://www.decidim.barcelona http://www.geo.coop/story/barcelonas-open-source-platform-participatory-democracy Resources: https://www.theguardian.com/uk-news/2019/jan/17/power-to-the-people-could-a-citizens-assembly-solve-the-brexit-crisis (via https://twitter.com/itsmisscs) https://en.wikipedia.org/wiki/Community_budget https://www.participatorybudgeting.org/participatory-budgeting-in-cordoba-spain/ https://participedia.net/en/cases/participatory-budgeting-seville-spain https://www.transparency-initiative.org/uncategorized/2094/participatory-budgeting-spreading-across-globe/ https://ssc.wisc.edu/~wright/929-utopias-2018/wp-content/uploads/2018/01/Baiocchi-Ganuza.pdf

Websites for conucos (permaculture in taino)

From Wikipedia, citing Irving Rouse, The Tainos (1992): Fields for important root crops, such as the staple yuca, were prepared by heaping up mounds of soil, called conucos. This improved soil drainage and fertility as well as delaying erosion, allowed for longer storage of crops in the ground. […] Typically, conucos were three feet high and nine feet in circumference and were arranged in rows.

Configuration management notes

Like that they separate the configuration into a different file. Don’t like that they put it in an update hook. Me: See what config overlay does to reduce complexity It’s a different approach. Boils down to doing it the way it was done in Drupal 7; the part that would be in the database if it’s very controlled, it will work. If people hack, it would Do try out config distro

Output item in Twig for loop and exclude same item later

This person was told, just move it into a separate field: https://drupal.stackexchange.com/questions/247023/how-to-print-paragraphs-in-twig-template https://stackoverflow.com/questions/47936546/referencing-paragraphs-content-in-twig-file#47938356 Reference, but not useful: https://twig.symfony.com/doc/2.x/tags/for.html

Avoid unzip errors in a fresh composer update

drupal The archive may contain identical file names with different capitalization (which fails on case insensitive filesystems)Unzip with unzip command failed, falling back to ZipArchive class the process unzip -qq -d composer exceeded the timeout of 300 seconds. drupal The archive may contain identical file names with different capitalization (which fails on case insensitive filesystems)Unzip with unzip command failed, falling back to ZipArchive class To reproduce in a Drutopia context (or in any other project that adds a simple composer nuke script)

Making it easy to split up Paragraphs

A basic use case of paragraphs is interspersing different elements or components. Stick this video in here, throw that blockquote in there. This is especially important for us because we’re using paragraphs https://www.drupal.org/project/paragraphs_features/ It’s sufficient to enable the feature for paragraphs field experimental widget UI. Modal add mode is required for split text feature to work. Hmm… that’s great, but where is any of that stuff? Thinking ahead… we replace all of Paragraphs with web components that can be rendered server side, so we keep the benefit of when the content editor says stick this type of component here, a designer or developer can still change its HTML structure globally, without introducing the client-side JavaScript computational load.

Making icons accessible without having screen readers repeat text or speak garbled unspeakable info

a link and am using the ion icon web component), but i did it this way recently after some testing: <a href="{{ url }}" class="u-url" rel="bookmark" title="Permalink"><ion-icon name="link" aria-hidden="true"></ion-icon><span class="visually-hidden">Permalink</a> (albeit, my commit message was “Keep link icon for permalink from being ugly for screenreaders: This is a longer approach than what i think we’ll take though”) In your case just a title should be enough; again if this is being communicated in a way other than the symbol no title (for sighted or screen-reading users) is needed.

Adding a content editor role to Drupal 8 for a better out-of-the-box experience (including as contributed modules which can now set sensible defaults are enabled)

Originally posted at: https://evolvingweb.ca/blog/5-ways-improve-usability-drupal-content-editor-experience Here’s an issue for adding a content editor role at least to the standard installation profile; apparently i dropped the ball there so help appreciated! We’ve added a Content Editor role to Drutopia already; i would be in support of making that ‘functionality’ (a smattering of configuration) into a separate module so that all of us making modules (not just Drutopia features) can require the Content Editor Role module and be able to set sensible defaults, without having to wait on core.

Checked out Pleroma, an activity-pub based micro-blogging server that works with Mastadon, GNU Social, and anything supporting OStatus or ActivityPub

https://pleroma.social/ https://blog.soykaf.com/post/what-is-pleroma/ Via https://jacky.wtf/weblog/commitment-free-web/ at my bio there: working, sporadically, toward the most power possible for all people over their own lives. And hoping, for a lot of reasons, that that involves web sites somehow. Also re-checked out https://indigenous.abode.pub/ and am still not installing it because it’s not available in the F-Droid store. But if i ask swentel if i can help get it there he’d probably let me. Still it’s weird there’s no link to the code so maybe it’s not libre software?

GitLab Pages static sites do not work for projects in subgroups

https://gitlab.com/engineering/docs/workflows/. Once you enable GitLab Pages for this project, the site will live under https://engineering.gitlab.io/docs/workflows So claims https://docs.gitlab.com/ee/user/project/pages/getting_started_part_one.html But it’s actually not working at all. This is known. The fix is coming: https://gitlab.com/gitlab-org/gitlab-ce/issues/30548#note_132313651 OK, it was supposed to have deployed to GitLab.com on the first. Testing! Ah, i can’t wait until march. Moved this out of the resources group. Hmm but now basically all of the pages still have /resource/ in links to each other, and to assets.

Run arbitrary text through a Twig filter

To be able to take your text and run it through a filter in Twig, put it inside a Twig statement in quotation marks followed by the standard pipe then filter syntax: {{ ‘Read more’|escape(‘html’) }} If you need to use a standard Twig variable interspersed with the straight text or HTML you’re escaping or using some other Twig filter on, you’ll {{ ‘Read more and discuss at agaric.coop.’|escape(‘html’) }}

What's the most important work we can do today?

I want to work with organizations that are serious about having legitimacy because of a mass base: growing their membership and putting their members in charge. membership organizations We’ve built membership forums

User experience studies and recommendations for providing an option to change language

See https://gitlab.com/agaric/sites/agaric-com/issues/160 @later tell Gnuget OK i think the thing that was ‘breaking’, that was really making it difficult for me to continue styling the feed, was after the translation stuff was working, it caused the existing condition on the taxonomy term view (including feeds) - “Content: Translation language (= Content language selected for page)” - to make nothing show up. Maybe worth another blog post? Taxonomy term listings and feeds should be multilingual by default for sites doing ‘best effort’ translation, but the default configuration assumes complete translation basically?

Forcing HTML to be escaped with Twig

i did not have to intentionally do what the Twig documentation warns against (putting the escape strategy in a variable, so that Twig doesn’t know ) Likewise, {% autoescape 'html' %} was no help. In the Drupal context, what worked was first rendering, and then escaping: <description> {% for item in items %} {{ item.content|render|escape }} {% endfor %} </description>

More than static

Static sites to progressive web applications are now a continuum. Theoretically, this has always been true: enhance an HTML and CSS site enough with JavaScript, and you have an interactive application. In 2017, though, React-based Gatsby began calling itself a generator for “Static Progressive Web Apps”. Even more recently, Next.js and Nuxt.js have begun making lists of static site generators without even claiming the title. So on that long line from simple static site to progressive web app, how do you know where to stop?

Mad-libs style forms for Webform

It looks cool—can present a much more friendly experience for simpler or smaller forms—and can possibly give a higher conversion rate. It is also possible with webform ‘competitors’ such as Google Forms. Not really sure what the resolution is. It’s possible to do this already by overriding form element templates, but one would have to do a lot of not just overriding, but adding template suggestions to make overriding possible— but even th

Open Source Intelligence (OSINT) methods

https://www.randhome.io/blog/2019/01/05/2019-osint-guide/ Whitepages Plates are harder. Always, always verify information from the data broker sites from other sources. These sites make mistakes, and you can ruin an innocent person’s life. Protect yourself: https://github.com/yaelwrites/Big-Ass-Data-Broker-Opt-Out-List Voter registration - makes your address quite public. Minnesota needs just your name, birthdate, zip code to get address— and you can just try all the ZIP codes in a city. Land ownership Business registry Court documents So many fash have businesses, like owners of boat dealerships and such.

Tally module number formatting of all kinds for any integer field

allow number formatting as: Tally marks Roman numerals Fully written-out words Ordinals Fully written-out as words ordinals it should be a PHP library so it can be included many places; actually the data set should be JSON or something that can be included in anything TODO with Bridget

composer use different repository for dependency

https://stackoverflow.com/questions/46409609/how-to-override-required-version-defined-by-composer-json-hosted-on-packagist-or https://github.com/wikimedia/composer-merge-plugin/issues/95 https://gitlab.com/drutopia/drutopia_action/blob/8.x-1.x/composer.json tell composer to use git@ URLs https://gitlab.com/drutopia/drutopia_dev_template Allow developers to use Composer to build a development version of Drutopia https://gitlab.com/drutopia/drutopia/issues/240

MNsure website failures

Online service problems One of our internal services has failed. We apologize for the inconvenience. Please come back later and try to create your account again. Response Code : HE000050 and Final Decision Code = RF2: Cannot formulate questions for this consumer. Please reference Final Decision Code. RF2 : Cannot pin individual, not enough question to be generated, or questions were answered incorrectly. From https://www.mnsure.org/help/tech-issues/index.jsp M002 Error An M002 error may occur during the account creation process if you have recently moved or changed names.

Add External Media From Content Form Drupal 8

It should be possible to include media in your site without having to download it to your computer and re-upload it; if it’s already on the public internet your content management system should make it easy to grab.

Getting started with Hugo

Installing Hugo with apt resulted in version 40.1, instead of version 53. sudo apt-get remove hugo sudo apt install snapd snap install hugo --channel=extended vi ~/.bashrc And in there, added the line: # Add snaps to path export PATH="/snap/bin:$PATH" Save and then: source ~/.bashrc hugo version Which should say “Hugo Static Site Generator v0.53/extended linux/amd64 BuildDate: 2018-12-24T12:58:46Z” with a date within the past month and the same version number as at the top of https://github.

Accidentally taking over the Drupal Planet feed

<?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>Drupal.org aggregator</title> <link>https://www.drupal.org/planet</link> <description>Drupal.org - aggregated feeds in category Planet Drupal</description> <language>en</language> <item> <title>Agaric Collective: &lt;div class=&quot;flow_middle&quot;&gt;</title> <link>https://agaric.coop/%3Ca%20href%3D%22https%3A//agaric.coop/people/clayton-dewey%22%20hreflang%3D%22en%22%3Eview%3C/a%3E</link> <description>&lt;div class=&quot;flow_middle&quot;&gt; &lt;p&gt;Former school teacher turned technologist, Clayton now applies his background in linguistics, community organizing and web development as a user experience architect for Agaric and co-founder of&lt;a href=&quot;http://drutopia.org/&quot;&gt; Drutopia&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Clayton has worked with universities, open source companies, tech diversity advocates, prison abolitionists, and others to translate their organizational goals into impactful digital tools with meaningful content.

Paying to find bugs, but not fix them, nor for other needed maintenance and development, is not good for libre software

(Via HongPong) https://twitter.com/aionescu/status/1080945478059970560 serious political scientist Retweeted Alex Ionescu ‏ @aionescu 6h6 hours ago Continuing the lop-sided inverted economical incentives that reward breaking software instead of building software… totally agree with @duosec here. I see entire countries where kids learn how to hack but not build. At some point this will break CS 2 replies 41 retweets 68 likes Alex Ionescu ‏ @aionescu 6h6 hours ago I see @k8em0 is credited in there as well so just a shout out for providing some excellent commentary in there.

WYSIWYG Text Paragraph with Images Entirely Failing To Save with No Error Shown to User

Just this VERY suspicious JavaScript error, received when pressing the “Source” button and also when saving: TypeError: f[(f.length - 1)] is undefined[Learn More] ckeditor.js:879:1 z/</< https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:879:1 forEach https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:293:391 forEach https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:293:490 forEach https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:293:490 forEach https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:293:490 z/< https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:877:426 g https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:10:68 CKEDITOR.event.prototype</<.fire</< https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:11:428 CKEDITOR.editor.prototype.fire https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:13:67 toDataFormat https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:314:217 getData https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:1145:186 setup/< https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:361:1 g https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:10:68 CKEDITOR.event.prototype</<.fire</< https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:11:428 CKEDITOR.editor.prototype.fire https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:13:67 getData https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:269:95 detach https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:374:94 bind/< https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:28:298 detach https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:355:425 detach https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:1145:440 CKEDITOR.editor.prototype.editable https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:375:216 CKEDITOR.editor.prototype.setMode https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:340:223 exec https://agaric.coop/core/assets/vendor/ckeditor/ckeditor.js:1056:241 CKEDITOR.

Putting comprehensive h-card information on a separate contact page while keeping the main domain URL the canonical unique ID

19:16 <+mlncn> Is there any provision for putting (most?) h-card information on a contact page instead of the homepage? I’d expect that would be preferred to invisible metadata but i don’t see a way to tell bots ‘hey, look over there’ (and based on the first issue listed on https://indieweb.org/h-card there hasn’t been an answer to that) 19:17 <+jacky> what is representative h-card 19:17 <@Loqi> The representative h-card for a page is an h-card on that page that represents that page, if any, as not all pages are about a person or organization, a page might not have a representative h-card https://indieweb.

Making a web site's logo and home link fully accessible

read “graphic graphic graphic graphic graphic” somewhere in the navbar, the logo or the main menu. Ancient-looking but actually still good resources, just not relevant for this: https://www.ada.gov/pcatoolkit/chap5toolkit.htm Less ancient and good tips; also not covering my question: https://www.sitepoint.com/15-rules-making-accessible-links/

Resources for Decentralized Organizing

(A copy locally until he does something to stop jerks from defacing the hackpad, https://hackmd.io/FimgMPvTTIahbjas5xxc7A?both#) See the Twitter thread: https://twitter.com/RichDecibels/status/1078822810720468992 Resources for decentralised organising 🐒 Hi I’m Richard D. Bartlett! I’m writing a book about decentralised organising, finding lessons across diverse contexts, from social movements to formal workplaces. I recently asked on Twitter and on a mailing list for examples of decentralised organisations that have a public, transparent, well-documented handbook that explains how they work (e.

drupal 8 override administrative strings

For Drutopia/Agaric projects, we don’t commit settings.php nor (directly) settings.local.php, so the string overrides should be added here: Drupal 8 version of String Overrides module is technically working, just not tagged with an alpha or beta or release candidate: https://www.drupal.org/node/2236791

Outputting date published time for IndieWeb microformat markup in Drupal 8

<\t\i\m\e \c\l\a\s\s="\d\t-p\ub\l\i\s\h\e\d" \d\a\t\e\t\i\m\e="c">Y F d</\t\i\m\e> And in the preview shown after save, it looks great! <time class="dt-published" datetime="2018-12-22T15:05:42-05:00">2018 December 22</time> But in the source of something actually using it… it comes out like this: 2015 November 11 And this: <\t\i\m\e \c\l\a\s\s="\d\t-p\ub\l\i\s\h\e\d" \d\a\t\e\t\i\m\e="Y-m-d h:m:i">Y F j</\t\i\m\e> which previews like this: <time class="dt-published" datetime="2018-12-22 03:12:16">2018 December 22</time> ends up like this: 2015 November 11

Verifying IndieWeb microformats during local development with IndieWebify.Me running locally

This is the same as the instructions on the indiewebify-me respository itself with the addition of running it using PHP’s built-in internal webserver, which is only suitable for development, but we’re only testing development so it’s all good. Prerequsites PHP Install composer, globally (or if not globally, use ./composer.phar instead of composer in the below command). Instructions git clone https://github.com/indieweb/indiewebify-me.git && cd indiewebify-me composer install cd web/ php -S localhost:8000

What are the best equivalents to relatively unimportant hovers for mobile devices?

What i really wish there was is something that revealed hover states as you finger-scroll over something. Maybe way too much thought into this: http://www.javascriptkit.com/dhtmltutors/sticky-hover-issue-solutions.shtml which mentions https://caniuse.com/#feat=css-media-interaction before proposing a JavaScript fix.

Free software program for checking a website for broken links, internal and external

Newest list and explicitly open source: https://www.testingexcellence.com/9-open-source-link-checking-tools/ … but the first thing it lists is last updated in 2004! http://htcheck.sourceforge.net/ https://www.wpuniversity.com/blog/5-tools-find-broken-links The latest version of that; apparently still with expired dependencies: https://github.com/Nick-Rivera/broken-link-checker Not updated in 6 or 7 years https://github.com/k4ml/palu

template suggestions for container templates in Drupal 8

The below, and possibly improved, is incorporated into the Template Suggest module now includes container template suggestions. An example of what it will provide for a view: FILE NAME SUGGESTIONS: * container--view--case-study--page-listing.html.twig * container--view--case-study.html.twig x container--view.html.twig * container--no-parent.html.twig * container.html.twig /** * Implements hook_theme_suggestions_HOOK_alter() for container templates. * * Add suggestions, as by default none are provided. */ function twigsuggest_theme_suggestions_container_alter(array &$suggestions, array $variables) { if ($variables['has_parent']) { $suggestions[] = 'container__has_parent'; } else { $suggestions[] = 'container__no_parent'; } $element = $variables['element']; if (isset($element['#type']) && $element['#type'] !

Putting a stylesheet-defined but user-selected color at a partial opacity over a user-uploaded background image

It’s pretty tricky, i think the key is i’m going to have to translate all the defined colors to RGB (i mean, it’s the same, but not hexadecimal i think). https://stackoverflow.com/a/29833502/1028376 (can also be done with box-shadow - https://stackoverflow.com/a/24084708/1028376 - but we don’t need it doing different stuff on hover or anything (although maybe we should) and we’re already using linear-gradient so i feel a bit more comfortable) Something like:

making ones own tools for controlling ones own environment even under slavery

(Always good to see one’s idols get corrected, especially in even more radical ways, WEB Du Bois didn’t give slaves enough credit for their agency in keeping their ‘home’ piece of the plantation sanitary.) Maintaining a clean environment provided order to a life often chaotic, and enslaved people used the surrounding materials to manufacture their brooms. Though enslavers usually provided tools for economic production, enslaved people were required to furnish their own utilities for personal use.

vim replace tabs with spaces

set expandtab set tabstop=2 set shiftwidth=2 :retab (First three lines can go in .vimrc) https://stackoverflow.com/questions/426963/replace-tab-with-spaces-in-vim#427004

Understanding what people need so we can build things and practices that help more than hurt

“Perhaps it is more important to learn how to formulate questions than to have the answers.” - Angela Davis Credits For the “Perhaps it is more important to learn how to formulate questions than to have the answers.” - Angela Davis quotation, Cara DuBois‏ @cara_dubois retweeted by Mariame Kaba, https://twitter.com/cara_dubois/status/1061092178284429312

Software product roadmap best without specific features

John Cutler ‏ @johncutlefish Follow Follow @johncutlefish More Some of the best roadmaps… mention 0 features use no shorthand (e.g. “redesign V2.0”) are not on a timeline (have no dates) mention Who and Why tell a compelling story acknowledge uncertainty set qual and quant goals embrace incremental delivery #youcandoit! 6:42 PM - 6 Nov 2018 92 Retweets 331 Likes فيصلBenji MauerMichel Mix 🇳🇱 🇨🇴Michal SubelDaneel3001 🌎🌍🌏B. OyewoleMichael KutzKim BettiPhil Suessenguth 15 replies 92 retweets 331 likes Reply 15 Retweet 92 Like 331 Direct message Benjamin MelançonTweet text

Drutopia appeal to Agaric's legacy clients

hi, you haven’t paid for hosting in ten years! Do you think you could start paying $42/month to be on a platform that would give you much more? We’d hope to lower the price, especially if you don’t need all the new features, but we would greatly appreciate if you could step up for the first year.

Angie Byron on The Changelog podcast talking about Drupal

Angie “Webchick” Byron on The Changelog https://changelog.com/podcast/321#t=330 started by developers, for developers “In WordPress there might be seventy photo gallery plugins you choose from. In Drupal you build your photo gallery up from image modules etc. Mostly without code, but if you want it to integrate with something or do something crazy, you can write code” Drupal is for “if you were a VCR kid” “If you’re OK tinkering with things, and you kind of get a charge out of that, and kind of figuring out how stuff works, I think Drupal is a really really great solution.

stop using display suite layout and just use node template in drupal 8

Basically, this is ugly: layout–onecol–node-tile.html.twig compared to: node–tile.html.twig and i’m not using any DS features for layout and i’m pretty sure it’s adding extraneous variables weighing things down even more than Drupal already does and i just don’t want to do it and want it gone. Ugh.

what the hell did thunderbird do to lightning calendar

I first noticed that i couldn’t convert an e-mail to an event like i was used to. Then i found out that was because the whole damn calendar was gone. Why, Mozilla, why? After following these instructions - https://support.mozilla.org/en-US/kb/calendar-updates-issues-thunderbird - resetting extensions.installedDistroAddon.{e2fda1a4-762b-4020-b5ad-a41df1933103} i have a WebExtensions process permanently using 116% of my CPU (out of 1200%, but still). And, of course, still no calendar. My Lightning extension was reported as no longer compatible.

open vim in new terminal window

gnome-terminal -e 'vi filename' (Was interested in this because something was weird with Recoll, a local file search, and it wasn’t opening things right. Figured i’d just open in vim but vi %f ran the command vi path/to/file/filename just fine, but i never saw anything. Running it as gnome-terminal -e 'vi %f' works.)

Peter Woo advice for Drutopia and modeling being a great company leader

Books: “From Dictatorship to Democracy” Mattermost will never beat Slack. don’t pick a tool where the odds are against as well. scalable member self-organization Peter: What could be really compelling, if i posted a photo, and it generated $400 for this organization – that would be really inspiring for the member that posted it. It st power is very deceptive– it’s easy to project that they have the power to do everything

Pitching Drutopia to Agaric as the focus for November

From the better-late-than-never department. We have extra capacity, particularly for Micky, Chris, Clayton, and myself who are the most involved with Drutopia already. A membership + donation drive for Drutopia will help establish if it’s viable. Viable = $500,000 in annual income = 1,000 potential members. Signing up 100 groups in presales in one month would be solid proof of viability. (Signing up 1,000 in a month, covering us for a year, is unfortunately unrealistic.

How to conduct successful sales call

Notes from Preliminaries Investigating Demonstrating capability Obtaining commitment Investigating is most important. (Which is fantastic news for me, as that’s about all i can do.) Well i think that covers everything, Mrs. Peter does recommend SPIN Selling by Neil Rackham, as well as Getting to Yes.

Drupal Quality Initiative

Team designing Campaign Kit, our first contrib module. https://www.drupal.org/project/campaign_kit Functionality similar to http://classy.org

How to do documentation successfully as part of software development

Don’t despair This isn’t just a software problem Useful knowledge transfer is a whole field – education and epistomology Ida Rhodes, a coder of the univac one machine. Computers didn’t semantecs, translation Make an argument to convince others to document Side thoughts: A key part of documentation is searchability which goes back to my idea of searching first the places i know, and then the rest of the internet so being able to search an internal wiki, public documentation, and then below those results (if any) pull in results from DuckDuckGo

More Drutopia thoughts- values, justice, collaboration

Values, based on facts: There are massive We are not ashamed of our empathy. (borrowing from Kathleen Murtagh) Collaboration before code. Start the project on GitLab before there’s any code, even if there’s a strong chance that there won’t ever be any code. Based on who sponsors Drupal events, the money in Drupal is entirely with the specialized hosting providers. Drupal as a Service like Drutopia is potentially a way to bring some of that money into funding software development.

Pattern libraries in Drupal 8

zakiyadesigns zakiya on drupaltwig.slack.come Drupal since 2007 Chapter Three since 2015 Might not know as much as you – only touched them two months ago Slides will be posted: designsystem.digital.gov ux.mailchimp.com/patterns/typography starbucks.com/static/reference/styleguide Use cases - company with multiple digital assets, large sites, projects with strong branding guidelines, and any project with the budget Kind of fun More moving parts, more points of failure Drupal devs need to be more accessibility-minded than usual (?

Accessibility lessons from running clinics

motion-induced nausea - those full-screen background images… temporary - at work, can’t use sound or headphones alternative inputs - trackballs, sticks magnification … so you want to learn to use a screen reader, do you want to learn every form of don’t outsmart yourself a developer and then screen-readers differ don’t assume that developing for screen readers is the hardest problem, and that solving it will solve all your problems.

Advanced Webforms

http://bit.ly/advanced-webforms Jacob Rockowitz Tests Confirm Expectations Webform tests confirm rendering, processing, validation, settings (labels and layouts), and access. He had “Webform features” marked as deprecated on a slide he didn’t talk about. Create a test module with exported webforms. Write tests for every element and setting. Establish repeatable testing patterns. Organieze tests into groups/subdirectories. Having easy-to-repeat manual test is okay. “Some tests” are better than no tests. Webform has a lot of deprecated You should only write PHPUnit tests.

Australia's gov 2.0 settling on Drupal, building profiles and Amazee's role with lagoon

270+ sites great community public roadmap had mega meetups Both a SaaS program and a PaaS program [So finally know what to call what say the Agaric site is on: Drutopia Platform as a Service (“by Agaric”)]. you can take the modules as they are without any customizations or if you need any custom code, you are entering the PaaS world and you need to help maintain code, agency ICT review = internal change review

Configuration management in Drupal 8 multi-site and distributions

https://2018.badcamp.org/session/config-management-drupal-multi-site-and-distributions by shawndearmond no one loved features you’ll love using it in Drupal 8 because it does what it was originally meant to do What happens when you have a lot? Multiple Drupal Sites (distro, multisite, etc.) we give content editors an ability to place blocks SiteFarm - that’s what we call our service to the campus Use Acquia Cloud Site Factory to deploy all the code (600 times) we don’t deploy the config

Top-level takeaways from BADCamp

Need to apply “do no harm” to what we do with Drutopia. Jack’s concerns: Trying to engage grassroots groups in a technical project— they don’t want to, and shouldn’t want to. Using Drupal 8, which everyone says is only for enterprise, for smaller sites. Current feature set of Drutopia is small. Jack pointed out their $16K site for Audre Lorde project included CiviCRM, customizations, a custom theme, and more features than Drutopia has.

Twig templates in a parent theme extending a generic template will extend instead the overriding template from a child theme

I don’t even know what’s a bug or a feature anymore, when it comes to Drupal 8 subthemes interacting with parent themes. I’m pretty sure this falls into the category of a feature that was expected to be broken, but turns out to be working. Twig templates in a parent theme extending a generic template will extend instead the template from a child theme if the child theme overrides that generic template (using generic to mean the parent theme didn’t specify a namespace).

View modes for fields to allow easy definition of custom templates for sets of fields

I want view modes for fields. This revelation is courtesy of the stimulating environment at the frontend summit at BADcamp. slackbot [5:28 PM] Your file was uploaded — it’s safe and sound in Slack. Unfortunately your workspace doesn’t have any storage space left. To get more space, you can upgrade to a paid account or delete some of your older files. mlncn [5:28 PM] As a site builder, i want to be able to set what template a field should use.

Printing only what you haven't printed already is a real pain in Drupal 8 twig templates

So you’re like, OK, i have thirty fields that i’ve printed independently that i don’t want to print again. I’ll keep track of them in an array, and pass them into |without(). That doesn’t work. If you then say, OK, i’ll format the without like an array, one field on each line— if you leave a comma at the end, as is the right and proper way in PHP, it blows up with this error:

Break a for loop in Twig

The motivation of course is to reduce unnecessary code processing. Of course, it’s also almost certainly an indication that you need to move some logic out of the template layer and into code proper. But there does seem to be a way! https://craftcms.stackexchange.com/a/863/8942 Reason was this; doing it in code is sort of shown here: Checking for paragraph.bundle type in node template https://www.drupal.org/project/paragraphs/issues/2925077 Very similar: https://drupal.stackexchange.com/questions/194358/getting-current-node-paragraphs-content-from-block And see https://drupal.stackexchange.com/questions/186315/how-to-get-instance-of-referenced-entity for part of how to do it properly in code (rather than in templates, which appear to only be able to parallel the alternate, not-as-recommended approach there)

Get content type (bundle) of a node in the layout template

This basic piece of information is hidden in hard-to-find location, in under #node or, slightly better, at #bundle To access any property that starts with a # in a template, you need to use brackets and quotation marks. Here it is, {{ content[’#node’].bundle }} See also: 2018-10-22-get-template-suggestions-for-layout-templates.md https://www.drupal.org/docs/8/theming/twig/discovering-and-inspecting-variables-in-twig-templates

Get template suggestions for layout templates

The layout file itself that i’m overriding is in Drupal core: core/themes/stable/templates/layout/layout--one-col.html.twig but i think its use (instead of a node template) is in my case being triggered by Display Suite (ds). I’m not sure that matters. Vaguely related: https://opensenselabs.com/blog/tech/drupal-display-suite-layout-site-building-theming https://medium.com/@sarahcodes/custom-block-type-for-hero-banners-in-drupal-8-7d0adb665fd3 https://www.webwash.net/using-display-suite-drupal-8-how-to-customize-content-pages/ https://drupal.stackexchange.com/questions/266972/layouts-versus-theme-templates http://www.pixelite.co.nz/article/10-things-i-learnt-building-in-drupal-8/ - Suzanne https://www.chapterthree.com/blog/paragraphs-vs-eck-drupal-8 - Zakiya Khabir https://thejibe.com/articles/applying-bem-inspired-classes-to-your-drupal-8-theme - Leah Wagner /** Implements hook_theme_suggestions_HOOK_alter() for form templates. @param array $suggestions @param array $variables */ function THEMENAME_theme_suggestions_block_alter(array &$suggestions, array $variables) { // Block suggestions for custom block bundles.

Dependencies added in a patch applied by composer are not installed

I opened an issue: https://github.com/cweagans/composer-patches/issues/239 The error received initially was: [InvalidArgumentException] Package is not installed: drupal/config_sync-dev-2.x That error came shortly after in the sequence: Gathering patches for root package. Removing package drupal/config_sync so that it can be re-installed and re-patched. - Removing drupal/config_sync (dev-2.x) Deleting web/modules/contrib/config_sync - deleted This issue seemed relevant… https://www.drupal.org/project/viewsreference/issues/2848468 After the initial error, i could run composer update and composer update --with-dependencies without errors… but without installing config_normalizer either.

Rebasing a git branch with a submodule

Rebasing a branch with a submodule. I ran into some difficulty; generally it should be simpler than this. The first difficulty was the submodule was staying Before any of the below, make sure you have added, committed, and pushed the code in your submodule, from the submodule. Then and only then change into the directory with the main repository and do this: git checkout master git submodule update --recursive git checkout --recurse-submodules more-updates git rebase master git push --force

Generate a README file from information in composer.json

Much of what Drupal recommends go in a README is already part of the Composer JSON schema. Sometimes with different names of course: Dependencies as ‘require’, Recommended as ‘suggest’ Rather than maintaining this information in two places, i would like to generate (a section of) README files from the composer.json data. The dream, realized: https://gitlab.com/drutopia/writeme

PopOS application switch allows the mouse to steal focus when it isn't touched

This is a minor but annoying usability issue with PopOS; i hope it’s being tracked somewhere already. When the mouse pointer happens to be positioned anywhere in the middle row of the screen, and the keyboard (alt+tab) is used to switch applications, after a half second or so the pointer will cause the application under it to be selected— even though the mouse/trackpad has not been touched and so clearly there could not have been a user’s intention of going to that application.

a todo list as compelling as twitter

Something i feel i need for myself, sometimes, is a todo list that sucks me in, that puts my timewasting time to good use. This shouldn’t be that hard for me. I spin off a million ideas and things i’d like to do or just learn more about. But for reasons ranging from the technological (haven’t found a tool that can actually capture all the things i want to follow up on) to the psychological (unwillingness to be regularly reminded that i’ll never follow up on most of the things i think i want to do) i have nothing to channel distraction-needing time in a productive direction.

Constant inexplicably not known (comes up as undefined)

Notice: Use of undefined constant CULTURA_YEAR - assumed ‘CULTURA_YEAR’ in CulturaExchangeNode->__construct() (line 105 of /vagrant/web/sites/all/modules/contrib/culturaexchange_migrate/culturaexchange_item.inc). Other constants also defined in the same file used immediately after this work. https://api.drupal.org/api/drupal/includes%21module.inc/function/module_load_include/7.x Oh. The module wasn’t enabled. But still: why didn’t module_load_include work, or throw a warning? Oh, it doesn’t work for .module files: https://api.drupal.org/comment/47603#comment-47603

How to easily log exceptions in Drupal 8

watchdog_exception('example_module', $exception); Soon but not yet it should be: \Drupal::logException('example_module', $exception); See watchdog_exception replaced by \Drupal::logException() \Drupal::logger('drutopia_findit_search')->notice('Age terms are here: %what.', ['%what' => $age_terms ? 'yes' : 'no']); \Drupal::logger('drutopia_findit_search')->error('Unexpected result of term name: %term.', ['%term' => $term->name]); if (!is_array($types)) { \Drupal::logger('drutopia_findit_search')->error('%types is not an array.', ['%types' => $types]); } use Drupal\Core\Utility\UpdateException; /** * Install rabbit hole module dependencies. */ function nichq_community_user_update_8005() { $module_name = 'rabbit_hole'; if (!\Drupal::moduleHandler()->moduleExists($module_name)) { try { \Drupal::service('module_installer')->install([$module_name]); } catch (Exception $e) { watchdog_exception('nichq_community_user', $e); throw new UpdateException('The [module title] module is required but was not found.

Consider Rabbit Hole for Drutopia given half a reason

I’ve long liked the Rabbit Hole module, and the fact that Backdrop has brought some of its functionality into their core makes me want to give it another look for Drutopia: Hidden Paths for Content Content can now have its public path hidden from visitors, but still displayed elsewhere. This is useful for content that only is displayed as embeds, such as slideshows or heroes. This moves some functionality of the “Rabbit Hole” module into core.

Cooperation Planet: Libre Software and Platform Cooperatives

Cooperation Planet: Libre Software and Platform Cooperatives Abstract Outline Free Software has always been first and foremost about an ethical imperative: to respect the freedom of people using the software and the right of all people to learn from the shared knowledge embedded in software. But this has not been enough, as shown both by the continued vitality of proprietary software and the prevalence of the amoral ‘open source’ framing in Free Software.

Connecting to the MIT VPN with or without Cisco AnyConnect

Solution 1 Use OpenConnect; uninstall Cisco AnyConnect. https://askubuntu.com/questions/154699/how-do-i-install-the-cisco-anyconnect-vpn-client#154797 Solution 2 https://zngguvnf.org/2017-12-04--ubuntu-17-10-and-cisco-anyconnect.html In both cases, registering a device for Duo security account management is needed https://duo.mit.edu/ Messy details People seeing the same error on Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1576910 (granted i haven’t been able to connect yet but it’s nice to know that if i did it’d probably break anyway) View Full Version : [SOLVED] Ubuntu 12.04 VPN via Cisco AnyConnect fails after 2 minutes https://ubuntuforums.

Notes from talking to MASS Design Group sometime earlier in the fall

invited for a solo exhibition at the National Building Museum; 3,000 square feet. Will have monograph publication at the same time. May want major changes. Purposebuilt - copy-pasting into In the middle of an organizational restructure. Created a Narrative team: Curation and of our content - from conducting impact evaluations to writing a theoretical criticisma bout the field of architecture. The second one is how we communicate to the broader audience; who are we communicating to and how.

Explaining to Matt how to do configuration updates

On 10/02/2018 03:02 PM, Matthew Biewener wrote:> Hi Ben – I know that floating around in comments, wikis, IRC discussions, notes, and readme files are the keys to this question, but I think we need to once-and-for-all try to get this down pat. The goal (as always): to deploy recent updates to the distribution, while retaining any site-specific customizations. Please help me to understand… It is in one convenient place! The README, under “Updating configuration”:

Tracking down an invalid render array key warning in a Drupal 8 theme

ok the way to see what template is actually causing it, easily, i’m sorry to say i found the cause before i found the easy way to find it. The easy way should have been in the error message itself, but in my syslog output, which was exceedingly verbose, the path to the template causing the problem was truncated! helpful: https://drupal.stackexchange.com/questions/253594/user-error-attributes-is-an-invalid-render-array-key-when-rendering-image i just looked for things that cauld be doing what it says, rendering an {{ item }} without it being {{ item.

Add navbar-breakpoint variable to Bulma CSS framework

Turned out there wasn’t a good way to do it without having to override a lot of Bulma code. … until this merge request got accepted!!! Add and use $navbar-breakpoint variable; Fixes #1042 https://github.com/jgthms/bulma/pull/2109 This fixes the problem of a hard-coded breakpoint for when the hamburger menu becomes a full menu. This is an improvement; it gives Bulma users needed flexibility without requiring hacking, workarounds like redefining breakpoints that may have unwanted side effects, or code duplication.

In search of an SQL query to move the contents of one table into another table

I was so proud of myself: Getting the exact query i wanted basically on the first try: select * from taxonomy_term__parent where delta=0 AND entity_id IN (SELECT entity_id FROM taxonomy_term__parent WHERE delta=1); +---------------+---------+-----------+-------------+----------+-------+------------------+ | bundle | deleted | entity_id | revision_id | langcode | delta | parent_target_id | +---------------+---------+-----------+-------------+----------+-------+------------------+ | resource_type | 0 | 9 | 9 | en | 0 | 0 | | resource_type | 0 | 11 | 11 | en | 0 | 0 | | resource_type | 0 | 13 | 13 | en | 0 | 0 | | resource_type | 0 | 14 | 14 | en | 0 | 0 | | resource_type | 0 | 15 | 15 | en | 0 | 0 | | resource_type | 0 | 39 | 39 | en | 0 | 0 | | resource_type | 0 | 40 | 40 | en | 0 | 0 | | resource_type | 0 | 42 | 42 | en | 0 | 0 | +---------------+---------+-----------+-------------+----------+-------+------------------+ (really i ultimately wanted the ones i kept to have a delta of 0, but it is easier to keep track of the duplicates with the delta of 1, so i’m deleting the delta 0s first, to remove the duplicates, and then i’ll fix things up more)

Preventing kint from crashing your browser

https://www.drupaleasy.com/quicktips/drupal-8-module-debugging-taming-kints-output … in other news, shouldn’t we totally prevent Drupal from loading that many nested objects in the first place?

Remove outlines caused by mouse clicks

@LeaVerou I’m gonna start blanket adding the following rule to all my stylesheets: :focus:not(:focus-visible) { outline: none } Gets rid of the annoying outline for mouse users but preserves it for keyboard users, and is ignored by browsers that don’t support :focus-visible. source: https://twitter.com/LeaVerou/status/1045768279753666562

Connecting to anonymous chat

https://libcom.org/news/anonymous-anarchist-action-hacktivist-group-founded-10032011 It’s strange. Things that aren’t available through the Pop!OS store are available through apt. sudo apt-get install i2p https://geti2p.net/en/faq#irc

Posting to Twitter from a Drupal site

The eponymous Twitter module does not have a release for Drupal 8 yet (though it’s in progress). I don’t think it’s the preferred solution anyhow though. (The in-progress branch has been abandoned, and it is not going to be upgraded.) The option we’re taking with Drutopia is to build on the Social Post suite of modules. This means using the Social Post Twitter module to post to twitter. 2021 December 28 and we are working on upgrading and fixing Social Post Twitter for Drupal 9, really disappointed that the Drupal ecosystem is so weak now that no one got there before us.

Seeing template override suggestions for Views templates in Drupal 8

This still isn’t fixed as yet even in Drupal 8.6, but you can look up a list of what’s available in the Drupal API documentation: Views template files https://api.drupal.org/api/drupal/core%21modules%21views%21views.theme.inc/group/views_templates/8.6.x

How to get backlinks (the top referrers and what pages they link to) for a site, without having to hook it up to Google Webmaster tools first

It’s surprisingly hard to find out “what are the top links to my site?” Or more to the point, “what are the most-linked-to pages on my site?” This is probably because the SEO madness has turned all of this into an expensive battleground. https://moz.com/blog/find-competitor-backlinks-next-level https://moz.com/learn/seo/backlinks https://analytics.moz.com/pro/link-explorer/inbound-links?site=http%3A%2F%2Ffamilyandhome.org&target=domain The link:example.org syntax doesn’t seem to work in Google search anymore. Instead it wants to https://support.google.com/webmasters/answer/55281?hl=en … which requires your web site to be a ‘verified property’ with them first: https://www.

Doing a redirect in Drupal 8

https://api.drupal.org/api/drupal/vendor!symfony!http-foundation!RedirectResponse.php/class/RedirectResponse/8.6.x It appears we can simply pass in the URL and the status code! https://api.drupal.org/api/drupal/vendor%21symfony%21http-foundation%21RedirectResponse.php/function/RedirectResponse%3A%3A__construct/8.6.x Super simple: use Drupal\Core\Controller\ControllerBase; \\ ... inside some method eventually return new RedirectResponse($new_path, $new_status);

PHP Fatal error ContainerInterface must be compatible with Drupal\Core\DependencyInjection\ContainerInjectionInterface::create(Symfony\Component\DependencyInjection\ContainerInterface $container)

PHP Fatal error: Declaration of Drupal\redirect_404\Form\SettingsForm::create(Drupal\redirect_404\Form\ContainerInterface $container) must be compatible with Drupal\Core\DependencyInjection\ContainerInjectionInterface::create(Symfony\Component\DependencyInjection\ContainerInterface $container) Super simple problem with an incredibly scary message. On my line 40 (not the end of the file, line 184, as the message reported) i have this: public static function create(ContainerInterface $container) { Which is perfect except that ContainerInterface is not actually defined yet. To solve this all i need to do is add the missing ‘use’ statement at the top of my file:

Redirect goes to homepage instead of expected location

Turns out this incredibly frustrating developer experience is at least a core bug, albeit one that’s been hanging around for quite a while: Allow redirects repsonses to override ?destination query parameter https://www.drupal.org/project/drupal/issues/2950883 Workaround to the core bug: \Drupal::request()->query->remove('destination'); return new TrustedRedirectResponse('https://example.org', 302); https://drupal.stackexchange.com/questions/223482/force-redirect-in-submit-handler-even-though-destination-parameter-set " If the route name is not known use RedirectResponse with a URL. When redirecting to an external location, use TrustedRedirectResponse." https://www.drupal.org/node/2023537 https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Routing%21CacheableSecuredRedirectResponse.php/class/CacheableSecuredRedirectResponse/8.6.x https://api.drupal.org/api/drupal/vendor%21symfony%21http-kernel%21Event%21GetResponseEvent.php/class/GetResponseEvent/8.6.x drupal_goto() has been removed https://www.

What i had to look up to port a Drupal 7 module to Drupal 8

Some of it, anyway. This is… sort of wrong: https://drupal.stackexchange.com/questions/186156/drupal-8-variable-get#186160 https://www.drupal.org/docs/8/converting-drupal-7-modules-to-drupal-8/d7-to-d8-upgrade-tutorial-convert-hook_menu-and-hook https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Url.php/class/Url/8.6.x How to return a renderable array (Drupal won’t accept a plain string anymore) in a controller to display a page: $build['#title'] = 'Page not found'; $build['#markup'] = 'The requested page could not be found.'; return $build; From https://cgit.drupalcode.org/search404/tree/src/Controller/Search404Controller.php?id=3683c2e https://stackoverflow.com/questions/50862690/drupal-8-translatable-configuration https://www.drupal.org/docs/8/creating-custom-modules/defining-and-using-your-own-configuration-in-drupal-8 https://www.drupal.org/docs/8/multilingual/translating-configuration https://www.drupal.org/docs/8/api/configuration-api/configuration-schemametadata

Debugging PHP with Vim

Status: I have not gotten this to work. https://github.com/vim-vdebug/vdebug https://juampynr.github.io/vim-drupal8/#/11 https://www.mediacurrent.com/blog/debug-drupal-php-vim-vdebug/ http://docs.drupalvm.com/en/latest/extras/xdebug/ https://addons.mozilla.org/en-US/firefox/addon/xdebug-helper-for-firefox/ https://stackoverflow.com/questions/31778944/commands-that-work-in-vim-dont-work-in-vimrc#31779789

Using Guzzle to get a response code from another site in Drupal 8

https://guzzle3.readthedocs.io/http-client/request.html#head-requests Key thing as far as timeout vs connection_timeout is that as far as i can tell they are separate and additive; that is, you don’t have to worry about making sure that one value is longer than the other so that it doesn’t short-circuit it. See https://stackoverflow.com/questions/20847633/limit-connecting-time-with-guzzle-http-php-client#26845868 https://stackoverflow.com/questions/39526699/guzzle-difference-between-connect-timeout-and-timeout#44680364 >>> $client = \Drupal::httpClient(); => GuzzleHttp\Client {#10681 +"_serviceId": "http_client", } >>> $request = $client->head('http://www.example.com'); => GuzzleHttp\Psr7\Response {#10713} >>> $response = $request->send(); PHP Error: Call to undefined method GuzzleHttp/Psr7/Response::send() in Psy Shell code on line 1 >>> $request->getStatusCode(); => 200 https://github.

Include ALT text in the results of an in-page search with a browser

When i use ctrl+f to search within a page with Firefox or any other browser, i expect it to bring me to an image that has the text i’m searching for as alternative text. Apparently i’m alone in this. I’m finding nothing in searches. When there’s a page of picture-only profiles there’s usually alt text on each with the person’s name. When there’s a listing of sponsors there’s usually alt text with the company names.

Pass through requests to another (original older) site on 404 file not found

Hey someone has built exactly what i want, with even more advanced features: https://www.drupal.org/project/redirect_404 It’s called “Redirects 404” on the project page and the pluralization is the hint of the advanced bit— it actually tries the paths on the fallback sites, and if they aren’t there it tries other fallback sites and ultimately can give you a normal not found message keeping the attempting user on the first site they tried (the new main site).

Ensure Bulma columns don't cut off their content or lose all their padding

Turns out the problem was actually the negative margin that Bulma puts on columns (generally a div containing one or more column divs). I tried to find where i might have been messing with the padding of the interior column-classed divs but didn’t find it (presumably i did somehow though?). Added class is-marginless to the problematic div with the columns class. Remove negative margins ’leaking’ content with is-marginless Not clear why this was a problem.

How to set a Twig template variable that has a period in it

This: {% if is_front %} {% set page.navbar_branding = '' %} {% endif %} Results in this: [Mon Sep 17 11:58:59.989978 2018] [proxy_fcgi:error] [pid 17624:tid 140127653320448] [client 192.168.42.1:55090] AH01071: Got error ‘PHP message: Uncaught PHP Exception Twig_Error_Syntax: “Unexpected token “punctuation” of value “.” (“end of statement block” expected).” at themes/custom/family_home/src/templates/layout/page.html.twig line 17\n’, referer: http://www.family-home.local/ This fixes it: {% if is_front %} {% set page = page|merge({ 'navbar_branding': '', }) %} {% endif %}

In Bulma make the columns stack on larger devices than just mobile phones and tablets

Bulma’s responsiveness overview provided no guidance to me on how to make the columns stack a bit more aggressively on It’s all documented on this page specifically about columns responsiveness. Simply add the is-desktop or other modifier to the columns block-level element (OK, in 95% of cases, the div with the class columns).

Use abstraction, not metaphor, for software user interface design

So proclaimed Nick Disabato in Cadence & Slang (2nd edition) and he linked to https://www.wired.com/2013/06/the-future-of-design-is-more-than-making-apple-ios-flat/ … still not getting a heck of a lot of practical advice out of either source. I sort of get the concept…

Decrease vertical padding between stacked columns in Flexbox

flexbox decrease vertical padding between stacked columns The answer: simply put your padding on the outer container, not the inner container. In Bulma this means applying padding, at least the top and bottom padding, to .columns and not .column.

Gnucash changed every transaction time from 00:00:00 to 05:59:00

Repeat this about a hundred thousand - <ts:date>2014-01-13 00:00:00 -0500</ts:date> + <ts:date>2014-01-13 05:59:00 -0500</ts:date> My commit message noting this: “Using GnuCash 2.6.19 applying just the scheduled transactions changed every transaction time Not even sure this is related to https://bugzilla.gnome.org/show_bug.cgi?id=137017 or what.” Maybe because of this? We’ve just been discussing this in the developer list. We’ve decided to change the posted date timestamp to 1100 UTC regardless of timezone for 2.

prevent responsive images from upscaling

I had started searching for ‘prevent background images from upscaling’…. ok never mind not the problem i actually currently have. My problem is responsive images–srcset and all that In particular, somehow Drupal is add See also 2018-08-08-keeping-responsive-images-to-no-larger-than-their-natural-size-in-the-bulma-flexbox-based-css-framework.md https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-sizes Same person also posted about it here https://www.queryxchange.com/q/27_44991155/prevent-upscaling-with-scrset/ See also https://stackoverflow.com/questions/37125773/what-do-the-width-and-height-attributes-do-when-using-srcset-and-sizes Not particularly useful: https://html.spec.whatwg.org/multipage/images.html#srcset-attribute WordPress support in dealing with srcset in general, but not the upscaling issue i’m dealing with, https://core.

Error because pathauto update hadn't run yet

[Sun Sep 09 15:42:35.305120 2018] [proxy_fcgi:error] [pid 31623:tid 140491620071168] [client 192.168.42.1:42324] AH01071: Got error ‘PHP message: ArgumentCountError: Too few arguments to function Drupal\pathauto\VerboseMessenger::__construct(), 2 passed in /var/www/drutopia/web/core/lib/Drupal/Component/DependencyInjection/Container.php on line 266 and exactly 3 expected in /var/www/drutopia/web/modules/contrib/pathauto/src/VerboseMessenger.php on line 52 #0 /var/www/drutopia/web/core/lib/Drupal/Component/DependencyInjection/Container.php(266): Drupal\pathauto\VerboseMessenger->__construct(Object(Drupal\Core\Config\ConfigFactory), Object(Drupal\Core\Session\AccountProxy))\n#1 /var/www/drutopia/web/core/lib/Drupal/Component/DependencyInjection/Container.php(171): Drupal\Component\DependencyInjection\Container->createService(Array, ‘pathauto.verbos…’)\n#2 /var/www/drutopia/web/core/lib/Drupal/Component/DependencyInjection/Container.php(480): Drupal\Component\DependencyInjection\Container->get(‘pathauto.verbos…’, 1)\n#3 /var/www/drutopia/web/core/lib/Drupal/Component/DependencyInjection/Container.php(230): Drupal\Component\DependencyInje…\n’, referer: http://family-home.local/admin/structure/block/list/family_home?block_visibility_group=resource_listing

Unable to get NPM to install grunt locally in a way that actually works

grunt-cli: The grunt command line interface (v1.2.0)Fatal error: Unable to find local grunt.If you’re seeing this message, grunt hasn’t been installed locally toyour project. For more information about installing and configuring grunt,please see the Getting Started guide:http://gruntjs.com/getting-started https://gruntjs.com/getting-started … definitely says to install grunt-cli globally. Went ahead and followed https://gruntjs.com/project-scaffolding to create a brand new minimal project: mlncn@oryx:scratch$ mkd grunttest mlncn@oryx:grunttest$ grunt-init grunt-init: command not found mlncn@oryx:grunttest$ npm install -g grunt-init npm WARN deprecated coffee-script@1.

how does google recognize creative commons content

https://wiki.creativecommons.org/wiki/Marking_your_work_with_a_CC_license#Example:_Blog Ironically, Google does not include the rel tag in their declaration of their structured data guide as Creative Commons… https://developers.google.com/search/docs/guides/intro-structured-data .. it came up in search and i thought it would be a model for how to declare something creative-commons in a google-friendly way! Basically you just copy-paste code output by the chooser which will give you the `rel=“license”`` markup: https://creativecommons.org/choose/ Clayton found a meta tag for ‘rights’ but doesn’t think anyone’s really using it or looking at it.

Require a specific version of Drupal 8 core in a module

In your module’s composer.json file: In your .info.yml file: dependencies: - system (>=8.6) References https://www.drupal.org/project/php/issues/2714169 https://drupal.stackexchange.com/questions/234343/how-to-restrict-a-module-to-a-specific-core-version

Are there an affordable, ethical, science paper publishing platforms?

Briefly researched in response to request for affordable, ethical scientific journals to publish a quantum computing paper. https://arxiv.org/ see https://arxiv.org/help/moderation and https://en.wikipedia.org/wiki/ArXiv Directory of Open Access Journals (DOAJ) https://doaj.org/ The open source ones probably have higher standards; see https://news.mit.edu/2015/how-three-mit-students-fooled-scientific-journals-0414 Hi Fernando! How are you? I happen to be in Denver right now and will say hi to my cousin from you and Nancy! Mostly i’m living 500 miles north in Minneapolis so i expect to be hosting you soon, perhaps 2020 DrupalCon?

Is there an easy way to prevent merge commits that only exist because i forgot to pull?

git pull rebase if easy but go back to merging if not git pull fast-forward if possible git don’t create a merge commit if i just forgot to pull before committing I blank out the commit message and do a git reset --hard HEAD and then git pull --rebase and then push; but i wonder if there’s basically a way to automate that behavior. That is, when we know for certain the merge commit isn’t going to add any value, just skip it.

Basic rules of thumb about the tech industry in particular

https://twitter.com/patio11/status/936617376442753024 More Some people really benefit from hearing advice that everyone knows, for the same reason we keep schools open despite every subject in them having been taught before. In that spirit, here’s some quick Things Many People Find Too Obvious To Have Told You Already. 67 replies 2,809 retweets 6,836 likes Reply 67 Retweet 2.8K Like 6.8K Direct message Patrick McKenzie ‏ @patio11 1 Dec 2017 More Your idea is not valuable, at all.

Configuration management discussion on Drupal slack in the config channel

mpotter [Aug 28th at 9:26 AM] @mpp As one of the maintainers I still stand by that Blog. There is very little reason for normal projects to use Features in D8. I haven’t used it on a project in almost 2 years now. The only use case (maybe) is if you are building a product-like distribution (and really know what you are doing) 2 replies mpp [4 days ago] We’re looking into creating pieces of reusable functionality.

list all files that were deleted in a given commit

git see all deleted files in a commit https://stackoverflow.com/questions/424071/how-to-list-all-the-files-in-a-commit git diff --name-status ab1201b8a0133c508cece1d7acd634bca56fce55 ab1201b8a0133c508cece1d7acd634bca56fce55^ | grep ^[^D] | cut -f2 bash have a command act on each line of output https://stackoverflow.com/questions/16317961/how-to-process-each-line-received-as-a-result-of-grep-command (Chris said later that xargs can also do it, without a loop) bash while do on one line (just use semicolons, with no punctuation other than a space between the do and your command.) bash delete first character of each line

Promoting a LocalFirst web site platform built on Drutopia by Agaric

Dear @bealocalist, for a local Buy Local group the @agaric web dev coop is proposing building a fully featured site: business profiles, resource directory, multilingual — do you know other local first groups that would want in on a #platformcoop with this? #coops #localism 12:37 PM - 31 Aug 2018 1 reply 0 retweets 0 likes Reply 1 Retweet Like View Tweet activity New conversation Benjamin Melançon ‏ @mlncn 38m38 minutes ago More Support and design for #localfirst sites could stay local!

Restore selected files which were deleted in a commit

mlncn@oryx:nichq-community [config-updates]$ git rev-list -n 1 HEAD -- provisioning/site-configs/nnpqc/default/config_snapshot.snapshot.config_sync.module.system.yml 14184f9b47cc31fa722507a9c3d2889debaaa70e mlncn@oryx:nichq-community [config-updates]$ git checkout 14184f9b47cc31fa722507a9c3d2889debaaa70e^ -- provisioning/site-configs/nnpqc/default/config_snapshot.snapshot.config_sync.module.system.yml mlncn@oryx:nichq-community [config-updates]$ cp provisioning/site-configs/nnpqc/default/config_snapshot.snapshot.config_sync.module.system.yml config/default/ Thanks to https://stackoverflow.com/questions/953481/find-and-restore-a-deleted-file-in-a-git-repository See also: list all files which were deleted in a given commit

Re-apply parts of a commit that applied to certain files

This is the basic syntax, where the git commit hash is of the commit you want things to look like again. git checkout ab1201b8a0133c5 -- provisioning/site-configs/nnpqc/default/taxonomy.vocabulary.team.yml It’s trying to revert this: +++ b/provisioning/site-configs/mcehcoiin/default/views.view.user_admin_people.yml @@ -3,7 +3,6 @@ langcode: en status: true dependencies: module: roleassign user _core: default_config_hash: wTJRNzsLVTenCALONNlVfgm_pBOlqucSPuVFLOD56ck Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? y @@ -914,146 +913,3 @@ display: user.permissions max-age: 0 tags: { } page_2: display_plugin: page id: page_2 display_title: ‘Page 2’ position: 2 display_options: display_extenders: { } path: admin/people/list/emails fields: name: id: name table: users_field_data field: name relationship: none group_type: group admin_label: '' label: Username exclude: false alter: alter_text: false text: '' make_link: false path: '' absolute: false external: false replace_spaces: false path_case: none trim_whitespace: false alt: '' rel: '' link_class: '' prefix: '' suffix: '' target: '' nl2br: false max_length: 0 word_boundary: true ellipsis: true more_link: false more_link_text: '' more_link_path: '' strip_tags: false trim: false preserve_tags: '' html: false element_type: '' element_class: '' element_label_type: '' element_label_class: '' element_label_colon: true element_wrapper_type: '' element_wrapper_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true plugin_id: field type: user_name entity_type: user entity_field: name mail: id: mail table: users_field_data field: mail relationship: none group_type: group admin_label: '' label: Email exclude: false alter: alter_text: false text: '' make_link: false path: '' absolute: false external: false replace_spaces: false path_case: none trim_whitespace: false alt: '' rel: '' link_class: '' prefix: '' suffix: '' target: '' nl2br: false max_length: 0 word_boundary: true ellipsis: true more_link: false more_link_text: '' more_link_path: '' strip_tags: false trim: false preserve_tags: '' html: false element_type: '' element_class: '' element_label_type: '' element_label_class: '' element_label_colon: false element_wrapper_type: '' element_wrapper_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true click_sort_column: value type: basic_string settings: { } group_column: value group_columns: { } group_rows: true delta_limit: 0 delta_offset: 0 delta_reversed: false delta_first_last: false multi_type: separator separator: ', ' field_api_classes: false plugin_id: field entity_type: user entity_field: mail defaults: fields: false pager: false title: false pager: type: none options: offset: 0 title: 'People (Emails)' cache_metadata: max-age: -1 contexts: - 'languages:language_content' - 'languages:language_interface' - url - url.

Error preventing config distro updates on a Drutopia site: Argument 4 passed to WidgetBase null, called in Field/WidgetPluginManager

The site was a pretty old, early one but i had successfully updated it a couple weeks ago. I didn’t save the database (the update was done locally), though, and trying to either update starting from the live database or trying to import my previously-working configuration and then update both ran into this error on the config distribution ‘import updated configuration’ step: [Wed Aug 29 22:44:27.868323 2018] [proxy_fcgi:error] [pid 3034:tid 139934364858112] [client 192.

Posting to a Mailman 2 announce list from Drupal 8

… you just put your password in the header. And it only works with plain text. We just need to start using Mailman 3… Note it is possible to configure Mailman to stop sending plain text passwords back to people… eep. Suddenly realizing i didn’t really wanted to post to the list from Drupal, at least not right now. What i want is to let visitors to the web site subscribe to the list without ever seeing the horrific Mailman interface.

Deciding how to make your own website

Martha Jones ‏ @_MJones36 10h10 hours ago More So I want to learn how to build my own website. 1 reply 0 retweets 3 likes Reply 1 Retweet Like 3 Direct message Benjamin Melançon ‏ @mlncn More Replying to @_MJones36 ..now i want to build a website that’s like a choose-your-own-adventure giant decision tree for picking how to make a site: static (manual or generated? if generated which language/generator?) vs CMS (which language, OO or functional, framework), JavaScript or no, CSS framework.

How to elicit responses from people

Andre Sasser ‏ @MrsSasser Follow Follow @MrsSasser More Two years ago, I was saying “do you have any questions?”. Last year I switched to “what questions do you have?” It made a difference. Today I tried “ask me two questions”. And they did! And those ?s led to more ?s. It amazes me that the littlest things have such a big impact! 12:42 PM - 27 Aug 2018 370 Retweets 1,424 Likes Lizzy PadhiGeorgiaLHarperJill 🏞️🚤🌳🌲🍃🌦️Mark T.

Preventing duplicate imports in an Ubuntu photo manager

I haven’t yet installed a photo manager so i was staying agnostic, and see what photo manager suggested in the solution. https://askubuntu.com/questions/489951/how-to-remove-duplicate-imported-photos-in-shotwell https://askubuntu.com/questions/509133/how-does-shotwell-detect-duplicates

Add a class to a Twig link item in Drupal 8

{% set link_attributes = create_attribute().addClass('navbar-item') %} {% if items %} {% for item in items %} {{ link(item.title, item.url, link_attributes) }} {% endfor %} {% endif %} Simplified/abstracted from https://gitlab.com/agaric/patternlibrary/blob/master/agaric/templates/navigation/menu.html.twig Thanks to a comment on a somewhat related article: Submitted by gambry (not verified) on Thu, 06/14/2018 - 15:17 Also very useful and apparently not easily findable “How to add attributes to a link”: {% set attributes = attributes.addClass(‘button’) %} {{ link(link_text, link_url, attributes) }}

Top-level domain to use for local development sites?

So .test is at least reserved, if not for the purpose of doing web development on one’s own computer. By contrast, .local is not reserved and has more theoretical potential of conflict with operating systems or software abusing it for their own purposes already.

For the use case of a logo, is it better to inline an SVG object or do an img src file SVG?

Our static layouts from our excellent designer included an inline SVG (<svg version="1.1" id="logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 95 37" style="enable-background:new 0 0 95 37;" xml:space="preserve"> and then four <path>s and a couple of <rect>s and <circle>s and of course the closing </svg>). The theme we’re building on has an img src (and by default expects a logo.svg file). Which is better for a small logo that’s shown on every page?

Basic introduction to information security

InfoSec It’s about harm reduction. A good security culture is aware of the points of interest it needs to protect. (And doesn’t do unnecessary things for security’s sake.) Good security culture: Don’t talk to cops. Surprise birthday party, may have experience with that. Josh: Phone tree for TC-DSA housing, we choose not to have the phone numbers on Slack. Anything sensitive probably shouldn’t go over electronic information. Recognize when things aren’t urgent to be said over a line of communication.

Are variable-width fonts easier to read than monospace fonts?

Good grief. We need to some sort of people’s cooperative just to fund basic usability research it seems. How can such a straightforward and relatively important question, that’s also very easy to test, not have any well-known research citations? https://ux.stackexchange.com/questions/48753/does-the-use-of-monospaced-fonts-negatively-affect-legibility-of-article-text I finally searched in Google Scholar (not linked from the main google page as a search option anymore, yikes) in order to get actual scientific studies to cite: More recent research testing children’s reading efficiency also supports variable-width fonts over monospaced: https://www.

In Gnome Terminal, change Vim cursor shape for different modes

found my first “why neovim” - making the cursor shape tell you what mode you’re in is ridiculous in vim - https://stackoverflow.com/questions/14266346/how-to-change-vim-cursor-shape-while-in-different-modes-in-gnome-terminal - and just works automatically in nvim or https://hamberg.no/erlend/posts/2014-03-09-change-vim-cursor-in-iterm.html or https://stackoverflow.com/questions/10363010/how-to-change-vim-cursor-shape-in-different-modes

Using Bulma's responsive variables and mixins

The main thing is to be writing your SCSS in a place that’s loaded alongside Bulma’s Sass, so that you can access the variables and mixins. After that it’s just a matter of remembering how to write mixins in SCSS syntax while looking at Bulma’s Sass examples! (Note that the mixins really aren’t necessary for taking advantage of Sass’s responsive variables.) It’s a little annoying using Bulma for examples and inspiration, because it’s written using Sass’s sass syntax even though SCSS syntax, which stays much closer to CSS while allowing Sass’s goodness, is recommended.

Closing commenting on existing content in Drupal 8

In short: Just do it. This blog must be out of date - it makes it sound like it is very difficult to close/hide comments, in bulk, on content that already has them open. https://www.inmotionhosting.com/support/edu/drupal-8/comments/disable-article-comment To be fair, Drupal’s user interface also says the change will apply only to new content. mlncn cedewey: no rush, but could you take on tracking down a spinoff contrib issue in the how-the-heck-does-Drupal-not-already-do-this variety? 20:50 mlncn cedewey: So Family & Home doesn’t want comments.

how do i use Bulma variables in my own Sass?

This answer says to @import 'path/to/bulma/sass/utilities/initial-variables'; which will … work, but not if i change a variable. A brief aside on how Bulma initial variables work: They are all defined with !default at the end, which tells Sass to only use the value provided if the variable doesn’t already exist. That’s how you can override Bulma variables before you load Bulma.

How to load an asset from a parent theme after an asset from your child theme

Or, more generally, how to load a library in Drupal, or an element of a library, after another given library or component in a library. It’s easy to load a library before your library— just make it a dependency of your library: This will cause it to be loaded first. But what if you want it to be loaded afterwards? This is what we wanted to do with a subtheme of Bulma.

Preventing using the mouse in vim from sending it into visual mode and breaking copy capability

From my ~/Projects/mlncn/scripts/.vim_custom: " Allow the mouse to be used within terminal vim. " There is now officially no need for gvim. " Thanks to Chris Thompson and http://vim.wikia.com/wiki/Using_the_mouse_for_Vim_in_an_xterm " To keep copy-paste working use -r not -a https://unix.stackexchange.com/a/140584/171876 " Alternate solution see http://vim.wikia.com/wiki/Make_mouse_drag_not_select_text_or_go_into_visual_mode :set mouse=r … currently this still causes line numbers to be copied. I think i’ll comment this out from my vim_custom: " Turn line numbers on by default :set number And toggle it on with :set number and off with :set nonumber as needed.

Drupal 8 theme ignoring more specific templates or not loading in correct order

The template matching a specific suggestion, shown as a suggestion in the Twig debug output, is there, it’s just not being used. What’s suggested: FILE NAME SUGGESTIONS: * ds-1col--node--39.html.twig * ds-1col--node-blog-card.html.twig * ds-1col--node-blog.html.twig * ds-1col--node-card.html.twig * ds-1col--node.html.twig x ds-1col.html.twig x ds-1col.html.twig What’s used: themes/contrib/octavia/src/templates/ds/ds-1col.html.twig What’s available: ls -1 web/themes/contrib/octavia/src/templates/ds/ ds-1col.html.twig ds-1col--node-box.html.twig ds-1col--node-card.html.twig ds-1col--node-media.html.twig ds-1col--node-simple-card.html.twig ds-1col--node-small-card.html.twig ds-1col-wrapper.html.twig ds-2col--group-teaser.html.twig ds-2col.html.twig ds-2col--node-people-full.html.twig ds-2col--node-people-teaser.html.twig ds-2col--node-teaser.html.twig ds-2col--paragraph-update.html.twig ds-3col-stacked.html.twig I committed the latest, 8.3-era, patch from this issue, “Incorrect order and duplicate theme hook suggestions” and it miraculously applied against 8.

How to choose fallback fonts for different custom webfonts

This article was helpful, mostly because it pointed to this great resource. It’s not quite the survey of which fonts are most common on personal computers today (and the equivalents across platforms) but it’s a reasonably up-to-date list combined with the history, allowing a comprehensive set of fallbacks for some styles. Best of all, it’s actually showing what the fonts look like. Well OK it’s more out of date than i thought.

Open terminal from Ranger file manager

Quite simply, type: :terminal Then this pull request added the ability to set your system (eg in .bashrc i think) TERMCMD to be something like gnome-terminal --tab and have Ranger open wherever you are in a terminal tab when you type :terminal.

Runaway system76-polld process slowing down System76 Oryx Pro and preventing suspend

Spontaneously it seemed like the screen froze. I walked away, gave it a minute, and noticed that notifications still came through and even the time was updating and the wifi signal strength showed its normal fluctuations. Tried ctrl+alt+F2 and ctrl+alt+Fn+F2 to get over to a terminal, and nothing. Closing the lid did not bring on sleep mode. I’ve plugged in an external USB keyboard and mouse and these are working! The trackpad and built-in keyboard continue to be nonresponsive.

Subtheming Octavia to customize Drutopia

To see the original, we can grep grep -nHR hero-body node_modules/bulma/sass/ Which gives us four matches on “.hero-body”, all in the exceptionally expectedly named file node_modules/bulma/sass/layout/hero.sass. Here we can confirm that the style in question is defined using a hard-coded number: .hero-body flex-grow: 1 flex-shrink: 0 padding: 3rem 1.5rem https://ffwagency.com/digital-strategies-blog/power-extending-twig-templates

Finding which pages on your Drupal 8 site aren't being linked to from your menu or main listings

10:15 mlncn dinarcon: Good morning! Have you heard of a module for this use case? MASS is “looking for a site map just as part of a website audit to make sure that we are reviewing all existing pages, for example if there are active pages that are navigable to directly but don’t have a path from the homepage. Is there something like that available in the back end of the website?

The ongoing search for a solution that will search my open tabs and find the match i'm looking for

https://github.com/reblws/tab-search/issues/63 Expected matches not coming up in search I have 247 tabs open (so that might be the problem… it’s definitely a problem). Also, i just installed the plugin. If it takes some time to index, i apologize for this report. One of my open tabs is this one: https://gitlab.com/drutopia-platform/sites/family-home/issues/12 Which has the title Site launch checklist (#12) · Issues · drutopia/platform / sites / family-home · Gitlab When i bring up tab search (all settings default, fuzzy search on etc.

Battery test of the System76 Oryx laptop, 2018 17" edition.

Opened the lid at 7:32am starting from a full charge. It turned to 7:33 in less than a minute but we’ll spot this power-hungry beast the extra 30 seconds. Firefox and its affiliated Web Content processes are leading the pack at 2% to 15% of a processor apiece — out of a possible 1200% for the twelve processors this thing has. Atom is using a 2-12% for each of its two processors, and several virtualbox virtual machines are using a couple percents apiece.

Finding the correct web font to replace the text in an image

myfonts.com/WhatTheFont was incredibly bad. I mean matching an unmistakably serif font with five sans-serif fonts bad. https://www.fontsquirrel.com/fonts/TeX-Gyre-Pagella https://www.fontspring.com/fonts/fontsite/palladio-fs Turns out the archetype is Palatino.

testing jinja2 filters on the command line

I just wanted to figure out what xmlattr did and how it worked. {{ {'class': 'John the %!& Baptist'|striptags|lower|replace(' ','-')|urlencode|replace('%', '')}|xmlattr }} Long story short, i was using Django using its built-in filters, not Jinja2, and should have simply used |slugify.

Keeping responsive images to no larger than their natural size in the Bulma flexbox-based CSS framework

https://developer.mozilla.org/en-US/docs/Web/CSS/width Playing around in the browser, in Firefox’s inspector, width: -moz-fit-content fixed it for me. Searching for that vendor-specific property brought me to a cross-browser solution. But a good solution? I decided to ask: Is there / can there be a way to prevent responsive images from upscaling beyond their original size? #2045 This is about the Docs (but maybe Bulma). That is, i may just need help, or this might be a feature request.

looking at log files on MayFirst servers

10:35 hi all. is there some replacement for rsyslog that is the de facto standard for mayfirst? My expectation was to see rsyslog logging locally, but it was explicity removed some time ago, and I haven’t located a replacement. 10:36 <@jamie> wolcen: starting with debian stretch, we have purged rsyslog in favor of journalctl 10:38 jamie: oh thank god, there IS logging lol 10:38 <@jamie> :) 10:38 jamie: I was about to freak out :P 10:38 thank you!

Copy the path of a file from within the ranger file manager

So it says vim-like bindings, so naturally a first try will be to type ‘y’ (for yank, Vim’s copy command). And indeed, it brings up a list of further options, and the command to copy the filename, directory, or full path with the name and directory is right there… but you would need to understand how to write the command already to know what it does: p shell -f echo -n %d/%f | xsel -i; xsel -o | xsel -i -b I needed to get answers from support list archives to figure it out.

Notes on creating an Octavia subtheme for Drutopia

Currently we need a hook_library_info_alter() in order to replace Bulma’s inclusion of bulma CSS with our own (so we can use the power of Sass, including setting variables that are incorporated throughout the framework). https://gitlab.com/uc-davis/patient-hm-brain/blob/master/web/themes/custom/henry/henry.theme In this sense, we are following precisely how Octavia does it: https://gitlab.com/drutopia/octavia/blob/8.x-1.x/octavia.theme It’s a tad confusing in the sense that no matter how many subsubsubthemes you might go, you’re always overriding Bulma theme’s global css base, not any of the intermediate subthemes.

On starting a Kiva team to support cooperatives

fund cooperatives particularly https://www.kiva.org/teams I posted to the Co-op Principal Network (of cooperative investment clubs that invest in cooperatives) Off Topic: Anyone here also on Kiva and want to focus on cooperatives there? Kiva has recently started promoting their teams feature more - https://www.kiva.org/teams - and there is not currently a team focused on lending to cooperatives. For that to be possible at a large scale it might be necessary for Kiva, or more likely one or more of its partner organizations, to specifically provide support for cooperatives.

Start.coop startup accelerator application

Start.coop “provides strategic tools, knowledge and investment that empowers entrepreneurs in building transformative, scaleable, cooperatively owned businesses” Press release: Start.coop Launches Nation’s First Co-op Accelerator We have two (envisioned) cooperatives that can apply for this: The not-for-profit (ish) software cooperative The software as a service (LibreSaas) platform cooperative With the prospect of a little mentorship and money for one or both, it’s a good time to revisit the roles we each would like to play in one or both.

Automatically committing and pushing changes to a repository, as for this collection of raw notes

Quickstart This presumes you are on Debian, Ubuntu, or other variant. sudo apt install inotify-tools mkdir ~/Applications cd ~/Applications git clone https://github.com/gitwatch/gitwatch.git ln -s ~/Applications/gitwatch/gitwatch.sh ~/.local/bin/gitwatch echo "#!/usr/bin/env bash nohup gitwatch -r origin -L 1 /home/mlncn/Projects/agaric/raw-notes/ & disown" > ~/.local/bin/gitwatch-rawnotes chmod +x ~/.local/bin/gitwatch-rawnotes Background I installed http://etckeeper.branchable.com/ as i have before, and am letting it do its thing for my /etc directory, but decided to use a lighter, or at least more general, approach for my notes directory.

Preventing GMail from placing a grey octagon with a question mark in it next to your address in e-mails you send

LSoft seems to suggest that LISTSERV will make everything work just fine if you’ve independently DMARCd your email-sending domain. https://www.lsoft.com/news/dmarc-issue1-2018.asp LSoft is to be thanked for making this clear: “Note that in order to make DMARC work properly, you must deploy appropriate SPF and DKIM records as well.” So even though the GMail FAQ only required SPF or DKIM to authenticate sending domains (“DKIM preferred”) we might as well go full DMARC.

Restoring ctrl-c as copy in Atom with vim keybindings because sometimes vim goes to far

Vim is fantastic because it’s convenient. I use it constantly, and i know about three keybindings. But they are really convenient keybindings. What is not convenient is not being able to type control C to copy and control V to paste as one can absolutely anywhere else. In regular Vim this can take some work, but in Atom it’s just a matter of removing the ill-advised conflicting keybidings that vim-mode-plus and ex-mode provide.

vim open in new terminal tab

Apparently, i should stop trying to do this, and instead learn to use buffers. https://stackoverflow.com/questions/21331664/how-to-show-tab-close-button-in-gvim/21338192#21338192

An excellent use of a web font to complete a great design

Bridget and i both found the Sante Fe Institue website striking: A large part of that was the font, which was defined in the CSS as: Chap Regular,Helvetica Neue,helvetica,arial,sans-serif Clearly, it’s loading a web font with the special look, Chap Regular. I found the font in question: https://www.schick-toikka.com/chap and it got me thinking about custom fonts again. In particular, better options for the new Agaric site. See lists of libre fonts.

how to find the command line name of a program

locate -b pomodoro | grep bin (The program i was looking for the ‘machine name’ of was the Pomodoro Timer and this gave it right away as /usr/bin/gnome-pomodoro, where gnome-pomodoro is the name of program.) An interesting sidepath that did not result in anything useful I was sort of thinking there might be an equivalent to xkill that instead just gives the info on the window you click on… hmm now that i phrase it that way, and indeed in man xkill (after a lot of text discouraging you from ever using xkill, or at least avoiding its more dangerous options) comes the SEE ALSO list with xwininfo.

Keeping your Stripe-using application working no matter when and to what the account owner changes the API version

Started looking for “drupal how to print warnings in composer update” but fortunately there seems to be a better way: stripe programmatically check API version via https://stripe.com/blog/api-versioning (From now on i’m preventing this problem from happening again by explicitly sending the Stribe-Version header, an essential option that i think should be highlighted much more emphatically in the developer and API documentation. I was very glad to have found this blog post - https://stripe.

Opening selected text from anywhere in a browser to go to the URL or do a search with Ubuntu 18.04

The ability to create arbitrary commands and give them a shortcut is built into Ubuntu. Even better than the old Mac OS services menu, really. Open Settings » Keyboard. It will show a long list of keyboard shortcuts. Scroll to the bottom and press the + sign. Here’s what i typed in: Name: Open text in browser Command: firefox -new-tab about:newtab Shortcut: Alt + W Thanks to https://askubuntu.com/questions/254424/how-can-i-change-what-keys-on-my-keyboard-do-how-can-i-create-custom-keyboard/254442#254442 via https://askubuntu.

Working on GitLab wikis locally (it borrows GitHub's tech stack entirely) which means installing Ruby

TLDR: Just don’t use Ruby. Find something that wasn’t forged in the pits of hell to waste everyone’s time. Or for just the installation steps that work, in the order that makes them work the first time, here, i’m feeling really generous today: sudo apt-get install -y libicu-dev libreadline-dev zlib1g-dev rbenv install 2.5.1 echo 'eval "$(rbenv init -)"' >> ~/.bashrc rbenv global 2.5.1 gem install gollum Yeah that looks simple but only because i figured it out for you.

Exclude a page of sphinx documentation from being published

http://www.sphinx-doc.org/en/master/usage/configuration.html?highlight=exclude Do see the footnote: http://www.sphinx-doc.org/en/master/usage/configuration.html#id11 which explains: “A double star ** can be used to match any sequence of characters including slashes.”

Image color incorrect in resized image on my web site

(Some links, just to orient myself) Page link: https://massdesigngroup.org/work/national-memorial-peace-and-justice Original: https://massdesigngroup.org/sites/default/files/2018-08/Memory_11.jpg Resized: https://massdesigngroup.org/sites/default/files/styles/hero/public/2018-08/Memory_11.jpg Resized image (rather than screenshot) attached; it exhibits the same ‘darkening’ problem as the screenshot. Hi @bnueslein ! It looks like a tiny part of the darkening effect is due to just the compression. Because optimizing MASSDesignGroup.org for low bandwidth (access anywhere in the world) was a design priority, images are resized at 75% quality, which is a pretty significant reduction in quality, as you can see with the tree getting blotchier in these images.

Replacing or improving the graphical vim experience on Ubuntu

https://neovim.io/ but couldn’t figure out which graphical interface i should install (neovim-qt is available through the PopOS store, at least ) So i just changed the shortcuts for copy and paste to be like normal. Selecting text with the mouse and pressing Ctrl+C now works. I’m not sure i’ve ever used or needed anything more graphical out of my text editors than that. Changing the shortcuts was just a matter of Edit » Preferences and selecting the shortcuts tab.

Updating Stripe to fix broken API; see who updated the API and when?

Here’s the API upgrade that broke things: https://stripe.com/docs/upgrades#2018-02-05 Stripe really has a pretty awesome way of doing API versioning: https://stripe.com/blog/api-versioning It won’t Asked Stripe (through the on-page feedback thing, which usually gets answers) the question outright: Can i see who updated the API version and when? Or does the fact that it says “DEFAULT” mean it got updated to that automatically? Yes, trying to figure out who broke things ;-)

Link to create a new issue in GitLab with a specific issue template selected

gitlab.example.com/issues/new?issuable_template=Bug While we’re here, some documentation for issue templates that’s not so hard to find, but that i still had to search for. On issue templates in general: https://docs.gitlab.com/ce/user/project/description_templates.html To set a default title from within the issue template, use: /title Here is a default title Note that it is a default title. Unfortunately it’s not filled in for the edit window when it’s opened, but it will be used if the issue author leaves the subject blank [actually, TODO check this, can the form be submitted with the title blank?

List all commits in a git project release, including one made of many repositories

Git commits after last tag Git commits between tags Git commits before first tag NOTE: In complex repositories with more than one ‘first’ commit this may not work. See it put to use: https://gitlab.com/drutopia/hackysync/blob/master/list-commits-since-most-recent-tag.sh Sources https://stackoverflow.com/questions/12082981/get-all-git-commits-since-last-tag https://stackoverflow.com/questions/5863426/get-commit-list-between-tags-in-git#5863452

How to make a subtheme of Drutopia's Octavia theme

For Drutopia, we’re going to need to find another/automatic way to make certain Octavia’s two block templates are inherited. For now here is my subtheme’s .info.yml file: <?php // TODO: Make this file unnecessary because we will not allow deploying code to the platform /** * Implements hook_theme_suggestions_HOOK_alter for blocks. * * See "Inheriting Block Templates" in * https://www.drupal.org/docs/8/theming-drupal-8/creating-a-drupal-8-sub-theme-or-sub-theme-of-sub-theme */ function family_home_theme_suggestions_block_alter(&$suggestions, $variables) { // Load theme suggestions for blocks from parent theme.

showing Atom projects with different themes or styles so its clear which i'm in

https://atom.io/packages/project-manager https://stackoverflow.com/questions/36983176/atom-editor-theme-syntax-per-project-or-open-window I want my journal to appear differently from raw notes, for example. IF this works (hasn’t yet), update this forum question with the answer: @lcioffi a bit late on this reply, but it appears there is a way if you’re willing to install the Package Manager package, install some extra themes, and edit your ~/.atom/projects.cson file as shown in this answer: https://stackoverflow.com/a/37009049/1028376 Note: “Environment Specific Projects” is not documented but has nothing to do with this; do not enable/disable in the middle of getting this to work (enabling it made it expect the .

In Gitlab, how do i make it so issues are automatically labeled 'Needs final review' instead of closing the issue when merge request accepted?

https://stackoverflow.com/questions/43295151/creating-a-branch-from-issue-in-gitlab#43297769 … i know there’s an issue in GitLab’s own queue talking about this also, supporting workflows where instead of closed a new label should be added and a current label removed. This came up again (2019-01-10). if you don’t want those issues closed automatically, don’t put anything like “Fixes #177” in your git comments or merge request (which may be automatic; i feel like we’ve been through this before but i can’t remember if there was a setting to turn it off) i’ll try to keep a look out also; i guess we mostly haven’t been creating merge requests from issues.

dun and bradstreet now pioneering evil through incompetence

Welcome to Government iUpdate To safeguard your business identity, Government iUpdate has an authentication security protocol that establishes association between you and the business(es) you select and confirms you ‘are who you say you are’ by asking you to answer a few individual based challenge questions. Reminder, you must be a principal, owner, officer or responsible manager of the entity for which you are requesting to view, establish or modify.

making text in front of an image always legible

https://stackoverflow.com/questions/21580154/can-php-detect-if-an-image-is-too-light?noredirect=1&lq=1 From there, this approach would seem the most promising if we wanted to do something crazy like shrink the image down to 6 pixels by 4 pixels and potentially have text have a different color for each 16.7% stretch horizontally and each 25% stretch vertically: https://stackoverflow.com/a/21580560/1028376 A problem with that, and with any technique of doing this automatically where the first assessment of lightness or darkness of Lots of answers are for background colors, not background images:

find the open tab by title keyword search in Firefox

I’m realizing that the reason i felt i needed this at all is more because Firefox’s addressbar history search, which is usually fairly reliably in suggesting a switch to an existing tab rather than opening a duplicate tab, doesn’t seem to be working at all right now. If i can get that to work (maybe disabling various extensions such as Duplicate Tab Closer) maybe i won’t need this extension at all:

thoughts on git-backed content management system

I’ve said elsewhere that the ideal content collaboration experience for most purposes is not a wiki with revision wars, and certainly isn’t a comment box or contact form, but instead a simple user interface to suggest changes by editing a copy of the content, backed by a distributed version control system (which, for better or worse, in 2018 means Git). However, a single repository for a site is not a good model for most purposes.

Search for files containing multiple keywords in Atom or frankly anything

atom search multiple non-contiguous words across files ubuntu search full text of files in directory for multiple non-contiguous words Someone else looking for the same thing; i commented there: How to search for multiple terms in a file? This is why Tomboy is so hard to replace. The Unix philosophy is small tools working together. Where’s the *nix tool for quickly and easily searching a collection of text files using multiple keywords?

sphinx why is genindex empty

sphinx why is genindex empty … apparently because i wasn’t trying to add any words to the index. Fair enough! https://groups.google.com/forum/#!topic/sphinx-users/rcK9gwBiTOs

A browser extension to show a hidden element to people with the extension installed

I’ve got this idea i want to hide the Agaric-insider-specific links in our public documentation by default, but display it to us lucky few in the know (or anyone who views source). <aside class="they-live--agaric"> Agaric's secret browser extension to easily see these notes is documented in our internal wiki. </aside> (TODO check if this guide is up-to-date for Quantum) https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_second_WebExtension Related: https://stackoverflow.com/questions/12361236/building-an-add-on-to-hide-a-div-block-on-an-html-page

Search a directory with Atom

It’s wonderfully simple: ctrl+shift+F Thanks to https://discuss.atom.io/t/find-string-in-a-list-of-files/13269 It solves a problem i had with grep. Some of my note files contain huge long lines of dumped raw data. So they are very likely to match on a searched string, unlikely to be what i’m looking for, and—this is the problem—the one line that it matches on and that i’m being shown will be thousands of characters long, taking up screens and screens of terminal output, which makes it very hard to see if there were also more relevant results.

Using Markdown inside ReStructuredText

Short answer: There is no parser for blocks of Markdown that will work inside ReStructuredText, at least not that ReadTheDocs supports. Instead, we can make everything Markdown and embed bits of rst in there to get the referencing and other powerful capabilities Read the Docs uses to create documentation. Closest that Read the Docs supports is https://github.com/rtfd/recommonmark …their documentation is naturally where you’d expect it: https://recommonmark.readthedocs.io/en/latest/index.html See in particular: https://recommonmark.

Fix Harvest to update project budget based on retainer

It should be possible to ‘fix’ Harvest using its own API: https://help.getharvest.com/api-v2/projects-api/projects/projects/ Updating the project budget, above, when a retainer payment is recorded. I’m not sure if we can get Harvest to notify our app when a payment is recorded in order to trigger the budget update, and that’s pretty essential to keep the code reasonable (polling and comparing regularly would be unreasonable, in my opinion). Actually at Agaric we are generous, trusting souls, and we may want to update the project budget when we sent the retainer invoice, not when it is paid.

prevent index.php from being presented in Drupal 8 URLs to preserve beauty and prevent SEO hits

Here’s the commit diff from another project where we saw that, titled “Least scary code to redirect just extraneous index.php/” RewriteCond %{QUERY_STRING} (.*(?:^|&))tag=([^&]*)&?(.*)&?$ RewriteRule (.*) /search?terms=%2 [L,NC,R] + RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC] + RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L] + # Redirect common PHP files to their new locations. RewriteCond %{REQUEST_URI} ^(.*)?/(install.php) [OR] RewriteCond %{REQUEST_URI} ^(.*)?/(rebuild.php) Add the part that starts with pluses (but don’t include the pluses) to your index.php and let us know how it works.

Running sudo apt-add-repository returns sudo: "apt-add-repository: command not found"

Following the instructions at https://support.system76.com/articles/system76-driver/ i ran the following on my brand new System76, PopOS-running Oryx machine, and got a rather unexpected error: $ sudo apt-add-repository -y ppa:system76-dev/stable sudo: apt-add-repository: command not found Very strange. I definitely had internet, and it said simply the command wasn’t found, so it wouldn’t be a connection issue. Elsewhere i’ve seen references to an add-apt-repository command, and i tried that, just the command alone to see if i had it, and it said must run as root.

Writing an aside in Markdown

The recommendation of https://github.com/lord/slate is something like this: <aside class="searched-words"> markdown aside </aside> Per https://github.com/lord/slate/wiki/Markdown-Syntax

open a local git-committed file at its remote hosted git repository

Add command and alias for opening local files in their online gitlab or github repos Put the following in my .bashrc (actually my .bash_custom which i keep in version control ) # From TylerRick at https://github.com/paulirish/git-open/issues/54#issuecomment-404259397 # Requires https://github.com/paulirish/git-open be installed. git-open-file() { xdg-open "$(BROWSER=echo git open)/blob/$(git symbolic-ref --short HEAD)/$1" } alias gof='git-open-file' Update 2018-10-18 Here’s a much-improved version: Courtesy of: How to get the path of the current directory relative to root of the git repository?

Logging into a site that redirects to another domain but requires it to be the same session, with Firefox Temporary Containers enabled

There is unfortunately no way yet to Manually add a site to a container with the multi-account container plugin. I tried (in Firefox’s about:config) setting accessibility.blockautorefresh to true and setting network.http.prompt-temp-redirect to true and even setting javascript.enabled to false. No change in behavior; i was still whipped through the redirect page on login without a chance to stop it. The only thing that worked was changing (again in about:config) … something about redirects to 0 instead of 20.

Web sites and the meaning of the built environment

The meaning of Amos Rapaport in his book “The Meaning of the Built Environment”, users’ meaning is more important more than just anticipating a web developer’s toolkit of personas, user testing, and the like,

Gaining access to critical files on a Nexus 5 Android with a broken screen

recover two-factor authentication from cell phone nexus5 broken screen transfer freeOTP to new phone android search: use nexus5 with broken screen with external monitor Unfortunately most of these require that you have enabled Android debugging before the screen died: http://joyofandroid.com/unlock-android-device-with-dead-screen/ android install app remotely through google That just works through Google Play. Question is, will the new feature of asking permissions mean it can’t be used to see the screen?

Copy link previews instead of tracking link in Firefox

Not found anything yet. First result here didn’t work for Facebook: https://addons.mozilla.org/en-US/firefox/tag/redirect To look at: https://webapps.stackexchange.com/questions/22291/turning-off-google-search-results-indirection/22339

external battery pack for a beast of a laptop

external battery pack for laptop 19V 8 amp 150W http://www.tomsguide.com/forum/id-2339889/external-battery-pack-output-12v-16v-19v-20v-run-msi-gs60-ghost-notebook-19v-150-watt.html Nothing on this list will do it: https://www.lifewire.com/best-portable-laptop-battery-4050506 Still no…. https://www.bixpower.com/Bat-BP220-p/bat-bp220.htm Couldn’t find anything on “The Battery Geeks” — even their ultimate battery option - http://www.thebatterygeeks.com/product-p/ev-38c.htm - isn’t rated for this. So i wrote them: Do you have a 19V, 7.89A (or a 19.5V, 7.7A) battery pack that could power my System76 Oryx Pro? Didn’t realize how hard this would be to find when i got this new laptop— i didn’t even look at the power input specifications.

NICHQ NAPPSS login to data via community fail

Error Logging In Please contact the National Action Partnership to Promote Safe Sleep admin for help. Authentication process canceled Same error with no more detail in the logs: ERROR:social:Authentication process canceled [pid: 31087|app: 0|req: 2159/8178] 204.139.85.145 () {46 vars in 1425 bytes} [Fri Jun 29 18:03:57 2018] GET /user/complete/nichq/?code=1bf918ad542fed5aca9405b880e8cf8042d3077b&state=ckEoc7TXKJ8C7sSUGUupQanFhEN2lxUs => generated 0 bytes in 106 msecs (HTTP/1.1 302) 7 headers in 508 bytes (1 switches on core 0) So the main thing i noticed is that the site forced me to reset my password before it would direct me on to the

Ansible cannot access its own temp directory

tmp temporary Ansible user does not have access to /root/.ansible/tmp/ with become None of this was it: https://stackoverflow.com/questions/37880491/ansible-tmp-ansible-tmp-permission-denied https://github.com/ansible/ansible/issues/16385 https://github.com/ansible/ansible/issues/21562

asily figure out if you're writing valid Yaml

http://yaml-online-parser.appspot.com/ beuner mlncn: in a yml file, is [‘something’,‘another thing’] the equivalent of 20:11 beuner - something 20:11 beuner - another thing 20:14 mlncn beuner: uh… i don’t know. I try not to get creative with Yaml. mlncn beuner: but if you insist: http://yaml-online-parser.appspot.com/ 20:20 beuner :) 20:20 beuner thank you 20:20 beuner that’s great - so it’s just json 20:21 mlncn beuner: to my surprise, yes, it is equivalent 20:21 mlncn beuner: the tricky thing is the spacing and lines.

asily figure out if you're writing valid Yaml

http://yaml-online-parser.appspot.com/ beuner mlncn: in a yml file, is [‘something’,‘another thing’] the equivalent of 20:11 beuner - something 20:11 beuner - another thing 20:14 mlncn beuner: uh… i don’t know. I try not to get creative with Yaml. mlncn beuner: but if you insist: http://yaml-online-parser.appspot.com/ 20:20 beuner :) 20:20 beuner thank you 20:20 beuner that’s great - so it’s just json 20:21 mlncn beuner: to my surprise, yes, it is equivalent 20:21 mlncn beuner: the tricky thing is the spacing and lines.

Firefox manually add sites to Multi-account containers

If a site is redirected to another site as for login, and temporary containers is on to protect us from just these things, this can prevent us from ever logging into that site. MyBankWithBadWebsite.com in Banking container. When i log in, it redirects to MyBankWithBadWebsite-Login.net, which opens in a temporary container, then redirects me back to the original banking web site. I need to add MyBankWithBadWebsite-Login.net to the Banking container so that the login can complete successfully.

transferring files between two computers that are bloody next to each other

Bluetooth, as i have always believed, is worse than useless, but all this was so annoying i did give it another try. I transferred one 2.7 MB file successfully (after a couple obligatory bluetooth patented errors, but the ‘send to bluetooth’ function on Debian Mint anticipated that and had a retry button), took less than five minutes, which was exciting, but trying to transfer any more than that at a time failed every time.

saving files easily in atom

keywords: atom automatic filenames, command line create files quickly with date in title Using https://atom.io/packages/save-as-heading combined with Atom provides no help in ensuring that the keybinding goes to an actual command. https://flight-manual.atom.io/hacking-atom/sections/debugging/#check-the-keybindings Maybe https://atom.io/packages/project-folder helps me get to be in the right folder, so the file is saved in the right folder. But anyhow the key is being in the project folder you want the files saved to. See 2018-07-22-filename-from-metadata-for-save-as-header.md

New SSH keypair

After enough helpful blog posts referred to it, i finally did read (parts of) the ssk-keygen manual page myself: http://man7.org/linux/man-pages/man1/ssh-keygen.1.html I went looking for the guy who wrote about using non-standard key sizes, and found some other stuff first— had to switch to the other computer to get my history, as it did not come up in search at all. https://crypto.stackexchange.com/questions/37859/is-unusual-non-power-of-two-rsa-key-size-more-secure?noredirect=1&lq=1 https://crypto.stackexchange.com/questions/14725/does-it-make-sense-to-have-a-4000-bit-long-key?noredirect=1&lq=1

Present code not autoloading, class not found (clear composer-managed code PHP cache)

random class not autoloading PHP Drupal clear autoload cache PHP Drupal 8 drupal reload php composer autoload reload all php libraries drupal vendor This was the best answer it turns out (i tried it independently, but saw it on closing tabs): https://drupal.stackexchange.com/a/253462/4195 In answer to https://drupal.stackexchange.com/questions/216222/after-upgrading-the-autoloader-is-not-working Similar symptoms, probably different cause: Cached autoloader misses cause failures when missed class becomes available https://www.drupal.org/project/drupal/issues/2776235 Cached ClassMap entries not reset after registering new prefix https://github.

Timeout, fatal errors for config distro page

On two attempts in a row at going to the page… here’s the errors in the Apache error log: [Mon Jun 11 23:02:10.027936 2018] [proxy_fcgi:error] [pid 32225:tid 140373447911168] [client 71.36.155.24:56734] AH01071: Got error 'PHP message: PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/eccscoiin/site/vendor/symfony/yaml/Parser.php on line 672\n', referer: https://dev-eccscoiin.community.nichq.org/admin/config/development/configuration [Mon Jun 11 23:04:39.025010 2018] [proxy_fcgi:error] [pid 32226:tid 140373330413312] [client 71.36.155.24:56756] AH01071: Got error 'PHP message: PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/eccscoiin/site/web/core/lib/Drupal/Core/Config/InstallStorage.

Undefined index alter for advanced render causing white page

An undefined index notice for ‘alter’ in a drupal plugin / advancedRender() something is the only error in the log for a white screen of death. Oh, i just realized that means that the error triggering the fatal error (whitescreen) will not be captured by the Drupal (syslog) but only in the Apache error log. Here’s that error first: [Sun Jun 10 22:30:43.727462 2018] [proxy_fcgi:error] [pid 31684:tid 139877354010368] [client 172.58.142.163:49284] AH01071: Got error ‘PHP message: PHP Fatal error: Unsupported operand types in /var/www/drupal/web/core/modules/views/src/Plugin/views/field/FieldPluginBase.

Making an application out of a web site with Nativefier

Making an application out of a web site with Nativefier My preferred approach, after installing https://github.com/jiahaog/nativefier#installation of course: cd ~/Applications/** nativefier –name “RiparianZoneSlack” “https://riparianzone.slack.com”** Packaging app for platform linux x64 using electron v1.1.3 App built to /home/mlncn/Applications/RiparianZoneSlack-linux-x64 See how the icon file is stored: ls RiparianZoneSlack-linux-x64/resources/app/ Create a .desktop file for the application in ~/.local/share/applications vi ~/.local/share/applications/RiparianZoneSlack.desktop And add an appropriately modified version of this: [Desktop Entry] Comment=Chat space for Bridget and Ben Terminal=false Name=Riparian Zone Slack** Exec=/home/mlncn/Applications/RiparianZoneSlack-linux-x64/RiparianZoneSlack Type=Application Icon=/home/mlncn/Applications/RiparianZoneSlack-linux-x64/resources/app/icon.

Anti-phishing e-mail from MIT exemplifies how organizations train people to fall for phishing attempts

The famed research university, the Massachusetts Institute of Technology, would rather spy on its students, staff, professors, contractors and the like than keep them safe from scammers and phishers trying to steal their information. They sent everyone an e-mail where every link to more information has exactly the kind of URL you should look at and never, not ever click. On Thu, Nov 3, 2016 at 3:56 PM, John Charles <jcharles@mit.

Cultura site slow queries

Query_time: 0.271595 Lock_time: 0.000090 Rows_sent: 100 Rows_examined: 3672 SET timestamp=1421029618; SELECT n.nid FROM node n LEFT JOIN search_dataset d ON d.type = ’node’ AND d.sid = n.nid WHERE d.sid IS NULL OR d.reindex <> 0 ORDER BY d.reindex ASC, n.nid ASC LIMIT 0, 100; Time: 150112 2:27:21 User@Host: root[root] @ localhost [] Query_time: 0.033916 Lock_time: 0.000720 Rows_sent: 1716 Rows_examined: 3502 SET timestamp=1421029852; SELECT revision.vid AS vid, base.uid AS uid, revision.title AS title, revision.

date: 2018-07-22 title: Filename from metadata for Save as Header publish: true I filed this as an issue. It’s a big ask but i have hope because the maintainer has been exceedingly responsive. A common format to add metadata to markdown files is simply: key: value Regular content starts after a space. (Jekyll uses a variation with opening and closing --- lines, but if save as heading just looked for key value pairs before a space, it wouldn’t need any special casing to handle the Jekyll format.

date: 2018-07-22 title: Getting Git Interactive singlekey mode to work on Debian and Ubuntu publish: true missing Term::ReadKey, disabling interactive.singlekey Learning about Git Interactive singlekey mode and being reminded how early i was on the TIL bandwagon Via Sam Boyer via Jen Lampton i learned about “setting interactive.singlekey = true in ~/.gitconfig makes git {add,checkout,reset} -p soooo much nicer” which led me to https://github.com/jbranchaud/til/blob/master/git/single-key-presses-in-interactive-mode.md to understand it better which led me to https://til.

date: 2018-07-22 title: how to make Atom snippets work for markdown and unsaved files publish: true https://github.com/atom/language-text/blob/master/snippets/language-text.cson

date: 2018-07-22 title: OK so i just want a good collaborative Markdown editor publish: true Looks like this is something Drutopia is going to have to provide. In the running Standard Notes Realtime Collaborative Markdown Editor (experimental) The best option may be from leading LibreSaaS company Standard Notes, but their Realtime Collaborative Markdown Editor only exists as an experimental extension right now, and as they note the hosted version may only stay available to paying subscribers on their Extended plan.

title: trying to use file templates and an init script to provide a note template with a date date: 2018-07-22 publish: true Borrowing from the Date package code: https://github.com/dannyfritz/atom-date/blob/master/lib/date.js http://jasonrudolph.com/blog/2014/03/02/defining-atom-commands-in-your-init-script/ So really what i should do i guess is submit a pull request to Date to provide a service for getting its configured dates. Document a way to run commands (and from init.coffee) https://flight-manual.atom.io/behind-atom/sections/interacting-with-other-packages-via-services/ So this was my attempt, added to .

title: browser extension to edit textareas in browser with Vim date: 2018-07-23 publish: true https://github.com/jcubic/jsvi/blob/master/vi.js Found via this 2008 blog post, and it still exists as a sort-of-active project! (After perhaps a five year hiatus from 2008 to 2013.) The link in this post is broken though. https://www.labnol.org/internet/tools/type-vi-unix-text-editor-online-browser/3173/

title: delete from start to current line in vim date: 2018-07-23 publish: true dgg That will delete the current line and every preceding line. If you wanted to delete the current line through to the end of the file, that would be dG. See https://unix.stackexchange.com/questions/13904/how-to-select-delete-until-end-of-file-in-vim-gvim for more finegrained methods.

title: Get Github issue title from URL and format as Markdown link in Atom editor date: 2018-07-23 In writing about a GitHub issue i wanted to get the title of that issue and format it as a Markdown link— and i wanted that done automatically, for me. So instead of spending 5 seconds formatting it myself, i spent 15 minutes figuring this out. (It took longer, actually, because i kept being distracted by interesting but irrelevant packages.

2018-07-23 mailman allow multiple addresses Apparently that’s a thing in Mailman 3. Pretty please May First? https://support.mayfirst.org/ticket/13913

date: 2018-07-23 title: Make Terminal (and other Gnome tabbed applications) switch tabs with ctrl+tab publish: true The goal is to make Terminal behave like Firefox and Atom do. This is the answer: gsettings set org.gnome.Terminal.Legacy.Keybindings:/org/gnome/terminal/legacy/keybindings/ next-tab '<Primary>Tab' gsettings set org.gnome.Terminal.Legacy.Keybindings:/org/gnome/terminal/legacy/keybindings/ prev-tab '<Primary><Shift>Tab' Courtesy Simon Law (sfllaw)’s bug report comment’ via Francisco Presencia’s AskUbuntu answer, and verified by me for Ubuntu 18.04 (PopOS).

title: make that rather important part of Vim where you can type a colon and save and go to lines and search/replace etc. work date: 2018-07-23 publish: true Install https://atom.io/packages/ex-mode I made a pull request to improve the README. An aside: Vim is great because it provides ‘composability’— build powerful commands from simple small ones (delete three characters with d3c, copy (‘yank’) three words with y3w). See this exposition on the lessons of Vi.

title: show the actual command when running an alias command date: 2018-07-24 publish: true There might not be an easy way to see the aliased command automatically, but there is an easy way to see the aliased command. Say you had an alias ya, you can see the command that is run for that with: alias ya So after running an aliased command, if you’re curious about what actually ran, you can type:

2018-07-25 Entity Print cannot create PDFs on live with SSL peer verification enabled https://gitlab.com/nichq/nichq-community/issues/241 https://www.drupal.org/project/issues/entity_print?text=Failed+to+enable+crypto&status=All&priorities=All&categories=All&version=All&component=All https://www.drupal.org/project/entity_print/issues/2878181 https://www.drupal.org/project/entity_print/issues/2770735 https://www.drupal.org/project/entity_print/issues/2855292 Clarify SSL options https://laracasts.com/discuss/channels/servers/openssl-failed-to-enable-crypto-error-on-ubuntu-digital-ocean-droplet/replies/187923 apt see if package is installed https://stackoverflow.com/questions/1298066/check-if-a-package-is-installed-and-then-install-it-if-its-not much better to do: dpkg-query -l | grep php or you’ll be playing hide-and-seek all day (php7.1, php) … so that wasn’t the problem we had. Hmmm… https://stackoverflow.com/questions/14078182/openssl-file-get-contents-failed-to-enable-crypto#14078318

title: public vs private at Agaric (posted in a private note for now) date: 2018-07-25 mlncn, should the daily standup be public? both a public pad and shared on the public irc channel? 14:15 dinarcon_: well unlike pad.drutopia.org there’s no public list of riseup pads, so it’s public only in the sense of IRC people. So i think yes it’s OK how it is in the sense of it’s for ‘contractor-level’ Agaric-affiliates (realistically, only full time or temporarily full time contractors) 14:16 but stuff put there can’t really be deleted… it should be kept to what it is, just short notes of what we’re working on and links to issues that actually are kept private (so no putting public pads in there) 14:17 i’m hoping later this week / weekend to figure out what’s up with pad.

2018-07-25 widen scrollbars in Ubuntu 18.04 (Gnome) especially in Firefox I tried the stuff in https://askubuntu.com/a/827213/95056 … no effect yet, will check back in after a restart.

2018-08-01 gnome automatic terminal tab titles based on directory Got a good start in my mlncn/scripts/.bash_custom ! ## Set terminal title; keep pre-existing history prompts PROMPT_COMMAND='history -a; history -n; echo -en "\033]0;$(whoami)@$(hostname)|$(pwd|cut -d "/ " -f 4-100)\a"'

2018-08-01 talking with Paul Fulton We’re looking to build a platform that meets the needs of small and medium-sized not-for-profits at first, but really looking forward to how larger numbers of people work together to achieve ever more ambitious goals. Therefore both needs of nonprofits and diverse stakeholders are very much in our interest to learn more about. Formally, we’re likely to go with two cooperatives (software and platform), each with one class of stakeholders, although people in one class will be filling different roles (site owner, site development professional, software/platform maintainer).

2018-08-02 talking with Jessa Boyer about Visions Unite ops job co-own a busines with my partner lots of work that has to be done I went to school for entrepreneurship and business management I worked as an office manager 2005-2012; get all administrative tasks use peach tree; haven’t touched it in a while Lean Canvas? More than likely continuing education in operations management once a week My fiancee started it in 2007; i was helping him promote his business prior to being together.

Nonprofits exist as a way for philanthropists to offgas the wealth that they are generating in the service of harm and we in the nonprofit sector try to repair that harm but it’s toxic as if nonprofits can only exist if there’s a lot of the money that supports nonprofits, in many cases the majority, is coming from regular people but maybe 80% is coming from grassroots donors, but your organizational priorities come from the philanthropists and foundations that are funding your work– they’re running the show basically

Clayton mostly found stuff for his kids through Google and word of mouth knew people who worked at Swallow Hill School

2021-07-06-encompass-home-care-called Alecka - Case manager over at Framingham had placed a referral with us. Encompass Home Care as an option. We can provide skilled services including visiting nurse, therapist — about an hour long each, and a couple times a week. Not a long-term or an overnight service. That would be the same for any sort of skilled home agency. I will talk with Joan the case manager. Has she provided any information

title: Sound suddenty stopped working after a debian testing update date: 2021-11-02 sound broken on debian testing pulseaudio trying to fix it and breaking it further! Failed to enable unit: Unit file /etc/xdg/systemd/user/pipewire-media-session.service is masked. currently mostly working with pipewire but video is not working mostly? Update 2021-11-24 After several more times allowing Debian testing to install updates both audio and video are working.

drupal drush interactive shell load node not found undefined method It is ridiculous that at this point in modern Drupal’s development cycle to be searching for how to load a node… and getting bad information, and finding the correct update in random places like this: Replace Deprecated ‘\Drupal::EntityManager()’ in Install File [#3171312] | Drupal.org Node::load() is still supposed to work, but does not.

Drupal twig sandboxing get idempotent - fancy way of saying it does not change anything, but only gives you information. symfony - allow new methods in sandbox policy in twig (drupal 8) - Stack Overflow Source code: https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Template%21TwigSandboxPolicy.php/9.3.x And this information on change from calling it “whitelist” to “allowlist” is useful, but the documentation for the allow list in the first place is nowhere! "twig_sandbox_whitelisted_*" settings renamed and Drupal\Core\Template\TwigSandboxPolicy protected array members renamed to remove “whitelist” | Drupal.

Discord Community Guidelines[ ](https://discord.com/guidelines#discord-community-guidelines) Effective: March 28, 2022 Last Updated: February 25, 2022We created Discord to be a place where it’s easy to communicate genuinely, build relationships, and have fun hanging out. Our Community Guidelines ensure everyone finds belonging, but not at the expense of anyone else.These guidelines explain what is and isn’t allowed on Discord. Everyone on Discord must follow these rules, and they apply to all parts of our platform, including your content, behaviors, servers, and bots.

Shortcuts for pinned ('app') tabs in Firefox

This person was looking to prevent the pinned tabs from being pulled up by shortcuts meant to go to the first, second, etc. tabs (Alt+1, Alt+2, etc.) But i never use those shortcuts and had completely forgotten about them— and they’re the solution to my problem! Semantic letters might have been nice (something T for timetracking, say) but i can just move that important tab to the first slot, and reach it with alt + 1.