I did another guest post over on the 8bit network site ChurchCrunch.com and it seems to be pretty popular. It also is helping Agapage traffic a little so that is nice.
http://churchcrunch.com/how-to-prevent-your-blog-from-being-hacked
I did another guest post over on the 8bit network site ChurchCrunch.com and it seems to be pretty popular. It also is helping Agapage traffic a little so that is nice.
http://churchcrunch.com/how-to-prevent-your-blog-from-being-hacked
So I met with the Children’s minister at my church and she reported a bug with Agapage. It was a pretty simple fix. Basically her last name was something I didn’t account for, you see it consists of two words.
Example : ‘Van Hoorst’
And the filter that I had originally created was only searching for one continuous string.
Here is the regular expression before
preg_match('/[a-zA-Z\']+/',$this->last_name,$matches);
and here is what I ended up with after
preg_match('/[a-zA-Z\']+\s{0,1}[a-zA-Z\']*/',$this->last_name,$matches);
I also trimmed any trailing spaces afterward just to clean things up.
-later
jared
So I have been pretty quiet about it for the last couple of months, but I have a new venture coming out that I believe will hopefully make a few waves. In looking at ways to better my customer support, I happened across a sweet chat widget called Olark.
Basically the widget sits in the corner of your site (like most do) and allows anyone who visits your site to chat with you via a standard IM client (iChat, Adium, Gtalk, etc…). It will hopefully help keep current customers happy, and maybe convert a few people who would otherwise have clicked away.
At this point you may be asking “Well what makes them better?” and I could easily say that what makes them better is;
But I won’t. Because that is not what makes them better. You see, what makes them better in my opinion is their awesome customer support.
It began with a follow-up question. Now to be clear, I had visited Olark.com, clicked in their very own Olark widget, running on their very own site, got no response, so I left. I figured that would be the end of it, but then a guy named Matt shoots me the following email.
Hi – I saw you just signed up for olark.com, let me know if there is anything I can do to help
-Matt
Awesome! A dialogue has begun.
So our correspondence went on for several days. And it could have been awkward, it could have gone bad, but no, Olark’s group have a very deft touch at helping out their customers. At one point I guess I was even speaking with one of the co-founders, and the exchange ended up going so well that he wrote.
Awesome, we definitely buy into the “smaller is better” mantra. Most of our customers are small businesses like us in fact
If you ever stop by the SF bay area drop us a line.
cheers,
Roland
How sweet is that? I seem to have made some friends!
So to sum this up, you could use Olark for all the reasons I listed above. But the reason that you should use Olark is because they are actually human beings and treat you like a person and not a paycheck.
-kudos boys
jared
I have been working on a couple projects that are hosted on gitHub. As the scale and scope of the projects grow, I ended up needing to setup multiple virtual hosts on my development machine. It wasn’t hard, but the information online that I found was fairly dated, so I created this tutorial.
This entire tutorial is done after entering the ‘sudo -i’ command which allows us to act as the SUPER-USER for the entirety of our terminal session. You’ve been warned.
sudo -i
NOTICE!!! I am aware that we could use the ‘a2ensite’ and related commands. But for the sake of understanding the entire process, I will not be using it.
1) Install the required modules from the command line
apt-get install apache2 mysql-server mysql-client php5 php5-cli php5-mysql
2) Change the directory to /etc/apache2/sites-available
cd /etc/apache2/sites-available
3) If you run the ‘ls’ command while in the sites-available directory you should see the following
lsOutput
default default-ssl
4) Copy the ‘default’ config to a site specific config. For this tutorial I am using dev.acloudtree.com.
cp default dev.acloudtree.com.conf5) Make the application directory
mkdir /var/dev.acloudtree.com
6) Open the file with an editor of your choosing. I prefer VIM.
vi dev.acloudtree.com.confThe output below is the entire file but I will discuss certain parts that we will need to edit.
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
7) Add the name of the server. This will be the name that you type in the URL field of your web browser (IE: Firefox)
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName dev.acloudtree.com ...
8 ) Point the Virtual host to the correct directory
...
DocumentRoot /var/dev.acloudtree.com
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
...9) Also make the change here.
...
<Directory /var/dev.acloudtree.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
...10) So this is what your dev.acloudtree.com.conf file should look like when you are done. Write/Quite the file and we will move on.
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName dev.acloudtree.com DocumentRoot /var/dev.acloudtree.com <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/dev.acloudtree.com/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
10a) IMPORTANT! Make a symbolic link in the sites-enabled directory
ln -s /etc/apache2/sites-available/dev.acloudtree.com.conf /etc/apache2/sites-enabled/000-dev.acloudtree.com.conf
11) We need to edit our /etc/hosts file
vi /etc/hosts
Output
127.0.0.1 localhost 127.0.1.1 servername # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
12) Right beneath the ‘localhost’ definition, add the following
127.0.0.1 dev.acloudtree.com
13) The complete file looks like this.
127.0.0.1 localhost 127.0.0.1 dev.acloudtree.com 127.0.1.1 servername # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
14) Create an index.php file in /var/dev.acloudtree.com for testing purposes.
vi /var/dev.acloudtree.com/index.php
Contents of .php file.
<?php echo 'Jared Folkins\' tutorial on acloudtree.com really works!'; phpinfo(); ?>
15) Reboot the apache2 process.
/etc/init.d/apache2 restart
16) Now open up your web browser and enter dev.acloudtree.com into the URL bar and it should work!
UPDATE: I forgot to mention that in this environment, I like to configure log files for each virtual host. This is our current dev.acloudtree.com file.
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName dev.acloudtree.com DocumentRoot /var/dev.acloudtree.com <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/dev.acloudtree.com/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
Just change the ErrorLog and CustomLog names to match the virtual host.
...
ErrorLog /var/log/apache2/dev.acloudtree.com_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/dev.acloudtree.com_access.log combined
...
</VirtualHost>Copyright © Jared Folkins
Programming, Computers, Writing, Economics, and Life
Powered by WordPress