Ghost

Changing Things UP.

A fanatic is one who can’t change his mind and won’t change the subject.
- Winston Churchill

I write to you all out of ambition and hopefulness. Though I also write this in a time of change and adjustment. Over a period of recent dialogues, ideas, challenges, and even joys - I am announcing today as my last day working with Elias. One might wonder why (what seems to be the sudden) change? It actually isn’t sudden. Quite the opposite, actually. Let me give you a little background on Elias and the decision.

I had the great privilege of connecting with Josh and Eric years ago when their media company produced a mini-documentary on

Dreaming In Code

I’ve had a string (play on word there with a reread) of dreams where I was actually (and unrestfully) thinking of a creative way to twitter about my dream. Something like…

$_dreaming-

Meet Our New Developer

Walking downstairs, I found my dog (and good buddy), Bentley, snuggling up close to our laptop. Were he human, I just wonder if he might want to be a developer :)

Bentley: Snuggling Close With Code

Screencasts with Jing and Screencast.com

Over the past year, we have been learning some valuable lessons regarding communication. As we’re all involved with the web, communication without “connecting” with the intended party isn’t really communicating at all. We’ve been working to apply this into as many areas as possible within the communication avenues that exist between our team members and clients each day. As an example, we’ve started documenting project requirements (mostly business-uses) via screencasts to communicate within a project.

Josh (Colter) recommended we start using the tools at Screencast.com and Jing. I started today, and am very pleasantly surprised at the ease of these screencast tools. Though I haven’t unraveled all of the features these both bring, I was able to download the software from Jing to record screencasts, as well as the uploader desktop tool from Screencast.com. Within minutes I had created a screencast, uploaded it, and shared it within a project for others to see with nearly perfect quality.

We’ll plan to begin using these for all of our modules, installation overviews, knowledge base support, and other areas to help communicate (and educate) our customers effectively.

Should any of you have another streamlined process or even general thoughts on using multi-media within the work you do, please do share. All is welcome.

Magento Issue: Checkout Redirect With SSL Installation And Sub-Domain

Considering the woes that can come with installing a SSL certificate. Yesterday, we ran into an issue with a client that I wanted to note, just in case anyone else may benefit from the scenario and solution.

logo

Scenario

We had the Magento integrated with SVN and have a post-commit hook that auto-deploys into our root directory on the server. We originally had the httpdocs folder and the httpsdocs folder mirroring each other so that the httpsdocs folder would handle SSL (https) requests and the httpdocs would handle all other non-SSL requests. As we were installing our SSL certificate, we changed the base_url and the secure_base_url to the appropriate (specific) URLs in place of the {{unsecure_url}} and {{secure_url}} generic values. All of a sudden, as soon as SSL installation was complete, the frontend would no longer transition from the “shopping cart” (url: http://cart.crankbrothers.com/checkout/cart/) into the “checkout” (url: https://cart.crankbrothers.com/checkout/onepage/). The checkout URL would redirect back into the shopping cart.

Solution

We realized that the sub-domain and shared docroot setup (httpdocs and httpsdocs, together) could be creating the issue. Thus, we simplified our setup (cheers Eric Dennis) to make httpdocts the separate docroot for both HTTP and HTTPS requests. Game, set, match. Problem solved. By the way, you should check out Crank Brothers for a working example :) Hope this helps save time for someone else!

Magento: Quick Change in Column Count for Products Displaying In Category Listing (Grid View)

Hi All, Figured I’d share a quick Magento snippet (There are several I’d like to share each day. For some reason this particular one seemed quick enough to post). Want to change the number of products that display in the Magento Category listing? You’ll need to modify these two files:

  • app/design/frontend/default/YourThemeName/layout/catalog.xml (default theme line 198)
  • app/design/frontend/default/YourThemeName/layout/catalogsearch.xml (default theme line 61)
See the screenshot for the variable columnCount()? In order to change that, go to the following file and add in this snippet:
  • app/design/frontend/default/YourThemeName/layout/catalog.xml (default theme line 198)
[sourcecode language=”xml” light=”true”]

A Nugget Of Wisdom For “Clients”

I must acknowledge it is crucial for a client to realize that the very effort of hiring a development team to perform complex duties (specifically for their expertise) is an act out of need of their services.

Because scope, time, and cost are all interrelated (can we remember this please?), there is absolutely no room for a client to request an expansion in scope and in the same breath become upset that time and cost need to expand as well. It continues to be an ongoing challenge to help clients maintain this mentality as a development shop.

Trust and transparency is key in relationships, and I only wish it were easier for small businesses to gain this when beginning and maintaining relationships with clients. Unfortunately, there is much hurt in the world we live in and the business relationship naturally carries a tension and common “protect your own” mentality. We at Elias desire to work differently, and do everything we can to keep growing in this area of building trust with transparency. We are in constant thought about how we can work with integrity, meet the needs around us, and offer our skills with pleasant confidence.

My question stands: why are relationships with this kind of trust, transparency, and mutual respect so few and far between?

Magento Database Import Error: USING BTREE, KEY `FK_ATTRIBUTE_VARCHAR_ENTITY` (`entity_id`), KEY `FK_CATALO’ at line 9

Tonight I was setting up a staging environment for a client of ours so they would have the ability to “visually” interact with the recent data migration our team has performed (OSCommerce to Magento, in case anyone was wondering). Here’s the error I was receiving: [sql light=”true”] ERROR 1064 (42000) at line 382: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘USING BTREE, KEY `FK_ATTRIBUTE_VARCHAR_ENTITY` (`entity_id`), KEY `FK_CATALO’ at line 9 [/sql] The reason behind this is that there is an inconsistency in the way the export syntax was being handled as I imported into the staging environment (which evidently has a different MySQL version running). Thus, the staging site was expecting different syntax for the following: [sql] — — Table structure for table `catalog_category_entity_varchar` — DROP TABLE IF EXISTS `catalog_category_entity_varchar`; CREATE TABLE `catalog_category_entity_varchar` ( `value_id` int(11) NOT NULL AUTO_INCREMENT, `entity_type_id` smallint(5) unsigned NOT NULL DEFAULT ‘0’, `attribute_id` smallint(5) unsigned NOT NULL DEFAULT ‘0’, `store_id` smallint(5) unsigned NOT NULL DEFAULT ‘0’, `entity_id` int(10) unsigned NOT NULL DEFAULT ‘0’, `value` varchar(255) NOT NULL DEFAULT ”, PRIMARY KEY (`value_id`), UNIQUE KEY `IDX_BASE` (`entity_type_id`,`entity_id`,`attribute_id`,`store_id`) USING BTREE, KEY `FK_ATTRIBUTE_VARCHAR_ENTITY` (`entity_id`), KEY `FK_CATALOG_CATEGORY_ENTITY_VARCHAR_ATTRIBUTE` (`attribute_id`), KEY `FK_CATALOG_CATEGORY_ENTITY_VARCHAR_STORE` (`store_id`) ) ENGINE=InnoDB AUTO_INCREMENT=697 DEFAULT CHARSET=utf8; [/sql] As a rule of thumb, one can either

  • (1) head over to the MySQL Developer Documentation for syntax reference
  • (2) or simply check out a recent Magento export from the server they are trying to import into and determine how the “USING BTREE” statement was handled. Likewise, I simply removed the following:
[sql light=”true”]

An Important Troubleshooting Step With Magento

When in doubt, just clear the freakin’ cache.

A Balance To Be Kept

Let’s face it, there are more and more freelancers and small technology businesses sprouting up these days (incredible). For all of us, time management hits close to home as the freedom that we have becomes a blessing and a curse at the same time. I reflect on this after just taking an entire day off this week (my teammates were worried about my general sanity and workload, and forced me to do it :)). I planned it out with my teammates, communicated expectations with clients, and ensured deliverables were delegated in a way so that this decision would still allow me to be responsible. Enjoying The Sunset While just on the phone with a teammate, Josh Colter, we realized another thing: we set our own pace. I admit, I find myself waking up and checking email on the iPhone to prepare myself for what’s ahead that day and to answer anything important enough that  ”requires” my attention. This type of rush in the schedule can make one feeling as if they’re always catching up. And I’ve noticed (for myself), it’s often rooted in an unhealthy perspective. In fact, my wife and I have agreed to maintain the rule of even keeping the computer out of a certain room in the house so work doesn’t infringe more than it should. One may ask: why stop when one can continue moving forward in building more solutions or gaining more clients to make happy, always progressing? With endless opportunities, and in a world (America, specifically speaking) where the race to improve only increases by the night - people (like ourselves at Elias) who desire a healthy balance of work and play are confronted with a decision to make. How will we pursue our ambitions while still keeping healthy priorities? Nonetheless, our goal for ROWE (Results Only Work Environment) has been a challenge to hold true to. We’re still learning. Why do I say all this? Well, I feel it appropriate to communicate a few things that have become more clear to me on this wonderful day off:

  1. We set the pace. If we allow the culture around us to make us feel guilty for taking a day off, the reality is that we will feel guilty.
  2. Our challenge is to do the absolute utmost we can with the tools and skills we have, in an effort of working to live - not living to work.
  3. Time spent in front of the computer doesn’t necessarily equate to productivity and results. Often times, I find myself being more “productive” in a fewer amount of planned/organized hours. Thus, I’ve started taking time for myself each morning to jot out the needs/wants of the day (in respect to the overall progress of the week/month/year that follow). As a remotely connected team, this can be crucial for us as a company.

Oh, another thing to note: What did I do to ensure that I really had a full day off? Well, I did take action on a few of the following practical things (otherwise, it wouldn’t have been a true day off!):
  • Turn off iPhone email push notifications
  • Keep my business emails out of the inbox for the entire day
  • Make the first thing I read during the day something non-work related
  • Spend time reading, writing, praying, and progressing internally in forward thinking
Let us (together) live fully by working hard, playing hard, laughing hard, and crying hard.

LTD