Format USB Drive to exFat on Mac OS

OS X has been slowly hiding things, limiting things and making things for professional harder to do. The Disk utility used to be significantly easier to use as an multi-platform disk preparation tool. I had all gave up on it recently when attempting to setup an ubuntu image (.iso) on a thumb drive to setup a new developer server. How-to.

Well it happened again when trying to transfer large files between Mac and Windows. I recently learned about exFat, the new FAT32 that supports massive files. With video, images and images getting large than the 3.7 GB limit of FAT32, its necessary to start preparing my new devices at purchase to have them capable of the large formats before its to late to change.

The option for the exFat format is there in the disk utility and I did format a drive with that. It worked just fine between to Macs (It did seem slow reading the file system but no test to prove that). I needed to get a large video file off of a windows machine so I plugged in my exFat drive in and it said it wasn’t formatted. After a few different attempts and was about to give up, I tried one more google search and came upon this very helpful tip. Using a simple command, it gives you a new option for the type of boot partition – Master Boot Record. Now you can format as exFat and windows will now love the drive and your mac still won’t care. With this solved, I will be formatting all my USB drives as exFat from now on.

The Disk Utility advanced options of El Capitan are hidden and you needed, first:
Quit Disk Utility.
Open the Terminal utility.
Run the following Command:
defaults write com.apple.DiskUtility advanced-image-options 1
Relaunch Disk Utility
And now, just format your USB with MBR Partition (Master boot record) and exFAT file System.
The USB now can mount in OSX & Windows.
Reference

Continue reading Format USB Drive to exFat on Mac OS

Microservices for an non traditional global problem

Microservices require a major infrastructure. They are not a drop in replacement for a monolithic application. Many people will argue against them, and for good reason. Techniques and shortcuts that can be masked and hidden in a single application will shine through and could even be the death of your application infrastructure when it comes to microservices.

All examples I’ve seen come from a singular idea that all data comes in from an apache/nginx connection from a client and needs data returned as quickly as possible. The topic of microservices often oozes out from a single request and response path. I want to broaden this basic idea and talk about how they can be used to make a highly available, more robust and scalable application across the world (not just inside a single network).

An experience I would like to share is when a microservice setup is the only reasonable solution when dealing with a network and data stream structure that is unstable and extremely load heavy.

The problem:

Data coming in from cron import scripts, a tcp data stream and a direct writing mysql replication tool from a 3rd party services.

Solution:

Many small end points that can be restarted, scaled and updated at different times.

These services could be deployed across the globe, each can submit it to a queue (at the time it was gearman), and then a data worker could process and transform the data and store it into the database / cache system.

Once that data was in the system, a task would be triggered on a schedule to calculate and sum down the data to reliable parts, using another type of data processor. That processed data would be submitted into a redis cache and a pub/sub message would be sent off to the queue for the web server to pull that data and push it out through a websocket (which an angular app renders). All of this would not be possible on any other system than a distributed compute system using microserivces with a queueing system.

Summary

There are many ways to skin a cat. The hope here to to give a quick overview of what a microservice can be used for. They are great for taking task like billing processing, sending off welcome emails and doing some extra setup when some event occurs. If done right they give great performance enhancements to your web application. But they can be more than just a helper taking care of some annoying task, they can become the man application source.

References

Microservices by Martin Fowler

Design Patterns PHP

Continue reading Microservices for an non traditional global problem