Some privacy related extensions may cause issues on x.com.
这句话暗示了隐私保护工具与主流社交平台之间的潜在冲突。这反映了数字隐私与平台商业利益之间的张力。用户安装隐私扩展通常是为了保护数据不被收集,但平台可能将这些工具视为干扰其数据收集和分析的障碍。这种冲突预示着未来网络环境中隐私保护与平台功能之间的持续博弈。
Some privacy related extensions may cause issues on x.com.
这句话暗示了隐私保护工具与主流社交平台之间的潜在冲突。这反映了数字隐私与平台商业利益之间的张力。用户安装隐私扩展通常是为了保护数据不被收集,但平台可能将这些工具视为干扰其数据收集和分析的障碍。这种冲突预示着未来网络环境中隐私保护与平台功能之间的持续博弈。
Some privacy related extensions may cause issues on x.com.
这句话暗示了隐私保护工具与主流网站服务之间的潜在冲突。这反映了数字时代的一个核心矛盾:用户想要保护自己的隐私,而平台则需要收集数据来提供个性化服务。这种冲突可能导致用户在隐私和便利性之间做出艰难选择。
Some privacy related extensions may cause issues on x.com.
这是一个令人惊讶的声明,暗示社交媒体平台可能主动阻止用户使用隐私保护工具。这可能表明X平台的数据收集策略与用户隐私保护之间存在根本冲突,值得深入研究其商业模式与用户权利的平衡问题。
Some privacy related extensions may cause issues on x.com.
这是一个令人深思的矛盾点:本应保护用户隐私的浏览器扩展反而可能导致平台功能失效。这暗示了X(前Twitter)的某些功能可能依赖于数据收集,与用户隐私保护存在根本性冲突,反映了数字服务中隐私与功能的持续博弈。
Some privacy related extensions may cause issues on x.com.
这句话暗示了一个令人深思的悖论:用户安装隐私保护工具(如广告拦截器、隐私增强扩展)来保护自己的数据,但这些工具反而可能阻止他们访问平台。这揭示了平台利益与用户隐私保护之间的冲突,以及现代互联网服务对用户数据的依赖程度。
Plugins are ways of adding new languages or formatting rules to Prettier. Prettier’s own implementations of all languages are expressed using the plugin API.
Starlight provides a custom Markdown syntax for rendering asides. Aside blocks are indicated using a pair of triple colons ::: to wrap your content, and can be of type note, tip, caution or danger.
Last, but not least, we have our own extensions to the language. As explained in the previous post on this series, this is code that could be part of the language but, for some reason, it’s not. In the case of PHP we can think, for example, of a DateTime class based on the one provided by PHP but with some extra methods. Another example could be a UUID class, which although not provided by PHP, it is by nature very aseptic, domain agnostic, and therefore could be used by any project independently of the Domain.
And, writing is the foundation of media. Everything you see online from posts to videos to advertisements start with writing. Media is where the attention is.
Media is the foundation of many businesses. Media is where attention goes to. Businesses need attention (to sell). In this sense, a business is indeed an extension of the self (similar to how media extends the self).
A business is the storefront of your value. It is the public display of yourself, your goals, and your values. Businesses are an extension of yourself.
Business serving as an extension of the self. This, though, applies mostly for one person businesses.
Also see how media extend human beings Understanding Media: The Extensions of Man (1964)
# This is manual way to describe complex parameters parameter :one_level_array, type: :array, items: {type: :string, enum: ['string1', 'string2']}, default: ['string1'] parameter :two_level_array, type: :array, items: {type: :array, items: {type: :string}} let(:one_level_array) { ['string1', 'string2'] } let(:two_level_array) { [['123', '234'], ['111']] }
building a robust Chrome extension that effortlessly captures full-page screenshots, providing users with a seamless and enhanced browsing experience.
Enable ActiveRecord unsigned integers to use 8 bytes instead of 4. This fixes the ActiveModel::RangeError problem where AR models with perfectly fine 8 bytes primary keys are taken for ActiveModel::Type::Integer with a default limit of 4 bytes.
hashie
ActiveRecord::Base.normalizes declares an attribute normalization. The normalization is applied when the attribute is assigned or updated, and the normalized value will be persisted to the database. The normalization is also applied to the corresponding keyword argument of query methods, allowing records to be queried using unnormalized values.
Guess I don't need to use mdeering/attribute_normalizer gem anymore...
I’ve heard-suggested that ActiveSupport, which does a ton of monkey-patching of core classes, would make potentially-nice refinements. I don’t hold this opinion strongly, but I disagree with that idea. A big value proposition of ActiveSupport is that it is “omnipresent” and sets a new baseline for ruby behaviors - as such, being global really makes the most sense. I don’t know that anyone would be pleased to sprinkle using ActiveSupport in all their files that use it - they don’t even want to THINK about the fact that they’re using it.
Rack::Session was moved to a separate gem. Previously, Rack::Session was part of the rack gem. Not every application needs it, and it increases the security surface area of the rack, so it was decided to extract it into its own gem rack-session which can be updated independently.
https://addons.mozilla.org/en-US/firefox/addon/swift-selection-search/
Swiftly access your search engines in a popup panel when you select text in a webpage.
A quick UI method for selecting text and then searching within it using a variety of engines, wikis, etc.
But it does not work, because the association with authors will return empty authors for the Material as the materials are also soft deleted.
The problem is that Globalize knows nothing about acts_as_paranoid. You can delete a Material, and it should delete the translations, but when you try to recover the Material then there is an error because of how the translations are implemented and the order in which the translations and the Material are recovered. Which record should be recovered first?
Remember that the Material has all of its translations for the title in a table that just got soft deleted. So the correct answer is “nil”. The title of the delete material is nil.
class Project< ApplicationRecord belongs_to_many :employees end
add_column :videos, :tag_ids, :bigint, array: true Tag.has_many :videos, array: true
Probaly still prefer: https://github.com/hashie/hashie over this
Post about how to modify keyboard shortcut's for Brave browser extensions
Yes, using custom tags. Example in Python, making the !join tag join strings in an array:
I created a gem called rspec_n that installs an executable that will do this. It will re-run the test suite N times by default. You can make it stop as soon as it hits a failing iteration via the -s cli option. It will display other stats about the iterations as well.
We overload the meaning of "GFM" to mean "GitLab Flavored Markdown", which is a superset of GitHub's version. However it can cause confusion as they are not the same thing.
supports standard Markdown (with some minor modifications) and various extensions that have been made popular by the PHP Markdown Extra package and Maruku
https://addons.mozilla.org/en-US/firefox/addon/epubreader/
A browser extension for reading ePub files in Firefox.
t.datetime :seen_at, default: { expr: 'NOW()' }
Define table structure (columns and indexes) inside your ActiveRecord models like you can do in migrations. Also similar to DataMapper inline schema syntax.
not as good/useful as some other gem options/approaches, such as the one that adds a data method per migration, or that lets you tag with :post_deploy, etc.
Referred to me by Mark Grabe.
unfortunately only iOS and Mac
see instead: - https://addons.mozilla.org/en-US/firefox/addon/enable-selection/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search
and calls .unarchived and .archived appropriately when passed an ActiveRecord relation.
Many of the types here should have been built-in. You can help by suggesting some of them to the TypeScript project.
This looks like a bookmarking service that is billing itself as a digital commonplace book. I'm not sure about the digital ownership aspect, but it does have a relatively pretty UI.
Looks like it works via a Chrome extension: https://chrome.google.com/webstore/detail/commonplaces-your-digital/ckiapimepnnpdnoehhmghgpmiondhbof
The NoScript extension for Firefox mitigates CSRF threats by distinguishing trusted from untrusted sites, and removing authentication & payloads from POST requests sent by untrusted sites to trusted ones. The Application Boundary Enforcer module in NoScript also blocks requests sent from internet pages to local sites (e.g. localhost), preventing CSRF attacks on local services (such as uTorrent) or routers.
The Self Destructing Cookies extension for Firefox does not directly protect from CSRF, but can reduce the attack window, by deleting cookies as soon as they are no longer associated with an open tab.
flancian has some instructions for setting up Promnesia for various platforms.
We continued improving our support extending the Markdown renderer in Notebooks.
_Underline_
I really like that they allow this. How come most other Markdown flavors (including GitHub, GitLab) don't provide a way to underline text?
# Parallel Ruby universes ("Rubyverses") - A proposed interface for # parallel, "semi-private" method or method-and-data spaces via # "closely associated" objects.
possibly similar solution to ActiveSupport::Concern?
A proposal to specify the path for bury with classes as values of a hash arg: {}.bury(users: Array, 0 => Hash, name: Hash, something: 'Value') # {user: [{name: {something: 'Value'}]} So all absent nodes could be created via klass.new
Didn't understand it at first, but now I think it's a pretty clever/decent solution.
Just a bit more verbose than one might like...
At first I had reservations about the fact that this requires you to pass a hash ... or rather, once you start using a hash as your "list", you can't just "switch back" to an array (a "problem" I've noticed in RSpec, where you have some tags that are symbols, and some that are hashes: you have to list the symbols first: describe 'thing', :happy_path, driver: :chrome):
{}.bury(users: Array, 0, 'Value')
But I think that's okay in practice. Just use a hash for all "elements" in your list:
{}.bury(users: Array, 0 => 'Value')
No docs?!
[ Some docs here; First saw it here: ] https://bugs.ruby-lang.org/issues/11747#note-7
For pluggability, an endpoint is split into a Protocol and an Adapter part. This separates generic logic from environment-dependent code.
Note how a handful of default steps lead into six standardized termini, allowing to plug protocols into different adapters. Imagine replacing your self-written API adapter with a canonical JSON-API adapter, for example.
They reduce the distinction between a “core module” and a “plugin”
Each library is maintained in its own repository, allowing decentralized ownership and independent release cycles.
+ adds syntax extensions
Configurable syntax! You can add new rules and even replace existing ones.
Community-written plugins and other packages on npm.
website developers and extension authors
Like, for example, Google having a problem with ad-blockers in Google Chrome. This is an example of why monopolies aren't great; Google makes money selling ads but they also control a browser that most people use. There's a conflict here when the users of the browser install extensions that limit Google's ability to show you ads.
With the new plugin based architectue, the library has really small core. Everything else is built around as a plugin.
The problem is that the since both the JSX transpiler and the traceur compiler are actually parsing the full javascript AST, they would have to mutually agree on the syntax extensions you use: traceur can't parse the faux-xml syntax JSX adds, and JSX can't parse the async or await keywords, for example, or generator functions.
JSX is an XML-like syntax extension to EcmaScript (https://facebook.github.io/jsx/).
In '07, safety implied an unacceptable performance hit on slow single-core devices with 128MiB of RAM.
In 2007, safety implied an unacceptable performance hit for hosting extensions, on devices with one core and 128MiB ram. In 2020, the lack of extensions is the ultimate app-ification of the web, the reduction of the web into a useless, powerless medium where users have no control.
Allows registration of TypeScript custom transformers at any of the supported stages:
require 'set' class Array def uniq_elements(&prc) prc ||= ->(e) { e } uniques, dups = {}, Set.new each do |e| k = prc[e] ((uniques.key?(k)) ? (dups << k; uniques.delete(k)) : uniques[k] = e) unless dups.include?(k) end uniques.values end end
Standard Markdown Extended Markdown in GitLab
1. Disabling concrete extension update. That's what I wanted! You can do this by editing the extensions manifest json-file on Windows: C:\Users\<USERNAME>\AppData\Local\Google\Chrome\User Data\Default\Extensions\<EXTENSION-ID>\<VERSION>\manifest.json (find out the extensions ID by enabling developer mode in the extension settings page) on Ubuntu for Chromium: ${HOME}/.config/chromium/Default/Preferences In this file set "update_url" property to something invalid like "https://localhost" for example. For now according to given url updating of that extension is simply impossible.
I believe that beginning to distribute tools that patch Firefox and give back power to users and allow them to install unsigned extensions is necessary when an organization is taking away our rights without giving us a compelling reason for doing so.
The other pressing issue is that users have lost the right to run private extensions in the release version of Firefox, without needing to hand over their source code to Mozilla.
I would like to know if you know a way to load unsigned extensions without requiring a developer or unbranded version of Firefox.
To load one temporarily go to about:debugging, "This Firefox" and click "Load temporary add-on from file". More permanently: many (most?) Linux distributions allow unsigned extensions to be placed in /usr/lib/firefox/browser/extensions/ and they will automatically be loaded, provided they have valid names (e.g. dodgy@unsignedextension.com.xpi).
Add-ons that are intended for internal or private use, are only accessible to a closed user group, or for distribution testing may not be listed on AMO. Such add-ons may be uploaded for self-distribution instead.
custom PDF container.)
Because Firefox does not allow content scripts on the built-in pdf viewer.
I usually write example code that is for both Chrome and Firefox WebExtensions.
Our Cookie Solution plugins for WordPress, Magento, Joomla! and PrestaShop allow you to automate the blocking of scripts drastically reducing the necessity for direct interventions in the site’s code.
You can also turn off personalization for your browser by installing the Interest-Based Ads Opt Out extension.
open source browser extension that can automatically answer pop-ups based on user-customizable preferences.It’s called Consent-o-Matic — and there are versions available for Firefox and Chrome.
On top of standard Markdown blockquotes, which require prepending > to quoted lines, GFM supports multiline blockquotes fenced by >>>:
First sighting of this >>>. I like it! It's always a pain to paste in a quote and then have to manually prefix every line with >, esp. if there are many lines.
I also like that it very nicely parallels the multilne code block delimeter syntax.
This is where the incredibly useful gettext filter comes in. If you take a peek at your plugin's code you'll see strings like this: .gist table { margin-bottom: 0; } <?php _e( 'Related Products', 'woocommerce' ); ?> view raw sample-translatable-string.php hosted with by GitHub You can easily translate these strings by adding a filter to your functions.php file: .gist table { margin-bottom: 0; } <?php /** * Change text strings * * @link http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext */ function my_text_strings( $translated_text, $text, $domain ) { switch ( $translated_text ) { case 'Related Products' : $translated_text = __( 'Check out these related products', 'woocommerce' ); break; } return $translated_text; } add_filter( 'gettext', 'my_text_strings', 20, 3 );
I faced similar issues a while ago and created this timestamp9 extension for Postgres.
for pointing me to the spiritual successor to this project at: https://github.com/GeorgeKaraszi/ActiveRecordExtended
filter incoming lines based on date threshold hides tasks marked with a date threshold ("t:YYYY-MM-DD") in the future
This seems like a pretty good way to handle adding add-ons.
See also: https://github.com/sanpii/effitask
Supported toto.txt addons: due flag future note schedule
Registering new services to the Injector If you've created a module using React, it's a good idea to afford other developers an API to enhance those components, forms, and state. To do that, simply register them with Injector.
Second, uBlock Origin does not have a dedicated server, it can't "phone home" with your browsing data, there is only GitHub, and GitHub is completely unrelated to uBlock Origin.
AdNauseam
pluck_to_hash
It is the augmentation means that serve to break down a large problem in such a way that the human being can walk through it with his little steps
web-ext run --target=firefox-android ... --firefox-apk=org.mozilla.firefox
Distributing Products Built for Chrome
Documentation for distributing extensions on the Chrome Web Store.
6.2 Extension IDs Each extension has an extension ID that follows the browserext:// protocol. For example browserext://MyExtension_c1wakc4j0nefm/options.html browserext://dfcijpibodeoenkablikbkiobbdnkfki/options.html The algorithms that generate these IDs are different for each browser. To access these resources, do not hardcode the ID generated by a particular browser. Instead, use the runtime.getURL() method to convert a relative file name or path to the absolute name or path, which includes the extension ID.
Vivaldi, as you know, I love your browser and use it primary and multiple times a day, despite it's quirks deviating from Chrome.
Having said this, can we eliminate the generated file names for extensions, screenshots, and notes?
All exercises must be submitted by that time.
What if I need an extension?
So rather than waiting further we decided to instrument the existing web interface — not a terribly elegant or reliable solution but it works for now.
Sigh, it looks like we'll need to do something similar for H in order to automate the Firefox extension build process unless APIs are ready soon.
This section defines three signature algorithms based on the RSA encryption process described in Sections 8 and 9. The intended use of the signature algorithms is in signing X.509/PEM certificates and certificate-revocation lists, PKCS #6 extended certificates, and other objects employing digital signatures such as X.401 message tokens. The algorithms are not intended for use in constructing digital signatures in PKCS #7. The first signature algorithm (informally, "MD2 with RSA") combines the MD2 message-digest algorithm with RSA, the second (informally, "MD4 with RSA") combines the MD4 message-digest algorithm with RSA, and the third (informally, "MD5 with RSA") combines the MD5 message-digest algorithm with RSA.
See http://security.stackexchange.com/questions/10706/encode-der-with-openssl for a high level overview of the signing process
Accessing a Webpage
In Share extensions (on both platforms) and Action extensions (iOS only), you can give users access to web content by asking Safari to run a JavaScript file and return the results to the extension.
On both platforms, your custom JavaScript class can define a run() function that Safari invokes as soon as it loads the JavaScript file. In the run() function, Safari provides an argument named completionFunction, with which you can pass results to your app extension in the form of a key-value object. In iOS, you can also define a finalize() function that Safari invokes when your app extension calls completeRequestReturningItems:completion: at the end of its task. A finalize() function can use items your extension passes in completeRequestReturningItems:completion: to change the webpage as desired.
Create a JavaScript file that includes a global object named ExtensionPreprocessingJS. Assign a new instance of your custom JavaScript class to this object.
When we first set out to identify malicious extensionsour expectation was to find banking trojans and pass-word stealers that duplicated the strategies pioneered byZeus and SpyEye. In practice, the abusive extensionecosystem is drastically different from malicious bina-ries. Monetization hinges on direct or indirect relation-ships with syndicated search partners and ad injection af-filiate programs, some of which earn millions of dollarsfrom infected users [37]. Miscreants derive wealth fromtrafficanduser targetingrather than the computing re-sources or privileged access mediated via the browser. Itmay simply be that the authors of malicious binaries havelittle incentive (or external pressure) to change, leavingextensions to a distinct set of actors. This uncertainty isa strong motivation for exploring the extension ecosys-tem further.
This is the section that identifies the motives and economics around malicious extensions