I've been working on git.wtf from a long time now, I want a lot of things for it, but the thing I want the most is to genuinely help someone with it. This would give me the satisfaction of spending all those hours on it and knowing that made a real difference for someone.
The iterations I've done so far, I've been a little short-sighted on what this needs to be and what it actually can be. I've been focusing on building a fancy looking blog instead of a resource that helps in finding the best solution out there for all of our git problems.
So moving forward, I'm going to focus on things that matter the most by starting to build new features and re-doing some of the old systems. I already have some plans on how I can make it better but If I'm going to do this right, I'll need every bit of support I can get from the community.
To make this transition simpler, I'm going FULLY OPEN with all my plans, designs, docs, basically everything I've so I can build a transparent eco-system on how anything is done for this project and what my plans are for the future.
The first of these changes are starting a project on github with all my todo's and plans for what's coming:
]]>For most of us, Git is fucking hard!!! We make mistakes all the time. Whether is it committing to the wrong branch or pushing a development code to master or merely forgetting to add a specific file in a fix. These problems happen all the time and every fucking time we are so frustrated that we can't even remember the right solution or just don't know it.
On top of all that Git documentation has this needle in the haystack problem, where finding a solution is not just messy but tiresome to unless you already know what you need. We just don't know where to look and what to look for e.g., I didn't know before that you can actually check for conflict markers left inside code by merely running git diff --check
, or you could actually set a setting to avoid fixing same merge conflicts again and again. I didn't know these things before I started this project and I've been doing development for more than 10 years(NO I'm not a bad developer, I just didn't know them).
This is where GIT.WTF comes in, Its simply put a curated list of articles with some of the major pain points and their solutions to help you and me overcome our frustrations and do our jobs peacefully. Hope you guys will love it as much as I do.
I'm not a very creative person, but I do know my way around design and hopefully, have good enough skills to make something look good. I mean I love the minimalist approach I've been able to give for this update. I've always been a, and this represents me.
With this update, I've upgraded the stack to Laravel 5.8 and TailwindCSS 1.0. I've also done several under the hood updates, like sitemap, social tags, among other things. Even tried out an experience section, but after 3-4 iterations, it never felt good enough. I do use Linkedin quite a bit, so making that my experiences section was very much logical. This way, I don't have to update things over and over again at too many places.
Here is what the website looked like previously:
Also, this is the current homepage:
As you guys know, how important Khurafat is for me and not having it visible on my own personal website was just barbaric, so I gave it a special place of its own too:
Hope that you guys will like this update, and please do share your feedback with me.
In the end, here is a little walk down memory lane:
Corporate world understands this, that is why they fix working hours So that the employees can call it a day at five and head home to their loved ones, they also encourage you to eat healthy, some offices also have a healthy menu for their employees. They do want to suck out every last piece of energy you have by extending your work hours in the name of client meetings and deadlines, but they understand the concept of the fat goat. If you have more energy, they will be able to squeeze you more.
I don't say all freelancers are like this, some of us do follow our own rules and stay disciplined but most of us, let's be honest, are lazy, fat, and undisciplined. Some of us work all night and sleep the whole day. Living a lifestyle like this does make us more productive for a short period but in the long run is unhealthy.
Just like the title of this post, we should stay foolish enough to try new things, new technologies, new ways of doing what we do, that is what keeps us apart from 9-5 workers, keeping us creative enough yet allowing us to experiment with new ideas but it should not be at the cost of our health.
I've been a freelancer for last decade, I've tried all sorts of timings like 2-9, 9-5(AM), 6-2(AM) and what not, I've worked in the corporate world (ON Contracts), startups in home offices, coffee shops and even from my Bedroom. They all work okay, at first but after a while everything fells apart and I end up sleeping all the time or hating the place I'm in. Whenever I get back to the 9AM-5PM schedule, I'm never sleepy; I never get tired quickly, I'm able to focus more, be more productive and still able to give sufficient time to my family.
We, freelancers, are creatures of habit and whatever we do we always end up making the same mistake. So I do also end up with bed timings after a few days, It's just a terrible habit that is very difficult to lose, but we must try, be more disciplined, healthy, even punctual, not only for us but for our loved ones too. So please try!
There is no sure short method of being fit & healthy, try out a bunch of things, you will surely find something that works for you, but do follow the 9-5 schedule and when you do find something, do let me know, I'll add it to the following list.
As developers we often tend to look at things technically and how they can help you build something. The joy of building something meaningful is why we choose Laravel over any other Framework.
The problem with this approach is that this is not enough for your Clients or so called Management. They just want to use the latest buzz word so it looks good on their presentations / reports. They don't know the pains of being a developer and honestly, some of them don't even care.
We need to tackle this problem differently.
We need to explain, more importantly reason with them:
Now that you understand the problem, it's time to take appropriate action over it.
You must understand there is no magic phrase that can compel your clients or management for using Laravel. I've been fortunate enough in convincing my clients for Laravel but their have been times where it was a very close call and a few times I did Fail too.
Although, there is no single way of doing this but still their is one thing very important that will actually help you in great lengths i.e. being a great listener. Just like being a great listener is good for your relationship with your partner, it's also good for your partnership with your clients/management too.
Then just relax and listen to everything they have to say and take note of things that you can use later for explaining how Laravel will help e.g.
There are so many ways Laravel helps us in quickly developing our application that if we can just explain a few of them properly, they will agree with you and may even understand why we love it.
Mostly by following the above steps you yourself will be able to come up with points you can make for explanation but if you are short on them, you can use any of the following:
Explain and show examples how you or your team will be able to build more using the pre-build features or the extensive range of packages made available by Laravel Community
You can show how Passport & ApiResources combined can help in building API's in days instead of weeks, or how using Cashier can have you up & running with complete billing system within a day, or how Mail can help you setting up important emails for your users in matter of minutes.
Your client / management always have to prepare for the next thing even before you start your development and having some assurance that scaling the team will be easy is a great thing for them.
Explain how all the features in Laravel are optional and how they come batteries included. Explain them how you can simply chose to use sync
in local environments, beanstalkd
for development and RabbitMQ
for production environments, or can integrate any other queue service provider very easily for higher scalability. It can be done mostly by just editing a config file and on top of that most of these drivers come with best in the market paid options & also with free options which also means saving money for management or your client.
One of the best things about Laravel is that it has a great community that is willing to help new commerce up-to speed and get the best out of it. This has been a big reason for Laravel's success and it's developers too, so you can simple say, whenever I get stuck I'm sure that there will be someone who can help.
There is not secret sauce for getting your client to believe in you and just trust you blindly, you need to be reasonable enough and see things through their eyes. You must understand what is it that they need or are worried about the most and propose Laravel as a savior. This has worked for me through my many ventures and hope will also workout the same for you too.
]]>So understanding the tech, it's purpose and why it's beneficial instead of blindly relying on it is very important. Mostly these discussions are on several different topics but some of them keep popping out a lot like why not NoSQL, why not MicroServices or why not X? All I can say in these situations is IT DEPENDS.
Most of these technologies are quite great at what they do. I definitely don't say that they are bad or you should not use them. Even sometimes they should be the only choice. But again all these things depends on the kind of infrastructure you wanna set up and more importantly the kind of setup that is actually needed.
Because of all these reasons, I've started to curate a list of great articles on these topics or in a more accurate sentence, articles on "Why Don't Use X?". Hopefully, these will be good enough for explaining all this and most importantly one would be able to take the right decision.
]]>One must feel the high's and low's to understand how many colours life has. There must be something meaningful to comprehend the value of life. We often think of life as a luxury that we can't afford and work our ass off to achieve, to acquire and to show off these unmeaningful goals. But there is always more to life, something that cannot be measured.
A goal of life is something you must have of your own and not the one that somebody gave you. It must reflect something that you truly enjoy doing and something that brings an inner happiness to you.
For some people, it's as simple as their family, and for others, it's doing the impossible, for me, it's building and creating products. For me, launching a new product gives me a great satisfaction, it gives me a feeling of a creator and an artist, who spends days in transforming his ideas into his masterpieces, who feels proud when they make even a small difference for someone. That's the feeling that keeps me going.
Today, I'm setting my goal to create a 100 products, i.e., website, platforms, or apps for the world to use. My goal will be to make them useful to as many people as possible and to have them available for free to some extent so that everyone could play around with my masterpieces and make me proud.
It is going to be very difficult, as creating a 100 products mean months of efforts, but I'm certain I can do it, and I will do it.
I will also try to do write-ups of these products and link them on my projects page, to keep you all updated on my progress. And if you have an idea you want me to work on, then, please feel free to contact me. I will certainly be doing some pro-Bono products. So please shoot me an email if you have anything in mind.
]]>It all seems like a dream come true for some but trust me when I say this, "it's not." We do enjoy the freedom that a freelancer gets, but with all good things, there is always a catch. With all the great things that come our way there are equal evil things too, and sometimes they get insanely frustrating.
Just to list a few of these frustrations:
and the list goes on and on...
It's not that you always get these kind of clients who are never happy. There are times when you get very good clients too, who are prompt of solving issues and puntual on payments. I've been lucky enough to work with a lot of clients like these. It's just that from time to time you get stuck with bad clients and there just doesn't seem to be any limit to these frusturations.
]]>Check it out here. If you need some help, just tell me here.
]]>So leaving the past behind, this is my another try and hopefully the final one. I plan to keep this one alive for the rest of my life and would love to hear from you as a reader or writer, how you started your journey? How did you overcome your fear? And what was the primary motivation that inspired you to do it?
I know the title of this blog post is a bit misleading but whoever has come down here is looking for the same push I have been searching for, the same kick that needs to get us off the ground and get started. If you ask me, there is no one answer; you just need to find it in your heart and make a strong determination to commit to it.
For me, it was a long day of discussions about the future and a mix many other things at the office and just made me say "F**K IT.. LET'S JUST START IT!!" and here I'm writing my first blog post in the back seat of a cab on my way home.
]]>