Setting Up A Local MAMP Environment

This is the first in a series of articles that go step by step through the process of setting up and streamlining a local development environment for WordPress. It deals exclusively with configuring and optimizing MAMP. If you've already got MAMP set up, read it anyway; this way is better :S

The second article deals with installation and configuration of WordPress itself. The third introduces a more advanced and wholly different paradigm that uses Vagrant and Virtualbox to create virtual machines for bringing parity to your local, staging, and production servers. But let's not get ahead of ourselves. One beer at a time as they say!

The MAMP way

MAMP stands for MacOS, Apache, MySQL, and PHP. It's a solution as old as father time that makes it easy to spin up a web server and MySQL database locally. It's convenient out of the box, but with a little bit of extra configuration up front, you can implement as many extra sites as your little heart desires--without needing to change MAMP's working directory to switch between them. Which makes it even more convenient.

Like most things in life, there are a dozen different ways to do anything in the wacky world of web development. None of them are neccassarily right or wrong. What you use depends largely on personal preference. That said, your workflow may be dictated by your employer or the stack required for a particular project, so it's a good idea to be familiar with the most popular and time tested ones. One thing is nearly certain though: If there's a trick or a shortcut to streamline the process, somebody else has probably already figured it out and posted a walkthrough for it on the internet. Which is awesome.

I used MAMP for years before experimenting with Vagrant/Virtualbox and have gotten it about as painless and hassle free as possible to set up a new project. So without further ado, here's "the right way" to setup MAMP.

Get WordPress

Before we begin, open a terminal session and make a new directory for your WordPress project.

$ cd path/to/directory && mkdir newsite && cd newsite

go to WordPress.org and grab a copy of the latest stable release (5.1.1 at the time of writing). Unzip it in your new directory for later.

If you haven't already, download and install MAMP.

Open MAMP and make sure the document root is Applications > MAMP > htdocs.

That should be the default but might as well be certain. You can CMD + Q out of MAMP for now while we get the rest set up.

Allow virtual hosts

Go to Applications > MAMP > conf > Apache > httpd.conf

and open that file with your text editor.

Hit CMD + f and search for this line:

# Virtual hosts
#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

Uncomment the line so it looks like this:

# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

Allow Symlink override

In the same file find the snippet that looks like this:

Options Indexes FollowSymLinks
AllowOverride None

And change AllowOverride from none to all.

Options Indexes FollowSymLinks
AllowOverride All

Change the listening port

Once again in the same file look for these two lines (they won't be right next to one another):

listen 8888
ServerName localhost:8888

And change them to:

listen 80
ServerName localhost:80

Then save the file.

Add the virtual host path

Navigate to Applications > MAMP > conf > apache > extra > httpd-vhosts.conf and open the file in your text editor.

At the end of the document add this snippet:

ServerName newsite.test
DocumentRoot "/path/to/directory"

Where ServerName reflects the name you'd like to use for your new site and DocumentRoot reflects the directory that you made earlier for your new WordPress project.

Save the file.

Allow your computer to recognize the domain

Finally, we need to make it so that the computer will recognize the new domain we've created.

Open your terminal and type:

sudo pico /etc/hosts

After entering your password you'll be editing a text file with Nano that looks like this.

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost

127.0.0.1 newsite.test

Press down until you get to the end of the file and add the line:

127.0.0.1 newsite.test

Then press ctrl + o to finish editing, enter to save the changes, and ctrl + x to exit back to your terminal screen.

Change MAMP ports

Open MAMP and navigate to preferences > ports. Change the ports to 80, 8888, and 3306.

Exit out of MAMP. The next time you restart the server all of your changes will take effect.

Once you setup your WordPress installation you'll be able to navigate to newsite.test in your browser and see it! If you want a little instant gratification (or if you want to make sure you did everything right) you can go to the directory you set up and create a file with some markup and name it index.php. After restarting MAMP you should be able to see the file at newsite.test!

Rinse and repeat

The beauty of this setup is that it's repeatable for as many sites as you'd like and with the initial setup done, really easy to add new ones. Just follow the last couple steps for each new site: Add a new virtual host at the bottom of the vhosts.conf file with it's own ServerName and DocumentRoot:

ServerName newsite.test
DocumentRoot "path/to/newsite"

ServerName anothernewsite.test
DocumentRoot "path/to/anothernewsite"

And allow your computer to recognize it by using the terminal command and Nano editing you used earlier:

sudo pico /etc/hosts

Now we can get down to the business of setting up WordPress!

From Unix to K8s

Disclaimer: This is a free associated brain dump of tech topics I’ve been exploring lately, listed in no particular order and with no particular agenda. It's like... a tech topic list slam poem or something. lol

Things I’ve been interested in lately: site architecture, semantic HTML, CSS Grid, tiny CSS frameworks, utility classes, the return of static sites, Gatsby, React 16, React hooks, single page applications/SPA’s, picking the right technology for the job, knowing when you need a web application and when you’re overengineering, design patterns, design systems, systems design (yep, they're different), AWS, Lamda, Kubernetes, server administration, network security, web security, web protocols, TCP/IP, DNS, TSL, SSL, FTP, SFTP, FTPS, SSH, open source, FOSS, “free as in beer vs free as in freedom”, Unix, GNU, BSD, Linux, Debian, Ubuntu 18.04 LTS, containerization, Docker, virtual machines/VM’s, Vagrant, virtual private servers/VPS’s, Digital Ocean, virtual private networks/VPN’s, Wireshark, technology news, Hacker News, the overlap of business and technology, the internet of things, the inherent risk of the industrial internet of things, redundant systems, firewalls, ports 80 and 443, server security, airgapped networks, Redhat Enterprise Linux/RHEL, sysadmin certifications, sudo, disabling root access after initial install, command line tools, command line interfaces, nnn, Git, Github, Bitbucket, artificial intelligence, Tensorflow, PyTorch, big data, Javascript, Python, NGINX being bought by F5, Ansible, WordPress, Roots, Trellis + Bedrock + Sage,  Laravel, Blade, freelance life, contract work, UI design, UX design, patience, soft skills, scope creep, tough clients, great clients, SAAS, Indiehackers, Product Hunt, recurring revenue, the incredible endless reward of maintaining a positive attitude, work/life balance, tech evangelism, tech education, digital marketing, SEO, SEM, high level decision making, software architecture decision making, design patterns, CSS, BEM, SMACSS, Invision, Sketch, Adobe, Affinity, futurology, future proofing, the rise of surveillance capitalism, password protection, 1Password, two factor authentication/2FA, measure twice cut once, cryptography, the cryptocurrency rollercoaster, smart contracts, blockchain, Mozilla, Firefox, Apple, Google, Chrome 73, Chromium owning browser-land, dev-tools, dark mode, Facebook, Amazon, FAANG, project management, business logic, enterprise grade security, hardware + software, high level programming languages, abstracted logic, Go, python, V8, Node.js, Homebrew, NPM, package managers in general, apt-get, white hat hacking, bug bounties, startups, incubators, vested options, NDA’s, digital nomads, remote work, putting my time in in San Francisco, getting out of New York, hanging around Boston, missing my cabin in the woods of Maine, feeling blessed to be where I am, with who I’m with, doing what I do, when I do it, and for who—and why. Always why.

Why I’m not mad about the Brooklyn invasion of Portland

The secret is out. Portland is amazing, and Brooklyn knows it. Not just Brooklyn but greater New York and Boston money have been flooding Portland for the last few years and its showing. Fancy modern condo buildings on every block of Munjoy Hill, skyrocketing rent prices, and homes selling for more than their already inflated asking price. Bearded hipsters and beautiful young women at all the new bars and restaurants buying 15 dollar cocktails from trained mixologists and eating spicy tuna served on.. slabs of raw tuna.

hipster-irony

But while the old guard of veteran Portlandians understandably yearn for the grittier days of the city they remember; while more and more people are displaced from the peninsula by the seemingly impossible ascent of the housing market; many of us who have ridden the gauntlet of the stagnant Maine economy for the past 10 or 20 years welcome this influx of money and youth and excitement into our fair city.

Let's face some facts. A city either grows and evolves, or stagnates and falters. While we may be mourning the loss of some of our favorite institutional dives, watching in subdued horror as they're replaced by the latest trendy beer garden, the simple fact remains that without the vitality and financial influx offered by our hipper neighbors to the south, our city and state would continue to hold records like oldest and most un-business friendly. We simply cannot have a progressive future without accepting some change.

Have you noticed how many new businesses are opening? How many breweries and coffee shops have sprung up in Bayside and near Anderson Street? How many hotels and apartment buildings have been built in the Old Port and on the east end? While the curmudgeonly 30 somethings who have been grinding it out playing cover songs for the last 15 years and living with six friends in oversized flop houses by USM bemoan the gentrification and not so secretly resent the moneyed tech friendly Brooklynites who came up to the secret city to start a family and live at a slower pace nearer to nature, they seem to be missing the simple fact that these newcomers are the economic engine that will propel this mini mecca into the future. We're all going to benefit from their presence if we learn how to tap into the vein they're running in.

portland-maine-cityscape-skyline-hdr-panorama-cropped-smaller

Look, I get it. I was at Occupy. I put in my time living paycheck to paycheck for longer than I care to admit. But when I look around Portland, I don't see a city I cannot recognize and identify with, I see opportunity. I see new jobs, new entrepreneurial ventures to start, and a base of people with real dollars to spend. For too long we've been sloughing by on just barely enough in this city and quite frankly I'm sick of it. I don't want to have to move to New York to make 80,000 dollars a year. I don't want to have to leave my home in order to have a career and build a financial base. I want to live in a Portland that is thriving and alive and growing, and if that means I have to put up with more triple latte frappacappawhateverthehells to do it then so be it. I see a city that is experiencing growing pains, but is headed in the right direction. And while it's on the radar, it hasn't fully exploded yet, and that means that there are plenty of opportunities to participate in its evolution. To guide it in a direction that works for all of us. I for one will be right here growing alongside the city I went to college in, became a man in - in the state that I was born in and intend to grow old in. And if the alternative is watching our state deteriorate while every financial opportunity goes elsewhere, then I will gladly accept the New York invasion.

I know this will piss a lot of people off. But I'm a pragmatist and at the end of the day I want whats best for the whole state. And right now what we need is a steady stream of new money, new ideas, and new people to help Maine become a serious participant in the future of our country. Let's not get left behind. Let's welcome these folks with open arms - let's not alienate our fairer friends from the land of cool. Let's work with them to make a Maine that retains it's ideals of hard work and sticktoitiveness by sharing our home with these interesting and wealthy people who obviously came here for a reason. If we work together we can move forward without leaving anyone behind.

 

 

 

Creative versus analytical thinking

Things get done in a lot of different ways. Sometimes you have to think big, think outside the box, and be wildly creative. Sometimes you have to knuckle down, focus on the details, and grind out the "boring stuff." Sometimes you're lucky, and you genuinely enjoy working on both sides of the equation. If you're not, you can probably learn to be.

intelligence

A lot of people come up with great ideas but struggle with execution. They'll invent the next app or come up with the perfect business idea only to falter when it comes to bringing the product or service to life. It makes sense. Having a great business idea is fun. Writing a business plan might not be. Thinking of an app that links people with the nearest group of partiers in their neighborhood is fun. Getting down to coding, design, scaling, and marketing might not be.

But a lot of the time it's not that those things are impossible or even that difficult; they simply require a certain amount of dedication, resolve, ingenuity, and perseverance. They also require a sense of direction. The next time you have great business idea, write it down. But then go on this incredible thing we have access to called the internet and read about how to write a business plan. Read about how to go from ideation to execution. Read about real world examples of people who have achieved these feats and try to mimic their process.

Focus on your strengths and develop your weaknesses. If you're a creative, work on Excel documents and forecasting. If you're an analyst work on logo design and innovative marketing campaign ideas. Even if you wind up outsourcing or hiring for those roles, it is invaluable to have put some time in understanding them. When the going gets tough, reach out for help. It's amazing the amount of resources we have at our disposal if we're willing to ask. Talk to local business leaders, others in your field who have made it happen, and remember to keep on doing it every single day. Nothing big happens overnight.

Whichever side of your brain you emphasize, remember that just because you're good at one thing doesn't mean that you can't be good at another. At the end of the day you've got a whole mind and you don't have to pigeonhole yourself. It's ok, even great to specialize in something, but it's important to broaden your horizons as well and work on the sides of things you normally wouldn't. Especially as an entrepreneur!

Where The Magic Happens

321223_287644471246348_100000023926508_1208317_1256433384_n

I want to help people out. But I'm just a guy going through life - I need help too! I gave it a lot of thought before making a blog - or recording myself blabbering for a podcast - maybe too much thought! Despite it seeming at times presumptuous, I decided that my little soapbox is worth it.

Putting yourself out there can be really uncomfortable. Real people are reading the things you write, and listening to the things you say, and have some valid reasons to disagree, and pick you apart. You can spend a lot of time second guessing yourself. But at the end of the day, if you don't get out there, you'll never get where you're going!

So if you're considering taking a leap of faith - If you're considering doing something that your intuition is calling you toward - If you're considering climbing out of your comfort zone - I would say do it. It might be grindy at first, it might be grindy for a while! But you're going to be better for it; and that experience will make the next time you step out on the ledge a little less terrifying.

 

 

Let Yourself Suck

IraGlass
SuchTrue

Today I recorded my very first (attempt at a) podcast. I've been listening to a bunch of great podcasts lately while pressing juices or taking walks or on long drives - Tim Ferriss interviewing every awesome person you can think of, the infamous Serial, a great one by Alex Blumberg called Startup, some obscure business podcasts, Pat Flynn's Smart Passive Income - and I just realized I wanted to jump into this game. I feel like I have something of value to say - not to everyone - but to someone, and looking at the remarkable response some of these guys get, I just think I'll be able to help somebody out - even if it's only myself at first!

But I also understand that what I just produced pretty much sucks. I think it has to. I think you have to just jump in and start swimming, give yourself some stakes, or else you'll just go through life saying I could have or I should have. So If anyone thinks my podcast sucks, you're probably right - but I'm going to work at it and who knows, maybe one day I'll wake up and find that it doesn't completely suck, and I'm actually getting somewhere!

PS - Here is the image which I'm waxing philosophic about in the podcast 🙂

abundance:scarcity

5 Reasons Not to Beat Yourself Up

It’s easy to get down on yourself when things aren’t going the way you’d hoped. Maybe you haven’t been able to keep up with a diet or exercise routine.  Maybe you haven’t had the success with your career or business that you expected. Or maybe you said or did something you regret and hurt someone you care about like a parent, partner, or friend.

 Whatever it is, you can be sure of one thing. You don’t have to beat yourself up! Here are 5 reasons why you ought to cut yourself a little slack, take a deep breath, and continue working on improving yourself.

1. Stress is no good

 When you come down on yourself, you’re not only keeping yourself low, you’re also taking valuable energy away from giving yourself a boost. Reinforcing patterns of negative behavior is way less productive than reinforcing patterns of positive behavior so try to give yourself some credit for what you are doing well. Remember that everything is going to be ok.

2. You’re doing fine

 Remember, no matter what it is you’re doing in life, somebody is probably doing it better than you, and somebody is probably doing it worse than you. Your job isn’t to be the best in the whole world, it’s to work toward being the best YOU possible. Instead of judging yourself against everyone else, you should focus on your own path. Chances are you’re not as far away from where you want to be as you think you are.

3. Life is long

 You don’t have to finish everything right this very instant! While it is important to remain productive and try to accomplish something every day (even if it’s just a little thing), it’s important to remember that life goes on. Often times our stresses and anxieties come from a sense that something has to happen right this very instant! That usually isn’t the case, and also causes you to stress out even more. Self fulfilling prophecy much!

4. Somebody loves you

 Believe me, somebody out there loves you. Sometimes it feels like there is nobody in the world who cares for you but that just isn’t the case. Whether it’s your mom, or your significant other, or a son or daughter or friend, somebody somewhere cares. You need to remember that when you get down in the dumps. And also, you need to remember to love yourself. It’s very difficult to allow others to give you the love you deserve if you can’t give yourself some love.

5. You’re a good person!

 That’s right, I haven’t even met you and I’m telling you that. Why? Because it’s true! All you have to do to be a good person is genuinely want to be a good person. Even if you’ve done some stupid things in your life, you don’t have to define yourself by those things. Remember - life is constantly shifting and if you want it to, it will shift for the better. Keep your head up and put one foot in front of the other!

 

Onward!

You know what's a profoundly pleasant experience? When your subconscious mind actively works to help you out instead of operating in a perpetual self sabotage mode. It's amazing how many of us are operating in that self sabotage mode most of the time and don't even realize it. Actually it's amazing any of us are here at all! Kidding - but wherever you are, and in whatever state of affairs from all buttoned up and ducks in a row to coming apart at the seams, there are ways to begin taking control of the processes that define our lives, and they all begin with taking a good hard look. And I don't mean a casual once over at your internal life, I mean a deeply introspective, impartial look. Believe it or not (and you probably don't yet) it's a lot easier than you imagine. How does that quote go? The best way to climb a mountain is one step at a time.

postcard-3

Part of it is recognizing that there are a tremendous amount of things going on in your head that you are blissfully unaware of. Bringing your attention to these things, applying the focus of your mind to them, makes it easier to discover what they are and address them consciously. For example. Do you get angry at all, ever? Anger is usually a symptom. It implies that there is something else going on. But you are rarely consciously aware of that so you just feel angry. And then you behave in subtle angry ways and act on angry impulses, (either in big or more often in very little ways) to sabotage yourself and make it more likely that you'll repeat those patterns.

These are called feedback loops and as soon as you're looking for them, you'll see their footprints all over your life. Being aware of feedback loops will make it easier for you to understand them for what they are and coax more positive results out of them. Because that's another thing it's important to realize. These things that have negative results in our lives, the mechanisms behind them can be used to achieve either good results or bad results. They can be allowed to run wild or they can be used responsibly as tools. So what you perceive as a bad character trait may simply be a poorly directed character trait. If you find the appropriate outlet for it, that character trait may become one of your strongest assets. But you have to do the hard inner work of learning how to be the driver of this rickety carriage. It doesn't - it simply cannot happen all at once - and you will get discouraged - often. But if you take the long vision, if you internalize the idea that you have to navigate yourself toward a far off destination you can't even see yet, you'll begin to realize that it's possible.

The point is, it all starts with thinking about it. With you thinking about the mechanisms in your own life. If you want to see if you're standing with good posture you have to look in a mirror. And if you want to see how the feedback loops and subconscious processes in your life are working you have to find a mirror somewhere in yourself. Oh, and for most of us it's pitch dark when we begin looking so we can't see anything. So you'll probably need a flashlight. And the mirror is more often than not at the bottom of a deep dark cave so you need a bunch of different flashlights and other tools. Oh and it's a lot easier with some guidance. It's my great pleasure to be one of those guides but remember, I'm on this journey as well, so you'll have to take everything I say with a few grains of sand. The blind leading the blind and all. This metaphor is getting pretty sloppy, but you get the picture. Onward!

Is this how this works?

I'm sitting here at my desk (which is a stainless steel prep table) in the back office/kitchen of the Juice Cellar in Belfast Maine. This is command outpost number one for me; command center is my desk at home. From here I am writing what I hope will be the first of many blog posts. I'll try to give them some direction but I'll be perfectly honest - I have no idea what direction quite yet. There are so many things that occupy my time and mind, so many ambitions, hopes, dreams, goals, that I can sometimes suffer from a touch of overstimulation stasis. But like many things for me, I have been analyzing and understanding this problem (a more desirable one than most) and implementing an action plan for dealing with it. Part of that action plan is articulating what it is I want to do and think about; making lists, checking things off, getting organized. So maybe a part of this blog will be about helping you (the fine reader) to analyze your own situation and implement your own solutions. Sometimes it helps to watch someone else go through the process to see what you can do better, and what shitty steps you can skip over.

trueselfSo without further ado, I welcome you to post number one of "The Everythingist" - My blog about life, time, and moving toward authentic happiness.. Let's see what happens!