AI Playbook

We’ve written the survey specifically as a starting place for business and technical people just beginning their own journeys with artificial intelligence and are teasing apart what’s real from what’s hype.

We assume you are involved in creating, managing, or green lighting software and want to understand how AI can give your software super powers

Read on: A 16 Z AI Playbook

Is jQuery still a thing?

There’s a big stigma around using jQuery lately . It seems like everyone is insistent on avoiding it in modern JavaScript development. Lately developers are all talking about things like TypeScript, ECMA2015+, and the current flavor of the month framework.

I think this is silly. jQuery is still very much relevant in 2017 — it just isn’t getting talked about.

Read on: I Still Love jQuery — And You Should, Too.

Potential roadmap for multisite

Three plus years later, we’re still finding oddities in old MU code, so it makes sense to bide our time and only undergo renames when they let us shed dead weight. The side effect of keeping the barrier to entry high for multisite is not necessarily a bad one — even three years after merge, the product as a whole is still very weak (which is being kind).

Source: Potential roadmap for multisite: Subdirectories, subdomains, open registration, and domain mapping – Make WordPress Core

On interruptions and growth

Today was a tough day: one of those days when you’re trying to achieve your todo list items, but it just seems that the world is against you. Then I had an epiphany.

As many of you know, I’m a software developer. I always thought that my job was to produce lines of code, to design software systems, to review pull requests, and so on.

So I consider every day that I’m unable to write at least a line of code a wasted day.

“So what is preventing you from doing your job?” I hear you asking.

Interruptions

“Did you wrote this part of the system last year? Can you help me? I have to extend it…”
“Can you help me with this git command?”
“I just wanted your opinion…how would you solve this problem, given these constraints?”

So, today, when I was sitting at my desk for the first time at 4 pm, 8 hours later I entered the office, I was furious to see Slack notifying me yet another “Can you help me with..” message.

But then, it happened.

I realized that, despite the fact that I haven’t produced a single line of code, I enabled more than ten people to continue their work.
I helped all those stuck people to overcome a simple issue that was preventing them from keeping on working.

So, instead of being bothered, I decided to be proud. Instead of being shallow, I decided to give every person the time he needs to understand deeply what he’s asking me.

And I like to think that, as I’m growing as a person, my professional side is also changing, growing and adapting. Taking me to my next challenge.

So, the next time that someone asks you for help, think that they’re helping you grow.

Sort an array by object attribute in PHP

One of those simple things that I keep forgetting.

Suppose you have to sort a set of PHP objects, based on an attribute.

To do this, you can implement the __toString method and use the SORT_STRING flag in the sort function:

<?php

class Car {
    private $_maker;

    public function __construct( $maker ) {
        $this->maker = $maker;
    }


    public function __toString() {
        return $this->maker;
    }
}

$car1 = new Car( 'BMW' );
$car2 = new Car( 'Alfa Romeo' );
$car3 = new Car( 'Volvo' );

$cars   = [];
$cars[] = $car1;
$cars[] = $car2;
$cars[] = $car3;

// sort the array
sort( $cars, SORT_STRING );

var_dump( $cars );

This will result in:

/*
==RESULT== 
array(3) {
  [0]=>
  object(Car)#2 (2) {
    ["_maker":"Car":private]=>
    NULL
    ["maker"]=>
    string(10) "Alfa Romeo"
  }
  [1]=>
  object(Car)#1 (2) {
    ["_maker":"Car":private]=>
    NULL
    ["maker"]=>
    string(3) "BMW"
  }
  [2]=>
  object(Car)#3 (2) {
    ["_maker":"Car":private]=>
    NULL
    ["maker"]=>
    string(5) "Volvo"
  }
}
 */