<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3319646036442611885</id><updated>2024-11-01T07:59:40.198+01:00</updated><category term="jQuery"/><category term="javascript"/><category term="Impromptu"/><category term="SEO"/><category term="bug"/><category term="eksperymenty"/><category term="popup"/><category term="4Developers"/><category term="AdWords"/><category term="CSS3"/><category term="Code snippet"/><category term="NetBeans"/><category term="PHP"/><category term="Rubber Duck"/><category term="Treeview"/><category term="amazon"/><category term="asynchronous"/><category term="autocomplete"/><category term="bing"/><category term="cast"/><category term="comments"/><category term="debug"/><category term="dialogs"/><category term="ellipsis"/><category term="forms"/><category term="google"/><category term="hidden nodes"/><category term="kanban"/><category term="nowy blog"/><category term="oop"/><category term="organize work"/><category term="patterns"/><category term="pm"/><category term="początek"/><category term="powitanie"/><category term="project management"/><category term="prompt"/><category term="self-documenting"/><category term="table"/><category term="text-overflow"/><category term="toggle"/><category term="tutorial"/><category term="url"/><category term="variable"/><title type='text'>Dobiatowski!</title><subtitle type='html'>&lt;a href=&quot;http://dobiatowski.blogspot.com/2012/02/rubber-duck-method-of-debugging.html&quot;&gt;&lt;img src=&quot;http://www.dualhost.pl/blog/img/duck.png&quot;&gt;&lt;/a&gt;&#xa;&lt;a href=&quot;http://dobiatowski.blogspot.com/2012/02/rubber-duck-method-of-debugging.html&quot;&gt;... Place rubber duck on desk and inform it you are just going to go over some code ...&lt;/a&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dobiatowski.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-1634185556971575913</id><published>2012-05-16T10:11:00.000+02:00</published><updated>2012-05-16T10:12:47.807+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comments"/><category scheme="http://www.blogger.com/atom/ns#" term="patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="self-documenting"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><title type='text'>Comments vs. Self-documenting</title><content type='html'>Recently I had few talks with my co-workers about the &quot;problem&quot; of writing code comments.&lt;br /&gt;
There ware arguments like: &lt;i&gt;&quot;When you use Python you don&#39;t need to write comments because it is Self-documenting language&quot;&lt;/i&gt;. But is it really true? Or the &quot;problem&quot; in fact is only inborn human&amp;nbsp;laziness? What is the&amp;nbsp;purpose&amp;nbsp;of comments?&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;b&gt;Here is copy/paste fragment of C++ tutorial about... the comments.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
At the statement level, comments should be used to describe &lt;em&gt;why&lt;/em&gt; the code is doing something.  A bad statement comment explains &lt;em&gt;what&lt;/em&gt; the code is doing.  If you ever write code that is so complex that needs a comment to explain &lt;em&gt;what&lt;/em&gt; a statement is doing, you probably need to rewrite your code, not comment it.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Here are some examples of bad line comments and good statement comments.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Bad comment:&lt;br /&gt;
&lt;pre class=&quot;brush: cpp; title: ; notranslate&quot; title=&quot;&quot;&gt;// Set sight range to 0
sight = 0;
&lt;/pre&gt;
(yes, we already can see that sight is being set to 0 by looking at the statement)&lt;br /&gt;
&lt;br /&gt;
Good comment:&lt;br /&gt;
&lt;pre class=&quot;brush: cpp; title: ; notranslate&quot; title=&quot;&quot;&gt;// The player just drank a potion of blindness and can not see anything
sight = 0;
&lt;/pre&gt;
(now we know WHY the player’s sight is being set to 0)&lt;br /&gt;
&lt;br /&gt;
Bad comment:&lt;br /&gt;
&lt;pre class=&quot;brush: cpp; title: ; notranslate&quot; title=&quot;&quot;&gt;// Calculate the cost of the items
cost = items / 2 * storePrice;
&lt;/pre&gt;
(yes, we can see that this is a cost calculation, but why is items divided by 2?)&lt;br /&gt;
&lt;br /&gt;
Good comment:&lt;br /&gt;
&lt;pre class=&quot;brush: cpp; title: ; notranslate&quot; title=&quot;&quot;&gt;// We need to divide items by 2 here because they are bought in pairs
cost = items / 2 * storePrice;
&lt;/pre&gt;
(now we know!)&lt;br /&gt;
&lt;br /&gt;
Programmers often have to make a tough decision between solving a problem one way, or solving it another way.  Comments are a great way to remind yourself (or tell somebody else) the reason you made a one decision instead of another.&lt;br /&gt;
&lt;br /&gt;
Good comments:&lt;br /&gt;
&lt;pre class=&quot;brush: cpp; title: ; notranslate&quot; title=&quot;&quot;&gt;// We decided to use a linked list instead of an array because
// arrays do insertion too slowly.
&lt;/pre&gt;
&lt;pre class=&quot;brush: cpp; title: ; notranslate&quot; title=&quot;&quot;&gt;// We&#39;re going to use newton&#39;s method to find the root of a number because
// there is no deterministic way to solve these equations.
&lt;/pre&gt;
&lt;br /&gt;
Finally, comment should be written in a way that makes sense to someone who has no idea what the code does.  It is often the case that a programmer will say “It’s obvious what this does!  There’s no way I’ll forget about this”.  Guess what?  It’s not obvious, and you will be amazed how quickly you forget. :)  You (or someone else) will thank you later for writing down the what, how, and why of your code in human language.  Reading individual lines of code is easy.  Understanding what goal they are meant to accomplish is not.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;To summarize:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;At the library, program, or function level, describe &lt;em&gt;what&lt;/em&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Inside the library, program, or function, describe &lt;em&gt;how&lt;/em&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;At the statement level, describe &lt;em&gt;why&lt;/em&gt;.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
Source:&amp;nbsp;&lt;a href=&quot;http://www.learncpp.com/cpp-tutorial/12-comments/&quot;&gt;http://www.learncpp.com/cpp-tutorial/12-comments/&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/1634185556971575913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/1634185556971575913'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2012/05/comments-vs-self-documenting.html' title='Comments vs. Self-documenting'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-2605638995992086292</id><published>2012-05-15T09:18:00.000+02:00</published><updated>2012-05-15T09:18:54.502+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Impromptu"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="popup"/><category scheme="http://www.blogger.com/atom/ns#" term="prompt"/><title type='text'>Impromptu extension updated</title><content type='html'>Recently the jQuery Impromptu developer Trent Richardson released new 4th version of this plugin.&lt;br /&gt;&lt;br /&gt;New version add&#39;s advanced event handling, more about it at Trent&#39;s blog:&lt;br /&gt;&lt;a href=&quot;http://trentrichardson.com/2012/03/05/impromptu-4-0-is-more-eventful/&quot;&gt;http://trentrichardson.com/2012/03/05/impromptu-4-0-is-more-eventful/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
But there is still lack of possibility to use enter key inside prompt&#39;s form - it is blocked by default.&lt;br /&gt;
So I updated my extension which add this functionality and now it is&amp;nbsp;compatible&amp;nbsp;with jQuery Impromptu 4.x versions.&lt;br /&gt;
&lt;br /&gt;
More here:&lt;br /&gt;
&lt;a href=&quot;http://dobiatowski.blogspot.com/p/impromptu-extension.html&quot;&gt;http://dobiatowski.blogspot.com/p/impromptu-extension.html&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/2605638995992086292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/2605638995992086292'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2012/05/impromptu-extension-updated.html' title='Impromptu extension updated'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-2395839061522415689</id><published>2012-04-27T17:00:00.000+02:00</published><updated>2012-04-27T17:00:03.612+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSS3"/><category scheme="http://www.blogger.com/atom/ns#" term="ellipsis"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="text-overflow"/><title type='text'>Great solution for text-overflow: ellipsis problems</title><content type='html'>I have just created page about my new project on GitHub. It&#39;s called &lt;b&gt;FastEllipsis&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
There was many approaches of how to nicely fit certain amount of text inside fixed-size HTML blocks. For example when it comes to show a list of short descriptions often your layout want to have exactly 300px width and maximum 3 lines of text per description. I made one more JavaScript solution for that problem.&lt;br /&gt;
&lt;br /&gt;
For more go the the&amp;nbsp;&lt;a href=&quot;http://dobiatowski.blogspot.com/p/text-overflow-ellipsis-extremely-fast.html&quot; style=&quot;background-color: white; color: #436590; font-family: &#39;Trebuchet MS&#39;, Trebuchet, sans-serif; font-size: 13px; line-height: 15px; text-decoration: none;&quot;&gt;text-overflow: ellipsis - Extremely fast implementation in JavaScript&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: -webkit-auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/2395839061522415689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/2395839061522415689'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2012/04/great-solution-for-text-overflow.html' title='Great solution for text-overflow: ellipsis problems'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-1988074274858480932</id><published>2012-02-07T15:10:00.000+01:00</published><updated>2012-04-27T13:33:47.898+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debug"/><category scheme="http://www.blogger.com/atom/ns#" term="Rubber Duck"/><title type='text'>Rubber Duck method of debugging</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHaMEXxAKFZcIquSfEpgg2aZwtRV0XCbGKRU6oqQkvzWl78v3RedyKM13rUOAsYs18MWBOJZMCRR4rVSty6Xamj575DYcyxvxy_d0OT8BY71e6RkaGp_2pb49m0AddMfuIXpSZ6Gp_Pms/s1600/giant+rubber+duck.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;425&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHaMEXxAKFZcIquSfEpgg2aZwtRV0XCbGKRU6oqQkvzWl78v3RedyKM13rUOAsYs18MWBOJZMCRR4rVSty6Xamj575DYcyxvxy_d0OT8BY71e6RkaGp_2pb49m0AddMfuIXpSZ6Gp_Pms/s640/giant+rubber+duck.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This is brilliant!&lt;br /&gt;
&lt;pre&gt;We called it the Rubber Duck method of debugging.  It goes like this:&lt;/pre&gt;
&lt;pre&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;1) Beg, borrow, steal, buy, fabricate or otherwise obtain a rubber duck
   (bathtub variety)
2) Place rubber duck on desk and inform it you are just going to go over
   some code with it, if that&#39;s all right.
3) Explain to the duck what you code is supposed to do, and then go into
   detail and explain things line by line
4) At some point you will tell the duck what you are doing next and then
   realise that that is not in fact what you are actually doing.  The duck
   will sit there serenely, happy in the knowledge that it has helped you
   on your way.

Works every time.  Actually, if you don&#39;t have a rubber duck you could at
a pinch ask a fellow programmer or engineer to sit in.&lt;/pre&gt;
Source: &lt;a href=&quot;http://lists.ethernal.org/oldarchives/cantlug-0211/msg00174.html&quot;&gt;http://lists.ethernal.org/oldarchives/cantlug-0211/msg00174.html&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/1988074274858480932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/1988074274858480932'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2012/02/rubber-duck-method-of-debugging.html' title='Rubber Duck method of debugging'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHaMEXxAKFZcIquSfEpgg2aZwtRV0XCbGKRU6oqQkvzWl78v3RedyKM13rUOAsYs18MWBOJZMCRR4rVSty6Xamj575DYcyxvxy_d0OT8BY71e6RkaGp_2pb49m0AddMfuIXpSZ6Gp_Pms/s72-c/giant+rubber+duck.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-3361459686144788995</id><published>2012-01-12T13:38:00.001+01:00</published><updated>2012-05-15T09:47:50.226+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="4Developers"/><category scheme="http://www.blogger.com/atom/ns#" term="kanban"/><category scheme="http://www.blogger.com/atom/ns#" term="organize work"/><category scheme="http://www.blogger.com/atom/ns#" term="pm"/><category scheme="http://www.blogger.com/atom/ns#" term="project management"/><category scheme="http://www.blogger.com/atom/ns#" term="table"/><title type='text'>Kanban - organize your and your team work</title><content type='html'>Lately I went at 4Developers conference in Warsaw.&lt;br /&gt;
One of the most interesting talk was about Kanban provided by Paweł Brodziński.&lt;br /&gt;
I want to show you my white board - before and after Kanban &quot;implementation&quot; :)&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div id=&quot;__ss_7460933&quot; style=&quot;margin: 40px auto 20px auto; width:650px&quot;&gt;&lt;b style=&quot;display: block; margin: 12px 0px 4px;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/pawelbrodzinski/kanban-improvements-when-you-dont-look-for-them&quot; title=&quot;Kanban - improvements when you don&#39;t look for them&quot;&gt;Kanban - improvements when you don&#39;t look for them&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder=&quot;0&quot; height=&quot;400&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/7460933&quot; width=&quot;650&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;div style=&quot;padding: 5px 0px 12px;&quot;&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/pawelbrodzinski&quot;&gt;Pawel Brodzinski&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm1hD_e60ZquasA76u2WsJsrlczyp3J164oST4FXn4YwdFYLySjoqC82NM7591LFZ5Jdv0cN3JjQXR3eBZJWHPdQNfNai_6tj3xv59LpZdjP6QEFFWVpu5fkvHVpqazkSdbN0BKsKpYzUJ/s1600/kanban-table-step-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXHv9xFgFn5PelTPY7HHJXx1iDpXhMbhMtqY35FoD93slgomiQbzAnP8BRXLIpxXYFN37ReUMSgNSo1ZccjwU4JteXmT5VWfWNg45lmRPdFPC2BnhZ4p166L_2OYrlra5Cm198Py1zuzXd/s1600/kanban-table-step-4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm1hD_e60ZquasA76u2WsJsrlczyp3J164oST4FXn4YwdFYLySjoqC82NM7591LFZ5Jdv0cN3JjQXR3eBZJWHPdQNfNai_6tj3xv59LpZdjP6QEFFWVpu5fkvHVpqazkSdbN0BKsKpYzUJ/s1600/kanban-table-step-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;439&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm1hD_e60ZquasA76u2WsJsrlczyp3J164oST4FXn4YwdFYLySjoqC82NM7591LFZ5Jdv0cN3JjQXR3eBZJWHPdQNfNai_6tj3xv59LpZdjP6QEFFWVpu5fkvHVpqazkSdbN0BKsKpYzUJ/s640/kanban-table-step-1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;My white board - beginning of redesign, pretty mess huh?&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFrcJc4qESLx8zk_O66zPUc-tg9UnphQgFC1tP_qAnn13ejG2ZdaPwuH-RQt8r98LFPSY_NM2pQ1XCS1YLbXkRzJzU66daaT75NfS2yXGe3K3_zdiq0HAjtgv1tHaufBCHtRkOEx3pEvNM/s1600/kanban-table-step-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;436&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFrcJc4qESLx8zk_O66zPUc-tg9UnphQgFC1tP_qAnn13ejG2ZdaPwuH-RQt8r98LFPSY_NM2pQ1XCS1YLbXkRzJzU66daaT75NfS2yXGe3K3_zdiq0HAjtgv1tHaufBCHtRkOEx3pEvNM/s640/kanban-table-step-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;One by one rewriting tasks from white board to yellow stickers. and I had opportunity to clean up this dirty board. Can you see the difference?&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1w7mIwzeGQZgw-qyPybcLyCVZClvKb0REuuoiR7_W86L8efkvpLaQ55EByhvKjzAc17RXt2hebpf5r5lUXSu2fzjoirWSzYWYLK3AdpBhiUY3blR-ZOu4FlfZxk5cdl12AhXpeN1lfSJu/s1600/kanban-table-step-3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;436&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1w7mIwzeGQZgw-qyPybcLyCVZClvKb0REuuoiR7_W86L8efkvpLaQ55EByhvKjzAc17RXt2hebpf5r5lUXSu2fzjoirWSzYWYLK3AdpBhiUY3blR-ZOu4FlfZxk5cdl12AhXpeN1lfSJu/s640/kanban-table-step-3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Kanban table is ready - everything went perfect. In my table you can find this columns: ideas, bugs, priorities, testing, development and done. From now I started my work powered by Kanban.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXHv9xFgFn5PelTPY7HHJXx1iDpXhMbhMtqY35FoD93slgomiQbzAnP8BRXLIpxXYFN37ReUMSgNSo1ZccjwU4JteXmT5VWfWNg45lmRPdFPC2BnhZ4p166L_2OYrlra5Cm198Py1zuzXd/s1600/kanban-table-step-4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;436&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXHv9xFgFn5PelTPY7HHJXx1iDpXhMbhMtqY35FoD93slgomiQbzAnP8BRXLIpxXYFN37ReUMSgNSo1ZccjwU4JteXmT5VWfWNg45lmRPdFPC2BnhZ4p166L_2OYrlra5Cm198Py1zuzXd/s640/kanban-table-step-4.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;After few hours - you can clearly see what changed&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;There is a lot of on-line tools too if you don&#39;t like or don&#39;t have white board:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.agilezen.com/&quot;&gt;http://www.agilezen.com/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://kanbanery.com/&quot;&gt;http://kanbanery.com/&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/3361459686144788995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/3361459686144788995'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2012/01/kanban-organize-your-and-your-team-work.html' title='Kanban - organize your and your team work'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm1hD_e60ZquasA76u2WsJsrlczyp3J164oST4FXn4YwdFYLySjoqC82NM7591LFZ5Jdv0cN3JjQXR3eBZJWHPdQNfNai_6tj3xv59LpZdjP6QEFFWVpu5fkvHVpqazkSdbN0BKsKpYzUJ/s72-c/kanban-table-step-1.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-2140991731257994719</id><published>2011-07-03T16:08:00.000+02:00</published><updated>2011-07-03T16:08:13.283+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="asynchronous"/><category scheme="http://www.blogger.com/atom/ns#" term="Code snippet"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><title type='text'>Loading CSS and JS async in jQuery - Code snippet</title><content type='html'>&lt;pre class=&quot;brush: js&quot;&gt;&lt;script src=&quot;/jquery-1.4.4.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  $(function(){

    // async CSS
    $(&#39;head&#39;).append(&#39;&lt;link href=&quot;/style.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;&#39;);

    // async JavaScript
    $.getScript(&quot;/script.js&quot;, function(){
      alert(&#39;complete&#39;);
    });

  });
&lt;/script&gt;&lt;/pre&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/2140991731257994719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/2140991731257994719'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2011/07/loading-css-and-js-async-in-jquery-code.html' title='Loading CSS and JS async in jQuery - Code snippet'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-7872169851065812340</id><published>2011-06-03T13:34:00.001+02:00</published><updated>2011-06-03T13:38:05.534+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="autocomplete"/><category scheme="http://www.blogger.com/atom/ns#" term="cast"/><category scheme="http://www.blogger.com/atom/ns#" term="NetBeans"/><category scheme="http://www.blogger.com/atom/ns#" term="oop"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="variable"/><title type='text'>Cast variable to enable autocomplete in NetBeans</title><content type='html'>Hello, this post is for my own reminder - I bet that in a week I forgot it ;)&lt;br /&gt;
I hope someone will find it helpfull too.&lt;br /&gt;
&lt;br /&gt;
One of the most importand tool in any IDE is autocomplete.&lt;br /&gt;
You don&#39;t need to look in documentation to find method what you are exactly looking for. With autocomplete its extremely faster - well we all knew that.&lt;br /&gt;
&lt;br /&gt;
But the problem in NetBeans comes when you get variable from some method and this variable starts to represent object. Like in this example:&lt;br /&gt;
&lt;pre class=&quot;brush: php&quot;&gt;$doc = new DOMDocument();
$doc-&amp;gt;loadHTMLFile(&quot;examplePage.html&quot;);
$form = $doc-&amp;gt;getElementsById(&quot;myform&quot;);
$attr = $form-&amp;gt;&lt;/pre&gt;
So now you want do the magic with new &lt;strong&gt;DOMElement&lt;/strong&gt; object inside $form variable.&lt;br /&gt;
You type $form-&amp;gt;, hit Ctrl+Space... and NetBeans says &#39;No suggestions&#39;&amp;nbsp;- what a pity.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcE81dWd5SAODpLrEcL5gXFmyrgs0FrLD2UlQxWci7wULTqxmyA6fbGkDskxLr-3L_gbIOuwSRUfn3hfVqqr_XLyagJEa0E2dtu-xeIa1YysQ6yjxMWQm6Bx5-FUBkI75dTVj5tWjnxN26/s1600/netbeans1.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcE81dWd5SAODpLrEcL5gXFmyrgs0FrLD2UlQxWci7wULTqxmyA6fbGkDskxLr-3L_gbIOuwSRUfn3hfVqqr_XLyagJEa0E2dtu-xeIa1YysQ6yjxMWQm6Bx5-FUBkI75dTVj5tWjnxN26/s1600/netbeans1.gif&quot; t8=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Sometimes I use VisualStudio IDE for C# projects and in this situations VS works with no problem. Just using bracket&#39;s casting like in this pseudocode:&lt;br /&gt;
&lt;pre class=&quot;brush: php&quot;&gt;$attr = (DOMElement)$form-&amp;gt;getAttribute(&quot;action&quot;);&lt;/pre&gt;
&lt;br /&gt;
&lt;strong&gt;But how to do it in NetBeans? Here is the answer:&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: php&quot;&gt;$doc = new DOMDocument();
$doc-&amp;gt;loadHTMLFile(&quot;examplePage.html&quot;);

/* @var $form DOMElement */

$form = $doc-&amp;gt;getElementsById(&quot;myform&quot;);
$attr = $form-&amp;gt;getAttribute(&quot;action&quot;);&amp;nbsp;&lt;/pre&gt;
As you can see we need to add comment line where we define the variable and its type. After that Ctrl+Space combination gives us very nice list of methods. Little odd solution for me but its better than nothing ;) Now my work gets pleasant again.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisjUS0ZCEIlVwXuuiF_dwsCUwI1kQoHsitUbtaXOk_jgY5RQdWQDC-IzRa_g0wIZ5XkuR30s8l1ExXprfGbS43Z95AO8DkvNuZqPRdammU2PzmggqzrzNUaTgiecxwCY8xnH3ylTT8PUXY/s1600/netbeans2.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisjUS0ZCEIlVwXuuiF_dwsCUwI1kQoHsitUbtaXOk_jgY5RQdWQDC-IzRa_g0wIZ5XkuR30s8l1ExXprfGbS43Z95AO8DkvNuZqPRdammU2PzmggqzrzNUaTgiecxwCY8xnH3ylTT8PUXY/s1600/netbeans2.gif&quot; t8=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/7872169851065812340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/7872169851065812340'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2011/06/cast-variable-to-enable-autocomplete-in.html' title='Cast variable to enable autocomplete in NetBeans'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcE81dWd5SAODpLrEcL5gXFmyrgs0FrLD2UlQxWci7wULTqxmyA6fbGkDskxLr-3L_gbIOuwSRUfn3hfVqqr_XLyagJEa0E2dtu-xeIa1YysQ6yjxMWQm6Bx5-FUBkI75dTVj5tWjnxN26/s72-c/netbeans1.gif" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-1981490932030859118</id><published>2011-04-06T13:14:00.004+02:00</published><updated>2011-04-06T14:09:02.697+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bug"/><category scheme="http://www.blogger.com/atom/ns#" term="hidden nodes"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="Treeview"/><title type='text'>jQuery Treeview: Preopened child-node is invisible/hidden</title><content type='html'>&lt;strong&gt;jQuery Treeview is very nice lightweight and flexible transformation of an unordered list into an expandable and collapsable tree, great for unobtrusive navigation enhancements. Supports both location and cookie based persistence.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
When I started using Treeview I found problem with pre-opening child nodes. While first level nodes are pre-opening just fine, the chidren of parent nodes do not shows up.&lt;br /&gt;
&lt;br /&gt;
The problem is in &lt;em&gt;prepareBranches &lt;/em&gt;function, where script hides all nodes which don&#39;t have &#39;&lt;em&gt;open&lt;/em&gt;&#39; class.&lt;br /&gt;
Yes, as you probably suspect it hides also parents of node which has this &#39;&lt;em&gt;open&lt;/em&gt;&#39; class.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Here is the Treeview plugin official page: &lt;a href=&quot;http://bassistance.de/jquery-plugins/jquery-plugin-treeview/&quot;&gt;http://bassistance.de/jquery-plugins/jquery-plugin-treeview/&lt;/a&gt;&lt;br /&gt;
And here you find some nifty samples: &lt;a href=&quot;http://jquery.bassistance.de/treeview/demo/&quot;&gt;http://jquery.bassistance.de/treeview/demo/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I made little modification of the function and problem is solved. And also, by coincidence&amp;nbsp;it solved another problem whith wrong icon of pre-opened nodes. &lt;br /&gt;
&lt;br /&gt;
Today I posted &lt;a href=&quot;https://github.com/jzaefferer/jquery-treeview/issues/6&quot;&gt;issue on Treeview&#39;s github&lt;/a&gt; about this.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Replication of issue: &lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: js&quot;&gt;&amp;lt;script src=&#39;jquery.treeview.js&#39; type=&#39;text/javascript&#39;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;link rel=&#39;stylesheet&#39; href=&#39;jquery.treeview.css&#39; /&amp;gt;

&amp;lt;script type=&#39;text/javascript&#39;&amp;gt;
    $(function() {
        $(&#39;#treeContainer&#39;).treeview({
            collapsed: true,
            unique: true,
        });
    });
&amp;lt;/script&amp;gt;
&amp;lt;ul id=&#39;treeContainer&#39; class=&#39;filetree&#39;&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;span class=&#39;folder&#39;&amp;gt;GrandParent&amp;lt;/span&amp;gt;
        &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;span class=&#39;folder&#39;&amp;gt;Parent&amp;lt;/span&amp;gt;
                &amp;lt;ul&amp;gt;
                    &amp;lt;li class=&#39;open&#39;&amp;gt;&amp;lt;span class=&#39;folder&#39;&amp;gt;Pre-opened&amp;lt;/span&amp;gt;
                        &amp;lt;ul&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;span class=&#39;folder&#39;&amp;gt;Pre-opened child 1&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;span class=&#39;folder&#39;&amp;gt;Pre-opened child 2&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;/ul&amp;gt;
                    &amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;&amp;lt;span class=&#39;folder&#39;&amp;gt;Pre-opened sibling&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;/ul&amp;gt;
            &amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;
In above situation the &quot;Pre-opened&quot; folder should be expanded, but it&#39;s not. Solution for me is modification of prepareBranches function: &lt;br /&gt;
&lt;pre class=&quot;brush: js&quot;&gt;prepareBranches: function(settings) {
    if (!settings.prerendered) {
        // mark last tree items
        this.filter(&quot;:last-child:not(ul)&quot;).addClass(CLASSES.last);
        // collapse whole tree, or only those marked as closed, anyway except those marked as open
        this.filter((settings.collapsed ? &quot;&quot; : &quot;.&quot; + CLASSES.closed) + &quot;:not(.&quot; + CLASSES.open + &quot;)&quot;).find(&quot;&amp;gt;ul&quot;).hide();
        this.filter(&quot;.&quot; + CLASSES.open).parents().find(&quot;&amp;gt;ul&quot;).show();
    }
    // return all items with sublists
    return this.filter(&quot;:has(&amp;gt;ul)&quot;);
},
&lt;/pre&gt;
Only change here is to add this line of code: &lt;br /&gt;
&lt;pre class=&quot;brush: js&quot;&gt;this.filter(&quot;.&quot; + CLASSES.open).parents().find(&quot;&amp;gt;ul&quot;).show();
&lt;/pre&gt;
This finds all parents of Pre-opened folder and simply unhide them. My solution by coincidence solves also bug described in this issue &lt;a href=&quot;https://github.com/jzaefferer/jquery-treeview/issues/2&quot;&gt;https://github.com/jzaefferer/jquery-treeview/issues/2&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Please comment if you&#39;ll find it usefull ;)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/1981490932030859118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/1981490932030859118'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2011/04/jquery-treeview-preopened-child-node-is.html' title='jQuery Treeview: Preopened child-node is invisible/hidden'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-8490867393966953538</id><published>2011-04-06T11:53:00.002+02:00</published><updated>2011-06-03T13:48:55.640+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dialogs"/><category scheme="http://www.blogger.com/atom/ns#" term="forms"/><category scheme="http://www.blogger.com/atom/ns#" term="Impromptu"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="popup"/><title type='text'>jQuery Impromptu: How catch form data on submit using enter key event</title><content type='html'>Just quick post about &lt;strong&gt;jQuery Impromptu Extension&lt;/strong&gt; which I made.&lt;br /&gt;
&lt;br /&gt;
I&#39;m using jQuery Impromptu as my popup/dialog/propmt tool and it&#39;s great.&lt;br /&gt;
&lt;br /&gt;
But I run into huge problem with proper form submiting on enter key event.&lt;br /&gt;
&lt;br /&gt;
Enter key event handling inside forms opened via the prompt are missing in jQuery Impromptu 3.1. So, after enter key hit, you could pass form data to submit function instead of page reload.&lt;br /&gt;
&lt;br /&gt;
I had a situation where I had login and registration form on one prompt, and imagine what a problem was when you input your user name and pass, hit enter and...... and nothing happen.&lt;br /&gt;
&lt;br /&gt;
My extension solve this problem. Read more about &lt;a href=&quot;http://dobiatowski.blogspot.com/p/impromptu-extension.html&quot;&gt;jQuery Impromptu Extension &lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/8490867393966953538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/8490867393966953538'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2011/04/jquery-impromptu-how-cach-form-data-on.html' title='jQuery Impromptu: How catch form data on submit using enter key event'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-3839183591281554625</id><published>2010-08-05T11:57:00.002+02:00</published><updated>2011-04-06T14:11:53.109+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bug"/><category scheme="http://www.blogger.com/atom/ns#" term="eksperymenty"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="toggle"/><title type='text'>Bug in jQuery 1.4.2 toggle() function</title><content type='html'>&lt;div class=&quot;comment searchable&quot;&gt;
jQuery toggle() function don&#39;t affect elements hidden by thier parent object.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Background of the problem&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In latest project i have build classical order form with fields divided into two groups:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;payment user data&lt;/li&gt;
&lt;li&gt;postal user data&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Very often postal data are the same like payment so like every other page do i made button &quot;Postal same as payment data&quot;. I used jQuery toggle() function to toggle unnecessary inputs. But the problem came when I crossed this functionality with &quot;user or company&quot; option which was toggling some of the company related fields.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;Whats happen&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Company inputs was on payment side and postal side of form. And if &quot;Postal same as payment data&quot; option was selected company inputs in postal side was invisible because its parent object was hidden. In this situation when I changed &quot;user or company&quot; option from &lt;i&gt;company&lt;/i&gt; to &lt;i&gt;user&lt;/i&gt; and then turned off &quot;Postal same as payment data&quot; option. It should show hidden postal form and hide all company inputs. But it wasn&#39;t.&lt;br /&gt;
Company inputs on visible payment side was hidden but on postal side they had still display:inline style set.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;toggle() function didn&#39;t hit objects inside its hidden parents.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In the link below I posted code for testing, which show that .toggle() doesn&#39;t work for objects inside hidden parents. &lt;span class=&quot;icon&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;ext-link&quot; href=&quot;http://jsfiddle.net/kXctQ/&quot;&gt;&lt;span class=&quot;icon&quot;&gt;http://jsfiddle.net/kXctQ/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;comment searchable&quot;&gt;
&lt;br /&gt;
in this example A &amp;amp; B should toggle together, but when you click &#39;toggle span&#39; button once, then &#39;toggle div&#39; once and again &#39;toggle span&#39; you will see, that B object is still visible&lt;span class=&quot;icon&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solution&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Instead toggle() I created this function and it workout:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: js&quot;&gt;&amp;lt;script type=&#39;text/javascript&#39;&amp;gt;
 function toggleCompanyFields() {
  if ($(&#39;.companyFields&#39;).css(&#39;display&#39;)==&#39;none&#39;)
   $(&#39;.companyFields&#39;).show();
  else
   $(&#39;.companyFields&#39;).hide();
 }
&amp;lt;/script&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;comment searchable&quot;&gt;
&lt;br /&gt;
This bug was posted on tracker and I hope that jQuery team will fix it soon. Dobiatowski! &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/3839183591281554625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/3839183591281554625'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2010/08/bug-in-jquery-142-toggle-function.html' title='Bug in jQuery 1.4.2 toggle() function'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-7612796023776046411</id><published>2010-06-14T02:03:00.000+02:00</published><updated>2010-06-14T02:22:18.962+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="amazon"/><category scheme="http://www.blogger.com/atom/ns#" term="eksperymenty"/><category scheme="http://www.blogger.com/atom/ns#" term="SEO"/><category scheme="http://www.blogger.com/atom/ns#" term="url"/><title type='text'>Fun staff with Amazon URL</title><content type='html'>Just want to share with my discover...&lt;br /&gt;
&lt;br /&gt;
when i was reading article about URL at knowledge center i found an example of Amazon URL.&lt;br /&gt;
&lt;br /&gt;
what a nice advantage they did... check those URLs:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.amazon.com/Avatar-Two-Disc-Blu-ray-DVD-Combo/dp/B002VPE1B6/ref=pd_ts_zgc_d_16295751_1_i?ie=UTF8&amp;amp;s=dvd&amp;amp;pf_rd_p=1244297022&amp;amp;pf_rd_s=right-4&amp;amp;pf_rd_t=101&amp;amp;pf_rd_i=193640011&amp;amp;pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_r=0F0NCYHK8871YX8XWSFM&quot;&gt;http://www.amazon.com/&lt;b style=&quot;color: lime;&quot;&gt;Avatar-Two-Disc-Blu-ray-DVD-Combo&lt;/b&gt;/dp/B002VPE1B6/ref=pd_ts_zgc_d_16295751_1_i?ie=UTF8&amp;amp;s=dvd&amp;amp;pf_rd_p=1244297022&amp;amp;pf_rd_s=right-4&amp;amp;pf_rd_t=101&amp;amp;pf_rd_i=193640011&amp;amp;pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_r=0F0NCYHK8871YX8XWSFM&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
after cutoff all unnecessary stuff we can start play:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.amazon.com/whatever/dp/B002VPE1B6/whatever&quot;&gt;http://www.amazon.com/&lt;span style=&quot;color: lime;&quot;&gt;whatever&lt;/span&gt;/dp/B002VPE1B6/&lt;span style=&quot;color: lime;&quot;&gt;whatever&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.amazon.com/LOVES-eBAY/dp/B002VPE1B6/but-eBAY-dont-care&quot;&gt;http://www.amazon.com/&lt;span style=&quot;color: lime;&quot;&gt;LOVES-eBAY&lt;/span&gt;/dp/B002VPE1B6/&lt;span style=&quot;color: lime;&quot;&gt;but-eBAY-dont-care&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.amazon.com/dobiatowski-great-deal/dp/B002VPE1B6/&quot;&gt;http://www.amazon.com/&lt;span style=&quot;color: lime;&quot;&gt;dobiatowski-great-deal&lt;/span&gt;/dp/B002VPE1B6/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Lets promote some funny URL by back-linking to it. :-)) who is interested?&lt;br /&gt;
&lt;br /&gt;
P.S.&lt;br /&gt;
Myślę, że wszyscy zrozumieli co i jak. Więc powtórzę tylko:&lt;br /&gt;
Może by tak wypromować jakiś śmieszny adres, ktoś zainteresowany?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/7612796023776046411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/7612796023776046411'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2010/06/fun-staff-with-amazon-url.html' title='Fun staff with Amazon URL'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-2060776731531773914</id><published>2010-06-09T12:37:00.000+02:00</published><updated>2010-06-09T12:37:59.935+02:00</updated><title type='text'>Caffeine w końcu uruchomione!</title><content type='html'>Google poinformowało, że Caffeine, nowy silnik wyszukiwarki, jest gotowy. Dostarcza o 50%  świeższych wyników wyszukiwania niż ostatni indeks. A co z działaniami SEO?&lt;br /&gt;
&lt;br /&gt;
W sierpniu ubiegłego roku pojawiły się pierwsze informacje na temat Caffeine. Ideą przyświecającą programistom Google było przyspieszenie wyszukiwarki, zwiększenie przydatności wyników i ich wszechstronności. W grudniu system wydawał się gotowy, ale nie został wprowadzony. Google ogłosiła właśnie, że system Caffeine został ukończony. przekonuje, że udało im się osiągnąć swój cel: wyniki wyszukiwania mają być tak dokładnie jak nigdy wcześniej. Stary silnik wyszukiwarki składał się z szeregu warstw, a jedne były aktualizowane częściej niż drugie. Caffeine natomiast analizuje sieć w małych porcjach i aktualizuje wyniki wyszukiwania nieprzerwanie i globalnie. Po odnalezieniu nowych stron, czy nowych informacji na już istniejących stronach, mogą być one dodane wprost do indeksu. A to ma oznaczać jeszcze świeższe informacje w wynikach. Google podzieliło się również kilkoma statystykami dotyczącymi Caffeine. Wiemy na przykład, że w każdej sekundzie analizowane są równolegle setki tysięcy stron, a sam system wykorzystuje blisko 100 mln gigabajtów przestrzeni w jednej bazie danych, dodając każdego dnia informacje na poziomie setek tysięcy gigabajtów. Google nie poinformowało czy Caffeine pojawi się u wszystkich w jednym czasie i kiedy to się stanie, czy raczej zmiany będą wprowadzane stopniowo. Firma zapowiedziała tylko, że w ciągu najbliższych tygodni będzie miała więcej do powiedzenia w tym temacie. &lt;br /&gt;
&lt;br /&gt;
Można zapytać na koniec: a co z SEO, które wyrosło na bardzo poważną gałąź e-biznesu? Choć z oficjalnymi analizami poczekać trzeba będzie do pełnego startu Caffeine, to już teraz można powiedzieć, że zamieszanie będzie spore, bowiem nowy system bierze pod uwagę nieco inne kryteria i miejsca w wynikach wyszukiwania mogą się znacząco różnić od tych dostępnych dziś.&lt;br /&gt;
&lt;br /&gt;
Źródło: &lt;a href=&quot;http://gospodarka.gazeta.pl/gospodarka/1,60488,7991319,Google__silnik_Caffeine_gotowy.html&quot;&gt;http://gospodarka.gazeta.pl/gospodarka/1,60488,7991319,Google__silnik_Caffeine_gotowy.html&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/2060776731531773914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/2060776731531773914'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2010/06/caffeine-w-koncu-uruchomione.html' title='Caffeine w końcu uruchomione!'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-2375310252172110221</id><published>2010-02-26T01:04:00.000+01:00</published><updated>2010-03-01T11:48:39.710+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AdWords"/><title type='text'>Kupony promocyjne do konta AdWords</title><content type='html'>Hej&lt;br /&gt;
&lt;br /&gt;
Dzisiaj znalazłem w internecie taki oto wpis na blogu:&lt;br /&gt;
&lt;br /&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;http://hillelstoler.com/2010/01/03/free-google-adwords-promotional-code-coupons-2010/&quot;&gt;http://hillelstoler.com/2010/01/03/free-google-adwords-promotional-code-coupons-2010/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Autor utrzymuje, że po umieszczeniu linka do jego bloga odeśle w zamian kupon promocyjny o wartości 200NIS - czyli około $50.&lt;br /&gt;
&lt;br /&gt;
Po przeczytaniu komentarzy i informacji, że linki mogą zawierać rel=&#39;nofollow&#39;, dałem się przekonać. Dam znać jak tylko dostanę od niego odpowiedź.&lt;br /&gt;
&lt;br /&gt;
Czy jestem naiwny? :)&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Aktualizacja (2 dni później)&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Przeczucie mnie nie myliło, właśnie zasiliłem moje konto kwotą 156zł.&lt;br /&gt;
Nasz blogger, który rozdaje kupony odpisał do mnie po niecałych 24 godzinach. Niestety pierwsze podejście się nie powiodło. Przy próbie użycia kuponu, AdWords odpowiedziało, że został on już zrealizowany. Pomyślałem sobie: &quot;HA, NAIWNIAK&quot;. Wysłałem jednak info o tym do pana Hillera, od którego dostałem pierwszy kupon. Po kolejnych kilku godzinach miałem już nowy numer. Tym razem wszystko zadziałało tak jak powinno.&lt;br /&gt;
&lt;br /&gt;
NIS (&lt;a href=&quot;http://en.wikipedia.org/wiki/Israeli_new_shekel&quot;&gt;Israeli New shekel&lt;/a&gt;)&lt;b&gt; &lt;/b&gt;to waluta pochodząca prosto z Izraela, a jej obecny &lt;a href=&quot;http://bankisrael.gov.il/firsteng.htm&quot;&gt;kurs w stosunku do Euro&lt;/a&gt; to 5,16, stąd po przewalutowaniu powstała właśnie kwota 156zł.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/2375310252172110221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/2375310252172110221'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2010/02/kupony-promocyjne-do-konta-adwords.html' title='Kupony promocyjne do konta AdWords'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-7063140807879902145</id><published>2010-02-12T07:52:00.000+01:00</published><updated>2010-02-12T08:22:48.170+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bing"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="SEO"/><title type='text'>BING opublikował nowe wskazówki dla webmasterów</title><content type='html'>Na blogu &lt;a href=&quot;http://www.bing.com/community/blogs/webmaster/archive/2010/02/10/webmaster-center-faq-updated.aspx?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed:%20msdn/webmaster%20%28Live%20Search%20Webmaster%20Center%20Blog%29&amp;amp;utm_content=Google%20Reader&quot;&gt;Webmaster Center&lt;/a&gt; Binga pojawiła się informacja o zaktualizowanej wersji wskazówek dla webmasterów. Dla mnie osobiście jest to pierwszy kontakt z tym dokumentem.

Również Google udostępnia taki &quot;przewodnik&quot;. Myślę, że większość z nas (webmasterów) już się z nim zapoznała.

Poniżej możecie ściągnąć oba PDFy:

&lt;a href=&quot;http://download.microsoft.com/download/4/5/4/454C13D4-D94D-4B54-8E46-FE403DF7632B/WMC_FAQ.pdf&quot;&gt;BING Webmaster Center FAQ&lt;/a&gt;
&lt;a href=&quot;http://www.google.com/webmasters/docs/search-engine-optimization-starter-guide.pdf&quot;&gt;Google Search Engine Optimization&lt;/a&gt; - dostępne także po &lt;a href=&quot;http://www.google.pl/intl/pl/webmasters/docs/search-engine-optimization-starter-guide-pl.pdf&quot;&gt;polsku&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/7063140807879902145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/7063140807879902145'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2010/02/bing-opublikowa-nowe-wskazowki-dla.html' title='BING opublikował nowe wskazówki dla webmasterów'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3319646036442611885.post-7552648157698955388</id><published>2010-01-19T20:26:00.000+01:00</published><updated>2010-01-19T20:29:12.308+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="nowy blog"/><category scheme="http://www.blogger.com/atom/ns#" term="początek"/><category scheme="http://www.blogger.com/atom/ns#" term="powitanie"/><title type='text'>Hejka!</title><content type='html'>Na początek powiem tylko cześć! ;)

A co będzie dalej to się okaże.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/7552648157698955388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3319646036442611885/posts/default/7552648157698955388'/><link rel='alternate' type='text/html' href='http://dobiatowski.blogspot.com/2010/01/hejka.html' title='Hejka!'/><author><name>Dobiatowski</name><uri>http://www.blogger.com/profile/06606382373956885367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>