Skip to content

Jesse's Software Engineering Blog

Jun 02

Understanding TCP and UDP

There are two popular types of protocols for sending data over a network: TCP and UDP. Both protocols are built on top of the Internet Protocol thus both send packets to an IP address. TCP/IP is the main protocol used on the Internet. When a user requests a page load a TCP connection is made […]

Jan 12

RabbitMQ Cluster

RabbitMQ is a robust message broker for handling distributed message queues. In high availability applications, having a single server may not be sufficient enough for handling availability needs of the application’s data. RabbitMQ offers various clustering options and configurations to ensure messages will be persisted through failures and available when needed. Setup Although a RabbitMQ […]

Jan 09

AWS OpWorks

Amazon’s OpWorks allows for easy EC2 provisioning with Chef. Chef allows instances to configure all services, users, setting, dir/files, etc. as the instance is spun up. This allows for rapid infrastructure expansion and a consistent application stack. Before beginning, be sure there is a key pair associated with the account, which will allow access to […]

Dec 01

Hacklang Async Processing

One of the frustrations in working with PHP is the synchronous, blocking, behaviour of the language. There are PHP extensions, such as pthreads that offer quasi PHP threading; however, that requires extra considerations such as server setups, locking, shared state, etc., and is often times omitted from development discussions due to overhead/learning curve of writing […]

Nov 26

Hacklang Generics

Facebook released Hacklang in early 2014 for use with HHVM, and has since announced that almost their entire code base has been ported from PHP to Hack. Hack interoperates seamlessly with PHP code and offers various enhancements, such as static typing, collections, asynchronous processing, etc. As a PHP developer migrating to Hack, the language was […]

Nov 18

Ubuntu RabbitMQ Install

Often times when developing robust web applications the need arises to be able to asynchronously process information. Large tasks, such as report aggregation, that would cause a web front end to stall can be done asynchronously on a set schedule, or as a reaction to an event, allowing for clients to just consume data and […]

Nov 01

Ubuntu HHVM Install

Facebook’s HHVM is a Virtual Machine which runs PHP, and Hack Lang, through a just-in-time (JIT) compiler to “achieve superior performance” in executing PHP code. From HHVM’s website: Rather than directly interpret or compile PHP code directly to C++, HHVM compiles Hack and PHP into an intermediate bytecode. This bytecode is then translated into x64 […]

Nov 01

Disable SSH Access Using Keys

On most Linux installs anonymous SSH is enabled by default. While the need for this is debateable, I generally disable password SSH’ing to disallow public access. Another important change to the SSH configuration is to disable root access i.e. prevent anybody from SSH’ing into the server as root. User’s with sudo access should be required […]

Oct 26

Apache Prefork MPM MaxClients

Apache2 comes with two different multi processing modules (MPM): Prefork MPM and Worker MPM. Usually when installing Apache via a Linux package manager, unless specifically specified, Apache will be operating with Prefork MPM. Prefork MPM uses multiple child processes, with one thread each, and each process handles one connection at a time. Worker MPM uses […]

Oct 25

Disable Apache Modules

The Apache web server operates by using a combination of modules. The modules are used by the Apache core and do not interact with one another, each offering unique functionality. Depending on which OS you are using, there is likely many Apache modules that are enabled by default that you do not need. Disabling this […]

Blog Powered By Wordpress
<<< Prev Next >>>