Emphpathy

It has been quite a year, has it not? We will remember 2020 for a long time to come, with shelter-at-home orders, restricted travel, not meeting friends, family, and the wider PHP community. It has been quite a lonely year, as we find that although Zoom is great for doing meetings in your pants, it is by no means equivalent to sharing a beer, laughs, and arguing about Attribute Syntax or which PHP versions should be supported by Open Source tools at a user group or conference. I am really missing it, and you.

Now most of us are stuck at home behind our screens, it is easy to forget that when we write down our arguments and gripes in issues, email, and not to forget on Twitter, that there is a person on the other side of the communication channel as well. And that person is going to have to read your rant on whether the bike shed MUST be purple with pink polka dots, and definitely not the more sane green colour.

In the last year, I’ve seen various posts by maintainers of Open Source software stating that their users are ungrateful when they complain and expect their problem to be solved straight away. Sometimes this stays as a single comment, or they call it “crappy software”, but sometimes words get way too strong, essentially about something that is being given to them for free—software written by a maintainer in their free time. I certainly have had a few rants directed at me for Xdebug for it wasting time, which I find amusing as the sole drive behind Xdebug is that it is going to save users a fuck ton of time. I digress.

I think that as a community we need to acknowledge that there is probably more twaddle thrown at maintainers of Open Source code than they deserve. In the end, they spend a lot of their spare time creating useful things for the world at large. There is definitely no requirement for maintainers to spend more time on problems that a user has, or thinks they have. How can you even require people to work on free stuff in their free time?

But does that mean that that absolves maintainers from not caring about the users of the code they have made public? It depends. Some Open Source code gets written to scratch an itch. I wrote VLD, a tool that shows the internal operations of the PHP engine, to assist me with developing and debugging Xdebug‘s code analytics routines. When I started this, no other such tool was available, so I made this Open Source for others to use if they want. I do not provide any support, and will immediately say “Pull Request welcome” if somebody runs into a problem. I can justify this for VLD, as it is a very low-level tool and only useful for people that know the PHP engine fairly well. VLD was primarily written for me.

Much Open Source software starts out that way, but at some point, things can get out of control. When I started with the development of Xdebug 18 odd years ago, it was also very much for my own benefit. Mostly to learn a little about how the PHP engine worked, and how I could prevent infinite-recursion from crashing the engine due to a stack overflow. But as you know, this got a little out of hand and I’m still here supporting, upgrading, and improving it, recently culminating in the Xdebug 3 release.

For a part of the 18 years that Xdebug exists, I did not actually write a lot of PHP code. I continued maintaining Xdebug for the benefit of PHP programmers at large. I would even go as far as to say that I felt that I neglected its users by not having as much time to work on it as the software deserved. Now that there are so many users, there is an implicit bond between my Open Source side project and its users, and I believe I owe the users at least something. If I did not want that, I should not have chosen to publish the tool that I wrote to scratch that itch as Open Source. But because I did, the question becomes rather what sort of expectations users can expect, and what I’m willing to provide.

Acknowledging Pull Requests and issue reports? Yes. Support questions in a public forum? When I have time. Private questions? Probably not. Free 24/7 phone support? Fuck no.

I am open to providing private support for Xdebug’s users, but only for users who have signed up for a paid support package. But still no 24/7 phone support, I’m not stupid.

By publishing your code as Open Source, you do create an implicit moral contract between yourself as maintainer and the users of your code. Users can rightfully expect you to be a good steward of the software that you publish. It also sometimes inconveniently means that they expect you as a maintainer to care for their problems. That is what you sign up for if you publish code as Open Source.

I think we would all be better off if these implicit contracts became less implicit by writing them down. A part of this is PHP’s supported versions page, and Xdebug’s compatibility page. For Xdebug there is an explicit commitment to which PHP versions I support:

In general, at any point when an Xdebug version is released, it will support the currently supported PHP versions.

I also believe that as an active maintainer I should listen to what users have to say, and take their concerns into account. Only mentioning PHP version support is not nearly exhaustive enough. That does not mean you can be expected to give in to their requests (demands?). You are not obliged to do anything, and free to ignore user’s requests or demand payment in exchange for getting things done.

I have to come back to the issue of which versions of PHP should be supported by (Open Source) tools and libraries that PHP community members publish. This is a subject that sees frequent discussions. I started writing this article a few weeks ago, but even as of this weekend, another discussion thread sprung up on Twitter.

I believe very few developers want to be required to support old versions of PHP. It is no fun constantly forgetting that PHP 5.3 does not support the [...] syntax for arrays (FML).

If you write Open Source code as a “job”, it is more justifiable to spend time on older PHP versions. Unfortunately, that means that I sometimes still have to try to get PHP 5.3 to compile on a new Linux distribution. But because there is an explicit contract in place, I knew what the deal was upfront.

End users want the most amount of compatibility with the widest range of versions of dependencies, because they cannot be arsed to upgrade their code all the time, for various reasons, right or wrong. It is annoying for them to have to upgrade all their dependencies if they just want to use a newer version of PHP, especially if that means that they need to rewrite parts of their code because one or more dependency has breaking changes.

On the other hand, maintainers want to have to support the smallest range of dependency versions they can get away with. Supporting older versions of dependencies, including PHP versions, adds more overhead when you just want to use the latest and greatest to write more efficient and more performant code, while reducing cognitive load. There should of course be a balance, and what that balance is, probably depends on what the context is.

A library or tool that is a dependency that other developers rely on, which has a small range of supported PHP versions makes it harder or impossible for these other developers to use that tool to support a wider range of dependency versions for their users. With Open Source there is no requirement to do anything, but does it really hurt to be generous with what you support instead of having a strict dogma on what you will support? I believe not. As a community, I think we need to look at having more empathy for each other. And yes, that will sometimes mean supporting things for longer than you really want.

This turned out a bit more gloomy than I intended, especially after such a cheerful first paragraph. My main point is two-fold: be more explicit about what you support, and why, but at the same time have empathy for your users, and the eventual problems that they run into with your published open source code, and how it is supported.

On a happier note, although 2020 has been an odd year, it also brought lots of new releases in the PHP world: Composer 2, Xdebug 3, and PHP 8. I suppose we all had a bit more time now we are all stuck at home. I am looking forwards to meeting you all in person again at a user group or conference in 2021, where I will be more than happy to argue that the Attribute Syntax that PHP 8 now ships with is absolutely the best one, or that it is now really time to say goodbye to PHP 5.

Take care,
Derick

To Infinity, and Beyond

As I write this, PHP 8 has just released. The PHP community was all aflutter over the weekend installing playing, benchmarking, generally having a wonderful time with this early Christmas present.

I’ve iterated over this loop before. I was part of the community for the release of PHP 7. I saw the same excitement, the same squeals of glee when something worked. It was awesome then, it is awesome now.

I hope and plan to be around for the release of PHP 9 as well. I love being a part of this community and love to see the awesome things that it creates. Most of the vocal members of this community are part mad-scientist and part artist. That’s a great combination for creating things that can change the world.

The fun part is that the community celebrating the release of PHP 8 is very different from the community celebrating PHP 7. There are a lot of new people who have stepped into leadership roles as some of the old guard have moved on to newer pursuits. I am thankful for all the people that have helped us get where we are, but I’m excited about the new faces that will help us get to the next level.

Nothing lasts forever. I know that there will come a day – hopefully long into the future – when PHP is no longer a thing. But that day is not today. Honestly, you can’t even see that day from here.

Until that day arrives, we as a community need to keep finding common ground on which to keep working together. As long as there are developers writing code in PHP, and as long as there are core developers who care enough to keep PHP moving forward, then yes, we can keep moving to infinity, and beyond.

That’s the dream the ElePHPant has when it sleeps.

Share your story with the PHPamily

Thanksgiving in the US marks the beginning of the festive season that a lot of the members of the PHP-Community are celebrating in December. It’s the time of darkness, but also of the warm lights. And – most important – it’s the time to gather the family and to celebrate.

These were the words Andreas Heigl used in his opening post on this site, published on the 25th of November 2015, almost 5 years ago.

His goal at the time was simple; reach out to his extended, distributed, PHP-Family (or PHPamily for short) and bring together as many diverse and interesting thoughts and ideas from our community, in one central place, for us to share with each other, learn from each other, and support each other.

A lot has changed over the past 5 years, life, as we know it now, is very different from then. Many of us are dealing with new and interesting challenges, both in our personal and professional lives. And that’s the beauty of sharing stories from our community, as Andreas so eloquently put it back in 2015.

And as in every family, there are differences and there is potential for conflicts. And there are times where we don’t talk to each other. But in the end, we somehow manage to at least get along with one another. And the knowledge that we will get along with one another in the end and the knowledge that we all want to achieve awesome things bind us together. And as in every family, we can achieve even greater things together.

This year marks the 5th edition of the 24 Days in December site, and we’d like to take this opportunity to invite you to share your stories with us. We really hope we can bring fresh voices to the forefront, so if you’ve never written for a PHP related publication, this is the perfect opportunity to do so.

But what to write? Well, many of our previous contributors have written about the community, or open-source in general, or the way the modern web is changing how we live. Some authors picked a technical PHP topic that they would like to share because 24 Days in December is primarily aimed at PHP developers. Others shared something specific to the year that had passed, and what made it interesting for them. You can find a lot of inspiration in the past posts from previous years. The point is, this site is for you, our extended PHPamily, so share whatever you feel is important for us to think about as this year comes to a close.

Whether you want to write about something technical that is related to plain PHP, a fully-fledged and integrated Framework like Symfony, Laminas or Laravel, something about your favorite CMS like WordPress, Drupal, Typo3 or Concrete5, or something that relates to higher-level concepts, like open source, the PHP community in general, or your specific experiences as a person working in STEM, we are open to it, and encourage you to contribute.

If you would like to contribute to this year’s edition, email us at info AT 24daysindecember DOT net, or contact us via Twitter at @24DaysInDec.

The greatness of the PHP community – Beyond language barriers and countries

I became a PHP programmer in 2003 and used PHP3 at the time.
At this time, I felt like I was doing just my job.

I joined the PHP community since 2008.
At that time, there was a study session boom, mainly in Tokyo area, where study sessions for various programming languages ​​were held.
This was so much fun and I was getting love the PHP community and PHP itself.

Most of the study sessions were held only in Japanese, but some, such as CakePHP, were held with guest speakers from overseas and interpreters attached.
In these sutudy sessions, I realized that Japan is not behind in technology.
Beause the thing that Japanese programmers are worried about is that some people overseas are also worried about the same thing.

There are few people who speak English in Japan, and I was one of them.
So without an interpreter, I couldn’t understand the context, but when I saw ZendCon online, I felt, “What a wonderful conference, I’d like to go someday.”

In 2011, there was the Great East Japan Earthquake. Iwate Prefecture, where I lived, suffered a great deal of damage. A self-defense force rescue camp was set up in the prefectural office, which is very close to my house.
Looking at the scene, I became sad and suddenly thought, “I’m alive, so I’ll do what I want to do as soon as I can.”
And I moved to Tokyo.
In October of that year, I joined ZendCon for the first time.
I don’t understand English at all, but PHP. At that time, I was happy with seeing the programs and diagrams on the slides. And then returned to Japan.

Then, in 2014, I had the opportunity to go to ZendCon again and joined.
Participation at this time will change me greatly thereafter.
At this event where PHP community attendees from all over the world gathered, everyone was kind and fun talking about PHP, and I felt that I love this atmosphere.
If I could speak English, I really wanted to discuss more with some speakers.
I wanted to learn English and communicate more and I really wanted to join this community.

Then I returned to Japan and started studying English conversation.

In 2015, I talked to other participants a little at ZendCon, which moved to Las Vegas. But it’s still just say hello.
Every time I participated in ZendCon, in 2016, 2017, and 2018, little by little, I could talk more.

This year, 2019, I joined PHP [world] instead of ZendCon.
Almost all the participants found that they were very interested in PHP and had a great discussion. I had a lot of fun and the PHP community was really great.

Also this year, I made an English track without an interpreter at a PHP conference in Japan where I attend as a core staff member.

The idea was to create a place where people could communicate in English and hope that more people would be interested in communicating with developers in different countries.

Actually, the number of people who heard the English speech was not so many, but after that, I was able to see the smile and the shine of the eyes of the participants, and I was glad that I did.
I also really thank the English track speakers who came to Japan this year.

My English has not yet reached a level where discussions are possible, but I hope that I can continue to study and become a bridge to the community.

Please join the PHP community in Japan.

As an aside, this year, I created elePHPant for the Japan PHP Conference.
Thanks to the members of elePHPant channel on phpug Slack for helping with the creation.

Christmas Presents

When I was a kid, I admit, Christmas was mostly about the presents. This changed over time as I grew older. Now that I have kids, I admit, Christmas – again – is mostly about the presents. Not the ones I receive or expect, but the ones the Christkind will bring for my kids – if you know what I mean. (In Germany, the Christkind brings the presents on the eventing of December 24th, with the help of some angels of course, because how could a newborn possibly move around all those presents?)

A few years back, when I did not have children yet, a friend of mine said: “Now that I have children, days like Easter and Christmas starts to be more meaningful to me again”. I can relate to this statement, today. But still, Christmas seems to be too much about the presents, and everybody, especially this year, seemed to be really stressed out. We all know that the Christmas we celebrate is not what it should be, yet still we fail to fundamentally change something about it, or at least about the way we deal with it. Admittedly, fundamental change is really, really hard to achive. So why not try some little changes?

At my company, we stopped sending out Christmas presents along with our season’s greetings. Instead, we donate the amount of money we would have spent on the presents. In recent years, we have donated to an orphange, to child care, and to an institution taking care of homeless mothers with their children. It feels good to do something charitable, at least once year. And, let’s face it, there are so many people, young and old, that are more in need than the average IT expert.

This year, my family and I found out that our city accepts presents and hands them to those in need. Apparently, even in the middle of Europe, in rich Germany, close to Munich, where we generally have a pretty decent standard of living, even in the small town where I live, there are people who cannot afford any Christmas presents. We should never forget how privileged we are.

I know I am privileged not only because I made a career in IT, but also because the PHP community helped me get to where I am. Around 2001, I got into writing articles about PHP, then started speaking at PHP conferences and subsequently got into writing books about software development with PHP. Ten years ago, I co-founded The PHP Consulting Company and started to focus my professional efforts on PHP and related technologies.

Over the years, I have been called a “rock star”, a “part of the A-list”, a “luminous figure”, the “Uncle Bob of PHP”, and an idiot, for that matter. The latter characterization was part of a comment somebody had posted below a conference presentation of mine where I had suggested to avoid commenting source code, but instead write the code in a way that no additonal comments are needed. Well, everybody is free to agree or disagree with me on pretty much every technical topic. I know I have some strong opinions and I a publicly state them with a strong voice. It is okay to disagree with somebody. Calling them an idiot just because you disagree is another thing. It hurts. People may not realize, but just because someone is a more or less prominent figure because they are publishing books or online content and speak at conferences, they are still humans, and they do have feelings. And the problem with that one bad comment out of ten is that this one tends to stick.

Giving feedback is difficult, and giving constructive negative feedback is even harder. I know there are people out there who tried public speaking, writing, or publishing an Open Source project, but got discouraged at some point by negative feedback, so they gave up. Creators of Open Source software (or content) donate the most precious thing they have to us: their time. Our time on earth is limited, after all, and there are so many things to do. Still there are people that choose to invest a substantial amount of their time into us, the users of Open Source software. That is like a permament state of Christmas. We get presents all year round. But are we thankful enough?

I do not really believe that anybody creating an Open Source software does it for the fame. Fame sometimes comes as the consequence of years of hard work, but certainly not quickly. They clearly don’t do it for the money. Nobody can live on that odd donation they receive every once in a while, or that little gift from their whishlist. Github has set up a Sponsors program that helps to get some money to the creators. While this may sound like a brilliant idea, I am extremely biased, because I do not like the idea that Github = Microsoft is in control of most existing Open Source software, by making the creators financially dependent on the platform they are developing it on. I know some people use Patreon, but when you give money to Patreon, a good part gets sucked up by fees, plus you cannot get a receipt, so it’s not a real option for companies.

So if it is not about the money, and we assume that it is not about the fame, what remains? The good feeling to donate (their time to us). The good feeling to do the right thing (by creating free software, or knowledge). And we react by no feedback at all (which is bad), or negative feedback (which is worse). Remember, the one negative out of ten positive comments will always stand out.

I am clearly not suggesting to never say anything negative. Progress would be much harder if everybody would always just say nice things. But we should pay close attention to be constructive and not insulting when giving negative feedback. “Please help me understand why …” sounds completely different than “You failed to make clear …”. “You are an idiot” is a different message than “I do not agree with your opinion”. Saying “I see where you are coming from, but in my experience, things are different” will make it even easier to get a constructive conversation going.

When I got into the PHP community, I made it a habit of approaching project maintainers and contributors and thanking them for their contribution to PHP and Open Source. I am still doing this, and even though it may be just a small gesture, it seems to have an impact. Everybody working in or for charity is probably not recognized enough, so: thank you all. And: contributing to Open Source is charitable, even though the tax office does not recognize this (yet).

There is a lot of ongoing discussion about the fact that only a small fraction of Open Source users give back, and a vast majority just takes benefit from other people’s work. I can see where that argument is coming from, but I do not agree with that point. Even the fact that you are using sofware is already a statement. You invest your valuable time into building a solution based on something, that is a statement of your trust into that something.

Of course, we can argue that giving back more actively would be preferable. That could be patches, bug reports, documentation, education for others (for example by writing a blog post, or giving a presentation). How about giving back by more constructive, positive feedback and cutting back on negative comments, on words that could potentially hurt somebody on a personal level.

So regardless of whether you feel that you are already giving back, or if you feel that you have not given back enough to the Open Source community (yet): Let us be nicer persons. This is your entry level way of giving back. It’s free, and it does not even hurt ourselves. In fact, it even feels good.

I think doing this would not only help the various Open Source communities, but also the world at large. And it is so easy to do, yet so very, very difficult to start, because it may require a shift of our views, and a change in behaviour. In comparison, just throwing money at something is so much easier.

Merry Christmas you all.

Declaring a PHP Climate Emergency

The year is ~~2119~~ 2019, and the planet is on fire. What can a mere PHP developer do about it?

It is quite clear that without global political action there is not going to be a solution to the problem of global climate change, but that does not mean action at a personal level is useless or unwarranted. Political solutions will also lead to personal changes, and getting ahead of the curve does not hurt considering we are pretty late to the game.

There are a few fronts on which everyone can have an effect. Personal consumption, politics and advocacy, and funding carbon offsets.

Personal consumption

Using carbon calculators like myclimate‘s (fairly simple) or carbon footprint‘s (if you have time to spend) you can check where you can have the most impact on a personal level.

Household heating and energy expenses are fairly tricky to fix depending on your situation. If you don’t own a single family home you are most likely out of luck when it comes to heating, but you can perhaps at least find an electricity provider which offers renewable energy.

Food is a kind of easy one where reducing red meat consumption is the biggest winner, going vegetarian is probably better but more challenging so take it slow. Reducing is still better than doing nothing. It took me about 10 years to go from an omnivore diet to eating meat once every few months now. If you slowly adjust and learn to cook and enjoy other foods you end up not missing it. You can still enjoy it once in a while and actually then enjoy it properly, instead of having a meat fest at every meal where it is so normal that you don’t even notice.

Travel and mobility in general is also something we can fairly easily impact. Nobody forces you to go across the world for a week of vacationing on a fancy beach. After reading the rather disastrous IPCC report in late 2018 I wanted to stop flying, and mostly succeeded this year with lots of train rides, refusing to go to a few conferences which were too far, and one flight which I could not avoid due to scheduling constraints but ended up offsetting instead.

I can see this unfortunately does not apply everywhere, but trains are a good option in Europe. You can get work done, watch a movie or enjoy the ride looking out the window. All without the stress, strip searches and queues of airports. It takes longer and is often more expensive, but the cost of plane tickets is unrealistically low if you consider the environmental impact, so until governments fix that with appropriate taxes we have to be the grown ups.

I think something to keep in mind is that not every holiday has to be an instagramable beach in Thailand or whatever the latest trend is. Exploring your “backyard” is great too, most countries have beautiful places to see if you get out in nature a little. Go check out the nearby forest or tiny river, it will most likely soothe the soul all the same. That should be the point of taking time off, not posting travel-envy nonsense on social media.

Similarly, when it comes to consumerism i.e. all the other stuff we buy, there is probably no easy fix, but one thing we can try is turn off our phones and social media a little. Look your loved ones in the eye instead, have a conversation, go for a walk, hopefully all this will help fill the gap we’re trying to fill by buying lots of junk and piling it up. You most likely don’t need every latest gadget, a new OLED 3D+ 8K 80″ TV, or a big SUV to drive around town. If you need to spend cash that bad spend it on carbon offsets instead to pay for past environmental sins.

Politics and advocacy

Step 1 is fairly simple: Vote. Please don’t waste away your voice. Vote for the candidates/parties who will most likely enact environmentally responsible policies. The most radical agenda the better, because even if they win that will most likely get watered down. You may not agree with all of their policies, but I would argue that whatever your pet peeve issue is does not matter if the planet becomes an unliveable hellscape.

Fixing the environment is the top priority. Only then will we have enough time left to enjoy arguing about other political issues.

Step 2 is to spread the word. Find your audience, find who will listen to you. Even if it’s only your family and friends, just tell who will listen. Make sure they vote at least, and if possible help them change their personal behavior too. That’s what I am trying to do here, and I hope I can have a bigger impact this way than chatting up my grumpy uncle at Christmas’ dinner with the family.

Finance and offsets

Carbon offsetting is in a nutshell giving money to projects focused on taking carbon out of the atmosphere. That makes up for some of your CO2 emissions. Clearly not everyone has money to spend on this, but I would imagine most people reading this do. Developers overall are rather well paid and we should use this privilege and opportunity to help out where we can. Some of the calculators I mentioned above can help you figure out how much to give to compensate for your emissions.

I decided to give $1000 this year to a variety of projects to maximize the odds that it does some good. It’s way more than I would be “required” to pay to offset my emission this year, but I am happy to start making up for the past years flying around to conferences all over the place.

The way I see it, as long as governments do not take this seriously enough, my tax money is not being spent where I want it to, so doing this is like adding some environmentally-focused tax on my income and making sure it goes directly to climate action.

Resources

  • Awesom.Earth is full of resources revolving around climate change and climate action.
  • ClimateAction.tech is a community of tech people trying to engage themselves in climate action, in case you want to try and apply your skills to help out.
  • World Scientists’ Warning of a Climate Emergency If you still need convincing that it’s time to act.
  • Article about the IPCC 2018 report This also described a landscape in 2040 which sounds pretty bad. 2040 sounds far away, but is also not that far. It’s in 20 years. If you are in your 30s or older you may remember when The Matrix came out in the theater, that was in 1999, which is 20 years ago, yet does not feel all that far away. This is all coming for us faster than we think.
  • The Planet is Burning – a more romanticized version of climate change and its broader context seen as the Pyrocene, or the Fire Age.

Thanks for reading, and much like you should do whenever you edit a file, let’s try to leave this planet in a nicer state than we have found it in.

Finding Growth in Community

No man is an island entire of itself; every man
is a piece of the continent, a part of the main

John Donne wrote those words nearly 400 years ago, yet somehow people still don’t heed them. We like to think we’re self-made and independently grown – I even used to claim to be a “self-taught PHP developer” in my bio. It’s funny how we manage to convince ourselves that we have done it all on our own with little help from others.

The reality, of course, is far from this – all of us (yes, that includes me and you) are a product of the community that we inhabit and an amalgamation of all the people who have influenced us over the years. There is no escaping this, but what are we to do about it? What does this have to do with writing code? Is it enough to just acknowledge the state of affairs and move on?

Perhaps, but maybe there’s a better way.

Finding your People

If the people around us are such a large part of what shapes us, then would it not make sense to surround ourselves with people that can help us grow? The answer should be clear but that doesn’t mean it’s easy to know where to look.

Luckily for us, plenty of active communities already exist within the PHP (and broader tech) world – many of these are online communities, while others include in-person meetups in hundreds of cities around the world. I encourage you to seek out people and groups that can help you grow – a quick internet search for a community focusing on your preferred language or platform will turn up plenty of useful information for you.

Of course – that’s often easier said than done. Finding a group of people that you genuinely connect with can be tough, but believe it or not, you’re not alone – plenty of others feel the same way and if you just take a chance by stepping out of your comfort zone, you’ll find many others in the same position as you.

Growing Together

Once you have found a community to which you feel connected and where you find value, start to dig deeper. Get to know more people – connect with them outside of the context of the community itself and make a few new friends. You’ll be pleasantly surprised by how open people are to making new connections.

You can even contribute to your community to help it grow – I can say from years of personal experience that this is the absolute best way to see long-term and incredibly valuable growth in your knowledge, career and life experience. For most communities of this nature, there are two primary areas of contribution that are great to get involved with: organising and speaking. The amount of work that each of those involves very much depends on the nature of the community, but I can guarantee that if you start contributing in either of those ways, you will certainly not be disappointed.

Some Help for the Journey

This is all very exciting and I hope you take the leap into community soon if you haven’t already done so. In order to help you on your way, here are some online resources that will help you out:

  • The CMX Hub blog – an excellent resource of community materials and content to help you get the most out of your community.
  • The CMX Hub Facebook page – lively social interactions with people involved in community all over the world.
  • The Community Signal podcast – excellent content and interviews with community professionals all over the world to educate and inspire you.

And a few books for each stage of your community journey:

No man is an island entire of itself; every man
is a piece of the continent, a part of the main;
if a clod be washed away by the sea, Europe
is the less, as well as if a promontory were, as
well as any manner of thy friends or of thine
own were; any man’s death diminishes me,
because I am involved in mankind.
And therefore never send to know for whom
the bell tolls; it tolls for thee.

“No Man is an Island” – John Donne

Slices of my life.

Over the years, life taught me an important lesson.

Slice 1: Several years back, I always finished my meals with curd rice and I remember declaring after a fully satisfied meal that I can never live without curd rice. As a South Indian, it was not uncommon to find the curd rice an indispensable part of my life; after all, we had it for lunch and dinner – twice a day – almost daily. But due to a curious turn of events, I turned vegan and I lived without the curd rice for 8 long years. Today, I eat it in moderation. Life showed me that sometimes what I considered indispensable was really dispensable. Cut.

Slice 2: Ever since my first job, one of the important criteria for me while choosing a job was if I had to work on Saturdays. I rejected some good offers which had working Saturdays or working second Saturdays as part of the deal. I dodged and ducked when I saw a job offer with a working Saturday, not without reason. I loved to spend time on my other interests. Not unheard of, right? But due to another curious turn of events, I worked Saturdays for about 5 years, most of those supposedly half-working days turning out to be full-working days. Life showed me that sometimes what I considered unbearable was really bearable. Cut.

Slice 3: I grew up in the cool city of Coimbatore, ridiculing Chennai for its hot tropical weather and other issues that a metro city faced. Later, I moved to the cooler Bangalore for about 9 years. By now, you must be getting the drift. Yes, another curious turn of events later, I moved to Chennai and I have been living for the past 13 years in Chennai. Chennai taught me that every city has its own merits and I have a love-hate relationship with it. Life showed me that sometimes what I considered unimaginable could become real. Cut.

Slice 4: About ten years back, I used to code in Perl. I enjoyed writing those tricky hacks in Perl that got things done super quick. It did appear a little obfuscated at times, but that is Perl. The flexibility was incredible and I had fallen for the language. Around this time, I distinctly remember a discussion with some of my fellow researchers on programming languages, when I commented how difficult it was to read HTML-interspersed PHP code. I recall adding something about how ugly it looked, blissfully unaware then, that I shall be spending several hundred hours in the future with PHP. 

So, it may not surprise my dear readers to know that another curious turn of events later, I voluntarily chose to code in WordPress and hence PHP. I look at HTML-interspersed PHP for a good part of my job. Life showed me that sometimes, I have to embrace things which I may not appreciate.

Today, as I pore over PHP code, there are times when I feel that it is not as ugly as I earlier thought it was. So, I cannot help but think that all along – in giving up something I loved, in taking on something I did not wish to, in seeing the merits of something I did not like, and in embracing something which I did not appreciate – life has been trying to teach me an important lesson, that everything has a place in life and I should reserve judgement.

As we prepare for the festive season, let us embrace all that life offers, whether we appreciate them or not.

From ideas to WordPress

I’m a software developer from Benin Republic.
I have been coding since 2017 with languages like HTML, CSS, PHP(WordPress), JavaScript.
I have worked on different projects and built lots of cool stuff that you can check on my GitHub.

How everything started?

Everything started when I got my first job as a developer at ORION ORIGIN : a team of nice people, who build amazing premium plugins and themes used by people and developers around the world. I was tasked with creating plugins.
At first, this was challenging but I found a way around it. I built WordPress plugins and also provided support for them.

Along the line, things got easier, so I started working on personal projects, one of them is called : HomeScript and I have built lots of cool WordPress plugins under these name that you can download on my WordPress Profile.

Let’s talk about WordPress.

WordPress is a Content Management System (CMS) that is powered by PHP and MySQL. Developing with WordPress means you have to be grounded in PHP, understand OOP concepts in PHP, understand WordPress hooks ( add_action and add_filter concepts ) and how they work. All these knowledge must be acquired by a developer. So I dare say that being a WordPress developer doesn’t make you any less of a developer. 🙂

Why WordPress instead of other CMS?

This choice was based on my job, the choice is based also on the fact that setting up a website with WordPress is easier than setting up with Prestashop or Drupal.
This motivates beginners who want to learn to code and do not want to kill themselves with all the different languages.
Many developers have created lots of plugins, that are helpful when you want to easily create your website.

Also, WordPress has a very large active community of developers that are always there to show support and guide you on anything you might need when developing with WordPress.
This gives everyone an opportunity to be part of an awesome community that accepts everyone.

Challenges i have faced

Some of the challenges I had when I started coding are, first of all, electricity not always being available, and secondly the price of internet here in Africa is very expensive.
This is really a problem because without the internet you can’t get access to courses online.

At ORION ORIGIN, one lesson I learnt during my job is that every code needs to be optimized, I don’t need to repeat some functions into my code. The (DRY: Don’t Repeat Yourself ) concept applies to WordPress too, the ability to respect the coding standards set by WordPress .

Some recommendations

Everybody can create amazing plugins or themes that can be successful like the Conditional Discounts for WooCommerce or WooCommerce Product Designer plugin, they just need to find the right idea that adds value to someone, and the money will follow.

By searching on the internet, many articles exist and can help a lot in the process of creating and releasing a WordPress plugin. For example, articles on Medium have contributed to help me become a better developer today.

Invest in Yourself – Be an Intropreneur!

Each person is elemental. No one else is like you. Your life, times, and biology combine to give you a unique view and experience of every moment you encounter. It is your right – and depending on how you value yourself – your responsibility to develop your distinctiveness and add it to the diverse interactions which shape society. There are two phases to this process (discovery and expansion), and they should be engaged iteratively throughout your life.

Let the Discovery Begin

In the first phase (discovery) you take stock of who you are, what you know, and experiences you’ve had. Preparation is an essential component to introspection. The more you free up your mind to focus your attention, the better the outcome. Reducing the noise of your life a challenge depending on how you live day to day. Preparation might involve meditation, exercise, and clearing time to begin the inventory – admittedly a challenge with work pressure and attention-robbing demands of today’s always-on society. Going into the discovery process intentionally is key; if you admit that you are investing in yourself, this process deserves first-class status among all of the activities you undertake. Set yourself up for success with a distraction-free environment and period, at the time of day when your thinking is at its best (for me this is first thing in the morning, while my wife tends to work best in the later part of the day). If you have a system for organizing your attention and accomplishing your tasks day to day (e.g. Pomodoro Technique, GTD, etc.) this should fit in as another to-do item.

The goal of discovery is an inventory which can be validated and then used later on to develop a plan to improve what you know and experience, or to identify areas of growth. A stream-of-consciousness diary is a good first place to start and uncover what you know, what you think of what you know, and importantly, how you feel about your skills and experiences. If you are giving yourself full permission to turn your attention inward, it can be frightening to really see yourself and access the internal monologue that may have been playing subconsciously in the background (this is where I often come face to face with my impostor syndrome). External tools can help here either for initial discovery or refining what you discover; skills tests, counseling, conversations with friends or peers, even blogging can give further insight and most importantly some validation. (NB: if you are working through mental illness, trauma, or are in treatment already, you might want to only undertake this process with full awareness from your counselor. Remember to use the support systems that you have – that’s why you have them!).

Expand Your Horizons

Once you have your catalog of abilities and experiences the exercise of expansion can begin in earnest. This part of the intropreneurial journey can take many paths. Which path one takes comes down to personal motivation and desired outcome. I like to work backwards from an action-focused outcome. For example, rather than say “I will learn conversational French in six months,” I am more motivated by “I will have a basic conversation in French in six months.” For a PHP developer looking to modernize their skills, rather than say “I will learn TDD by [some date],” they might say, “I will deliver an app in the next six months using TDD.” Language – the language we use for intentions – matters! It is also important to step back from the goal and put into place a system for measuring progress. The SMART framework can be a valuable approach, and depending on one’s level of discipline, it may help (or be outright vital) to be accountable to a friend or colleague, or to use a motivation app (there are literally dozens out there) – this may be more comfortable if you are struggling with impostor syndrome or other forms of crippling self-doubt (there are literally dozens out there).

The wonderful thing about the intropreneurial process is that even if you fail to complete the goal – or to really work on it at all – you are regardless left with valuable insight into who you are, what you can achieve, how you set goals, etc. Lean into that insight at the conclusion of your timeframe and use these insights as you dive back into the discovery phase. Over time this cycle can become a dependable adventure, and a review of your discovery diary entries should reveal new skills and new experiences, which will serve as further motivation to expand your horizons even more.

Each of us brings a unique mix of motivation, experience, and bias to every decision and situation we encounter. We owe it to each other but especially to ourselves to focus some energy on deepening and broadening these things that make us who we are.