Anahi  Kirlin

Anahi Kirlin

1619532054

Why I Prefer Edge to Chrome (and YOU WILL TOO!)

Which internet browser is the best? Is Edge better than Chrome? Microsoft Edge has changed! In this video I’ll show you, why you should give Microsoft Edge a chance. It’s based on the Chromium engine, just like Google Chrome. Which means the extensions you like from Chrome will work on Edge too. Plus it comes with new features that are super useful!
We’ll also take a look at other criteria like privacy and performance.

What do you think? Is Edge actually got good enough so you can ditch Chrome for Edge?

Timestamps

  • 00:00 Is Microsoft Edge Better Than Google Chrome?
  • 01:17 Privacy / Tracking Prevention in Edge
  • 02:31 Feature: Multitasking (Alt + Tab)
  • 03:38 Feature: Vertical Tabs
  • 04:47 Feature: Sleeping Tabs
  • 05:37 Feature: Immersive Reader
  • 06:20 Feature: Read Aloud
  • 06:45 Performance
  • 07:08 Wrap Up

#developer #web-development

What is GEEK

Buddha Community

Why I Prefer Edge to Chrome (and YOU WILL TOO!)
Annie  Emard

Annie Emard

1653075360

HAML Lint: Tool For Writing Clean and Consistent HAML

HAML-Lint

haml-lint is a tool to help keep your HAML files clean and readable. In addition to HAML-specific style and lint checks, it integrates with RuboCop to bring its powerful static analysis tools to your HAML documents.

You can run haml-lint manually from the command line, or integrate it into your SCM hooks.

Requirements

  • Ruby 2.4+
  • HAML 4.0+

Installation

gem install haml_lint

If you'd rather install haml-lint using bundler, don't require it in your Gemfile:

gem 'haml_lint', require: false

Then you can still use haml-lint from the command line, but its source code won't be auto-loaded inside your application.

Usage

Run haml-lint from the command line by passing in a directory (or multiple directories) to recursively scan:

haml-lint app/views/

You can also specify a list of files explicitly:

haml-lint app/**/*.html.haml

haml-lint will output any problems with your HAML, including the offending filename and line number.

File Encoding

haml-lint assumes all files are encoded in UTF-8.

Command Line Flags

Command Line FlagDescription
--auto-gen-configGenerate a configuration file acting as a TODO list
--auto-gen-exclude-limitNumber of failures to allow in the TODO list before the entire rule is excluded
-c/--configSpecify which configuration file to use
-e/--excludeExclude one or more files from being linted
-i/--include-linterSpecify which linters you specifically want to run
-x/--exclude-linterSpecify which linters you don't want to run
-r/--reporterSpecify which reporter you want to use to generate the output
-p/--parallelRun linters in parallel using available CPUs
--fail-fastSpecify whether to fail after the first file with lint
--fail-levelSpecify the minimum severity (warning or error) for which the lint should fail
--[no-]colorWhether to output in color
--[no-]summaryWhether to output a summary in the default reporter
--show-lintersShow all registered linters
--show-reportersDisplay available reporters
-h/--helpShow command line flag documentation
-v/--versionShow haml-lint version
-V/--verbose-versionShow haml-lint, haml, and ruby version information

Configuration

haml-lint will automatically recognize and load any file with the name .haml-lint.yml as a configuration file. It loads the configuration based on the directory haml-lint is being run from, ascending until a configuration file is found. Any configuration loaded is automatically merged with the default configuration (see config/default.yml).

Here's an example configuration file:

linters:
  ImplicitDiv:
    enabled: false
    severity: error

  LineLength:
    max: 100

All linters have an enabled option which can be true or false, which controls whether the linter is run, along with linter-specific options. The defaults are defined in config/default.yml.

Linter Options

OptionDescription
enabledIf false, this linter will never be run. This takes precedence over any other option.
includeList of files or glob patterns to scope this linter to. This narrows down any files specified via the command line.
excludeList of files or glob patterns to exclude from this linter. This excludes any files specified via the command line or already filtered via the include option.
severityThe severity of the linter. External tools consuming haml-lint output can use this to determine whether to warn or error based on the lints reported.

Global File Exclusion

The exclude global configuration option allows you to specify a list of files or glob patterns to exclude from all linters. This is useful for ignoring third-party code that you don't maintain or care to lint. You can specify a single string or a list of strings for this option.

Skipping Frontmatter

Some static blog generators such as Jekyll include leading frontmatter to the template for their own tracking purposes. haml-lint allows you to ignore these headers by specifying the skip_frontmatter option in your .haml-lint.yml configuration:

skip_frontmatter: true

Inheriting from Other Configuration Files

The inherits_from global configuration option allows you to specify an inheritance chain for a configuration file. It accepts either a scalar value of a single file name or a vector of multiple files to inherit from. The inherited files are resolved in a first in, first out order and with "last one wins" precedence. For example:

inherits_from:
  - .shared_haml-lint.yml
  - .personal_haml-lint.yml

First, the default configuration is loaded. Then the .shared_haml-lint.yml configuration is loaded, followed by .personal_haml-lint.yml. Each of these overwrite each other in the event of a collision in configuration value. Once the inheritance chain is resolved, the base configuration is loaded and applies its rules to overwrite any in the intermediate configuration.

Lastly, in order to match your RuboCop configuration style, you can also use the inherit_from directive, which is an alias for inherits_from.

Linters

» Linters Documentation

haml-lint is an opinionated tool that helps you enforce a consistent style in your HAML files. As an opinionated tool, we've had to make calls about what we think are the "best" style conventions, even when there are often reasonable arguments for more than one possible style. While all of our choices have a rational basis, we think that the opinions themselves are less important than the fact that haml-lint provides us with an automated and low-cost means of enforcing consistency.

Custom Linters

Add the following to your configuration file:

require:
  - './relative/path/to/my_first_linter.rb'
  - 'absolute/path/to/my_second_linter.rb'

The files that are referenced by this config should have the following structure:

module HamlLint
  # MyFirstLinter is the name of the linter in this example, but it can be anything
  class Linter::MyFirstLinter < Linter
    include LinterRegistry

    def visit_tag
      return unless node.tag_name == 'div'
      record_lint(node, "You're not allowed divs!")
    end
  end
end

For more information on the different types on HAML node, please look through the HAML parser code: https://github.com/haml/haml/blob/master/lib/haml/parser.rb

Keep in mind that by default your linter will be disabled by default. So you will need to enable it in your configuration file to have it run.

Disabling Linters within Source Code

One or more individual linters can be disabled locally in a file by adding a directive comment. These comments look like the following:

-# haml-lint:disable AltText, LineLength
[...]
-# haml-lint:enable AltText, LineLength

You can disable all linters for a section with the following:

-# haml-lint:disable all

Directive Scope

A directive will disable the given linters for the scope of the block. This scope is inherited by child elements and sibling elements that come after the comment. For example:

-# haml-lint:disable AltText
#content
  %img#will-not-show-lint-1{ src: "will-not-show-lint-1.png" }
  -# haml-lint:enable AltText
  %img#will-show-lint-1{ src: "will-show-lint-1.png" }
  .sidebar
    %img#will-show-lint-2{ src: "will-show-lint-2.png" }
%img#will-not-show-lint-2{ src: "will-not-show-lint-2.png" }

The #will-not-show-lint-1 image on line 2 will not raise an AltText lint because of the directive on line 1. Since that directive is at the top level of the tree, it applies everywhere.

However, on line 4, the directive enables the AltText linter for the remainder of the #content element's content. This means that the #will-show-lint-1 image on line 5 will raise an AltText lint because it is a sibling of the enabling directive that appears later in the #content element. Likewise, the #will-show-lint-2 image on line 7 will raise an AltText lint because it is a child of a sibling of the enabling directive.

Lastly, the #will-not-show-lint-2 image on line 8 will not raise an AltText lint because the enabling directive on line 4 exists in a separate element and is not a sibling of the it.

Directive Precedence

If there are multiple directives for the same linter in an element, the last directive wins. For example:

-# haml-lint:enable AltText
%p Hello, world!
-# haml-lint:disable AltText
%img#will-not-show-lint{ src: "will-not-show-lint.png" }

There are two conflicting directives for the AltText linter. The first one enables it, but the second one disables it. Since the disable directive came later, the #will-not-show-lint element will not raise an AltText lint.

You can use this functionality to selectively enable directives within a file by first using the haml-lint:disable all directive to disable all linters in the file, then selectively using haml-lint:enable to enable linters one at a time.

Onboarding Onto a Preexisting Project

Adding a new linter into a project that wasn't previously using one can be a daunting task. To help ease the pain of starting to use Haml-Lint, you can generate a configuration file that will exclude all linters from reporting lint in files that currently have lint. This gives you something similar to a to-do list where the violations that you had when you started using Haml-Lint are listed for you to whittle away, but ensuring that any views you create going forward are properly linted.

To use this functionality, call Haml-Lint like:

haml-lint --auto-gen-config

This will generate a .haml-lint_todo.yml file that contains all existing lint as exclusions. You can then add inherits_from: .haml-lint_todo.yml to your .haml-lint.yml configuration file to ensure these exclusions are used whenever you call haml-lint.

By default, any rules with more than 15 violations will be disabled in the todo-file. You can increase this limit with the auto-gen-exclude-limit option:

haml-lint --auto-gen-config --auto-gen-exclude-limit 100

Editor Integration

Vim

If you use vim, you can have haml-lint automatically run against your HAML files after saving by using the Syntastic plugin. If you already have the plugin, just add let g:syntastic_haml_checkers = ['haml_lint'] to your .vimrc.

Vim 8 / Neovim

If you use vim 8+ or Neovim, you can have haml-lint automatically run against your HAML files as you type by using the Asynchronous Lint Engine (ALE) plugin. ALE will automatically lint your HAML files if it detects haml-lint in your PATH.

Sublime Text 3

If you use SublimeLinter 3 with Sublime Text 3 you can install the SublimeLinter-haml-lint plugin using Package Control.

Atom

If you use atom, you can install the linter-haml plugin.

TextMate 2

If you use TextMate 2, you can install the Haml-Lint.tmbundle bundle.

Visual Studio Code

If you use Visual Studio Code, you can install the Haml Lint extension

Git Integration

If you'd like to integrate haml-lint into your Git workflow, check out our Git hook manager, overcommit.

Rake Integration

To execute haml-lint via a Rake task, make sure you have rake included in your gem path (e.g. via Gemfile) add the following to your Rakefile:

require 'haml_lint/rake_task'

HamlLint::RakeTask.new

By default, when you execute rake haml_lint, the above configuration is equivalent to running haml-lint ., which will lint all .haml files in the current directory and its descendants.

You can customize your task by writing:

require 'haml_lint/rake_task'

HamlLint::RakeTask.new do |t|
  t.config = 'custom/config.yml'
  t.files = ['app/views', 'custom/*.haml']
  t.quiet = true # Don't display output from haml-lint to STDOUT
end

You can also use this custom configuration with a set of files specified via the command line:

# Single quotes prevent shell glob expansion
rake 'haml_lint[app/views, custom/*.haml]'

Files specified in this manner take precedence over the task's files attribute.

Documentation

Code documentation is generated with YARD and hosted by RubyDoc.info.

Contributing

We love getting feedback with or without pull requests. If you do add a new feature, please add tests so that we can avoid breaking it in the future.

Speaking of tests, we use Appraisal to test against both HAML 4 and 5. We use rspec to write our tests. To run the test suite, execute the following from the root directory of the repository:

appraisal bundle install
appraisal bundle exec rspec

Community

All major discussion surrounding HAML-Lint happens on the GitHub issues page.

Changelog

If you're interested in seeing the changes and bug fixes between each version of haml-lint, read the HAML-Lint Changelog.

Author: sds
Source Code: https://github.com/sds/haml-lint
License: MIT license

#haml #lint 

Tyrique  Littel

Tyrique Littel

1603450800

Chrome 86 Aims to Bar Abusive Notification Content

Google has added a new feature to Chrome 86 that aims to stomp out abusive notification content.

Web notifications are utilized for a variety of applications – such as prompting site visitors to sign up for newsletters. However, they can also be misused for phishing, malware or fake messages that imitate system notifications for the purpose of generating user interactions. Google has taken steps to battle this issue by automatically blocking the web notifications that display abusive or misleading content.

When visitors encounter a webpage with malicious notification content, the webpage will be blocked and a Chrome alert on the upper navigation bar will warn them that the website might be trying to trick them into displaying intrusive notifications. It will ask them to “Continue Blocking” or “Allow” – the latter option will let users continue on to the webpage.

“Abusive notification prompts are one of the top user complaints we receive about Chrome,” according to PJ McLachlan, product manager with Google, on Wednesday. “Our goal with these changes is to improve the experience for Chrome users and to reduce the incentive for abusive sites to misuse the web-notifications feature.”

In order to detect sites that send abusive notification content, Google will first subscribe occasionally to website push notifications (if the push permission is requested) via its automated web crawling service.

Notifications that are sent to the automated Chrome instances will be evaluated for abusive content, and sites sending abusive notifications will be flagged for enforcement if the issue is unresolved, said Google.

When a site is found to be in “failing” status for any type of notification abuse, Google will send a warning email to the registered owners of the site 30 days before cracking down. During this time, websites can address the issue and request another review.

Google first implemented controls that went against abusive notifications with Chrome 80, when it introduced a “quiet notification permission UI [user interface]” feature. Then, in Chrome 84, it announced auto-enrollment in quiet notification UI for websites with abusive-notification permission requests, such as sites that use deceptive patterns to request notification permissions.

However, the new enforcement in Chrome 86 takes it a step further by focusing “on notification content and is triggered by sites that have a history of sending messages containing abusive content,” said Google. “This treatment applies to sites that try to trick users into accepting the notification permission for malicious purposes, for example sites that use web notifications to send malware or to mimic system messages to obtain user login credentials.”

In an upcoming release, Chrome will revert the notification permission status from “granted” to “default” for abusive origins, preventing further notifications unless the user returns to the abusive origin and re-enables them. That’s because “prior to the release of Chrome’s abusive notifications protections, many users have already unintentionally allowed notifications from websites engaging in abusive activity,” it said.

Google this week also warned of an update to its Chrome browser that patches a zero-day vulnerability in the software’s FreeType font rendering library that was actively being exploited in the wild.

#web security #abusive content #abusive notifications #blocking #browser #browser notifications #chrome 80 #chrome 84 #chrome 86 #google #google chrome #malicious notification #safe browsing #web security

Zelma  Gerlach

Zelma Gerlach

1621616520

Edge Computing: Device Edge vs. Cloud Edge

It sometimes makes sense to treat edge computing not as a generic category but as two distinct types of architectures: cloud edge and device edge.

Most people talk about edge computing as a singular type of architecture. But in some respects, it makes sense to think of edge computing as two fundamentally distinct types of architectures: Device edge and cloud edge.

Although a device edge and a cloud edge operate in similar ways from an architectural perspective, they cater to different types of use cases, and they pose different challenges.

Here’s a breakdown of how device edge and cloud edge compare.

Edge computing, defined

First, let’s briefly define edge computing itself.

Edge computing is any type of architecture in which workloads are hosted closer to the “edge” of the network — which typically means closer to end-users — than they would be in conventional architectures that centralize processing and data storage inside large data centers.

#cloud #edge computing #cloud computing #device edge #cloud edge

Ethen Ellen

1619858914

AOL Emails Not Loading Problems (+1-888-857-5157) in Chrome Browser

This is image title
AOL Mail is one of the free email services that includes calendar management and task management. If your AOL Emails Not Loading Problems in Chrome Browser, try these troubleshooting steps which is mention below. In this post, we are trying to describe the reason behind AOL email not loading and how to resolve AOL mail loading issues.

3 Reason Behind AOL Emails Not Loading Problems

Reason #1. Whenever you are unable to receive the new emails into your computer. You should log into your AOL mail account and go to the settings and click on filter settings. Now check the account settings, if you find any filter. you need to click on delete. After deleting the settings, you should send a mail to yourself. Let’s see if you are receiving it now or not.

Reason #2. If you do not find any filters into your emails, you should check the block list settings, maybe you have blocked the new emails from senders. That’s why you are not receiving any new emails. so, you should immediately go ahead and check it.

Reason #3. If you are unable to receive the new emails into your phone or computer. I would like to suggest you to check the server settings. Most of the time, people are facing such kind of problem due to the incorrect server settings. So, you should check them properly and if you find something wrong over there. You need to remove the account from your computer or phone and then reconfigure it. It will start working fine.

How to Resolve AOL Emails Not Loading Problems in Chrome Browser

If Your AOL Emails Not Loading Problems in Chrome Browser then you can go and find a help to resolve this issue. To get through this problem, follow the instructions below:

Solution 1: Clear browsing data on Chrome

  • On your computer, launch the Google Chrome browser after assuring that you have a stable Internet connection.
  • Close all the browser tabs (if any) and open a new blank tab.
  • Click the Customize and control Google Chrome icon at the top-right corner and select the More tools option from the drop-down list.
  • In the pop-up window, navigate to the top-left corner and click the clear browsing data tab beneath History.
  • When you are asked to choose the time limit, choose the Time
  • After choosing all the data, click the Clear data button to remove all your Chrome browsing data.
  • Once you have removed all the browsing data, sign in to your AOL Mail.
  • If your AOL Mail is still not loading on Chrome, move on to the next solution.

Solution 2: Reset web settings

  • On your Chrome browser, stop all the running tabs and start a blank tab.
  • Navigate to the top-right corner of the tab and click the Customize and control Google Chrome icon (three vertical dots).
  • Click on Settings from the drop-down list.
  • Navigate to the bottom of the Settings page and click Advanced.
  • Click the Reset Settings tab twice underneath Reset and clean up.
  • Now, your Chrome browser will be restored to factory defaults.
  • Restart your Chrome browser and navigate to the official AOL site.
  • Enter the correct login credentials in the essential field and try signing in to your AOL email account.
    If AOL Mail is still not loading on Chrome, contact our technical support team by clicking the Call button available on this page for remote assistance.
    After this, if you are unable to resolve AOL emails loading problems in chrome browser, don’t be panic. Email Expert 24*7 team is here to resolve all AOL mail issues as soon as possible. Just Dial Customer Care Toll-Free Number: +1-888-857-5157 and get instant help. Our technical team’s services are available- 24x7.

Source: https://email-expert247.blogspot.com/2021/01/aol-emails-not-loading-problems-1-888.html

#aol mail not loading problems in chrome browser #aol email not loading problems in chrome browser #aol not loading problems in chrome browser #aol mail not loading issues in chrome browser #aol email not loading issues in chrome browser

Tamia  Walter

Tamia Walter

1593259500

Shared Preference in Android - Example and Implementation

Preferences in Android

First of all, we’ll begin with Android Preferences and then we’ll move towards Android Shared preferences. Preferences are basically used to keep track of the application along with the user preferences. A preference is a simple key-value pair with a specific data type for the value. The task of preference key is to uniquely identify a preference and on the other hand values store the preference values.

To understand it in a better way:

Suppose you want to store the Mobile Number of a user. For that you can consider choosing the data type of Integer. The key name can be “MobileNumber”. And the Value can be in Integers values, such as “7894561230” or “0278-471220”.

For preferences, The data types that can be chosen are as follows:

  • Boolean Types
  • Integer Types
  • Float Types
  • String Types
  • Long Types

APIs for accessing Preferences in Android

There are three APIs from which one can be chosen to get access to the preferences. These three APIs are:

  • getPreference(): It is used within the Activity, to access activity-specific preference.
  • getSharedPreference(): It is used from the Activity or some other application context. Its use is to access application-level preferences.
  • getDefaultSharedPreference(): It is used on the PreferenceManager, to get the shared preferences that goes with the overall Android preference framework.

Shared Preference in Android

Before getting started with it, let us first understand its meaning in a better way. So it comes with two words, Shared and Preferences. Here, Share means distributing the data and Preferences here means important or something that is preferable.

To use it, we need to call the method getSharedPreferences() that returns a SharedPreference instance pointing to the file containing the values of preferences. This is done as follows:

SharedPreferences sharedpreference_name = getSharedPreferences(String name, MODE_PRIVATE);

In this method, we’ve passed two parameters: the first parameter is the key name of the SharedPreference and the second parameter is the MODE. The mode by default is Private. Other than private mode, there are six modes in total that are as below:

1. MODE_APPEND

It appends new preferences in the pre-existing preferences.

2. MODE_ENABLE_WRITE_AHEAD _LOGGING

It enables write ahead logging by default, if it is set true. It is a database flag.

3. MODE_WORLD_READABLE

This mode sets read mode for other applications to read the preferences.

4. MODE_WORLD_WRITABLE

This mode sets write mode for other applications to write the preferences.

5. MODE_MULTI_PROCESS

It checks for modifications even if the preference instance is already loaded.

6. MODE_PRIVATE

It is the default mode. In this mode, we can access a file only by the calling application.

#android tutorials #android preferences #android shared preferences #android sharedpreferences example #shared preference #shared preference in android