<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jefim Borissov</title>
	<atom:link href="http://jefim.eu/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://jefim.eu/blog</link>
	<description>The mighty web developer!</description>
	<lastBuildDate>Fri, 11 Dec 2009 02:51:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CodeIgniter &#8211; Cart crap with Cyrillic characters</title>
		<link>http://jefim.eu/blog/2009/12/codeigniter-cart-crap-with-cyrillic-characters/</link>
		<comments>http://jefim.eu/blog/2009/12/codeigniter-cart-crap-with-cyrillic-characters/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 02:51:00 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cart]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[encoding]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=280</guid>
		<description><![CDATA[Ok, now this is so ridiculous that I have to blog about this even though I do not want to. CodeIgniter just blew my mind some time ago when I upgraded to 1.7.2 for the new Cart library. I realize, that it is a basic functionality, yet still... It does not support cyrillic characters in [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, now this is so ridiculous that I have to blog about this even though I do not want to. CodeIgniter just blew my mind some time ago when I upgraded to 1.7.2 for the new Cart library. I realize, that it is a basic functionality, yet still... <strong>It does not support cyrillic characters in the product name!</strong> It is freaking 2009, almost 2010 and one of the most popular MVC frameworks does not support cyrillic? And I bet any other "strange" characters too, because basically they have a filter there with a regexp:</p>
<pre class="php" name="code">var $product_name_rules	= '\.\:\-_ a-z0-9';</pre>
<p>Now that is some serious shit! <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway, if you have trouble with the same thing - doing non-latin chars in product names just find and comment out the following part from <em>system/libraries/Cart.php</em>:</p>
<pre class="php" name="code">if ( ! preg_match("/^[".$this-&gt;product_name_rules."]+$/i", $items['name']))
{
	log_message('error', 'An invalid name was submitted as the product name: '.$items['name'].' The name can only contain alpha-numeric characters, dashes, underscores, colons, and spaces');
	return FALSE;
}</pre>
<p>Also, if you are using a database table for your sessions - do not forget to check that the user_data field uses UTF-8 as its encoding (otherwise it won't let cyr chars into the field).</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/12/codeigniter-cart-crap-with-cyrillic-characters/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Enough ClearType! Go GDI++!</title>
		<link>http://jefim.eu/blog/2009/11/enough-cleartype-go-gdi/</link>
		<comments>http://jefim.eu/blog/2009/11/enough-cleartype-go-gdi/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 16:46:40 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Assorted]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[smoothing]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=273</guid>
		<description><![CDATA[Did you ever want to replace the ugly ClearType with something better? I know I have. And my prayers have been answered - meet GDI++ - the solution to all your font problems. Enough words, see it in action (this is Verdana, btw):
Well, I think that the difference is pretty obvious. So if you are [...]]]></description>
			<content:encoded><![CDATA[<p>Did you ever want to replace the ugly ClearType with something better? I know I have. And my prayers have been answered - meet <em>GDI++</em> - the solution to all your font problems. Enough words, see it in action (this is Verdana, btw):</p>
<div id="attachment_274" class="wp-caption aligncenter" style="width: 610px"><a href="http://jefim.eu/blog/wp-content/uploads/2009/11/cleartype.png"><img class="size-full wp-image-274" title="ClearType vs. GDI++" src="http://jefim.eu/blog/wp-content/uploads/2009/11/cleartype.png" alt="ClearType vs. GDI++" width="600" height="92" /></a><p class="wp-caption-text">ClearType vs. GDI++</p></div>
<p style="text-align: left;">Well, I think that the difference is pretty obvious. So if you are ready to start you new font life - go <a href="http://free.flop.jp/gdi++/upload.php" target="_blank">here</a> and download the file named <em>gdi0870.zip (404kb)</em>. Extract anywhere you want and launch <em>gditray.exe</em>. Choose 'enable' from the context menu of the tray icon and voila - your font are rendered without the help of that ugly, ugly ClearType.</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/11/enough-cleartype-go-gdi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RoR: Session / login management</title>
		<link>http://jefim.eu/blog/2009/11/ror-session-login-management/</link>
		<comments>http://jefim.eu/blog/2009/11/ror-session-login-management/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 15:01:32 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Assorted]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[Ruby (on Rails)]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=269</guid>
		<description><![CDATA[This is basic yet not obvious in Ruby on Rails - I've been looking for info on this for a long time (a long time for this problem is anything more than 5 minutes).
So, this is the way you make sessions/logins work in ruby:

class SessionController < ApplicationController
  def login
    @session['logged'] = [...]]]></description>
			<content:encoded><![CDATA[<p>This is basic yet not obvious in Ruby on Rails - I've been looking for info on this for a long time (a long time for this problem is anything more than 5 minutes).</p>
<p>So, this is the way you make sessions/logins work in ruby:</p>
<pre name="code" class="ruby">
class SessionController < ApplicationController
  def login
    @session['logged'] = true
  end
  def logout
    @session['logged'] = false
  end
end
</pre>
<p>The @session variable is available anywhere. Use it anywhere. For example you could come up with the following view showing whether the user is logged in:</p>
<pre name="code" class="ruby">
&lt;p&gt;Logged in: &lt;%= @session['logged'] %&gt; &lt;/p&gt;
</pre>
<p>And that is it. Anything beyond that (like adding a User model etc.) is out of this post's target. There are many articles on those things yet no clear explanation where to find and how to init a session. As you can see - the answer is clear - you don't <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <strong>The session is already there. Just start using it.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/11/ror-session-login-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic CSS layout</title>
		<link>http://jefim.eu/blog/2009/10/basic-css-layout/</link>
		<comments>http://jefim.eu/blog/2009/10/basic-css-layout/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 23:39:49 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Web dev]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[layout]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=256</guid>
		<description><![CDATA[The basic CSS layout I use in my work is plain simple - header, sontent, sidebar and footer.
The HTML:
&#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&#62;
&#60;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&#62;

&#60;head&#62;
  &#60;title&#62;My page&#60;/title&#62;
  &#60;base href="http://localhost/" /&#62;
  &#60;link rel="stylesheet" href="css/style.css" /&#62;
&#60;/head&#62;
&#60;body&#62;
  &#60;div id="wrap"&#62;
    &#60;div id="header"&#62;
      Header
   [...]]]></description>
			<content:encoded><![CDATA[<p>The basic CSS layout I use in my work is plain simple - header, sontent, sidebar and footer.</p>
<p>The HTML:</p>
<pre name="code" class="html">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;

&lt;head&gt;
  &lt;title&gt;My page&lt;/title&gt;
  &lt;base href="http://localhost/" /&gt;
  &lt;link rel="stylesheet" href="css/style.css" /&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id="wrap"&gt;
    &lt;div id="header"&gt;
      Header
    &lt;/div&gt;
    &lt;div id="content"&gt;
      Content
    &lt;/div&gt;
    &lt;div id="sidebar"&gt;
      Sidebar
    &lt;/div&gt;
    &lt;div class="clr"&gt;&lt;/div&gt;
    &lt;div id="footer"&gt;
      Footer
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>And the CSS is very simple:</p>
<pre name="code" class="css">#wrap    { width: 960px; margin: 0 auto; }
#header  { }
#content { width: 700px; float: left; }
#sidebar { width: 260px; float: right; }
#footer  { }
.clr     { clear:both; height:0px; overflow:hidden; }</pre>
<p>This is it. This code will show a simple page which is ready for hardcore modification. I know this is pretty basic yet it is one of the most used code snippets in my IDE. Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/10/basic-css-layout/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Image / file upload with CodeIgniter</title>
		<link>http://jefim.eu/blog/2009/10/image-file-upload-with-codeigniter/</link>
		<comments>http://jefim.eu/blog/2009/10/image-file-upload-with-codeigniter/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 11:15:42 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter upload]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=239</guid>
		<description><![CDATA[Image upload can be a pain in the *ss. And even though CI has a lot to offer (in the means of documentation) it still lacks a direct copy-paste code on their website so that people can just put it into their controller and use away.
Here we will have:

Image upload form with 5 images
And a [...]]]></description>
			<content:encoded><![CDATA[<p>Image upload can be a pain in the *ss. And even though CI has a lot to offer (in the means of documentation) it still lacks a direct copy-paste code on their website so that people can just put it into their controller and use away.<br />
Here we will have:</p>
<ul>
<li>Image upload form with 5 images</li>
<li>And a controller function that will upload those</li>
<li>Thumbnails will be there too <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<p><span id="more-239"></span>Ok, lets start with the HTML form code, it is very basic:<br />
<strong>views/upload_form.php</strong></p>
<pre name="code" class="html">
&lt;form method="post" action="uploader/go" enctype="multipart/form-data"&gt;
  &lt;input type="file" name="image1" /&gt;&lt;br /&gt;
  &lt;input type="file" name="image2" /&gt;&lt;br /&gt;
  &lt;input type="file" name="image3" /&gt;&lt;br /&gt;
  &lt;input type="file" name="image4" /&gt;&lt;br /&gt;
  &lt;input type="file" name="image5" /&gt;&lt;br /&gt;
  &lt;input type="submit" name="go" value="Upload!!!" /&gt;
&lt;/form&gt;
</pre>
<p>And now the controller:<br />
<strong>controllers/Uploader.php</strong></p>
<pre name="code" class="php">
class Uploader extends Controller {
  function go() {
    if(isset($_POST['go'])) {
      /* Create the config for upload library */
      /* (pretty self-explanatory) */
      $config['upload_path'] = './assets/upload/'; /* NB! create this dir! */
      $config['allowed_types'] = 'gif|jpg|png|bmp|jpeg';
      $config['max_size']  = '0';
      $config['max_width']  = '0';
      $config['max_height']  = '0';
      /* Load the upload library */
      $this->load->library('upload', $config);

      /* Create the config for image library */
      /* (pretty self-explanatory) */
      $configThumb = array();
      $configThumb['image_library'] = 'gd2';
      $configThumb['source_image'] = '';
      $configThumb['create_thumb'] = TRUE;
      $configThumb['maintain_ratio'] = TRUE;
      /* Set the height and width or thumbs */
      /* Do not worry - CI is pretty smart in resizing */
      /* It will create the largest thumb that can fit in those dimensions */
      /* Thumbs will be saved in same upload dir but with a _thumb suffix */
      /* e.g. 'image.jpg' thumb would be called 'image_thumb.jpg' */
      $configThumb['width'] = 140;
      $configThumb['height'] = 210;
      /* Load the image library */
      $this->load->library('image_lib');

      /* We have 5 files to upload
       * If you want more - change the 6 below as needed
       */
      for($i = 1; $i < 6; $i++) {
        /* Handle the file upload */
        $upload = $this->upload->do_upload('image'.$i);
        /* File failed to upload - continue */
        if($upload === FALSE) continue;
        /* Get the data about the file */
        $data = $this->upload->data();

        $uploadedFiles[$i] = $data;
        /* If the file is an image - create a thumbnail */
        if($data['is_image'] == 1) {
          $configThumb['source_image'] = $data['full_path'];
          $this->image_lib->initialize($configThumb);
          $this->image_lib->resize();
        }
      }
    }
    /* And display the form again */
    $this->load->view('upload_form');
  }
}
</pre>
<p>And that is it. Customize it to your needs, the basics are there already. And good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/10/image-file-upload-with-codeigniter/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Komodo Edit tools &#8211; add style.css and reset.css</title>
		<link>http://jefim.eu/blog/2009/10/komodo-edit-tool-style/</link>
		<comments>http://jefim.eu/blog/2009/10/komodo-edit-tool-style/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 05:28:49 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Assorted]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web dev]]></category>
		<category><![CDATA[komodo]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[toolbox]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=225</guid>
		<description><![CDATA[Good morning, planet. Today I am going to share a very useful script I am using in Komodo Edit (it automates adding style.css). It is very (!) simple yet very effective for me and, probably for others who are doing a lot of HTML files and face a problem of repetitive actions.
This thing works as [...]]]></description>
			<content:encoded><![CDATA[<p>Good morning, planet. Today I am going to share a very useful script I am using in Komodo Edit (it automates adding style.css). It is very (!) simple yet very effective for me and, probably for others who are doing a lot of HTML files and face a problem of repetitive actions.<br />
This thing works as follows (the use case):</p>
<ol>
<li> You create a new HTML file in komodo and save it in some directory.</li>
<li> You double-click the script in the Komodo Edit toolbox.</li>
<li> The script adds the following folders/files to the project (paths relative to the file currently in editor!)
<ul>
<li>css/</li>
<li>css/style.css</li>
<li>css/reset.css</li>
</ul>
</li>
<li>Also the file adds the following HTML code at the cursor in current opened file:</li>
</ol>
<pre name="code" class="html">
<link rel="stylesheet" type="text/css" href="css/reset.css" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
</pre>
<p>Voila. The needed action is done.<br />
<span id="more-225"></span></p>
<h3>Now, the snippet code:</h3>
<pre name="code" class="python">
import sys
import shutil
import os
import os.path

# argv[1] - dir of cur project (%D)
# argv[2] - current file name (%F)
if os.path.exists(sys.argv[1]+'/css/') != True:
    os.mkdir(sys.argv[1]+'/css/')

# NB! Edit the paths to style.css and reset.css
# (these will be copied into your project)!
shutil.copy('C:/Work/__distributives/css/reset.css',sys.argv[1]+'/css/')
shutil.copy('C:/Work/__distributives/css/style.css',sys.argv[1]+'/css/')

print '
<link rel="stylesheet" type="text/css" href="css/reset.css" />'
print '
<link rel="stylesheet" type="text/css" href="css/style.css" />'
</pre>
<p>Save this as a file somewhere (e.g. C:/Work/__scripts/add_style_css.py).<br />
Open up Komodo Edit and add it to your toolbox (<em>Toolbox->Add->New command...</em>) with the following settings:</p>
<ul>
<li><strong>Command:</strong> python add_style_css.py %D %F</li>
<li><strong>Insert output:</strong> check</li>
<li><strong>Start in:</strong> whatever the script resides in (e.g. C:/Work/__scripts)</li>
<li>anything else should bet left as it is</li>
</ul>
<p>Enjoy</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/10/komodo-edit-tool-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How-To: Create a horizontal menu</title>
		<link>http://jefim.eu/blog/2009/10/how-to-create-a-horizontal-menu/</link>
		<comments>http://jefim.eu/blog/2009/10/how-to-create-a-horizontal-menu/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 08:01:11 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Assorted]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Web dev]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=111</guid>
		<description><![CDATA[This is a tutorial on how to create a fully costomizable horizontal menu. Why another menu how-to? Well, mostly because there are situations when there are no suitable google results (based on my experience) and you have to come up with something yourself.
These are the features we will try to get into our menu:

It will [...]]]></description>
			<content:encoded><![CDATA[<p>This is a tutorial on how to create a fully costomizable horizontal menu. Why another menu how-to? Well, mostly because there are situations when there are no suitable google results (based on my experience) and you have to come up with something yourself.</p>
<p>These are the features we will try to get into our menu:</p>
<ol>
<li>It will be horizontal</li>
<li>It will have splitters (made with images)</li>
<li>It will have active class for rollover / selected item (background change)</li>
<li>Menu items will be of different size</li>
</ol>
<p><strong>This code works for Internet Explorer 6+, Firefox 2.0+, Opera 9+, Safari (at least on Safari 4 - tested on Windows version of it).</strong></p>
<p>Here is a mockup that we have:</p>
<div id="attachment_114" class="wp-caption aligncenter" style="width: 312px"><img class="size-full wp-image-114 " title="menu" src="http://jefim.eu/blog/wp-content/uploads/2009/10/menu.png" alt="Menu mockup" width="302" height="33" /><p class="wp-caption-text">Menu mockup</p></div>
<p><a href="http://jefim.eu/examples/menu1/menu.html" target="_blank"><strong><span style="color: #ff0000;">NB! If you just want to see how to do it - go here for the demo / full code.</span></strong></a><br />
<span id="more-111"></span><br />
Ok, first, the HTML you need for this thing to happen:</p>
<pre name="code" class="html">&lt;ul id="menu"&gt;
 &lt;li&gt;&lt;a href="#"&gt;Menu item&lt;/a&gt;&lt;/li&gt;
 &lt;li class="active"&gt;&lt;a href="#"&gt;Longer item&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="#"&gt;Short&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="#"&gt;Finally&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>This is the needed thing. One more thing to add - if you lack one element for background (if &lt;li&gt; and &lt;a&gt; are already having backgrounds and you need another one) - just wrap &lt;a&gt; with a &lt;span&gt;.</p>
<p>The CSS code for the menu:</p>
<pre name="code" class="css">html, body {
    font-family: "Trebuchet MS";
    font-size: 16px;
}
a       { text-decoration: none; color: #ffffff; }
a:hover { text-decoration: underline; }

#menu {
    margin:0;
    padding:0 12px;
    list-style-type: none;

    background: url(menu-bg.png) no-repeat;
    height:33px;
}
#menu li {
    float: left;
    display: block;
    margin-top:1px;
    background: url(menu-item-bg.png) no-repeat top right;
}
#menu li a {
    display: block;
    padding:4px 12px 4px 10px;
}
#menu li.active {
    background: url(menu-item-active-bg.png) no-repeat;
}
#menu li.active a {
    background:
        url(menu-item-active-bg-right.png)
        no-repeat top right;
}</pre>
<p>Some explanations: paddings and heights are just to make this thing look better a bit. The most important things are float, display and background aligns! If you want to create the menu yourself - just change the images and change the paddings / heights to correspond.</p>
<p>Now, the list images we will have to use:</p>
<div id="attachment_117" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-117" title="menu-bg" src="http://jefim.eu/blog/wp-content/uploads/2009/10/menu-bg.png" alt="Menu background" width="600" height="33" /><p class="wp-caption-text">Menu background</p></div>
<div id="attachment_120" class="wp-caption aligncenter" style="width: 310px"><img class="size-full wp-image-120" title="menu-item-bg" src="http://jefim.eu/blog/wp-content/uploads/2009/10/menu-item-bg.png" alt="Menu item background" width="300" height="30" /><p class="wp-caption-text">Menu item background</p></div>
<div id="attachment_118" class="wp-caption aligncenter" style="width: 310px"><img class="size-full wp-image-118" title="menu-item-active-bg" src="http://jefim.eu/blog/wp-content/uploads/2009/10/menu-item-active-bg.png" alt="Active menu item background" width="300" height="30" /><p class="wp-caption-text">Active menu item background</p></div>
<div id="attachment_119" class="wp-caption aligncenter" style="width: 22px"><img class="size-full wp-image-119 " title="menu-item-active-bg-right" src="http://jefim.eu/blog/wp-content/uploads/2009/10/menu-item-active-bg-right.png" alt="right-handed chunk" width="12" height="30" /><p class="wp-caption-text">Right-handed chunk</p></div>
<p>Of course you may want it to be a rollover effect. This is very easy to accomplish by using JavaScript. I will use jQuery for this but you can pretty much use any framework or just plain JavaScript to do that. The code for the rollover effect in jQuery is as follows:</p>
<pre name="code" class="javascript">    $(document).ready(function () {
       $('#menu li').mouseenter(function ()
           { $(this).addClass('active'); });
       $('#menu li').mouseleave(function ()
           { $(this).removeClass('active'); });
    });</pre>
<p><a href="http://jefim.eu/examples/menu1/menu.html" target="_blank">Finally, the whole stuff compiled together</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/10/how-to-create-a-horizontal-menu/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Web 2.0 craze</title>
		<link>http://jefim.eu/blog/2009/07/the-web-2-0-craze/</link>
		<comments>http://jefim.eu/blog/2009/07/the-web-2-0-craze/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 02:31:48 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Assorted]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[ul]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=85</guid>
		<description><![CDATA[The craze of Web 2.0 is consuming more and more developers and their customers. And, from my point of view, this is a good trend - websites are more clear, more usable and intercative - users are happy =&#62; site owners are happy =&#62; developers are happy. We are all happy.
On the other hand I [...]]]></description>
			<content:encoded><![CDATA[<p>The craze of Web 2.0 is consuming more and more developers and their customers. And, from my point of view, this is a good trend - websites are more clear, more usable and intercative - users are happy =&gt; site owners are happy =&gt; developers are happy. We are all happy.</p>
<p>On the other hand I must say that this craze is a bit over the edge. Why is that and how can it be seen? Well, from a dev perspective this mostly conserns HTML. Everybody wants valid (X)HTML today and I am not an exception. The other side of this is that everyone wants &lt;div&gt; vased websites with &lt;ul&gt; menus. Full stop. Now why is that? I admit, yes - &lt;table&gt; based sites are horrible to look at (the source code I mean). Yes, it is much clearer to do sites using &lt;div&gt; elements. But can anybody explain to me what is this "oh-so-obvious" reason for making menus using<br />
&lt;ul&gt;&lt;li&gt; menus? I don't mind it, but let us be honest - this can be a pain sometimes when you want a decent menu.</p>
<p>I see a lot of enthusiasts voting for &lt;ul&gt; who actually just repeat after others. They always use very simple menu examples to indicate how good this costruct is and I do not blame them. But is there any reason to hate &lt;table&gt; in menus? I do not see it. Do you? Using tables for menus is even a bit more natural to me than using lists - they are much more versatile in certain situation and demand much less effort to make them look good. Lists are an idealistic view at the source code structure and are good, but when the customer requires a more complex menu (not just plain background and color changing on hover) I often come to a conclusion that tables are the way to go.</p>
<p>I am, of course, not saying that tables should be used in every single menu, but I want to point is that tables are nothing to be afraid of. Do not listen to the masses, who scream one phrase all the time - think for yourself and decide which concept to use in a certain case of yours. Be reasonable.</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/07/the-web-2-0-craze/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Web development future</title>
		<link>http://jefim.eu/blog/2009/06/web-development-future/</link>
		<comments>http://jefim.eu/blog/2009/06/web-development-future/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 03:21:21 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Assorted]]></category>
		<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=70</guid>
		<description><![CDATA[As you may already know I work as a web developer. This means I encounter a lot of (X)HTML, PHP and JavaScript. There is no doubt that those are the most widely used tools for small/medium websites as well as there is no doubt that with all the new trends, with the increasing will to [...]]]></description>
			<content:encoded><![CDATA[<p>As you may already know I work as a web developer. This means I encounter a lot of (X)HTML, PHP and JavaScript. There is no doubt that those are the most widely used tools for small/medium websites as well as there is no doubt that with all the new trends, with the increasing will to build the "Web 2.0" the developmet becms harder and harder. There is a tremendous amount of ways to implement things, a huge number of frameworks out there than say "Hey, use me! I am the best!". Obviously, this is very stressful for the developer. And what is more stressing is the complexity of the code.</p>
<p>Remember how you used to write those small pure HTML pages without caring about whether it passes the validity tests? Remeber how you didn't care about Mozilla, Opera and Safari? You only had to make sure that this will work in IE and put a small text on the front page - "This site was made for IE6".</p>
<p>After that came PHP, which was overwhelming. It is a great tool designed to make scripting pages with ease. Then came databases and object-oriented paradigms. That is the time when I first started to feel frustrated. The code did not fit into my head anymore. I had to review the classes I have, the functions that they have, members, deal with connections and other crap.</p>
<p>And the latest thing - AJAX. This thing has been terrorising every single web developer. When I hear AJAX I always have two conflicting feelings - it is cool and it is very unpleasant to make it happen. I mean JavaScript was so simple (and mostly unnecessary) until AJAX hit the internet (and Web 2.0, of course). All you did was getElementById and validate forms with it sometimes.</p>
<p>Where am I going with this? Well... It is simple. At the moment the whole web development process with HTML/PHP/JS is quite complicated if you want to make something exceptional. As I work I keep seeing that I am performing repeating actions now and then. And I think that now <em><strong>it is time to make something new</strong></em>. A new way, a new tool, tailored for the specific needs of the web developer community. I will be not surprised if it will be something ASP.NET-like. Let it be. It is time to either dramatically improve the web development tools we have now or to create a new all-in-one tool that takes the concepts of HTML, PHP and JS/AJAX together and puts them into a universal form.</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/06/web-development-future/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web development tools I use and recommend</title>
		<link>http://jefim.eu/blog/2009/06/web-development-tools-i-use-nd-recommend/</link>
		<comments>http://jefim.eu/blog/2009/06/web-development-tools-i-use-nd-recommend/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 03:47:49 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Assorted]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=54</guid>
		<description><![CDATA[Ok, not being original here, but still... a web developer's blog is never complete without this. Maybe somebody will find at least something useful here. So here goes:
Tasks

slicing designs into images and cobining it to (X)HTML/CSS
script writing (PHP / JavaScript)
debugging
testing IE compatibility
quick editing
database handling
OS: Microsoft Windows
others

Slicing
Adobe Photoshop - using it mostly because the designs are [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, not being original here, but still... a web developer's blog is never complete without this. Maybe somebody will find at least something useful here. So here goes:</p>
<h2>Tasks</h2>
<ul>
<li>slicing designs into images and cobining it to (X)HTML/CSS</li>
<li>script writing (PHP / JavaScript)</li>
<li>debugging</li>
<li>testing IE compatibility</li>
<li>quick editing</li>
<li>database handling</li>
<li>OS: Microsoft Windows</li>
<li>others<span id="more-54"></span></li>
</ul>
<h2>Slicing</h2>
<p><strong>Adobe Photoshop</strong> - using it mostly because the designs are in PSD files. I do not actually slice anything here. I just need this to take screenshots of the design to slice it with Paint.NET afterwards.</p>
<p><strong>Paint.NET</strong> - a free, but absolutely awesome graphical editor without the tremendous amount of unnecessary functionality. I paste the screenshots from Photoshop here and select-and-crop them for slicing.</p>
<h2>Creating (X)HTML/CSS</h2>
<p><strong>Adobe Dreamweaver</strong> - the most usable markup/style editor I have ever seen so far. Mostly because its autocomplete functions are so well thought-out. It is just a pleasure to use it. It is really worth the money Adobe wants people to pay for it.</p>
<h2>Script Writing</h2>
<p><strong>Komodo Edit</strong> - a free tool, that has all the features I need. This is the only editor I know that has every feature that one might want in a script editor (PHP / JS autocomplete, code folding and project files) and does not have all those features that a regular person would use once a year max. Also, it is a very neat that Komodo has <strong>addons</strong>, which are implemented the same way as they are in Firefox. Very handy thing to have packed into a very familiar interface. Has the vertical selection feature, which is very important to me (just hold donw Alt+Shift while selecting). Can also be quite handy when need to change something in HTML/CSS and you do not want to bother opening up Dreamweaver.</p>
<h2>Debugging</h2>
<p><strong>Firefox + Firebug and Web Developer addons</strong> - the best HTML/CSS/JS debugging tool. If you are not using those yet - you are now a web developer <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I do not use any PHP debugging stuff. Still doing it the crappy way - <em>echo</em>'es and <em>print_r</em>'s. And the messages from the PHP interpreter, of course.</p>
<h2>Testing IE compatibility</h2>
<p>Of course I test my sites in Firefox, Opera and Safari. But the only problem is Internet Explorer (I test 6, 7 and 8), so...</p>
<p><strong>Multiple IE</strong> - adds shortcuts to IE versions (starting at version 3) to your quick-launch. Has PNG fix support. Nothing special, but I like it more than IETest.</p>
<h2>Quick Editing</h2>
<p><strong>Notepad++</strong> - hands down the most handy editor for some quick edits. Not for real production though, since there is just too much tweaking to be done in order to make it into a half-decent environment to work with. Editing some notes, viewing sources or creating a fast JS - Notepad++ makes it all happen for me.</p>
<h2>Database Handling</h2>
<p><strong>MySQL GUI Tools</strong> - mostly the Query Browser and Administrator. No real alternatives here, so there is not much to argue about. Better than phpMyAdmin anyway <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>phpMyAdmin</strong> - the standart in hostings with MySQL databases, so I am simply forced to use it.</p>
<h2>OS: Microsoft Windows</h2>
<p>This is quite important to me. Even though I really lack multiple workspaces in Linux (and do not even dare telling me about those crappy emulators for Windows of this feature) I still think that Windows is a better enviroment for web developing. Actually, I think that some people go to do this on Linux just because there are tools on Linux that allow it (e.g. ADs cannot go there since there is no Photoshop there). It is just a trend. Want to be cool? Install Linux.</p>
<p>Well, I personally think that this is not true. Web development is much more comfortable <span style="text-decoration: underline;">for me</span> in Windows because of the wide selection of tools (notice Notepad++, Dreamweaver and Paint.NET as well as the presence of normal IE). I do not dislike Linux though (I even have my lovely Ubuntu 9.04 installed). It is just that it does not provide me with all the tools to do my job in the most efficient way. Period.</p>
<h2>Others</h2>
<p>Of course there is a lot of other cool tools I use like Filezilla for FTP, Dia, MySQL Workbench and Visual Paradigm for modelling, Evernote for quick notes and so on. But they are quite small and sometimes completely unrelated to the topic of web development. Maybe someday I can write something about those little things that also help making the development process much more easy and less tiring.</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/06/web-development-tools-i-use-nd-recommend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
