MAMP: Mac, Apache, MySQL, PHP

Introduction

Before my friend introduced me to MAMP (Mac + Apache + MySQL + PHP), I wasn’t really able to do much web producing commuting to work. I was limited to making site mockups using Adobe Photoshop CS2 and some basic coding, but I couldn’t actually make the pages until I had internet connection so I could upload my test site to the sandbox.

Then came along MAMP, an all-in-one application for Mac OS X that allows you to locally host a web server! This was fantastic because now I can develop, hard code, check changes, and make all the changes I want without having an internet connection. It also lets me test run PHP codes or scripts that may be unstable and vulnerable without risking the web server.

How To Install

Installing and configuring MAMP is very, very easy.

  1. Download the latest copy of MAMP from the MAMP website. After it is done downloading, double click the downloaded file to unzip the contents.
  2. Drag the MAMP folder into the Applications folder.
    MAMP Install 02
  3. Once MAMP has completed copying into the Applications folder, you can find the executable at Applications>MAMP>MAMP.
    MAMP Install 03
  4. When you start it up, you’ll notice two things will appear: (1) the MAMP admin panel and (2) http://localhost:8888/MAMP/?language=English loaded into your default web browser.
  5. From the admin panel you can stop and start the Apache and MySQL servers.
    MAMP Install 04
  6. Your default web url is http://localhost:8888/ and your public folder is located (by default) at Applications>MAMP>htdocs. So anything that is placed within the htdocs folder will appear at http://localhost:8888/. Please note that this web address is local only and others will not be able to see it or the contents even if your computer is connected to the internet. I’ve seen where some people have mistakingly thought that MAMP can be used as a live web server. No, this was only designed to allow people to work locally.
  7. To change the default location of what folder will be the web folder, in MAMP, go to the menu bar and select Preferences and then select the Apache tab. Enter or select a new location.
    MAMP Install 05

Harris Restaurant Review

For my birthday, Andrea took me to Harris Restaurant at 2100 Van Ness Ave. in San Francisco, CA. I must say this place is much more fancy than any steakhouse I’ve ever been too. You walk in here and you would expect high priced Frenchie food or overpriced American food. And the worse part in some cases, the restaurant looks better than the food tastes. Continue reading Harris Restaurant Review

Nikkor AF 28-105mm f/3.5-5.6D IF

Lens Review

Nikkor AF 28-105mm f/3.5-5.6D IF on Nikon D100.

Review

This was the second lens that I got from my dad when he gave me his Nikon D100. I was hardly using this lens because of its limited focal range versus my other Nikkor AF 28-200mm f/3.5-5.6G lens. Little did I know then, this lens was actual better in terms of color and sharpness than the Nikkor 28-200mm.

The build quality of this lens is a bit better than decent, but not quite good. It’s still vastly plastic but does have some heft to it, probably because it contains 16 elements in 12 groups.

2007-01-05 - Nikkor 28-105mm D lens - 001The auto focus of this lens is slow, especially in low light conditions. It does not have a built on auto focus motor (AF-S) and thus relies on the camera’s screw-drive motor to focus which has the disadvantage of being louder over the other lenses that has the built on AF motor. The loudness is especially apparent when the lens is searching for focus through the focus range. This lens is an internal focus, IF, lens so the front element does not move to focus. It is worth noting that this lens does focus a bit faster than the Nikkor 28-200mm.

This lens has an aperture ring making it compatible with virtually all the Nikon cameras, a feature not very necessary on the Nikon digitals. Available aperture settings are 3.5, 5.6, 8, 11, 16, and 22.

One really nice thing about this lens is that is has a macro switch, although this is a bit outdated for new macro lens no longer has a need for a switch. The macro can only be activated at focal lengths of 50mm to 105mm. The closes focus distance is 1.64 feet (0.5m) at 50mm with the macro selected.

The filter size is 62mm.2007-01-05 - Nikkor 28-105mm D lens - 004

08-20-06 - San Francisco - 001.jpg2006-07-28 - SJ Grand Prix - 006.jpg08-19-06 - Stripes - 005.jpg

These are merely a few samples. For more pictures, please visit the gallery.

Nikkor AF 50mm f/1.8D

Specifications

Focal Length: 50mm
Maximum Aperture: f/1.8
Lens Construction: 6 Elements in 5 groups
Minimum Focus Distance: Approximately 1.5 feet
Number of Diaphragm Blades: 7 blades
Aperture: f/1.8-22
Filter Attachment Size: 52mm
Hood: HR-2 Rubber Hood
Dimensions: 2.5 x 1.5 in.
Weight: 5.5 ounces

Lens Review

Nikkor AF 50mm f/1.8D

product

Nikon’s sharpest lens in a small and affordable package!

This lens is absolutely sharp! The images I get from using this lens are nothing short of phenomenal. The brokeh result is also amazing!

I had a bit of reservations getting the 50mm originally because I wasn’t sure what I was going to do with a prime lens, 50mm no less. I had been accustomed to using my zoom lens (Nikkor AF 28-105mm f/3.5-5.6D) and was spoiled by variable focal adjustment. It took a bit getting used to the fact that I actually had to physically move versus just moving nikkor_50mm_lens_construction.jpgthe lens to get what I wanted framed in the shot. But the quality and the shots I can get with this lens, I hardly even use my 28-105mm anymore, only when I can’t get closer or further away to an object or person.

About all the reviews I read online about the construction of this lens is true, the quality isn’t entirely there. It’s primary make up is plastic, which has an advantage of making it extremely light, but unfortunately cheap feeling also. The major thing I don’t like is that this isn’t an internal focus (IF) lens, which means the front element moves in or out for focus. I’m also afraid of people trying to adjust the focal length of the lens using the focus ring and not realizing: (1) it is a prime lens and (2) the focus is set on auto and if someone turns the focus ring hard enough, they can break the focus ring.

The auto focus of the 50mm is reasonably fast, not as quick, nimble, and quiet as the Nikkor AF-S 500mm f/4D, but definitely faster than my Nikkor 28-105mm. It’s not quiet when focusing either because of no on board focusing motors; it depends on the camera’s focus screw. This also makes the lens not usable in AF mode on any Nikon cameras that don’t have the focus screw such as the new D40.

Having a maximum aperture of 1.8 is amazing. I’m able to hand hold in low light conditions and actually get decent shots without having to use the flash. Recently I was playing with my Dad’s Canon 5D with his Canon EF IS 28-135mm f/3.5-5.6 lens versus my D100 with the 50mm f/1.8D. My dad’s 5D wasn’t able to take any pictures without the SpeedLight. Granted that his 28-135mm lens is probably not quite the best lens or even comparable due to the discrepancy in maximum apertures, but I was expecting to at least get some decent shots. It was a living room with the windows open on a slightly overcast day. I have never been a fan of flash photography, I know it is necessary in some cases, but I wish to avoid it as much as possible and this lens lets me accomplish that.

I purchased this lens from BeachCamera.com and would highly recommend them for many reasons, the main ones being: fast shipping, lowest price, and best warranty. The lens cost me $126.90 (I chose 3-5 day shipping was why it was so expensive) and arrived in 3 days. And because BeachCamera.com is an authorized Nikon dealer, you get an automatic 5 year warranty extension to the normal 1 year buying from non-authorized dealers.

I think everyone should have this lens in their collection, Nikon doesn’t make many other f/1.8 lens. I almost regret not getting the Nikkor AF-S 50mm f/1.4D lens, but the price difference and the performance difference didn’t justify one another. If you have ~$300 to spare, get the f/1.4D, but if you’re on a budget, get the f/1.8D, you won’t regret it.

Also see: http://www.bui4ever.com/2006/11/16/nikkor_50mm_f18d_part_1.php

2006-11-23 -  Thanksgiving (Modesto) -   006.jpg 2006-11-23 -  Thanksgiving (Modesto) -   021.jpg 2006-11-23 -  Thanksgiving (Modesto) -   040.jpg

These are merely a few samples. For more pictures, please visit the gallery.

My rating: 4.5 stars
****1/2

Domino Access for Microsoft Outlook 7.0.2

Domino Access for Microsoft Outlook (affectionately shortened to DAMO) is an interface software by IBM designed to allow Microsoft Outlook to interface into the Domino Server. It was originally designed for users who are on Microsoft Exchange and are being migrated to Lotus Notes. I’ve found another use for it: clients who absolutely dread the Lotus Notes client. Continue reading Domino Access for Microsoft Outlook 7.0.2

Titanic: The Artifact Exhibition Review

I have always been fascinated with the Titanic story. Something humbling about it how we should always remember never to put too much faith in technology and that rushing a project could prove disastrous.

The exhibition is currently being done at San Francisco’s Metreon on the fourth floor until January 7th, 2007. Continue reading Titanic: The Artifact Exhibition Review

How To Integrate WordPress and BBPress

Introduction

WordPress is the light (3.5 MB unzipped) blog and content management system application that powers this site and all my other sites. It makes adding and updating content very simple and allows others to add and/or update content easily also.

BBPress is the forum application that can either be used as a stand alone or in conjunction with WordPress.

What this guide is designed to do, is show how to integrate BBPress visually into a WordPress theme. I’ll be showing step by step how I did it.

Please Note: Recently updated for BBPress 0.8.1.

What You Need

A Word of Warning

Depending on which theme you are using and who created it and your HTML skills, how easy or difficult it will be to integrate BBPress visually into WordPress is determined by how well written the WordPress theme your using is and/or your abilities to “fix” it or modify it to fit your needs.

In most cases, if the header.php file contains the usual head information and the navigation, you’ll probably be fine.

WordPress

  1. Open your WordPress’s Theme’s header.php and locate where your stylesheet is called up. You have to place a link to your BBPress stylesheet. For example, I use the import stylesheet feature, so mine looks like this:
    <style type="text/css" media="screen">
    @import url(<php bloginfo('stylesheet_url'); ?>;
    @import url("http://www.my-website.com/bbpress/my-templates/style.css");
    </style>

    This was the method I use to use, but I’m not sure if this will create problems down the road, so I’m defaulting to a safer method. Please skip to BBPress section instead.

BBPress

  1. Open the config.php file located inside the BBPress parent directory.
  2. At the very beginning, before, where it says:
    <?php // ** MySQL settings ** //
  3. You want to add this right above:
    <?php require_once('/absolute/path/to/WordPress Parent Directory/wp-blog-header.php') ?>
  4. What this does is that it is telling BBPress to load all the WordPress functions so that you can use WordPress functions inside of BBPress which will make integrating the look and feel of your BBPress to WordPress very, very easy.
  5. Upload the config.php file you just modified to your webserver and refresh the BBPress page, nothing should look different and you should not get any errors. If you get some kind of php error, look back in your code to make sure you didn’t mispell something.
  6. Make a copy of the entire bb-templates folder inside of the BBPress parent directory and rename it to my-templates. You should now have a my-templates folder with the same contents as the bb-templates folder in the BBPress parent directory. Any edits we will make will only to be the contents inside of the my-templates. Note: This is deprecated in BBPress 0.8.1.
  7. Create a new theme directory in bb-templates. Copy ALL the files in the kakumei theme in the newly created directory. The files copied in the new directory are the ones that you are to edit, not the files in the kakumei theme.
  8. I usually find the easiest way to start the visual integrating process is to edit the front-page.php file first since that page is BBPress’s equivalent of an index.php file. Open up front-page.php in a text editor program (e.g. Notepad for Windows or TextWrangler for the Mac).
  9. On the very first line, you will see:
    <?php bb_get_header(); ?>
  10. Leave the bulk info in the <head></head> alone. What you want to do is add in
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" />

    above

    <link rel="stylesheet" href="<?php bb_stylesheet_uri(); ?>" type="text/css" />

    This will import the main look and feel of your WordPress theme into BBPress.

  11. Scroll to the bottom and find:
    <?php bb_get_footer(); ?>
  12. Change that to:
    <php get_footer(); ?>
  13. Upload front-page.php to the my-templates folder and check your website, http://www.your-website.com/bbpress/ to see the results. It should start looking similar to your website now.
  14. If you want the sidebar to appear in your forum also, you will have to place <div id=”discussions”> into your WordPress theme’s content container on the front-page.php file, of course how you do that is dependent upon what theme you are using. For example, since <div id=”content”> is my theme’s container, I would arrange it like so in my front-page.php file:
    <div id="content">
    <div id="discussions">
  15. At the end, right before
    <php get_footer(); ?>

    add

    <php get_sidebar(); ?>

    and style it accordingly to your theme’s layout.

  16. After you upload front-page.php to your web server, check the layout in multiple web browsers to ensure it loads correctly. By now it should really look like a part of your theme’s layout.
  17. Make similar changes to: edit-post.php, favorites.php, forum.php, login.php, password-reset.php, profile.php, profile-base.php, profile-edit.php, register.php, register-success.php, search.php, tags.php, tag-single.php, topic.php, and view.php by replacing <php bb_get_header(); ?> to <php get_header(); ?> and <php bb_get_footer(); ?> to <php get_footer(); ?> and adding in <php get_sidebar(); ?> if you want a sidebar.
  18. The rest of the stuff will just need to be styled via the style.css in the my-templates folder. Make sure to remove any conflicting ids or classes from the BBPress stylesheet so as to not get W3C validation errors.

Verizon Wireless Sync and Palm Treo 650, part 2

Back in June, I originally posted a review of the Verizon Wireless Sync and Palm Treo 650 and now it is time to revisit the topic and also include some updates.

After nearly six months of using a Palm Treo 650 and the Wireless Sync method, I am still quite happy with the results. I am still able to send and receive my Lotus Notes emails, Lotus Notes calendar, and Lotus Notes contacts.

I’ve also been able to convince five of my clients to hop on the bandwagon, the only difference, I got them to get Verizon Treo 700p. Three of them do the same syncing as I do (Lotus Notes: mail, calendar, and contacts), one of them syncs Unix POP3 mail and Lotus Notes calendar and contacts, and the last person syncs only her Unix IMAP mail. Everyone has had relative success with the setup. On one occasion, one of the Treo 700p stopped sending and receiving calendar updates; a soft reset resolved the problem. In most cases when there is a problem with not being able to send or receive emails, calendar updates, etc. check the Wireless Sync status first cause in my experience, that is usually the cause of the non-syncing issues: computer lost network connectivity or the Wireless Sync agent crashed.

All-in-all, my clients have been pretty happy with the results. At this point, I would still recommend getting the Treo 650/700p and using the Wireless Sync.