sudo chmod u=rwX,g=rwXs,o=rX -R path/to/folder
sudo chown www-data:www-data path/to/folder
sudo adduser username www-data
If you've ever ran into a problem where your web app/server (Apache or NGINX) cannot read or write from a web folder (user upload directory), it's probably because of the file permissions. Unfortunately most people recommend setting it to 777, giving full access to everyone. Even some of the top answers on Stackoverflow recommend this. Let's see why this is a bad idea, and what's the correct way.
To see why 777 is dangerous, we need to understand what's happening. It's giving read, write and execute access to owner, group and public! Let's imagine a common scenario. You have a PHP app that lets user upload to http://website.com/uploads/their-file. They upload a PHP file, virus.php, to http://website.com/uploads/virus.php. They visit that page… You're dead, because you've given execute access.
I'm assuming you're familiar with chmod format. There are 2 letters which you might not be familiar with.
X with a capital, means give execute access to directories, but not to files. This allows you to perform
ls, but will not let you execute any script or program.
s is a sticky bit that causes new directories inside to have the same owner. Useful when creating a new directory under a different user e.g. cron or ssh. In this case, we want new directories to belong to
www-data group so that NGINX can access those files even if it was created by other users.
And of course remember to add your user to
www-data group so that you will be able to access them through ssh or cron.
Have a launch party? Or maybe a birthday party? Or even a wedding anniversary or company party. You'll want to capture beautiful and fun moments to be remembered and shared. It takes patience and quick reaction to capture fun moments. That takes experience. Take a look at some of the events I've shot.
Per HourProbably the most common way to charge a project is by the hour. Often the rate decreases as the hours increases. Usually to give a more competitive price and also because they save time. The downside to this method is that cost can exceed your budget if the time required increased. This is a bad approach for uncertain projects.
Additional CostWhy do some projects cost more even if the duration is the same? Some projects require strenuous effort, more risk or addition cost to the freelancer. This cost would be factored into the rate they charge.
Minimum CostSo you think you can hire someone for 10 minutes and pay much less? Tough luck! Some will reject without a beat, some might impose a minimum time, some will simply start at a much higher rate than they usually would when working for many hours.
Fixed AmountHaving a fixed amount both parties agreed on can be a benefit to everyone. Or not. When a fixed price is given, the freelancer would not charge more or less than stipulated. This means that if the project overruns the estimated time, the freelancer loses money. On the other hand, if the project completes early, the freelancer get all the profit. The advantage to this approach is the predictable cost.
Break Down CostBig project can be very expensive. Feel free to ask the freelancer for a break down of the cost to see where all the money is going. They should be able to provide this easily because they should have done the break down when estimating the cost.
Which Do I Choose?Well, you don't really get to choose since each freelancer has their own preferred method. But if you don't like taking risk, go for the fixed amount.
Go to online photography communities
Passionate photographers love sharing their work and getting inspiration from like-minded people. In addition you get to see their artworks and what people think of them. They actually use it as their portfolio! Some popular communities are Flickr, 500px and Behance. This is where you find the cream of the crop.
Use Instagram, Tumblr, Pinterest or any Social Media
Everyone knows that these few platforms are filled with pictures. The good thing about Instagram is that they allow you to search for photos taken near you i.e. in Singapore. Tumblr and Pinterest are also platforms that are frequently used by photographers to reach out to bigger audience. Slide into their DM!
Magazines, newspaper, blogs and posters
Photographers who have made their mark are often seen on bigger media such as magazines and newspapers. It's quite a common practice to credit their photographers by placing their names below the images. Simply google their names and you'll find the portfolio. Don't neglect blogs as their often very easy to search.
Everybody these days need photographers, whether it's for a passport, birthday event or company outing. You'd be surprised how many people have had their photos taken professionally. Best of all, they can vouch for the quality of service. Don't limit yourself to your social circle. If you see any photo you like online, ask the person where he got the photographer.
What a win-win situation. You give them job experience and the give you better rates. Be cautious though. Young photographers might be inexperience and might not be able to provide you the quality your desire. Some places to look for are polytechnics and ITEs since the students there often have more hands-on experience.
If you're looking for a professional photographer, look no further. I'm the guy you're looking for. Contact me now to book an arrangement.
Now let's take a look at Angular. The graph shows version 2 and above. Overall we're seeing a downward slope. Angular has been losing grounds to Vuejs and Reactjs for it's simplicity and speed. Angular is best suited for large applications, like the Java of JS world. It's already used in many large applications so don't expected to go away anytime soon.