1593604413
As the COVID-19 unravelled itself, out of all the emerging technologies that have gained traction, artificial intelligence turned out to be one of the most transformative technologies to combat the crisis — not only to flatten the curve, but also to help businesses solve problems. In fact, according to a recent report, the AI market is expected to reach $208.49 billion by 2025 due to its increased application in the automotive and consumer electronics market.
Read more: https://analyticsindiamag.com/will-china-be-left-behind-in-the-ai-race/
#artificial-intelligence
1617779520
The annual Analytics India Salary report presented by AIM and AnalytixLabs is the only annual study in India that delves into salary trends and provides a comprehensive view of the changing landscape of analytics salaries. The report, now in its seventh year, look at the distribution of average salaries across several categories including years of experience, metropolitan regions, industries, education levels, gender, tools, and skills.
The Data Analytics function is experiencing significant growth and development in terms of skills, capabilities, and funding. Last year, despite the pandemic, the Indian start-up industry witnessed $836.3 million investment, almost a 10% (9.7%) increase than the previous year. Also, more than one in five (21%) analytics teams across firms in India witnessed a growth in the last 12 months and the post-pandemic job market saw an upswing of data science jobs. The development of the data science domain is evidenced by the high salaries drawn by analytics professionals across the organization, with Analytics professionals doing relatively well in spite of the pandemic.
#featured #ai salaries in india #analytics salaries in india #analytics salary key trends #analytics salary trend #average data analytics salary #average salary of analytics professionals #data science salaries in india #data science salary study #latest data science salaries
1597323600
India is currently in a vital phase of its infrastructure, energy, and mobility development, which nicely sets the stage to leapfrog current or existing practices. According to sources, an estimated 40% of its population will be living in urban areas by 2025, and they will account for over 60% of the consumption of resources.
Moreover, transportation in India is highly fragmented, disorganised across modes with poor infrastructure, congestion and low public transport density. Riders and drivers have to undertake multiple challenges daily such as lack of availability, reliability, quality, consistent pricing, safety etc.
To know more about the current space and transportation in India, Analytics India Magazine caught up with Shirish Andhare, Director, Program Management, Uber India and South Asia.
“Our goal is to change the Indian mindset and help people replace their car with their phone by offering a range of mobility options — whether cars, bikes, autos or public transport — all in the Uber app. By putting more people in fewer cars, we have the potential to build smarter and more liveable cities,” said Andhare.
Using technology, Uber India has been trying to transform the mobility landscape and change how people move around in the country by playing a transformational role in addressing pain points for riders and adding efficiency into the system.
With its multi-modal vision for mobility in India, Uber wants to make a variety of options available to help commuters get where they want to go at a price point that works for them. To that end, Uber has announced partnerships across airports and Metros in Delhi and Hyderabad to provide last-mile connectivity.
Andhare said that about seven years ago, Uber launched in Bangalore with just three employees. Today, Uber India has tech teams across Bangalore and Hyderabad. It continues its exponential growth journey, focusing on facilitating affordable, reliable and convenient transportation to millions of riders and livelihood opportunities for hundreds of thousands of driver-partners.
The company has doubled its engineering team in India this year. The R&D teams located in Hyderabad and Bangalore continue to grow and currently host over a dozen global charters including rider, maps, customer obsession, infrastructure, money, and eats. These teams are driving global impact for Uber based on several India-first product innovations.
Andhare said, “With over a billion trips in India and South Asia and counting, along with a large driver-partner base, we are focused on winning hearts and minds in the market. We plan to do this by doubling down on products that can solve for low network connectivity, congestion and pollution, as well as enable multiple price points with a varied set of offerings. Uber’s success is deeply tied to our success in India, we are in a strong position in India, and we are committed to serving the market.”
He added, “As we gear up to deliver the next billion rides in the region, we remain focused on providing convenient, affordable rides to millions of riders and stable and sustainable earning opportunities to driver-partners.”
Andhare stated that technology provides an incredible opportunity to improve road safety in new and innovative ways before, during and after every ride. At every step, Uber is maximising the usage of technology to bring transparency and accountability through features such as two-way feedback and ratings, telematics and GPS, among others. These will have a positive impact on furthering trust and empathy between riders and driver-partners.
Uber’s Engineering Centre in Bangalore and Hyderabad are engaged in cutting-edge basic and applied technology solutions in areas that include rider growth, driver growth, digital payments, mapping, telematics, vehicle tracking/safety and fleet management, and the Uber core experience.
Some of the India-first innovations include the in-app emergency feature, arrears handling, driver inbound phone support, cash trips, Uber Rentals for longer trips and UberGO. The company is investing heavily in research and resources.
Some of the technologies used at Uber include computer vision, automation, Machine Learning(ML), Optical character recognition (OCR), and Artificial Intelligence (AI) techniques, NLP etc. These technologies are used in areas such as onboarding restaurant menus onto Uber marketplace, enabling earnings opportunities and more. It is also crucial to perform other tasks such as better routing, matching, fraud detection, document processing, maps editing, machine translations, customer support, and more.
#people #ai at uber #ai used in uber #interview with shirish andhare director program management of uber india #shirish andhare interview #technologies at uber india #uber ai #uber director interview #uber india #uber india ai
1599522960
China has revised its exports restrictions list for the first time in 12 years. China’s new restrictions on exports include a bunch of deep technologies, including AI, drone, satellite and cybersecurity. Certain technologies will now be subject to export bans or restrictions, meaning they have to be greenlit by the Chinese government for sale overseas.
The new rules, unveiled by China’s Ministry of Commerce and Ministry of Science and Technology, added many items—including personal information push services based on data analysis and voice-recognition technologies commonly used in smartphones, robots and wearable devices—to the restricted list. Technologies on the list can’t be exported without a license from the government.
China’s Export Prohibited and Restricted Technology Catalog contain various technologies pertaining to artificial intelligence, voice, telecommunications, cybersecurity and cryptography.
Zhao Lijian, Spokesman, Chinese Ministry of Foreign Affairs said, “The main reason behind releasing the catalogue to regulate technology export management is to facilitate technological development, cooperate with foreign companies and to safeguard national economic security.”
#opinions #china #china ai #china us ai war #ai
1653075360
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.
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.
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.
haml-lint
assumes all files are encoded in UTF-8.
Command Line Flag | Description |
---|---|
--auto-gen-config | Generate a configuration file acting as a TODO list |
--auto-gen-exclude-limit | Number of failures to allow in the TODO list before the entire rule is excluded |
-c /--config | Specify which configuration file to use |
-e /--exclude | Exclude one or more files from being linted |
-i /--include-linter | Specify which linters you specifically want to run |
-x /--exclude-linter | Specify which linters you don't want to run |
-r /--reporter | Specify which reporter you want to use to generate the output |
-p /--parallel | Run linters in parallel using available CPUs |
--fail-fast | Specify whether to fail after the first file with lint |
--fail-level | Specify the minimum severity (warning or error) for which the lint should fail |
--[no-]color | Whether to output in color |
--[no-]summary | Whether to output a summary in the default reporter |
--show-linters | Show all registered linters |
--show-reporters | Display available reporters |
-h /--help | Show command line flag documentation |
-v /--version | Show haml-lint version |
-V /--verbose-version | Show haml-lint , haml , and ruby version information |
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
.
Option | Description |
---|---|
enabled | If false , this linter will never be run. This takes precedence over any other option. |
include | List of files or glob patterns to scope this linter to. This narrows down any files specified via the command line. |
exclude | List 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. |
severity | The 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. |
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.
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
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
.
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.
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.
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
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.
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.
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
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
.
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
.
If you use SublimeLinter 3
with Sublime Text 3
you can install the SublimeLinter-haml-lint plugin using Package Control.
If you use atom
, you can install the linter-haml plugin.
If you use TextMate 2
, you can install the Haml-Lint.tmbundle bundle.
If you use Visual Studio Code
, you can install the Haml Lint extension
If you'd like to integrate haml-lint
into your Git workflow, check out our Git hook manager, overcommit.
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.
Code documentation is generated with YARD and hosted by RubyDoc.info.
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
All major discussion surrounding HAML-Lint happens on the GitHub issues page.
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
1619511840
If you were to ask any organization today, you would learn that they are all becoming reliant on Artificial Intelligence Solutions and using AI to digitally transform in order to bring their organizations into the new age. AI is no longer a new concept, instead, with the technological advancements that are being made in the realm of AI, it has become a much-needed business facet.
AI has become easier to use and implement than ever before, and every business is applying AI solutions to their processes. Organizations have begun to base their digital transformation strategies around AI and the way in which they conduct their business. One of these business processes that AI has helped transform is lead qualifications.
#ai-solutions-development #artificial-intelligence #future-of-artificial-intellige #ai #ai-applications #ai-trends #future-of-ai #ai-revolution