website success

The Geek Blog


What to do about Windows 8 that is pre-installed on your desktop or laptop computer?

9-24-2013 3:03:33 PM

I recently bought a new laptop, but as with most new laptops, it came with Windows 8 pre-installed. Windows 8 is designed only for tablets and cell phones which is great if you have a touch screen, you don't need to type a lot, and you won't be using multiple productivity programs, doing a lot of photo/image editing or using programmer's development tools.  While true that most people use their computers for web browsing, emails and social media, there still is the rest of us that still need to get work done.

Knowing how easy it is to install Linux Mint along side Windows, I decided to not let which version of Windows that was pre-installed on the laptops determine which laptop I was going to buy.  I would have Windows 8 for testing, and I would do most of my work in Linux Mint which I find to be very useful, powerful and efficient.  So I popped my Linux Mint Cinnamon DVD into the drive, booted the computer and proceeded to install dedicated half of my hard drive to Linux Mint and half to Windows 8.  The Install ran very smoothly resizing the partitions and install Linux Mint.  I rebooted and no GRUB boot loader came up.  Windows 8 starting loading like nothing had ever happened, except the amount of available space was now cut in half.  Two more days of research and trying this and that went by before I had both Linux Mint and Windows installed on my computer.  (As a web developer, Windows running natively on my computer is still necessary because most people still use it and my websites need to be tested to work properly in that environment.) So to save you the horrors of my experience, I will briefly describe three options to setup your new desktop or laptop with a desktop/laptop operating system/environment and I will describe some of the possible unforeseen challenges you may come into.  If you have any questions, please feel free to call into the Ray Carr show on Tuesday mornings between 7:00 and 9:00 AM Tuesday mornings.

Option 1: Configure Windows 8 to behave more like Windows 7. 
You can change your startup screen to the desktop, streamline menus, and install the glass areo look.  Avram Piltch has already put together a detailed blog on how to do this: http://blog.laptopmag.com/make-windows-8-like-windows-7

Option 2: Downgrade to Windows 7.
This is not as easy as it sounds.  The licensing of Windows is now handled in the BIOS of the computer.  This is done with SLIC (system and logistics integration capability) which allows computer manufactures to easily install Windows on their computers with the need to have different key codes for each machine.  The latest version of SLIC can specify that the computer is licensed for Windows 8, but not Windows 7.  Thus if you want to downgrade to Windows 7, you will either need to purchase Windows 7 or use a SLIC emulator to get a copy of Windows 7 to activate automatically.

Option 3: Install Linux Mint.
Normally, Linux Mint installs along side Windows 8 without a problem.  But computer manufactures may use exotic partitioning schemes to allow for system restore capability and for hard drive larger than 2 TB.  This was the case with an HP laptop I setup.  The Linux Mint installation went fine, resizing the Windows 8 partition, and installing Linux Mint on the free space of the hard drive.  The installation then proceeded to write GRUB to one of the many hidden partitions, thus rebooting only brought up the Windows launcher menu.  Deleting all of the partitions and starting from scratch allowed Windows 7 to install fine, but Linux Mint could not detect its presence due to the hard drive being setup with GPT tables.  This fix was to use gParted to setup the drive for msdos partitions and start all over with a Windows 7 install to have of the drive, then a Linux Mint install to the other half of the drive.

Ed Lemmers
 

Purchasing a Laptop - What Processor is Best?

9-17-2013 8:40:27 AM

As many savvy computers have become aware of, Intel markets their laptop processors under three different labels: Core i3, Core i5 and Core i7 which relate to different price range levers: economy, standard and premium.  In Intel's desktop line, these model series relate directly to performance in terms of computing power.  This is not necessarily true with laptops.  Another consideration for laptop performance is battery life.  As it turns out, there are Core i5 and Core i7 processors that currently being manufactured that have similar performance (or the Core i5 may actually run at a higher clock speed), but the Core i7 consumes half of the power of the Core i5.  If you are planning on using your laptop mostly in situations where your are running it on battery power, then paying the premium for the Core i7 is well worth it.  If on the other hand, you will not be traveling that often or you will generally have power available, you may prefer to have a slightly faster processor and to save a little money on the purchase as well.

Another aspect that is associated with the different levels of the Intel Core i series is the number of cores and threads each level has.  For desktop processors, the Core i3 series has 2 physical cores and 4 threads, the Core i5 series has 4 physical cores and 4 threads (mostly), and the Core i7 series has 4 physical cores and 8 threads.  This is not the case for Intel's mobile processors.  In fact, most mobile Core i5 and Core i7 processors have only 2 physical cores and 4 threads for both series.  But what does this mean in performance?  The number of cores and threads becomes important as your computer is required to multitask.  This can be extremely important for a programmer or developer who needs to run several operating systems in virtual machines simultaneously.  But for the typical user, processor clock speed will have a greater impact on user experience. 

It is typically easier to get higher clock speeds with Intel processors than AMD processors.  Also, motherboards built with Intel chipsets seem to be better supported that other chipsets.  But quad-core laptops running Intel processors tend to be high-end products and are harder to find.  If you are on a budget and you want to run multiple OSes, and you need to use multi-threaded programs, than an AMD processor may be of better value to you.  The AMD mobile processors are divide into different A series: A4, A6, A8, A10.  The A4 series have 2 physical cores, the A6 series come with 2, 3 or 4 physical cores, and the A8 and A10 series all have 4 physical cores.  The next 4 digits, i.e.. A8-5600K have a relationship to clock speed, but this relationship is not one-to-one.  In fact sometimes higher numbers are used for slower clock speeds.  Therefore, you will need to lookup the specifications of the CPU by the CPU model number in order to compare the performance between any to laptop computers.  You can go to http://www.cpu-world.com for specific information about any CPU.

Ed Lemmers
 

MySQL error occurs after upgrading PHP/MySQL web app

3-17-2013 6:37:03 PM

Problem:

You upgrade a PHP/MySQL web app and you get the following error:

We are sorry, we not able to connect right now. Please try again later: SQLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

Analysis:

If the web app was installed when the server was running PHP 5.2 or earlier, or the web app was transferred from one CPanel/WHM server to another using the automatic transfer tool, the database user credintials were applied using the old 4.1 format.

Solution:

You can use SSH, then log into the MySQL console run the password update as described in the error message.  As an alternative, you may also use the CPanel interface to delete, rescreate and re-apply the user to the database.

Ed Lemmers


4/26/2012 Ed Lemmers

Zen Cart™ - Mystifying Message

Problem:

Setup zone shipping module with calculations based on weights and observed the following message:

The shipping rate cannot be determined at this time

Analysis:

Added debugging code to chase down values to see what was happening and discovered that somehow that the system thought the book shipping weight was 5 lbs, and not 1 lb.  I then determined that tare weight was some how being added to the item weight, and that this tare weight was rather excessive.

Solution:

Went to Configuration / Shipping/Packaging / Package Tare Small to Medium - added percentage:weight and set the value to 0:0 to eliminate tare weight.  You can set this to some thing reasonable for your cart, but the point is that the stock value was so radical that it caused the zone shipping by weight to not work at all.


1/10/2012 Ed Lemmers

Hot tip for regaining CPU Usage in Vista and Windows 7

Problem:

The process audiodg.exe uses ~30% of your system's CPU time.  You will see this in the task manager under Processes. You can open the task manager by typing <cntl><shft><esc>.

Solution:

Turn off audio enhancements.  To do this right-click on the audio icon and select Payback devices.  Select the Playback tab.  Select your audio playback device (usually Speakers) and click the Properties button.  (There may be several playback devices.  You will need to determine which is used for system playback.  You can ignore anything having to do with a voice modem is one is installed on your computer.)  Click on the Enhancements tab. Check the checkbox Disable all sound effects and click Apply.  Then click OK and then OK to dimiss the dialogs..


11/28/2011 Ed Lemmers

SugarCRM™ Upgrade

I upgraded from version 6.2.3 to version 6.3.0.  This time I remembered to uninstall all modules first, run the ugrade and then re-install the modules.  The upgrade was painless!


7/19/2011 Ed Lemmers

SugarCRM™ - Dispage Enhanced Search™

It healed itself!!!  That's right.  I logged in a few days ago and the Dispage Extension Manager™ updated itself correcting the problem.  The extension manager is now 1.0.11a.  This allowed me to install the Dispage Enhanced Search™ 3.1.03b.


7/8/2011 Ed Lemmers

SugarCRM™ - Calendar2.0™ - Dispage Enhanced Search™

The calendar that comes with SugarCRM is just shy of being something that people would actually want to use.  It has the functionality that one would expect in a calendar, but the lack of Ajax popups for quick entry makes it too cumbersome to add new appointments.  In fact, upon adding a new appointment it takes you to a list of all appointments rather than back to the month view of the calendar.  Thus in order to go back to the month view to compare what is going on each week visually requires a few time-consuming page loads.  Calendar2.0 addresses this issues very well.  At only $40 one-time for your SugarCRM installation, Calendar2.0 is a bargain.  It is an Ajax/PHP plug-in solution that gives SugarCRM a calendar that is actually efficient to use.  It requires SugarCRM 6.2.0 or later, so you will need to upgrade if you are using an older version.  Fortunately, the upgrade from 6.1.2 was a snap.  With Calendar2.0, you can even set the start and end times displayed in your calendar which eliminates the need to hack the Calendar.php file as mentioned in an earlier post here.

Dispage offers a must-have search enhancement for SugarCRM for FREE!  The only requirement is that you must install their Dispage Extension Manager (DEM) which allows you to install any of their products (some are free, other are for purchase).  The Dispage Enhanced Search allows you to search by date range, add AND, OR, NULL, NOT NULL, etc search parameters to fields, and more.  Without it, at some point you will find that the SugarCRM built-in search tools are just not enough.  Installation is fairly easy, but it adds a popup overlay that connects to the Dispage site to check for updates every time you log in.  Unfortunately, upgrades to SugarCRM become way to complicated once the DEM is installed.  If you simply upgrade SugarCRM, you will find that not only are all of the Dispage plugins are not working, but that the SugarCRM's built-in search tools a broken.  To upgrade SugarCRM, you must uninstall each Dispage extension, then uninstall the DEM module first.  I not, you will wind up having to do a very tedious manual uninstall.  At this point, my DEM is not working after the last upgrade.  It gives me the following error:

So far I have found nothing on the Internet that addresses this exact problem and the SugarCRM log file is not revealing anything to me.  If you have an idea on how to fix this, please contact me.  As I mentioned above, the Dispage Enhanced Search is a must-have, so I need to get it up and running again.


4/16/2011 Ed Lemmers

SugarCRM™ - Default File Permissions

Problem:

By default, SugarCRM sets folder permissions to 2770 and file permissions to 0660 which is incompatible to most LAMP (Linux-Apache-MySQL-PHP) servers. Most LAMP servers require folder permissions to be 0755 and file permissions to be 0644.  This problem may be fixed in newer versions, but if you running version 5.5.x, or have upgraded from this version and thus your config file has been migrated, then you will have this problem.  The symptoms of this are after installation, or after any upgrade, some program functionality will be broken, or certain messages show as "undefined" because the language files cannot be accessed.  You can find information relating to this problem in the SugarCRM forums, but it may not be apparent as how to find it, so I decided to post it here as well.

Solution:

You will find the following code around line 162 of config.php:

array (
    'dir_mode' => 1528,
    'file_mode' => 432,
    'user' => '',
    'group' => '',
  ),

The numbers here represent Linux/Unix file permissions expressed in decimal format.  i.e. 1528 in decimal is equal to 2770 in octal, and 432 in decimal is equal to 0660 in octal.  But what we need is 0755 octal and 0644 octal which is 493 and 420 decimal respectively. So modify the above code to be:

array (
    'dir_mode' => 493,
    'file_mode' => 420,
    'user' => '',
    'group' => '',
  ),

Upload the your config.php file after making these changes and you should no longer need to run chmod scripts after every upgrade to recover from the damage.


2/4/2011 Ed Lemmers

SugarCRM™ - Calendar Shows only 8:00 AM to 6:00 PM

Problem:

The calendar shows only 8:00 AM to 6:00 PM when displaying a single day.  This is worthless for a musician, restaurant, entertainment business, or many other businesses that are open outside of the traditional business hours.

Solution:

Download sugarcrmfolder/modules/Calendar/Calendar.php and look for the following code started around line 345:

function get_start_slice_idx()
    {

        if ($this->isDayView())
        {
            $start_at = 8;

            for($i=0;$i < 8; $i++)
            {
                if (count($this->slice_hash[$this->slices_arr[$i]]->acts_arr) > 0)
                {
                    $start_at = $i;
                    break;
                }
            }
            return $start_at;
        }
        else
        {
            return 0;
        }
    }
    function get_end_slice_idx()
    {
        if ( $this->view == 'month')
        {
            return $this->date_time->days_in_month - 1;
        }
        else if ( $this->view == 'week' || $this->view == 'shared')
        {
            return 6;
        }
        else if ($this->isDayView())
        {
            $end_at = 18;

            for($i=$end_at;$i < 23; $i++)
            {
                if (count($this->slice_hash[$this->slices_arr[$i+1]]->acts_arr) > 0)
                {
                    $end_at = $i + 1;
                }
            }


            return $end_at;

        }

 

Change $start_at = 8; to the time of day you would like your day to start, i.e. $start_at = 6;.

Change $end_at = 18; to the time of day you would like your day to end (24-hour format), i.e. $end_at = 23; for 11:00 PM.

Upload your Calendar.php and you are done.  (This is known to work for version 6.0.2.)

Note:  This modification is not upgrade proof.


12/2/2010 Ed Lemmers (as discovered by Ed Lemmers and Dave Courey)

KFM™ - Kae's File Manager (ver. 1.4.7) - Need to refresh file-manager pop-up to get it to populate

Problem:

In all browsers it is necessary to refresh the file browser page to see the page.  The problem is caused by a permission issue with the readfile function on line 9 of {kfm_folder}/j/all.php where {kfm_folder} is the base folder for your KFM installation.  This is because most LAMP web servers are setup with readfile disabled for security reasons.  Note: It is generally not a good idea to defeat this security measure as the readfile function can be used to push PHP file content out to the client.  Normally, PHP code never leaves the server, but if the readfile function is enabled, it could be possible for a hacker to exploit it to look at PHP file content.  This would be disasterous as database login information would then be available to the hacker.

Solution:

Modify line 9 of {kfm_folder}/j/all.php from:

if(file_exists(WORKPATH.$name)) readfile(WORKPATH.$name);

to

if(file_exists(WORKPATH.$name))
{
   $js = file_get_contents(WORKPATH.$name);
   echo $js;
}

The reason this works is that file_get_contents is generally not disabled on web servers because this function can only be used to send the contents of a file to a string within a PHP file.  If you examine the rest of the all.php file, you will notice that this is the method that is used if the file_exists function fails on line 9.

Note:  This modification is not upgrade proof.


10/23/2010   Ed Lemmers

SugarCRM™ - Pagination buttons are too far to the right after adding custom fields to list view

Problem:

After adding a lot of custom fields to the list view, the pagination buttons hang so far to the right that one needs to scroll to the right after every page change in order to do another  page change.

Solution:

Open ListViewPagination.tpl found in includes/ListView.  Look for the line that reads:

<table border='0' cellpadding='0' cellspacing='0' width='100%' class='paginationTable'>

and change the width to something smaller, such as 70%.

Note:  This modification is not upgrade proof.


10/13/2010     Ed Lemmers

SugarCRM™ - Large newsletters truncate in editor

While helping a client get her newsletter into a template, I discovered that the limit to the size of the newsletter was less than what was necessary to complete the newsletter.  Upon investigation, I discovered that the newsletter templates are stored in the email_templates table in the body and body_html fields.  These fields are of the "text" type.  Changing the type to "longtext" allowed me to get the entire newsletter into the template.


10/7/2010     Ed Lemmers

SugarCRM™ - Increasing email limit of only 10 recipients while emailing directly from contacts or leads. "Please select less than 10 records to proceed."

Problem:

When you try to select more than 10 recipients from either contacts or leads, then choose Email from the Actions dropdown, you get this message: Please select less than 10 records to proceed.

Solution:

Unfortunately, this is not something that SugarCRM™ wants to make configurable at this time.  The fix requires modifying two core javascript files.  Note that your modifications are NOT upgrade proof and will need to be re-applied if you upgrade.  I have performed this modification in versions 5.5.3, 6.0.0, and 6.0.2.

The two files that need to be modified are sugar_grp1.js and sugar_3.js.  These files are found in includes/javascript of your SugarCRM folder.  Open sugar_grp1.js add this line just below the comments block at the top of the file:

var max_emails = 100;

Then search for this line around line 303:

sugarListView.prototype.send_form_for_emails=function(select,currentModule,action,no_record_txt,action_module,
totalCount,totalCountError){if(document.MassUpdate.select_entire_list.value==1){if(totalCount>10){alert(totalCountError);
return;}

and replace 10 with max_emails.

Next, search for the following line around line 311:

var selectedArray=uidTa.value.split(",");if(selectedArray.length>10){alert(totalCountError);return;}

and once again replace 10 with max_emails.

Open sugar_3.js and perform the exact same modifications.  Note: Both files have the exact same functions at the exact same line numbers in SugarCRM™ version 6.0.2.

And that is it.  In this example we have the max limit set to 100 which seems to work fine.  You may set the limit to whatever number you like, but I have not tested it above 100, so I can't guarantee it will work for more than 100.


Silver Dolphin Solutions, LLC   12417 Cedar Road, Suit 29, Cleveland Heights, OH 44106     E-mail: info@silverdolphinsolutions.com     ©Silver Dolphin Solutions, LLC 2012