<?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-1770048039026775735</id><updated>2024-10-24T02:45:51.188-07:00</updated><title type='text'>Nagesh  Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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>87</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-6737618752045039525</id><published>2019-02-15T05:44:00.000-08:00</published><updated>2019-02-15T05:44:15.428-08:00</updated><title type='text'>Importing MySQL Databases via SSH</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;ol style=&quot;-webkit-text-stroke-width: 0px; background-color: white; box-sizing: border-box; color: #444444; font-family: Helvetica, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 1rem; margin-top: 0px; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0.75rem; margin-top: 0.75rem;&quot;&gt;Open the .SQL file in a text editor to ensure it is formatted to use the correct database. There should be a&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;use database&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;command at the top, and it should reference the database that is receiving the imported data. If this command is not included, you can add or use it once you log in to MySQL.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0.75rem; margin-top: 0.75rem;&quot;&gt;Log in to SSH as the root user. If you do not know how to do this, see&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://in.godaddy.com/help/how-do-i-access-mysql-using-ssh-1230&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1976d2; text-decoration: underline;&quot;&gt;How do I access MySQL using SSH?&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0.75rem; margin-top: 0.75rem;&quot;&gt;To log in to MySQL, type&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;mysql -u&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;username&lt;/em&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;-p&lt;/strong&gt;, where&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;username&lt;/em&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is your database username.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0.75rem; margin-top: 0.75rem;&quot;&gt;When you see&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Enter password:&lt;/strong&gt;, enter your password for that MySQL user.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0.75rem; margin-top: 0.75rem;&quot;&gt;If you did not include the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;use database&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;command in the .SQL file, select the target database of the import. Do this by typing&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;use&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;database_name;&lt;/em&gt;&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and then press&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Enter&lt;/strong&gt;.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0.75rem; margin-top: 0.75rem;&quot;&gt;Type&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;SOURCE /path/to/sql/file.sql&lt;/strong&gt;, and then press&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Enter&lt;/strong&gt;.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0.75rem; margin-top: 0.75rem;&quot;&gt;Monitor the running import log to check for errors.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0.75rem; margin-top: 0.75rem;&quot;&gt;To confirm the data was imported correctly, type&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;show tables;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;and then press&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Enter&lt;/strong&gt;.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 0.75rem; margin-top: 0.75rem;&quot;&gt;Type&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;select * from&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;table&lt;/em&gt;;&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and then press&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Enter&lt;/strong&gt;. Your imported MySQL database tables display.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/6737618752045039525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2019/02/importing-mysql-databases-via-ssh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/6737618752045039525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/6737618752045039525'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2019/02/importing-mysql-databases-via-ssh.html' title='Importing MySQL Databases via SSH'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-4311298192991029379</id><published>2018-12-06T23:18:00.002-08:00</published><updated>2018-12-06T23:18:25.718-08:00</updated><title type='text'>Port Forwarding Tester</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;img alt=&quot;about&quot; src=&quot;https://www.yougetsignal.com/img/about.gif&quot; style=&quot;-webkit-text-stroke-width: 0px; border: 0px; color: #666666; font-family: arial, tahoma, helvetica, verdana, sans-serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; height: 1.25em; letter-spacing: normal; margin: 0px 0px 0.5em; orphans: 2; padding: 0px; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; width: 4.125em; word-spacing: 0px;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: #666666; display: inline !important; float: none; font-family: arial, tahoma, helvetica, verdana, sans-serif; font-size: small; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; border: 0px; color: #666666; font-family: arial, tahoma, helvetica, verdana, sans-serif; font-size: 0.8em; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 0px; orphans: 2; padding: 0px; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
The open port checker is a tool you can use to check your external IP address and detect open ports on your connection. This tool is useful for finding out if your port forwarding is setup correctly or if your server applications are being blocked by a firewall. This tool may also be used as a port scanner to scan your network for ports that are commonly forwarded. It is important to note that some ports, such as port 25, are often blocked at the ISP level in an attempt to prevent malicious activity.&lt;span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Resource: https://www.yougetsignal.com/tools/open-ports/&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/4311298192991029379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2018/12/port-forwarding-tester.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/4311298192991029379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/4311298192991029379'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2018/12/port-forwarding-tester.html' title='Port Forwarding Tester'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-8847979694353597980</id><published>2017-04-05T06:20:00.000-07:00</published><updated>2017-04-05T06:20:01.489-07:00</updated><title type='text'>How-to extract from mysqldump</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 0px; box-sizing: border-box; color: #404040; font-family: Lato, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; margin: 0px 0px 24px; orphans: auto; outline: 0px; padding: 0px; text-align: justify; text-indent: 0px; text-transform: none; vertical-align: baseline; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
The&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;border: 0px; box-sizing: border-box; font-family: inherit; font-size: 16px; font-style: inherit; font-weight: bold; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Mysqldumpsplitter&lt;/strong&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;can extract database, table, all databases, all tables or tables matching on regular expression. It can also extract multiple tables from one database or describe the contents from a mysqldump.&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 0px; box-sizing: border-box; color: #404040; font-family: Lato, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; margin: 0px 0px 24px; orphans: auto; outline: 0px; padding: 0px; text-align: justify; text-indent: 0px; text-transform: none; vertical-align: baseline; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
The tool can extract a MySQL database from a compressed or uncompressed mysqldump. It by default produces the compressed output of sqls in default out directory but you can specify target directory or uncompressed output as well.&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 0px; box-sizing: border-box; color: #404040; font-family: Lato, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; margin: 0px 0px 24px; orphans: auto; outline: 0px; padding: 0px; text-align: justify; text-indent: 0px; text-transform: none; vertical-align: baseline; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 0px; box-sizing: border-box; color: #404040; font-family: Lato, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; margin: 0px 0px 24px; orphans: auto; outline: 0px; padding: 0px; text-align: justify; text-indent: 0px; text-transform: none; vertical-align: baseline; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
Download:&amp;nbsp;https://github.com/kedarvj/mysqldumpsplitter&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 0px; box-sizing: border-box; color: #404040; font-family: Lato, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; margin: 0px 0px 24px; orphans: auto; outline: 0px; padding: 0px; text-align: justify; text-indent: 0px; text-transform: none; vertical-align: baseline; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
Source:&amp;nbsp;http://kedar.nitty-witty.com/blog/how-to-recipes-for-mysqldumpsplitter&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/8847979694353597980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2017/04/how-to-extract-from-mysqldump.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/8847979694353597980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/8847979694353597980'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2017/04/how-to-extract-from-mysqldump.html' title='How-to extract from mysqldump'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-1798873649661088214</id><published>2016-10-14T01:56:00.001-07:00</published><updated>2016-10-14T01:56:12.979-07:00</updated><title type='text'>101 Tips to MySQL Tuning and Optimization</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
MySQL is a powerful open-source database. &amp;nbsp;With more and more database 
driven applications, people have been pushing MySQL to its limits. &amp;nbsp;Here
 are 101 tips for tuning and optimizing your MySQL install. &amp;nbsp;Some tips 
are specific to the environment they are installed on, but the concepts 
are universal. &amp;nbsp;&amp;nbsp;I have divided them up into several categories to help 
you with getting the most out of MySQL:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
MySQL is a powerful open-source database. &amp;nbsp;With more and more 
database driven applications, people have been pushing MySQL to its 
limits. &amp;nbsp;Here are 101 tips for tuning and optimizing your MySQL install.
 &amp;nbsp;Some tips are specific to the environment they are installed on, but 
the concepts are universal. &amp;nbsp;&amp;nbsp;I have divided them up into several 
categories to help you with getting the most out of MySQL:&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span id=&quot;more-2808&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
MySQL Server Hardware and OS Tuning:&lt;/h3&gt;
1. Have enough physical memory to load your entire InnoDB file into 
memory – InnoDB is much faster when the file can be accessed in memory 
rather than from disk.&lt;br /&gt;
2. Avoid Swap at all costs – swapping is reading from disk, its slow.&lt;br /&gt;
3. Use Battery-Backed RAM.&lt;br /&gt;
4. Use an advanced RAID – preferably RAID10 or higher.&lt;br /&gt;
5. Avoid RAID5 – the checksum needed to ensure integrity is costly.&lt;br /&gt;
6. Separate your OS and data partitions, not just logically, but 
physically – costly OS&amp;nbsp;writes and reads will impact your database 
performance.&lt;br /&gt;
7. Put your mysql temp space and replication logs on a separate 
partition than your data – background writes will impact your database 
when it goes to write/read from disk.&lt;br /&gt;
8. More disks equals more speed.&lt;br /&gt;
9. Faster disks are better.&lt;br /&gt;
10. Use SAS over SATA.&lt;br /&gt;
11. Smaller disks are faster than larger disks, especially in RAID configs.&lt;br /&gt;
12. Use Battery-Backed Cache RAID controllers.&lt;br /&gt;
13. Avoid software raids.&lt;br /&gt;
14. Consider using Solid State IO Cards (not disk drives) for your data 
partition – these cards can sustain over 2GB/s writes for almost any 
amount of data.&lt;br /&gt;
15. On Linux set your swappiness value to 0 – no reason to cache files 
on a database server, this is more of a web server or desktop advantage.&lt;br /&gt;
16. Mount filesystem with noatime and nodirtime if available – no reason to update database file modification times for access.&lt;br /&gt;
17. Use XFS filesystem – a faster, smaller filesystem than ext3 and has 
more options for journaling, also ext3 has been shown to have double 
buffering issues with MySQL.&lt;br /&gt;
18. Tune your XFS filesystem log and buffer variables – for maximum performance benchmark.&lt;br /&gt;
19. On Linux systems, use NOOP or DEADLINE IO scheduler – the CFQ and 
ANTICIPATORY scheduler have been shown to be slow vs NOOP and DEADLINE 
scheduler.&lt;br /&gt;
20. Use a 64-bit OS – more memory addressable and usable to MySQL.&lt;br /&gt;
21. Remove unused packages and daemons from servers – less resource stealing.&lt;br /&gt;
22. Put your host that use MySQL and your MySQL host in a hosts file – no dns lookups.&lt;br /&gt;
23. Never force kill a MySQL process – you will corrupt your database and be running for the backups.&lt;br /&gt;
24. Dedicate your server to MySQL – background processes and other services can steal from the db cpu time.&lt;br /&gt;
&lt;h3&gt;
MySQL Configuration:&lt;/h3&gt;
&lt;div&gt;
25. Use innodb_flush_method=O_DIRECT to avoid a double buffer when writing.&lt;br /&gt;
26. Avoid O_DIRECT and EXT3 filesystem – you will serialize all your writes.&lt;br /&gt;
27. Allocate enough innodb_buffer_pool_size to load your entire InnoDB file into memory – less reads from disk.&lt;br /&gt;
28. Do not make innodb_log_file_size too big, with faster and more disks
 – flushing more often is good and lowers the recovery time during 
crashes.&lt;br /&gt;
29. Do not mix innodb_thread_concurrency and thread_concurrency variables – these two values are not compatible.&lt;br /&gt;
30. Allocate a minimal amount for max_connections – too many connections can use up your RAM and lock up your MySQL server.&lt;br /&gt;
31. Keep thread_cache at a relatively high number, about 16 – to prevent slowness when opening connections.&lt;br /&gt;
32. Use &amp;nbsp;skip-name-resolve – to remove dns lookups.&lt;br /&gt;
33. Use query cache if your queries are repetitive and your data does 
not change often – however using query cache on data that changes often 
will give you a performance hit.&lt;br /&gt;
34. Increase temp_table_size – to prevent disk writes.&lt;br /&gt;
35. Increase max_heap_table_size – to prevent disk writes.&lt;br /&gt;
36. Do not set your sort_buffer_size too high – this is per connection and can use up memory fast.&lt;br /&gt;
37. Monitor key_read_requests and key_reads to determine your key_buffer
 size – the key read requests should be higher than your key_reads, 
otherwise you are not efficiently using your key_buffer.&lt;br /&gt;
38. Set innodb_flush_log_at_trx_commit = 0 will improve performance, but
 leaving it to default (1), you will ensure data integrity, you will 
also ensure replication is not lagging&lt;br /&gt;
39. Have a test environment where you can test your configs and restart often, without affecting production.&lt;/div&gt;
&lt;h3&gt;
MySQL Schema Optimization:&lt;/h3&gt;
&lt;div&gt;
40. Keep your database trim.&lt;br /&gt;
41. Archive old data – to remove excessive row returns or searches on queries.&lt;br /&gt;
42. Put indexes on your data.&lt;br /&gt;
43. Do not overuse indexes, compare with your queries.&lt;br /&gt;
44. Compress text and blob data types – to save space and reduce number of disk reads.&lt;br /&gt;
45. UTF 8 and UTF16 is slower than latin1.&lt;br /&gt;
46. Use Triggers sparingly.&lt;br /&gt;
47. Keep redundant data to a minimum – do not duplicate data unnecessarily.&lt;br /&gt;
48. Use linking tables rather than extending rows.&lt;br /&gt;
49. Pay attention to your data types, use the smallest one possible for your real data.&lt;br /&gt;
50. Separate blob/text data from other data if other data is often used for queries when blob/text are not.&lt;br /&gt;
51. Check and optimize tables often.&lt;br /&gt;
52. Rewrite InnoDB tables often to optimize.&lt;br /&gt;
53. Sometimes, it is faster to drop indexes when adding columns and then add indexes back.&lt;br /&gt;
54. Use different storage engines for different needs.&lt;br /&gt;
55. Use ARCHIVE storage engine for Logging tables or Auditing tables – this is much more efficient for writes.&lt;br /&gt;
56. Store session data in memcache rather than MySQL – memcache allows 
for auto-expiring values and prevents you from having to create costly 
reads and writes to MySQL for temporal data.&lt;br /&gt;
57. Use VARCHAR instead CHAR when storing variable length strings – to 
save space since CHAR is fixed length and VARCHAR is not (utf8 is not 
affected by this).&lt;br /&gt;
58. Make schema changes incrementally – a small change can have drastic effects.&lt;br /&gt;
59. Test all schema changes in a development environment that mirrors production.&lt;br /&gt;
60. Do NOT arbitrarily change values in your config file, it can have disastrous affects.&lt;br /&gt;
61. Sometimes less is more in MySQL configs.&lt;br /&gt;
62. When in doubt use a generic MySQL config file.&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; font-weight: bold;&quot;&gt;&lt;a href=&quot;http://mon.itor.us/?utm_source=blog&amp;amp;utm_medium=banner&amp;amp;utm_campaign=mysql5&quot;&gt;&lt;img alt=&quot;MySQL metrics widget&quot; height=&quot;347&quot; src=&quot;https://blog.monitis.com/wp-content/uploads/2011/06/dashboardScreenshot.png&quot; title=&quot;MySQL metrics&quot; width=&quot;348&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; font-weight: bold;&quot;&gt;Query Optimization:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
63. Use the slow query log to find slow queries.&lt;br /&gt;
64. Use EXPLAIN to determine queries are functioning appropriately.&lt;br /&gt;
65. Test your queries often to see if they are performing optimally – performance will change over time.&lt;br /&gt;
66. Avoid count(*) on entire tables, it can lock the entire table.&lt;br /&gt;
67. Make queries uniform so subsequent similar queries will use query cache.&lt;br /&gt;
68. Use GROUP BY instead of DISTINCT when appropriate.&lt;br /&gt;
69. Use indexed columns in WHERE, GROUP BY, and ORDER BY clauses.&lt;br /&gt;
70. Keep indexes simple, do not reuse a column in multiple indexes.&lt;br /&gt;
71. Sometimes MySQL chooses the wrong index, use USE INDEX for this case&lt;br /&gt;
72. Check for issues using SQL_MODE=STRICT.&lt;br /&gt;
73. Use a LIMIT on UNION instead of OR for less than 5 indexed fields.&lt;br /&gt;
74. Use INSERT ON DUPLICATE KEY or INSERT IGNORE instead of UPDATE to avoid the SELECT prior to update.&lt;br /&gt;
75. Use a indexed field and ORDER BY instead of MAX.&lt;br /&gt;
76. Avoid using ORDER BY RAND().&lt;br /&gt;
77. LIMIT M,N can actually slow down queries in certain circumstances, use sparingly.&lt;br /&gt;
78. Use UNION instead of sub-queries in WHERE clauses.&lt;br /&gt;
79. For UPDATES, use SHARE MODE to prevent exclusive locks.&lt;br /&gt;
80. On restarts of MySQL, remember to warm your database, to ensure that your data is in memory and queries are fast.&lt;br /&gt;
81. Use DROP TABLE then CREATE TABLE instead of DELETE FROM to remove all data from a table.&lt;br /&gt;
82. Minimize the data in your query to only the data you need, using * is overkill most of the time.&lt;br /&gt;
83. Consider persistent connections instead of multiple connections to reduce overhead.&lt;br /&gt;
84. Benchmark queries, including using load on the server, sometimes a simple query can have affects on other queries.&lt;br /&gt;
85. When load increases on your server, use SHOW PROCESSLIST to view slow/problematic queries.&lt;br /&gt;
86. Test all suspect queries in a development environment where you have mirrored production data.&lt;/div&gt;
&lt;h3&gt;
MySQL Backup Procedures:&lt;/h3&gt;
&lt;div&gt;
87. Backup from secondary replicated server.&lt;br /&gt;
88. Stop replication during backups to prevent inconsistencies on data dependencies and foreign constraints.&lt;br /&gt;
89. Stop MySQL altogether and take a backup of the database files.&lt;br /&gt;
90. Backup binary logs at same time as dumpfile if MySQL dump used – to make sure replication does not break.&lt;br /&gt;
91. Do not trust an LVM snapshot for backups – this could create data inconsistencies that will give you issues in the future.&lt;br /&gt;
92. Make dumps per table for easier single table recovery – if data is isolated from other tables.&lt;br /&gt;
93. Use –opt when using mysqldump.&lt;br /&gt;
94. Check and Optimize tables before a backup.&lt;br /&gt;
95. When importing temporarily disable foreign constraints for a faster import.&lt;br /&gt;
96. When importing temporarily disable unique checks for a faster import.&lt;br /&gt;
97. Calculate size of database/tables data and indexes after each backup to monitor growth.&lt;br /&gt;
98. Monitor slave replication for errors and delay with a cron script.&lt;br /&gt;
99. Perform Backups regularly.&lt;br /&gt;
100. Test your backups regularly.&lt;/div&gt;
&lt;div&gt;
And finally &lt;b&gt;101&lt;/b&gt;: Perform MySQL monitoring: &lt;b&gt;Monitis Unveils The World’s First Free On-demand MySQL Monitoring.&lt;/b&gt;&lt;/div&gt;
&lt;a href=&quot;http://blog.monitis.com/wp-content/uploads/2011/06/addMysqlTestWizard.png&quot;&gt;&lt;img alt=&quot;Add MySQL Monitor&quot; class=&quot;alignnone size-full wp-image-2543&quot; src=&quot;https://blog.monitis.com/wp-content/uploads/2011/06/addMysqlTestWizard.png&quot; title=&quot;Add MySQL Monitor&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Reference&lt;/b&gt;:&lt;br /&gt;
http://www.monitis.com/blog/101-tips-to-mysql-tuning-and-optimization/&lt;br /&gt;
&lt;a href=&quot;http://arteq.nl/blog/wp-content/uploads/2011/10/Monitis-MySQL-monitoring.pdf&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/1798873649661088214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2016/10/101-tips-to-mysql-tuning-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/1798873649661088214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/1798873649661088214'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2016/10/101-tips-to-mysql-tuning-and.html' title='101 Tips to MySQL Tuning and Optimization'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-6431230268078668085</id><published>2015-03-27T05:45:00.003-07:00</published><updated>2015-03-27T05:45:43.637-07:00</updated><title type='text'>Installing Solr 4.6 on Windows </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2&gt;
&lt;/h2&gt;
The steps below are a guide to help you 
install Solr versions 4.1 to 4.6.&amp;nbsp; Here, I tested Solr 4.6 installation 
on Windows 7 and Windows 8.1.&lt;br /&gt;
&lt;br /&gt;
&lt;span id=&quot;more-7453&quot;&gt;&lt;/span&gt;&lt;br /&gt;

1. Download and install &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html&quot;&gt;Java SDK&lt;/a&gt; (I installed jdk-7u45-windows-x64.exe).&lt;br /&gt;
&lt;br /&gt;

&lt;a href=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu1.png&quot;&gt;&lt;img alt=&quot;raghu1&quot; class=&quot;aligncenter size-full wp-image-7454&quot; height=&quot;382&quot; src=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu1.png&quot; width=&quot;504&quot; /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;
2. Download and install &lt;a href=&quot;http://tomcat.apache.org/download-80.cgi&quot;&gt;Apache Tomcat&lt;/a&gt; (I installed &lt;a href=&quot;http://blog.navigationarts.com/installing-solr-4-6-on-windows/32-bit/64-bit%20Windows%20Service%20Installer&quot;&gt;apache-tomcat-8.0.0-RC5.exe&lt;/a&gt;). Usually, Tomcat is installed on port 8983 (but this is optional- you can specify your own port).&lt;br /&gt;
&lt;br /&gt;

&lt;a href=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu2.png&quot;&gt;&lt;img alt=&quot;raghu2&quot; class=&quot;aligncenter size-full wp-image-7455&quot; height=&quot;389&quot; src=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu2.png&quot; width=&quot;503&quot; /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;
3. &lt;a href=&quot;http://localhost:8983/&quot;&gt;Test the Tomcat server&lt;/a&gt; in your browser. You should see the following screen:&lt;br /&gt;
&lt;br /&gt;

&lt;a href=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu3.png&quot;&gt;&lt;img alt=&quot;raghu3&quot; class=&quot;aligncenter size-full wp-image-7456&quot; height=&quot;335&quot; src=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu3.png&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;
4. You can configure the Tomcat server by going to Windows &amp;gt; Start &amp;gt; Monitor Tomcat&lt;br /&gt;
&lt;br /&gt;

&lt;a href=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu4.png&quot;&gt;&lt;img alt=&quot;raghu4&quot; class=&quot;aligncenter size-full wp-image-7457&quot; height=&quot;496&quot; src=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu4.png&quot; width=&quot;264&quot; /&gt;&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;

&lt;br /&gt;
5. Stop the Tomcat server by going to Windows &amp;gt; Start &amp;gt; Monitor Tomcat &amp;gt; General Tab&amp;gt; Stop&lt;br /&gt;
&lt;br /&gt;

&lt;a href=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu5.png&quot;&gt;&lt;img alt=&quot;raghu5&quot; class=&quot;aligncenter size-full wp-image-7460&quot; height=&quot;399&quot; src=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu5.png&quot; width=&quot;416&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
6. &lt;a href=&quot;http://www.apache.org/dyn/closer.cgi/lucene/solr/4.6.0&quot;&gt;Download Solr-4.6.0&lt;/a&gt; and unzip it in your local directory i.e. C:\ Solr-4.6.0 (download zip file).&lt;br /&gt;
7. Go to downloaded Solr folder above (step 6) and Copy solr.war file to Apache webapps folder. I.e. Copy C:\solr-4.6.0\dist\&lt;b&gt;solr-4.6.0.war&lt;/b&gt; file &amp;nbsp;to &amp;nbsp;C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps folder (rename solr-4.6.0.war to solr.war).&lt;br /&gt;
8. Create an empty Solr home folder. i.e. C:\solr&lt;br /&gt;
9. Go to downloaded Solr folder above (step 6). Copy all files from 
C:\solr-4.6.0\solr-4.6.0\example\solr folder to C:\solr (Solr home 
folder). This will be your Solr home folder.&lt;br /&gt;
10. Look into C:\solr and you will see two folders with name collection1 and bin.&lt;br /&gt;
11. Copy the jars from&amp;nbsp;C:\solr-4.6.0&lt;tt&gt;\example\lib\ext (all jars)&lt;/tt&gt;&amp;nbsp;into C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib (this is your Tomcat server main library directory).&lt;br /&gt;
12. Set the Java system property&amp;nbsp;&lt;code&gt;solr.solr.home&lt;/code&gt;&amp;nbsp;to your 
Solr Home. Go to Windows &amp;gt; Start &amp;gt; Monitor Tomcat &amp;gt; Java Tab 
&amp;gt; Java Options. Enter the following entry at the end (see below 
screenshot): -Dsolr.solr.home=c:\solr&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;http://blog.navigationarts.com/wp-content/uploads/2014/01/raghu11.png&quot;&gt;&lt;img alt=&quot;raghu11&quot; class=&quot;aligncenter size-full wp-image-7550&quot; height=&quot;334&quot; src=&quot;http://blog.navigationarts.com/wp-content/uploads/2014/01/raghu11.png&quot; width=&quot;348&quot; /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;
13. Restart Tomcat by going to Windows &amp;gt; Start &amp;gt; Monitor Tomcat &amp;gt; General Tab &amp;gt; Start&lt;br /&gt;
&lt;br /&gt;

&lt;a href=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghustart.png&quot;&gt;&lt;img alt=&quot;raghustart&quot; class=&quot;aligncenter size-full wp-image-7462&quot; height=&quot;399&quot; src=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghustart.png&quot; width=&quot;416&quot; /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;
14. Test Solr by going to &lt;a href=&quot;http://localhost:8983/solr/&quot;&gt;http://localhost:8983/solr/&lt;/a&gt; in your browser. You should see the Solr admin page below.&lt;br /&gt;
&lt;br /&gt;

&lt;a href=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu8.png&quot;&gt;&lt;img alt=&quot;raghu8&quot; class=&quot;aligncenter size-full wp-image-7472&quot; height=&quot;271&quot; src=&quot;http://blog.navigationarts.com/wp-content/uploads/2013/12/raghu8.png&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href=&quot;http://blog.navigationarts.com/installing-solr-4-6-on-windows/&quot;&gt;http://blog.navigationarts.com/installing-solr-4-6-on-windows/&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/6431230268078668085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2015/03/installing-solr-46-on-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/6431230268078668085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/6431230268078668085'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2015/03/installing-solr-46-on-windows.html' title='Installing Solr 4.6 on Windows '/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-5173688632324504811</id><published>2015-03-11T07:44:00.001-07:00</published><updated>2015-03-11T07:44:03.335-07:00</updated><title type='text'>w2ui (New JavaScript UI Library) </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;row&quot;&gt;
  &lt;div class=&quot;span10&quot;&gt;
&lt;h1&gt;
w2ui (New JavaScript UI Library) &lt;/h1&gt;
&lt;h2&gt;
Popups and Overlays and many more&lt;/h2&gt;
Popups and overlays are popular UI elements of modern web 
applications. If used right, it can significantly enhance user 
interaction, provide 
   clearity and improve navigation of your application. The w2ui library
 has both popups and overlays. A popup blocks the content of the 
   application for the duration of user interaction. An overlay, in 
turn, is non-blocking UI solutions that displays additional information.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;span10&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;span10&quot;&gt;
Link: &lt;a href=&quot;http://w2ui.com/web/demo/popup&quot;&gt;http://w2ui.com/web/demo/popup&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;span10&quot;&gt;
Link:&lt;a href=&quot;http://w2ui.com/web/demos/#!popup/popup-8&quot;&gt; http://w2ui.com/web/demos/#!popup/popup-8 &lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;span2&quot;&gt;
   &lt;br /&gt;
   &lt;a class=&quot;btn btn-success pull-right&quot; href=&quot;http://w2ui.com/web/demos#%21popup&quot; target=&quot;_blank&quot;&gt;
    More Demos
   &lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;row&quot;&gt;
  &lt;div class=&quot;span12&quot;&gt;
   &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/5173688632324504811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2015/03/w2ui-new-javascript-ui-library.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/5173688632324504811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/5173688632324504811'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2015/03/w2ui-new-javascript-ui-library.html' title='w2ui (New JavaScript UI Library) '/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-7789388449804880657</id><published>2015-03-07T02:21:00.001-08:00</published><updated>2015-03-07T02:21:32.261-08:00</updated><title type='text'>Database management MemCacheD General Usage </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
A very good Memcache tutorial video --&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/tmbwrgGsERA&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;

&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/7789388449804880657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2015/03/database-management-memcached-general.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/7789388449804880657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/7789388449804880657'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2015/03/database-management-memcached-general.html' title='Database management MemCacheD General Usage '/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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://img.youtube.com/vi/tmbwrgGsERA/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-5074732529430839487</id><published>2015-02-26T21:17:00.000-08:00</published><updated>2015-02-26T21:17:50.621-08:00</updated><title type='text'>Search Engines: Comparison between Solr and Sphinx</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;strong&gt;Similarities:&lt;/strong&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Both Solr and Sphinx satisfy all of your requirements. They’re 
fast and designed to index and search large bodies of data efficiently.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Both have a long list of high-traffic sites using them&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Both offer commercial support. (Solr, Sphinx)&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Both offer client API bindings for several platforms/languages (Sphinx, Solr)&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Both can be distributed to increase speed and capacity (Sphinx, Solr) &lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;strong&gt;Solr Advantages:&lt;/strong&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solr, being an Apache project, is obviously Apache2-licensed. 
Sphinx is GPLv2. This means that if you ever need to embed or extend 
(not just “use”) Sphinx in a commercial application, you’ll have to buy a
 commercial license (rationale)&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solr is easily embeddable in Java applications.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solr is built on top of Lucene, which is a proven technology 
over 8 years old with a huge user base (this is only a small part). 
Whenever Lucene gets a new feature or speedup, Solr gets it too. Many of
 the devs committing to Solr are also Lucene committers.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solr can be integrated with Hadoop to build distributed applications&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solr can be integrated with Nutch to quickly build a fully-fledged web search engine with crawler.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solr can index proprietary formats like Microsoft Word, PDF, etc. Sphinx can’t.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solr comes with a spell-checker out of the box.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solr comes with facet support out of the box. Faceting in Sphinx takes more work.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sphinx doesn’t allow partial index updates for field data.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; In Sphinx, all document ids must be unique unsigned non-zero 
integer numbers. Solr doesn’t even require an unique key for many 
operations, and unique keys can be either integers or strings.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solr supports field collapsing (currently as an additional patch
 only) to avoid duplicating similar results. Sphinx doesn’t seem to 
provide any feature like this.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; While Sphinx is designed to only retrieve document ids, in Solr 
you can directly get whole documents with pretty much any kind of data, 
making it more independent of any external data store and it saves the 
extra roundtrip.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solr, except when used embedded, runs in a Java web container 
such as Tomcat or Jetty, which require additional specific configuration
 and tuning (or you can use the included Jetty and just launch it with 
java -jar &lt;span class=&quot;skimlinks-unlinked&quot;&gt;start.jar&lt;/span&gt;). Sphinx has no additional configuration.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Unless you need to extend the search functionality in any proprietary way, Sphinx is your best bet.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;strong&gt;Sphinx Advantages:&lt;/strong&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Development and setup is faster&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Much better (and faster) aggregation. This was the killer feature for us.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Not XML. This is what ultimately ruled out Solr for us. We had 
to return rather large result sets (think hundreds of results) and then 
aggregate them ourselves since Solr aggregation was lacking. The amount 
of time to serialize to and from XML just absolutely killed performance.
 For small results sets though, it was perfectly fine.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Best documentation I’ve seen in an open source app&lt;/li&gt;
&lt;li&gt;&amp;nbsp; Sphinx integrates more tightly with RDBMSs, especially MySQL &lt;/li&gt;
&lt;/ol&gt;
Source : &lt;a href=&quot;http://stackoverflow.com/questions/1284083/choosing-a-stand-alone-full-text-search-server-sphinx-or-solr&quot; rel=&quot;nofollow&quot;&gt;http://stackoverflow.com/questions/1284083/choosing-a-stand-alone-full-text-search-server-sphinx-or-solr&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/5074732529430839487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2015/02/search-engines-comparison-between-solr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/5074732529430839487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/5074732529430839487'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2015/02/search-engines-comparison-between-solr.html' title='Search Engines: Comparison between Solr and Sphinx'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-4965233121886001795</id><published>2015-02-26T06:42:00.003-08:00</published><updated>2015-02-26T06:42:51.407-08:00</updated><title type='text'>Memcached Vs Redis, which one to pick for large web app? </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;strong&gt;Memcached&lt;/strong&gt;is a general-purpose distributed memory 
caching system. It is often used to speed up dynamic database-driven 
websites by caching data and objects in RAM to reduce the number of 
times an external data source (such as a database or API) must be read.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Redis&lt;/strong&gt; is a flexible, open source and advanced 
key-value store. It is referred to as a “data structure server” where 
keys can contain strings, lists, hashes, sets and sorted sets of 
strings.&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot;&gt;
The main differences between them are listed below:&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;strong&gt;Installation:&lt;/strong&gt;&lt;/div&gt;
Comparing ease of Installation Redis is much easier. No dependencies required.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Memory Usage:&lt;/strong&gt;&lt;br /&gt;

For simple key-value pairs memcached is more memory efficient than 
Redis. If you use Redis hashes, then Redis is more memory efficient.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Persistence:&lt;/strong&gt;&lt;br /&gt;

If you are using Memcached then data is lost with a restart and 
rebuilding cache is a costly process. On the other hand, Redis can 
handle persistent data. By default, Redis syncs data to the disk at 
least every 2 seconds.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Replication:&lt;/strong&gt;&lt;br /&gt;

Memcached does not supports replication. Whereas Redis supports 
master-slave replication. It allows slave Redis servers to be exact 
copies of master servers. Data from any Redis server can replicate to 
any number of slaves.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Storage type:&lt;/strong&gt;&lt;br /&gt;

Memcached stores variables in it’s memory. It retrieve any 
information directly from the servers memory instead of hitting the 
database again. On the other hand, Redis is like a database that resides
 in memory. It executes (read and write) a key/value pair from its 
database to return the resultset and all data resides in 
memory.Developers are using Redis also for real-time metrics, analytics.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Read/Write Speed:&lt;/strong&gt;&lt;br /&gt;

Memcached is very good to handle high traffic websites. It can read 
lots of information at a time and give you back at a great response 
time. Redis can also handle high traffic on read but also can handle 
heavy writes as well.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Data Structure:&lt;/strong&gt;&lt;br /&gt;

Memcached uses string and integer as data structure. Everything you 
save can be either one or the other. With integer, the only data 
manipulation you can do is adding or subtracting them. If you need to 
save arrays or objects, you will have to serialize them first and then 
save them. To read them back, you will need to un-serialize.&lt;br /&gt;

In comparison Redis has a stronger data structures. It can handle not
 only strings, integer but also binary-safe strings, lists of 
binary-safe strings, sets of binary-safe strings and sorted sets.&lt;br /&gt;
&lt;br /&gt;

&lt;strong&gt;Key Length:&lt;/strong&gt;&lt;br /&gt;

Memcached key length has a maximum of 250 bytes, whereas Redis key length has a maximum of 2GB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

If you need advanced data structures or disk-backed persistence, you 
should look into Redis. On the other hand, you might want to stick to 
Memcached for its simplicity, reliability and speed.&lt;br /&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/4965233121886001795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2015/02/memcached-vs-redis-which-one-to-pick.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/4965233121886001795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/4965233121886001795'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2015/02/memcached-vs-redis-which-one-to-pick.html' title='Memcached Vs Redis, which one to pick for large web app? '/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-1110056641220290460</id><published>2014-09-18T05:09:00.001-07:00</published><updated>2014-09-18T05:09:02.557-07:00</updated><title type='text'>Git Bash Common Command</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
- git checkout branch-name&lt;br /&gt;
- git pull origin branch-name&lt;br /&gt;
- git push origin branch-name&lt;br /&gt;
- git merge --no-ff &lt;feature-branch&gt; &lt;master-branch&gt;&lt;/master-branch&gt;&lt;/feature-branch&gt;&lt;br /&gt;
- git checkout -b &lt;new-branch-name&gt; &lt;master-branch&gt;&lt;/master-branch&gt;&lt;/new-branch-name&gt;&lt;br /&gt;
- git fetch&lt;br /&gt;
- get log&lt;br /&gt;
- for committing files on git-&lt;br /&gt;
- git add &lt;file-name&gt;&lt;/file-name&gt;&lt;br /&gt;
- git add .&amp;nbsp;&amp;nbsp; {for committing all files}&lt;br /&gt;
- git commit -m &#39;comment&#39;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/1110056641220290460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2014/09/git-bash-common-command.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/1110056641220290460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/1110056641220290460'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2014/09/git-bash-common-command.html' title='Git Bash Common Command'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-824451878420681329</id><published>2014-08-29T04:59:00.003-07:00</published><updated>2014-08-29T04:59:13.627-07:00</updated><title type='text'>MySQL - Character Sets and Collations </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
A &lt;strong&gt;character set&lt;/strong&gt; is a set of symbols
  and encodings. A &lt;strong&gt;collation&lt;/strong&gt; is a set of
  rules for comparing characters in a
  character set. Let&#39;s make the
  distinction clear with an example of
  an imaginary character set.&lt;br /&gt;

  
  Suppose that we have an alphabet with
  four letters: &#39;A&#39;, &#39;B&#39;, &#39;a&#39;, &#39;b&#39;. We
  give each letter a number: &#39;A&#39; = 0,
  &#39;B&#39; = 1, &#39;a&#39; = 2, &#39;c&#39; = 3. The letter
  &#39;A&#39; is a symbol, the number 0 is the
  encoding for &#39;A&#39;, and the combination
  of all four letters and their
  encodings is a character set.&lt;br /&gt;

  
  Now, suppose that we want to compare
  two string values, &#39;A&#39; and &#39;B&#39;. The
  simplest way to do this is to look at
  the encodings: 0 for &#39;A&#39; and 1 for
  &#39;B&#39;. Because 0 is less than 1, we say
  &#39;A&#39; is less than &#39;B&#39;. Now, what we&#39;ve
  just done is apply a collation to our
  character set. The collation is a set
  of rules (only one rule in this case):
  &quot;compare the encodings.&quot; We call this
  simplest of all possible collations a
  binary collation.&lt;br /&gt;

  
  But what if we want to say that the
  lowercase and uppercase letters are
  equivalent? Then we would have at
  least two rules: (1) treat the
  lowercase letters &#39;a&#39; and &#39;b&#39; as
  equivalent to &#39;A&#39; and &#39;B&#39;; (2) then
  compare the encodings. We call this a
  case-insensitive collation. It&#39;s a
  little more complex than a binary
  collation.&lt;br /&gt;
&lt;br /&gt;
Using this example, you can change character set and collation for a MySQL database table(s).&lt;br /&gt;

Most likely you will be need to do this if you haven’t 
specified&amp;nbsp;character set and collation at the time of 
database/table&amp;nbsp;creation and&amp;nbsp;default character set/collation applied are 
not desirable.&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------ &lt;br /&gt;

&lt;h2&gt;
Setting MySQL default&amp;nbsp;character set and collation in my.cnf&lt;/h2&gt;
Below are settings for MySQL version 5.5.9 and onwards.&lt;br /&gt;

Put them in &lt;code&gt;/etc/mysql/my.cnf&lt;/code&gt;&amp;nbsp;is correct sections. Please be careful as some settings might be already present.&lt;br /&gt;

&lt;pre class=&quot;no-highlight&quot;&gt;[mysqld]
character-set-server=utf8 
collation-server = utf8_unicode_ci
init-connect=&#39;SET NAMES utf8&#39;
init_connect=&#39;SET collation_connection = utf8_unicode_ci&#39; 
skip-character-set-client-handshake&lt;/pre&gt;
&lt;pre class=&quot;no-highlight&quot;&gt;&amp;nbsp;&lt;/pre&gt;
Next, restart mysql and log into mysql shell:&lt;br /&gt;
&lt;br /&gt;

&lt;pre class=&quot;no-highlight&quot;&gt;mysql&amp;gt; show variables like &quot;%character%&quot;;show variables like &quot;%collation%&quot;;&lt;/pre&gt;
&lt;br /&gt;
&lt;strong&gt;Sample output as:&lt;/strong&gt;&lt;br /&gt;

&lt;pre class=&quot;no-highlight&quot;&gt;+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)&lt;/pre&gt;
&lt;h2&gt;
Checking current&amp;nbsp;character set and collation for database/table/columns&lt;/h2&gt;
&lt;h3&gt;
For Database:&lt;/h3&gt;
&lt;pre&gt;SELECT default_character_set_name, default_collation_name FROM information_schema.SCHEMATA  
WHERE schema_name = &quot;databasename&quot;;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;strong&gt;It will show output as:&lt;/strong&gt;&lt;br /&gt;

&lt;pre class=&quot;no-highlight&quot;&gt;+----------------------------+------------------------+
| default_character_set_name | default_collation_name |
+----------------------------+------------------------+
| latin1                     | latin1_swedish_ci      |
+----------------------------+------------------------+&lt;/pre&gt;
&lt;h3&gt;
For Tables:&lt;/h3&gt;
&lt;pre&gt;SELECT T.table_name, T.table_collation, CCSA.character_set_name FROM information_schema.`TABLES` T,
information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
AND T.table_schema = &quot;databasename&quot;;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;strong&gt;Sample output as below:&lt;/strong&gt;&lt;br /&gt;

&lt;pre class=&quot;no-highlight&quot;&gt;+-----------------------------------------------------+-------------------+--------------------+
| table_name                                          | table_collation   | character_set_name |
+-----------------------------------------------------+-------------------+--------------------+
| rtc_wp_rtAccountToken                               | latin1_swedish_ci | latin1             |
| rtc_wp_rtAccountVerify                              | latin1_swedish_ci | latin1             |
| rtc_wp_rt_crm_mail_messageids                       | latin1_swedish_ci | latin1             |
| rtc_wp_w3tc_cdn_queue                               | latin1_swedish_ci | latin1             |
| gp_meta                                             | utf8_general_ci   | utf8               |
+-----------------------------------------------------+-------------------+--------------------+&lt;/pre&gt;
&lt;h3&gt;
For Columns:&lt;/h3&gt;
&lt;pre&gt;SELECT table_name, column_name, character_set_name, collation_name FROM information_schema.`COLUMNS` C 
WHERE character_set_name != &#39;NULL&#39; AND table_schema = &quot;db_name&quot;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;strong&gt;Sample Output:&lt;/strong&gt;&lt;br /&gt;

&lt;pre class=&quot;no-highlight&quot;&gt;+------------------------+--------------+--------------------+-------------------+
| table_name             | column_name  | character_set_name | collation_name    |
+------------------------+--------------+--------------------+-------------------+
| rtc_wp_rtAccountToken  | accesstoken  | latin1             | latin1_swedish_ci |
| rtc_wp_rtAccountToken  | refreshtoken | latin1             | latin1_swedish_ci |
| rtc_wp_rtAccountVerify | email        | latin1             | latin1_swedish_ci |
| rtc_wp_rtAccountVerify | type         | latin1             | latin1_swedish_ci |
| rtc_wp_rtAccountVerify | code         | latin1             | latin1_swedish_ci |
+------------------------+--------------+--------------------+-------------------+&lt;/pre&gt;
&lt;h2&gt;
Converting&amp;nbsp;character set and collations&lt;/h2&gt;
&lt;h3&gt;
MAKE BACKUP&lt;/h3&gt;
We are serious. Just use mysqldump rather than&amp;nbsp;regretting&amp;nbsp;it later&lt;br /&gt;

&lt;h3&gt;
Changing Database&amp;nbsp;Character&amp;nbsp;Sets and Collations&lt;/h3&gt;
This is simplest:&lt;br /&gt;

&lt;pre class=&quot;no-highlight&quot;&gt;ALTER DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci;&lt;/pre&gt;
Replace your database name with db_name. Also after running query verify if database-level defaults are changed indeed.&lt;br /&gt;

&lt;h3&gt;
Changing Tables Character Sets and Collations&lt;/h3&gt;
Below is a syntax to covert character set of&lt;code&gt;wp_posts&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code&gt;wp_postmeta&lt;/code&gt;tables.&lt;br /&gt;

&lt;pre&gt;alter table wp_posts convert to character set utf8 collate utf8_unicode_ci;
alter table wp_postmeta convert to character set utf8 collate utf8_unicode_ci;&lt;/pre&gt;
If you want to covert all your MySQL tables, then run a command like below on database&amp;nbsp;&lt;code&gt;db_wordpress&lt;/code&gt;&lt;br /&gt;

&lt;pre&gt;mysql -e &quot;SELECT concat(&#39;alter table &#39;, TABLE_NAME , &#39; convert to character set utf8 collate utf8_unicode_ci;&#39;)
FROM information_schema.TABLES
WHERE table_schema = &#39;db_wordpress&#39;
AND TABLE_COLLATION = &#39;latin1_swedish_ci&#39;&quot; |
tail -n+2 &amp;gt; collation.sql&lt;/pre&gt;
After you run above query, check&amp;nbsp;&lt;code&gt;collation.sql&lt;/code&gt;&amp;nbsp;content to verify if all rows are correct. If&amp;nbsp;&lt;code&gt;collation.sql&lt;/code&gt;&amp;nbsp;is empty, you probably do not have a table using MyISAM engine.&lt;br /&gt;

If all looks good, run following to convert all mysql tables to InnoDB.&lt;br /&gt;

&lt;pre&gt;mysql db_wordpress &amp;lt; collation.sql&lt;/pre&gt;
&lt;h3&gt;
Changing Column Character Sets and Collations&lt;/h3&gt;
Below is syntax to convert columns to utf8&lt;br /&gt;

&lt;pre class=&quot;no-highlight&quot;&gt;alter table table_name change col_name col_name col_data_type character set utf8;&lt;/pre&gt;
Please note that we have to use same col_name twice!&lt;br /&gt;
col_data_type can be found form a sql query like…&lt;br /&gt;

&lt;pre&gt;mysql&amp;gt; SELECT table_name, column_name, data_type, character_set_name, collation_name FROM information_schema.`COLUMNS` WHERE  table_schema = &quot;db_name&quot; AND table_name = &quot;table_name&quot; AND column_name = &quot;col_name&quot;;&lt;/pre&gt;
Sample output:&lt;br /&gt;

&lt;pre class=&quot;no-highlight&quot;&gt;+--------------+--------------+-----------+
| table_name   | column_name  | data_type |
+--------------+--------------+-----------+
| wp_posts     | post_content | longtext  |
+--------------+--------------+-----------+&lt;/pre&gt;
Example for wordpress’s wp_posts table&lt;br /&gt;

&lt;pre class=&quot;no-highlight&quot;&gt;alter table wp_posts change post_content post_content LONGTEXT CHARACTER SET utf8;&lt;/pre&gt;
Please be very careful for column&amp;nbsp;conversion. Specially if you have 
non-english characters stored in database.&lt;br /&gt;
&lt;a href=&quot;http://codex.wordpress.org/Converting_Database_Character_Sets#Changing_the_charset_of_individual_columns&quot;&gt;&lt;br /&gt;&lt;/a&gt;
&lt;a href=&quot;http://codex.wordpress.org/Converting_Database_Character_Sets#Changing_the_charset_of_individual_columns&quot;&gt;Source: https://rtcamp.com/tutorials/mysql/character-sets-collations/&lt;/a&gt;&lt;br /&gt;

  

  &lt;hr class=&quot;rtp-separator&quot; /&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/824451878420681329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2014/08/mysql-character-sets-and-collations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/824451878420681329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/824451878420681329'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2014/08/mysql-character-sets-and-collations.html' title='MySQL - Character Sets and Collations '/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-1812757620410919837</id><published>2014-08-21T08:16:00.005-07:00</published><updated>2014-08-21T08:16:44.352-07:00</updated><title type='text'>TortoiseGit - git not found</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot;&gt;
While this question is still hot... some nice people contributed lots
 of bugfixes to all three projects, so this is what I did to get 
TortoiseGit on Win7x64, previously failing on all combinations:&lt;br /&gt;


&lt;ol&gt;
&lt;li&gt;install &lt;strong&gt;mSysGit&lt;/strong&gt; (network installer) into C:\msysgit, it will download the source and compile it leaving you in a bash git prompt.
Stable version: &lt;strong&gt;msysGit-netinstall-1.7.2.3-preview20100911.exe&lt;/strong&gt; 13 sep&lt;/li&gt;
&lt;li&gt;install &lt;strong&gt;Git “preview”&lt;/strong&gt; into C:\Program Files (x86)\Git, choose OpenSSH for ssh link
Stable version: &lt;strong&gt;Git-1.7.2.3-preview20100911.exe&lt;/strong&gt; 13 sep&lt;/li&gt;
&lt;li&gt;install &lt;strong&gt;tortoisegit&lt;/strong&gt; into C:\Program 
Files\TortoiseGit, (x64 version) and configure it’s settings specifying 
the git path (C:\msysgit\bin) and menu integration.
Stable version: &lt;strong&gt;TortoiseGit-1.5.6.0-64bit.msi&lt;/strong&gt; 25 sep&lt;/li&gt;
&lt;/ol&gt;
This setup picked up my existing git repos made on WinXP x86 with 
older versions of the packages, and seems fairly stable and fully 
functional.&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href=&quot;http://stackoverflow.com/questions/1389281/tortoisegit-git-not-found&quot;&gt;http://stackoverflow.com/questions/1389281/tortoisegit-git-not-found &lt;/a&gt;&lt;br /&gt;

    &lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/1812757620410919837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2014/08/tortoisegit-git-not-found.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/1812757620410919837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/1812757620410919837'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2014/08/tortoisegit-git-not-found.html' title='TortoiseGit - git not found'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-883940264252568549</id><published>2014-07-31T07:23:00.001-07:00</published><updated>2014-07-31T07:23:23.338-07:00</updated><title type='text'>Creating webservice server and client using NuSOAP </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Brief description of NuSOAP:&lt;/strong&gt;&lt;br /&gt;

&lt;blockquote&gt;
NuSOAP is a rewrite of SOAPx4, provided by NuSphere and 
Dietrich Ayala. It is a set of PHP classes – no PHP extensions required –
 that allow developers to create and consume web services based on SOAP 
1.1, WSDL 1.1 and HTTP 1.0/1.1.&lt;/blockquote&gt;
&lt;strong&gt;&lt;em&gt;Why using NuSOAP? PHP5 already has soapServer and soapClient implementation&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;it’s easy to implement and fast, no need to create WSDL document by yourself (this is my main reason why I choose NuSOAP)&lt;/li&gt;
&lt;li&gt;compatibility, no special PHP extension need (I didn’t test it if still works on PHP4, but it does work flawlessly on PHP 5.0)&lt;/li&gt;
&lt;/ul&gt;
First, &lt;strong&gt;download NuSOAP&lt;/strong&gt; from here: &lt;a href=&quot;http://sourceforge.net/projects/nusoap/&quot; title=&quot;download NuSOAP&quot;&gt;http://sourceforge.net/projects/nusoap/&lt;/a&gt;&lt;br /&gt;

&lt;strong&gt;The Server&lt;/strong&gt;&lt;br /&gt;

We will create a SOAP server with two entry points (=function). One 
function take one parameter and output a string while the other one take
 two parameters and output a complex result (an array/struct). The codes
 with commentary: &lt;br /&gt;
&lt;br /&gt;
Source1 : &lt;a href=&quot;http://www.ahowto.net/php/creating-webservice-server-and-client-using-nusoap&quot;&gt;http://www.ahowto.net/php/creating-webservice-server-and-client-using-nusoap&lt;/a&gt;&lt;br /&gt;
Source2: &lt;a href=&quot;http://www.scottnichol.com/nusoapprog.htm&quot;&gt;http://www.scottnichol.com/nusoapprog.htm&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/883940264252568549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2014/07/creating-webservice-server-and-client.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/883940264252568549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/883940264252568549'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2014/07/creating-webservice-server-and-client.html' title='Creating webservice server and client using NuSOAP '/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-2528085321240106254</id><published>2014-07-11T23:52:00.005-07:00</published><updated>2014-07-11T23:52:55.559-07:00</updated><title type='text'>The Ultimate Guide To UTF-8 and MySQL</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;hentry p1 post publish author-joni category-databases tag-i18n tag-latin1 tag-mysql tag-unicode tag-utf8 y2012 m01 d28 h00&quot; id=&quot;post-232&quot;&gt;
    &lt;h2 class=&quot;entry-title&quot;&gt;
The Ultimate Guide To UTF-8 and MySQL&lt;/h2&gt;
&lt;div class=&quot;entry-content&quot;&gt;
How character encodings work in MySQL seem to continue baffle people,
 at least based on the number of questions posted on Stackoverflow. Read
 on if you have an application that still outputs funny text like 
“seÃ±or” or “se�or” where “señor” is expected.&lt;br /&gt;

&lt;h3&gt;
The truth about text in MySQL&lt;/h3&gt;
Strings in MySQL consist of an encoding marker and a list of bytes. The &lt;code&gt;CHARSET&lt;/code&gt; function reads the encoding while &lt;code&gt;HEX&lt;/code&gt; can be used to read bytes:&lt;br /&gt;

&lt;pre&gt;SELECT CHARSET(&quot;€&quot;), HEX(&quot;€&quot;)
=&amp;gt; latin1, 80&lt;/pre&gt;
This enables MySQL to use different encodings while working on a 
query. You can write a query that compares text columns in different 
encodings and returns the results where the text is the same, rather 
than the bytes that are stored.&lt;br /&gt;

&lt;h3&gt;
I have everything set to &lt;code&gt;utf8&lt;/code&gt; and still the database gives me garbage!&lt;/h3&gt;
That’s because of the MySQL client encoding. One query can return 
text in several different encodings, it’s unreasonable to expect the 
user software to check the encoding of each individual string. So all 
text returned by the MySQL client is encoded in only one encoding.&lt;br /&gt;

&lt;strong&gt;The fast and easy solution to encoding problems: set the MySQL client encoding&lt;/strong&gt;.&lt;br /&gt;

How this is done depends on what you use to connect. If you work in PHP and the old MySQL functions you should use &lt;code&gt;mysql_set_charset(&quot;utf8&quot;)&lt;/code&gt;. If you have an old version try &lt;code&gt;mysql_query(&quot;SET NAMES utf8&quot;)&lt;/code&gt;. If you use MySQLi it would be &lt;code&gt;mysqli_set_charset($link, &quot;utf8&quot;)&lt;/code&gt; (or &lt;code&gt;$link-&amp;gt;set_charset(&quot;utf8&quot;)&lt;/code&gt; if you use the OO API).&lt;br /&gt;

&lt;h3&gt;
What are the encodings in the tables good for, then?&lt;/h3&gt;
When you create a table you can specify a&amp;nbsp;&lt;strong&gt;character encoding&lt;/strong&gt;&amp;nbsp;for&amp;nbsp;a
 column. It means how the MySQL server will convert text like “abc123″ 
to bytes that can be written to disk. The encoding affects two things:&lt;br /&gt;

&lt;ol&gt;
&lt;li&gt;the &lt;strong&gt;range of characters&lt;/strong&gt;&amp;nbsp;that can be stored, &amp;nbsp;and&lt;/li&gt;
&lt;li&gt;the&amp;nbsp;&lt;strong&gt;number of bytes&amp;nbsp;&lt;/strong&gt;the text will occupy on disk.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Popular encodings for storage include latin1 and utf8:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;latin1&lt;/strong&gt;: the characters that you can store cover most European languages, and the text occupies 1 byte per character.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;utf8&lt;/strong&gt;: you can store any(*) Unicode characters, and the text occupies from 1 to 3 bytes per character,&amp;nbsp;depending on the character.&lt;/li&gt;
&lt;/ul&gt;
Other encodings exist, of course. For example &lt;strong&gt;latin2&lt;/strong&gt; has characters used in Eastern European languages. If you use &lt;strong&gt;ucs2&lt;/strong&gt;
 you can store any Unicode characters and the text occupies 2 bytes per 
character. If you are storing a lot of text in Japanese you may want to 
use ucs2 instead of utf8 because you are saving a third in the storage.&lt;br /&gt;

You can also specify a&amp;nbsp;&lt;strong&gt;collation&lt;/strong&gt;&amp;nbsp;like&amp;nbsp;&lt;code&gt;utf8_general_ci&lt;/code&gt;&amp;nbsp;for a column. It means how MySQL will&amp;nbsp;&lt;strong&gt;sort&lt;/strong&gt;&amp;nbsp;the data. This affects &lt;strong&gt;indices&lt;/strong&gt; and&amp;nbsp;&lt;strong&gt;ORDER BY&lt;/strong&gt;
 clauses. Cultures have different rules for alphabetic order: for 
example in Swedish Ä is the second to last letter of the alphabet, while
 in English it’s equivalent to A. So with Swedish collation you get a 
&amp;lt; b &amp;lt; ä and with English collation you get a = ä &amp;lt; b. &lt;em&gt;Use the ordering your users expect.&lt;/em&gt; You can read &lt;a href=&quot;http://jonisalonen.com/2012/mysql-collations-in-practice/&quot; title=&quot;MySQL Collations in practice&quot;&gt;more about collations&lt;/a&gt; in my other post.&lt;br /&gt;

What if you don’t specify an encoding and collation for the column? 
Then MySQL will use the default specified for the table, the database, 
or the server.&lt;br /&gt;

&lt;h3&gt;
Converting encodings&lt;/h3&gt;
Strings in MySQL consist of an encoding marker and a list of bytes. 
To&amp;nbsp;convert strings from one encoding to another you can use 
the&amp;nbsp;CONVERT(… USING …) function. &amp;nbsp;What CONVERT actually does is change 
both the marker and the bytes so that the resulting string is the same 
as the original; not very useful for fixing broken text.&lt;br /&gt;

The solution is &lt;em&gt;stripping the encoding marker&lt;/em&gt; from the string before passing it to CONVERT. This is done by converting the string to “binary” first:&lt;br /&gt;

&lt;pre&gt;CONVERT(BINARY broken_text USING utf8)&lt;/pre&gt;
I’ve written a detailed case study on &lt;a href=&quot;http://jonisalonen.com/2010/mysql-character-encoding/&quot; title=&quot;Fixing mangled characters in MySQL&quot;&gt;fixing a particularly complicated MySQL encoding problem&lt;/a&gt; in another post.&lt;br /&gt;

&lt;h3&gt;
Practical demonstration&lt;/h3&gt;
Let’s create a table with columns in different encodings and fill it with some data.&lt;br /&gt;

&lt;pre&gt;CREATE TABLE test_encoding (
  utf8   varchar(4) CHARACTER SET utf8,
  latin1 varchar(4) CHARACTER SET latin1,
  latin2 varchar(4) CHARACTER SET latin2
);
INSERT INTO test_encoding (utf8,latin1,latin2) values (&#39;A&#39;,&#39;A&#39;,&#39;A&#39;);
INSERT INTO test_encoding (utf8,latin1,latin2) values (&#39;Ñ&#39;,&#39;Ñ&#39;,&#39;Ñ&#39;);
INSERT INTO test_encoding (utf8,latin1,latin2) values (&#39;Ŕ&#39;,&#39;Ŕ&#39;,&#39;Ŕ&#39;);
INSERT INTO test_encoding (utf8,latin1,latin2) values (&#39;☺&#39;,&#39;☺&#39;,&#39;☺&#39;);
INSERT INTO test_encoding (utf8,latin1,latin2) values (&#39;€&#39;,&#39;€&#39;,&#39;€&#39;);
&lt;/pre&gt;
When you select the data from this table with &lt;code&gt;select * from test_encoding&lt;/code&gt; you get the following results:&lt;br /&gt;

&lt;pre&gt;+------+--------+--------+
| utf8 | latin1 | latin2 |
+------+--------+--------+
| A    | A      | A      |
| Ñ    | Ñ      | ?      |
| Ŕ    | ?      | Ŕ      |
| ☺    | ?      | ?      |
| €    | €      | ?      |
+------+--------+--------+
&lt;/pre&gt;
Even though each column is encoded differently everything is still 
readable. This is thanks to the MySQL client encoding. The characters 
that could not be encoded are replaced with question marks: there is no Ñ
 in latin2, nor is there a Ŕ in latin1. The smiley face is not present 
in either.&lt;br /&gt;

The last line is interesting: the euro sign &lt;em&gt;can be encoded in latin1 although technically it’s not really a latin1 character&lt;/em&gt;.
 This shows that MySQL’s latin1 is not really the standard ISO-8859-1 
encoding, commonly known as “ISO latin 1″. In reality it is &lt;a href=&quot;http://en.wikipedia.org/wiki/Windows-1252&quot;&gt;Windows-1252&lt;/a&gt;,
 the “Western European” encoding that also has curly quotes and other 
niceties where ISO-8859-1 has unprintable control characters.&lt;br /&gt;

To see that MySQL really is storing the columns in different encodings you could do this:&lt;br /&gt;

&lt;pre&gt;mysql&amp;gt; select utf8,hex(utf8),hex(latin1) from test_encoding;
+------+-----------+-------------+
| utf8 | hex(utf8) | hex(latin1) |
+------+-----------+-------------+
| A    | 41        | 41          |
| Ñ    | C391      | D1          |
| Ŕ    | C594      | 3F          |
| ☺    | E298BA    | 3F          |
| €    | E282AC    | 80          |
+------+-----------+-------------+
&lt;/pre&gt;
What happens when we compare two columns encoded differently?&lt;br /&gt;

&lt;pre&gt;mysql&amp;gt; select utf8,latin1 from test_encoding where utf8=latin1;
+------+--------+
| utf8 | latin1 |
+------+--------+
| A    | A      |
| Ñ    | Ñ      |
| €    | €      |
+------+--------+
&lt;/pre&gt;
MySQL knows that the &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.6/en/charset-repertoire.html&quot;&gt;character repertoire&lt;/a&gt;
 of latin1 is a subset of utf8, so it converts the latin1 column into 
unicode so that it can be compared. If however you try to compare latin1
 with latin2 this is what happens:&lt;br /&gt;

&lt;pre&gt;mysql&amp;gt; select latin1,latin2 from test_encoding where latin1=latin2;
ERROR 1267 (HY000): Illegal mix of collations (latin1_bin,IMPLICIT) and (latin2_bin,IMPLICIT) for operation &#39;=&#39;
&lt;/pre&gt;
Since neither latin1 and latin2 is a subset of the other, MySQL 
cannot compare the columns. To be able to compare them you have to 
convert at least one to unicode, e.g. by using &lt;code&gt;CONVERT(.. USING ..)&lt;/code&gt;:&lt;br /&gt;

&lt;pre&gt;select latin1, latin2 from test_encoding
where convert(latin1 using utf8)=latin2;&lt;/pre&gt;
I hope this information is enough to solve any character encoding problems you may have with MySQL once and for all.&lt;br /&gt;

(*) Did I say &lt;code&gt;utf8&lt;/code&gt; can store &lt;em&gt;any&lt;/em&gt;&amp;nbsp;Unicode 
characters? That’s not really true. MySQL’s utf8 and ucs2 only store 
unicode from the basic multilingual plane (BMP), which includes “only” 
the characters U+0000 through U+FFFF. If you have MySQL 5.5 or later you
 have additional encodings to choose from: utf16, utf32, utf8mb4. These 
encodings You can read the details, as usual, in the &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html&quot;&gt;official MySQL documentation&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Resource: &lt;a href=&quot;http://jonisalonen.com/2012/ultimate-guide-to-utf8-and-mysql/&quot;&gt;http://jonisalonen.com/2012/ultimate-guide-to-utf8-and-mysql/ &lt;/a&gt;&lt;br /&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/2528085321240106254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2014/07/the-ultimate-guide-to-utf-8-and-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/2528085321240106254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/2528085321240106254'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2014/07/the-ultimate-guide-to-utf-8-and-mysql.html' title='The Ultimate Guide To UTF-8 and MySQL'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-4440334363476094250</id><published>2014-03-08T00:23:00.005-08:00</published><updated>2014-03-08T00:23:30.634-08:00</updated><title type='text'>Daily Dose of Drupal - Drupal Training Videos</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;h1 class=&quot;title&quot;&gt;
Daily Dose of Drupal - Drupal Training Videos&lt;/h1&gt;
&lt;div class=&quot;view-header&quot;&gt;
      The &lt;span class=&quot;zhei9n3&quot; id=&quot;zhei9n3_2&quot;&gt;Daily Dose&lt;/span&gt; of 
Drupal is a collection of Drupal training video tutorials containing all
 different types of Drupal related topics. We try to post a Drupal 
training video tutorial almost everyday (or at least as often as we 
can). The Drupal video topics will vary, but the basic idea is to 
provide step by step videos on how to do something in a short Drupal 
video. We try to keep it short, and try to cover a wide variety of 
topics. If you would like to see something a little different &lt;a href=&quot;http://codekarate.com/contact&quot;&gt;shoot us an email&lt;/a&gt; and let us know what Drupal topics you would like us to cover.&lt;br /&gt;

If you are interested in sponsoring an episode of the Daily Dose of Drupal, you can learn more on the &lt;a href=&quot;http://codekarate.com/content/become-codekarate-sponsor&quot;&gt;CodeKarate sponsorship page&lt;/a&gt;.&lt;br /&gt;

    &lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href=&quot;http://codekarate.com/&quot;&gt;http://codekarate.com&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/4440334363476094250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2014/03/daily-dose-of-drupal-drupal-training.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/4440334363476094250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/4440334363476094250'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2014/03/daily-dose-of-drupal-drupal-training.html' title='Daily Dose of Drupal - Drupal Training Videos'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-7659272924081212002</id><published>2014-02-25T22:19:00.001-08:00</published><updated>2014-02-25T22:19:14.152-08:00</updated><title type='text'>WATable- - A swiss army jQuery table plugin Filter, format, paginate and sort your data with ease.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;logo&quot;&gt;
      &lt;h2 class=&quot;pull-left&quot;&gt;
WATable&amp;nbsp;&lt;/h2&gt;
&lt;blockquote class=&quot;pull-left&quot;&gt;
        &lt;h5&gt;
- A &lt;span class=&quot;p56d4420&quot; id=&quot;p56d4420_2&quot;&gt;swiss army&lt;/span&gt; jQuery table plugin
          &lt;br /&gt;Filter, format, paginate and sort your data with ease. Give it a try!
        &lt;/h5&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;ul class=&quot;nav nav-tabs&quot;&gt;
&lt;li class=&quot;&quot;&gt;
          &lt;a class=&quot;demoTab&quot; data-toggle=&quot;tab&quot; href=&quot;http://wootapa-watable.appspot.com/#tab1&quot;&gt;Demo&lt;/a&gt;
        &lt;/li&gt;
&lt;li class=&quot;&quot;&gt;
          &lt;a data-toggle=&quot;tab&quot; href=&quot;http://wootapa-watable.appspot.com/#tab2&quot;&gt;Options&lt;/a&gt;
        &lt;/li&gt;
&lt;li class=&quot;&quot;&gt;
          &lt;a data-toggle=&quot;tab&quot; href=&quot;http://wootapa-watable.appspot.com/#tab3&quot;&gt;Methods&lt;/a&gt;
        &lt;/li&gt;
&lt;li class=&quot;&quot;&gt;
          &lt;a data-toggle=&quot;tab&quot; href=&quot;http://wootapa-watable.appspot.com/#tab4&quot;&gt;Events&lt;/a&gt;
        &lt;/li&gt;
&lt;li class=&quot;&quot;&gt;
          &lt;a data-toggle=&quot;tab&quot; href=&quot;http://wootapa-watable.appspot.com/#tab5&quot;&gt;Data Structure&lt;/a&gt;
        &lt;/li&gt;
&lt;li class=&quot;&quot;&gt;
          &lt;a data-toggle=&quot;tab&quot; href=&quot;http://wootapa-watable.appspot.com/#tab6&quot;&gt;Dependencies&lt;/a&gt;
        &lt;/li&gt;
&lt;li class=&quot;active&quot;&gt;
          &lt;a class=&quot;downloadTab highlight-tab&quot; data-toggle=&quot;tab&quot; href=&quot;http://wootapa-watable.appspot.com/#tab8&quot;&gt;Download&lt;/a&gt;
        &lt;/li&gt;
&lt;li class=&quot;&quot;&gt;
          &lt;a class=&quot;highlight-tab&quot; data-toggle=&quot;tab&quot; href=&quot;http://wootapa-watable.appspot.com/#tab9&quot;&gt;Discuss&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
Source: http://wootapa-watable.appspot.com/ &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/7659272924081212002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2014/02/watable-swiss-army-jquery-table-plugin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/7659272924081212002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/7659272924081212002'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2014/02/watable-swiss-army-jquery-table-plugin.html' title='WATable- - A swiss army jQuery table plugin Filter, format, paginate and sort your data with ease.'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-876984550900541023</id><published>2013-10-15T22:44:00.004-07:00</published><updated>2013-10-15T22:44:36.632-07:00</updated><title type='text'>Remote desktop sharing Ammyy Admin - download!</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;padding: 10px 15px 0px 15; width: 95%;&quot;&gt;
&lt;h1&gt;
&lt;strong&gt;Remote desktop sharing&lt;/strong&gt; Ammyy Admin - download!&lt;/h1&gt;
&lt;div class=&quot;frontimg_text&quot;&gt;
&lt;br /&gt;
Ammyy Admin is free of charge for non-commercial use. You can download &lt;strong&gt;remote control&lt;/strong&gt; application and start working with it within a few seconds.&lt;br /&gt;&lt;br /&gt;Ammyy Admin - is a fast and easy way to gain remote sharing and &lt;strong&gt;remote desktop&lt;/strong&gt; control!&lt;/div&gt;
&lt;div class=&quot;frontimg_text&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;frontimg_text&quot;&gt;
Source:&lt;a href=&quot;http://www.ammyy.com/en/downloads.html&quot;&gt; http://www.ammyy.com/en/downloads.html &lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/876984550900541023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2013/10/remote-desktop-sharing-ammyy-admin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/876984550900541023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/876984550900541023'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2013/10/remote-desktop-sharing-ammyy-admin.html' title='Remote desktop sharing Ammyy Admin - download!'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-7541688740399995181</id><published>2013-05-14T22:52:00.002-07:00</published><updated>2013-05-14T22:52:24.797-07:00</updated><title type='text'>Get list of existing TRIGGERs in MYSQL</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;about&quot; style=&quot;padding-top: 5px; width: 590px;&quot;&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: verdana,geneva; font-size: x-small;&quot;&gt;While&amp;nbsp;MySQL&amp;nbsp;has
 features like&amp;nbsp;StoredProcedure and  View, it doesn&#39;t have any option for
 displaying TRIGGER list in the  &#39;Schemata&#39;&amp;nbsp;tab (right)&amp;nbsp;section of 
QueryBrowser.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana; font-size: x-small;&quot;&gt;Generally, we&amp;nbsp;need a third party control like&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: x-small;&quot;&gt;
 MySQL Workbench&amp;nbsp;to get the list of existing TRIGGER  lists.But there is
 another way&amp;nbsp;through which we can get  existing trigger lists and that 
is from the Metadata(Data about  data).&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;about&quot; style=&quot;width: 590px;&quot;&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: verdana,geneva; font-size: x-small;&quot;&gt;To&amp;nbsp;get all the trigger list irrespective of the  database name:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: navy; font-family: courier new,courier; font-size: x-small;&quot;&gt;&lt;strong&gt;SELECT * FROM  information_schema.TRIGGERS;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: verdana,geneva;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: verdana,geneva; font-size: x-small;&quot;&gt;To&amp;nbsp;get list of trigger against a specific  database:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: navy; font-family: courier new,courier; font-size: x-small;&quot;&gt;&lt;strong&gt;SELECT * FROM  information_schema.TRIGGERS WHERE  TRIGGER_SCHEMA=&#39;database_name&#39;;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Source: http://www.mindfiresolutions.com/Get-list-of-existing-TRIGGERs-in-MYSQL-856.php&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/7541688740399995181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2013/05/get-list-of-existing-triggers-in-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/7541688740399995181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/7541688740399995181'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2013/05/get-list-of-existing-triggers-in-mysql.html' title='Get list of existing TRIGGERs in MYSQL'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-8003274714278708837</id><published>2013-01-11T00:56:00.002-08:00</published><updated>2013-01-11T00:56:35.836-08:00</updated><title type='text'>Howto: Performance Benchmarks a Webserver</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Apache Benchmark&lt;/h3&gt;
&lt;br /&gt;
You can benchmark Apache, IIS and other web server with apache 
benchmarking tool called ab. Recently I was asked to performance 
benchmarks for different web servers.&lt;br /&gt;
It is true that benchmarking a web server is not an easy task. From how to benchmark a web &lt;a href=&quot;http://www.tldp.org/HOWTO/Caudium-HOWTO/benchmark.html&quot;&gt;server&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote&gt;
First,
 benchmarking a web server is not an easy thing. To benchmark a web 
server the time it will take to give a page is not important: you don&#39;t 
care if a user can have his page in 0.1 ms or in 0.05 ms as nobody can 
have such delays on the Internet.&lt;/blockquote&gt;
What is important 
is the average time it will take when you have a maximum number of users
 on your site simultaneously. Another important thing is how much more 
time it will take when there are 2 times more users: a server that take 2
 times more for 2 times more users is better than another that take 4 
times more for the same amount of users.&quot;&lt;br /&gt;
Here are few tips to carry out procedure along with an example:&lt;br /&gt; &lt;span id=&quot;more-121&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;
Apache Benchmark Procedures&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;You need to use same hardware configuration and kernel (OS) for all tests&lt;/li&gt;
&lt;li&gt;You need to use same network configuration. For example, use 100Mbps port for all tests&lt;/li&gt;
&lt;li&gt;First record server load using top or uptime command&lt;/li&gt;
&lt;li&gt;Take at least 3-5 readings and use the best result&lt;/li&gt;
&lt;li&gt;After each test reboot the server and carry out test on next configuration (web server)&lt;/li&gt;
&lt;li&gt;Again record server load using top or uptime command&lt;/li&gt;
&lt;li&gt;Carry on test using static html/php files and dynamic pages&lt;/li&gt;
&lt;li&gt;It also important to carry out test using the Non-KeepAlive and KeepAlive (the &lt;a href=&quot;http://httpd.apache.org/docs/1.3/mod/core.html#keepalive&quot;&gt;Keep-Alive extension&lt;/a&gt; to provide long-lived HTTP sessions, which allow multiple requests to be sent over the same TCP connection) features&lt;/li&gt;
&lt;li&gt;Also don&#39;t forget to carry out test using fast-cgi and/or perl tests&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
Source : http://www.cyberciti.biz/tips/howto-performance-benchmarks-a-web-server.html#comments&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/8003274714278708837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2013/01/howto-performance-benchmarks-webserver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/8003274714278708837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/8003274714278708837'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2013/01/howto-performance-benchmarks-webserver.html' title='Howto: Performance Benchmarks a Webserver'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-574094901751070171</id><published>2012-10-06T06:02:00.002-07:00</published><updated>2012-10-06T06:47:31.221-07:00</updated><title type='text'>Writing Object-Oriented JavaScript </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2&gt;
Introduction&lt;/h2&gt;
ASP.NET and Visual Studio 7.0 are making important contributions to 
the improvement of the web development experience. Unfortunately, there 
is also a tendency created among developers to limit their interaction 
with &lt;span class=&quot;search-highlight&quot;&gt;JavaScript&lt;/span&gt;. Clearly &lt;span class=&quot;search-highlight&quot;&gt;JavaScript&lt;/span&gt;
 is valuable for adding client-side functionality to web pages. However 
ASP.NET programming models suggest that developers produce page layout 
while emitting client-side &lt;span class=&quot;search-highlight&quot;&gt;JavaScript&lt;/span&gt; from ASP.NET controls. As a consequence, this model tends to limit &lt;span class=&quot;search-highlight&quot;&gt;JavaScript&lt;/span&gt; to procedural adjuncts. This is rather unfortunate because it severely limits the power of an &lt;i&gt;object-oriented&lt;/i&gt; scripting language that developers can use to write rich and reusable client-side components.&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href=&quot;http://www.codeproject.com/Articles/5608/Writing-Object-Oriented-JavaScript-Part-1&quot;&gt;http://www.codeproject.com/Articles/5608/Writing-Object-Oriented-JavaScript-Part-1&amp;nbsp;&lt;/a&gt;&lt;br /&gt;
Another Source: &lt;a href=&quot;http://mckoss.com/jscript/object.htm&quot;&gt;http://mckoss.com/jscript/object.htm&lt;/a&gt; &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/574094901751070171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2012/10/writing-object-oriented-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/574094901751070171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/574094901751070171'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2012/10/writing-object-oriented-javascript.html' title='Writing Object-Oriented JavaScript '/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-2670452801897011025</id><published>2012-09-20T01:17:00.003-07:00</published><updated>2012-09-20T01:17:53.992-07:00</updated><title type='text'>Date Drop Down Lists</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
This JQuery plugin converts a textfield with date value into a
set of drop down lists for day, month and year.&lt;/div&gt;
&lt;h3&gt;
Demo&lt;/h3&gt;
&lt;em&gt;When applied, the original textfield is replaced by a set of 
drop down lists, but it&#39;s value can still be referenced by the original 
ID:&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Source: &lt;a href=&quot;http://www.amdonnelly.co.uk/experiments/date-drop-down-lists.aspx&quot;&gt;http://www.amdonnelly.co.uk/experiments/date-drop-down-lists.aspx &lt;/a&gt;&lt;/em&gt;&lt;br /&gt;

    
    &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/2670452801897011025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2012/09/date-drop-down-lists.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/2670452801897011025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/2670452801897011025'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2012/09/date-drop-down-lists.html' title='Date Drop Down Lists'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-6848667975341231074</id><published>2012-09-14T05:11:00.004-07:00</published><updated>2012-09-14T05:11:47.116-07:00</updated><title type='text'>JQWidgets - Unique toolkit for HTML5 Web development</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
jQWidgets gives us something new and special. It’s a new and unique 
library for Web development and unlike others it makes our Apps and 
Websites look beautiful on desktops, touch devices and mobile phones.&lt;br /&gt;
jQWidgets is the ultimate UI toolkit for the next generation of cloud 
apps development and it is built entirely on open standards and 
technologies like HTML5, CSS, JavaScript and jQuery.&lt;br /&gt;
&lt;br /&gt;

jQWidgets brings broad platform and device coverage with minimum 
development cost. It is tested with many browsers and optimized to work 
well on popular phones and tablet devices as well as on PCs.&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href=&quot;http://www.jqwidgets.com/&quot;&gt;http://www.jqwidgets.com/ &lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/6848667975341231074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2012/09/jqwidgets-unique-toolkit-for-html5-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/6848667975341231074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/6848667975341231074'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2012/09/jqwidgets-unique-toolkit-for-html5-web.html' title='JQWidgets - Unique toolkit for HTML5 Web development'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-4777326099132873976</id><published>2012-09-04T05:33:00.001-07:00</published><updated>2012-09-04T05:33:36.568-07:00</updated><title type='text'>Jquery Tutorial : Dom Manipulation</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2 class=&quot;title&quot; style=&quot;clear: both;&quot;&gt;
3.&amp;nbsp;DOM And Attributes Manipulation&lt;/h2&gt;
&lt;div class=&quot;itemizedlist&quot;&gt;
&lt;ul class=&quot;itemizedlist&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;listitem&quot;&gt;
To provide interaction on a page you want to be able manipulate elements dynamically.
&lt;/li&gt;
&lt;li class=&quot;listitem&quot;&gt;&lt;div class=&quot;simpara&quot;&gt;
In this chapter, you are going to learn how to dynamically:
&lt;/div&gt;
&lt;div class=&quot;itemizedlist&quot;&gt;
&lt;ul class=&quot;itemizedlist&quot; type=&quot;circle&quot;&gt;
&lt;li class=&quot;listitem&quot;&gt;
Create elements on the page
&lt;/li&gt;
&lt;li class=&quot;listitem&quot;&gt;
Insert existing or freshly created elements on the page
&lt;/li&gt;
&lt;li class=&quot;listitem&quot;&gt;
Move elements to a different location on the page
&lt;/li&gt;
&lt;li class=&quot;listitem&quot;&gt;
Clone elements
&lt;/li&gt;
&lt;li class=&quot;listitem&quot;&gt;
Remove elements
&lt;/li&gt;
&lt;li class=&quot;listitem&quot;&gt;
Replace elements
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;listitem&quot;&gt;
From a selection of elements, you will be able to get and/or set their attribute values.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; title=&quot;3.1. DOM Manipulation&quot;&gt;
&lt;div class=&quot;titlepage&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3 class=&quot;title&quot;&gt;
3.1.&amp;nbsp;DOM Manipulation&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;itemizedlist&quot;&gt;
&lt;ul class=&quot;itemizedlist&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;listitem&quot;&gt;
Manipulating the DOM using jQuery is a common operation you will have to do most of time.
&lt;/li&gt;
&lt;li class=&quot;listitem&quot;&gt;&lt;div class=&quot;simpara&quot;&gt;
First we’ll focus on the different methods allowing you to create, insert, move, clone, remove, and replace elements in the DOM.&lt;/div&gt;
&lt;div class=&quot;simpara&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;simpara&quot;&gt;
Source: &lt;a href=&quot;http://marakana.com/bookshelf/jquery_tutorial/dom_manipulation.html&quot;&gt;http://marakana.com/bookshelf/jquery_tutorial/dom_manipulation.html &lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/4777326099132873976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2012/09/jquery-tutorial-dom-manipulation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/4777326099132873976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/4777326099132873976'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2012/09/jquery-tutorial-dom-manipulation.html' title='Jquery Tutorial : Dom Manipulation'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-2272942993715211708</id><published>2012-07-22T05:05:00.001-07:00</published><updated>2012-07-22T05:06:12.242-07:00</updated><title type='text'>Little Web Hunt ( CSS Tutorials )</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h1 class=&quot;color-3 main-titles&quot; style=&quot;margin-top: 0px;&quot;&gt;

&lt;a class=&quot;color-3&quot; href=&quot;http://www.littlewebhut.com/html/&quot; title=&quot;HTML&quot;&gt;HTML / XHTML - The language of the web&lt;/a&gt;&lt;/h1&gt;
&lt;a class=&quot;main-logos&quot; href=&quot;http://www.littlewebhut.com/html/&quot; title=&quot;HTML&quot;&gt;&lt;img alt=&quot;HTML&quot; height=&quot;70&quot; src=&quot;http://www.littlewebhut.com/images/html_title.png&quot; style=&quot;margin-top: 20px;&quot; width=&quot;256&quot; /&gt;&lt;/a&gt;
 &lt;br /&gt;
&lt;div&gt;
&lt;a class=&quot;color-3 main-text&quot; href=&quot;http://www.littlewebhut.com/html/&quot; title=&quot;HTML&quot;&gt;&lt;img alt=&quot;dot&quot; src=&quot;http://www.littlewebhut.com/images/dot.png&quot; /&gt;Reference&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a class=&quot;color-3 main-text&quot; href=&quot;http://www.littlewebhut.com/html/&quot; title=&quot;HTML&quot;&gt;&lt;img alt=&quot;dot&quot; src=&quot;http://www.littlewebhut.com/images/dot.png&quot; /&gt;Video Tutorials&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;h1 class=&quot;color-3 main-titles&quot; style=&quot;margin-top: 0px;&quot;&gt;

&lt;a class=&quot;color-3&quot; href=&quot;http://www.littlewebhut.com/css/&quot; title=&quot;CSS&quot;&gt;CSS - Cascading Style Sheets&lt;/a&gt;&lt;/h1&gt;
&lt;a class=&quot;main-logos&quot; href=&quot;http://www.littlewebhut.com/css/&quot; title=&quot;CSS&quot;&gt;&lt;img alt=&quot;CSS&quot; height=&quot;70&quot; src=&quot;http://www.littlewebhut.com/images/css_title.png&quot; style=&quot;margin-top: 20px;&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;
 &lt;br /&gt;
&lt;div&gt;
&lt;a class=&quot;color-3 main-text&quot; href=&quot;http://www.littlewebhut.com/css/&quot; title=&quot;CSS&quot;&gt;&lt;img alt=&quot;dot&quot; src=&quot;http://www.littlewebhut.com/images/dot.png&quot; /&gt;Reference&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a class=&quot;color-3 main-text&quot; href=&quot;http://www.littlewebhut.com/css/&quot; title=&quot;CSS&quot;&gt;&lt;img alt=&quot;dot&quot; src=&quot;http://www.littlewebhut.com/images/dot.png&quot; /&gt;Video Tutorials&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;h1 class=&quot;color-3 main-titles&quot; style=&quot;margin-top: 0px;&quot;&gt;

&lt;a class=&quot;color-3&quot; href=&quot;http://www.littlewebhut.com/inkscape/&quot; title=&quot;Inkscape&quot;&gt;Inkscape - Create Amazing Images&lt;/a&gt;&lt;/h1&gt;
&lt;a class=&quot;main-logos&quot; href=&quot;http://www.littlewebhut.com/inkscape/&quot; title=&quot;Inkscape&quot;&gt;&lt;img alt=&quot;Inkscape&quot; height=&quot;115&quot; src=&quot;http://www.littlewebhut.com/images/inkscape_sample.png&quot; width=&quot;185&quot; /&gt;&lt;/a&gt;
 &lt;br /&gt;
&lt;div&gt;
&lt;a class=&quot;color-3 main-text&quot; href=&quot;http://www.littlewebhut.com/inkscape/&quot; title=&quot;Inkscape&quot;&gt;&lt;img alt=&quot;dot&quot; src=&quot;http://www.littlewebhut.com/images/dot.png&quot; /&gt;Video Tutorials&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a class=&quot;color-3 main-text&quot; href=&quot;http://www.littlewebhut.com/inkscape/graphics_filter_guide/&quot; title=&quot;Inkscape&quot;&gt;&lt;img alt=&quot;dot&quot; src=&quot;http://www.littlewebhut.com/images/dot.png&quot; /&gt;Filter Guide&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;h1 class=&quot;color-3 main-titles&quot; style=&quot;margin-top: 0px;&quot;&gt;

&lt;a class=&quot;color-3&quot; href=&quot;http://www.littlewebhut.com/gimp/&quot; title=&quot;GIMP&quot;&gt;GIMP - Image Manipulation&lt;/a&gt;&lt;/h1&gt;
&lt;a class=&quot;main-logos&quot; href=&quot;http://www.littlewebhut.com/gimp/&quot; title=&quot;GIMP&quot;&gt;&lt;img alt=&quot;GIMP&quot; height=&quot;75&quot; src=&quot;http://www.littlewebhut.com/images/gimp_sample.png&quot; width=&quot;223&quot; /&gt;&lt;/a&gt;
 &lt;br /&gt;
&lt;div&gt;
&lt;a class=&quot;color-3 main-text&quot; href=&quot;http://www.littlewebhut.com/gimp/&quot; title=&quot;GIMP&quot;&gt;&lt;img alt=&quot;dot&quot; src=&quot;http://www.littlewebhut.com/images/dot.png&quot; /&gt;Video Tutorials&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1770048039026775735&quot; id=&quot;codetesterad&quot; name=&quot;codetesterad&quot;&gt;&lt;/a&gt;   &lt;br /&gt;
&lt;div&gt;
&lt;div style=&quot;margin: 0 auto 0 auto; width: 728px;&quot;&gt;
&lt;ins style=&quot;border: none; display: inline-table; height: 90px; margin: 0; padding: 0; position: relative; visibility: visible; width: 728px;&quot;&gt;&lt;/ins&gt;&lt;br /&gt;
&lt;ins id=&quot;aswift_1_anchor&quot; style=&quot;border: none; display: block; height: 90px; margin: 0; padding: 0; position: relative; visibility: visible; width: 728px;&quot;&gt;Source: &lt;a href=&quot;http://www.littlewebhut.com/&quot;&gt;http://www.littlewebhut.com/&lt;/a&gt;&lt;/ins&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/2272942993715211708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2012/07/little-web-hunt-css-tutorials.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/2272942993715211708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/2272942993715211708'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2012/07/little-web-hunt-css-tutorials.html' title='Little Web Hunt ( CSS Tutorials )'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1770048039026775735.post-1397804374089179215</id><published>2012-07-03T05:01:00.000-07:00</published><updated>2012-07-03T05:01:44.371-07:00</updated><title type='text'>HybridAuth, open source social sign on php library</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h1 style=&quot;font-size: 50px; margin-bottom: 10px;&quot;&gt;

HybridAuth, &lt;small&gt;open source social sign on php library&lt;/small&gt;&lt;/h1&gt;
&lt;div align=&quot;justify&quot;&gt;
HybridAuth enable developers to easily build social applications to 
engage websites vistors and customers on a social level by implementing 
social signin, social sharing, users profiles, friends list, activities 
stream, status updates and more.
  &lt;/div&gt;
HybridAuth goal is to act as an abstract api between your application 
and various social apis and identities providers such as Facebook, 
Twitter, MySpace and Google.&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href=&quot;http://hybridauth.sourceforge.net/index.html&quot;&gt;http://hybridauth.sourceforge.net/index.html &lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://narendranagesh.blogspot.com/feeds/1397804374089179215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://narendranagesh.blogspot.com/2012/07/hybridauth-open-source-social-sign-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/1397804374089179215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1770048039026775735/posts/default/1397804374089179215'/><link rel='alternate' type='text/html' href='http://narendranagesh.blogspot.com/2012/07/hybridauth-open-source-social-sign-on.html' title='HybridAuth, open source social sign on php library'/><author><name>NageshBlog</name><uri>http://www.blogger.com/profile/16116406245702771116</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><thr:total>0</thr:total></entry></feed>