Credits : Dataconom

In my previous  article, I  talked about model governance and holistic model management. I received great response, along with some questions about the differences between Data Science and Software Development  workflow. As a response, this piece highlights the key differences in processes, tools and behavior between Data Science and software engineering teams, as well as best practices we’ve learned from years of serving successful model driven enterprises. 

Why Understanding the Key Differences Between Data Science  and Software Development Matters

As Data Science  becomes a critical value driver for organizations of all sizes, business leaders who depend on both Data Science  and Software Development teams need to know how the two differ and how they should work together. Although there are lots of similarities across Software Development  and Data Science , they also have three main differences: processes, tooling and behavior. In practice, IT teams are typically responsible for enabling Data Science team with infrastructure and tools. Because Data Science  looks similar to Software Development (they both involve writing code, right?), many IT leaders with the best intentions approach this problem with misguided assumptions, and ultimately undermine the Data Science teams they are trying to support.

Data Science  != Software Engineering

I. Process

Software engineering has well established methodologies for tracking progress such as agile points and burndown charts. Thus, managers can predict and control the process by using clearly defined metrics. Data Science  is different as research is more exploratory in nature. Data Science projects have goals such as building a model that predicts something, but like a research process, the desired end state isn’t known up front. This means Data Science  projects do not progress linearly through a lifecycle. There isn’t an agreed upon lifecycle definition for Data Science work and each organization uses its own. It would be hard for a research lab to predict the timing of a breakthrough drug discovery. In the same way, the inherent uncertainty of research makes it hard to track progress and predict the completion of Data Science  projects.

The second unique aspect of Data Science  work process is the concept of hit rate, which is the percentage of models actually being deployed and used by the business. Models created by Data Scientists are similar to leads in a sales funnel in the sense that only a portion of them will materialize. A team with 100 percent reliability is probably being too conservative and not taking on enough audacious projects. Alternatively, an unreliable team will rarely have meaningful impact from their projects. Even when a model didn’t get used by the business, it doesn’t mean it’s a waste of work or the model is bad. Like a good research team, Data Science  teams learn from their mistakes and document insights in searchable knowledge management systems. This is very different from Software Development where the intention is to put all the development to use in specific projects.

The third key difference in the model development process is the level of integration with other parts of the organization. Engineering is usually able to operate somewhat independently from other parts of the business. Engineering’s priorities are certainly aligned with other departments, but they generally don’t need to interact with marketing, finance or HR on adaily basis. In fact, the entire discipline of product management exists to help facilitate these conversations and translate needs and requirements. In contrast, a Data Science  team is most effective when it works closely with the business units who will use their models or analyses. Thus, Data Science team needs to organize themselves effectively to enable seamless, frequent cross-organization communication to iterate on model effectiveness. For example, to help business stakeholders collaborate on in-flight Data Science projects, it’s critical that Data Scientists have easy ways of sharing results with business users.

II. Tools and Infrastructure

There is a tremendous amount of innovation in the Data Science  open source ecosystem, including vibrant communities around R and Python, commercial packages like H2O and SAS, and rapidly advancing deep learning tools like TensorFlow that leverage powerful GPUs. Data Scientists should be able to easily test new packages and techniques, without IT bottlenecks or risking destabilizing the systems that their colleagues rely on. They need easy access to different languages so they can choose the right tool for the job. And they shouldn’t have to use different environments or silos when they switch languages. Although it is preferable to allow greater tool flexibility at the experimentation stage, once the project goes into deployment stage, higher technical validation bars and joint efforts with IT become key to success.  

On the infrastructure front, Data Scientists should be able to access large machines, specialized hardware for running experiments or doing exploratory analysis. They need to be able to easily use burst/elastic compute on demand, with minimal DevOps help. The infrastructure demands of Data Science  teams are also very different from those of engineering teams. For a data scientist, memory and CPU can be a bottleneck on their progress because much of their work involves computationally intensive experiments. For example, it can take 30 minutes to write code for an experiment that would take 8 hours to run on a laptop. Furthermore, compute capacity needs aren’t constant over the course of a Data Science  project, 

 with burst compute consumption being the norm rather than the exception. Many Data Science techniques utilize large machines by parallelizing work across cores or loading more data into the memory.

III. Behavior   

With software, there is a notion of a correct answer and prescribed functionality, which means it’s possible to write tests that verify the intended behavior. This doesn’t hold for Data Science  work, because there is no “right” answer, only better or worse ones. Oftentimes, we’ll hear Data Scientists discuss how they are responsible for building a model as a product or making a slew of models that build on each other that impact business strategy. Unlike statistical models which assume that the distribution of data will remain the same, the distribution of data in machine learning are probabilistic, not deterministic. As a result, they drift and need constant feedback from end users. Data Science  managers often act as a bridge to the business lines and are focused on the quality and pace of the output. Evaluating the model and detecting distribution drift enables people to identify when to retrain the model. Rather than writing unit tests like software engineers, Data Scientists inspect outputs, then obtain feedback from business stakeholders to gauge the performance of their models. Effective models need to be constantly retrained to stay relevant as opposed to a “set it and forget it” workflow. 

Final Thoughts

In general, there are several good practices for Data Scientists to learn from Software Development , but there are also some key differences to keep top of mind. The rigor and discipline that modern Software Development  has created is great and should be emulated where appropriate, but we must also realize that what Data Scientists build is fundamentally different from software engineers. Software Development and Data Science processes often intersect as software captures much of the data used by Data Scientists as well as serving as the “delivery vehicle” for many models. So the two disciplines, while distinct, should work alongside each other to ultimately drive business value. Understanding the fundamental nature of Data Science  work can set a solid foundation for companies to build value-added Data Science  teams with the support of senior leadership and IT team.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Analyticsindiamag

Every job needs an appropriate tool for the kind of role that it has. The programming language skill depends very much on the job role. But there are some programming languages that have a demand in a majority of job roles and also have a high pay for it.

Here is a list of top 8 programming languages that will help you earn more in 2019:

1. Python:

Python is the most popular and demanding language in the job market. According to a survey by Analytics India Magazine, in 2018, 48% of respondents said that Python was the most important language to be learnt by a Data Scientist. In 2019, this sentiment is being clamoured, as almost 75% of the respondents are talking about the importance of Python in data science. The language which is scripted as opposed to compiled will continue to have the demand that it has today in the future. It is easy to learn and has an easy to understand syntax and official tutorials for beginners. It is free, open-sourced and has an easy integration with the web services. It is especially popular in data science and machine learning and also has a GUI-based desktop application.

Python users:  YouTube, Instagram, Pinterest, SurveyMonkey are all built in Python. World of Tanks, Inkscape, Civilization IV, Sims 4, Vegas Trike and Toontown are some of the video games for which Python has been used. It is also used for scientific and computational applications such as FreeCAD and Abacus. Many startups use Python as their primary backend stack.

2. Java

Java, owned by Oracle Corporation, is the second most popular choice in large organisations and it has remained so for decades. It is used by a number of large organisations and is very widely used in Android App Development. Presently, there are more than 3 billion devices that are running applications that are built with the help of the language. Java is widely used for building enterprise-scale web applications, something that every organisation requires. Its policy of Write Once Run Anywhere (WORA) lets it be flexible to run on any platform and be portable across a wide range of platforms from mainframe data centers to smartphones. Java frameworks of Spring, Struts, and Hibernate are very popular.

Java users: Java is mostly used as a backend language in a number of websites like Amazon, Google, Twitter and YouTube. If you are looking for a development based job at a large organization deploys Java at large.

3. JavaScript:

The object oriented language is most popular for interactive effects within the browsers. It is most popularly used to design interactive frontend applications. According to GitHub, it is the most popular language. It is a frontend language and is used in a number of popular web frameworks such as AngularJS, Node.js as well as React.js. It has a rich interfaces versatility and a single programming language for server side and client side scripts can be used with this language. Typescript is considered as a superset of JavaScript and it adds optional static typing features to the language software.

JavaScript users: Many startups are using NodeJS which is a JavaScript-based run-time environment. Majority of websites today use JS as their frontend, some popular examples of which are YouTube, Facebook, Google, Wikipedia and Amazon.

4. Swift:

Developed by Apple in 2014, is the most popular language for mobile platforms and was originally intended to be the replacement to C-based languages. It supports almost everything that is ranging from the programming language to the Objective-C. It was developed for usage in Linux and Mac applications. It is mainly used to keep the mobile apps in iOS-based devices as modern as possible. It mostly works towards safety performance and software design patterns. It helps the developer mistakes to be caught before the software goes into production. It also has a clean syntax and can be easily used with the IBM Swift Sandbox and the IBM Bluemix.

Swift users: App studios such as KeepSafe and Solstice need Swift coders. It is used in a number of iOS apps such as Mozilla Firefox, WordPress, SoundCloud and Flappy Bird game. Both Lyft and IBM use Swift instead of Objective-C. Those who want to serve the Apple community should learn Swift.

5. PHP

PHP programmers can embed the code written in server-side programming language flawlessly into HTML code throughout the Script tag. It plays a key role in web programming and server side scripting. It is equipped with a number of tools making it more efficient. These tools are used in the development by adding useful features and functionalities to the web application and carry on web development tasks without writing prolonged and composite code. It has an extensive range of open-source framework for the developers to choose from, some of which fall in the categories of full-stack web frameworks, while others are micro frameworks. Although not as popular as Python and JavaScript, PHP developers are still needed in large numbers.

PHP users: WordPress, Wikipedia and Yahoo heavily use PHP and has helped its popularity as a web language. Developers often use it for transferring databases or using SQL.

6. Ruby

The OOP language is very much in high demand, especially for startups. It supports in the procedural and functional programming notation and is very easy to use. It is a general-purpose scripting language so it is used in web applications, web servers, system utilities, database work and backups. The web-application framework which is implemented in Ruby is called as Ruby on Rails or RoR.

Ruby users: Airbnb, CrunchBase, GitHub are some of the popular platforms that use Ruby.

7. C#

Created by Microsoft, C# is widely used for backend programming. It is considered to be one of the most powerful programming languages in the Dot NET framework. It takes the help from an integrated development environment product that is Microsoft Visual C++ and is hence a popular choice for applications that are based on Windows, Android and iOS. The language is also widely used for building games (using Unity), building Window mobile phone apps and lots of other use cases.

C# users: Major companies like Accenture, Infosys, Netflix, Capital One need C# developers. The C# is used in a number of backend operations of many popular websites such as Dell, Bing, Visual Studio and Market Watch.

8. GoLang

The language made by Google supports for multithreading at large and is hence used by a lot of companies that rely heavily on distributed systems. It has goroutines instead of threads which consume almost 2KB memory from the heap. It provides a high performance like C/C++ and has efficient concurrency handling like Java.

GoLang users: Go is widely used in startups in Silicon Valley. Some of the Indian companies that use the language are Jabong and Razorpay. The core Go team works at Google. Google – the core Go team work at Google. Most uses of Go at Google are confidential. The YouTube team have released their MySQL scaling infrastructure as open source software.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Zdnet

Salaries for in-demand programming skills including Java and PHP are rising rapidly. Advertised tech salaries have grown for the third year in a row, up 1.7% in 2018, with pay for specialised tech roles increasing significantly, as demand for .NET, PHP and Java developers continues to expand.

Over that three-year period, Java developers have seen the largest increase in salaries – 41%. Their wages also increased 6% between 2018 and this year – the average Java developer earns £63,700, although that can rise to £70,700 according to the data from recruitment company Reed.

The second best-paid programming role was full-stack developer, which pays £53,500 on average, rising to £60,300. That’s up 5.6% on last year and 18.8% up on 2016.

PHP developers have seen salaries increase by 20.6% over the three-year period, and enjoyed the the largest increase of any tech role in the past year, up 6.9%. .NET developers have also seen a significant boost in salary during the period, with average pay increasing from £39,900 in 2016 to £47,400 this year – an 18.8% rise.

In most programming language popularity indexes JavaScript, Java, and Python are the most popular languages.    

Data scientist, data analyst, technical architect, DBA and network engineer have also all seen double-digit increases to salary over the three years.

Pay for the more business-focused roles, such as business analyst and project manager, has also risen, but by a smaller amount than for developer roles.

Indeed, one of the few jobs to see pay decline in the last three years, according to the data from Reed, is that of IT director, which it said dropped between 2016 and 2018, only to climb back up slightly this year. Overall, average IT director pay has dropped slightly over the period from £89,200 to £83,600.

These rising salaries are matched by increasing demand for staff with these skills, according to Reed: while the overall number of technology roles advertised increased by 10% since the start of 2018, specialist roles such as data scientist (20%), .NET developer (13%), and BI developer (13%), showed increases considerably higher than average. Demand for full-stack developers – a role that can demand many different developer skills – has also increased rapidly, with a 41% increase in roles advertised since the start of 2018.

The data comes from jobs posted on Reed’s website between 2015 and 2017 and the advertised salaries.

Andrew Gardner, director of Reed Technology, said: “There are plenty of roles out there for candidates with mobile experience and front-end development. Alongside that, firms will also need people with cloud-based experience, and storage skills. The impact of legislation such as GDPR is creating a lot of demand, with companies making sure they have the right skills, systems and processes in place – as a result roles in data are also growing.”

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Customerthink

Suppose you go to a tailoring shop to purchase a 3-piece suit. The tailor will ask you to choose the fabric. Then he will take your measurements. You will be given options on the various specifics of what you would like on your suit. For e.g.: number of pockets, buttons, their shape, their, and other paraphernalia. After this rigorous process, he will provide you with a date for trial. He does this in order to make sure what he tailors fits perfectly on you. Then comes the delivery date where you get your finished product i.e. the suit.
Analyzing the aforementioned we derive that the role of the customer is obligatory in almost every step of the process. Similar is the requirement when a customer goes on to purchase custom developed software. The software development companies in the USA hire website designers to meet the requirement of the customers. They are tailors in this case. What the customer wishes for, the developers will tailor accordingly. Customer Software development is not a one-stop shop. The customer has to be an active participant in the development process.

An Adequate amount of requirements:

To the common eye, this may seem to be a very easy job. But it is completely the opposite. Simple economics says that there are no boundaries to desires/wants. Hence the website development services company should minutely understand every requirement of the customer. In view of the above process, there are some details stated below for a better understanding:

Outline of the project:

After a customer makes contact with one of the software development companies in the USA regarding the development of software, the evaluators of the software company reach out to the customer in person. They try to analyze the business structure of the customer and then after evaluation proposes the software requirements that are desired by him. Only after the customer gives the go-ahead, is the project taken any further.
In this stage, if the customer doesn’t provide enough attention to the on-going process, then there are chances of things going south later on. If errors happen to creep out in such a preliminary stage, then it may lead to overhead costs, delayed delivery or worse pull-outs.

Detailed introspection:

Here the customer must show the developer his foresight. Whether be it in person or on paper. He needs to explain to the developers why he in dire need of software application. It is useful if the customer makes detailed documentation of his foresight.

• In this documentation, he is first required to speak about what’s and whys’.
• His analysis of his basic business structure, the services he provides, the achievements, the pitfalls.
• What he is wanting out of the software?
• An outline of the basic features he would like to see in the software.
• The advantages/profits he foresees after implementation of the software.

If the customer has a team of technical professionals in his/her company who are well-versed and sharped-eyed on what is required, then it will be better for them to prepare the documentation. The reason being that they are the first 

responders to any problem that is persisting in the customer’s company. Hence they will be able to provide a better outlook on what is necessarily required.

Management introspection:

Every educational course has a vision and outcome. Similar is the case for every company out there. The customer is required to lay down the outcomes of his organization to the custom website development services providing company. He has to show the developers what he intends to give back to his consumers. In order to fulfill all the above process, much introspection is required in the root level i.e. meetings with the employees. They are the ones who will be able to give a more detailed analysis of the problems and also give their take on how they need to be fixed. Though this collaboration with the customer’s employees is a relatively time-consuming process, the result of such intricate details is worthwhile.

Clarity:

Developers may not get the right answers or rather clarity in answers from the company owner. It is very necessary to clear arising doubts by the customer as far as Customer Software development goes. The developers should turn to people who have the ability to clear out their doubts. The more transparent the answers, the fewer obstacles there will be in the development process.

Assessment:

After the vigorous question and answer round, the software company which hires website designers to start to begin with the work. They provide a timeline to the customer. During this timeline, the developers deliver many prototype models to the customer for their assessment and review. They make the customer go through various technical elements of the whole process and ask for an evaluation. With every small review of the customer, they inch towards the completion of the project. Active participation of the customer in this thorough process makes the product meaningful.

On the contrary, if the customer decides to not go through all the technicalities then it becomes a serious problem. The developers go ahead with whatever assessment is made and hence it may lead to an unsuccessful project. This causes an increase in costs and timeline. It is because the developers again have to redo the work correcting the errors and mistakes which have been made in the end product due to the negligence of the customer.

Supervising the budget:

Another major role of the customer is to look over the money he is spending on the development of the software. Generally, these go into millions. Hence it is his duty to keep a track of how efficiently the money is being spent on the development of the software. A little too negligence will cost you millions of dollars.

Conclusion:

Risk undoubtedly comes inclusive in the software development business. But one must have the capability to see it through to the end. The key to the development business is Focus and Attention. The customer must indulge himself into the development process and keep a close watch on every technical element that unfolds.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.




If you’re a startup or an entrepreneur like to start your own e-commerce business, you should be aware of a few important things. The first and foremost thing you should care about is to find a good tech partner who is able to deliver all your requirements as a single window solution. Your website should work good on a desktop computers besides working across all mobile platforms. Your e-Commerce portal should be able to support a large number of concurrent users to make sure it never disappoints you in the wake of a high volume of traffic. You should select a front-end design that is simple and user-friendly. Your website content and the member panel should be easy and straight forward. There are many different methods to test the performance of your website under pressure. Online security is another important concern for your website. It is advisable that you carry out a thorough testing of your website for all potential security flaws by a professional company before going live. One really important parameter for success is how often you communicate with your registered members. Two different websites with different communication strategies often come out with different sales figures. Give yourself the best chance with these tips, and try not to let the stress get to you! Remember: you’ve got this.

Life isn’t simple when you choose to become an entrepreneur in India. Being a successful entrepreneur requires a lot of patience and an enormous amount of hard work. With outdated infrastructure across the nation and woefully old fashioned mindset still among the Indian investors, no doubt it’s often a mission impossible for many Indians. Whether it’s your business or the social life everything is going to be severely impacted by your efforts. You must be a genius to be victorious in such adverse conditions. You are almost sure to find it impossible to climb the ladder of success without substantial investment. You need investment for your business to take wings. You need a good investor, a visionary, who is ready to place its trust (and money) on you. This is going to take quite a lot of time. Even after a decade of hard work you may find yourself in the middle of nowhere. It’s not easy to setup a successful business. During this time, you need to stay focused, stay calm and ready to face odd situations. You must be a good learner. You should learn from your mistakes and take measures not to repeat those errors. You should also learn to manage your resources well. Make sure you utilize every single resource under your control. Entrepreneurship is challenging but isn’t impossible. If you have it in you and ready to sacrifice a few years of your life, it’s definitely achievable.

Credits : Customerthink

One of the most daunting tasks for any business is choosing the right PHP development framework to build a robust web application. PHP frameworks are not recently discovered technologies but Laravel is one of the newest kids on the block. It has exploded in popularity and gained immense momentum in no time at all. As a result, Laravel development services have received huge recognition when compared to its contemporaries.

1. Authorization

As Laravel has facilitated the execution of authentication techniques, it has become an indispensable part for any Laravel development company. It offers an easy way to assemble the authorization logic and manage access to resources. Besides, most of it can be configured extraordinarily.

2. Responsable Interface

Responsable Interface is an advanced feature added in Laravel 5.5 in August 2017. It is a class that can be utilized for the implementation of the interface and returned with the help of controller method. Subsequently, the router will assess the instance of Responsable.

3. Blade Templating Engine

Laravel comes with Blade templating engine that is lightweight, easy-to-use, and robust. This templating engine is better when compared to others because it does not limit the usage of plain PHP in the template’s view part. On the contrary, to make things easy and mitigate overhead, they are created as plain PHP and cached as such until any modifications are made.

4. Insightful Tutorials

If the developers can learn more, they can be a better professional. With Laravel, the developers get access to Laracasts that include free and paid video tutorials explaining the usage of Laravel. Jeffery Way, a proficient instructor shares his insights in these videos. Because of these valuable lessons, it becomes a breeze to use Laravel for website development.

5. Migration of Database

It is of utmost importance to maintain a sync of the database between development machines. Laravel database migrations makes it absolutely convenient to align the database. It is quite likely that you have made several alterations to the database and hassle-migration makes Laravel one of the most preferred PHP framework for website development.

6. Security

Cyber crimes are increasing at an alarming rate, owing to which it becomes incumbent upon web developers to ensure the security of the application. Laravel employs salted and hashed passwords. This implies that the passwords will never be saved as plain text in the database. Bcrypt hashing algorithm generates an encrypted depiction of the password and mitigates the security concerns. Injection attacks become almost impossible as it uses prepared SQL statements. Moreover, it prevents the injection of tag by applying a simple method.

Take a look at the main security features offered by Laravel:

1. Configuration
2. Storage of passwords
3. Authentication of users
4. Manually logging in users
5. Securing routes
6. HTTP basic authentication
7. Password reminders and reset
8. Encryption
9. Authentication drivers

7. Model-View-Controller (MVC) Support

Laravel supports Model-View-Controller (MVC) architecture that maintains clarity between logic and presentation. It enables optimum performance and proper documentation. The multiple functionalities that it comes with serves like an icing on the cake. Take a look how MVC is implemented for Laravel.

Laravel-controller


Source

8. Artisan

Typically, a developer is supposed to interact with the Laravel framework with the help of a command line. It facilitates the creation and management of Laravel project environment. For this command-line, Laravel has an in-built tool known as Artisan. With the help of this tool, you can carry out all the repetitive and tedious tasks of programming with ease, without the need of any manual efforts.

9. Object-oriented Libraries

Object-oriented libraries and several pre-installed libraries make Laravel the leading PHP framework. An important pre-installed library is the Authentication library. Despite the fact that it is an absolute cakewalk to incorporate it, there are numerous advanced features in Laravel, namely Bcrypt hashing, password reset, checking active users, CSRF (Cross-site Request Forgery) protection, encryption, and checking active users to name a few.

10. Automatic Package Discovery

In the previous versions of Laravel, installing packages was not very user friendly. Laravel 5.5 introduced a new feature known as Automatic Package discovery that automatically identifies the packages which the users might want to install. This proved to be a respite for the developers as they do not have to setup any aliases or providers for installing the latest packages in Laravel. Apart from that, this version also lets the developers disable this feature in case of specific packages.

11. Better Performance

Laravel offers remarkable features like multilingual support that expands the website reach, and enhanced security for an application. Doing so helps the companies to make the most of its potential. In addition, Laravel has native support for Memcached and Radis caching systems. The cache driver gives you the functionality to store diverse cached objects and build applications quickly. The scalability of this framework ensures efficient traffic management on the web servers with a unique message queue system when any project development starts.

12. Customization Facility

If you are looking for a framework that enables customization, Laravel is the safest bet for you. It is not only competent solution but also comes with interactivity. This feature is useful for established businesses as well as startups that are yet to build their digital presence.

Over to you…

Laravel can really be a useful PHP framework for your next project owing to its growing popularity and useful features that improvethe process of development. If you are looking to harness Laravel’s capabilities to build a cost-effective app, you can think of hiring a Laravel developer who is familiar with all its features and capabilities.

By getting in touch with an experienced Laravel development company, you can build a scalable and intuitive solution that meets your dynamic business growth needs. So, what are you waiting for? Connect with our Laravel experts now.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Techcrunch

Google today announced that the Kotlin programming language is now its preferred language for Android app developers.

“Android development will become increasingly Kotlin-first,” Google writes in today’s announcement. “Many new Jetpack APIs and features will be offered first in Kotlin. If you’re starting a new project, you should write it in Kotlin; code written in Kotlin often mean much less code for you–less code to type, test, and maintain.”

It was only two years ago, at I/O 2017, that Google announced support for Kotlin in its Android Studio IDE. That came as a bit of a surprise, given that Java had long been the preferred language for Android app development, but few announcements at that year’s I/O got more applause. Over the course of the last two years, Kotlin’s popularity has only increased. More than 50% of professional Android developers now use the language to develop their apps, Google says, and in the latest Stack Overflow developer survey, it ranks as the fourth-most loved programming language.

With that, it makes sense for Google to increase its Kotlin support. “We’re announcing that the next big step that we’re taking is that we’re going Kotlin-first,” Chet Haase, chief advocate for Android, said.

“We understand that not everybody is on Kotlin right now, but we believe that you should get there,” Haase said. “There may be valid reasons for you to still be using the C++ and Java programming languages and that’s totally fine. These are not going away.”

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Zdnet

The WordPress content management system (CMS) is set to receive an assortment of new security features today that will finally add the protection level that many of its users have desired for years.

These features are expected to land with the official release of WordPress 5.2, expected for later today.

Included are support for cryptographically-signed updates, support for a modern cryptography library, a Site Health section in the admin panel backend, and a feature that will act as a White-Screen-of-Death (WSOD) protection –letting site admins access their backend in the case of catastrophic PHP errors.

With WordPress being installed on around 33.8 percent of all internet sites, these features are set to put some fears at ease in regards to some attack vectors.

CRYPTOGRAPHICALLY-SIGNED UPDATES

Probably the biggest and the most important of today’s new security features is WordPress’ offline digital signatures system.

Starting with WordPress 5.2, the WordPress team will digitally sign its update packages with the Ed25519 public-key signature system so that a local installation will be able to verify the update package’s authenticity before applying it to a local site.

Adding support for cryptographically-signed updates is an important step in preventing threat actors from carrying out a supply-chain attack on all WordPress sites, something that security firms have warned for more than two years now.

“Before WordPress 5.2, if you wanted to infect every WordPress site on the Internet, you just had to hack [the WordPress] update server,” said Scott Arciszewski, Chief Development Officer at Paragon Initiative Enterprises, and one of the developers involved in securing the WordPress update system.

“After WordPress 5.2, you would need to pull off the same attack and somehow pilfer the signing key from the WordPress core development team.”

WORDPRESS GETS A MODERN CRYPTOGRAPHIC LIBRARY

But Arciszewski’s work on the WordPress CMS did not end here. He also contributed to WordPress replacing an aging cryptographic library with one that’s fit for modern times.

Starting with WordPress 5.2, the CMS will support the Libsodium library for all cryptographic operations, instead of the now-deprecated and removed mcrypt.

Libsodium is now part of the WordPress CMS source code, along with Arciszewski’s sodium_compat library that works as a polyfill for older PHP servers that don’t support Libsodium.

WordPress now joins the ranks of modern web-dev tools that natively support Libsodium, such as PHP 7.2+, Magento 2.3+, and Joomla 3.8+.

Furthermore, with Libsodium’s addition to the WordPress CMS core, this also means plugin and theme developers can start supporting it as well.

Arciszewski published today a blog post with basic advice for WordPress plugin and theme developers on how to replace old mcrypt cryptographic functions with libsodium ones.


NEW SITE HEALTH SECTION

But the first WordPress 5.2 security features that users will spot in today’s release are not the changes to the CMS’ code, but the new “Site Health” section in the admin panel’s Tools menu.

This section includes two new pages –namely Site Health Status and Site Health Info.

The Site Health Status page works by running a set of basic security checks and delivering a report with the findings, along with recommendations to fix any discovered issues.

This section comes with a series of bundled tests, but site owners and developers of security plugins can also write their own to expand security checks to more areas of a WordPress site.

WordPress Site Health Status
Image: Marius L. J.

The second section, named Site Health Info, is what its name implies. It provides a plethora of information about the website and server setup and is meant for debugging purposes or when needing to share server details with an IT professional for support services.

Info is provided about the WordPress install, the underlying server, plugins, themes, and file storage usage.

WordPress Site Health Info
Image: Marius L. J.

SERVEHAPPY FEATURE

Another new security feature included with WordPress 5.2 is the Servehappy project, which was initially scheduled to be released with WordPress 5.1 but was split in two, with one part of the project shipping with WordPress 5.1 and the other half being shipped today, with WordPress 5.2.

WordPress 5.1 included the ability to show warnings when WordPress servers were running on servers with outdated PHP versions.

WordPress 5.2, released today, will include a feature called ‘White Screen Of Death’ (WSOD) protection, also known as “Fatal error protection,” and works as a “Safe Mode” for WordPress sites.

WSOD protection works by temporarily disabling themes and plugins when a PHP fatal error is encountered, so that site admins can regain access to their sites’ backends and fix the error.

The feature was initially scheduled for WordPress 5.1 but was delayed to v5.2 after security researchers raised several scenarios in which hackers could have abused the WSOD protection system to turn off WordPress security plugins and launch attacks on WordPress sites.

FUTURE PLANS

But work on improving WordPress security will not stop with the release of the 5.2 version. Other projects include project Gossamer, scheduled for WordPress 5.4.

Project Gossamer aims to port the same code-signing system used for the main WordPress updates into a framework that developers can use to code-sign updates for WordPress themes and plugins as well.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.

Credits : Theserverside

Software is everywhere, but the process to create a new software product can be complicated and challenging. That’s why software development best practices are important and can help reduce costs and speed up processes.

Without goals, a software project doesn’t have direction. Projects should start with a clear definition of the planned software’s goals, a discussion of those goals with stakeholders and an evaluation of expectations and risks. Simultaneously, you should be ready for various challenges that can come up, and implement strategies to keep the development process on course.

Best practices aren’t always a revelation of thought. Sometimes they are obvious. But as obvious as they might be, they are often overlooked, and developers need to be reminded of them. These software development best practices are obligatory for all software development projects.

Top five software development best practices

  1. Simplicity

Any software should be created in the most efficient way without unnecessary complexity. Simpler answers are usually more correct, and this thought perfectly meets the needs of the development process. Simplicity coincides with minor coding principles such as Don’t Repeat Yourself (DRY) or You Aren’t Gonna Need It (YAGNI).

  1. Coherence

Teamwork is vital for big projects and it’s impossible without a high level of consistency. Code coherence stands for the creation and adherence to a common writing style for all employees who develop software. This will allow managers or other coders to tell who the author of a given fragment is. Yes, when the whole code has the same style, it’s coherent.

Consistency helps a lot because colleagues will be able to test, edit or continue the work of each other. Vice versa, inharmonious projects can confuse your team and slow down the development process. Here are some tools that will help you enforce a single style:

  • Editorconfig: A system for the unification of code written with different IDEs,
  • ESLint: A highly customizable linter based on node.js,
  • JSCS: A linter and formatting tool for JavaScript,
  • HTML Tidy: Another linter for HTML which also finds errors and;
  • Stylelint: A linter for CSS with various plugins.
  1. Testing

Testing is essential for any product and on any stage. From the very first test run to the final evaluations, you should always test the product.

Thanks to modern approaches and the rise of machine learning, engineers have access to powerful tools such as automated algorithms to run millions of tests each second. Strategic thinking helps when you have to choose a testing type: functional, performance, integration or unit. If you choose the tools and testing types carefully, you can find a host of bugs and others issues that can ideally be fleshed out before you deploy your product. But remember not to only focus on test-driven development, remember about users and their needs.

  1. Maintenance

Unlike physical entities, the software has the potential to be immortal. Nevertheless, this would only be possible with good maintenance including regular updates, more tests and analysis. You’ve probably seen a warning before about an application that isn’t compatible you’re your device. Elaborate maintenance can get rid of these alerts and keep apps compatible with any hardware.

This principle is a bit controversial as not all teams or developers want to waste time on product compatibility with everything. However, you should focus on maintaining fresh code to allow your software to work on new devices. Thus, your product will meet the needs of more customers and help old applications to remain useful.

  1. Analysis

Apart from the pre-launch evaluation conducted by QA engineers and dedicated software developers, let me suggest you focus on performance analysis post-launch. Even the most elaborate code that results in a seemingly perfect match with your client isn’t guaranteed to work properly. There are a number of factors that can affect these results. Ideally, you’d like to have an analytics department to evaluate your numbers, but outsourced specialists always will work.

Methodologies and best practices

Apart from the aforementioned approaches, there are some other software development best practices to consider. Minor principles such as these can help play a role in a successful deployment:

  • Agile: This approach can help optimize your work. It is based on several development iterations that involve constant testing and result evaluation,
  • Repositories: Platforms such as Git are helpful to track versions, move back to previous iterations, work synchronization, and merging,
  • Accuracy over speed: Focus on correct code instead of fast code. Later it will be easier to speed up processes than rewrite everything and;
  • Experience sharing: Consider exchanging ideas and results with other developers to get external reviews if your project isn’t confidential.

Finally, let me propose a bit paradoxical statement: you don’t have to blindly follow best practices all the time. Time-proven ideas work fine for traditional processes when developers want to create common software without unique features.

But game-changing apps or innovative projects require fresh thinking. Surely, these software development best practices are fairly obvious and cover the most basic practices, but it’s better to find or build a software development team with a perfect balance between best market approaches and new ideas.

This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.