The Revolution is here and it’s called Statamic 3

The Revolution is here and it’s called Statamic 3

https://ift.tt/3mUCLGt


I’ve finally realized and come to appreciate the power of a CMS system. After maintaining my own blog built on Laravel Nova. After publishing on Medium. After hosting a static site from various free and open source software that got abandoned by their maintainer or never really had much of a community in the first place. Publishing content is paramount to any web operation. The internet is media and how you manage your media can determine a lot of the success of your business. If you need a developer to commit to the codebase or write entries to the database to publish a blog post or update copy there’s a lot of overhead there. Pre-release when I found out that you’d be able to install Statamic 3 into a new or existing Laravel application I was intrigued.

The Statamic team is grounded in the Laravel community. Their copy is hilarious. Their leader Jack McDade is a far out designer. His Radical Design course is expected to be out soonish and his personal website reads I’m Jack McDade and I’m tired of boring websites. Statamic has been around since 2012. In addition to Jack it was cofounded by repeat Product Hunt maker of the year Mubashar Iqbal (aka Mubs). Statamic 3 was launched with a magical unicorn on June 11th, 2020. You can read the announcement blog post titled Everything You Need to Know About Statamic 3.

Let’s start with the end in mind shall we?

I’m typing this on a beautiful editor in my browser. There’s no code changes I need to make to get this post out. I don’t need to write it in a google doc and paste it over. The Statamic dashboard gives me powers. Hell, Mr. McDade even live streamed building an AirBnB clone with Statamic. It’ll be the first video result when you google “Statamic Airbnb for chairs“. Though I’m familiar with Laravel and love to code I don’t want to start with anything too crazy because with great power comes great responsibility. P.S. they’re casting Toby McGuire and Andrew Garfield in the new Spiderman movie with Doctor Strange. It’s gunna be lit. In this tutorial we’ll go over how I built and launched this very site you’re on using Statamic 3. We’re hosted on Netlify and bought the domain name with Google Domains.

How it all began

This project began on the internet. The internet is a series of interconnected tubes. Birds fly in some of these tubes and they come out on an internet website called twitter dot com.

Epic Laravel origin story on twitter

I’d followed William since purchasing his book on how to Break Into Tech With Twitter. To be perfectly frank I have not started the book but I’m looking forward to reading it. As another side project I run a site called Employbl that is a resource for job seekers. I figured the book would be good reading to learn about how people break in and get their start in the tech industry. Everyone’s experience is different! I’d categorize myself as a Laravel fanboi. I use it in my day job. I build my side project with it. I like to learn about it. I follow Laravel devs on Twitter. There’s lots I like about it. I’ve blogged a fair bit about Laravel but never really dedicated a site to it. I run a Full Stack Developer Meetup group. But even there we don’t really have a blog. Until recently I published my Laravel tutorials and blog posts on Employbl. That’s fine but it’s not strictly related to the company mission. I’d like Employbl for the tech industry more broadly, even other departments outside of engineering. It’s ultimately about giving you the tools to help you get hired. I needed a space for Laravel developers. Plus, Statamic 3 was out and I wanted to give it a test drive. I bought the domain epiclaravel.dev on Google Domains for $12 for one year of hosting.

Create a project

I had a domain then I needed to create a Statamic website. Here was the first “AHA moment”. Statamic 3 has a Static Site Generator package, open source on GitHub. This enables us to host our statamic sites anywhere we could store a bunch of flat files. That could be S3, Netlify, GitHub Pages, Vercel (formerly Zeit). It doesn’t require us spin a server like we would if we were hosting a PHP application on something like Digital Ocean, EC2, Laravel Forge, Ploi or Render. I was excited. It simplified the whole process, reduced cost and would be easier to maintain and set up a deployment process for.

The Statamic team has built some starter templates for our ease of use. There are only a couple right now but I could see this being a growth area. They already have a Marketplace for Addons and display copy that a starter kit section is coming soon. Start building statamic starter kits now and you could be one of the first themes available on the platform!

Potential aside today we have a few options:

Going with the Doogie Browser theme was tempting but making my website look like a 90s PC was a bit too much to swallow so Starter’s Creek it was. Once I’d picked a starter kit I could generate my project. Of course I could have started from complete scratch but I’m hella lazy like that and would like to be up and blogging / running building ChairBnB so I used a starter kit. The only difference being an argument when generating the project:

git clone git@github.com:statamic/starter-kit-starters-creek.git epiclaravel
cd epiclaravel
rm -rf .git
composer install
cp .env.example .env && php artisan key:generate

You can view the source code for the starter template here. The Statamic team has ingeniously named their main php worker file “please”. To use the command line interface that’s included with Laravel you use “artisan“. To use the command line interface that’s included with Statamic you use “please“. So we create a user:

php please make:user

Fan Fact: Ecamm Live is a streaming tool for mac.

I have Laravel Valet set up on my local machine so will use that for running the website locally. The site is visible on my local though the browser at http://epiclaravel.test. Setting up Laravel Valet can be a little tricky if you’re completely unfamiliar but it’s worth it! For Laravel applications you can sites with Laravel Valet and use Takeout Docker containers to host other services your app needs like Postgres, Redis, Meilisearch, ElasticSearch and more. Laravel Takeout is built and maintained by the Tighten team. For my purposes having composer installed and Valet configured is enough to run the site in development.

Enter the dashboard

To login to the dashboard head to your domain /cp. From there you’re off and running. It’s probably best to start reading the documentation. Statamic is really powerful and I’ll probably write some more blog posts as I explore it more. Statamic Collections are very promising and I’m looking forward to implementing and learning about Statamic handles Search. Their documentation reads “There are three components — coincidentally the same number of Hanson brothers — whose powers combine to provide you the power of search. The form, the index, and the driver.” With the site running locally and my user created I see this:

Open the project in a code editor (for example PHPStorm or VSCode) and you can play with the values or the HTML/CSS. The Starter’s Creek starter kit is built with TailwindCSS. I’m excited to play with that. Previously I’d been plagued by build process errors when trying to set up Tailwind. I’d stuck to Bootstrap 4 out of habit. For now though we have the template, not a lot of feature development to be done. Let’s deploy!

Deploy

One of the awesome new features of Statamic 3 (along with being able to install Statamic into any Laravel project as a composer package) is the Static Site Generator. Why is this awesome you ask? Static sites are easier to host than running your own server. When a site is “static” it pretty much just means it’s a bunch of files sitting on a server somewhere. All the computer needs to do is serve the files (HTML, CSS and Javascript) to the end users, in most cases a web browser. The alternative is having your own server that you maintain or doing “serverless” things (still involves servers). Static sites you can host with Netlify, Amazon S3, GitHub Pages or Vercel. If an app requires a server (and probably a database) you’re more in the Digital Ocean / Google Cloud / AWS / Azure space. Render and Heroku are great options too 🙂

We could deploy our Statamic site using a server and a database like a normal option. I think it’s going to be easier to deploy a static site to start off. All we want to do is host content for now. I’ve used Netlify before so going to stick with that.

We first need to require the static site generator composer package into our app:

composer require statamic/ssg

We’ll publish the config file to be explicit about what we have going on:

php artisan vendor:publish --provider="Statamic\StaticSite\ServiceProvider"

This normally generates a file in the config directory. There’s a config/statamic directory. It looks like the starter template already had this ready to go. You can view the config file here if that’s what floats your boat 🚣

Now we can build our static site: ✨

php please ssg:generate

This is the output I got:

The Statamic team outlined some Deployment Examples for us. It looks pretty straightforward and awesome:

Here are the steps to deploy a static Statamic site. Your app will be powered by flat files and stored safely in version control

Deployment Step 1: Deploy to a GitHub repo

You could also deploy to GitLab or BitBucket. Honestly I’ve heard great things about GitLab but use GitHub mostly out of habit and for the platform’s social aspects. Maybe GitLab has that too idk. Anywho create your repo. From the root of your project run:

git init
git add -A
git commit -m 'initial commit'

Deployment Step 2: Deploy with Netlify

We can link Netlify to our git repo and configure the build command PHP version as an environment variable and set the publish directory:

This deploys our site to a Netlify URL like: https://boring-noyce-0f134b.netlify.app/ 

Woohoo! It’s live on the internet with continuous deployment set up. Pushing to the master branch with git will redeploy our site. We also need to set some environment variables on the Netlify dashboard. The .env file is not stored in git. The Netlify dashboard provides space to specify these variables for production.

Deployment Step 3: Hook up domain name

I bought my domain name through Google Domains. This in hindsight was a mistake. The Google Domains UI is easy to navigate and I have other domains there but if I’m hosting through Netlify shoulda just bought the domain through them too. To point the domain name at Netlify’s servers. We’ll be using “Netlify DNS”.

This takes up to 48 hours to propagate over so let’s hope it worked! We can view the propagation status in the Netlify dashboard under Settings > Domain Management.

After the DNS changes propagate your site will be live. The flow for future updates is login to the control panel on your test domain, write content, make edits and do CMS things. This will change the flat files in your project. When your site is looking good locally push the changes up to GitHub and your site will automatically be deployed! That’s what I’m doing for Epic Laravel and it’s working great 😉

Conclusion

In this post we’ve gone from no website to a functional one with a CMS. The most complicated or technical part is probably setting up Laravel Valet for local development. Once the site is running we can do lots of edits from the Control Panel. We can also use our Laravel, PHP and Tailwind knowledge to build custom functionality or buy pre-built solutions from the Statamic marketplace. Moving forward I’m looking forward to exploring the Statamic core concepts to build the site and maybe even install Statamic into my existing Laravel projects.

programming

via Laravel News Links https://ift.tt/2dvygAJ

November 3, 2020 at 02:24PM

Laravel Has Many Through

Laravel Has Many Through

https://ift.tt/3k0db11

Laravel Has Many Through generates the code for your has many through relationships by asking a few simple questions.

programming

via Laravel News Links https://ift.tt/2dvygAJ

November 3, 2020 at 02:24PM

23,600 Hacked Databases Have Leaked From a Defunct ‘Data Breach Index’ Site

23,600 Hacked Databases Have Leaked From a Defunct ‘Data Breach Index’ Site

https://ift.tt/2I1x4HB

More than 23,000 hacked databases have been made available for download on several hacking forums and Telegram channels in what threat intel analysts are calling the biggest leak of its kind. From a report: The database collection is said to have originated from Cit0Day.in, a private service advertised on hacking forums to other cybercriminals. Cit0day operated by collecting hacked databases and then providing access to usernames, emails, addresses, and even cleartext passwords to other hackers for a daily or monthly fee. Cybercriminals would then use the site to identify possible passwords for targeted users and then attempt to breach their accounts at other, more high-profile sites. The idea behind the site isn’t unique, and Cit0Day could be considered a reincarnation of similar "data breach index" services such as LeakedSource and WeLeakInfo, both taken down by authorities in 2018 and 2020, respectively.


Read more of this story at Slashdot.

geeky

via Slashdot https://slashdot.org/

November 4, 2020 at 12:56PM

Why 2A Supporters Love The Mandalorian

Why 2A Supporters Love The Mandalorian

https://ift.tt/3jNgW9L


Why 2A Supporters Love The Mandalorian
This image released by Disney Plus shows Pedro Pascal, as Din Djarin, right, with The Child, in a scene from “The Mandalorian,” premiering its second season on Friday. (Disney Plus via AP)

One of the first movies I saw in the theater was when I wasn’t even old enough for kindergarten. I was just four years old when Star Wars premiered. My uncle, then all of 16 and a newly licensed driver, took me to see what was becoming a cultural phenomenon. I became a massive science fiction fan at that moment, a genre I still love all these many years later.

Then the prequels came, and they were…not good.

Then we got the new movies. While I liked The Force Awakened, The Last Jedi was freaking awful. Rise of Skywalker was better, but that was a low bar.

Disney had all but destroyed my beloved Star Wars.

Then Disney Plus launched and premiered The Mandalorian. It showed that the issue wasn’t Disney, but something else.

What I noticed, though, were just how many of my fellow Second Amendment lovers also loved The Mandalorian.

Now in its second season–which premiered this past Friday–the show is continuing where it left off, and I think the show’s popularity with the Second Amendment crowd will continue to grow. In fact, I expect to start seeing Mandalorian-themed stuff begin to replace Punisher skulls any day now.

But the question is, why? Here are a few reasons I’ve seen.

In one season one episode, the Mandalorian has to talk to jawas about parts for his ship. He’s advised to leave his guns behind. The character, Din Djarin, simply replies that he’s a Mandalorian and that “weapons are part of my religion.”

While guns aren’t religious for most of us, the refusal to leave our guns behind speaks to a part of the Second Amendment supporter’s soul. Guns are for self-defense. Leaving them behind exposes you to danger. While Djarin has more reason than most of us to be concerned–he’s a bounty hunter, after all–but at this point, no one is actively hunting him so far as he’s aware. He simply won’t leave his weapons behind.

It’s kind of hard not to look at that and think about how similar it feels to how many of us approach things. A “Gun Free Zone” sign is basically telling us to go away, conduct business somewhere else. An espoused anti-Second Amendment opinion is much the same thing.

While guns aren’t part of our religion necessarily, they’re a part of our life and we recognize that people danger doesn’t go away just because you wish it would.

Over the course of the show, there are a couple of episodes that show evil people preying on the peaceful but disarmed folks just trying to get by in life. It takes someone with a gun to make armed bad guys go away.

Of course, while this is fiction, the reality of it appears everywhere in real life. Criminals prey on the innocent citizen unless that citizen is armed. Some who can afford it hire private security to bring their guns, but many of us can’t afford to outsource it.

Whether it’s protecting a village as Djarin did in season one or watching a would-be marshal put slavers down, the only thing that really stops bad people with guns is good people with guns.

I mean, I don’t have to lay out why that appeals to the Second Amendment crowd.

More importantly than the symbolism, of course, is the story. One of the worst things about much of modern science fiction is the idea that politics should trump telling a good story.

In The Mandalorian, story doesn’t play second fiddle to anything. The plot is engaging and entertaining. It fully embraces the idea of it being a space western in a way that no show has since Firefly. In fact, there’s some debate as to which is better, but since I absolutely love both, I’m staying out of that one.

For fans of westerns, you’ll recognize the similar themes. For example, there’s the episode with MMA legend Gina Carano which is reminiscent of The Magnificant Seven. Episode one of season two gives a bit of a shout-out to Justified and Deadwood with guest star Timothy Olyphant showing up.

And through it all, there’s a weapon on his side.

See, while it tells great stories, it doesn’t beat you over the head with all the ways you suck like so much of modern media tries to do. Instead, it just entertains you while, admittedly, showing all the things that Second Amendment fans have been saying for years.

I know that a lot of people aren’t fans of Disney, and I get that. However, let’s be better than the other side and not try to destroy businesses that disagree with us on stuff.

Instead, support good fiction that maybe shows a bit of what we believe. Do that enough and they’ll start making more of it, especially when so much of their other stuff isn’t getting that support. You win the culture war surrounding the Second Amendment by making sure to support stuff that might not be intended to be pro-2A but actually is.

Author’s Bio:

Tom Knighton


Tom Knighton is a Navy veteran, a former newspaperman, a novelist, and a blogger and lifetime shooter. He lives with his family in Southwest Georgia. He’s also the host of Unloaded TV on YouTube.

More posts from Tom Knighton

guns

via Bearing Arms https://ift.tt/2WiVJN5

November 2, 2020 at 06:05PM

PyCharm – A Simple Illustrated Guide

PyCharm – A Simple Illustrated Guide

https://ift.tt/3oLo6PC

PyCharm is one of the most popular and widely used IDE for Python. This tutorial is a complete walkthrough of the PyCharm Integrated Development Environment to help Python Programmers use PyCharm and its features.

I have researched a lot on the topic and then compiled this PyCharm article/walkthrough for you so that you get a firm grip on using the most popular IDE when it comes to programming in Python. Not only have I added screenshots and images on numerous topics that have been discussed in this tutorial but also added numerous videos for your convenience and better understanding. So, are you ready to learn the ins and outs of PyCharm?

❖ Introduction to Integrated Development Environments (IDE)

A common question asked by most Python beginners is –

What environment should I prefer while programming in Python?

Answer: You can either use an IDE or a text editor for coding. You need an IDE or a text editor for writing/modifying code.

We have a plethora of choices when it comes to text editors, however, some of them are more popular than the others, majorly because of their ease of use and the features that they provide. Let us have a look at some of them.

➠ Some commonly used text editors for programming are:

  1. Sublime Text
  2. Atom
  3. Vim
  4. Visual Studio Code
  5. Notepad++

➠ Now, here is a list of some of the most commonly used IDE’s used for coding in Python:

  1. PyCharm
  2. IDLE
  3. Spyder
  4. PyDev
  5. Wing

Now that brings us to the next question –

Should we use an IDE or a Text editor?

Answer: This is one of the most debated questions among programmers. I prefer using an IDE over text editors. The reason being, IDEs provide numerous advantages over a simple text editor though one might argue that IDEs can be used as text editors, and text editors can be used as IDEs. However, strictly speaking, a text editor is used for writing/modifying text/code whereas, an IDE, enables us to do a lot more within that single program; running, debugging, version control, etc.

An IDE or Integrated Development Environment can be considered as a programming tool that integrates several specialized tools into a cohesive environment. These specialized tools may include:

  • A text editor
  • A code autocomplete function
  • A build procedure that includes a compiler, linker, etc.
  • A debugger
  • A file or project manager
  • A performance profiler
  • a deployment tool
  • and so on.

Advantages of using an IDE

  • Provide an Interactive interface which makes life easy for programmers as it ensures that syntactic or semantic errors are detected while developing without any hassle.
  • Reduces debugging time.
  • Provides an inbuilt version control mechanism.
  • Facilitates visual programming through flow-charts, block diagrams, etc.

Therefore it makes more sense to use an IDE instead of using a text editor. In order to use a text editor like an IDE, you must install numerous plugins so that it behaves the way an IDE does but all of that is already taken care of by an IDE without the need for extra plugins.

IDE Selection

Selecting an IDE is purely based on the developers requirement. Some of the factors governing the selection of an IDE can be –

  • If a developer has to code in multiple languages?
  • Whether an integrated debugger is required?
  • If a drag-drop GUI layout is required?
  • If features like autocomplete and class browsers are required? and so on.

Having said that, the most commonly used and preferred IDE by Python programmers is PyCharm.

❖ Introduction To PyCharm

As mentioned earlier PyCharm is the most popular IDE used by Python programmers. It is a cross-platform IDE developed by the Czech company JetBrains.

PyCharm Features

PyCharm offers the following features:

  • Syntax highlighting
  • Auto-Indentation and code formatting
  • Code completion
  • Line and block commenting
  • On-the-fly error highlighting
  • Code snippets
  • Code folding
  • Easy code navigation and search
  • Code analysis
  • Configurable language injections
  • Python refactoring
  • Documentation

What makes PyCharm special and more efficient than most other IDEs?

🧠 Intelligent Python Assistance

PyCharm provides:

  • smart code completion,
  • code inspections,
  • on-the-fly error highlighting and quick-fixes,
  • automated code refactoring and rich navigation capabilities.

🌐 Web Development Frameworks

PyCharm offers framework-specific support for modern web development frameworks such as Django, Flask, Google App Engine, Pyramid, and web2py.

🔬 Scientific Tools

PyCharm integrates with IPython Notebook, has an interactive Python console, and supports Anaconda as well as multiple scientific packages including matplotlib and NumPy.

🔀 Cross-technology Development

In addition to Python, PyCharm supports JavaScript, CoffeeScript, TypeScript, Cython, SQL, HTML/CSS, template languages, AngularJS, Node.js, and more.

💻 Remote Development Capabilities

With PyCharm you can run, debug, test, and deploy applications on remote hosts or virtual machines, with remote interpreters, an integrated ssh terminal, and Docker and Vagrant integration.

🛠 Built-in Developer Tools

PyCharm contains a huge collection of out of the box tools:

  • An integrated debugger and test runner;
  • Python profiler;
  • A built-in terminal;
  • Integration with major VCS
  • Built-in Database Tools.

PyCharm Editions

PyCharm is available in three editions:

  1. Community (open-source)
  2. Professional (paid)
  3. Educational (open-source)

Let’s compare the Community and Professional editions in the table given below:

  PyCharm Professional Edition   PyCharm Community Edition
Intelligent Python editor  ✔  ✔
Graphical debugger and test runner  ✔  ✔
Navigation and Refactorings  ✔  ✔
Code inspections  ✔  ✔
VCS support  ✔  ✔
Scientific tools  ✔  ❌
Web development  ✔  ❌
Python web frameworks  ✔  ❌
Python Profiler  ✔  ❌
Remote development capabilities  ✔  ❌
Database & SQL support  ✔  ❌

Now that we have gone through the basics of PyCharm, let us have a look at how we can install PyCharm.

❖ Installing PyCharm

✨ Installing PyCharm on Windows

1. The first step is to download the latest version of PyCharm for either of the professional or community version. Here’s the link to download it from the official website:

2. After the download is complete, run the executable installer file and follow the wizard steps that follow.

✨ Installing PyCharm on Mac

Step 1: Open PyCharm and download PyCharm for Mac for either of the Community or Professional version.

Step 2: Once the .dmg file has been downloaded, double click on the file to begin your installation.

Step 3: After the dmg file is launched, drag PyCharm into your Application folder.

Step 4: In the Applications Folder, double click on PyCharm to open the Application.

Step 5: On the first launch you will be asked to import settings. Tick the box: ☑ I do not have a previous version of PyCharm or I do not want to import my settings. Click on OK and Accept the Privacy Policy. Keep the Install Config as it is set by default. Click OK.

💡 On the Welcome screen, you can do the following:

  • Create a New Project.
  • Open an existing project or file.
  • Check out an existing project from a version control system.

✨ Installing PyCharm on Linux

Method 1: Using Snap Package 

PyCharm is available as a Snap package. If you’re on Ubuntu 16.04 or later, you can install PyCharm from the command line.

sudo snap install [pycharm-professional|pycharm-community] --classic

Note: If you are on some other Linux distribution, you can enable snap support first and then use the snap command to install the PyCharm Community Edition.

Method 2: Using official Linux installer from JetBrains 

1. Download the latest version of PyCharm (tar.gz file) for either of the Professional or Community version.

2. Go to the folder where you have downloaded your file.

cd ~/Downloads

3. Extract the tar.gz file.

tar -xzf pycharm-community-2020.1.1.tar.gz

4. Move into the the extracted PyCharm folder and then inside the bin folder.

cd pycharm-community-2020.1.1/bin

5. Add executable permissions to the script file inside the bin folder.

chmod u+x pycharm.sh

6. Then run the script file.

sh pycharm.sh

7. PyCharm starts running and in the first run, you will be asked you to accept the privacy policy. Then you will be asked whether you would like to send data about features, plugins, and other data. If you wish to send the data, you can hit the “Send Anonymous Statistics” button, or you can click on the “Don’t Send” button. And finally, PyCharm will ask you to set up the IDE. Start by choosing the UI theme, creating a launcher script, and adding plugins.

Now that brings us to the end of the first section of this comprehensive guide on PyCharm. In the next section, we will learn how to write our first code in Python using PyCharm. We will also discuss how to run, debug, and test your code. Let’s begin the next phase of our PyCharm journey!

Please click on the Next button/link given below to move onto the next section of this tutorial!

The post PyCharm – A Simple Illustrated Guide first appeared on Finxter.

Python

via Finxter https://ift.tt/2HRc2LV

November 1, 2020 at 03:56PM

Check Out These Extensive Breakdowns of Alita: Battle Angel’s Visual Effects

Check Out These Extensive Breakdowns of Alita: Battle Angel’s Visual Effects

https://ift.tt/2TFQUuA


Alita wrecking.
Image: 20th Century Fox

As a woman who is also at least part robot, I have a deep-held affinity for Alita. Her first film outing (hopefully not her last) didn’t check every box, but it was a lot of fun. And it sure was visually striking, with some intense and innovative visual effects work.

If you were also transfixed by the look of Alita: Battle Angel, you’re in for some hefty lucky, because recently Weta Digital posted a bunch of glimpses at its visual effects work, Ranging from its composting to the lush dreg heap of Iron City to Alita herself, Weta is eager to show off how Alita: Battle Angel made a story of cyborg self-actualization so visually unique.

What an absolutely striking film. It had foul luck, going up against Captain Marvel and also becoming the site of a weird reactionary crusade to keep people from seeing Captain Marvel, but it remains a unique, absolutely all-in big-budget experience. I am among those hoping for a sequel, but in the meantime, these breakdowns are a mighty satisfying watch.


For more, make sure you’re following us on our Instagram @io9dotcom.

G/O Media may get a commission

geeky,Tech

via Gizmodo https://gizmodo.com

November 1, 2020 at 04:57PM

Codementor: How I learned Python

Codementor: How I learned Python

https://ift.tt/2JqdYvz

This is the story of how I started off with python

Python

via Planet Python https://ift.tt/1dar6IN

November 1, 2020 at 01:52AM

Trump supporter follows Biden campaign bus all over Houston in hearse called the “Democrat Cemetery Vote Collector”

Trump supporter follows Biden campaign bus all over Houston in hearse called the “Democrat Cemetery Vote Collector”

https://ift.tt/2HPSJlQ

While Joe Biden has been handling a light schedule of morning campaign stops and basement naps, his campaign bus has been driving throughout the southern US.

fun

via Not the Bee https://notthebee.com

October 29, 2020 at 06:58PM

Eloquent Encrypted Casting

Eloquent Encrypted Casting

https://ift.tt/2HO6EZX


A recent pull request by Jason McCreary which was released in Laravel 8.12 included the ability to encrypt a model attribute using an Eloquent cast.
The included encrypted cast option now also allows casting the attribute into an array, JSON, object or a collection after it has been decrypted.

class EncryptedCast extends Model
{
    public $casts = [
        'secret' => 'encrypted',
        'secret_array' => 'encrypted:array',
        'secret_json' => 'encrypted:json',
        'secret_object' => 'encrypted:object',
        'secret_collection' => 'encrypted:collection',
    ];
    ...
}

This encrypted cast uses Laravel’s Crypt facade to encrypt and decrypt the attribute from the database. There were earlier PRs back in Laravel 5.3 which were closed that attempted to bring this functionality into Laravel.
If you use Laravel’s built-in encrypted cast notation then it is important to realise this locks your app key. As this is the secret which Crypt uses under the hood to encrypt and decrypt everything in Laravel from sessions and cookies.

The same weekend that Laravel encrypted casts were added into Laravel core, I completed a hackathon hosted by my Employer UKFast where I created EloquentEncrypted. This uses 4096-bit RSA keys to cast model attributes into the database in an encrypted form.

This separates Eloquents encryption from the app key so that you are free to rotate this as needed, something that is advised by Tighten in their blog post APP_KEY And You. This package also includes migration helpers to set the encrypted field accordingly in your database.

Schema::create('sales_notes', function (Blueprint $table) {
    $table->increments('id');
    $table->encrypted('private_data');
    $table->timestamps();
});

The Eloquent Encryption package also allows for casting after encryption with a couple of initial offers to show how this can be done. You can cast to a string using the default Encrypted cast, an Integer or float and even to a collection. Collections are serialised into JSON strings which are then encrypted.

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use RichardStyles\EloquentEncryption\Casts\Encrypted;
use RichardStyles\EloquentEncryption\Casts\EncryptedInteger;
use RichardStyles\EloquentEncryption\Casts\EncryptedFloat;
use RichardStyles\EloquentEncryption\Casts\EncryptedCollection;

class SalesData extends Model
{
    /**
     * The attributes that should be cast.
     *
     * @var array
     */
    protected $casts = [
        'private_data' => Encrypted::class,
        'private_int' => EncryptedInteger::class,
        'private_float' => EncryptedFloat::class,
        'private_collection' => EncryptedCollection::class,
    ];
}

I’ve also put together another package called Eloquent AES which allows you to use AES-256-CBC encryption for your eloquent model data. This creates a separate Eloquent key which is used to encrypt/decrypt during casting.

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use RichardStyles\EloquentAES\Casts\AESEncrypted;

class SalesData extends Model
{
    /**
     * The attributes that should be cast.
     *
     * @var array
     */
    protected $casts = [
        'private_data' => AESEncrypted::class,
    ];
}

This simply creates another instance of the Encrypter class within laravel using a different config key. This second package was created because people should be able to choose the method of encryption and how that choice affects other areas of their applications.

Filed in:
News

programming

via Laravel News https://ift.tt/14pzU0d

October 30, 2020 at 09:01AM