Bye 2016

I see a lot of people say 2016 was bad year. It is to a certain extent, but what I believe is it was a good experience and feel that 2017 will be the year to correct previously made mistake and time to be present in the moment as it is the greatest present 🎁, right now that money can’t buy and is in short supply. So live in the present and be a present 🎁 to someone.

How you spend your hours decided how your day goes, how you spend you days decides how months as they decided how the year ends for you. — Darryl Dias

Hope you enjoyed the read, Happy new year 😊

My experience with WordPress SQLite

A few months back I wrote a post on how to get WordPress running with SQLite which received a great response and turned out to be something people were looking for quite some time.

This means instead of using a production-grade SQL Database you can use a file that can be queried as a DB, making the footprint smaller.

I would like to kjmtsh to make this possible by creating the SQLite Integration plugin.

This website was previously powered by WordPress and SQLite which was great. It did not require configuring of a MySQL database, it ran very well on my VPS, which was a $5 Digital Ocean droplet that did a great job serving the site as it was relatively new and had only 60 to 100 views a day.

It was all going well until I started using plugins to get some extra functionality and 3rd party services that made the file size bigger and took longer to query, over time the website start receiving more visitors, now 200 to 300 which made it slow, when multiple visits took place serving them took even longer and even the admin interface was affected by them.

The “vacuum” option worked well to reduce the file size, the main problem was not of the file size. It was of unused columns and tables created by plugins that were never deleted or cleared after disabling it and removing it from the system.

WordPress does not remove an unused information and does not give you an option by default.

I found that using cache plugins would be a temporary fix, which did fine, but then it started making the admin part sluggish and things, like drafting and editing previously published content, was a nightmare while the site still grew and had, even more, larger amounts of viewership and made it super slow a request would take 30 seconds to load.

I spent some good time doing research on troubleshooting this problem and it turned out that the SQLite setup is great for websites that have smaller viewership and those that don’t update very frequently.

This website has over 172 posts which no longer made it small and continues to grow.

The reason I was using SQLite was that MySQL would be too heavy on a single core 512 MB VPS and I did not expect to have a large amount of audience.

Right now this website runs Ghost which is a nice blogging platform, back to WordPress and is powered by MySQL Database and I have upgraded to a $10 VPS which offers 1GB of RAM.

WordPress was never designed for SQLite but can be a good alternative for those who don’t prefer or don’t have the resource to host a MySQL Database.

This would be the perfect solution for devices like Raspberry Pi.

It would fail if there is more than one editor working on the same or different content as SQLite does not do Async quite well and will be slow as hell.

Hope you enjoyed the read, leave a comment below to let me know what you think or if you are planning to go with SQLite.

When to use a static site?

Static sites are great they don’t require a Database or pre-processors and they don’t require any complex server sided setup to get working. All you need is a web server that is set to serve a static folder. In the earlier days of the Internet, everything was static and had to be written because pre-processors and server side scripts were not a thing. At that time almost every web page had to be hand coded which was time-consuming. These days we have pre-processors and server side scripts which let us create websites, web applications with ease and has also reduced the amount of code we have to write this also has resulted in a lot of developers adopting DRY(Don’t Repeat Yourself). The static site still exists and are in use, but the real questions are Are they an overkill? When to use one? and How often is the content being updated matters Is it difficult to create one? The benefit over another type? Hosting?

Are static sites an overkill

Yes, if it is being used in a setup where a Database drove the website is doing fine and does not turn into a resource hog on a web server.

When to use one? and How often is the content being updated matters

If yes, then you how often? if the site is going to be updated every date or once in a week, it makes total sense to go static especially if you are a single user/admin. If the site is updated hourly or after certain minutes then it can remain static only till the updates are client sided why? because after a certain number of pages (150-1000) static site generators and website builds get slow and can be much slower if pre-processing of stylesheets and scripts are done. I would highly recommend going for a Database driven CMS if your website has multiple authors are multiple content publishing in such a senior a static site build would be more of a hassle and at some point turn unmaintainable as each author might end up having a different version of the same or different content.

Is it difficult to create one?

No, these days we have static site generators like Jekyll and many other popular static site generators that are well documented so a less knowledge person can also create a simple and fast website. Most of the static site generators like Jekyll ship with markup stylesheet and scripts pre-processors like Markdown, Sass, CoffeeScript that give you more control over your output. It is also lighter because it is a pre-rendered page which can be great for a high traffic website that does not update often especially when running on a low spec server

Benefits?

It is faster than a Database driven website because it does not require any server sided pre-processing or querying or doing any kind of fetching. It can be built on any system supported by the specific static site generator. It can be previewed locally much easily before being published to production. It is more like a filesystem, so it can be version controlled easily with the help of Git or Mercurial or any other DVCS tool.

Hosting?

All you need is the output of the static site and place it into the webroot even the most minimal web server can serve the website. GitHub offers GitHub Pages service that lets you host your websites on *.github.io domain, which is great if you want to have an open source website. It also offers Jekyll integration. Which makes it cheaper to host, which is great if you don’t want to spend a lot of money on. I would recommend that you do good research over static site generators and builders so you can find the right tool for your website. The other great benefit is Thank you for reading, Like always stay tuned for more content.

How to reduce Chrome resource usage

Chrome is one of the most common web browsers used by a large audience. It is easy to use but at the same time a resource hog. The web standards and bleeding edge supports makes Chrome a developer friendly browser at the same time a resource hog. While a simple fix is disabling extensions that are not being used the other solution is to get The Great Suspender which will suspend the tabs that have not been viewed or switched to for a certain amount of time that can be set by the user

The extension offers some easy to setup customization that can help tune the plugin to your taste it has reduced my Chrome usage from 4.85 GB to 1.65 GB which is great because I have many tabs open but focus for a very long time on one tab while watching Youtube videos or reading articles. Thank you for reading.

Difference between .ma and .mb file type in Maya

In Maya, there are two types of file format you can choose when saving a file .ma and .mb these file types are very different from each other and store content very differently and have different file sizes. But there is a bigger difference than the ones listed above and you might have questions that you want an answer for What is the difference? and Which is a better file format?

Maya Binary

Maya Binary

Maya Binary stores all the content in numerical data and stores exactly as it was represented internally. This means it has a smaller file size and faster to read for Maya in terms of performance. However, the disadvantages are if the file has been damaged it cannot be recovered quite often times and has a higher chance of data corruption.

Maya ASCII

Maya ASCII the ASCII stands for American Standard Code for Information Interchange this stores all the content in characters that are encoded in UTF-8. This means the file is plain text and contains characters which when opened in a source editor can be seen as string data. The file size is also larger and can take a while to open in Maya. The file can be edited to remove the string that is no longer in use or was causing conflict while opening the file in a different Maya environment/setup. There is an example of files with the same content stored in the two different formats. Maya Binary file is not readable.

Maya ASCII

Maya ASCII is readable and displays information like which version of Maya the file was last saved in and which OS was used to create the file. I would recommend Maya ASCII because the files don’t get damaged very often and lets you have access to the content stored in the file. It can also be version controlled which is a good practice if the file needs to have multiple versions or has a big team working on it. Thank you for reading.

How to render wireframe in Maya

Rendering wireframes can be a great way to showcase your model or modeling skills, especially when you have to display renders of your work in a showreel or your portfolio.

Maya ships with Maya Vector renderer, which lets you render vector and also offers option to render the wireframe, which means you can render wireframe of your model without having to use a third party plugin or external renderer.

How to do it.

Go to the render settings window, by clicking the last icon.

Switch to Maya Vector from the renderer drop down menu.

Now the render settings window should look like this.

Go to the Edge Options.

Enable Include edges.

Now click on render, now you will get a similar to the image below.

The final output should look like this.

Thank you for reading.

VBO in Blender

Working with heavy topology and large projects with too much geometry can slow down your viewport, which at times might be quite irritating, especially when you have too much geometry and have to fix minor issues. This can be avoided by enabling VBO (_V_ertex _B_uffer _O_bject) which is a nice feature in Blender. To make things simple VBO is a simple process in OpenGL that uploads vertex data (position, normal vector, color, etc.) to the graphics card instead of the system memory. This can have a big impact on performance by reducing lag, it can also let your hardware handle more geometry, because of a dedicated piece of hardware optimized for handling such tasks. Modern graphics cards are designed for handling the intense load (rendering, baking, etc). However, it is not recommended to have VBO enabled if you are using old graphics cards that have outdated drivers or those that are not supported by the vendor.

In Blender release 2.77 this feature is enabled by default and cannot be disabled (the option has been removed).

Here is a video to show how this helps.

Enabling VBO

Go to File > User Preferences

Head over to the System tab.

Blender User Preference

Tick the VBOs box, this will enable VBO.

VBO option zoom

VBO has been enabled now you would see an improvement in performance. Thank you for reading, If you have any questions feel free to leave a comment below