In previous articles, I’ve talked about the importance of finding the right algorithm, or series of steps to follow, when coding a solution. Efficiency in terms of the amount of memory used and the amount of time taken by the operation are key factors for the program. Sometimes an appropriate algorithm is already available and in wide use and it’s just up to the programmer to turn it into code. There’s always the option of running to StackOverflow and grabbing some code but that does nothing to further your talent.
I’m currently screening applicants for two full-time, in-house jobs in Ocala, Florida. Both of these positions will work as part of a team of local and remote developers designing e-commerce solutions.
- Develop, customize and implement high-quality web solutions that meet company expectations and requirements.
- Contribute to technical solutions and requirements definition; solve complex problems by contributing to analysis and development of technical solutions.
- Deploy code into a variety of staging and production environments.
Meet regularly to provide status updates, reports on development activity and discuss project/product roadmap planning.
- Provide systems administrative assistance when needed for off-site servers, either remotely or by visiting the off-site data centers.
- Write, update maintain technical procedures & documentation, user guides and troubleshooting manuals for company software, technical support needs and end users.
- Effectively translate complex, technical concepts into easy to understand language to assist non-technically oriented employees.
Web Designer / Graphic Design – Adobe Suite, WordPress / Magneto Theming
- Create and modify web pages to enhance the digital and mobile experience in line with internal stakeholders (Marketing, Programming, and sales)
- Plan site design by clarifying goals; designing functionality.
- Develop site navigation by categorizing content; funneling traffic through content.
- Upgrade site by updating content and graphics; monitoring performance and results; identifying and evaluating improvement options; introducing new technology; maintaining links.
- Develop site content and graphics by coordinating with copywriters and graphic artists; designing images, icons, banners, audio enhancements, and keeping with industry standards.
- Utilize the Content Management System to upload creative elements
- Help develop and integrate interactive social and digital media to drive show content
- Participate in developing the concepts and content for assigned teases, sales features, promotions, roll-outs and special events to improve customer messaging and conversion.
If you or anyone you know is interested in these positions, you can find out more about them on my job board on ComeauSoftware.com .
My big project for March was a complete review of MySQL Explained, a book that I published last year on the popular open source database software used to power content management systems such as WordPress and Joomla along with other web applications. MySQL is a fixture in web hosting accounts and on internet database servers so, if you’ve done any serious work with web development, you’ve probably encountered it at least once.
Aside from it popularity as a back-end for web applications, MySQL’s open source model and its ease of installation in a variety of environments make it a great tool for learning about database concepts. It can be installed simply in a local directory, as a service within the operating system or as part of an AMP stack for the local development of web applications. It also has a variety of interfaces from the fully-graphical MySQL Workbench to the command line interface for those who prefer the direct control that it can give.
A few months ago, I wrote about how to install MySQL on Windows with IIS. Now I want to show you how to create an AMP web programming stack (Apache, MySQL & PHP) on Mac OS X. As with Windows, you could just go with a ready-made development environment like MAMP but, if you’re going to be doing real database and web design work with MySQL, it’s best to know how everything works.
For this demonstration, I’m going to be using Mac OS X El Capitan (v.10.11), the latest version as of this writing. My installation environment is a hosted Mac server with 1 GB of RAM and 40 GB of disk space. I will be demonstrating the process using the Terminal commands.
Unlike Windows, OS X already includes the Apache web server and PHP language pre-installed so it’s a much simpler process to ensure that everything is working together. You will need root access in order to install and configure the components.
Microsoft Access is unique among all of the Microsoft Office applications in that it can be used to create entire applications that contain large storehouses of data, versatile data entry forms and sophisticated reports to present the data in a variety of ways. It also goes beyond other applications such as Microsoft Excel in that a single database is able to store and organize large amounts of data from different sources and on different subjects while enabling many users to easily find and work with that data as needed. While an Excel spreadsheet is excellent for analysis and can provide access to multiple users, Access takes it a few steps further and enables users to store and manage volumes of data and present it in many different ways based on the needs of the data users and the intended distribution.
Why Split a Database?
The multi-user environment provides its own challenges. Access is often used as an ad hoc development tool by people outside the I.T. department to design needed solutions that would otherwise have to be purchased for large amounts of money. These applications can end up being used by many people across a company and that means there can be many people accessing the same database file at the same time. If enough people are in the file at once, the performance of the application can degrade pretty quickly. Also, when one person has the database file open, the file is then read-only for anyone else who opens it which means that they will be unable to create or edit their own reports or database queries.
Occasionally, when you’re making a lot of design changes to a Microsoft Access database, Access might start crashing when you’re working with that specific database file or when trying to enter the VBA environment with ALT-F11. This leaves you unable to investigate the issue or make further changes. It can be a sign that there are errors within the project’s compiled VBA code. One solution is to use the /decompile switch to remove the compiled VBA code from the project and then recompile the source code.
If you’re doing ongoing design work with Access, I recommend creating a new shortcut to the MSACCESS.EXE file on your system with the decompile switch. You would use this only when trying to recover a file. The rest of the time, you should use the normal menu shortcut.
"C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" /decompile
You can also enter this with the Run command on the Start menu and include the path to your database file after the /decompile switch.
The first file that you open after running Microsoft Access with this switch will be decompiled. This will not delete the source code behind your forms or reports but it will remove the compiled version of the code and might enable you to get back into the VBA environment.
Once you’re in VBA, use the Debug >> Compile Database command to recompile the database project. This will enable you to find and correct any problems within the code.
As always, be sure to make regular backups of your files as you’re coding in case this doesn’t work and you have to recover. Also be sure to make a backup of the file before you try to decompile it in case something goes wrong.
If this doesn’t work, then the last resort is to rebuild your database by importing all of the objects within it into a new database file. This is time consuming, however, although it does seem to remove a lot of temporary data that Access stores in the file, reducing the database size substantially in some cases.
The Switchboard Manager in Microsoft Access makes it easy to create a system of menus that will enable your users to navigate through your application. It also relieves you of the need to manage multiple menu forms and macro calls.
Sometimes, however, you might want to keep all but a few users out of specific areas, even if it’s just a password to discourage the curious. This is one thing the Switchboard Manager doesn’t offer and I’d like to show you one method for achieving this here. I want to stress that this method is not truly secure. On it’s own, it won’t prevent a user from hitting F11 and browsing through the database. A power user who wants to see those areas could defeat this method pretty quickly. It will keep the merely curious and inexperienced users out, however, and could be combined with other measures to add more security.
My newest book, MySQL Explained, is due to be published this month! You can check out the LeanPub page to show your support and to sign up for notifications of when it’s published. See the description of the book below.
UPDATE 10/24/2015 – MySQL Explained is now available in both EPUB and MOBI (Kindle) formats with the first chapter available for FREE from LeanPub.com and Amazon.com! Read more about this guide to the leading database for online applications and on the official page!
About the Book
MySQL Explained is a step-by-step tutorial for everyone who’s ready to learn about the database software most commonly used for storing information behind some of today’s most popular websites and online applications.
Written especially for people outside the I.T. world, MySQL Explained provides the background information you need to get familiar with database theory and the principles behind organizing data. This book starts from the ground up, helping the reader to understand the very definition of a database, the forms it can take and the different options for storing information. By the end of this book, you’ll understand the reasons for choosing MySQL, the options for installing it and the tools that it offers to store and safeguard your data.
If you are in any way involved in designing or managing a website or data solution of any kind, you owe it to yourself to understand the tools involved. Quality database management sytems are essential in today’s data-driven world and such essential tools should not be a mystery to those who depend on them. MySQL Explained can help you unravel the mystery and learn more about a technology that will be around for a long time to come.
MySQL Explained is published through OS Training which, in addition to publishing tutorials like this one, offers onsite and online training in web technologies including Joomla, Drupal and WordPress.
One of my latest projects was setting up WordPress, the popular content management system, on a client’s web server which was running Windows Server 2008. WordPress requires installations of MySQL for the database back-end and the PHP scripting language in order to serve up the WordPress content. On a local Windows machine, I’d probably just use a pre-configured WAMP (Windows, Apache, MySQL, PHP) stack package like EasyPHP which is installed quickly and includes all the necessary components. That’s not quite an option in a professional environment, though. I was also working with Internet Information Services (IIS) 7.5 for the web server instead of Apache so the process is a little more involved.
I don’t usually do blatant advertising in these posts but I have to get the word out about this one. On September 30, 2015, Amazon.com will be selling the 7″ Kindle Fire with 8GB of memory and Wi-Fi for only $49.99. That’s a fantastic price for a great product. I’ve had mine for a few months now and love. it. In addition to reading books, I can watch Netflix on it, surf the web, listen to music and take pictures. I’ve been amazed by the video and audio quality on it and the camera is better than the one on my smartphone.
If you’ve been thinking about getting a tablet, I would definitely recommend the Kindle Fire. With webmail and all the free apps available through Amazon’s store, I can do most everyday tasks on my Kindle Fire. The voice recognition is also excellent so it’s easy to dictate e-mails and updates.
At $49.99, the Kindle Fire is something you definitely have to consider when buying a new tablet.
(In the interest of full-disclosure, the links in this post are affiliate links.)