I was having a conversation with someone over the phone about ColdFusion and I received a pretty surprising comment, “ColdFusion, is that still around?” Jokingly of-course, but you would be surprised at how much ColdFusion still exists in today’s web world. Lots of people think that the web changes so quickly and that the evolution of the web is so hard to keep up with.
Iterative Computer Trends?
The computer world has followed some very basic and the same principals for over 30 years now. We just tend to re-name, re-brand, and coin new terminology to existing practices. For-instance, “cloud” – We have been using cluster-based servers since even before the internet, that’s how the internet came about in the first place.
We do the same with design. When new age design becomes too much, we tend to look into the past to fulfill a circle of re-design. Look at Windows 8 Metro Theme.
ColdFusion for Freelancers?
I just recently got another project, and guess what, it’s in ColdFusion. I know that I’ll get a lot of grief for making this statement, but ColdFusion is still a very applicable and useful language. It reminds me of PHP and Python in ways, with the exception of the CFML syntax. But, the second you switch into CFScript mode, you are literally writing C style ColdFusion without the hassles of tightly strict variable and object control such as you get in your C#, C, and Java. In addition, there’s a lot of ColdFusion work that freelancers do not feel comfortable with touching. Mainly, I feel, because people think it is foreign. Not true, all the programmatic concepts are exactly the same as other languages.
Open Source ColdFusion?
Here I am loading up the Open Source CFML interpreter called Railo to install Mura CMS and build a quick parallax website. I can basically load CF locally via Railo, skip the thousand dollar Adobe costs, and get right to work in a CMS that is open source, just in a different world. I can use MySQL, PostgreSQL, or even MariaDB for the backend. Load up the CMS and get to work with my Front-End interface design.
Yes, you can create new age websites using what seems to be “old-age” technologies. What an odd concept.
At the end of the day, you have your interpreter, your database, your replication and scaling (operational), and your wealth of CFML documentation that is extremely strong. And all of it is OpenSource.
Where is ColdFusion today?
How much ColdFusion is out there?
ColdFusion is said to be used on fewer websites than .NET and PHP, but close to Java, and about par with Perl. With that said, the amount of traffic is equal to greater than those others.
Not surprisingly, ColdFusion is around. And not a lot of people know how to program in it. Maybe something to think about for those freelancers out there.
It’s pretty amazing these days how easy it is to back up all your personal computer data in case of the unknown: hard drive crash, computer stolen, or even worse your whole house burns up! Should something like this ever happen and you’re not backing up your data then all your captured photos and videos of your family childhood or vast collection of media will exist only as a memory. Perhaps gone is gone should the unfortunate ever happen however I’d like to at least be prepared.
This story doesn’t contain any hard drive crash drama to motivate you to back up your data. This is just a simple public service announcement to remind you to back up your data before you wish you had.
My primary choice of local backup is not very complicated, which I think is a good thing since it should be a simple process that just runs itself. For my local backups, I use Apple’s built in tool native to OS X called ‘Time Machine’ to backup our mac mini (functions only as a media server for PLEX purposes), a macbook air (wife’s computer), and my personal macbook pro. I feel good about this setup, because it felt as if I was living on the edge since I was only backing up my personal macbook pro and nothing else until recently. So, I finally invested in a couple of Seagate Expansion 5TB Desktop External Hard Drive USB 3.0 recently to get my act together and backed up all my macs wirelessly using my Apple Airport Extreme router.
Check out this video to learn more about how to configure your Mac to use Time Machine:
Now that I have all my machines backed up routinely, I’ve been in discussion with myself if I should invest in a second local backup of all my data just in case these drives should experience failure. I have yet to come to a decision since the hardest challenge for me was affording all the external terabytes of storage space to back everything up. With that said, I decided I would invest in online cloud storage first since it’s more affordable for me at the moment. It’s also said that you should have an offsite (cloud) storage solution anyway in case of a local emergency with your backups such as fire in your house, theft, or hard drive failure on those backup drives. So, even though the purpose of a local back up of your data is to be prepared for these scenarios and for speed should you need to restore, technically the rule includes to keep these backups off site as well.
The online cloud backup solution I chose was BackBlaze, because not only are they affordable at only $5 a month ($50 a year), they are fairly quick to receive my data with my upload speeds. It should be mentioned that their services includes unlimited cloud storage which made $5 a month a completely affordable option.
Also, I can only speak on behalf of my experience using BackBlaze from a Mac (OSX) perspective, however these benefits below as to why I chose BackBlaze should apply also to Windows OS.
iOS Mobile App (since I have my entire mac backed up in the cloud, even if I need a particular file deep in my file system I can use the iOS app to locate any single file backed up or multiple files directly from Backblaze servers. That itself is pretty nice! Note: I’m not sure if a Windows Phone 8 app exists, but if you have a BackBlaze installed on your Windows OS and own an iOS device, you can access your Windows files from BackBlaze cloud storage using the BackBlaze iOS app.)
File versioning (up to 30 days not continuous/forever)
There is no need to select the folders and filetypes you want to backup, which means all your data will be backed up without having to do anything. However, although BackBlaze backs up all your data there is an exception to your operating system files, applications, or temporary files. This means these files won’t be backed up: wab~, vmc, vhd, vdi, vo1, vo2, vsv, vud, iso, dmg, sparseimage, sys, cab, exe, msi, dll, dl_, wim, ost, o, qtch, log, ithmb, vmdk, vmem, vmsd, vmsn, vmss, vmx, vmxf, menudata, appicon, appinfo, pva, pvs, pvi, pvm, fdd, hds, drk, mem, nvram, hdd.
I started my first backup on May 5 and set my computer within the BackBlaze settings menu to backup my data by turning off throttling for maximum upload speeds. This translated to 58GB a day at 5.55Mbps. It took about 7 days to complete my first initial backup of 200,353 files out of 270,593 files. So, there were 70,240 files not backed up which were probably applications files, OS files and temp files as mentioned above. Now that my first backup is complete, I’ve changed my upload speed to automatic throttling that way I’m not uploading as much now so quickly.
Here’s a snap shot of what my data usage was for the month of May as result of my BackBlaze upload according to my Comcast data usage who is my Internet Service Provider. Comcast states they suspended their 250GB monthly cap, so I’m pretty grateful that I didn’t run into any issues. However, I did this to myself by setting the maximum upload of all my data with BackBlaze. If I only wanted to have 2GB a day upload instead of 58GB then this is possible within a simple little menu found in BackBlaze settings. So, at the end of the day, you should first be aware if there are any restrictions your ISP has set on your account if you increase your upload speeds like I did.
There is so far one draw back I found to this awesome backup solution and that is if you have more than one computer. If you’re like me and have multiple computers to back up then, it’s going to cost you a little bit more as there is no bulk discount feature for multiple computers at this time. So each additional computer functions as an individual license to backup each computer to the cloud. However, there are other services such as CrashPlan that offers a family plan at $9 a month for up to 10 machines, but its app is a Java application therefore is not native install to the OS and requires a lot of resources and memory intensive as a result. You can read more about CrashPlan here from actual users in the comments section.
If you made it to the bottom of this article and you’re very interested in moving forward, then here’s a gift idea I found for you. You can purchase a 1 yr license at 50% off for your first year. This means it will only cost you $25 your first year of cloud backup. This deal is only for new customers and this deal will only be available 3 days from today. BackBlaze does come with a free 14 day trial, so you can get started and try it out, but I promise you won’t be disappointed. I signed up for this discount just a few minutes ago as my free 14 day trial was about to expire tomorrow. Try to get this deal in before it expires. Even if you’re not ready to make the purchase, if you know someone who should be backing up then help them out with this gift idea. Father’s day is just around the corner and this could actually be a great gift idea. Remember, you only have 3 days starting from June 3, 2014 to get your 50% off deal.
Are you testing your new latest and greatest Mobile or Responsive site but cannot get into your network to actually test it on a mobile device? Well if you have a proxy routed IP through either a NAT or direct connection, you can always just edit the hostnames directly on your phone. Try out the Hosts Editor for your Android device.
There are tons of Cloud Services out there that you can go out and sign up for free, download, and have a blast with. Companies such as Microsoft, Google, Apple, and Amazon have all jumped on board (the four horsemen). The big innovators of the space you’ll see out there are Dropbox for personal use, and Box for business use. Of-course you can use either for whichever reason. But putting any sensitive information out on Dropbox, Box, or even Microsoft, Google, Apple, or Amazon all have their own risks. The risk is that your information is now in the web and if cracked, can leak to people you may not want to have access too. There are many cases of this happening with Dropbox, as it is one of the bigger players in the space, it gets a lot of attention.
Maybe you want to run your own cloud service? The good news, it is Extremely easy to setup! If you know how to open up a port on your home firewall, setup a desktop as a server, or potentially have a box that is suited for serving, you too, can have an extremely secured and private cloud service.
The essence of cloud simply means that you have your data and files stored in multiple places at once. If your server goes down, you can retain your information from one of your clients. Or you can setup two servers for redundancy. All it takes is a web server (Apache or IIS) that runs PHP, a MySQL database, an open port, some DNS mapping (preferably local), and a piece of software called ownCloud. Since I am a developer, this took me a matter of minutes to setup.
I will try to quickly go through it.
You can short-cut the setup using XAMPP. This will setup an Apache, PHP, MySQL setup over Windows or Mac very easily. You will likely have to add a few additional extensions in the PHP.INI file, enabling php_mbstring.dll and php_openssl.dll.
Install ownCloud server by downloading the ownCloud server from their website and selecting the TAR/ZIP version. Extract the files out to a common location that you can remember. I used C:\owncloud\ for simplicity.
You will also want to setup a new Virtual host in Apache to allow the web bindings to take place. We will just use HTTP over 80 in this instance.
Client and Server Hosts File
You will also want to configure your host records to point to your server. Pick a domain and then place it in your hosts file. In this example, the hostname is oc.ph and it points locally (127.0.0.1). This would be the configuration for the server. The client connections will want the IP address of the machine, and if you are running externally, you will need to set the IP to the address of the router and then setup the firewall routing.
You will need to add the new hostnames to the ownCloud config file located at ownCloudRoot\config\config.php
Database and Setup Screen
As long as you have all the dependencies for your PHP / Apache setup, you should very quickly and easily get your setup screen. Here is likely a good time to create a new MySQL database, if using XAMPP you can use http://localhost/phpmyadmin and create a database. Then select the database and click permissions. You can add a user and GRANT ALL permissions to that database. Use that username and password in the setup screen under DB info.
To start up your page, use the hostname that you setup: http://oc.ph – Sometimes with those odd extensions, it makes sense to type out the full URL into the address bar.
Then setup your own username and password for the admin account and you are set.
Login and View Files
You should be redirected to a Login Page and after logging in, you will see your new Cloud Server.
It’s also recommended that you install OpenSSL and bind over port 443, better yet use some other port than 443 to confuse potential intruders. Internal to your network, I would suggest having a default slave that stays on all the time. This way your data is redundant in the case of a disk failure on your server. Remember you can always use Windows 7 or Mac machines as servers. They do not have to be bulked out PowerEdges. This is just your data.
Client Side Setup
You will need to setup the host records for your clients and determine if you want this publicly visible or not. It would be the same as before, except with the servers IP address as the host.
Install ownCloud client by downloading the ownCloud client from their website and selecting from the Desktop Sync Client’s.
The setup process is extremely straight forward and intuitive. Run through the steps putting in your username and password you setup in the Server. Select a folder that will be the sync point and off you go!
I hope you liked my brief tutorial. It’s quite fun. I am experimenting with a few uses. One includes a private Cross-Over network connection linked with a external service to ensure fast replication.
The app takes a little while to sync and I would argue is a little slower than Dropbox, but it is all private and there’s no way anyone can touch the data through the private lines, which means, secure!
Can you imagine that? 1000 posts on phillihp.com. I want to thank everyone for coming to the site and visiting. Earlier this year, there was a significant drop off in content that we were providing, but from the Analytics everybody kept coming back. Thank you! If you haven’t noticed, my life is getting a bit more regular again and the posts are starting to flow a bit more frequently again. We’ll try to get back to one a day.
There are some potential and positive changes coming in the future. All pretty dependent on the free time that I have. Keep checking back.
There comes a time when Amazon Web Services gets extremely expensive or even unusable for your websites needs.
If you look out in the world of websites that are out there, it has been guestimated that over 70% of all websites run either WordPress, Drupal, or Joomla. Below are estimated number of websites that each of these CMS’s take care of.
WordPress: 60 million
Drupal: 20 million
Joomla: 8 million
This basically means that if you have strong programming knowledge and background across with strong experience in each of these CMS’s, you can stay gainfully employed for some time.
With all these sites, let’s say http://www.whitehouse.gov which is Drupal, you are going to deal with an enormous amount of hits. And one box alone is not going to be able to take care of everything.
That’s when we start diving into high availability and load balancing.
There are lots of different ways to balance load. Primarily you will setup two Reverse Proxies that route traffic from a number of rendering servers inside your network. You can choose between a massive database or the new trend seems to be replicated databases. Then you need your file replication to keep each of the rendering servers in sync.
That said, it’s being done every day. Once your setup, you can add or peel off nodes to adjust for load. You will likely have to tweak your file replication to get your new content up quickly. These tutorials below do an amazing job of sharing how it’s all done. Enjoy!
I have been contracting with a Non-Profit for nearly two years now and the big word in this place for websites is Accessibility. This word is so over-used and for some reason, I feel that people gravitate to this word to simply call it out.
In my opinion, Accessibility should be a standard practice of living while creating public facing websites. There should be no reason that someone with a disability should ever struggle while navigating through a website. In-fact, you are helping non-disabled individuals when making a website Accessible. It’s just Good practice!
It’s frustrating. Almost like, just make the website the right way and everyone can use it. Why do we have issues with people making websites incorrectly or not following W3C standards? It’s public, expect all sorts of different people on your site, that’s your job. Why do we have to hide behind the word “Accessible”? Better question, why are there so many lazy developers out there? If you are developing a public website, make it accessible. Just follow standards.
And use WCAG 2.0, it’s common sense:
Perceivable – Information and user interface components must be presentable to users in ways they can perceive.
Guideline 1.1: Information and user interface components must be presentable to users in ways they can perceive.
Guideline 1.2: Time-based Media: Provide alternatives for time-based media.
Guideline 1.3: Create content that can be presented in different ways (for example simpler layout) without losing information or structure.
Guideline 1.4: Make it easier for users to see and hear content including separating foreground from background.
Operable – User interface components and navigation must be operable.
Guideline 2.1: Make all functionality available from a keyboard.
Guideline 2.2: Provide users enough time to read and use content.
Guideline 2.3: Do not design content in a way that is known to cause seizures.
Guideline 2.4: Provide ways to help users navigate, find content, and determine where they are.
Understandable – Information and the operation of user interface must be understandable.
Guideline 3.1: Make text content readable and understandable.
Guideline 3.2: Make Web pages appear and operate in predictable ways.
Guideline 3.3: Help users avoid and correct mistakes.
Robust – Content must be robust enough that it can be interpreted reliably by a wide variety of user agents, including assistive technologies.
Guideline 4.1.: Maximize compatibility with current and future user agents, including assistive technologies.
That said, I just did a WCAG 2.0 check on my site and I am totally slacking on my alt tags, text tags, and title tags. That said, I could probably go in there and fix it up in less than an hour. I should. I need to follow my own advice. I will.