Posted on 1 Comment

Why The US Economy Is In Trouble If We Don’t Start Teaching More Computer Science

While Most Americans Are Worried About North Korea

I am worrying about the future prospects of the American economy. It’s no secret that today we are more interconnected than ever, and while it has brought about wonderful leaps and bounds in terms of convenience and ease of life there is one thing we overlooked……we are not teaching the skills needed in our school system. Computer science is not just the way of America’s economy it is the way of the GLOBAL economy, and looking at projections we are in a very very bad place.
 

We Are Failing Our Children


Only 10% of American high schools teach computer science, even though the tech sector is projected to grow faster than every other sector but five by the year 2020. The US is in such a desperate SHORTAGE of tech workers that they are planning on building an 1,800 person floating city out in international waters of the coast of San Francisco to bring in more H1-B foreign visa holders. Now I want you guys to think about this for a moment. The average tech worker makes $78,730, according to the Bureau of Labor Statistics (last year as a senior software engineer I made more than double that at the age of 24). Now let’s say these guys are making $78,730 (trust me those 1,800 engineers will be mostly if not all senior level so they will be making much more but for sake of simplicity we use this figure). That is $141,714,000/year that could have gone to home grown American workers.

There Is A Specialty Shortage In America Not A Job Shortage

I taught myself programming at the age of 8, it’s not because I’m a genius that I picked it up so early, it was because programming makes sense in a kid’s mind. It’s basically playing with theoretical Legos(programming language) and building Lego castles(programs). Furthermore I taught myself for free, and that is the key part I want to address. It is obvious our education system does not care to increase the amount of computer science education in public schools. IN FACT it has declined in the last 20 years from 25% student participation to 19% participation. Listen, MIT has it’s whole CS course online for free on Youtube for God’s sake sit your child down, sit next to them and both of you learn how to code, it only requires your time. I don’t have a degree and I was the youngest senior engineer on Apple’s mobile apps team at the age of 21. Don’t believe the hype that you need a 4 year degree. The economy needs you now! Don’t wait for the school system to teach you, knowledge is power, empower yourself!

What Is Going To Happen If We Don’t Change?

If we don’t start teaching computer science on a mass scale we simply will not be able to compete in the global economy in the long run. Automation is already replacing more jobs than anyone can count, the majority of the populace cannot make an immediate transition into another sector don’t believe me? Go ask a coal miner from Eastern Kentucky how their job transition has been. We need to teach not only technology skills but encourage entrepreneurship so that we can continue to have economic growth. If we don’t our economy is in trouble. Subscribe to my blog for free coding tutorials and if you haven’t already start your web development journey here.

Posted on Leave a comment

Black Business Pal Has Yelp In Their Sites

Black Business Directory’s Launch Primed To Rival Yelp.com

Black Owned Businesses Will Now Get Needed Exposure With The Help Of An Online Business Directory

Logo for BBP

Louisville, KY, September 20, 2017, Black Business Pal announced their plans to launch an online business directory that will help give major exposure to an exhaustive list of minority owned businesses across the country.
In a time when black owned businesses are thriving most don’t have a big marketing budget to reach their audiences. This website will create easier access for those businesses and their potential customers. The directory will offer a plethora of businesses that reach across various industries.
Black Business Pal’s purpose is to set the standard and raise the bar for online directories, which will ultimately drive the black economy forward. Black Business Pal wants to rival the major international directories like Yelp and Angie’s List, because they are targeting a niche market often overlooked by both sites. Black Business Pal’s goal is to highlight everything from mom and pop shops to corporations, though there are hundreds of other online directories geared to black owned businesses, Black Business Pal will focus on the aesthetics and functionality of their site in hopes of setting them apart.
The website which was in the testing phase for several months can be found at www.blackbusinesspal.com. The official launch of the site will be held during the All Black National Conference on October 1st, 2017 on the historic campus of Simmons College.
With the initial launch, Founder and CEO Richard Rowland, Jr. said, “We have to get it out of our heads that being successful is rocket science. We all have dreams. In order to make those dreams come to reality, it takes an awful lot of determination, dedication, self-discipline and effort.”
To learn more about Black Business Pal or have your business listed contact Richard Rowland at info@blackbusinesspal.com
###
About Black Business Pal, LLC.
Black Business Pal, LLC exists to transform black empowerment from an awesome idea to goals that are achievable one business at a time.
Our motto is: Bringing black empowerment to life.

Posted on 1 Comment

Check Out My New Web Application Anon Video Chat

Anon Video Chat

Anon Video Chat is my latest web application, the premise is simple, anonymous video chat using webRTC for secure low latency browser to browser connections. This app assigns you a random channel ID everytime you load the page (you have the option on saving the current ID to your device to use permanently) you can call other channel IDs and if they answer a webRTC connection is set up between your two browsers and the live feeds start. In the future I plan on adding features like file and location sharing and possibly Bitcoin sending/receiving. No data is ever stored on my server making all actions anonymous. I decided to write this for a few reasons

  • I wanted to sharpen my Vue.js skills
  • I wanted to better understand webRTC
  • I need to implement P2P chat in other applications
  • I didn’t want to pay Twilio to do something I could do myself

Why Did I Choose To Release It?

The reason I chose to release Anon Video Chat to the public is because I believe in the philosophy of an open and free internet. Other video applications like Skype collect tons of metadata on you and in turn sell that data on you for a profit. In cases like these you are not the consumer but the product. Not only is this creepy but it affects the performance of the application by providing overhead with no benefit to the end user resulting in laggy performance.

anon video chat screenshot
Screenshot of me and my friend in France using Anon Video Chat

Current Limitations Of Anon Video Chat

Until iOS11 is released later in the fall, Anon Video Chat will not work on iOS devices (blame them not me they decided not to implement webRTC until now!). Other than that it should work on Chrome, Firefox and Opera. If you notice that it doesn’t please email me and let me know jyrone.parker@gmail.com.
Needless to say I wrote this app in a few hours, you can tell by it’s current lack of features but as I stated above I will update it periodically. If the demand calls for it I will add whatever features you guys leave below in the comments. Also if you are interested in contributing to the project, drop your GitHub username in the comment section below and I will add you to the private repo!

Posted on Leave a comment

Why Is The Black Community Afraid Of Technology?

Blacks In IT

It’s no secret that blacks lack a strong presence in the information technology space, in today’s video I discuss why that is, and how the IT field can revolutionize the black economic landscape.  In this live stream I discuss with the audience the stigma in the black community that we don’t belong in the STEM field in general, and debunking that myth. Some of the pioneers in the IT/CS field have been black, for example the man who wrote the mathematics to make internet communication was black. One of the lead engineers who created the first gigahertz processor was black, and of course we have all seen Hidden Figures. The Computing Research Association did an excellent article on the state of blacks in tech . I explain how President Trump’s executive order calling for the modernization of the federal IT infrastructure and how that is a long handing opportunity for black people to get into the field and more.  Join me every Tuesday and Thursday for my #TechTallk live and participate in the discussions!
[youtube width=”100%” height=”100%” autoplay=”false”]https://www.youtube.com/watch?v=-Ic9A66DsmI[/youtube]

Posted on Leave a comment

Tech Talk #1 – Welcome To Tech Talk

[youtube width=”100%” height=”100%” autoplay=”false”]https://www.youtube.com/watch?v=6cVkXCEyAoI[/youtube]

Welcome To My First Tech Talk

Every Tuesday and Thursday I do #TechTalk a live stream show where I speak generally about technology. In the first episode I give a brief introduction into Tech Talk, my trip to Amsterdam, Euro tech scene vs. USA tech scene and more! Please like and subscribe to my channel to get real time notifications when I go live. If you have any questions that you would like to ask me, but you missed the live stream, follow me on Twitter @mastashake08 and tweet to me using the hashtag #TechTalkTuesday or #TechTalkThursday. I will get to them on the next show! Lastly subscribe to this blog to get updates whenever I post!

Posted on 51 Comments

Web Push Using Laravel 8 Notifications *Updated*

Web Push Is Awesome

No seriously! It’s a pivotal moment in web development. You see web push is a W3C protocol that allows websites to communicate with a user’s browser in the background, using this web developers can now do things such as: background push notifications, offline sync, and background analytics just to name few. The web push api follows the protocol and consist of 4 main stages:

  1. User Agent installs service worker
  2. App asks permission to show notifications
  3. Once permission is granted, subscribe to push
  4. Save subscription details on backend
  5. Send notification via Laravel notification

All the code can be seen on my Github and the live demo can be seen here!

Components Of Web Push

Implementing web push requires a true full-stack approach, on the back-end we have to:

  • Implement the WebPush notification channel
  • Set up VAPID keys (more details later)
  • Configure the user model to manage subscriptions
  • Fire the notifications

On the front end we must:

  • Create and install a service worker, the majority of our logic will be contained here and is responsible to handling push notifications
  • Give user prompt to accept permissions
  • Give user ability to send notification to self

I will break it down into back-end and front-end implementations as to not confuse you; let’s start with the back-end.
 

Creating The Backend

Create a blank Laravel application and run the following composer command to download the web push notification channel.

composer require laravel-notification-channels/webpush

The User Model

Next open up your user model and add the following.

<?php

namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use NotificationChannels\WebPush\HasPushSubscriptions;
use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable, HasPushSubscriptions;

/**
* The attributes that are mass assignable.
*
* @var string[]
*/
protected $fillable = [
'name',
'email',
'password',
];

/**
* The attributes that should be hidden for serialization.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];

/**
* The attributes that should be cast.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}

This added HasPushSubscriptions trait allows the user model to receive push notifications. Without this trait the application won’t know what model to store the tokens on.


Next publish the migration with:

php artisan vendor:publish --provider="NotificationChannels\WebPush\WebPushServiceProvider" --tag="migrations"

Run the migrate command to create the necessary tables:

php artisan migrate

You can also publish the config file with the following command. We won’t be doing any customizations in part 1 but maybe down the line:

php artisan vendor:publish --provider="NotificationChannels\WebPush\WebPushServiceProvider" --tag="config"

Generate the VAPID keys with (required for browser authentication) with the following artisan command. This command will set VAPID_PUBLIC_KEY and VAPID_PRIVATE_KEYin your .env file. VAPID is a web push protocol that is needed if we want to send push notifications. Basically it voluntarily identifies itself to a push notification server. If you want to read the specification you can here:

php artisan webpush:vapid

The Notification Class

Next let’s create the notification being used. For now we will make a generic catch all notification. In later tutorials we may add some more custom notifications:

php artisan make:notification GenericNotification

Open up the file and replace with the following contents

<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use NotificationChannels\WebPush\WebPushMessage;
use NotificationChannels\WebPush\WebPushChannel;
class GenericNotification extends Notification
{
    use Queueable;
    public $title, $body;
    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct($title, $body)
    {
        //
        $this->title = $title;
        $this->body = $body;
    }
    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return [WebPushChannel::class];
    }
    public function toWebPush($notifiable, $notification)
    {
      $time = \Carbon\Carbon::now();
        return WebPushMessage::create()
            // ->id($notification->id)
            ->title($this->title)
            ->icon(url('/push.png'))
            ->body($this->body);
            //->action('View account', 'view_account');
    }
}

Let’s break down this class. First off in the constructor() method we set the title and the body of the notification. This will be used to show the title and body of the push notification on the browser. The via() method we want to set the channel to the WebPushChannel. This should be self explanatory as we want to deliver via push notifications.

The API Routes

Next open up routes/api.php and fill out the API routes

<?php
use Illuminate\Http\Request;
use App\Models\User; /* |-------------------------------------------------------------------------- | API Routes |-------------------------------------------------------------------------- | | Here is where you can register API routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | is assigned the "api" middleware group. Enjoy building your API! | */ Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); Route::post('/save-subscription/{id}',function($id, Request $request){ $user = \App\Model\User::findOrFail($id); $user->updatePushSubscription($request->input('endpoint'), $request->input('keys.p256dh'), $request->input('keys.auth')); $user->notify(new \App\Notifications\GenericNotification("Welcome To WebPush", "You will now get all of our push notifications")); return response()->json([ 'success' => true ]); }); Route::post('/send-notification/{id}', function($id, Request $request){ $user = \App\Model\User::findOrFail($id); $user->notify(new \App\Notifications\GenericNotification($request->title, $request->body)); return response()->json([ 'success' => true ]); });

As you can see, we only added two additional routes to the application, both of which are POST. The first route

/save-subscription/{id}

Is responsible for saving the web push subscription from the client. Once the client requests web push access a set of keys are generated, which must be sent to our server. Using the updatePushSubscription() method that comes with the trait added to the user model, we can set the webpush subscription for whatever url the user is requesting from. The updatePushSubscription method takes 3 parameters:

  • endpoint (required): This is the created on the front end when registering for push notifications
  • key (optional) : Needed to encrypt data, only encrypted messages can have a payload
  • token (optional): Needed to encrypt data, only encrypted messages can have a payload

That’s it for the back end! In the next tutorial we will make a Vue.js application and register for push notifications and test it out! If you enjoyed my content please like/subscribe/share! If you want another cool project learn how to stream your desktop to a recording or to YouTube!

Posted on 1 Comment

Jyrone Parker Live – Intro Into HTML5

[youtube width=”100%” height=”100%” autoplay=”false”]https://www.youtube.com/watch?v=OGzV3D10LjE[/youtube]

What Is HTML5?

HTML5 is the newest standard of HTML (Hypertext Markup Language) which is the language used to define webpages. All webpages, including the one you are using to read this article is made up of HTML. HTML documents are text files that end with an extension .htm or .html HTML documents are made up of opening and closing tags that usually follow the convention

<tag>
Stuff between tag
</tag>

I say usually because as you will see in the above video some tags don’t require a closing tag. HTML can also be used in conjunction with CSS and Javascript to create stunning mobile apps using hybrid development. In this video I explain what HTML is, how to create a simple webpage and good resources to follow through with. If you haven’t already subscribe to my Youtube channel to get real time updates on when I go live!

Posted on Leave a comment

Jyrone Parker Live – Buidling Our First PHP Application (Fibonacci)

[youtube width=”100%” height=”100%” autoplay=”false”]https://www.youtube.com/watch?v=-77pgzODEQI[/youtube]

What Better Assignment Than Fibonacci?

Since I am finished with the beginning into to PHP videos I found it imperative to do a stream putting everything together and showing you how easy it is to write an app. In today’s live stream I create a Fibonacci app, for those who are not familiar with the Fibonacci sequence there is a great wiki here. In this application I demonstrate variables, control flow logic, exception handling, and function design. All my code can be seen on my Github here or you can view it below in text or on video

<?php
$input = '';
$running = true;
while($running){
try{
getInput($input);
echo calculateFib($input) . "\n";
}
catch(Exception $e){
echo "Message: {$e->getMessage()}";
}
}
function getInput(&$input){
$input = readline("Please input your number or q to quit: ");
};
function calculateFib($input){
if(intval($input) < 0){
throw new Exception("Input must be greater than zero! \n");
}
elseif($input === 'q' || $input === 'Q'){
exit();
}
if(intval($input) === 0 || intval($input) === 1){
return 1;
}
else{
return calculateFib($input-1) + calculateFib($input - 2);
}
};
?>

 

Posted on Leave a comment

Come See Treat Me At Home @ TNW 2017

 

Treat Me At Home Has Been Selected

To attend The Next Web conference 2017 in Amsterdam May 18 -19 2017. This is both a humbling and an amazing opportunity to connect and network with over 15,000 entrepreneurs, developers, marketing managers, investors, CEOs and policymakers from around the world. Treat Me At Home has been awarded the Boost 2017 package by TNW in conjunction with Radix. This year’s conference will also be covered by over 150 major and independent media outlets bringing even more global coverage to my latest startup. To those who have followed it’s development thus far should feel as excited as I do because your participation has everything to do with this.

What Is Treat Me At Home


For those whose’s first time hearing about Treat Me At Home for the first time, allow me to explain what it is. Treat Me At Home is an on-demand SAAS app that connects service providers with those who want services performed at home. Imagine any task you would like performed at home: massage, tutoring, babysitting, car washing, haircut, etc; Now put all those services into one platform and you have Treat Me At Home. What’s even better is that anyone can sign up to become a service provider, given that they are over 18 and live in a country that supports Stripe connected accounts! What’s even better is that it is 100% free to sign up as a provider and as a customer. Providers get to set their own prices, the locations they serve, and the times that they serve. With a service fee applied on top of what the provider charges, this allows the provider to retain the full amount they ask! Providers can offer subscriptions and coupons to their customers as well making great marketing tools for the provider. Customers get reward points after every purchase that can be used to try new services or to pay the providers they already love.  Everyone who is reading this I implore them to sign up for Treat Me At Home here whether you have a skill you want to advertise and get paid for, or you want try some of these service providers for yourself just remember: Why go out when you can Treat Me At Home?
 

Can’t Make It But Want To Support?

I will be live streaming the event on my Youtube channel at every possible opportunity. If you haven’t already subscribed to my Youtube channel do so now to get real-time notifications whenever I upload or broadcast a new video.

Another way you can support if you don’t want to sign up as a provider, is to book me for 1-on-1 private programming tutoring sessions. These sessions go deeper than these blog posts and you will emerge strongly proficient in the software development area of your choice (web, mobile). In fact I am offering a 25% off coupon good for any subscription that I offer on my page tutor-25 https://treatmeathome.online/providers/mastashake08. Once again thank you all who have supported me thus far, and thank you all who are just joining!

Posted on Leave a comment

Jyrone Parker Live – Staying Ready For Entrepreneurial Opportunities

[success]Have You Checked Out The Shop Yet?[/success]
[youtube width=”100%” height=”100%” autoplay=”false”]https://www.youtube.com/watch?v=tK9NKFanOA4[/youtube]

Staying Ready For Entrepreneurial Opportunities

 
My latest live stream video, I speak on staying ready for software related entrepreneurial opportunities. Developing this non-technical skill is vital to the success of your self-employment venture.  The video above breaks it down better but it boils down to these simple principles:

  1. Identify A Problem

    Opportunities are all around your community in the form of problems. It is your job as the entrepreneur to find out what these problems are, and create some software to fix them.

  2. Create A Quick Solution

    After you identify the opportunities/problems work like a dog to create an MVP (minimum viable product) to address the concerns,  and give it those who need it.

  3. Improve That Solution Often

    Your work isn’t finished after you publish the MVP, in fact it hasn’t even begun! Iterate often, preferably every day and add features that will enhance your body of work.

Don’t forget to subscribe to this blog and to my Youtube page to get real time updates when I go live, and when I post new blog content!