My First Post      My Facebook Profile      My MeOnShow Profile      W3LC Facebook Page      Learners Consortium Group      Job Portal      Shopping @Yeyhi.com

Pages










Thursday, December 27, 2018

Assign different machine/ build agent in Teamcity - CICD server *

TeamCity is a powerful and user-friendly Continuous Integration and Continuous Deployment (CI/CD) server that helps developers to automate the build, test, and deployment process of their code. It is a Java-based tool that supports multiple programming languages and technologies, and integrates with a wide range of tools such as Git, SVN, Maven, and more. TeamCity provides a web-based interface for monitoring the build status, managing build agents and configurations, and viewing build history. Additionally, it includes features like code quality analysis, automated testing, and deployment pipelines. TeamCity is a popular choice for software development teams looking for a robust and easy-to-use CI/CD server.
Log on to the machine that you want to make as a build agent. Access your teamcity site (http://teamcity) through a browser from the target build agent machine eg windows server, and download the installer.
Also, do note that there are limitations on the number of agents you can have under you license so you may need to purchase an additional one, but I suspect in this case you'll be okay - TeamCity Licensing
The final step will be to run the build scripts using the build agents. For this detailed can be read on https://confluence.jetbrains.com/display/TCD18/Setting+up+and+Running+Additional+Build+Agents. This page also talks about pre-requisites and the installtion on build agents. However, for the sake of clarity, I have added those details in a simple manner as following:

Steps to install a build agent for Teamcity:
  1. Open the administration section and click on Install Build Agents. From here download the agentinstaller.exe
enter image description here
enter image description here
2.Start the installer and ensure you are installing a windows service
3. Enter your destination directory for the build agent - This is where the working directory and configuration will reside, and click next to perform the installation
4. Give details of you TeamCity server so the agent can communicate back to the server. Run the agent under the SYSTEM account for now, unless you have a dedicated network account (recommended) and start the build agent service. You will now need to enable the agent inside of the TeamCity UI (this may take a few minutes to appear). It might appear as unauthorized and you'll have to wait for it to upgrade and reconnect.
5. Once this has happened, you can authorize the agent by clicking the Authorize agent button. A dialog will popup where you can enter some notes if required.
From the Agent summary, you can note and crosscheck the IP of the machine and links to be used to refer later. TeamCity build agents can be started manually or configured to start automatically.

To start the agent manually, run the following script:
  • for Windows: \bin\agent.bat start
  • for Linux and macOS: \bin\agent.sh start

Refer: TeamCity Documentation - Installing via MS Windows Installer
Cheers :)

Sunday, July 29, 2018

Definition of Smart Devices by W3LC - World Wide Web Learners Consortium *

Definition of Smart device.


"A smart device is any electronic computing device that has an ability to interact autonomously and yield information to its user and other smart devices."
© 2018, Mohd Anwar Jamal faiz

To explain more over this topic and some really good examples i have written this blog which will suffice the needs of both the new entrants into the Information Technology field and the professionals in the area. 

A smart device is a piece of technology that is designed to connect to the internet and perform a wide range of tasks. These devices can be controlled remotely, and they can often be integrated with other smart devices to create a connected ecosystem. Smart devices can include things like smartphones, smart TVs, smart watches, smart speakers, and even smart appliances like refrigerators and washing machines. They are characterized by their ability to connect to the internet, allowing for the exchange of data and the ability to perform advanced functions such as remote control, automation, and even artificial intelligence. The goal of smart devices is to make our lives easier and more convenient by automating and streamlining everyday tasks.


Some examples if Smart devices are:
  • Smartphones
  • Smart speakers like Alexa Echo Series, or Google Home
  • Smart Home systems like of Philips Hue and Samsung line
  • tablets
  • phablets
  • PDAs
  • Smart watches
  • Smart Fitness trackers
  • Smart Glasses
And, the list continues.

Smart devices are called "smart" because they possess advanced features and capabilities that allow them to be controlled remotely, automate tasks, and make decisions based on data input. The term "smart" implies that the device has intelligence and the ability to think and learn. These devices are often connected to the internet, allowing them to exchange data with other devices and services, and they can often be integrated with other smart devices to create a connected ecosystem. The smartness of these devices comes from the ability to perform advanced functions such as remote control, automation, and even artificial intelligence. The goal of smart devices is to make our lives easier and more convenient by automating and streamlining everyday tasks.

Wednesday, July 25, 2018

React Vs Angular in SPA: What they are, differences and the end of debate

As soon as you decide upon being SPA, the Single Page Application, the question pops up which Library. Here, I discuss between what I have learnt so far in this area,as a developer, tester and UX designer.


Let's start with a basic introduction. Angular is a TypeScript-based Javascript framework, developed and maintained by Google. Angular 1 released in 2010 is now called AngularJS. Angular 2 and above release after 2016 is simply called Angular. The latest version is Angular 7. It is being used by Google, Wix, weather.com, healthcare.gov and Forbes etc. React is described as “a JavaScript library for building user interfaces”. Released in March 2013, developed and is maintained by Facebook.
Facebook uses React components on several pages. It is said that React is used far more at Facebook than Angular is at Google. Anyways, React has also a good range of supporters cum users likeReact
Airbnb, Uber, Netflix, Twitter, Pinterest, Reddit, Udemy, Wix, Paypal, Imgur, Feedly, Stripe, Tumblr, Walmart etc. Additionally, Facebook is working on the release of React Fiber. Rendering is supposed to be much faster as a result.


The frameworks are component-based. A component gets an input, and after some internal behavior / computing, it returns a rendered UI template as output. Much appears like an MVC design pattern. The defined components should be easy to reuse on the webpage or within other components.


The differences start from the fact React focuses on the use of Javascript ES5 or ES6. Angular relies on TypeScript. Because of this Angular has more consistency. Also, Angular has hence, concepts like decorators and static types. Static types are useful for code intelligence tools, like automatic refactoring, jump to definitions, etc. However there is catch also that TypeScript may disappear over time. Additionally, TypeScript adds a lot of learning overhead to projects. And, for the type checking enthusiasts, there is something called Flow to enable type-checking within React. It’s a static type-checker developed by Facebook for JavaScript.


Then, lets remember that Angular is a full framework with all the tooling and best practices designed on top of it. React on the other hand is just a small view library that you
would need while making an app. React uses abstractions over simple Javascript. But learning Angular is bit time consuming as you should know everything else associated to it eg typescript, MVC. Plus Angular library in itself is huge. The Angular templates are enhanced HTML with special Angular language (Things like ngIf or ngFor). While React requires knowledge of JavaScript, Angular forces you to learn Angular-specific syntax.


On the Scalability issue, Angular is good at this time, 2018. However React is going to comeup with more in future. However, as of now Angular is easy to scale thanks to its design as well as a powerful CLI. React also claims to be good and testable and scalable. So, it won't be a bad idea to choose React.


Coming back to the programming style, I should assert here that Angular includes dependency injection, a pattern in which one object supplies the dependencies (a service) to another object (a client). This leads to more flexibility and cleaner code. Plus, the code becomes more testable. Angular's model-view-controller pattern (MVC) splits a project into three components: model, view and controller. Angular as an MVC-framework has MVC out of the box. React only has the V i.e View. You need to solve the M and C on your own.


But, there also lies a problem with Angular. This is already discussed above but the following idea will give you a new perspective as well. We’re now moving more towards microservices and microapps. React gives you more control to size an application by selecting only the things which are really necessary. They offer more flexibility to shift from an SPA to microservices using parts of a former application. Angular is too bloated to be used for microservices.


And, last but not the least, let me take you to a short discussion around native Apps creation. React with react native, react sketchapp and next.js, it is the best choice. Angular comes with ionic 2 and nativescript, but neither of those mobile frameworks allow angular to reach the performance of react native. React and Angular both support native development. Angular has NativeScript (backed by Telerik) for native apps and Ionic Framework for hybrid apps. With React, you can check out react-native-renderer to build cross-plattform iOS and Android apps, or react-native for native apps. A lot of apps (including Facebook; check the Showcase for more) are built with react-native.


Lets remember that definitely React has been the most popular when it comes to English frontend and full stack communities in 2016. It is also becoming a good choice for native JavaScript mobile and even desktop apps. React is fairly simple to understand. Angular is not so simple and code setup takes time. Also, Angular is way bigger, causing longer load times and performance issues on mobiles.


So, what I conclude that you should use Angular if you work at Google, if you love TypeScript, if you love object-orientated-programming (OOP), or if you work in a large team where there are guides, collaborators, scalability issues. You should use React if you work at Facebook, if you like flexibility, if you love big ecosystems and you like choosing among dozens of packages, or if you love JS & the “everything-is-Javascript-approach”.


Cheers ;)
Mohd Anwar Jamal Faiz

wget to take backup. Shhh LOL

Ever had that terrifying feeling you’ve lost your blog. We can try keeping a backup of it using a handy tool. There is no reason to neglect doing it.

wget64.exe --convert-links -r https://domt.surge.sh/

wget64.exe --recursive --no-clobber --page-requisites --html-extension --convert-links --restrict-file-names=windows --domains surge.sh --no-parent https://domt.surge.sh/

Stop WGET from being blocked:
Some web servers are set up to deny WGET’s default user agent – for obvious, bandwidth saving reasons. You could try changing your user agent to get round this. Try er, pretending to be Googlebot:

wget --user-agent="Googlebot/2.1 (+http://www.googlebot.com/bot.html)" -r http://www.yoursite.com


Also:

wget --random-wait -r -p -e robots=off -U mozilla --convert-links  http://khadijajavedfreightlogistics.website2.me


*BTW: Readers know that there are many uses of the tool. I'm just taking example of what i needed today. You know the rest. Shh! LOL.






 

Thursday, July 12, 2018

ThisChapter.Close() in long debates is good. Personal relations are important to keep that political discourse

And, we all know that well - Politicians are for none. Doesn't matter you support or oppose. If it's your turn you will get the bruise.

Anyways, I propose an algorithm to end the long debates. When you see that no fruitful is happening, you can end the thread. But please do remember to end any traces of hate that popped up in between. See below:

try{
thisChapter.Close();
}
catch( exception hate)
{
hate.End();
free(happiness);
}

Cheers!
Enjoy the life.

Yahoo Messenger Going down on 17th July 2018. An emotional letter by a fan remembering the golden era that now comes to an end.

Dear Yahoo,

Yahoo messenger was one of the first as well as the finest chat application. Chatting, to the most of our generation, started from Yahoo messenger in the public domain. Private chats as well as the chat rooms, were all a world of fantasy that soon became the world we lived in.

It's a sad news that Yahoo Messenger will no longer be supported after July 17, 2018. However, I do believe changes do happen. And, are essential to keep the river flowing. But trust me, the heart is heavy as if someone very own is going far far away.

The messenger has been a part of my childhood and of millions like me. It has supported me from contacting guys for studies as well as chatting late hours with my girlfriend. And, who could ever forget that chats with unknowns beginning with the all new discovered slangs like "a/s/l please" and frequently supplemented with the cool additions to our vocabulary like "brb", "lol" and "imo" etc. It has also been the only support in my long distance relationship with my ex.

I pretty much remember everything. Those were the days before Orkut, MySpace, Facebook, Watsapp, Hike or anything. The free chatrooms with multiple people checking in and leaving was an experience  out of the box. We have developed sincere and full-fledged virtual relationships with someone we never met. Sometimes, we waited for hours at odd hours for people to check-in the chat room. And, sometimes we just waited for hours before sending that first 'hi' to our crushes. Looks like some most cherished memories circle around Yahoo Messenger!

I’ve loved using the tool and want to thank you Yahoo for bringing such a product for us. I know that you will continue to focus on building and introducing new, exciting communication tools that impact and delight your users. 

Thanks for being a part of my life for so many years.

Thanks and regards,
Anwar Jamal Faiz

** To my blog readers: Before July 17, you can continue to use the service, but after that date, you will no longer have access to Yahoo Messenger. You can learn how to save your chats by visiting this FAQ page of Yahoo.

Wednesday, July 11, 2018

Cannot Start Microsoft Outlook. Invalid XML, the View Cannot be Loaded

One way your Outlook blocks you from accessing emails is when it Cannot Start Microsoft Outlook. Invalid XML, the View Cannot be Loaded" Error Message. The cause is also simple and more is its fix.

Follow the following steps below to clear and regenerate your Navigation Pane if you receive an error message that says "Cannot start Microsoft Outlook. Cannot open the Outlook window. Invalid XML, the view cannot be loaded."

Problem:

When opening Microsoft Outlook Windows client, you receive the following error:

"Cannot start Microsoft Outlook. Cannot open the Outlook window. Invalid XML, the view cannot be loaded."

Opening Outlook in SAFE mode does not help, nor can this problem fixed by running repair or even by re-installing Outlook.

Fix:
To fix this error, run the Outlook.exe  /ResetNavPane command:

Where to run:
Hold the Windows key and the R key at the same time.
The Run command window will open. Copy Outlook.exe  /ResetNavPane into the text field.
Click OK to run the command.

What happens:
Running this command clears and regenerates the Navigation Pane for the current profile, removing all shortcuts and favorite folders from the Navigation Pane.


Its time for a cheers ;)
Enjoy.

Friday, June 29, 2018

Null conditional operator : Question mark (?) before Variable

One of the reader recently asked about the new kind of operator that we use in C# 6.0. He noticed that in the VS - 2015, there is a use of new operator as following. And, he wanted about what it is:
Eg: public class A {
   string method1 { get; set; }
}
..
var a = new A();
var foo = "anwar";
if(a?.method1 != foo) {
   //somecode
}

So, let me explain this brief concept!

It's the null conditional operator. It basically means to evaluate the first operand. If that is null, stop, with a result of null. If not, evaluate the second operand as a member of the first operand.

In the above example, the point is that if a is null, then a?.method1() will evaluate to null rather than throwing an exception.  It will then compare that null reference with foo, using string class overload, and find that they are not equal and execution will go into the body of the if statement.

In addition, it can be very useful when flattening a hierarchy and/or mapping objects. iEg, Instead of:

if (Model.Model2 == null
  || Model.Model2.Model3 == null
  || Model.Model2.Model3.Model4 == null
  || Model.Model2.Model3.Model4.Name == null)
{
  mapped.Name = "default"
}
else
{
  mapped.Name = Model.Model2.Model3.Model4.Name;
}
It can be written like (same logic as above)

mapped.Name = Model.Model2?.Model3?.Model4?.Name ?? "default";

So, with this I end. Go, grab a cuppa coffee. I will still do Cheers :)

Thursday, May 24, 2018

How to Load Test APIs: Methods and most effective way to test web or downstream services

There are three typical approaches to load testing an API. These, as well as various hybrids, each have drawbacks and advantages.

#1 Faking it – API Mocking

The least useful for load testing is API Mocking These are basically temporary placeholders used during development of an API. Developers use these for early unit testing. But they also provide these “dummy” versions to other teams that need to call the unfinished API from within their own code.
Mocks return hard-coded responses, the formats of which often change during development. Also, the effort to create the mocks is wasted after their initial use.
Remember that, mocks aren’t yet hooked up to actual data sources, their performance isn’t at all representative of the real world. In summary, mocks may be useful for unit testing, but they aren’t representative of the real world.

#2 Cloning it – A Full Test Environment

This approach stands up a full-blown test environment using a snapshot of production data. disadvantages-of-cloned-environmentsOften you’ll have a copy of all the applications running, too, because your code relies on other APIs, not just database queries.
The good in this approach is that it’s very representative of the live system’s performance. If your load test brings the system to its knees, no problem! It hurts no one.
However, they raise privacy concerns, require constant data reloading, and can be very expensive if calling third party APIs.

#3 Hitting production – Load Testing Live APIs

Sadly, the method so many companies use is to test on production itself. Why? Well, it’s live, so it’s the most representative of all methods. It’s also “easy” –  no separate test environment to stand up and maintain. 
Disadvantage is that all data created are actual and stateful. And you still have to worry about the cost of pay-per-use APIs.
It’s important to schedule your load test “off hours.” And, any break would cause your production to become down.

#4 API Virtualization – The Risk-free Approach

You want to perform an exhaustive load test of your API – and keep your existing customers and your job. That rules out hitting the production system. And, you also need more than a test version of your API in a cloned environment. You need to test the real API in an environment where you can control the load condition for aspect of the test.
That’s where API Virtualization comes in. A virtual API provides a sandbox environment where you can simulate environmental loads on network bandwidth, server and database connections, simultaneous users and more.
With API virtualization, minimal resources are required for standing up and testing the API. You test the API itself, not the end-to-end application with all its required backend systems.  This eliminates the need for a clone of the production environment. 
load-testing-with-api-virtualization
You can test your API in isolation, gauging the reaction against real data,  under a variety of load conditions. 
API Virtualization allows you to load test your API in isolation from the rest of the system. With complete control of the test conditions, you can simulate network load, maximum connection limits, latencies and other conditions that happen in the real world.

Wednesday, May 23, 2018

What is SMSC number : Indian Mobile Operators - How does it work and how to change SMSC Number in Android phones

A Short Message Service Center (SMSC) is a network element in the mobile telephone network. Its purpose is to store, forward, convert and deliver Short Message Service (SMS) messages.

The flow of message in mobile network system happens as follows:

  1. From mobile to another mobile - referred to as MO-MT (Mobile Originated - Mobile Terminated)
  2. From mobile to a content provider (also known as Large Account / ESME) - referred to as MO-AT (Mobile Originated - Application Terminated)
  3. From application to a mobile - referred to as AO-MT (Application Originated - Mobile Terminated)


We should remember that An SMS message is stored temporarily in the SMS center if the recipient mobile phone is unavailable. It is possible on most mobile handsets to specify an expiry period after which the SMS message will be deleted from the SMS center. Once deleted, the SMS message will no longer be available for dispatch to the recipient mobile phone (even if it comes on line). The validity period should be regarded by the handset user as a request, as the SMSC itself can be configured to ignore or otherwise handle message delivery schedules.


Sometimes you face problem in sending SMS or Changing SMS center number. While sending SMS you will get ‘unable to send’ error, this Error is mainly caused by Mobile SMS center number is changed. You can change this number in your mobile Network/SMS settings


Following is the list of SMSC numbers (latest) for leading mobile operators in India:

  • Aircel sms center number +919809099060
  • Airtel sms service center number +919895051914
  • Jio sms center number +917010075009
  • BSNL sms center number +919440099997
  • Idea sms service center number +919847099996
  • Reliance sms service center number +919020000500
  • Tata Docomo sms service center number +919032055002
  • Uninor/Telenor sms center number +919084051550
  • Vodafone SMS center number +919846000040


An SMS centre (SMSC) is responsible for handling the SMS operations of a wireless network.

  1. When an SMS message is sent from a mobile phone, it will first reach an SMS centre.
  2. The SMS centre then forwards the SMS message towards the destination.
  3. The main duty of an SMSC is to route SMS messages and regulate the process. If the recipient is unavailable (for example, when the mobile phone is switched off), the SMSC will store the SMS message.
  4. It will forward the SMS message when the recipient is available and the message's expiry period is not exceeded.

Guess what! This completes the full information you should know.

Thursday, May 10, 2018

Nine Planetary Differences between SOAP and REST APIs

Here is what I technically feel the major difference between  SOAP and REST. To begin with, SOAP stands for Simple Object Access Protocol. REST stands for REpresentational State Transfer.

Like 9 planets of our Solar system, I list down following 9 major differences that will completely settle down the discussion. So here is what I call, The Nine Planetary Differences Between SOAP and REST:

1) The first of all is that SOAP is a protocol while REST is an architectural style. So, this is a monumental difference in itself.

2) Next is to remember that SOAP can not use REST as it is a protocol. On the other hand, the REST architecture can use SOAP web services because it is a concept and hence it can use any protocol like HTTP, SOAP. Generally, it's HTTP.

3) Other important difference is  that SOAP permits XML data format only while REST permits different data format such as Text, HTML, JSON, XML etc.

4) Its important to note that SOAP uses services interfaces to expose the business logic. REST, on opposite, uses the URI to expose business logic.

5) In Java, JAX-WS is the java API for SOAP web services. JAX-RS is the java API for RESTful web services.

6) Next difference is related to the standards followed by each. SOAP defines standards to be strictly followed but the REST architecture does not define too much standards.

7) SOAP requires more bandwidth and resources. REST requires less bandwidth and resource than SOAP. Hence, RESTful APIs shall be bit faster. But your choice of what should be chosen in your application depends more on your architectural needs.

8) Any discussion shall be incomplete without talking about the security. So, let's remember that SOAP defines its own security. RESTful web services inherits security measures from the underlying transport mechanism.

9) Last, but not the least, SOAP is less preferred than REST. RESTful APIs are becoming more popular. However, there is no near future where one can totally surpass the other. Both are useful depending upon the needs of the software web application or services you are building.

Cheers!

*PS: don't crib that solar system now has only eight planets. For such cribbing souls, consider the ninth difference above as striked off. After all, it's just a consequence of the eight differences above. Ahem!

Success lessons from Marvel's Avengers strategy: A must business lesson.

All Marvel movies since 2008 have earned over $16 billion worldwide. And, Marvel’s Avengers: Infinity War earned more than $1.2 BILLION in just 2 weeks!
As a business enthusiast, you can learn some valuable lessons from the way Marvel achieved this.

Future prediction and long term thinking
The new MCU (Marvel Cinematic Universe) timeline started in 2008 with the release of Ironman.
Even at that moment, Marvel had already planned at least 7-8 years ahead, and knew exactly what movies would be released, and when.
Marvel teams already had meetings about movies up until 2025, and they’ve already planned out 20 movies to come out after Infinity War.
When you think long-term like Marvel does, you start thinking differently. You think strategically, not tactically. You focus on important things, not on shiny new objects.
And it’s ok if you don’t have all the pieces figured out. Marvel doesn’t.
Plan ahead. Have long-term goals. Focus on long-term wins, not short-term gains.
You’ll avoid distraction and stress, and you’ll deal with temporary failures much easier.

Do not wish to be successful at each stage, but keep larger goal at aim
Hulk is one of the most beloved characters in the Marvel universe.
But even despite that, a 2008 version - The Incredible Hulk - brought only $135 million in the US ($263M worldwide) on the $150M budget.
Not even close, compared to Ironman that was released that same year.
Even if you choose to sell a product that you’re sure will be a winner - and it turns out to be a loser, don’t lose hope.
Maybe you released the product too soon. Maybe you missed some step in the process. Or maybe it just isn’t the right time.
Remember lesson #1.

Don't just run after your dream product. Rather think what people want
No, there are no spoilers here. Keep reading.
I’m referring to lesson #2.
The audience wasn’t thrilled with Hulk, so Marvel “killed” the standalone Hulk movie… for now.
But in later movies, Hulk became the audience’s favorite hero.
Will they try again? It’s very possible.
The point is, if you love your product, but your market doesn’t - kill it.
Don’t waste your resources on something people don’t want.
But keep it handy. Maybe offer it as a bonus. Maybe as an upsell. (Marvel did that with Hulk. :))
As I said, maybe it’s just wrong timing.

Keep a good team and hold them tight
After The Avengers and Ironman 3, Marvel encountered some problems.
There’s no doubt that Robert Downey Jr. was (and is) the biggest star of the MCU.
No wonder he’s the highest paid actor on the team.
However, some other important team members were paid very low! Apparently, Chris Hemsworth made less than $1 million from the first two Marvel movies.
However, the team stood together.
The lower paid actors demanded a pay raise, and Robert Downey Jr. said that he’d quit as well, if any of them quit.
Marvel had no option but to raise their pay.
Based on how much money Marvel made from that moment until now, it was a smart decision and a small price to pay.
If you find people who are worth keeping, keep them at any cost.
It may cost you some extra money in the beginning, but they’ll either make you or save you 10x more when you need them.

Be innovative and take risks
Thor: Ragnarok is an interesting movie.
Up until that moment, Marvel movies were serious action, with a dose of humor.
Ragnarok is 180° opposite. It’s a movie full of humor, with a dose of action.
Marvel decided to play with it. And it paid off.
But notice WHEN Marvel decided to test an unorthodox approach… Years after it was established. When they already had a loyal audience. And when they had enough cash on their hands to cover the potential loss.
Experiment with new products, new launches, new strategies, new approaches… but experiment wisely.

First do something, then dwell deeper
Be honest, had you ever heard of Guardians of the Galaxy before Marvel made that movie?
Guardians of the Galaxy was never a mega-popular comic.
But Marvel apparently cracked the code, and now knows how to create a blockbuster, even with less popular heroes.
Again, check the timing.
They didn’t start the MCU with the Guardians. It was too risky.
They started with the most popular hero - Ironman - and they introduced the Guardians when they already had a loyal MCU fan base.
If you’re starting out, don’t go with an untested product.
Start with something that is proven to sell well. Once you have enough cash and a customer base, try something unusual and new.

Deal with high-quality product as sub-optimal products will jeopardize your growth
You can say anything you want about Marvel movies, but you can’t say they’re not perfectly executed.
Scripts, directing, casting, special effects, sound effects…
Nothing but high-quality work.
Whatever you sell, you should always strive to offer only high-quality products.
You’ll feel better about yourself, your customers will appreciate it, and your business will thrive.
These 7 simple lessons made Marvel movies into the highest cash-producing machines in the entertainment world.
These strategies can help you transform your business as well.
The only “trick” is, they require time and effort.
Success never happens overnight; it’s always a result of planning, clear vision, hard work, and dedication.
Now go, and build a marvelous business.

(This article is inspired and adapted using an Amazing.com advert)