Your Ad Here

cac

Monday, October 29, 2007

Starting with minimal functionality and html

Since php is mostly embedded in the html, helping to structure the flow of the process, I have arrived at the conclusion that I should start off with some simple HTML and then build the functionality described in my earlier posts.

Later on I will add CSS and more HTML to make the site look neat. I still have not signed up with blue host. I have my own little webserver on which I can try out the basics. I tried to check out the free ad-free hosting at x10hosting. But there are too many ads whenever I try to do anything. And as soon as I install a simple CMS with fantastico, there is not enough space or memory for it to run. What a rip off!

Wednesday, October 24, 2007

Starting to learn php

Now that I have a handle on what kind of web hosting service to use, and a rough idea of the page flow, I need to figure out how to code it. While stumbling I ran into an attractive form builder called MachForm. I am not sure if I will use that. It allows you to pretty quickly build forms and store info in mysql.

From there I found that they use shareit to manage their payments. I will probably use pay pal initially if needed and later switch to credit cards if the volume demands it. I also found that the bbpress software they use is amazing in the cleanliness of its interface. I downloaded bbpress and checked out the php code.

Essentially this is what I have concluded. Most web pages are just html. The PHP tags in the html can be used to generate html dynamically. The php program can be independently complete.

Tuesday, October 23, 2007

How the temporary storage web site will work

For the sake of convenience let’s call my future website amujo.com. Amujo does not mean anything. It is just a name I have chosen for convenience.

Many web hosts provide the facility to have unlimited sub-domains on my domain. This prompted me to initially consider dynamically creating a sub-domain for each user who registers. So if the user fcr logged in and uploaded files, they would go to fcr.amujo.com. His family and friends could navigate to fcr.amujo.com and simply download the files. I later found that on Linux based web hosts, it is not possible to programmatically create a sub-domain. It is possible on Windows based web hosts, ironically. I would have to go through control panel. Obviously, I will be unable to do this for all users who login to my site.

In a way that saved me some time. I don’t have to worry about getting that working now at least. So basically if there is a public_html folder, I suppose each user’s files will be stored in www.amujo.com/public_html/storage/username. The storage directory will be aliased as upload.amujo.com as well as download.amujo.com. In order to upload files, the user will have to be registered and logged in. Once logged in, the user will be able to see

My upload history

Upload files now

Upgrade to premium account

etc.

Upon selecting the “Upload files now” option the user will be taken to a file upload page. Here the user will be asked to click on browse buttons to select files to upload. I think that I should have a file uploader program that will take care of uploading the files in the background. That leads me to ask, why doesn’t Firefox come up with a standards based background uploader that includes the ability to resume broken uploads?

Once the user has uploaded his files to his slice of my website, he can get a link to send to his friends. He can also get this link from his upload history in case he loses it. I am debating whether amujo will send email because of the limit my web host might have. On the one hand, it is a simple matter for the user to copy and paste a url to send an email. On the other hand, it is far more convenient to receive an email which he can simply forward. I guess I will go with the email option and see how it turns out.

Anyway, when the family gets the email, they will just click on the link that says download.amujo.com/username/file1. This begs the question, what if multiple files were uploaded. I could have the email have multiple links to file1, file2, file3 etc. Or I could have the link in the email be download.amujo.com/username/IALDJ33-AVJAER039, a key that will display only the files that were uploaded with one submit session.

What if the user who uploaded is a premium service member and wants his files organized in folders? This means I have to provide the ability to manage uploaded files in an explorer like interface (only for premium users, I would imagine, although I need to see if everyone should have this ability).

And if this premium user wants to distribute a specific subset of his files, then should the downloader be allowed to view and download all his files? Obviously that should not be allowed. So the interface should allow the uploading user to drag and drop a bunch of files into a sharing bucket. This bucket will provide visibility to the files in this bucket only. This bucket is what will be sent to the family and friends. When they click on their link they will see the bucket called “Google acquisition presentation” or “Trick or treat photos” with only the files that belong to that buck.

This bucket feature need not be restricted to premium users. All users should be able to create buckets of files, the link to which is what they will send to their friends. The downloader can then have access to the bucket he needs to access. Access to view the contents of the bucket will be via the complicated key in the link. I am yet to consider if the downloader needs to be a logged-in member. The advantage of having the downloader log in is that the uploader can choose who will see the contents of his shared bucket. Perhaps it can be a combination. You could either have the key in the link, or be authorized to view the bucket.

Factors in choosing my web site hosting service

Basically the business is a website that provides temporary storage space for files. There are times when you want to quickly distribute files to your friends or colleagues. For example, you are about to go into a meeting and want to have all the participants see a spreadsheet, but you don’t want to email it to everyone. You could quickly upload it to my site and it will stay there for your friends and colleagues to download. You might want to send your photos to your family far away, but you don’t want to use a photo hosting site because they don’t allow you to download your photos at full resolution. You could upload the pictures to my site and have your family download it.

The deal. The files will basically remain there for only a few days. The default duration when you select an upload will be one or two days. The other choices would be one week, two weeks, and a month. To keep it there for longer than a month you would have to pay like 10 dollars a year.

Pricing. By default you will be allowed to store 1 GB of files for free. If you have a premium account you would get 1GB for $10 a year. Other choices of premium accounts would be 3GB for $20 a year, 5GB for $30 a year, 10GB for $50 a year. Of course this does not consider transfer rates. I don’t know what kind of limit to place on that if any. It may not be needed.

While my plan currently says I will have premium accounts, in reality I might not have premium accounts. I might leave everything to be free and have a 1 GB limit. I am undecided on that.

Limitations. I have been considering various website hosting companies. Many of them offer 300 GB space and 3000GB transfer per month for around $8 per month. While this may sound good enough I cannot know what the caveats are. For example, reading the forums of these sites I found that just about everyone limits emails to no more than 50 per hour. Upon special request it can be increased to 500 outgoing emails per hour. That’s the top limit. I don’t anticipate having to send that many emails. If I do reach that limit, it is probably a good time to upgrade to a more expensive dedicated server account anyway. But the fact that worries me is that they do not mention this “50 emails per hour” limitation in any of their feature lists or Terms and Policies. What else are they hiding that may harm my business?

Concerns. Another fact that causes concern is that if the website has a high CPU utilization then the host will turn off my website. That would be a very bad time to turn off the website. And there is apparently no way to know how much CPU my website is using. Based on the business model I have, I don’t anticipate the CPU load being too much either. Most of the load will be on the storage space.

Learning PHP. Since one of my main aims in having this web site is to learn PHP, I will be looking for a host that supports PHP 5. It looks like many web hosts still only support PHP 4. Apparently there have been great strides in performance improvements and security enhancements from PHP 4 to 5. PHP 6 is on the way and php.net is discontinuing support for PHP 4 at the end of this year.

So essentially if the site is good for the storage and transfer rates they promise, I should be good to go with one of these web hosts that provide plenty of storage for $8 per month. This is for linux based hosts only btw. I will probably go with bluehost.

Want to get into a web site business

I have been thinking for some time to start a simple web based solution. I have had many different ideas over time. I recently decided to settle with a simple solution. I have been debating whether I should disclose this idea on a blog. This will probably allow someone else to steal the thunder.

It may not be such a bad idea for someone else to steal the thunder. I don't have a business plan yet, but I downloaded FreeMind and conjured up some mind mapping relations on how to deploy it and how to price it. It may be unlikely to earn much money with this without putting in much effort. But I want to learn how to use php to build complete web sites. So hopefully at the end of this I will have learned PHP.

I will soon disclose on this blog what the idea is and how I plan to implement it. And I will also share the methods I will and have been trying to use.