BusinessProductivitySecurity & PrivacyTechnologyWeb Development

1 ways cloud computing benefits your business

From The Ground to The Cloud!

Cloud Computing is being adopted by large and small companies for their numerous benefits. As the technology grows, it will soon become the industry standard if it has not already. It’s affordable and stays up-to-date! It should be a part every small business’ success story and this post aims to shine some light on what the cloud is. Don’t let your business fall behind on this trend and reap the benefits of The Cloud today!

can't stop the signal
OK, not QUITE the same. But close enough.

What is Cloud Computing?

You might be asking “what is Cloud Computing” and “why should I care”? 

Cloud Computing is sort of like a car rental: You pay for as much as you use it, have the freedom to use it however you like (as long as it’s legal, of course), and it’s owned and managed by another company, not you. 

You are probably used to the idea of servers running in their own enclosed space, handling all your business’ mission-critical services such as databasing and website hosting.  As the name “Cloud Computing” suggests, all of the system resources that your services rely on are floating in a remote space and can grow or shrink based on the conditions that you set for it.

Cloud service providers such as Amazon Web Services (AWS), Microsoft Azure, Digital Ocean, Linodeetc allow you to rent a server with the latest hardware for a very affordable price. 

 

1. Affordable

Let’s begin with the #1 reason why a business owner should consider cloud computing: it’s affordable! Instead of paying thousands of dollars up front for a working server and hiring a team of professionals to set it up and maintain it, you pay a fraction of the price for a server that is already set upYou will still have to manage the software side of things thoughThey can start for as little as $5 monthly and you only pay more as you need stronger hardware. You probably would have paid roughly that much or more on a monthly basis just to cover the power usage, which also gets taken out of the equation if you run your server on the cloud. For the price of an on-premise setup, you might have a fully working cloud infrastructure for years to come.

Now you don’t need to lose entire paycheques before your business even gets a chance to take off!

2. Scales with Latest Hardware

As a small business you might not need a huge, powerful server. Starting out, you might only need a small machine to deliver your services to your customers. Your needs may grow as your company does and you can easily provision more resources when it does. Instead of starting with a powerful server, you can upgrade to one once you need it. On top of only paying for what you need, the hardware available will usually be up to date and you don’t have to worry about spending more money on updated hardware after a few years. 

3. High Availability 

Unlike owning a server on-premises, servers that host your virtual machines reside in data centers in a remote location. They often also have high bandwidth, making it easier for clients who are farther away to connect to your website or service, especially if it experiences high traffic that your local internet provider might not be able to handle. This is also important for being able to connect to your server to for managing problems or updates.  

Since servers are hosted in remote data centres, your service will be available to your major demographic even if they are halfway around the world!

 

What’s the Catch?

Are you interested in cloud computing yet? You can spend less money for a server located almost anywhere in the world. Your office might burn to the ground but your data will remain safe. These are only some of the many strengths of cloud computing and the barrier for entry is low, so you can try it out with very little risk.

There are some things to watch out for though. Contrary to the #1 reason for having a server hosted on the cloud, it is also very easy to accidentally over spend by renting a cloud service or resource that you do not need or use. Although you don’t have to worry about someone breaking into your office and stealing your hard drives, you still need to employ good security practices to minimize the odds of someone hacking into your server and ruining your business. 

If you are interested in cloud computing but are not interested in the setup process, or if you don’t have the technical skills needed to do it yourself you can always consult an IT company such as Panda Rose to take care of your set up process and manage it on an as-needed basis. 

BusinessMarketingProductivitySEOShoppingSocial MediaWeb Development

build your own ecommerce website, be your own boss

I’m going to spoil this whole blog by telling you the three reasons you should build your own eCommerce website in this very first sentence: eBay, Etsy, and Amazon. That’s it, there you have it, that’s why you should build your own eCommerce website.

I know what you’re thinking: “Deborah, you’ve gone completely bananas. I couldn’t possibly independently compete with those three!”

Brick laughing with a banana
I can’t remember a time when I wasn’t a little bit off my rocker.

Well I hate to break it to you folks, but I went completely bananas years ago. You should know that by now. But that’s completely aside from the point and unrelated to anything I’m saying here. Just let me continue, and stop mentally interrupting me, OK? Thanks.

Even when you list your products on those sites, you are still competing with all of them. But let’s take a closer look.

Amazon

Xena, Warrior Princess
Darn it you guys, STILL not that Amazon.

Of these big three sellers, Amazon.com was founded in 1994. Who even remembers having the internet in 1994? My family had an Apple computer back then, but eventually switched to a PC. I think we got dial-up in 1995:

beep-beep-beep-beep-beep-beep-beep ccccccccchhhhhhh doooooo-dee-doo000-beepbeep-boop-beep-dooop cccccccchhhhhhhhhh

dial-up internet
You know what I’m talkin’ about.

. . . and then that sweet sound of connection. It wasn’t long before I discovered Amazon.com. It used to be all books, all the time, and soon after, I could also get CDs and DVDs, and better yet, I could soon buy them used from other sellers! I’ll admit, I have Amazon Prime membership in both the USA and Canada. As a buyer, Amazon is pretty great.

But what about as a seller?

Amazon is complicated. Their fees are high. You’ve got a huge amount of competition, including people who buy and bulk, which isn’t great if you’re a smaller business. Not only that, but you are also in direct competition with Amazon itself.

Take for example the issue of AmazonEssentials products. Despite claims to the contrary, Amazon employees have used what is supposed to be private information about independent sellers on the company’s platform to develop competing products, going directly against their own company’s policy.

Speaking of competing products, several major brands have refused to sell on Amazon because they don’t police the grey market well enough. One brand even preferred to sell exclusively on Walmart instead. Not to dis Walmart or anything (loyal shopper here), but I kinda think that says something.

people at walmart crashing balls
Am I a Person of Walmart? That’s for me to know and you to find out.

eBay

cat selling a cat in a box
I’ve tried this with my children, but apparently it’s “against the rules”.

Ah yes, the wild west of online sales. Or so it seemed to be back in those first few years. eBay was founded only a year after Amazon, in 1995. It started simple enough. The first sale was a broken laser pointer to a fellow who collected broken laser pointers, who would’ve thought? Initially, listing an item was free, but the founder’s internet services bill got too high, so he had to start charging a listing free, which people found pretty reasonable.

(As an aside, my first year of high school, my school’s principal, Tom Sawyer (yes, that legit was his name, no relation to the real fictional Tom Sawyer, though), was an expert at calling auctions. You know, that really fast-talking thing. Everybody in town would get him to do live auctions. Pretty amazing. eBay should have hired him for . . . something.)

Thousands of people have found success on eBay, but more and more, people have become increasingly frustrated. In the words of one former seller, “eBay sacrifices its sellers to its buyers”. I know that “the customer is always right” is a good general policy, but eBay appears to take this a bit too far. According to this same seller, “eBay ‘insures’ purchases by resolving all disputes in favor of the buyer, and then forcing the seller to cover the costs. Paypal helps them by seizing the seller’s funds.”

So eBay runs on a guilty-until-proven-innocent-system where the seller can almost never prove themselves innocent. It also leaves the seller open to buyer fraud.

guilty!
Even if you’re innocent, you’re still guilty.

eBay can limit your sales very arbitrarily, despite your good record (and bringing in lots of income to eBay itself). An ill-intentioned person can give a seller a bad review, a postal strike causing a delay in shipment, or any other little fluke can lead them to limit how much a seller is allowed to sell. One seller whose whole business. You are subject to eBay’s whims. You may feel like your own boss, but you are at the mercy of buyers and eBay’s poor customer service.

Etsy

Etsy, the newest to the market. Launched in 2005 on the east coast, it’s the indie girl’s heaven for vintage, handmade, and craft supplies. Yes, I’ve purchased all of the above on there. Etsy has been great for sellers of these things, but in recent years, Etsy’s policies have changed for the negative.

where do you even find a a gold coke straw? etsy.
Seems legit. In a not really legit sorta way.

Etsy is no longer friendly to small business, you are literally competing with huge shops in China. It’s sad really — you see someone has designed something creative and lovely, and within a few months, other people are copying that design and it’s all being shipped from China. Sure, maybe it was handmade, but do you really think the worker got fair pay for the work they did?

Not only that, but because of Etsy opening up their policy to this type of business, small business owners have faced lower sales volumes and increased competition due to the sheer volume of shop owners on the site, and it’s not exactly easy to differentiate your own shop from all the rest. You get a name and you get a logo. That’s about it. It’s very difficult to truly build your own brand.

On top of this, Etsy has their own weird SEO algorithms that work completely differently from most ordinary search engines, and at the same time, Etsy items don’t rank well in Google searches. And then there are the fees. They can arbitrarily hike the fees whenever they please, cutting into the profit margin of small businesses as well.

At the end of the day, is it really worth all this trouble?

Who are you really working for?

All three of these platforms make it somewhat easy to list your products in an online shop, but is it really worth it? How does it really benefit you as a business? Perhaps early on it might have been easy for people to search and find your products, but now they’re so over-saturated that it’s difficult for people to find you. You can’t truly build your own brand.

At the end of the day, with having to follow someone else’s ever-changing policies, very little control over how operations are run, and the inability to truly build your own brand while paying someone else fees, it sure sounds a lot like you’re doing a lot of work for someone else. You may have more flexibility than a typical job, but you’ve still got someone bossing you around.

But what else can a small business do?

Gosh, I’m sure glad you asked! The truth is, building your own eCommerce website isn’t that complicated. There are lots of options out there, though our two favourites are WooCommerce and Shopify. The great thing about your own site is you are in charge. You decide what your website will look like, your branding, everything. Nobody will tell you what kind of payments you will take, you get to decide that. You get to decide what shipping options you will offer, and where you will ship.

I don’t know about anybody else, but I’m pretty stubborn and don’t like being told what to do. I’m also a bit of a control freak, so being able to control every aspect of my business (or delegate to people whom I trust) is right up my alley. Both of these platforms offer countless tools to make it easy to do.

Zoolander like a boss
You can be really really really really really ridiculously good looking AND be your own boss at the SAME TIME.

How will people find me if I’m not on one of these big sites?

Google.

OK, that’s the easy answer, but not the only one. Look at it this way: you’re not just selling stuff, you’re building a brand. Do you have a Facebook page? Instagram? Most of these eCommerce platforms have integrations with both Facebook and Instagram (WooCommerce: Facebook, Instagram; Shopify: online sales channels).

Honestly, lots of the new stuff I discover is through social media, so build a following! Write blogs about your products, get other people to share your products and how great they are! Get in people’s heads. Build your brand. If you need any advice on SEO, social media, or digital marketing, talk with us. We are more than happy to help!

Back to Google though — this year they announced a new feature they are making available on their shopping search results. Currently their Google Shopping search results are all sponsored products, but this spring, in the US, they opened it up so that people could list their products for free (there would still be sponsored listings, a bit like regular search results).

This isn’t available in Canada yet, but one article suggests it will be quite soon for Canada, and another says that it will be global before the end of the year. I find this pretty exciting, as it’s another SEO opportunity for our eCommerce clients. It appears that already there are integrations for WooCommerce and Shopify.

OK, but what about the cost?

I’ll admit, there’s a bigger up-front cost with building a site yourself.

I take that back. Shopify isn’t all that bad, although they have monthly fees, because it is hosted, although the monthly fees might add up, but it comes with everything all-in-one full-meal-deal if that’s what you like. You can pay to have someone set it all up for you, have it match your branding and whatnot, or you can set it up yourself and you’ll probably get by either way. It’s a great option for someone who wants a store. Some pretty big brands use Shopify, including Hasbro, The Economist, Heinz, Crabtree & Evelyn, and Penguin Books.

WooCommerce is my favourite though. It’s a great option if you want a full website, more than just a shop. From what I understand the API is easier to work with, so if you like doing your own coding . . . stuff (sorry, I stick to html and css, disturbingly so), it’s a better option. I like that you can use their official plugins or third party plugins  to make it do whatever you darned-well please. Many-a-time a client has asked “but can you make it do this?” and I’ve said “of course we can!” then gone to one of our developers and said “so . . . they asked me if we can make it do this” to be told “weird but . . . I guess so?”

Why say no when it feels so good to say yes?
Right?!

As for cost, WooCommerce itself is free, though if you purchase it with a theme, it sometimes comes with other paid upgrades. There are paid and free plugins you can get for WooCommerce. Your main cost will be building the website, and then the monthly or annual fee of hosting it varies from provider to provider.

I may or may not be the Yes Girl, much to the chagrin of our CEO. (Sorry Kelly.)

Let’s do it!

So now that I’ve given you all the reasons why you really ought to have your own website instead of working for someone else, why don’t you give us a call, send us an email, or contact us through social media and let us help you get your business online! We can offer advice on what platform is best for you, or we can do all the work for you. Whatever level of service you need, we’re here for you.

Doctor Who: Just do it!
Don’t take my word for it. The good Doctor says you should too.
FutureProgrammingTechnologyWeb Development

and now for something completely different

In the our 20-odd years with PHP, there have always been people attempting to work a step or two ahead of where the language was at the time. Working with PHP4 in the early 2000s, when a very elementary Java-derived object model was grafted on the language, people attempted to write proper Java without the guardrails. Objects are the sort of thing that, if your language doesn’t give you, you will probably try to invent, as people before that with PHP3.

PHP5 brought the gradual strengthening of the language’s object model, as well as dynamic “magic methods” which people ran wild with in the late 2000s, stretching things every which way. By the early 2010s the ecosystem had sobered up and begun to build serious structures around it. The language got a proper package manager in Composer, and in playing by a set of community-established conventions, one could draw upon vast resources for free. Many of us did, and over the lifespan of PHP5, the language completed a transformation from its hobbyist origins to something more enterprise-worthy. This was only aided by the widespread shift to cloud-centric computing, which PHP — stateless by nature — was uniquely equipped to handle.

PHP: The Next Generation

PHP7 came at an opportune time in the mid-2010s. Apparent competition from Facebook’s PHP-based hacklang seemed to kick the release schedule for PHP5’s sequel into high gear, amidst worries that a competing, partially-compatible offshoot would fragment the ecosystem. The internals team, which typically ties major version jumps (3 to 4, 4 to 5, 5 to . . . 7) to significant engine improvements, did not disappoint. Version 7 arrived with huge speed improvements (5x, by many counts) and set about, over the lifespan of the 7.x line, finishing the task of strengthening the language’s guardrails. The end result took much of the wind out of hacklang’s sails and, though it continues as a part of facebook’s internal toolset, the feared splintering of the community did not arrive.

Now, as we await the arrival of PHP Next Generation — Version 8 — in the closing months of 2020, let’s look at how we’ve continued to work at the margins in our time with PHP 7, and how we can expect to see our visions realized in future PHP.

make it so

Building a more reflective environment

Beyond the speed boost, PHP greatly strengthened the type system, once considered a critical weakness of the language. Once a weakly typed language, its modern incarnations are more accurately gradually typed — that is to say, while you can still work in a fast and loose way as before, structure and boundary may be introduced as the lines become more defined.

Through external tools, through linters and validation, structure and boundary may be enforced on a project level. The language may be wielded in a way acceptable to the enterprise, without losing the dynamism, flexibility and lightness of weight that characterize a scripting language.

If PHP is the best of both worlds, it’s the hardening of its type system that has brought it there, and it’s around its type system that our work has revolved.

class Before {
protected $database;
public function getUser($id, $password);
}
class After {
protected $database;
public function getUser(int $id, string $age): User;
}

Before is an example of a method signature, PHP5-style. We can infer that $id is probably a number, and $password is probably a string of text. getUser probably returns a user record. These are all reasonable assumptions, but there’s no actual indication of this, and certainly no enforcement. What happens if you pass in a textual ID and a numeric password, or trick it to return something other than a user record? And putting aside everything that could go wrong at runtime, there’s little usable information here for an IDE to provide hinting as you work.

(In the months before PHP7 was announced, our team had a working model that looked an awful lot like After, running entirely on plain-vanilla PHP 5.4. We stopped work on it at that point, and the less we say about how we did it, the better.)

After, using the syntactic enhancements of PHP7, is replete with useful information for automated tools and human readers, and establishes clear boundaries for runtime operation. Try feeding in the wrong values, or coaxing out a bad result. The engine itself will refuse.

So what did people do before 2015? Labour with blind IDEs, unable to analyze their code? No, the PHP community did what it does in the face of adversity and established sensible community standards. Deriving from the Javadoc format, DocBlocks became a standard way of expressing the intent of a program.

class Annotated {
/** @var Connection */
protected $database;
/**
* Retrieve a user from the database.
* @param int $id
* @param string $password
* @throws UserNotFoundException
* @returns User
*/
public function getUser($id, $password);
}

In this way, people were pretending that PHP was well-typed long before it was. Now, these specifications are suggestions, not rules: the language does not register them and will not enforce them at runtime. But they provide a standard way to provide a wealth of metadata beyond what the type system can adequately capture, even now. (Referring back to the After diagram, you’ll notice that this diagram contains more information. PHP 7.0 was incapable of attaching type information to $database, and it doesn’t specify possible error states.)

So on our side we’ve got a consistently improving type system and well-defined documentation format with broad community support. We’ve got powerful Reflection capabilities built in to the language — that is, programs can read their own blueprint, make decisions based on their own structure. All this within a language with a history of dynamism and “magic” undefined conditions.
So let’s look at one way in which we worked past a shortcoming of PHP, and had the opportunity to loop back once the language caught up.

Typed Properties in PHP 7

Let’s dwell for a second or two on a fragment of the last two code samples, to see a shortcoming of PHP 7.0 as it initially shipped.

class After {
protected $database;
}
class Annotated {
/** @var Connection */
protected $database;
}

In contrast to methods, class properties such as the $database are as weakly-typed as ever before. Within a class, it’s the honour system. If you were to make $database public rather than protected, you’d be merely trusting the rest of your system not to pass in a bad value, and you’re telling the rest of system nothing (except by way of commentary) of its intended content.

Meanwhile, our team is building a framework around a Dependency Injection container, and this is a crucial bit of missing information for us as we attempt to analyze and fulfill the needs of a class.
But since we have metadata available in another way, we end up with something like this:

class ExampleController {
/**
* @var UserEntity
* @Inject(required=true)
*/
protected $user;
}

No, not the prettiest. We earnestly wished, at the time, that we could express property types like this:

class ExampleController {
protected UserEntity $user;
}

and Annotations like this, such as in Java:

class ExampleController {
@Inject(required=true)
protected $user;
}

but we continue to build our system as if the language had those functionalities, without our own implementations as a stopgap. In each case, we were expecting the language to go that way eventually, though we couldn’t say for certain any timeframe.

Sure enough, as development of PHP 7.x continued and initial shortcomings were resolved one by one, we got one item checked off our wishlist with PHP 7.4. Typed Properties now allowed the above to be slimmed down to:

class ExampleController {
/** @Inject(required=true) */
protected UserEntity $user;
}

Furthermore, the properly typed property doesn’t function just as a suggestion for the dependency system to interpret and fulfill. Another guardrail, formally in place, and we began supporting this method within our framework immediately. But its addition didn’t invalidate the old method. @var annotations remain valid and will remain so indefinitely.
But speaking of annotations…

Annotations in PHP 8

This is a bit of a “stop the presses” moment, as I had already written how this remains a long-running, major item on our wishlist. How I had followed various RFCs over the past decade, hopeful for each of them, resigned to the reality that it might never be accepted.

Our half-way implementation might be all we ever had, and that was okay. Then, with my press date looming, this lands in my inbox:

i just closed the vote. [Attributes v2](https://wiki.php.net/rfc/attributes_v2) was accepted with 51 yay, 1 nay. The selected syntax will be <<Attribute>>.

Thank you everyone for participating in the discussion and vote!

I was more than glad to tear up that draft, and I’ll be glad to see DocBlock annotations become an optional feature as code like this becomes the norm:

class ExampleController {
<<Inject>>
protected UserEntity $user;
}

Yet, even as the language has caught up with our intentions and we’ve adapted our course accordingly, functionality has remained consistent throughout. The language gave us enough rope to mock-up both features to the degree that we didn’t feel impoverished in their absence, and were able to pivot effortlessly when both were introduced.

It remains to be seen what aspect of PHP 9 we end up building, but we look forward to discovery.

There are many reasons to be excited for PHP 8!

Annotations — er, Attributes — are a definite favourite here, but a major PHP release is a big deal and we’ll be here in future weeks to go through them all.