Credits : Theserverside

 

Follow best practices for Java method design, and don’t allow one public class to call another. If you skipped this step, be prepared to pay the consequences.

While it seems so basic that it wouldn’t require a mention, there’s a basic and often violated software design principle pertaining to Java method modifiers that is in need of explanation.

A public method should never be called by another public method within the same class hierarchy. It should only be called by other classes via the classes’ public interface.

Class calls might not be the first and foremost software programming design principle, but it seems to be the one that I see broken most often. Fast-paced environments require a developer to get things done as quickly as possible and result in this principle often being overlooked for speed instead of clarity. As a result, when a use case pops up later on and requires the same public method from another class, we can run into problems. Another issue that can arise is that it becomes more difficult for a developer to refactor classes to a better design.

You can quickly and easily correct this Java method modifier issue based on how soon you can refactor. Then, it just comes down to which method you want to use.

Let’s explore two options on how to fix this issue and diagnose the pros and cons of each selection.

Java method modifiers example

To demonstrate your options as simply as possible, let’s start with a simple code example. I will use Spring Framework with @Transactional to demonstrate why a public method that calls another public method in the same class can create such a big problem. @Transactional is how Spring will add transactions to your code via proxies. These proxies will play a major role in how this call method issue will arise. In this code example, the OrderService interface’s saveOrder method brings up the main problem.

public interface OrderService {

public Order findOrder(long id);

public Order saveOrder(Order order);

public void updateCustomersOrdersAsShipped(long custId);

}

 

@Service

@Transactional

public class OrderServiceImpl implements OrderService {

 

private OrderRepository orderRepository;

 

@Autowired

public OrderServiceImpl(OrderRepository orderRepository) {

this.orderRepository = orderRepository;

}

 

@Override

public Order findOrder(long id) {

return orderRepository.findOne(id);

}

 

@Transactional(propagation=Propagation.REQUIRES_NEW)

@Override

public Order saveOrder(Order order) {

return  orderRepository.save(order);

}

 

@Override

public void updateCustomerOrdersAsShipped(long custId) {

List<Order> ordersForCustomer = orderRepository.findAllOrdersForCustomer(custId);

for (Order customerOrder: ordersForCustomer) {

boolean isReadyForShipment = validateOrderReadyForShipment(customerOrder);

customerOrder.setShipDate(new LocalDate());

//

Here, we now have a public method calling another public method within the same class:

this.saveOrder(customerOrder);

}

}

 

private boolean validateOrderReadyForShipment(Order order) {

boolean readyForShipment = true;

if (order.getReadyForShipment != null) {

readyForShipment = false;

}

return readyForShipment;

}

}

You will notice that we have updateCustomerOrderAsShipped — a public method in the interface or class — making a call to another public method saveOrder() in the same class. This can be problematic for a few reasons. The saveOrder method wants to have a brand new transaction created every time it gets called. However, because Spring adds transactionality via aspect-oriented programming proxies, the call from updateCustomerOrderAsShipped won’t create a new transaction. Instead, it will just participate in the already existing transaction because the call originates from inside the same class.

Imagine if you flew to Hawaii and received a lei. But once you’re in Hawaii, you can’t get another lei unless you leave the state and come back.

Fix the public method problem

There are a couple approaches to consider how to rectify the Java method modifier misuse issue.

A developer can move the shared code into a private method that both public methods call or move one of the public methods into a different class and let one class call the other.

But which one is the better choice to create transaction demarcation? The first choice still needs a call to the first public method to start a transaction and the next call would be to the second public method to start another new transaction. A developer must find a way to get outside the Spring-created proxy, and that can’t happen between a call within the same class. The only way this can occur is if the two methods are in two different classes and both get their own proxy. Also, one class will need to call the other and then go through the proxy of the called class.

Essentially, the first public method gets called from outside that class and starts a new transaction. Then, inside that class, it calls to another class through its proxy and creates the new REQUIRES_NEW transaction that we expected. I will create a new interface called CreateOrderService.

public interface CreateOrderService {

public Order saveOrder(Order order);

}

And an implementation public class CreateOrderServiceImpl implementsCreateOrderService:

{

private OrderRepository orderRepository;

 

@Autowired

public CreateOrderServiceImpl(OrderRepository orderRepository) {

this.orderRepository = orderRepository;

}

 

@Transactional(propagation=Propagation.REQUIRES_NEW)

@Override

public Order saveOrder(Order order) {

return  orderRepository.save(order);

}

}

With this new interface and class, OrderServiceImpl will now look like this:

public interface OrderService {

public Order findOrder(long id);

public void updateCustomersOrdersAsShipped(long custId);

}

 

@Service

@Transactional

public class OrderServiceImpl implements OrderService {

 

private CreateOrderService createOrderService;

 

private OrderRepository orderRepository;

 

@Autowired

public OrderServiceImpl(OrderRepository orderRepository, CreateOrderService createOrderService) {

this.orderRepository = orderRepository;

this.createOrderService = createOrderService;

}

 

@Override

public Order findOrder(long id) {

return orderRepository.findOne(id);

}

 

@Override

public void updateCustomerOrdersAsShipped(long custId) {

List<Order> ordersForCustomer = orderRepository.findAllOrdersForCustomer(custId);

for (Order customerOrder: ordersForCustomer) {

boolean isReadyForShipment = validateOrderReadyForShipment(customerOrder);

customerOrder.setShipDate(new LocalDate());

//

Here, we now have a public method calling another public method within the same class:

        createOrderService.saveOrder(customerOrder);

}

}

 

private boolean validateOrderReadyForShipment(Order order) {

boolean readyForShipment = true;

if (order.getReadyForShipment != null) {

readyForShipment = false;

}

return readyForShipment;

}

}

What are some tradeoffs with the two-class approach?

The biggest issue I’ve come across when addressing the Java method modifier issue focuses on application complexity with circular references among classes. For example, Class A references Class B, which references Class C, which, in turn, references Class A. As a result, a developer will need to untangle the circular references as Spring makes proxies and determine which class needs to be created first to properly set up the links. Other potential tradeoffs include extra classes in code bases and determining which methods need to be moved to other classes.

When should we create a private shared method option?

In most cases, I believe the first option will be your best choice to fix public method issues and will always be the easiest to implement.

My approach is to take the code you need moved to the private method and declare the private method as simply private void sharedCode() {…}.

At this point, you’ll see some errors in the new private method because parameters haven’t been set, and some variables or parameters from the public method will need to be passed to this new method to enable the code to compile. Use the red in your IDE to help you determine the parameters you need to pass in. I prefer to see red errors instead of a guess-and-check approach to create the private method — unless it’s a small private method, in which case it can be simple to identify the problem areas.

In most cases, the private method will need more parameters that are harder to determine upfront. In our code example, it’s easy to see that the only parameter we will need is the Orderobject. The only line in saveOrder is orderRepository.save(order), and that also happens to be the only line that will be in our new private method.

private Order saveOrderPrivate(Order order) {

return orderRepository.save(order);

}

And the public methods now look like this:

@Transactional(propagation=Propagation.REQUIRES_NEW)

@Override

public Order saveOrder(Order order) {

return this.saveOrderPrivate(order);

}

 

@Override

public void updateCustomerOrdersAsShipped(long custId) {

List<Order> ordersForCustomer = orderRepository.findAllOrdersForCustomer(custId);

for (Order customerOrder: ordersForCustomer) {

boolean isReadyForShipment = validateOrderReadyForShipment(customerOrder);

customerOrder.setShipDate(new LocalDate());

this.saveOrderPrivate(customerOrder);

}

}

Pitfall of this approach

One tradeoff to be aware of is code access. The code we moved into the private method will only be available to that class. If you want to share it with other classes, you will no longer have this access. You could potentially create an interface method with the same signature to pass all parameters down to the private method and return what it returns to fix this issue. In the case of our example, the saveOrder method would do just that. But, in many real-world scenarios, the code would be much more complex.

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 : Salon

 

If you’ve browsed job boards for web positions over the last few years, you’ve most likely encountered the term “full stack developer” in your searches. A full stack developer is an engineer who can handle everything from databases and servers to systems engineering and clients — and they can rake in upwards of six figures a year.

Tackling all of the skill sets you need to become an in-demand full stack developer takes time, but you can get a head start (and a resume-boosting certification) with the Beginner Full Stack Web Development course.

This class is a one-stop shop for front-end and back-end development. With more than 25 hours of content available to you 24/7, you can study at your own pace, kicking off with basic lessons in HTML and CSS. You’ll build your own website, learn to code with JavaScript, and manage that code with Git.

Industry-standard frameworks like Bootstrap will be a snap to manage after these lessons, and cross-platform JavaScript programs like Node, Mongo, and React will be at your fingertips. Once you’ve mastered the entire course, you’ll gain a well-earned certification to show off.

Usually, the Beginner Full Stack Web Development course goes for $200, but right now you can dive into web development for only $19 (90% off).

 

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

 

Software development limitless possibilities with more numerous programming languages being released day by day to learn. It is completely dependent on aspirant criteria to learn programming languages which suites their need or the organisation they work for.

In this article, we list 5 programming languages that are recommended for 2019 and the importance of these languages.

Python

Python is not new in the world of programming languages. It is an early contender and has been in the race from a long period, but became a must learn a programming language with AI, ML, data analytics, algorithm-based development suddenly catching loads of world attention.

With Industry considering the automation was a big priority and business owners regarding scale and build, python has become extremely consistent for all developers to acquire and develop.

Python Applications

     1.Web Development: Python is very well befitted for improving a web application without much complexity. The language comes with a rich collection of libraries and internet protocols like

  • Requests — assigned to the HTTP client library
  • BeautifulSoup — used for HTML parser
  • Feedparser — used for parsing RSS/Atom feeds
  • Paramiko — used for performing the SSH2 protocol
  • Twisted Python — used for asynchronous network programming

It also has a very active framework like Django, Pyramid and microframeworks like flask and bottle which serves users in swift and dynamic web development.

      2. Data Analytics: Python is the most preferred language in the fields of data science, statistics, analytics, ML. Even facing tough competition from R (statistical language) Python has sustained as it is a customary purpose programming language and used not only for statistical programming, but is also well accommodated for building games, websites, business applications,  and much more.

     3.Science and Numeric Purposes: Python is widely used by most of the data scientists because of its library compilation which is devised for statistical and numerical analysis

SciPy — it is a collection of packages for mathematics, science, and engineering.

Pandas- A package extensively used for data analysis and modelling

IPython — A powerful shell designed for simple editing and recording of work concourses and supports visualisations and parallel computing.

NumPy- helps in dealing with complex numerical calculations.

    4.ERP Progress: Python is being applied for developing business software which solves enterprise-level issues. Successful ERP like Odoo and Tryton is enduring small and important businesses in managing their entire administration and stock index.

    5. Game Development: Programmers can develop games applying python even though most favoured structure for game development is Unity, python does have PyGame, PyKyra structures for game-development with Python. Users can get a mixture of 3D-rendering libraries to generate 3D games.

GO

Being an open source programming language Go makes it simple to create simple, secure, and productive software. It is also one of the latest players in the programming platform.

Go was formulated in 2007 and officially published in 2012 and was ratified at Google to advance programming richness, in a period of multicore processors, computer networks, and large codebases. The designers aspired to fix general criticisms of other languages while retaining many of their valuable characteristics like:

  • Static typing and efficiency (offered by C++ or Java)
  • Richness and comfort of use (resembling Python or JavaScript)
  • Extraordinary performance networking and multiprocessing
  • Go encompass all the efficiency of python and performance of conventional languages like C++ and Java to help users build scalable applications.

The language has raised lots of hope for the upcoming class of coding geeks.
As it has features of Python, JS, Java. But it is slowly becoming one of the most assuring languages to study and adopt in the future.

Importance Of Go: Go’s growing usage is anticipated, because of its lightweight, open source language revised for today’s microservices designs. Container Docker and Google’s container orchestration outcome Kubernetes are developed using Go. Go is also obtaining ground in data science, with depths that data scientists are studying for in overall execution.

JavaScript

For web developers, Javascript is the most favoured language and it will be very hard to find a job in the web development platform without knowledge of Javascript. It is an object-oriented programming language. It is one of the most conventional programming languages in this modern digital world.

Besides HTML and CSS, JavaScript is quintessential to front-end web development. A majority of the web’s most successful sites, from Facebook and Twitter to Gmail and YouTube, rely on JavaScript to design interactive web pages and dynamically display content to users.

In extension to absolute JavaScript, there are various libraries and frameworks designed to make JavaScript development easier. Some of the most accessible frameworks include Angular, React, Vue, Ember and jQuery. Professional JavaScript developers will likely need practice with one or more of these.

Although JavaScript is fundamentally a front-end language run on the browser, it can also be practised on the server-side throughout Node.js to create scalable network applications. Node.js is congenial with Linux, SunOS, Mac OS X and Windows.
JavaScript has an accepting, compliant syntax and works over all major browsers, it is one of the favourable programming languages for beginners.

Use cases: Websites like WordPress, LinkedIn, Amazon, Microsoft etc utilise JavaScript language.

Swift

Swift is a comprehensive purpose language which was generated by Apple for applications that are applied to their multiple operating systems. Swift is assuredly the best programming language to learn if aspirants liked to acquire or work with Apple programs and applications. Although it was only published four years ago, in 2014, the demand for Swift developers has increased exponentially. It is now one of the most popularly used languages in the world, and aspirants job prospects will be bright if one decides to learn it.

Due to the tremendous need for experienced Swift developers, the average programmer who knows how to use the language can expect huge pay cheque. The language has advantages like cleaner syntax and limited low-level juggling of pointers

Scala

Scala implements functional programming assistance and strong static type system, which makes it an excellent general purpose programming language.

The user will be able to commence applying functional programming techniques to support user-developed applications and overcome issues that result from unintended consequences. The provision of shifting from mutable data structures to immutable data structures and from conventional methods to absolute functions that have no impact on their environment, user code will be maintained, more stable, and much simpler to comprehend.

 

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 : Itproportal

 

The world of web development experiences demand constant transformation every year, whether it is related to tools, services, coding, languages, or designs.

Today, every business or individual is making a shift to the online world with a website or web app. As per the 2018 Web Server survey by Netcraft, the internet has more than 200 million active websites. The total number of websites is around ten times more than the active ones. Further, the report reveals that more than 200 new websites are launched every minute today.

The rapid rise in the number of websites brings a lot of new resources to users, but it also increases competition and the need for new skills for web developers.

The world of web development experiences demand constant transformation every year, whether it is related to tools, services, coding, languages, or designs. And with every year, new trends and technologies emerge out to evolve the way developers work. While one year is dominated by static websites, the next by mobile responsiveness, then another by chatbots.

To make the best out of web development and stand apart from the competition, developers will need to keep track of these web development trends in 2019 and use the same into their work.

1.    Artificial Intelligence (AI)

AI is one of the hottest technology today and is used as a core component in most of the digital transformation strategies. More and more enterprises are implementing AI to automate business processes, reduce costs and accelerate time to market.

As per the leading analyst firm Gartner, the business value from AI will reach $1.2 trillion in 2018, up 70 per cent from 2017. Further, it is predicted that AI-derived business value will total $3.9 trillion by 2022.

In 2019, the role of AI will increase significantly in web development arena like never before. Companies will leverage the power of AI in web development to improve productivity and customer satisfaction.

2.    Motion User Interface (UI)

The average attention span of human beings is decreasing continuously. From 12 seconds in 2000, the attention span has now come down to an average of 8 seconds. The main reason behind this drastic decline is the increased use of social media, smartphones and highlighted links in the posts and web pages.

In a world where average attention of humans is decreasing, developers will need to implement motion UI in their projects to catch the attention of users. The web pages will require more eye-catchy graphics and intuitive motion UI. This kind of UI changes adapts itself as the users scroll up or down the page, which eventually keep the users engaged.

This suggests that motion UI will be trending in 2019 and beyond.

3.    Push Notifications

Website owners started the use of push notifications for encouraging visitors to take action. The push notifications have helped websites to gain momentum and proved as a successful component over the years. Today, the push notifications have become crucial enough to replace the email newsletters.

Businesses are using push notifications to notify visitors about new content, offers and promotions. This feature will be trending in web development as most of the websites will be looking to use it.

4.    Modular Design

When there is modularity in design, a system is divided into multiple parts which are called modules. Developers or designers can use these modules independently and use them in other systems as well. What this means is that the components of a design can be reused for creating more web pages, instead of building a web page with a restrictive template.

WordPress’s new editor Gutenberg is also using a modular design approach to allow users to insert content in the form of blocks.

5.    Progressive Web Apps (PWAs)

Progressive web apps are those web applications that combine the experience of browsers, websites and mobile applications. The loading of these apps is similar to websites, but they allow users to work offline, push notifications, access device hardware just like native mobile applications.

The organisations that have started to use PWAs in place of simple websites have witnessed a rise in conversion rates and user engagement. Since PWAs provide the experience of both websites and mobile apps, these are very likely to trend in 2019.

6.    Responsive and Mobile-friendly Designs

As per Statista, the website traffic from mobile devices is continuously increasing over the years. In 2015, only 35 per cent of web pages were served to mobile devices, which now increased to over 50 per cent in 2018.

An increasing number of users today browse websites from their smartphones and tablets. What this means for web developers is that they need to build mobile-friendly and responsive websites that work without any glitches and provide user experience as they do on desktop devices.

Going ahead, Google has started to consider mobile responsiveness of websites as a ranking factor. Developers will need to ensure that the mobile version of the website includes important and high-quality content.

No business would like to rank lower in search results on Google and provide poor user experience to their users. As a result, developers will increasingly work on responsive designs to make the websites and web apps mobile-friendly.

7.    Chatbots

Over the next few years, enterprises will prefer chatbots as the most used application across all AI integrations. Chatbots are being used today to serve the customers better. They serve as good options for businesses that need to provide basic support to their consumers 24/7.

The chatbots can minimise or eliminate the need of humans to answer the queries of end users. Gartner forecasts that more than 85 per cent of enterprises will interact with customers without the involvement of a human by 2020. Chatbots can significantly save money for businesses while ensuring customer satisfaction.

8.    Voice Search Integration

With the advent of digital assistants like Siri, Alexa and Cortana, people are getting more comfortable with voice search queries. They are increasingly using this feature with Google Assistant on smartphones to avoid typing.

As per Google, over 20 per cent of the mobile searches on Google are made using voice. What this means for developers is that they will need to integrate voice search option on websites to let users be comfortable while browsing the site. It will also enhance the user experience.

Wrapping up

Advertisement

To make the most out of 2019 in web development, prepare yourself for these trends. A combination of modern and long-term technologies, these trends will open a door to new opportunities for developers at several points.

Apart from these trends, Augmented Reality, Internet of Things (IoT) and low-code development are also supposed to trend in the year ahead.

 

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 : Hackaday

 

I try to keep up with web development trends but it’s hard to keep pace since it’s such a fast evolving field. Barely a week goes by without the release of a new JS framework, elaborate build tool or testing suite — all of them touted as the one to learn. Sorting the hype from the genuinely useful is no mean feat, so my aim in this article is to summarise some of the most interesting happenings that web development saw in the last year, and what trends we expect to see more of in 2019.

A technology or framework doesn’t have to be brand new to be on our list here, it just needs to be growing rapidly or evolving in an interesting way. Let’s take a look!

LOOKING BACK ON 2018: SPA,  CSS GRID, AND SPEED

Single Page Applications (SPAs) saw a leap in popularity in 2018. A simple concept made possible by the power of modern Javascript, a SPA loads a page once then never reloads it or navigates to another page; instead, Javascript is used to manipulate the DOM and render new layouts in the browser. JSON data can be sent between the client and server, but the page behaves more like a desktop application than a “conventional” website. (Visit the websites of Gmail, Facebook, Apple and many more to see a SPA in action). It can provide a much snappier experience to the user and really transform the responsiveness of a site, but usually requires a sizeable chunk of code shipped to the browser. It’s an idea that’s been popular for a while but really saw a lot of developer engagement last year.

2018 also saw some long-awaited improvements to core web technologies. It’s fair to say that when HTML and CSS were conceived, they were not designed to handle the modern web. Hence, CSS preprocessors and libraries are rife, because they provide a more abstract, convenient interface to create and layout UIs. Bootstrap, the most popular front-end library, has a grid system which has been widely used to easily position content for years. 2018 brought the widespread adoption of a native CSS grid, supported by all major browsers; a big deal for headache-free aligning.

Something that was really taken to heart last year was how much mobile users care about page-load speed. In fact, Google even started including this in its ranking algorithms for search. Additionally, its “Open Source” Accelerated Mobile Pages (AMP) project continues to be popular but controversial for the amount of control Google has over it.

EXPECTED IN 2019 ON THE BACKEND:

First, let’s talk about some of the backend/server-side changes we can expect to see, before moving onto front-end technologies.

Containers

Ok, so this one certainly isn’t a new idea, but it’s a technology which is growing so fast that it’s impossible to ignore. These days, rapid deployment is the name of the game, which means your backend/server needs a consistent, repeatable environment. The goals of this is to make development, testing, and production seamless.

Containers also provide an awesome amount of modularity, which makes both development and maintenance very easy. Want separate containers for your application, database, compute workers and Redis? No problem; in fact, it’s encouraged. This makes it super simple to switch out different modules and scale your service as required.

Docker is, of course, the most popular platform for containerisation. I love using it and wrote a guide to Docker and containers if you’re curious about what’s under the hood.

Serverless

Closely linked to containers is serverless computing, and this is perhaps the biggest change that’s happening right now in terms of how websites and applications are deployed.

Serverless computing allows you to write and deploy code without ever touching the underlying infrastructure. Anyone who has deployed a website after manually setting up servers, load balancers, etc knows how much time configuring infrastructure can take away from time developing the app/website itself.

Serverless code is written as a number of independent “functions”, which are all event-driven. Each of these modules runs only when triggered, spinning down when not in use. The beauty of this is that you only pay your serverless provider for the computation which takes place: it’s effectively pay-as-you-go. If your site has a quiet period, you pay very little. But if you experience a sudden surge in demand, it’s very easy to scale your service by simply adding hundreds or thousands more module instances on the fly.

Ultimately, it makes it possible to scale your provisioning by network-usage, CPU or memory instead of units of “a new server”. On-demand computing is great for technical efficiency and maintenance, and it makes economic sense as well. 2019 is set to be an exciting year for new heights of adoption, as well as open-source serverless technology like OpenFaaS.

ON THE FRONTEND IN THE COMING YEAR:

Cool, those are some of the backend trends I expect to see, what about the front-end?

The web app becomes more modular by the day

There’s a reason that front-end development frameworks like Angular and React are so popular, and for the most part, it comes down to modularity. Writing large, monolithic files of HTML and JS, makes for code which is difficult to re-use between pages, slow to re-factor, and horrible to unit test. Instead, why not use a framework to create components, each with its own styling and scripting, and defined inputs and outputs. Not only does this make it incredibly easy to use the same building blocks again and again, but the codebase also becomes far easier to understand and plug into a test suite.

The reason I mention this is that there’s a new framework on the block which implements the component model so well that it’s enjoyed amazing growth in 2018.

Vue.js

Vue’s remarkable recent success will only continue. It’s done so well because it implements exactly what developers want, in a very lightweight package (see this size comparison with other mainstream frameworks). Its recent growth is a good indicator of where it’s going this year.

If you’re looking to improve your front-end development skills and haven’t learned Vue yet, it’s a solid place to start in 2019.

Is this the death of server-side rendering?

Ten years ago, the standard way to create a website was to render all the files server-side before sending them to the browser, using technologies like PHP and ASP.NET. Then Javascript frameworks/libraries started showing up, first slowly, then in a deluge. More and more parts of web applications shifted client-side, until we arrive at today, where it’s common practice to create a Single Page Application entirely in the browser.

That doesn’t mean that server-side rendering isn’t used today, far from it; many new applications continue to use it because it fits well with their requirements. Server-side rendering is well suited to largely static sites, as well as being great for SEO out of the box. On the whole, the decision between server-side and client-side rendering is a complex balance depending on network speed, the type of dynamic/interactive content on the site, and many more factors.

What does that mean for the future? Whilst server-side rendering is conceding ground today, it’s still a good fit for a large number of use cases; it’s not going anywhere for now.

Progressive Web Apps (PWA)

There are some interesting statistics on apps vs websites on mobile devices. Whilst mobile sites receive about 12x as many visitors as apps, users spend roughly 20x longer on apps than mobile sites. What if there was a way to get the user engagement of an app without the friction of installing one?

A Progressive Web App, or PWA, is simply a term for a website which fulfills a set of requirements and best practices, predominantly for mobile use. PWAs should load reliably and load fast, with snappy navigation and identical feel to a native app. They are designed to be added to the home screen of mobile devices and are capable of operating offline.

Google turns out to be a big fan of PWAs; Chrome will automatically prompt users to add a website to their mobile home screen if it meets the PWA criteria. They also created an open source tool, Lighthouse, for auditing your site to PWA standards and integrating into CI workflows.

PROVE ME WRONG, 2019

2019 is set to be an interesting year for web developers and users, with exciting technologies at the front-end and back-end. If you have any predictions, be sure to leave them in the comments, we’d love to hear what you think. And of course, I’ll be coming back to this thread in a year to see if we got it right!

Posted in Featured, Interest, Slider, Software DevelopmentTagged amp, containers, css grid, docker, pwa, server-side rendering, serverless, spa, ssr, trends, vue.js, web development.
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 : Ctpost.

  • Gone are the days when you had to go to a tax preparer to ensure that you filed your taxes correctly.
  • Now, you can do your taxes at home with tax software online.
  • Of all the tax preparing services we’ve tried, TurboTax Deluxe is the best with its easy-to-use software and helpful explanations.

The old saying goes: Nothing is certain except for death and taxes. These days, you can add one more to the list. It’s certain that you’re going to be bombarded with advertisements for tax preparation software and services from New Year’s Day through April 15, 2019 when the deadline to file 2018 taxes hits.

TurboTax

  • Free Edition ($0): The most basic software for those with a 1040EZ or 1040A form and no deductions.
  • Deluxe ($39.99 + $36.99): The best for homeowners who itemize because it offers 350+ deductions and one-on-one help.
  • Premier ($59.99 + $36.99): The best for people with stocks and rental property because it covers stocks, bonds, ESPPs, and other investment income.
  • Self-Employed ($89.99 + $36.99): The best for freelancers with customized help and one-on-one assistance to deduct work expenses.
  • TurboTax Live ($149.99 + $36.99): This new service is for people who need a check from a TurboTax CPA or EA.

H&R Block

  • Basic ($29.95 + State Return): The basic software is for those with a 1040EZ or 1040A form and no deductions.
  • Deluxe ($54.95): The best for homeowners who itemize because it offers 350+ deductions and one-on-one help.
  • Premium ($74.95): The best for people with stocks and rental property because it covers stocks, bonds, ESPPs, and other investment income. Also best for freelancers.
  • Premium & Business ($89.95): The best for small business owners with S corporations, partnerships, LLCs, or non-profits.

TaxAct

  • Free ($0): The basic software is for those with a 1040EZ or 1040A form and no deductions. You can pay $15 for tax support and prior year import.
  • Basic+ ($9.95+ $19.95): The best for filers with independents, college expenses, etc.
  • Deluxe+ ($29.95 + $39.95): The best for homeowners and deductions.
  • Premier+ ($34.95 + $39.95): The best for people with investments and rental property.
  • Self-Employed+ ($49.95 + $39.95): The best of freelancers and other self-employed people.

Tax prep software is a big business, and you may hesitate to pay for help with something you could do yourself for free with pencil and paper. But for a process that most people approach with all of the excitement of a root canal, having the ability to calculate your taxes easily without worrying about math errors is well worth the fee you’ll pay to use the software. You can even file for free with TurboTax, H&R Block, and other software if your taxes are simple.

How to file taxes online

You can get tax preparation software as a CD-ROM that you stick into your computer (if your computer still has a disk drive, that is) or as a downloadable app for your Mac or PC. Alternatively, you can simply file your taxes online or in a mobile app. That may sound scary, but reputable tax software companies like TurboTax, H&R Block, and TaxAct take your security very seriously, so you can count on these services to protect your information.

You can file your taxes electronically after using tax prep software, which is a far easier process than making printouts and mailing your forms to the IRS. You may have to pay a fee to electronically file, depending on the software you’re using.

The software will make all of the calculations for you, ensuring that your poor second-grade math skills aren’t exposed for all the world to see … and for the IRS to penalize.

Most tax prep software makes use of an interview style process, where the software asks you questions about your income and expenses. The software then figures out which forms are pertinent to your situation and fills them out, based on the data you enter.

Tax software often can pull data from your past returns, while also downloading your current W-2 forms. This saves time and reduces data entry errors.

TurboTax, H&R Block, and TaxAct all offer several different versions of tax software to suit different people’s needs. As a general rule, the more complex your tax situation is, the more you’ll have to pay for tax preparation software. However, most people will likely be okay with basic software.

Once you start filling out your tax forms, you may hit a snag and have to upgrade to a higher priced tier of software. The upgrade is easy to do, so you won’t have to start over entering your data, but you’ll have to pay more to finish your tax return.

In our guide, we’ve chosen the best tax software for three different types of people: your average person, homeowners, investors and rental owners, independent contractors, and small business owners. No matter your needs, you’ll find an option for you in our guide.

Here is the best tax software you can use to file online:

  • Best tax software overall: TurboTax Deluxe Tax Software
  • Best tax software for homeowners: H&R Block Deluxe Tax Software
  • Best tax software for investors: TurboTax Premier Tax Software
  • Best tax software for independent contractors: TaxAct Online Freelancer Edition
  • Best tax software for small business owners: H&R Block Tax Software Premium & Business

Why you’ll love it: TurboTax Deluxe is super easy to use, helps you find more deductions, and maximizes mortgage and property tax deductions.

TurboTax Deluxe has been one of the most popular tax software options for years, and it shows no signs of slowing down. TurboTax guides you through your taxes with a simple interview-style process. As you answer questions, TurboTax fills in the forms to help you maximize your savings.

You can search through more than 350 tax deductions and credits, plus, TurboTax helps homeowners maker mortgage and property tax deductions without any fuss. Charitable deductions are also welcome with this software, so if you were giving this year, you’ll get something back for your efforts.

If you don’t own a home, you don’t need to deduct much of anything, and you have a 1040EZ or 1040A tax form, you don’t need the Deluxe version and you should try the free tier. Multiple members of the Insider Picks team, including guides editor Malarie Gokey have used the free version of TurboTax for years without any issues.

TurboTax seems to pick up many loyal customers, and user reviews on its site are incredibly positive. many say that they will never use another tax software. Expert reviews are also very positive from Nerd Wallet, Dough Roller, and The College Investor.

However, a few Amazon customers say the CD version of TurboTax Deluxe will not work on Windows 10 without a workaround, which is a hassle. We recommend you file on TurboTax’s website or mobile app instead.

Pros: Easy to use, available on CD, available online or in mobile app, deductions for homeowners

 

Cons: More expensive than some other options, CD version suffers some errors on Windows 10 computers

Start your taxes online with TurboTax (Federal Return starts at $39.99 and State Return starts at $36.99)

Buy TurboTax Deluxe Tax Software on Amazon for $39.99 (originally $59.99)

Why you’ll love it: If you’re looking to itemize deductions as a homeowner, the H&R Block Deluxe software will guide you through the process

The H&R Block Deluxe Tax Software will give those of you who itemize deductions an inexpensive means of completing your tax forms. The Deluxe version offers step-by-step guidance for more than 350 different deductions, which is a helpful feature for those who itemize.

H&R Block guides you through the entire process and helps you find out which deductions you can make for your mortgage, property taxes, and charitable giving. The software is specifically designed to help homeowners make the most of their deductions, so if you own a home, this is the software you need.

In its review, the Dough Roller says the DeductionPro tool in the Deluxe version does a good job of ensuring you receive all of the deductions to which you’re entitled. Additionally, you’ll have the option of chatting online with tax professionals as you do your taxes, according to the Nerd Wallet review. It’s a very helpful feature for anyone who gets confused by all the questions, and one Amazon buyer says the online help has improved from previous years.

Consumer Reports also points out that having data automatically transferred is easier with H&R Block versus competitors, because you can use PDF files of last year’s tax forms, imported W-2s, or a photograph of a W-2 shot on a mobile phone. However, you may experience some problems downloading previous tax forms that were completed with other software packages.

We recommend downloading the software, but if you do buy the CD version of the software, be forewarned: One Amazon reviewer says the software charges extra for a state return, so the low price of the software is misleading.

Pros: Allows for itemized deductions, trusted brand name for tax software, easy to use, live chat with tax experts is free

Cons: State version of tax software costs extra, problems importing previous year tax return from other software

Start your taxes online with H&R Block Deluxe (Federal Return for $29.99 and State Return for $36.99)

Buy the H&R Block Deluxe Tax Software on Amazon for $17.99 (State Return NOT included) (originally $34.99)

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 : Iconnect007

 

INSPECTIS AB’s new Pro and Pro-X software editions feature a new live image overlay comparison function with auto image alignment, making inspection clearer and easier to use. This function is additional to the existing comparison functions that includes overlay of two saved images.

In addition to other inspection and measurement functions, Live Overlay function can be used as a simple image comparator to assist in detecting differences between a live image and a saved reference image. Inspectis software makes it easy to spot faults such as incorrectly placed, badly placed and missing parts.

C software is compatible with all INSPECTIS camera models from the C12 to U30 Series, and all editions are built upon the same carefully-designed and  developed user interface with clear and intuitive controls and tools.

About INSPECTIS AB

INSPECTIS AB is a new line of advanced optical inspection solutions for PCB assembly. INSPECTIS offers a line of plug and play, reliable and cost-effective high definition camera microscopes designed for non-contact optical inspection, quality control, repair and rework, and more.

 

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 : Coindesk

 

Major ethereum clients, including Go-Ethereum (Geth) and Parity, have released software updates following an earlier decision to delay the planned system-wide upgrade dubbed Constantinople.

The upgrade was postponed Tuesday during a developers call, a move that came after blockchain audit firm Chain Security discovered a security vulnerability in Ethereum Improvement Proposal (EIP) 1283, one of the planned changes included in Constantinople. If exploited, the bug would have allowed for “reentrance attacks,” allowing malicious actors to withdraw funds from the same source multiple times.

A new activation block for the upgrade will be decided during another call later this week.

In order to prevent the fork from happening – given that some of the software clients on the network had already been updated ahead of the fork – developers of the major ethereum implementations moved to publish new versions.

Geth released an emergency hotfix (version 1.8.21) designed to delay the upgrade, though developer Péter Szilágyi noted that users who do not wish to upgrade to the new version of the client can also downgrade their existing clients to version 1.8.19 or continue running the current version (1.8.20) with an override.

Parity clients can similarly either upgrade their existing clients to 2.2.7 (the stable release) or 2.3.0 (a beta release) or otherwise downgrade to 2.2.4 (beta).

Parity Technologies head of security Kirill Pimenov, speaking in an ethereum core developers chat on Gitter, said he recommended users upgrade to the new release, rather than downgrade to an older version, explaining:

“I want to restate — downgrading Parity to pre-Constantinople versions is a bad idea, we don’t recommend that to anyone. Theoretically it should even work, but we don’t want to deal with that mess.”

Similarly, Parity release manager Afri Schoedon told CoinDesk that he recommends 2.2.7, though the other two should work as well.

In a blog post, core developer Hudson Jameson wrote that anyone who does not run a node or otherwise participate in the network does not need to do anything.

Smart contract owners do not need to do anything either, though “you may choose to examine the analysis of the potential vulnerability and check your contracts,” he wrote.

However, he pointed out that the change that could introduce the potential issue will not be enabled.

As of the blog post’s publication, security researchers with ChainSecurity, who initially discovered the bug, and TrailOfBits are analyzing the overall blockchain.

Reentrance attacks

So far, no instances of the vulnerability have been discovered in live contracts. However, Jameson noted that “there is still a non-zero risk that some contracts could be affected.”

In order for transfers on ethereum to avoid reentrance attacks, a small amount of ether called gas is paid which prevents attackers from repurposing a transfer to steal funds.

However, as explained to CoinDesk by Hubert Ritzdorf – the individual who found the vulnerability and CTO of Chain Security – a “side effect” of EIP 1283 ensures attackers can leverage this small amount of gas for malicious purposes.

“The difference is before you couldn’t do something malicious with this little bit of gas, you could do something useful but not something malicious and now because some of the operations became cheaper, now you can do something malicious with this little bit of gas,” said Ritzdorf.

And though the issue of reentrancy is always on the minds of smart contract developers coding in Solidity on ethereum, Matthias Egli – COO of Chain Security – explained that core developers strictly looking at the mechanics of the virtual machine couldn’t have easily spotted this vulnerability.

He told CoinDesk:

“It’s a Solidity thing, it’s not an [ethereum virtual machine] core thing that in practice allowed this attack. That was part of this disconnect that in practice small changes to gas cost will allow new kind of attacks which wasn’t considered before.”

What’s more, Ritzdorf added that the fix to this issue isn’t as easy as updating ethereum’s gas cost limits, explaining that “if we change this amount to a small number now then we would fix the vulnerability but we would also break many existing [smart] contracts.”

As such, for the time being, a delay to Constantinople was the right call by core developers according to Egli.

“It was the right decision because it at least buys some time for researchers to evaluate the real world impact. With high likelihood, this [EIP] will be taken back and not included in the upcoming hard fork which is now delayed by perhaps a month,” he contended.

Next steps

As of press time, developers are contacting exchanges, wallets, mining pools and other groups which use or interact with the ethereum network.

Core developers plan to discuss longer-term steps – including when to execute Constantinople and how to fix the bug in EIP 1283 – during another call on Jan. 18.

Multiple developers suggested initiating some sort of bug bounty program focused on analyzing the code, in order to ensure future bugs are discovered well in advance, rather than “right before [hard fork] day.”

Szilágyi noted that the EIP had been available for review for nearly a year, adding that “maybe it’s not a bad idea to do some grants for more focused eyes.”

 

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 : Forbes

 

Cast Software is known for its technology platform that provides metrics, quality and software intelligence ratings to determine the validity, strength and functionality of any particular application.

The firm held its annual software intelligence forum in Paris (where it has an HQ) last week to attempt to explain why we all need to build software with a little more care and attention in order to make sure it is robust, safe & secure and above all fit for purpose.

“Organizations must now migrate to the cloud and [as part of that process] work to re-think software systems for greater agility, improved security and data integrity,” said Vincent Delaroche, chairman and CEO of Cast. “All of this is driving the adoption of Cast ‘Software Intelligence’ as business and IT leaders look for more accuracy, visibility and control over compliance, security and modernization risk.”

MRI scan for software

CEO Delaroche has likened his firm’s branded ‘Software Intelligence’ approach to that of providing an MRI scanner for software applications in order to perform triage and identify where the most severe problems exist… in order to address those first.

Just as an MRI scanner uses radiology to build pictures of our own human anatomy in order to study the physiological processes of the body, Cast uses its approach to software intelligence to study the way software ‘compiles & executes’, makes ‘calls’ to various data resources and the way it connects to other networks, Application Programming Interfaces (APIs), cloud computing channels… and to ultimately to the devices we all use.

Essentially, in terms of its technology proposition, Cast wants software to compile and run according to acknowledged global software engineering standards. Logically then, in terms of its commercial proposition, Cast wants customers to pay it to analyze their software in order to provide them with a bill of operational health, so-to-speak.

“For real-world architecture there are blueprints and building regulations. For software there is no equivalent. Like building regulations, we need standards for code,” said Lev Lesokhin, executive vice president for strategy and analytics at Cast Software.

Lesokhin claims that ‘most people’ (by which he means anybody except the software development/programmer team) know nothing about the software that runs their business — and that they don’t typically want to know. He further reminds that while the software industry is full of methodologies, de facto models and a multiplicity of standards — none of these guidelines necessarily exist to measure the ultimate quality of the software being produced, developed and deployed.

Speakers at Cast’s Paris event included Pierantonio Azzalini in his role as CTO for Italian shipbuilding company Fincantieri. Azzalini explained that he operates 20 shipyards around the world and currently has a backlog of €33 billion, while he is also taking orders now for 2027, so productivity is a major concern.

“As a CTO, the only metrics I had was Lines of Code (LOC) and man [he means person] days. But I was using this 15 years ago. If you don’t maintain software, you can go out of business in 10 days. Software Intelligence is not something theoretical it is a ‘must for today’s IT. The most difficult thing is the relationship between an engineering business and IT. If you have a room full of people who are not familiar with IT, it is useful to have a standard to present how software metrics/quality is improving,” said Azzalini.

Software Composition Analysis

Cast Software had a busy 2018 by all accounts. The company acquired Antelink, a Software Composition Analysis (SCA) company founded by Inria, a public science and technology institution dedicated to computer science learning.

Antelink’s technology will be integrated into Cast Highlight, a cloud SaaS-based application portfolio analysis product designed to calculate and assign a unique SHA1 signature, a crypto hash function from the National Security Agency, to each component of complex software, including open source frameworks. These ‘fingerprints’ can be compared to reference databases of software components.

According to Cast, “The Software Heritage archive contains information about known application security vulnerabilities in addition to copyrights for all known software in use, including open source components. This type of knowledge is essential in scenarios where a Bill of Materials is required, such as outsourcing software development, buying software assets or during a merger or acquisition. SCA capabilities are becoming increasingly important for digital transformation success and improving the application security of business-critical systems.”

What to think next

Cast points to the increasing use of open source software and claims that its technology is well-suited to code analysis (and of course software intelligence) to analyze the burgeoning amount of code that is growing in the open arena.

CEO Delaroche says that his firm spent 11 million Euros on research and development in 2018, but that this expenditure was not simply focused on putting code analytics functions into its software. Instead, although code analytics is fundamental to what Cast does, it was focused on the wider development of (and simplification of) the total Cast platform.

Using his native French, Delaroche says that too many people want to, “Cacher la merde sous le tapis.”

So, if we follow his colorful use of language, now is not the time to hide any of your nasties under the carpet… now is the time to get it all out in the living room and work out what needs to go in the trash.

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 : Laravel-news

 

The idea of working entirely from an iPad has always appealed to me. The portability, the battery life, and of course the touch screen makes it an excellent device.

The downside is that everything is sandboxed. You can only run programs from the App Store which makes doing crazy things like installing a development server on the machine unattainable, but there are other ways to work around the limitation with existing apps and a little ingenuity.

Last month I had an unfortunate biking accident and broke the bones in the back my left hand. After surgery, they had my middle, ring, and pinkie fingers fused so everything could heal properly, but this meant I couldn’t use that hand for typing. I had to embrace typing one-handed, and I found using an iPad to be the easiest because of the autocomplete and the autocorrect. I was much faster with it than on a MacBook, and that pushed me to want to use it more.

With my job, I was able to do all my work except development with the iPad, and I would switch back and forth. Using a traditional computer with my code editor, then the iPad for everything else. This flow quickly became annoying, and I started exploring ways of doing everything on the iPad.

Screen Sharing

My first idea was to just screen share back to my Mac. Using a screen share would allow me to use all the tools I’m comfortable with and still use the iPad. That idea worked better in theory rather than practice. I couldn’t get the screen resolutions to match up, so everything was tiny on the screen, and had 2 inches of letterboxing.

With this not being suitable I went back to looking for other ways of solving this and found that some people reported good results using a development server and then a text editor like Vim.

Laravel Forge

Once I decided to go with a dev server I had to figure out how I wanted to set it up. Not being a server admin and honestly not being extremely comfortable on servers I decided to follow the path of least resistance as a Laravel Forge customer that meant logging into my account and spinning up a new box. Then I needed to add all the sites. I used a generic domain name and then set up each site as a subdomain.

Setting up each dev site through Forge works, but if you work on many projects, it’s probably not ideal. You would be better off using something fancy like Nginx wildcard routing.

With the server up and running it was time to figure out how to get into from the iPad.

SSH’ing

The App Store had a few different SSH apps, and all looked like they would be sufficient, but I didn’t have time to test them all. Based on the reviews and the app screenshots I decided to try Termius first and so far it has met my needs.

From within Termius, you can create an SSH key to add to the server for passwordless login; it supports SFTP for moving files up to the server and a lot more features that I’ve yet to need.

Honestly, using Forge and Termius has been great. It’s simple to set up and easy to get started with, especially if you’ve been running Digital Ocean or Linode servers in the past.

Since the server runs on the web, I set up two aliases to make it easy to take it online or off.

alias do_allow80=”sudo ufw allow 80″

alias do_block80=”sudo ufw deny 80″


These two commands to turn port 80 on or off, of course, you might want to get fancier and block all traffic except your IP and include port 443 for SSL.

Once the server is set up, and you can SSH in it’s time for the fun part, learning VIM.

VIM

I didn’t want to use Vim, but every iOS editor app was severely lacking in features that I use. I could either adapt my workflow to them or use a tool that I can customize to my needs and match my existing setup.

I’ve never been a big Vim user. I knew the basics on how to use the hjkl keys to move around, how to save, how to exit, but that’s about it. So I’ve spent the majority of time learning the ropes, and I’m still not very fast using it. Vim is a learning process.

What is excellent about the editor and something I’ve never appreciated until now is how many useful plugins the ecosystem has. I was able to duplicate most of the things I use in Sublime or Code with only a few plugins. I can use ctrl+p to fuzzy find files, ctrl+e to open recent files, ctrl+l to open a sidebar of the directory structure, and even goto definition with the help of AG.

To set up the editor I first watched the Laracasts Vim series and then found a plugin named FZF that has been an enormous help for navigation. With it installed I can do things like:

  • control+p to fuzzy open files :GFiles
  • control+t to find methods within a file :BTags
  • control+e to open recent files :History

Plus many other things

Check out this post by Jesse Leite for more FZF tips.

I have my full .vimrc available on Github if you’d like to see my exact setup.

Once I get more comfortable with the basic tasks I have a feeling Vim could be something I could learn to love.

Database

For database access, I first found a tool called MyCLI for the terminal, and it’s fantastic with autocomplete, and syntax highlighting. It works great but I still prefer a GUI, and the only app I could get to work was Navicat on iOS. The other apps I tried didn’t support connecting over SSH with a key.

I find both of these options lacking compared to Sequel Pro, but they are usable enough.

Frontend Coding

At this time, this is the most significant limitation. I’ve not found a workaround, but I’ve also not had to do much JavaScript or CSS work. I’ve had some people recommend services like Browsershots to get a full browser, or you could use screen sharing to any Mac. I feel like this will be a breaking point for many people since so much of web development is now on the frontend.

Keyboard

You can work using nothing but the on-screen keyboard or with Apple’s official Smart Keyboard but neither come with an escape key. For Vim I remapped around this, but I found not having it annoying, and I found a tiny $40 mechanical keyboard that I’ve been using that works great. It includes the escape key and is about the same width as the 11″ iPad. I wrote up a full review on the keyboard on my site.

Conclusion

I know everybody works on different things and has different preferences so this setup isn’t for everyone. Before this iPad, I was working on a 12″ MacBook so I’m used to small screens and I enjoy running apps at full screen. So making the switch was pretty easy for me. The only thing I’m missing is a console and web inspector.

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.