Deploying in 2013, from Grunt to Amazon S3

What is your deploying chain right now? How has it changed over time?

Deploying in 2013

The actual deploy of a single page app I’m involved is based on a single Grunt script, executing on a Node.js environment.

The Grunt chain takes all the files (Backbone.js app, JS libs, HTML templates, CSS and images), checks, copies, concatenates and minificates them.

Continue reading

How to update the remote content of a Modal in Twitter Bootstrap

Twitter Bootstrap is a very good tool with beautiful graphics and lots of tiny useful objects.

The Modal object is nice and lightweight, and is also able to load remote content. I liked it and wanted to use it on a list of links, loading new content every time a link was pressed.

The problem

Unfortunately, I found that the Modal remote content load feature works only the first time the object is used! Once a Modal object is instantiated, it is persistently attached to the element specified by data-target; subsequent calls to show it will only call toggle() on it, but will not update its content. This is because the remote load is done in the constructor of the Modal object, so even changing its properties, the content won’t be updated.

Continue reading

How to implement a custom file manager in TinyMCE 4

The TinyMCE 4 javascript editor has been released in beta three days ago, with html5 support, a new interface and a complete rewrite of all plugins. TinyMCE is the standard WYSIWYG editor for online CMS and websites: if you have a custom file manager attached to the image button, it’s time to think about updating its loading code. Continue reading

MySql performance optimization tricks

MySql performance optimization is an interesting task, I like to focus on it on my free time.

Please note that these are house rules. There is no guarantee that your performance will improve. Use with precautions!

key_buffer_size

An important variable setting is key_buffer_size; a good value is the 20% of total RAM.

Here it is a sample:

key_buffer_size = 820M

max_connections

Also, the max_connections variable could be safely lowered from its default value. Take a look at your Max used connections status variable; you can safely set the max_connections to Max used connections x 5, with a minimum of 40.

Sample:

max_connections = 85

tmp_table_size and max_heap_table_size

Finally, it’s important to take a look to tmp_table_size and max_heap_table_size. You can get a good value for them by dividing the available RAM by the max_connections variable.

Sample:

# Total RAM: 4GB; Mysql supposed available RAM: 3GB; Max_connections: 85;
# Good Value = 3GB / 80 = 35MB
tmp_table_size = 35M
max_heap_table_size = 35M

Thank you 500000!

This is a special day for our little project! The Really Simple Share plugin just reached 500,000 downloads; at the same time our Really Simple Twitter Widget plugin reached 100,000 downloads.

We’re busy keeping them (and the other plugins) update and working. At the moment we’re focusing on the Twitter side, making every plugin API 1.1 compliant.

Thank you everyone, for your requests and support!