Dimitry Zolotaryov

Posts

January 31, 10:39 AM

The following error came up on a project built on Django and MySQL:
“Warning: Field ‘id’ doesn’t have a default value”

At first, it seemed as though Django was responsible. However, a quick Google search proved this was an issue with MySQL.

Some solutions returned by the search required the programmer/administrator to export and recreate the database, but the solution proved a lot more simple. For a table named auth_user, the following MySQL command fixes the above error message:

ALTER TABLE auth_user MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

The above command resets the ID field of the auth_user table to an auto-incremented integer of length 11.

November 07, 01:49 PM

Google+ may not be Facebook or Twitter but it still has steam. Today, the Plus team released Google+ Pages. Very much like Facebook Pages, Google+ Pages allow your business to broadcast itself and connect with followers via the Circles functionality.

For more on this new feature, check out Google’s own press release below.

http://googleblog.blogspot.com/2011/11/google-pages-connect-with-all-things.html

Pages are not open for everyone yet. Send your email to info@webit.ca and we’ll notify you when they are ready.

Update

Google+ Pages now online.

October 26, 02:58 PM

BA released today their brand new inflight entertainment section. Developed by Spafax and WebIT.ca.

The site features a monthly update to the entertainment on every BA flight to dozens of destinations.

October 19, 02:28 PM

After two months of loving labor, the new enRoute Dining Guide app is up on iTunes. Be sure to check it out and download yourself a copy.

Download the enRoute Eats iPhone app.

Content by: Sarah Steinberg (enRoute Online)
Design by: Adrian Kronowetter (Land of Visions)
Development by: Dimitry Zolotaryov (WebIT.ca)

October 13, 05:31 PM

The following terminal command is great for finding those large, hidden files on your hard drive:

cd / && sudo find . -size +1024k -ls

Substitute 1024 with a size you consider big for a file (in kilobytes). In the example, the command sequence will find all files over a megabyte in size.

September 04, 05:52 PM

In the latest iPhone app, it was necessary for a particular view to grow or shrink with respect to its visible subviews. Bellow is a quick snippet from a class called VariableHeightView, a subclass of UIView.

- (CGRect)frame
{
    CGRect frame = [super frame];
 
    float height = 0.0f;
    for (UIView *asubview in self.subviews) {
        if (![asubview isHidden]) {
            float subviewBottom = asubview.frame.size.height
                                    + asubview.frame.origin.y;
            if (subviewBottom > height) {
                height = subviewBottom;
            }
        }
    }
 
    CGRect newFrame = CGRectMake(frame.origin.x, frame.origin.y,
                                 frame.size.width, height);
    return newFrame;
}

The code is fairly simple. For a view built using the Interface Builder, the VariableHeightView’s (a superview) frame function will iterative over all subviews, looking for the one lowest in the screen. Once found, it will expand to match that sub-view’s Y origin plus height.

The drawRect function of UIView will take care of rendering the VariableHeightView using the dimension of the frame function.

August 25, 03:56 PM

The array_remove and array_remove_assoc PHP functions allow your code to remove an element from an array (or associative array) given the element’s value. See the comments in the code bellow on how to use the two functions.

Download the code

<?php
/**
 * Removes the given value from the given array.
 *
 * Returns either FALSE if the value was not found in the array
 * or the index at which the value was found and removed.
 * 
 * $array = array('a', 'b', 'c', 'd');
 * assert( array_remove( 'b', $array ) == 1 );
 * assert( array( 'a', 'c', 'd' ) == $array );
 * assert( array_remove( 'z', $array ) === false );
 * assert( array( 'a', 'c', 'd' ) == $array );
 *
 * @param mixed $val The value to remove
 * @param array $array The array from which to remove the value
 * @author Dimitry Zolotaryov, http://webit.ca
 * @returns FALSE or the index at which the value was found
 */
function array_remove( $val, &$array ) {
    foreach ( $array as $i => $v ) {
        if ( $v == $val ) {
            array_splice( $array, $i, 1 );
            return $i;
        }
    }
    return false;
}
 
/**
 * Removes the given value from the given associative array.
 *
 * Returns either FALSE if the value was not found in the array
 * or the key at which the value was found and removed.
 *
 * $array2 = array( 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4 );
 * assert( array_remove_assoc( 1, $array2 ) == 'a' );
 * assert( array( 'b' => 2, 'c' => 3, 'd' => 4 ) == $array2 );
 * 
 * @param mixed $val The value to remove
 * @param array $array The associative array from which to remove the value
 * @author Dimitry Zolotaryov, http://webit.ca
 * @returns FALSE or the index at which the value was found
 */
function array_remove_assoc( $val, &$array ) {
    foreach ( $array as $key => $value ) {
        if ( $value == $val ) {
            unset( $array[ $key ] );
            return $key;
        }
    }
    return false;
}

Download the code

July 08, 12:07 PM

Definition:
To be voted on in Google+
Past tense of the verb To Plus. eg. “I plus’d you on Google+”

Synonyms:
Plus One’d, One Plus’d

April 27, 01:29 PM

So your Firefox web browser refuses to load a page? Perhaps you’ve recently updated to the latest Firefox and now things don’t work as you expected. Bellow is a list of solutions that I use when Firefox won’t load a page.

1) Clear the cache and reload the page (Ctrl + Shift + R).

2) Disable all your Add-Ons. Check if the webpage loads. If it does, then one of the Add-Ons is at fault. Start re-enabling them one by one until you find the culprit. For more, see the Firefox Add-On troubleshooting page.

3) The problem is a browser misconfiguration or some problem with the installation, perhaps. Download another copy of Firefox, uninstall your current version (back up those bookmarks!) and install the downloaded version (Add-Ons will have to be re-installed afterward).

Hope these tips help you resolve your Firefox page loading issues.

Profile

Web and mobile IT consultant
Online Media | Montreal, Canada Area, CA

Summary

In the past seven years, I have built a repertoire of projects in various industries as a programmer, technology consultant and usability advisor. As a independent consultant I also learned sales, customer service, and delivering value.

And all this experience has taught me one thing: web development is needlessly convoluted. It's 2011; websites are not that hard.

My approach is simple: be honest and be pragmatic. I only sell what I can build and I work with talented designers, copy-writers and translators. My costs are low because my tools are smart and I don't even charge overhead for my fancy German car; I take the bus.
Specialties: * Programming PHP, Python, JavaScript, ObjectiveC. * Content management systems, location services, design integration and interfaces. * Sales, customer service, usability and technical requirements.

Experience

  • Jul 2008 - Present
    Founder / WebIT.ca
  • Feb 2010 - Nov 2010
    Project Owner/Responsable de projet / Le site
  • Mar 2008 - Jan 2010
    Lead Developer / HighTouch Communications
  • Jan 2006 - Mar 2008
    Senior Developer / AskMen.com
  • 2004 - 2005
    Wed Developer / entechnevision.com

Additional Information

Websites:
Interests:
Public speaking, inter-personal dynamics, sitcoms, fitness, reading fiction and non-fiction, podcasts on every topic.

Uploads

Favorites

Python and PHP developer living in Montreal. My site.

abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz