Tougher Approval ; H1B Visa Extension Rule Changes

kazembassy.in

The H1B non-immigrant work visa continues to attract the attention of the Trump administration, and even without any new legislation there is wave of new rules and regulations. The most recent targets the H1B visa ‘extension’ process, making it tougher for existing H1B visa workers to renew their visa. This has previously been an easy approval but now that is all changing.

The Facts

A. The H1B visa is valid for three years, once the petition is approved

B. The visa can be extended for an additional one to three years, and in some cases longer

C. The basis for extension since 2004 was nearly automatic, and the burden was on the USCIS to show a reason to deny an extension

D. As of October 22, 2017, that rule has been modified to place the burden on the petitioner for any extension

New Rule Mean

Previously, eligibility for an H1B extension was based on the original petition, and no re-application of supporting documents and qualifications was required. Now, the new rule requires USCIS officers to scrutinize applications for extensions just as they would an original petition. It is essentially the same as submitting a new petition. The justification is as always to “protect the interests of US workers”. Check for H1B Visa Evaluation in UT Evaluators

The result of this change means:

A. Longer lead times to submit extension applications, due to assembling paperwork and USCIS review

B. Existing H1B visa workers are no longer guaranteed an extension, and may be caught off guard or won’t have time to process the extension prior to expiration

C. Some workers in positions that no longer qualify for new H1B visas (entry level computer programmers) will have their extensions denied

D. HR departments at large tech firms employing many H1B workers will have to increase their workload to assemble the extension applications

The Purpose of This Rule Change Is

The unstated purpose seems to be to ‘weed out’ current H1B workers who would be rejected if they were submitting a new petition. This could include many workers that are currently employed by outsourcing firms, and contracted out to other companies. Many of those workers (and their employers) were probably assuming that they would escape the barrage of H1B administrative reforms, since their petition was already previously approved.

For example, an entry level computer programmer who was hired two years ago, is now facing the almost certain prospect that any extension application will be denied. It is unlikely that these workers were planning to return home, and has a very real impact on the outsourcing companies that employ them.

It is definitely a blow to firms like Infosys and Wipro who were probably not factoring in a new level of intense scrutiny for extensions, and thinking that they could rely on their existing pool of current H1B visa workers.

Just an Internal Memo Made This Rule Change

This rule change was implemented by a simple internal memorandum within USCIS. It does illustrate the effectiveness of working within current immigration laws, and making internal agency regulations more difficult to comply with. For H1B Visa Process Visit here

This approach is aligned with the Trump administration’s overall H1B visa strategy, to make as many administrative changes as possible to restrict access to the program, by unqualified or low wage workers. This saves the time and political capital of pushing new legislation forward, and can be done with the stroke of a pen.

The good news is that new H1B petitioners are on the same playing level as existing H1B workers, so there is no advantage if a foreign national is already working in the US. Please contact us for assistance in finding a sponsor and position in your specialty occupation.

H1B Visa Extensions not Under Threat, According to USCIS

Check for H1B Visa Evaluation in UT Evaluators

A spokesperson from the United States Citizenship and Immigration Services (USCIS) has stated that extensions to the H1B visa program are not under threat, as was widely reported at the start of January.

“USCIS is not considering a regulatory change that would force H1B visa holders to leave the United States by changing our interpretation of section 104(c) of AC-21, which provides for H1B extensions beyond the 6 year limit,” said Jonathan Withington, Chief of Media Relations for USCIS.

The news has resulted in a collective sigh of relief among the community of technology professionals seeking extensions to their time in the country. However, Homeland Security has stated that it was still conducting a thorough review of worker visa programs. For H1B Visa Process Visit here

Officials have said that the policy change for H1B extensions was never planned at all, although some reports say the administration changed its mind in response to the swift and harsh reaction from the business community.The work visa program has long been a political hot potato in the United States, with some politicians repeatedly calling for it to be scrapped, arguing that it led to job losses for Americans.

Each year, the USCIS grants roughly 85,000 H1B visas, which are issued for up to six years. Once expired, visa holders that have applied for green cards routinely seek extensions under the American Competitiveness Act.

What Is Norm-Referenced And Criterion-Referenced Evaluation

Two alternative approaches to educational testing that must be thoroughly understood are norm-referenced testing and criterion-referenced testing. Although there are similarities between these two approaches to testing, there are also fundamental differences between norm and criterion referenced testing.There have been disputations about the relative virtues of norm and criterion-referenced measurements for a long time. However, a fundamental fact is recognised by most of concerned people that norm-referenced and criterion-referenced testing are complementary approaches. Check for Educational Evaluations in US at UT Evaluators

(i) Criterion-Referenced Evaluation:

When the evaluation is concerned with the performance of the individual in terms of what he can do or the behaviour he can demonstrate, is termed as criterion- referenced evaluation. In this evaluation there is a reference to a criterion.But there is no reference to the performance of other individuals in the group. In it we refer an individual’s performance to a predetermined criterion which is well defined.

Examples:

(i) Raman got 93 marks in a test of Mathematics.

(ii) A typist types 60 words per minute.

(iii) Amit’s score in a reading test is 70.

A simple working definition of Criterion-Referenced Evaluation :

A criterion-referenced test is used to ascertain an individual’s status with respect to a defined achievement domain.In the above examples there is no reference to the performance of other members of the group. Thus criterion-referenced evaluation determines an individual’s status with reference to well defined criterion behaviour.

It is an attempt to interpret test results in terms of clearly defined learning outcomes which serve as referents (criteria). Success of criterion-reference test lies in the delineation of all defined levels of achievement which are usually specified in terms of behaviourally stated instructional objectives.

The purpose of criterion-referenced evaluation/test is to assess the objectives. It is the objective based test. The objectives are assessed, in terms of behavioural changes among the students.Such type of test assesses the ability of the learner in relation to the criterion behaviour. Glasar (1963) first used this term, ‘Criterion-reference test’ to describe the learner’s achievement on a performance continuum.Hively and Millman (1974) suggested a new term, ‘domain-referenced test’ and to them the word ‘domain’ has a wider connotation. A criterion referenced test can measure one or more assessment domain.

(ii) Norm Referenced Evaluation:

Norm-referenced evaluation is the traditional class-based assignment of numerals to the attribute being measured. It means that the measurement act relates to some norm, group or a typical performance.It is an attempt to interpret the test results in terms of the performance of a certain group. This group is a norm group because it serves as a referent of norm for making judgements.

Test scores are neither interpreted in terms of an individual (self-referenced) nor in terms of a standard of performance or a pre-determined acceptable level of achievement called the criterion behaviour (criterion-referenced). The measurement is made in terms of a class or any other norm group.Almost all our classroom tests, public examinations and standardised tests are norm-referenced as they are interpreted in terms of a particular class and judgements are formed with reference to the class. Educational Evaluations in US visit here

Examples:

(i) Raman stood first in Mathematics test in his class.

(ii) The typist who types 60 words per minute stands above 90 percent of the typists who appeared the interview.

(iii) Amit surpasses 65% of students of his class in reading test.

A simple working definition Norm Referenced Evaluation :

A norm-referenced test is used to ascertain an individual’s status with respect to the performance of other individuals on that test.In the above examples, the person’s performance is compared to others of their group and the relative standing position of the person in his/her group is mentioned. We compare an individual’s performance with similar information about the performance of others.

That is why selection decisions always depend on norm- referenced judgements. A major requirement of norm-referenced judgements is that individuals being measured and individuals forming the group or norm, are alike. In norm-referenced tests very easy and very difficult items are discarded and items of medium difficulty are preferred because our aim is to study relative achievement.

Benefits and Security Of Cloud Computing

ubvvn

But there’s another, more precise meaning of cloud computing: the virtualization and central management of data center resources as software-defined pools. This technical definition of cloud computing describes how public cloud service providers run their operations. The key advantage is agility: the ability to apply abstracted compute, storage, and network resources to workloads as needed and tap into an abundance of pre-built services.

From a customer perspective, the public cloud offers a way to gain new capabilities on demand without investing in new hardware or software. Instead, customers pay their cloud provider a subscription fee or pay for only the resources they use. Simply by filling in web forms, users can set up accounts and spin up virtual machines or provision new applications. More users or cloud computing resources can be added on the fly—the latter in real time as workloads demand those resources thanks to a feature known as auto-scaling.

Benefits of cloud computing

The cloud’s main appeal is to reduce the time to market of applications that need to scale dynamically. Increasingly, however, developers are drawn to the cloud by the abundance of advanced new services that can be incorporated into applications, from machine learning to internet-of-things connectivity.Although businesses sometimes migrate legacy applications to the cloud to reduce data center resource requirements, the real benefits accrue to new applications that take advantage of cloud services and “cloud native” attributes. The latter include microservices architecture, Linux containers to enhance application portability, and container management solutions such as Kubernetes that orchestrate container-based services. Cloud-native approaches and solutions can be part of either public or private clouds and help enable highly efficient devops-style workflows.

Cloud computing security

Objections to the public cloud generally begin with cloud security, although the major public clouds have proven themselves much less susceptible to attack than the average enterprise data center. Of greater concern is the integration of security policy and identity management between customers and public cloud providers. In addition, government regulation may forbid customers from allowing sensitive data off premises. Other concerns include the risk of outages and the long-term operational costs of public cloud services.

H1B Visa Refusal on Rise under Administrative Processing by US Immigration

There has been an increase in the number of ‘administrative processing’ cases under the 221G section of the US Immigration and Nationality Act, restricting re-issuance of H1B Visa to those who hold jobs in the United States, according to some sources. Reportedly, a number of Indians in information technology, who have been holding H1B visas and working in USA for some years, got stuck in India on their recent visit as their applications to the US consulates in India were placed under administrative processing for an additional background check and security clearance. Check for H1B Visa Evaluation in UT Evaluators

Administrative Processing is not outright refusal of one’s H1B visa application. It is temporary refusal, but it may be frustrating. US Visa consulting experts opine that administrative processing is not an uncommon incidence. The primary objective of issuing temporary refusals to some H1B visa applicants or holders is to seek additional information or documents from them for closer scrutiny.

According to off-site employment and immigration experts, administrative processing under the 221G section of the US Immigration and Nationality Act affects only 2% of H1B visa holders or new applicants. However, this incidence has increasingly been reported over the past few months.

If you are unlucky to face such refusal of your H1B visa application or renewal, you may be required to wait several weeks for the final outcome. The waiting period may be stretched for a few months or years in the worst cases of administrative processing. Even a previously approved H1B visa application may be revoked in this case.

The documents of those placed under the 221G section of the US Immigration and Nationality Act are forwarded to such agencies as FBI, CIA, DEA, Interpol, the US Department of Commerce, and the US Department of Treasury’s Office of Foreign Assets Control for a thorough background check. H1B Visa Process Check here

The documents that H1B visa holders and new applicants are required to provide in case of administrative processing include but not limited to the following:

.Job offer letter or employment agreement from the employer

.Duly signed letter from the client validating the beneficiary’s assignment

.Detailed project description mostly for in-house projects

.Contract between the petitioner and the client or mid-vendor

.Details of services that the beneficiary is required to perform, work sites and dates

.Valid evidence of the beneficiary’s previous work experience and educational qualifications

.Financial documents including both the beneficiary and the petitioner’s tax returns and pay statements

If you are an H1B visa holder and planning to travel to outside of USA especially when the visa is awaiting renewal in the near future, make sure to carry all the relevant documents required for hassle-free visa stamping to reenter the US.

Benefits & Features Of Cloud Based Phone System

iiit-bh

Most organizations have for the longest time relied on traditional phone systems which are time-consuming an expensive, but since the introduction of cloud based business phone system, all of this has changed. A cloud system is one that allows you to upload all your information and details online such that you can easily access it online.

Features of a Great Cloud Phone System

Auto Attendant

A lot of organizations that receive a lot of calls have embraced auto phone attendants. This is an important business phone system especially if you do not have a dedicated person who answers phone calls. The auto attendant receives calls and provides the caller with the different options on how to be assisted plus allowing call transfers.

Auto Call Forwarding

Instead of having to do this manually, the cloud based business phone system automatically transfer calls to other devices till the call is answered. This makes it easy to serve clients and ensure that you maximize on the number of calls that you receive.

Flexibility

This saves time and makes multitasking so much easier. One can easily upload call details on the cloud which makes it accessible on the internet via a mobile device. This allows one to be mobile instead of being stuck at a desk all the time. Benefits of Cloud Hosting

Simplicity

There is no complicated set up required for cloud systems nor does it take up space as everything is stored on an online server.

Increased Efficiency

Integrating your business phone system enhances connectivity such that employees can communicate easily and effectively. It is easy to get access to different people whether they are in the office or not which greatly improves their ability to get work done more effectively.

Better Customer Service

Cloud phone systems allows for virtual receptionists and auto attendants which provides a platform for calls to be redirected where they can be attended to. This is done automatically which allows the organization to ensure that their customers are well attended to.

Ensures Continuity

As the systems are uploaded online, there are no external factors that could affect communications. This ensures that the business phone system is always online throughout which means that customers are always attended to, and communications are well done.

Cloud based business phone system is affordable, easy and as efficient. This allows you to always be connected and to ensure that you can always communicate within your organization and with your clients and customers. The benefits will lead to a lot of production and increased communication which is essential in any business. Cebod Telecom provides cloud-based telephony solutions for small to mid-sized enterprises, and larger companies delivering high- quality voice, premium features and unified communications. Cebod Telecom offers a state-of-the-art Pay-Per-Line business phone service model. This pricing model empowers businesses to pay per line as opposed to pay-per-user in the company.

JavaScript Start-up Performance

As web developers, we know how easy it is to end up with web page bloat. But loading a webpage is much more than shipping bytes down the wire. Once the browser has downloaded our page’s scripts it then has to parse, interpret & run them. In this post, we’ll dive into this phase for JavaScript, why it might be slowing down your app’s start-up & how you can fix it.

Historically, we just haven’t spent a lot of time optimizing for the JavaScript Parse/Compile step. We almost expect scripts to be immediately parsed and executed as soon as the parser hits a <script> tag. But this isn’t quite the case. Here’s a simplified breakdown of how V8 works:

A simplified view of how V8 works. This is our idealized pipeline that we’re working towards.

Let’s focus on some of the main phases.

What slows our web apps from booting up?

Parsing, Compiling and Executing scripts are things a JavaScript engine spends significant time in during start-up. This matters as if it takes a while, it can delay how soon users can interact with our site. Imagine if they can see a button but not click or touch it for multiple seconds. This can degrade the user experience.

Parse & Compile times for a popular website using V8’s Runtime Call Stats in Chrome Canary. Notice how a slow Parse/Compile on desktop can take far longer on average mobile phones.

Start-up times matter for performance-sensitive code. In fact, V8 – Chrome’s JavaScript engine, spends a large amount of time parsing and compiling scripts on top sites like Facebook, Wikipedia and Reddit:

The pink area (JavaScript) represents time spent in V8 and Blink’s C++, while the orange and yellow represent parse and compile.

Parse and Compile have also been highlighted as a bottleneck by a number of large sites & frameworks you may be using. Below are tweets from Facebook’s Sebastian Markbage and Google’s Rob Wormald:

Sam Saccone calls out the cost of JS parse in ‘Planning for Performance’

As we move to an increasingly mobile world, it’s important that we understand the time spent in Parse/Compile can often be 2–5x as long on phones as on desktop. Higher-end phones (e.g the iPhone or Pixel) will perform very differently to a Moto G4. This highlights the importance of us testing on representative hardware (not just high-end!) so our users’ experiences don’t suffer.

Parse times for a 1MB bundle of JavaScript across desktop & mobile devices of differing classes. Notice how close a high-end phone like an iPhone 7 is to perf on a Macbook Pro vs the performance as we go down the graph towards average mobile hardware.

If we’re shipping huge bundles for our app, this is where endorsing modern bundling techniques like code-splitting, tree-shaking and Service Worker caching can really make a huge difference. That said, even a small bundle, written poorly or with poor library choices can result in the main thread being pegged for a long time in compilation or function call times. It’s important to holistically measure and understand where our real bottlenecks are.

What Are JavaScript Parse & Compile bottlenecks for the average website?

“Buuuut, I’m not Facebook”, I hear you say dear, reader. “How heavy are Parse & Compile times for average sites out in the wild?”, you might be asking. Let’s science this out!

I spent two months digging into the performance of a large set of production sites (6000+) built with different libraries and frameworks — like React, Angular, Ember and Vue. Most of the tests were recently redone on WebPageTest so you can easily redo them yourself or dig into the numbers if you wish. Here are some insights. For Website development services check Vivid Designs

Apps became interactive in 8 seconds on desktop (using cable) and 16 seconds on mobile (Moto G4 over 3G)

What contributed to this? Most apps spent an average of 4 seconds in start-up (Parse/Compile/Exec)..on desktop.

On mobile, parse times were up to 36% higher than they were on desktop.

Was everyone shipping huge JS bundles? Not as large as I had guessed, but there’s room for improvement. At the median, developers shipped 410KB of gzipped JS for their pages. This is in line with the 420KB over ‘average JS per page’ reported by the HTTPArchive. The worst offenders were sending anywhere up to 10MB of script down the wire. Oof.

HTTPArchive stat: the average page ships down 420KB of JavaScript

Script size is important, but it isn’t everything. Parse and Compile times don’t necessarily increase linearly when the script size increases. Smaller JavaScript bundles generally do result in a faster load time (regardless of our browser, device & network connection) but 200KB of our JS !== 200KB of someone else’s and can have wildly different parse and compile numbers.

Measuring JavaScript Parse & Compile today

Chrome DevTools

Timeline (Performance panel) > Bottom-Up/Call Tree/Event Log will let us drill into the amount of time spent in Parse/Compile. For a more complete picture (like the time spent in Parsing, Preparsing or Lazy Compiling), we can turn on V8’s Runtime Call Stats. In Canary, this will be in Experiments > V8 Runtime Call Stats on Timeline.

Chrome Tracing

about:tracing — Chrome’s lower-level Tracing tool allows us to use the `disabled-by-default-v8.runtime_stats` category to get deeper insights into where V8 spends its time. V8 have a step-by-step guide on how to use this that was published just the other day.

WebPageTest

WebPageTest’s “Processing Breakdown” page includes insights into V8 Compile, EvaluateScript and FunctionCall time when we do a trace with the Chrome > Capture Dev Tools Timeline enabled.

We can now also get out the Runtime Call Stats by specifying `disabled-by-default-v8.runtime_stats` as a custom Trace category (Pat Meenan of WPT now does this by default!).

For a guide on how to get the most out of this, see this gist I wrote up.

User Timing

It’s possible to measure Parse times through the User Timing API as Nolan Lawson points out below:

The third <script> here isn’t important, but it’s the first <script> being separate from the second (performance.mark() starting before the <script> has been reached) that is.

This approach can be affected on subsequent reloads by V8’s preparser. This could be worked around by appending a random string to the end of the script, something Nolan does in his optimize-js benchmarks.

I use a similar approach for measuring the impact of JavaScript Parse times using Google Analytics:

A custom Google Analytics dimension for ‘parse’ allows me to measure JavaScript parse times from real users and devices hitting my pages in the wild.

DeviceTiming

Etsy’s DeviceTiming tool can help measure parse & execution times for scripts in a controlled environment. It works by wrapping local scripts with instrumentation code so that each time our pages are hit from different devices (e.g laptops, phones, tablets) we can locally compare parse/exec. Daniel Espeset’s Benchmarking JS Parsing and Execution on Mobile Devicesgoes into more detail on this tool.

What can we do to lower our JavaScript parse times today?

  • Ship less JavaScript. The less script that requires parsing, the lower our overall time spent in the parse & compile phases will be.
  • Use code-splitting to only ship the code a user needs for a route and lazy load the rest. This probably is going to help the most to avoid parsing too much JS. Patterns like PRPL encourage this type of route-based chunking, now used by Flipkart, Housing.com and Twitter.
  • Script streaming: In the past, V8 have told developers to use `async/defer` to opt into script streaming for parse-time improvements of between 10–20%. This allows the HTML parser to at least detect the resource early, push the work to the script streaming thread and not halt the document parsing. Now that this is done for parser-blocking scripts too, I don’t think there’s anything actionable we need to do here. V8 recommend loading larger bundles earlier on as there’s only one streamer thread (more on this later)
  • Measure the parse cost of our dependencies, such as libraries and frameworks. Where possible, switch them out for dependencies with faster parse times (e.g switch React for Preact or Inferno, which require fewer bytes to bootup and have smaller parse/compile times). Paul Lewis covered framework bootup costs in a recent article. As Sebastian Markbage has also noted, a good way to measure start-up costs for frameworks is to first render a view, delete and then render again as this can tell you how it scales. The first render tends to warm up a bunch of lazily compiled code, which a larger tree can benefit from when it scales.

If our JavaScript framework of choice supports an ahead-of-time compilation mode (AoT), this can also help heavily reduce the time spent in parse/compile. Angular apps benefit from this for example: Top web development company in Hyderabad visit Vivid Designs 

Nolan Lawson’s ‘Solving the Web Performance Crisis’

What are browsers doing to improve Parse & Compile times today?

Developers are not the only ones to still be catching up on real-world start-up times being an area for improvement. V8 discovered that Octane, one of our more historical benchmarks, was a poor proxy for real-world performance on the 25 popular sites we usually test. Octane can be a poor proxy for 1) JavaScript frameworks (typically code that isn’t mono/polymorphic) and 2) real-page app startup (where most code is cold). These two use-cases are pretty important for the web. That said, Octane isn’t unreasonable for all kinds of workloads.

The V8 team has been hard at work improving start-up time and we’ve already seem some wins here:

We also estimate a 25% improve on V8 parse times for many pages looking at our Octane-Codeload numbers:

And we’re seeing wins in this area for Pinterest too. There are a number of other explorations V8 has started over the last few years to improve Parsing and Compile times.

Code caching

From using V8’s code caching

Chrome 42 introduced code caching — a way to store a local copy of compiled code so that when users returned to the page, steps like script fetching, parsing and compilation could all be skipped. At the time we noted that this change allowed Chrome to avoid about 40% of compilation time on future visits, but I want to provide a little more insight into this feature:

  • Code caching triggers for scripts that are executed twice in 72 hours.
  • For scripts of Service Worker: Code caching triggers for scripts that are executed twice in 72 hours.
  • For scripts stored in Cache Storage via Service Worker: Code caching triggers for scripts in the first execution.

So, yes. If our code is subject to caching V8 will skip parsing and compiling on the third load.

We can play around with these in chrome://flags/#v8-cache-strategies-for-cache-storage to look at the difference. We can also run Chrome with — js-flags=profile-deserialization to see if items are being loaded from the code cache (these are presented as deserialization events in the log).

One caveat with code caching is that it only caches what’s being eagerly compiled. This is generally only the top-level code that’s run once to setup global values. Function definitions are usually lazily compiled and aren’t always cached. IIFEs (for users of optimize-js ;)) are also included in the V8 code cache as they are also eagerly compiled.

Script Streaming

Script streaming allows async or defer scripts to be parsed on a separate background thread once downloading begins and improves page loading times by up to 10%. As noted earlier, this now also works for sync scripts.

Since the feature was first introduced, V8 have switched over to allowing all scriptseven parser blocking <script src=””> to be parsed on a background thread so everyone should be seeing some wins here. The only caveat is that there’s only one streaming background thread and so it makes sense to put our large/critical scripts in here first. It’s important to measure for any potential wins here.

Practically, <script defer> in the <head> so we can discover the resource early and then parse it on the background thread.

It’s also possible to check with DevTools Timeline whether the correct scripts get streamed — if there’s one big script that dominates the parse time, it would make sense to make sure it’s (usually) picked up by the streaming.

Better Parsing & Compiling

Work is ongoing for a slimmer and faster Parser that frees up memory and is more efficient with data structures. Today, the largest cause of main thread jank for V8 is the nonlinear parsing cost. Take a snippet of UMD:

(function (global, module) { … })(this, function module() { my functions })

V8 won’t know that module is definitely needed so we won’t compile it when the main script gets compiled. When we decide to compile module, we need to reparse all of the inner functions. This is what makes V8’s parse-times non-linear. Every function at n-th depth is parsed n times and causes jank.

V8 are already working on collecting info about inner functions during the initial compile, so any future compilations can ignore their inner functions. For module-style functions, this should result in a large perf improvement.

See ‘The V8 Parser(s) — Design, Challenges, and Parsing JavaScript Better’ for the full story.

V8 are also exploring offloading parts of JavaScript compilation to the background during startup.

Precompiling JavaScript?

Every few years, it’s proposed engines offer a way to precompile scripts so we don’t waste time parsing or compiling code pops up. The idea is if instead, a build-time or server-side tool can just generate bytecode, we’d see a large win on start-up time. My opinion is shipping bytecode can increase your load-time (it’s larger) and you would likely need to sign the code and process it for security. V8’s position is for now we think exploring avoiding reparsing internally will help see a decent enough boost that precompilation may not offer too much more, but are always open to discussing ideas that can lead to faster startup times. That said, V8 are exploring being more aggressive at compiling and code-caching scripts when you update a site in a Service Worker and we hope to see some wins with this work.

We discussed precompilation at BlinkOn 7 with Facebook and Akamai and my notes can be found here.

The Optimize JS lazy-parsing parens ‘hack’

JavaScript engines like V8 have a lazy parsing heuristic where they pre-parse most of the functions in our scripts before doing a complete round of parsing (e.g to check for syntax errors). This is based on the idea that most pages have JS functions that are lazily executed if at all.

Pre-parsing can speed up startup times by only checking the minimal a browser needs to know about functions. This breaks down with IIFEs. Although engines try to skip pre-parsing for them, the heuristics aren’t always reliable and this is where tools like optimize-js can be useful.

optimize-js parses our scripts in advance, inserts parenthesis where it knows (or assumes via heuristics) functions will be immediately executed enabling faster execution. Some of the paren-hacked functions are sure bets (e.g IIFEs with !). Others are based on heuristics (e.g in a Browserify or Webpack bundle it’s assumed all modules are eagerly loaded which isn’t necessarily the case). Eventually, V8 hopes for such hacks to not be required but for now this is an optimization we can consider if we know what you’re doing.

V8 are also working on reducing the cost for cases where we guess wrong, and that should also reduce the need for the parens hack

Conclusions

Start-up performance matters. A combination of slow parse, compile and execution times can be a real bottleneck for pages that wish to boot-up quickly. Measure how long your pages spend in this phase. Discover what you can do to make it faster.

We’ll keep working on improving V8 start-up performance from our end as much as we can. We promise 😉 Happy perfing!

Source

Voip Business Phone Systems Are Advantageous For Enterprises Functioning

vci-india

In today’s competitive corporate world, every business firm, whether small or large, has to make good use of modern communication technologies, in order to present a competitive and customer friendly approach. Effective communication has a key role to play in the success of every business, regardless of the medium used. As a faster medium of communication, small business phone systems have their own specific role to play in the smooth running of an organization. Whenever we talk about small business phone systems, the technology that comes to our minds is the Private Branch Exchange system, commonly referred to as PBX. It can be called the private telephone exchange of any business firm or office, but is often recommended as an economical option for firms, where the number of employees is greater than forty. 

The installation of VoIP communication systems in a business enterprise has now become an essential requirement to increase productivity, reduce costs and improve efficiency. The VoIP (Voice over Internet Protocol) phone system is a powerful and easy to use telephone system that allows you to make phone calls directly from your computer. To use a VoIP business phone system, there is no need to invest in special equipment. All that is required is a regular telephone with an Internet connection.

Whether for a small enterprise or the largest enterprises, this communication system can resolve many of the communication problems that you might have with your regular phone lines. When compared to traditional phone lines, VoIP phone systems are an affordable option, and best of all, these help to maintain hassle-free communication, within the organization as well as outside, with the associated advanced features and great calling plans. VoIP business phone systems are advantageous for enterprises functioning in multiple locations. The biggest advantages of Voice over IP telephone systems are the great convenience they offer, and the many amazing features. The key features include auto attendant, pager notify, voice to email, inbound caller ID lookup, outbound caller ID blocking, call waiting, music on hold, e-mail message delivery, cell phone message notify, speed dialing, multiple find-me numbers per extension, last dialed redial, do not disturb option, and custom menus.

The advantages that can be gained by using VoIP phone systems are: • Unify multiple employees at different locations with one phone number • Transfer calls easily to anyone, anywhere • No new hardware required; use existing phones • Prioritize your calls • Easier to install and manage • Simplified management

However, there are a few disadvantages associated with VoIP business phone systems. The network requirements and the potential for outages are its two main drawbacks. Once you decide to purchase an IP communication system for your business, the next step is to determine which piece of equipment is right for you. A number of hosted PBX telephone system service providers are active in the market, offering different models of telecommunication systems with great features to drive your business forward and ensure its future success. Before deciding on any one service, you should gain a clear understanding of its great features, service plans, ratesFind Article, and the maintenance costs involved.

Angular 2 Forms Tutorial – Validation

Introduction

In the first part of this Angular 2 Forms series we’ve created a first form component in Angular 2. This was just a simple form consisting of the following input elements:

In the first part of this Angular 2 Forms series we’ve created a first form component in Angular 2. This was just a simple form consisting of the following input elements:This form has been implemented by using the template-driven forms approach of Angular 2. This means that a component’s template was used to arrange the forms HTML elements. In addition Angular 2 form directives have been used in the template to enable the framework to construct the internal control model that implements form functionality. The following template code was used: For Top web design company check Vivid Designs

<div class="container">
  <h1>Book Form:</h1>
  <form>
    <div>
      <label for="title">Title</label>
      <input type="text" class="form-control" id="title" required [(ngModel)]="model.title" name="title">
    </div>
    <div>
      <label for="author">Author</label>
      <input type="text" class="form-control" id="author" required [(ngModel)]="model.author" name="author">
    </div>
    <div>
      <label for="url">URL</label>
      <input type="text" class="form-control" id="url" required [(ngModel)]="model.url" name="url">
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
  </form>
  <div>
    <h2>Model:</h2>
    {{ currentBook }}
  </div>
</div>

In this second part of the Angular 2 Forms series we’re going to focus on another important aspect of form creation: input validation. Angular 2 makes form validation very easy. In the following you’ll learn how to use apply form validation by using HTML validation attributes and Angular 2 validation functionality.

Adding HTML Validation Attributes To Input Elements

Form validation in Angular 2 is based on HTML validation attributes. HTML validation attribute are used in input elements. One validation attribute has already been applied to all three input elements of our form: required. The required attribute defines that entering a value in the input field is mandatory. A full list of HTML validation attributes can be found at https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation.

Now we’re going to add to more validation attributes to the first input field of the book title. Let’s define that we want the user to input a title which has a length between 5 and 30 characters:

<input type="text" class="form-control" id="title" required minlength="5" maxlength="30" [(ngModel)]="model.title" name="title">

To implement that constraint we’re adding the HTML validation attributes minlength and maxlength to the input element

Furthermore we’re using the pattern HTML validation attribute to for the URL input field:

<input type="text" class="form-control" id="url" required pattern="https?://.+" [(ngModel)]="model.url" name="url">

Herewith we make sure that only valid URLs starting with http:// or https://can be entered in this input field.

Adding Validation Error Messages To The Form

In the next step we’re going to include error messages in the form template. If a certain validation rule is not met these messages should be displayed to the user:

<div class="container">
  <h1>Book Form:</h1>
  <form>
    <div class="form-group">
      <label for="title">Title</label>
      <input type="text" class="form-control" id="title" required minlength="5" maxlength="30" [(ngModel)]="model.title" name="title" #title="ngModel">
      <div *ngIf="title.errors && (title.dirty || title.touched)" class="alert alert-danger">
        <div [hidden]="!title.errors.required">
          Book title is required!
        </div>
        <div [hidden]="!title.errors.minlength">
          Title must be at least 5 characters long.
        </div>
        <div [hidden]="!title.errors.maxlength">
          Title cannot be more than 30 characters long.
        </div>
      </div>
    </div>
    <div class="form-group">
      <label for="author">Author</label>
      <input type="text" class="form-control" id="author" required [(ngModel)]="model.author" name="author" #author="ngModel">
      <div *ngIf="author.errors && (author.dirty || author.touched)" class="alert alert-danger">
        <div [hidden]="!author.errors.required">
          Book author is required!
        </div>
      </div>
    </div>
    <div class="form-group">
      <label for="url">URL</label>
      <input type="text" class="form-control" id="url" required pattern="https?://.+" [(ngModel)]="model.url" name="url" #url="ngModel">
      <div *ngIf="url.errors && (url.dirty || url.touched)" class="alert alert-danger">
        <div [hidden]="!url.errors.required">
          URL is required!
        </div>
        <div [hidden]="!url.errors.pattern">
          Must be a valid URL!
        </div>
      </div>
    </div>
    <div>
      <button type="submit" class="btn btn-default">Submit</button>
    </div>
  </form>
  <div>
    <h2>Model:</h2>
    {{ currentBook }}
  </div>
</div>

First of all notice that template variables have been introduced for all three input elements by adding

  • #title="ngModel" to the title input control
  • #author="ngModel” to the author input control
  • #url="ngModel" to the URL input control

By using the variables titleauthor and url in the code we now have access to the form controls. We are able to check if the form control is in an error state and display messages to the user. Best web development company in Hyderabad visit Vivid Designs

To display error messages a div element is included for every input element

<div *ngIf="title.errors && (title.dirty || title.touched)" class="alert alert-danger"> ... </div>

NgIf is used to only display the content of this element if the assigned expression string is valid. The expression becomes valid if the control is in an error state (title.errors is true) and at the same time the control is marked is dirty (title.dirty is true) or is marked as touched (title.touch is true). This ensures the error messages are not displayed initially. If the dirty flag is set the value of the input element has been changed by the user. If the touched flag is set to true the control has been visited by the user.

For each error message another div block is placed inside of the previously described block:

<div [hidden]="!title.errors.required">
Book title is required!
</div>

The hidden attribute is bound to the negated value of the respective error. E.g. if title.errors.required is true (which means the field value is empty) the hidden attribute is set to false, so that the error message is displayed.

Using Angular 2 Validation CSS Classes

Angular 2 automatically attached CSS classes to the input elements depending on the state of the control. The following class names are used:

  • ng-touched: Control has been visited
  • ng-untouched: Control has not been visited
  • ng-dirty: Control’s value has been changed
  • ng-pristine: Control’s value hasn’t been changed
  • ng-valid: Control’s value is valid
  • ng-invalid: Control’s value isn’t valid

We can make use of those class by defining CSS styling which gives additional visual feedback to the user. Insert the following code into file book-form.component.css:

.ng-valid[required], .ng-valid.required  {
  border-left: 5px solid #42A948; /* green */
}
.ng-invalid:not(form)  {
  border-left: 5px solid #a94442; /* red */
}

First, a red border is display on the left side of the input controls, indicating that a value is missing. If the user starts typing the and the field constraints are fulfilled the color changes to green.

Form Validation

The validation logic we’ve implemented so far is specific for single input fields of the form. We’re able to extend the logic to also take into consideration the validation status of the complete form. The evaluate if a form is valid or invalid can be useful to e.g. control if the form can be submitted or not.

First let’s introduce a new template variable for the form itself:

<form #bookForm="ngForm">

With that code in place we’re able to retrieve the validity status of the form by using bookForm.form.valid. Only if all input controls of the form a valid the form becomes valid too.

The form validity status can now be used together with the disabled attribute of the form’s submit button:

<button type="submit" class="btn btn-default" [disabled]="!bookForm.form.valid">Submit</button>

Now the submit button is only enables of the form is in valid state.

The final result can be seen in the following:

Credit

The 10 Cloud Based Features That Can Benefit Your Small Business

scriptcafe

As small businesses change and grow, the ability to quickly scale up — or down — becomes a necessity. Adding new employees, for example, requires the company to adapt its phone system to accommodate the need for more lines.That is harder to accomplish using traditional on-premise telephony systems due to higher setup and maintenance costs, the need for hardware on-site and reliance on IT support. A cloud-based phone system, on the other hand, would enable small businesses to manage communication services in a less costly, more streamlined and agile manner.The following points, gleaned from an email exchange between Small Business Trends and Aaron Charlesworth, VP of product marketing at Vonage, outline the benefits that small businesses can accrue by switching from traditional PBX systems to cloud-based VoIP technology. Check for 10 Cloud Based Features

Many small businesses today are making the switch over to Cloud based business phone systems. There are plenty of advantages to using such a service, but a lot of small business owners are overlooking some of the most valuable features. Beyond options like voicemail, call waiting, toll free numbers, call forwarding, and remote operation, you’ll find a host of other features that can help your small business.

1: Door phone entry buzzer integration

This feature allows you to integrate an analog door phone so that you can have a two-way call with visitors and then unlock the door from your phone if you deem them worthy. A great way to upgrade the security of your building.

2: Find me/follow me call routing

Mobile workers will appreciate this feature. Find me/follow me call routing allows you to create a list of numbers where you can be found before the call gets pushed to voicemail. So, for example, you might have your office phone ring twice, but on the third ring, your cell phone starts to ring, and then on the fifth, your home phone. If the list is exhausted, the caller gets sent to voicemail.

3: Voicemail to email transcription

Voicemail to email transcription transcribes your voicemail messages to text and sends them to a preferred email. You don’t have to worry about furiously scribbling names, numbers, and addresses. Take your time and read them in your email at your leisure. This also allows you to file, organize, delete, and search all your voicemails in a way that would otherwise be impossible.

4: Music on hold

If your company often has to put callers on hold, this feature is a necessity. Do not subject your callers to terrible elevator music — or worse, silence. This feature allows you to choose what your callers listen to as they wait. (Tip: You can’t go wrong with Journey.)

5: Bandwidth utilization and inbound/outbound call detail reports

Data! As a business, data tracking is essential to figure out where to direct your company’s time and energy. A managed, cloud-based VoIP service can provide bandwidth utilization information that allows you to view data usage over a period of time. Inbound and outbound call detail reports let you view details of your company’s call history, including rate centers, duration, originator, destination, and cost.

6: Call screening

Call screening is an often-forgotten feature of the VoIP business world that can come in handy. It allows you to look at a number on the caller ID and choose how to treat it. For example, if your spouse is calling, you can redirect the number to your cell phone. Or if it’s a caller that keeps trying to sell you energy supplements, you can disconnect them.

7: Coaching tools

Instead of giving your employees advice after they’ve hung up the phone, give them advice while they’re on the call. Two features can help you train and monitor your employees’ on-phone performance: barge and whisper. Barge allows you to listen to a conversation between an employee and a client without interrupting. You can alert them — or decide not to. Whisper allows you to provide advice, tips, and information to your employees while they are on the phone with a client without the client being aware.

8: Auto attendant

An auto attendant is one of the hidden gems of premium VoIP services. This feature allows callers to interact with a menu to choose an appropriate extension. Your business will suddenly seem more professional and impressive. It’s like having an electronic receptionist!

9: Conferencing

Most people know about conferencing with VoIP services, but not everyone takes advantage of all the features that might come with it. Often, you can set up a conference floor monitor. This allows you to manage invitations, “hand-raises,” muting individuals, etc. Online conferences can get messy and confusing if not managed correctly, so this is a great tool to learn how to use.

10: Do not disturb

This feature does exactly what its name implies: leaves you undisturbed. You can turn it on to temporarily stop incoming calls to your phone. This becomes especially useful during conferences, lunches, and meetings. Best of all, you can program it so that it does not just ignore callers, but directs them toward voicemail or another destination of your choice.