Clicky

Magento_logo

Recently I upgraded a Magento site from 1.7 to 1.9 and recorded the steps I took to upgrade. This should work for other versions as well, but in my case it was 1.7 to 1.9.

Before the upgrade backup entire site so you can rollback if necessary.

Upgrade

  1. Visit <yoursite.com>/downloader and login with your regular admin credentials.
  2. Select “Put store in maintenance mode” in the Settings section.
  3. Click the check for upgrades button.
    1. All items that can be upgraded will display in a different color.
  4. Select items you wish to upgrade using the dropdown next to the installed version number.
  5. Click “Commit Changes” button to start the upgrade.
    1. Text should begin to appear in the console as Magento is finishing the tasks.
  6. Upgrade is finished.
  7. Check the site is up and running properly.

Post Upgrade

A few minor errors occurred after the upgrade and here is how I solved them.

  • If the maintenance flag is still active remove the maintenance file by rm maintanence.flag
  • Apache was complaining that index.php and downloader/index.php were group writeable. Change permissions on the index.php and downloader/index.php to 644.
  • PHP threw an error in file app/code/core/Mage/Core/Controller/Varien/Front.php saying Call to member function rewrite() on a non-object. If you are using a cache restart the caching mechanism. E.g. sudo service memcached restart
  • Admin URL displayed a blank white page also commonly referred to as the “White Screen Of Death”. This was fixed by downloading the Magento zip file from Magento and uploading the necessary files to app/design/adminhtml/default/default and skin/adminhtml/default/default. The upgrade appeared to have deleted those files so they needed to be re-uploaded to their respective locations.
Share this Story

The idea is “x” framework provides a level of convenience that can make developers sloppy.

This often happens because frameworks tend to make developing easier. So easy we forget to take a step back and figure out how all the pieces come together.

If the framework is modeled on the model view controller (MVC) pattern. The convenience trap for developers is adding unnecessary amounts of logic into controllers or models. It’s easy to do and get the work “done” and out of the way if no testing is involved. Generally the problem with putting unnecessary amounts of logic in controllers or models is hard to test which subsequently causes the application to be brittle.

For example:
Oh looky here something database related this needs to go in a model or hey this interacts with the user’s input this probably goes in the controller.

The framework should not be the application, but a portion that compliments the development.

Note: The above generally applies to larger apps and not small apps that may have a short lifecycle.

How to mitigate the framework convenience trap?

  1. Write tests for the application. If tests are written chances are the structure of the app is designed better.
  2. Learn software best practices.
  3. Don’t code in a silo. Talk to other developers.
  4. Realize no one has perfect code and let someone critique your code. DON’T TAKE IT PERSONAL.
Share this Story

The future is unpredictable, however many techniques can influence your future to put you where you want to be.

Knowledge Is Power

Educate yourself. Knowledge is power.

Network

Personal and professional networks are invaluable. Put yourself out there, talk with people.

Listen

Become a great listener. Listening well is a difficult skill to learn, but can yield amazing results. Listen a fraction longer than what feels comfortable and you will hear things you normally wouldn’t. People love to be heard.

Read

Read blogs, books or what ever sparks your interest.

Hard Work

Put in the hard work upfront and receive the benefits later.

Positive Attitude

Use a mistake to your advantage. A mistake can be a learning opportunity to better yourself. Check and adjust.

Proactive

Go out there and seize the opportunity. Don’t wait for an opportunity to find you.

 

“You miss 100% of the shots you don’t take” – Wayne Gretzky

Lastly be true to yourself. Live your life with honesty and integrity. People will feel the aura that surrounds you.

Share this Story

Something I ran into a while back while writing tests.

If intentionally testing code for an exception then it is required to add an annotation above the test method.

Read More

Share this Story

Goal: Search all users who were updated between a certain time period (in our case one day).

Scenario: A system wide glitch caused a set of users to have all of their last names changed to Smith. Your manager wants to know how many records are affected.

Read More

Share this Story

Programming is useful and important.

I like to compare programming to oil in that cars require oil to operate and business require programmers. If a business intends to compete most likely they have an IT team. Many times the competitive advantage for a company relies on technology. Most technology if not all requires software development.

Even if very basic programming interests you there are some awesome courses. Some courses are self-paced and some have deadlines.

Awesome list of courses

Share this Story

Believe it or not you have power in your fingers tips through social media.

If you’re a regular on social media then mentioning your favorite brands can be powerful whether the experience was good or poor. I’ve encountered a few poor experiences and each occasion I reached out via twitter. In most cases I received a response within a few hours and they have offered to resolve any issues.

It is a win-win situation. Any good manager will appreciate the good and bad. If the experience was not up to par hopefully the manager will provide an incentive to comeback.

Ultimately most companies don’t like bad PR. Generally large companies have social media teams that handle responding to customers. Information spreads very rapidly and it is crucial to resolve issues quickly before it escalates. Notably Comcast had disaster to clean up when one man posted his conversation with a customer service rep while trying to cancel his service.

Share this Story

Make a point to brush your teeth prior to late night normal eating time.

If the urge to eat occurs train yourself to brush your teeth instead.

The idea is to deter yourself from eating because:

  1. Food will taste disgusting after brushing teeth.
  2. Brushing teeth second time at night requires extra effort.

 

Share this Story

If you’ve used the WHMCS software billable time feature you know the invoice is created, sends email, and sets the same day as due date after generating the invoice from billable time entries.

The problem with this is it provides a negative user experience because it will be jarring to a customer receiving an invoice with no explanation AND due the same day received.

I looked numerous times for a solution or work around and finally found one that worked.

  1. Mark all your time entries to invoice on next cron.
  2. Visit the clients’ profile and click “Generate due invoices”
    1. WHMCS  will ask if you want to send emails right now or no.
    2. Choose no and visit the invoices tab.
    3. Each billable time entry will be it’s own invoice.
  3. Visit the invoices tab for the client. Fortunately invoices can be merged.
  4. If you have a lot of time entries filter by invoice status unpaid.
  5. Select all invoices that should be merged
  6. Click the merge invoices button.
  7. This will have pulled all the items in to a single invoice.
  8. Change the due date to something more appropriate before sending the invoice to the client.

I hope this helps someone who had the same issues for me.

Source: WHMCS Forum

Share this Story

Before graduating if your school allows Alum to signup for an email address they can keep do it! There are many valuable reasons to keep a .edu address, discounts and freebies. Most perks are only temporary. Everything from Apple discounts to free web hosting. The idea behind providing perks to students are getting the students acclimated with products. Assuming the products are good this will entice the student to continue using and maybe pay for the product. Generally if discounts are offered online the single requirement is a .edu address.

If discounts and freebies sound good here are a few:

Discounts

Freebies

This is a fraction of what exists for students. If you have your .edu address handy search online for student discounts before buying something. Even if the discount or freebie is small in most cases it is worth it. As mentioned above sometimes simply finding the student site will yield discounts as some places don’t require proof at all.

Note: It may be against the company’s policy if not currently enrolled in school.

Share this Story