PHPNews

Logging Without a Static Logger

How do you organize logging in your applications? I mean web applications or command line apps, or even mobile apps. I bet you have some global variable or a singleton, known as Logger , which has a few methods like info() , error() , and debug() . You configure it when the app starts, or it configures itself via …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday March 19, 2019


How Data Visibility Hurts Maintainability

I’ve been writing so much about object-oriented programming and its pitfalls , claiming that most of the design patterns and “good practices” which we are accustomed to are actually wrong and hurtful , that I totally forgot to explain the bigger picture problem. Someone asked me some time ago in the blog post …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday March 12, 2019


Why I Want to Live in Silicon Valley

You remember my blog post about Why I Don’t Want to Live in Silicon Valley , don’t you? Read it first if you haven’t already. The gist of it is that Silicon Valley is a place with a lot of troubles. No one should want to live there, according to that previous post, right? That is what many of my readers concluded, …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday February 12, 2019


Zache: A Simple Ruby In-Memory Cache

A month ago I stumbled upon a problem: I wasn’t able to find a Ruby gem which would do in-memory caching with the capability to expire on timeout. After some quick research I decided to implement my own and called it Zache (as in “zero cache,” since there is no back end). Here is how it works: First, you create …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday February 5, 2019


My Recipe Against Dependency Hell

Do you specify exact versions of your dependencies? I mean, when your software package depends on another one, do you write down, in your pom.xml , Gruntfile , Gemfile , or what have you, its version as 1.13.5 or just 1.+ ? I always thought that it was better to use exact version numbers, to avoid the so …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday January 29, 2019


10x Paychecks for 10x Programmers

You most definitely have heard about 10x programmers. The gist of this folklore is that some of us coders are very effective (10 or even 100 times more so than others), while the rest are just “normal.” It is definitely not a myth though. Fargo (TV Series, Season 3) by Noah Hawley Robert Glass in his …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday January 22, 2019


What if the Architect is Wrong?

You most probably know what I think about the architect role on a software project—it’s that of a dictator who makes all technical decisions and who bears the entire responsibility for the final result. I wrote about it and even gave a talk Who is a Software Architect? at BuildStuff in 2016. However, the …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday January 15, 2019


Hazardous Enthusiasm

On a daily basis I deal with many programmers who contribute to my open source projects, either as volunteers or for money via Zerocracy (and my software projects are all open source). Over the years I have realized that there is a pattern in their behavior, which I need to be scared aware of. I call it …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday January 1, 2019


Speaker Cheat Sheet

I speak at software conferences regularly. Over the last three years I spoke in 30 cities and 10 countries. I recorded almost all of them, you can see them here and on my YouTube channel . My principal rule is that I never give the same speech more than once. Every time it’s a new deck of slides and a new flow of …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday December 25, 2018


Why I Don’t Want to Live in Silicon Valley

Silicon Valley is a great place to be … or maybe not. I’ve spent five years there, from 2011 till 2016. I did enjoy some parts of it, but others were not enjoyable at all. Here is a quick summary of what’s wrong with this territory. I can’t speak about the rest of the United States since, even though I’ve seen some …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday December 18, 2018


Unit Testing Anti-Patterns, Full List

I wrote some time ago about anti-patterns in OOP . Now it’s time to write about unit testing anti-patterns—because they also exist, and there are many. I will try to include every example I know in this list. If you know any others, please add them via a pull request or post a comment below. For each anti-pattern I …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday December 11, 2018


You Can Do Better

OK, it’s time to publish this piece. I’ve been dancing around it for quite a while, telling you how to make more per hour , how to manage those stupid managers that don’t let you grow, how to boost your career and how to deal with office slavery . Now here is a simple, plain list of recommendations for you: what …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday November 27, 2018


Tech Journalism Sucks

This July, just four months ago, I submitted an article to InfoQ , a popular online tech magazine. In the article I suggested that in order to improve our projects we must not make programmers worry about the quality of code they write, but instead let them focus mostly on the speed of delivery. The quality, I argued …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday November 20, 2018


Beware of Bigotry

Bobby Fischer , the eleventh World Chess Champion, was one of the best chess players of the last century. Did you know that, along with anti-Semitic statements , he also said that women chess players “aren’t creative and are all fish”? Did you also know that he publicly described the 9/11 events as “wonderful …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday November 13, 2018


Do You Test Ruby Code for Thread Safety?

Are you a Ruby developer? If you are, I’m pretty sure you have a very vague idea of what concurrency and thread safety are. No offense, but this is what I’ve figured out after dealing with Ruby code and speaking with Ruby programmers over the last half a year. I’ve been writing in Ruby pretty actively recently and I …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday November 6, 2018


Don’t Make Me Guess

It’s Sunday. I’m at home, drinking tea and writing a new document for one of our future investors. One of my contacts in Telegram all of a sudden shoots me a message. I haven’t talked to this guy for at least two months. He is a software developer. I know him because he works at Zerocracy . His name is Paul. …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday October 16, 2018


You Think You Can Control Us?

I was explaining how Zerocracy works to one of our prospective clients yesterday. He texted me today: “[At Zerocracy] there is no commitment and anybody is free to leave any time, so the risk of entrusting a highly important project to such a platform and failing to deliver it on time is very high. We will develop …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Tuesday October 9, 2018


Software Quality Award, 2019

This is the fifth year of the Software Quality Award . The prize is still the same— $4,096 . The rules are still the same. Read on. Previous years are here: 2015 , 2016 , 2017 , 2018 . Fill out THIS FORM to submit your project. Rules: One person can submit only one project. …

Continue reading »

Written by Yegor Bugayenko - - Aggregated on Sunday September 30, 2018