AddChat | A Laravel Package for – Live Chat | Helpdesk | Customer support | Multi User Groups and more

AddChat Laravel Lite

Welcome to AddChat Laravel Lite.

All-in-one multi-purpose Chat Widget Laravel Pacakge

AddChat is a new chatting friend of Laravel. It’s a standalone Chat widget that uses the website’s existing users base, and let website users chat with each other.

You get full source-code, hence AddChat lives and runs on your server/hosting including database. And therefore, you get complete privacy over your data. Either you’re a big corporate sector or a small business. AddChat is for everyone.



AddChat Lite - Laravel Chat Widget


Here’s a complete video tutorial guide for getting started quickly AddChat Laravel Academy ✌️


Overview

Addchat Lite is a chat widget that you can integrate into an existing or a fresh Laravel website. AddChat works like a standalone widget and fulfills all your business-related needs like –

  1. User-to-user chatting
  2. Live real-time chatting (without page refresh)
  3. Internal notification system (saves Pusher monthly subscription fees)
  4. Customer support ( Pro)
  5. Multi-user groups ( Pro)

and a lot more features coming up in AddChat Pro ⚡️

Why AddChat ?

Some of the key highlights, why you would like to go with AddChat!

  • Save monthly subscription bills (pay once use forever)
  • No Confidential Data leak
  • Complete Privacy
  • Easy to install & update
  • Use existing users database
  • Multi-purpose, use it as Helpdesk, Customer support, User-to-user chatting and much more…

AddChat never modifies your existing database tables or records. And it never breaks down any of your website functionality.


AddChat is fully tested and ready to be used in production websites.


Technical Specification

AddChat is very light, high performance, scalable and secure.

  1. AddChat front-end built with VueJs, which is purely API based web-app.

  2. AddChat back-end (API) built with Laravel

    • AddChat Laravel version is a Laravel package, hence, can be installed via Composer in an existing or a fresh Laravel website.

User Interface & Design

AddChat is designed in CSS Flexbox and Sass. Let’s see what’s so special about CSS Flexbox and why we used it.

  1. AddChat is a CSS Framework Independent. Means, no matter in which CSS Framework your website is in, it neither affects the website CSS nor gets affected by it.

    or any other…

  2. AddChat CSS is completely encapsulated (wrapped in AddChat wrapper with #addchat-bot .c- prefix).

  3. We’ve used the popular NPM package auto-prefixer to make the AddChat UI design same across all types of browsers e.g Chrome, Firefox, Safari, Edge etc

Multi-regional

AddChat is compatible with all languages and timezones. AddChat auto adapts and adjust website’s default timezone and language. Please refer to the Language section for more info about adding a new language in AddChat Laravel


AddChat never breaks any of your website functionality, even if something went wrong with AddChat, there are fallback modes for every worst-case scenario.


Lite Version


This is AddChat Lite version documentation


AddChat Lite is open-source, free to use. Lite version has got limited features & functionality.

Pro Version

AddChat Pro Version comes with Commercial license. Pro version is fully loaded with a lot of useful and exciting features.

  • AddChat Laravel Pro

    • Live – Coming soon
    • Purchase – Subscribe now for notifications, will be soon available for Purchase here

Laravel Installation

AddChat can be installed via composer. Smooth… 🍻


Here’s a complete video tutorial guide for getting started quickly AddChat Laravel Academy ✌️


Prerequisites

  • Laravel version 5.5 / 5.6 / 5.7 / 5.8 / 6.x
  • Make sure to install AddChat package on a Fresh or Existing Laravel application.
  • We also assume that you’ve setup the database.
  • If you’re running MySql version older than < 5.7 then disable strict mode in Laravel config/database.php 'strict' => false

Install

  1. If installing AddChat on an existing Laravel application and you already have Auth system then skip this step

    If installing on a Fresh Laravel application then run

    For Laravel 5.5 to 5.8

    php artisan make:auth  php artisan migrate

    For Laravel 6.x

    composer require laravel/ui --dev  php artisan ui vue --auth  npm install && npm run dev  php artisan migrate
  2. Install AddChat via Composer

    composer require classiebit/addchat-laravel
  3. Run AddChat install command

    php artisan addchat:install
  4. Open the common layout file, mostly the common layout file is the file which contains the HTML & BODY tags.

    • Copy AddChat CSS code and paste it right before closing </head> tag

      <!-- 1. Addchat css --> <link href="<?php echo asset('assets/addchat/css/addchat.min.css') ?>" rel="stylesheet">
    • Copy AddChat Widget code and paste it right after opening <body> tag

      <!-- 2. AddChat widget --> <div id="addchat_app"   data-baseurl="<?php echo url('') ?>"  data-csrfname="<?php echo 'X-CSRF-Token' ?>"  data-csrftoken="<?php echo csrf_token() ?>" ></div>
    • Copy AddChat JS code and paste it right before closing </body> tag

      <!-- 3. AddChat JS --> <!-- Modern browsers --> <script type="module" src="<?php echo asset('assets/addchat/js/addchat.min.js') ?>"></script> <!-- Fallback support for Older browsers --> <script nomodule src="<?php echo asset('assets/addchat/js/addchat-legacy.min.js') ?>"></script>

    {warning} Please replace <php ?> tag by curly brackets.

    The final layout will look something like this

    <head>   <!-- **** your site other content **** -->   <!-- 1. Addchat css -->  <link href="<?php echo asset('assets/addchat/css/addchat.min.css') ?>" rel="stylesheet">  </head> <body>   <!-- 2. AddChat widget -->  <div id="addchat_app"   data-baseurl="<?php echo url('') ?>"  data-csrfname="<?php echo 'X-CSRF-Token' ?>"  data-csrftoken="<?php echo csrf_token() ?>"  ></div>     <!-- **** your site other content **** -->    <!-- 3. AddChat JS -->  <!-- Modern browsers -->  <script type="module" src="<?php echo asset('assets/addchat/js/addchat.min.js') ?>"></script>  <!-- Fallback support for Older browsers -->  <script nomodule src="<?php echo asset('assets/addchat/js/addchat-legacy.min.js') ?>"></script>  </body>

For Info, the php artisan addchat:install publishes AddChat assets to your application public/assets directory


addchat.min.js for modern browsers & addchat-legacy.min.js for older browsers. These will be used switched by the browsers automatically on the basis on type="module" & nomodule, you need to nothing.


Setup finishes here, now heads-up straight to Settings docs



via Laravel News Links
AddChat | A Laravel Package for – Live Chat | Helpdesk | Customer support | Multi User Groups and more

Buying Ammunition Online, Our Top Ten Places to Shop

Opinion: Here are AmmoLand’s top ten (10) ammo retailers that we use to get the best prices when buying ammunition online for our guns.
AmmoLand Editor’s Note, ammunition prices that are shown in online seller’s screen-grabs are only valid at the time of the article publish date. Internet ammo prices always subject to change.

Buying Ammunition Online, Our Top Ten Places to Sho
Buying Ammunition Online, Our Top Ten Places to Shop

USA – -(AmmoLand.com)- Lower Prices, bundle deals, discounts, and convenience are just a few words that come to mind as to why buying ammunition online is a good idea.

Often prices at retail are nearly double the online prices, which, for the avid shooter, makes life a touch more difficult. Online sales of ammo typical help you avoid sales tax unless you live in the same state as the company itself, however, in most cases, you can save your self 8-10% on your purchase by purchasing online. If sales tax saving is not enough, online shopping provides much deeper inventory opportunities.

These days, and due to public pressure and anti-gun measures, many major storefront ammunition retailers have eliminated ammo sales from their operations. While this seems like a loss for the public, it strengthens the ability to support real pro-gun industry and 2A supporting companies. Here are our top ten online ammunition retailers in no particular order.

Buying Ammunition Online, Here Are Our Top Ten Places

Brownells Bullets Ammo Buying Ammunition Online
Brownells.com your place for Bullets, Ammo and Buying Ammunition Online.

Brownells, Ammunition Sales:

Led by the Bureau of Propaganda, Brownell’s own staff who’s unafraid to troll the folks down in Bentonville and stand up to the digital powers in California, Brownells offers a smooth process for selecting, buying and shipping. The Brownells website features make it easy to quickly narrow down what you need by ammo subcategories and even price range. Brownells understands the needs of shooters and even help you narrow in on price per rounds and display in real-time what is on clearance sale. [check AmmoLand’s page tracking the best of Brownell’s ammunition deals]

Choose from Handgun, Rifle, Rimfire, and Shotgun on an easy-to-use scroll down menu and sift through over 3,500 options to find what you need for your weekend at the range or to stock-pile your safe room. Brownells has a fair shipping policy with the free shipping threshold starting at $99 with coupon codes.  www.brownells.com

Palmetto State Armory, Cheap Ammo Sales:

Palmetto State Armory Ammo Sales Cheap
Palmetto State Armory Cheap Ammo Sales

Regardless if its a weekend with the crew or you are gearing up to defend your home turf when bulk selection is needed, Palmetto state Armory is one of the best online e-sales platforms. PSA offers not only a variety of rounds you need but the bulk ammo we all desire. Palmetto State stocks over 3,000 online ammunition options and some of the best pricing options on cases of ammunition over 1,000 rounds in popular calibers such as .223/5.56, 9mm, and .45 ACP. Shipping costs are based on distance and weight. Keep a close eye on their daily ammo deals if you plan on buying ammo online [check the AmmoLand’s PSA bargain page] since they will offer free shipping on certain items from time-to-time. https://ift.tt/PPYAaT

Sportsman’s Guide, Ammunition Online:

Sportsman's Guide bullets ammunition sales bargain
Sportsman’s Guide: bullets, ammunition, and sales bargains.

The Sportsman’s Guide club membership of $49.99 per year provides ample value for purchasing ammunition online. Not only does Sportsmans Guide give you a variety of options when buying ammo online for handguns, shotguns, and both rimfire and centerfire rifles, Club Members never pay a penny for standard shipping on orders of $49 or more, and they give you 5% off on guns & ammo daily. [AmmoLand tracks Sportsman’s Guide ammo bargains here.] Sportsman’s guide has highly competitive pricing on bulk 1,000 cans of .223 ammunition and all the hunting ammunition you need for your season. www.sportsmansguide.com

Natchez Shooters Supplies, Bulk Low Price Ammo:

Natchez Shooters Supplies, Bulk Low Price Ammo
Natchez Shooters Supplies, Bulk Low Price Ammo

If you want everyday quality discounts and low prices on bulk ammunition [ammo reloaders check out this bulk buy on 6000 bullets of Hornady .22 cal ], from your pistols to your ARs and even shotshells for your duck guns, look at the offerings from Natchez Shooters Supplies. With reliable 1-2 day shipping from the time of order, Natchez Shooters Supplies brings avid ammunition users their savings by buying through them. In addition to selling ammunition online, Natchez Shooters Supplies offers gear for hunting, fishing, camping, clothing, and optics. [Check AmmoLand’s page tracking the best of Natchez Shooters Supplies deals] Natchez is a quality online shopping destination for you and your family.  www.natchezss.com

Gorilla Ammunition, High-Quality Ammunition:

Gorilla Ammunition Premium Quality Ammunition
Gorilla Ammunition Premium Quality Ammunition

Unlike others, Gorilla ammunition is its in-house brand manufacturing popular calibers for hunting, target shooting, defense, subsonic, and polymer. According to their website, they host one of the few in-house ballistics laboratories among manufacturers equipped with pressure sensors and Oehler 85 Acoustical velocity & targeting system to build the best ammunition possible. [find Ammoland’s page tracking the news & deals at Gorilla Premium Ammunition here] Free shipping is available when you buy ammunition online over ten boxes. Additionally, Gorilla Ammunition offers firearm parts through their store. Don’t forget to check out their great apparel available as well.  www.gorillaammo.com

Rainier Arms:

Rainer Arms Bullets Ammunition Reloading Parts Sale Prices Free Shipping
Rainer Arms Bullets Ammunition Reloading Parts Sale Prices Free Shipping

Rainer Arms is full of options to outfit your gun room from brand name ammo from CCI, Aguila and Hornady ammunition to gun parts and deals on premier shooting sports brands. Rainer Arms, the Washington-based company has its own ammunition brand, Rainier Munitions, and also hosts the Apx Club to give hunters and shooters alike a membership-based pricing & shipping opportunities for $99.99 per year. [see AmmoLand’s deal tracking page for Rainer found here] The Apex club provides access to new product listings, exclusive access to events, and fee ground shipping on ammo orders in the contiguous United States. www.rainierarms.com

Primary Arms, More Ammo Deals:

Primary Arms, More Ammo Deals
Primary Arms, More Ammo Deals

Primary Arms hosts over 24 brands of ammunition, including Sig Sauer, Barnes, and Sellier & Bellot all available buy online through their website. Both handgun and rifle rounds are available in both popular centerfire and rimfire calibers, and Primary arms host some of the most reliable brands like Federal, PMC, and Hornady. In addition to ammo Primary arms is also home to full lines of firearm parts for popular caliber guns such as the AK-47, the AR-15, AR-308, and handguns. [check AmmoLand’s page tracking the best deals at Primary including ammunition.]

Sportsman’s Warehouse, Clearance Ammo:

Sportsman's Warehouse, Clearance Ammo
Sportsman’s Warehouse, Clearance Ammo

Sportsman’s Warehouse is a time-honored brand known amongst sportsmen across the country who buy ammunition online. They proudly host 12 popular brands which equate to over 287 individual ammo SKUs of available rifle, shotgun, and pistol ammunition to buy online. Sportsman’s Warehouse might be a waterfowl hunters’ best friend as they position their steel shot ammo competitively. [Ammoland’s deals page for Sportsman’s Warehouse] You’ll want to check this site out if you hunt ducks and geese before your trip to the blind.  www.sportsmans.com

Botach, Surplus Ammo:

Botach Ammo Store Retailer Bargain Price Coupon Codes
Botach Ammo Store Retailer Bargain Price Coupon Codes

Everything you need to outfit your tactical shooting needs and to outfit your wardrobe with street clothes from Adidas and Under Armour. If you were disappointed in “Richards Sporting Goods,” look no further than Botach when you need to buy ammunition online. Twenty-four brands and 143 SKUs of ammunition. Botach features not just popular calibers for handgun, centerfire, and rimfire rifles but also provide opportunities to buy defense ammunition online with options such as SDI 12-Gauge 60-Caliber 3 Rubber Ball Round and the SDI 12-Gauge Bean Bag Round. [Check out all the great savings we have recoded at AmmoLand’s Botach deals page.] Don’t forget to pick out a great deal on ammunition storage while you shop as well.  www.botach.com

Optics Planet, Brand Name Ammunition Cheap:

Optics Planet, Brand Name Ammunition Cheap
Optics Planet, Brand Name Ammunition Cheap

To finish up the top ten places to buy ammunition online, it would be remiss if we left out the expansive options available on Optics Planet. With 476 ammunition products to choose from, you’ll be able to find what you need for every gun you have. Optics Planet gives hunters and shooters alike consistent discounts on ammunition and shows you the percentage savings. [track AmmoLand’s deal page for Optics Planet here.] Optics Planet also allows you to compare attributes of ammunition side-by-side with each other.  www.opticsplanet.com

Buying ammunition online gives you options, discount values, and the ability to find great bundle deals to save you money and time. With a bit of planning and persistence, you can take advantage of what is possible through our top ten online ammunition retailers.

The post Buying Ammunition Online, Our Top Ten Places to Shop appeared first on AmmoLand.com.

via AmmoLand.com
Buying Ammunition Online, Our Top Ten Places to Shop

Quick start for Laravel Orchid

Quick start for beginners


This quick start guide provides a basic introduction to the infrastructure and includes information. about screens and form elements. To select the basic set of functions, we will create a simple utility for sending emails.

At this stage, it is necessary that you have already installed the framework and the platform, created the database and started the webserver.

First, you need to create a screen to display the submission form, using the command:

php artisan orchid:screen EmailSenderScreen

A new file EmailSenderScreen.php will be created in the app/Orchid/Screens directory:

namespace App\Orchid\Screens; use Orchid\Screen\Screen; class EmailSenderScreen extends Screen { /** * Name and description properties are responsible for * what name will be displayed * on the user screen and in headlines. */ public $name = 'EmailSenderScreen'; public $description = 'EmailSenderScreen'; /**      * A method that defines all screen input data      * is in it that database queries should be called,      * api or any others (not necessarily explicit),      * the result of which should be an array,      * appeal to which his keys will be used.      */ public function query(): array { return []; } /**      * Identifies control buttons and events.      * which will have to happen by pressing      */ public function commandBar(): array { return []; } /**      * Set of mappings      * rows, tables, graphs,      * modal windows, and their combinations      */ public function layout(): array { return []; } }

The main difference of the screen from the controller is the structure defined in advance, which serves only one-page defining data and events.

Like the controller, the screen needs to be registered in the route file, Define it in the file for the admin panel routes/platform.php:

use App\Orchid\Screens\EmailSenderScreen; $this->router->screen('email', EmailSenderScreen::class)->name('platform.email');

After we have registered a new route, you can go to the browser at /dashboard/email, to look at the empty screen, fill it with the elements.

Add a name and description:

/** * Display header name. * * @var string */ public $name = 'Email sender'; /** * Display header description. * * @var string */ public $description = 'Tool that sends ad-hoc email messages.';

To display the input fields, we describe them in the Layouts method:

/** * Views. * * @return Layout[] */ public function layout(): array { return [ Layout::rows([ Input::make('subject') ->title('Subject') ->required() ->placeholder('Message subject line') ->help('Enter the subject line for your message'), Relation::make('users.') ->title('Recipients') ->multiple() ->required() ->placeholder('Email addresses') ->help('Enter the users that you would like to send this message to.') ->fromModel(User::class,'name','email'), Quill::make('content') ->title('Content') ->required() ->placeholder('Insert text here ...') ->help('Add the content for the message that you would like to send.') ])->with(70) ]; }

Now our page has some elements but does not produce any action. to define them you need to create a new public method and specify a link to it in commandBar:

namespace App\Orchid\Screens; use App\User; use Illuminate\Http\Request; use Illuminate\Mail\Message; use Illuminate\Support\Facades\Mail; use Orchid\Screen\Fields\Input; use Orchid\Screen\Fields\Quill; use Orchid\Screen\Fields\Relation; use Orchid\Screen\Layout; use Orchid\Screen\Actions\Button; use Orchid\Screen\Screen; use Orchid\Support\Facades\Alert; class EmailSenderScreen extends Screen { /** * Display header name. * * @var string */ public $name = 'Email sender'; /** * Display header description. * * @var string */ public $description = 'Tool that sends ad-hoc email messages.'; /** * Query data. * * @return array */ public function query(): array { return []; } /** * Button commands. * * @return Link[] */ public function commandBar(): array { return [ Button::make('Send Message') ->icon('icon-paper-plane') ->method('sendMessage') ]; } /** * Views. * * @return Layout[] */ public function layout(): array { return [ Layout::rows([ Input::make('subject') ->title('Subject') ->required() ->placeholder('Message subject line') ->help('Enter the subject line for your message'), Relation::make('users.') ->title('Recipients') ->multiple() ->required() ->placeholder('Email addresses') ->help('Enter the users that you would like to send this message to.') ->fromModel(User::class,'name','email'), Quill::make('content') ->title('Content') ->required() ->placeholder('Insert text here ...') ->help('Add the content for the message that you would like to send.') ])->with(70) ]; } /** * @param Request $request * * @return \Illuminate\Http\RedirectResponse */ public function sendMessage(Request $request) { Mail::raw($request->get('content'), function (Message $message) use ($request) { $message->subject($request->get('subject')); foreach ($request->get('users') as $email) { $message->to($email); } }); Alert::info('Your email message has been sent successfully.'); return back(); } }

After that, can to send email messages to addresses.

Note that by default the smtp driver is enabled for sending mail, You can change it in the .env file tolog for verification.

Since our utility is mixed up, we can dream up and imagine that our boss asked us to put the title of our messages like “Campaign news for July”, but be able to change it. To do this, add the key to the query method with the name of our element:

/** * Query data. * * @return array */ public function query(): array { return [ 'subject' => date('F').' Campaign News', ]; }

Now the field with the name subject automatically fits the value from the result.

All this time, to display the screen, it was necessary to specify an explicit page in the browser, add a new item to the menu, for this in the composer file at app/Orchid/Composers/MainMenuComposer.php we add the declaration:

$this->dashboard->menu ->add(Menu::MAIN, ItemMenu::label('Email sender') ->icon('icon-envelope-letter') ->route('platform.email') ->title('Tools') );

Now our utility is displayed on the left menu and is active when visiting. Navigation can be carried out not only through transitions from the menu but also through bread crumbs, to add them to our screen you need to add a new ad in the routes/breadcrumbs.php by route name

Breadcrumbs::for('platform.email', function ($trail) { $trail->parent('platform.index'); $trail->push('Email sender'); });

Congratulations, you should now understand how the platform works! This is a very simple example, but the development process will be identical in many aspects. Now we recommend to going the Screens section to learn more about the possibilities that are in your hands.

via Laravel News Links
Quick start for Laravel Orchid

It will kill….and then some.

Quoting from the source:

Dan Keffeler’s winning run at the 2019 BladeSports National Championships. If you’re not familiar with Dan’s work, he also makes some impressive swords and choppers in modern high alloy tool steel.

Damn… that is an impressive blade. Notice it is not pointy which makes it totally cool in the formerly Great Britain.

via
It will kill….and then some.

Lessons from The Art of War: Good Leaders vs. Bad Leaders

Editor’s Note: The following is adapted from The Ultimate Art of War by Antony Cummins, in which the author offers a fresh translation as well as a distillation and commentary of Sun Tzu’s teachings. The excerpt below provides a short summary of the qualities that Sun Tzu thought made up bad leaders versus good leaders. 

The Qualities of a Bad Leader

Sun Tzu lists the following five characteristics that, if found to dominate a leader’s personality, will bring the downfall of that leader’s army:

1. Recklessness. Leaders who move forward to fight at every opportunity and see all situations as reason for a battle will get their army killed in the end.

2. Over-Cautiousness. Leaders who always avoid fights, look for the way out and are preoccupied by a wish to return home safely will end up being cornered and captured, because the enemy will find a way to chase them into a trap.

3. Hot-Headedness. Leaders who are easily angered can be provoked into declaring war without a plan in place.

4. Vanity. Leaders who have a high self-esteem and a desire to preserve their noble reputation at all costs can be manipulated through character assassination and slander.

5. Excessive Compassion. Leaders who care too much about the welfare of their people can lose sight of their objectives. Hard as it may sound, you have to be prepared to accept a certain amount of collateral damage in a campaign. If the enemy suspects that you are trying to avoid incurring any casualties whatsoever, they may try to manipulate you by targeting civilians knowing that this will throw you into confusion.

The above five characteristics exist in all humans, but none of them should be dominant. Do not let your personality become an obvious target for the enemy.

War Tip: Do not be too quick to battle or too quick to retreat. Do not anger in haste or place too much importance on your personal honor. Learn to accept that there will be casualties in war.

The Qualities of a Good Leader

Sun Tzu [says] that an army must be commanded by a single person who makes each soldier feel as if they were being led personally by the hand. This is how to make the army work as one.

The perfect leader will have the following qualities:

1. Calmness. A good leader is neither angry nor forceful. “Power” is not “force” and an army cannot be kept together for long through intimidation. Therefore, remain calm most of the time and only show your teeth when it is really necessary.

2. Unpredictability. Do not make the obvious move, and avoid leaving a pattern in your past activities. The enemy should not be able to identify what you will do in the future from what you did in the past. Do not take predictable routes, change your camp position . . . keep the enemy guessing.

3. Inscrutability. You also need to be unreadable, so that even if an enemy spy succeeds in infiltrating your camp and observes you from close quarters they still cannot read your thoughts.

4. Self-Discipline. There is a difference between obedience, discipline, and self-discipline. Many people are obedient, some have discipline forced upon them, but few are self-disciplined. While others rest and relax, the good leader works and only rests when it is the correct time.

5. Secrecy. There is a delicate balance between keeping plans secret and involving your command team. Too much secrecy and the command team will be alienated; too little and plans will be leaked. It appears Sun Tzu prefers more secrecy and to keep his command team loyal in other ways.

6. Leading By Example. Always be there with your troops (but maybe not always at the front), be observable, and earn the respect of the soldiers by sharing their hardships. Sun Tzu uses various images here to back up his point that the commander is “with the troops.” The first image he gives is of the commander leading the troops up a ladder that is then kicked away, allowing for no return. Alternatively, the army is represented as a great herd of animals moving as one with the leader in the center directing them all in a way that cannot be predicted from the outside. Be with the troops in all dangerous situations, but remain unknown to the enemy.

7. Responsibility. As leader you must confidently assume responsibility for the whole force. Be at the center of everything and use your troops in the most efficient way with the best results.

War Tip: A perfect leader is calm, unpredictable, unreadable, self-disciplined, discreet, is in the thick of it with the troops and is in total command from the center.

_____________________

Taken from The Ultimate Art of War, text copyright © Antony Cummins, Watkins Media 2019.

The post Lessons from The Art of War: Good Leaders vs. Bad Leaders appeared first on The Art of Manliness.


via The Art of Manliness
Lessons from The Art of War: Good Leaders vs. Bad Leaders

How Rubber Balls Are Made

How Rubber Balls Are Made

Link

Ever wonder how they make basketballs or other bouncy rubber balls? It’s not as simple as just blowing up a rubber balloon. Science Channel’s How It’s Made visited a ball factory to walk us through the fascinating process, which includes making an inflatable bladder, then wrapping it in nylon thread and a segmented rubber skin.

via The Awesomer
How Rubber Balls Are Made

80s/90s Commercial Mix

80s/90s Commercial Mix

Link

If you grew up any time in the 1980s or early 1990s, you’ll appreciate this epic compilation of commercials from the era. K. Huntington dug up many of these clips from old Betamax tapes a few years back. Even if you don’t have four hours to kill, it’s worth skipping around a bit to check out some random retro goodness.

via The Awesomer
80s/90s Commercial Mix

Dark Empire: Episode 1

Dark Empire: Episode 1

Link

The first episode of animator Ian WilkinsStar Wars fan series is here, and it’s every bit as good as we hoped it would be. Many years after the fall of Vader and the Emperor at Endor, remaining members of the Rebel Alliance must once again defend against the Empire as they regain strength against the New Republic.

via The Awesomer
Dark Empire: Episode 1