njfcs.org registration system


URL – http://studenst.njfcs.org

Guide –

  1. https://docs.gibbonedu.org/administrators/getting-started/getting-started-with-gibbon/
  2. https://www.youtube.com/channel/UCff1byXVvT5QJMiLcteUr8w

open sis

URL – http://registrar.njfcs.org

Guide – https://www.youtube.com/channel/UCcYDDbIhYQVZ1U6yNzWHAkw






work with wordpress themes and plugins API


  1. https://codex.wordpress.org/WordPress.org_API#Plugins
  2. https://developer.wordpress.org/reference/functions/themes_api/
  3. https://code.tutsplus.com/tutorials/communicating-with-the-wordpressorg-plugin-api–wp-33069
  4. https://dd32.id.au/projects/wordpressorg-plugin-information-api-docs/

themes and plugins

  1. total counts

important ideas and best practices

  1. cloudwatch default/custom metrics – dfault is hypervisor level metrics, all else is custom
  2. count how many RI we need; RI reseller policy
  3. AWS limit/data cheat sheet
    1. 400 kb/DynamoDB record or 5TB max file size in S3
    2. service hard/soft limit


what we do right so far

  1. multi account
  2. automation
  3. steering committee


Instructor email:

Ralph Parisi: Pop me an email: ralph..parisi@gmail.com

Module 1

Enable Scalability

  1. Goal: ensure that your architecture can handle changes in demand
  2. problem – on-prem over purchase; low utilization
  3. autoscaling – doesn’t turn on/off machines. it creates/terminates. Vertically Scale
    1. ec2/nodes should be stateless (no data); application should be stateless if possible; loosely coupled is within the scope of stateless

Automate Your Environment

  1. Goal: where possible, automate the provisioning, termination and configuration of resources
  2. automation in AWS is made possible:
    1. everything is API enabled
    2. software-defined-network
  3. automation ensures best practices – security, cost, reliability, performance, operational excellence

Use Disposable Resources

  1. Goal: Take advantage of the dynamically provisioned nature of cloud computing
  2. Anti-pattern
    1. over time, different servers end up in different configs
    2. resources run when not needed
    3. hardcoded ip addresses prevent flexibility
    4. difficult/inconvenient to test new updates on hardware that’s in use
  3. Best practices
    1. automate deployment of new resources with identical config
    2. terminate resources not in use (make use of DNS)
    3. switch to new ip addresses automatically
    4. test updates on new resources and then replace old resources with updated ones (test environment)
  4. housekeeping – unused resources – EBS volume, snapshots, EC2; Ensure Tagging is required.
  5. tool – Simian Army, Conformity Monkey (Netflix)

Loosely Couple Your Components


  1. Goal: design architectures with independent components
  2. components – SNS, RDS, DynamoDB, S3,
  3. anti-pattern –

Design Services, Not Servers

  1. Leverage the breadth of AWS Services; don’t limit your infrastructure to servers
  2. anti-pattern
    1. simple app run on persistent servers
    2. apps communicate directly with one another
    3. static web assets are stored locally on instances (vs. s3 or custom origin)
    4. back-end servers handle user authentication and user state storage
  3. best practices
    1. serverless solution is provisioned at the time of need
    2. message queues handle communication between apps
    3. static web assets are stored externally such as S3
    4. user authentication and user state storage are handled by managed AWS services

Choose the right database solutions

  1. Goal – Match the technology to the workload, not the way around
  2. look at elastic cache
  3. things to consider


Avoid Single Point of Failure

  1. Mindset – Assume everything fails and design backwards
  2. implement redundancy where possible in order to prevent single failures from bringing down an entire system
  3. Best Practice


Optimize for Cost

  1. Take advantage of AWS flexible platform to increase your cost efficiency
  2. things to consider


Use Caching

  1. AWS wants us to cache everything
  2. Use caching to minimize redundant data retrieval operations


Secure your Infrastructure Everywhere

  1. Build security into every layer of your infrastructure
  2. Things to consider


Well-Architected Design Principles

The Well-Architected Framework identifies a set of general design principles to facilitate good design in the cloud:

  1. stop guessing your capacity needs
  2. test systems at production scale (RDS doesn’t have auto-scaling)
  3. lower the risk of architectural change
  4. automate to make experimentation easier
  5. allow for evolutionary architectures

Pillars of the Well-Architected Framework

  1. Security – apply security at all layers, enable traceability, automate responses to security events, focus on securing your system, automate security best practices
  2. Reliability
    1. test recovery procedures
    2. automatically recover from failure
  3. Performance Efficiency
  4. Cost Optimization – transparently attribute expenditure (tagging), use managed service to reduce cost of ownership, trade capital expense for Opex, benefit from economies (bulk discount) of scale, stop spending money on data center operations.
    1. cloudwatch – reserved bandwidth, caching, CDN
    2. S3 bulk discount
    3. consolidated billing

Module 2: AWS Account Management

Managing Multiple AWS Accounts

  1. Reasons companies may use multiple AWS accounts:
    1. some departments have their own AWS account for security purposes (HR data, PHI, PII data)
    2. Each environment has its own AWS account
    3. the org may have acquired other businesses, and those acquisitions already have their own accounts
    4. the org may operate in multiple geographic areas with different legal requirements, and may want to provide logical isolation of environments accordingly.
  2. boundaries – VPC, Region
  3. when to create multiple accounts
  4. multi-accounts.png
  5. Blast Zone – strong isolation of recovery
  6. AWS service limits work at the individual account level.
    1. every account that requests an increase in the service limit is provided one
    2. soft and hard limits – 400 kb/DynamoDB record or 5TB max file size in S3
  7. AWS support is per AWS account

Governing Multiple Accounts: Consolidated Billing

  1. enables you to consolidate payment for multiple AWS accounts within your company by designating a single paying account
  2. best practices – empty account for consolidated billing
  3. see a combined view of AWS costs incurred by all accounts
  4. benefits of consolidated billing: volume pricing discount

Consolidated Billing Best Practice – Resource Tagging


Having a Tagging Strategy


security tag – data has to be encrypted

Use Tags to ensure your environments Meet your standards



Billing Alerts


Billing Reports

  1. search for 3rd Party billing tool (mostly AMI from market place)

AWS Cost and Usage Reports

AWS Redshift manifest for usage report


Cost Explorer

uses the same detailed data set that is used to generate detailed biling reports with resources and tags.

AWS Budgets and Forecasts

  1. AWS Budgets allow you to define monthly budgets for your AWS costs.
    1. budgets can be an aggregate of all costs or only costs related to specific dimensions (e.g. Account, tag, Az)
    2. you can be notified via email when current or forecasted costs exceed a specified amount

Managing Security for multiple accounts

Governance For Service Access: Cross-Account Roles


Common AWS Security Structures

There are 10 of them

Identity Account Structure

  1. users and groups are stored in one account (assume the role)
  2. federated access
  3. roles created in indvidual account

Logging Account Structure


Publishing Account Structure


Independent Multi-Account Pattern

consideration – security/compliance but overhead involved

independent multi account

Centrally-controlled Multi-Account Pattern

  1. based on business unit
  2. based on projects (project or workload) – sandbox here
  3. based on environments
  4. Multiple Payer Multi-Account Pattern

Common Multiple Pyaer Multi-Account Structure

  1. Hybrid Account Structures

Multiple Account Best Practices

  1. Use group aliases for account email addresses
    1. ensure continuity of access when people leave companies
    2. allow easier to attribute account ownership
  2. Create and enforce resource tagging standards
  3. Leverage AWS APIs and scripts to automatically and consistently apply your company’s baseline config across all AWS accounts

AWS Directory Service

what we have -we used shared service account for okta integration and ‘identity providers’ if you go to ‘shared service account’, you can see ‘Okta’,  which is ‘SAML Provider’.


AD Authentication with AWS

pain point – companies want to connect their on-prem environment to the cloud so that apps can use their existing credentials.

options – Tivoli TAm, webseal, Okta

AWS Directory Service

  1. Simple AD
  2. Directory Service for AD Enterprise Edition
  3. AD Connector

Simple AD


  • Daily automatic snapshot
  • Schema – specification of objects; simple AD cannot extend that
  • cheap option when you don’t need advanced AD features

AWS Directory Service for Microsoft Active Directory (enterprise edition)

  1. managed Microsoft AD hosted on AWS
  2. provides much of the functionality offered by MS AD plus integration with AWS apps
  3. Is the best choice if you have more than 5000 users and need a trust relationship between an AWS hosted directory and on-prem directory

AD Connector

  1. connects to your on-prem AD via existing VPN or Direct Connect
    1. does not require the creation of new users or groups because identity is stored in your on-prem AD
    2. there is no federation
    3. best choice when you want to use existing on-prem AD with AWS services

Solution – Using AWS Directory Service

directory service.png

directory service-multiple account.png

rules for VPC peering – has to be in the same region for the use case above.  solution – vpn or corporate backbone

AWS Directory Service – Benefits

  1. Simple – you can use the management console or simple API calls to set up withinminutes
  2. Secure
    1. accessible via your security groups within VPC only
    2. simple AD is powered by same 4 AD – compatible servers
    3. continue using what you have
  3. Reliable
  4. Versatile

MODULE 3 – Advanced Network Architectures – network throughput, HPC, shared services and VPN (part A)

Using One VPC

  1. limited use cases where one VPC could be appropriate
    1. high-performance computing (HPC)
    2. small, single apps managed by one person or very small team
  2. For most use cases, there are two primary patterns for organizing your infrastructure

Infrastructure Patterns

infrastructure pattern.png

Multi-VPC Pattern

vpc-peering share services.png

Proxy in front of Services VPC – no transitive traffic

Other Important Considerations


S3, DynamoDB now have VPC endpoints.

Maximum Network Performance on EC2

  1. EC2 limitation – AWS will throttle the network bandwidth on lower tier
  2. so use EC2 tier that support enhanced networking – http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html
    • ENI – enhanced network interface

enhanced networking

enhanced networking-2.png

enhanced networking-3.png

max net performance

Jumbo frames – up to 9000 MTU (limited to 1500 MTU by default)

Leveraging Maximum Network Performance with HPC Workloads

  1. HPC – distributed architectural approach for computational and data-intensive workloads
  2. common HPC workloads
    1. engineering and safety simulations
    2. financial risk analyses
    3. computational science
    4. large equipment design
    5. energy exploration
    6. 2D/3D rendering (2000 computers, 24000 cores – Monster University in 2013)
  3. Characteristics
    1. high CPU, mem, storage I/O and network throughput
    2. high numbers of servers run in parallel in clusters or grids
    3. additional accelerators (GPUs)
    4. commodity hardware components
    5. automatic failure recovery
  4. Cluster vs Grid (cluster is harder, grid doesn’t require same hardware)
    1. cluster and grid.png
  5. HPC applications Categories
    1. Loosely coupled grid computing apps
      1. typically used for monte Carlo simulations for financial risk and material science for proteomics
      2. designed to be distributed
      3. do not depend on high performance node-to-node connections
      4. ideally suited for?
    2. Tightly coupled
  6. HPC case study – human genome Sequencing
    1. genome.png
    2. hpc-genome-arch.png

VPN Connection Over VPC

VPN Connection – IPsec

  1. Internet Protocol Security is a protocol suite for securing IP (internet protocol) communications by authenticating and encrypting each IP packet of a communication session
  2. IPsec includes protocols for establishing mutual authentication between agents at the beginning of the session of negotiation of cryptographics keys to be used during the session
  3. protection from DDOS

Static and Dynamic VPN Connections

  1. static rquires all routes (IP prefixes) to be specified
  2. dynamic VPN (BGP) supports max prefixes of 100
  3. BGP over VPN supports 2-byte autonomous system numbers (ASN)

What is BGP (Border Gateway Protocol)




Static VPN

Dynamic VPN

Path Selection Inside the VGW

iBGP and eBGP

VPN billing

  • data transfer charge
  • vpn cost per hour

Additional VPN Features

  1. NAT Traversal (NAT-T)
  2. Re-usable Customer Gateway
    1. same customer gateway (CGW) IP
    2. Create a new VGW and VPN then attach to your VPC
    3. Only one VGW can be attached to a VPC at one time
  3. Additional Encryption Options
    1. phase 1 can now use Diffie-Hellman groups 2, 14-18, 22,23 and 24
    2. phase 2 can now use Diffie-Hellman groups 1, 2, 5 14-18

Software VPNs on AWS


To Avoid being a single point of failure, AWS recommends HA architecture. To do this, host two software VPNs on Amazon EC2 instances in separate AZ and use a third Amazon EC2 instance to monitor the heath of the VPN connections.



Lab Notes

  1. create vpg (virtual private gateway)
  2. attach vpc
  3. create cgw (customer gateway)
  4. create vpn connection













Docker, Nginx and WordPress



object In AWS ECS
  1. A server which is a type of long-running program called a daemon process.
  2. A REST API which specifies interfaces that programs can use to talk to the daemon and instruct it what to do.
  3. A command line interface (CLI) client.The Docker client can either be installed local to the daemon, or on a different host altogether.
dockerfile A Dockerfile is a text file that describes how to “build” the image. tasks?
libcontainer Execution environment of container; interface to various Linux kernel isolation features, like namespaces and cgroups
Linux cgroup (abbreviated from control groups) is a Linux kernel feature that limits, accounts for and isolates the resource usage (CPU, memory, disk I/O, network, etc.) of a collection of processes.
Linux namespaces are a feature of the Linux kernel that isolates and virtualizes system resources of a collection of processes. Examples of resources that can be virtualized include process IDs, hostnames, user IDs, network access, interprocess communication, and filesystems. Namespaces are a fundamental aspect of containers on Linux.
Image build component of a container. It is a read-only template from which one or more container instances can be launched. Conceptually, it’s similar to an AMI.
Registry used to store images. Registries can be local or remote. When we launch a container, Docker first searches the local registry for the image. If it’s not found locally, then it searches a public remote registry, called DockerHub. If the image is there, Docker downloads it to the local registry and uses it to launch the container.
Container is a running instance of an image. Docker uses containers to execute and run the software contained in the image.


Setup CLI – http://docs.aws.amazon.com/cli/latest/userguide/installing.html#install-msi-on-windows

  1. Install python
  2. Install pip
  3. yum install aws-cli
  4. aws configure (setup access key ID, access key and default region)
  5. aws ec2 describe-instances
  6. aws ecs  list-container-instances
  7. aws ecs describe-container-instances –cluster wordpress –container-instances e22a5fc8-3655-4941-aabd-c91b591e39dc



  1. Create ECS cluster using GUI or CLI
  2. aws ecs create-cluster –cluster-name “wordpress”
  3. Create task definition Tell ECS how to run containers that comprise wordpress application – create task definition
  4. Create service


 “containerDefinitions”: [
     “name”: “wordpress”,
     “links”: [
     “image”: “wordpress”,
     “essential”: true,
     “portMappings”: [
         “containerPort”: 80,
         “hostPort”: 80
     “memory”: 400,
     “cpu”: 10
     “environment”: [
         “name”: “MYSQL_ROOT_PASSWORD”,
         “value”: “password”
     “name”: “mysql”,
     “image”: “mysql”,
     “cpu”: 10,
     “memory”: 400,
     “essential”: true
 “family”: “wordpressFamily”


Sample YML


version: ‘2
   image: wordpress
   cpu_shares: 100
   mem_limit: 404288000
     – “80:80”
     – mysql
   image: mysql
   cpu_shares: 100
   mem_limit: 404288000
     MYSQL_ROOT_PASSWORD: password


Sample YML


version: ‘2
   image: ‘mysql:5.7’

   cpu_shares: 100
   mem_limit: 404288000
   image: wordpress:4.6-fpm

   cpu_shares: 100
   mem_limit: 404288000
     – ‘./data/html:/var/www/html’
   image: bcardiff/nginx-4-wordpress-fpm

   cpu_shares: 100
   mem_limit: 404288000
     – PHP_FPM_SOCK=php-fpm:9000
     – 8080:80
     – ‘./data/html:/var/www/html’



Container instance – EC2 instance

Cluster – resource pool

Task definition version – code version



  1. Set desired count to 0 so that you can delete a ‘service’ from a cluster




Update ECS container agent before you go?


sudo yum install aws-cli

aws configure

aws ec2 describe-instances


sudo curl -o /usr/local/bin/ecs-cli https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-linux-amd64-latest


sudo chmod +x /usr/local/bin/ecs-cli


ecs-cli configure –region us-east-1 –access-key $AWS_ACCESS_KEY_ID –secret-key $AWS_SECRET_ACCESS_KEY –cluster ecs-cli-dchang


ecs-cli up –keypair dchangwebmd –capability-iam –size 1 –instance-type t2.small


Note that dchangwebmd is imported via AWS console


ecs-cli compose –file hello-world.yml up

ecs-cli compose –file hello-world.yml –project-name dchang-hello up

ecs-cli compose –file hello-world.yml –project-name dchang-hello down

Note – project-name = task definition name; it will be prefixed by whatever set in .ecs/config

ecs-cli compose –file hello-world.yml –project-name dchang-hello service up (this will start container from scratch every time; data will be erased)



Build a docker image


sudo usermod -a -G docker ec2-user – enable ec2-user to run docker command


docker images – show what you have on the ec2 instance

docker info – show the system info


sudo yum install -y git

git clone https://github.com/awslabs/ecs-demo-php-simple-app

cd ecs-demo-php-simple-app

docker build -t 256428178804.dkr.ecr.us-east-1.amazonaws.com/dchang .

docker build -t dchangusc .

docker tag dchangusc:latest dchangusc

To tag a local image with name “dchangusc” and tag “latest” into the “256428178804.dkr.ecr.us-east-1.amazonaws.com” repository with “version1.0.test”:


aws ecr get-login –region us-east-1


docker tag dchangusc:latest 256428178804.dkr.ecr.us-east-1.amazonaws.com/dchangusc:latest


docker push 256428178804.dkr.ecr.us-east-1.amazonaws.com/dchang:latest


docker rmi 256428178804.dkr.ecr.us-east-1.amazonaws.com/dchangusc (remove images)


docker login -u AWS -p AQECAHhwm0YaISJeRtJm5n1G6uqeekXuoXXPe5UFce9Rq8/14wAAAw0wggMJBgkqhkiG9w0BBwagggL6MIIC9gIBADCCAu8GCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMxZbkRPnqs5jeF88sAgEQgIICwHbybvJc7qMmPfzs86jNTMr2w9Ovxc0haEutw58Mli/wghTmVSdkQeW8e7JnT4X3oOMJIEQePGBWKrC2ep1uo1JGx3CWNpyh0a7ydIPoatULH2g+V7sGh2ydWA0xBzW7bQppD2BR1tX3WrfhKp4Y7Agwh+P7H+txPd3mEiibv89ZIsVWMYKTgZT2NeAEJoMDcMEViYtjOk4ul+EyxeRMJRpL+P76iCPDYNVQcBcaaoXPsyHBA71qiNEgqJPCqrlKpgE5E1V9E8O+zyTLi9JVs3csqtMnud+AhqJeBrkprfqkaLffBXkDUc8meGwetmj82IF9KBdYRx7Bmuw7eXCYFAH+w2LPeJSIStoSJ/1tQFC5zjSDgAapBU34ixcG6Kx2Aj6AAxTpUxeiMpPQgM2iOKMUDG9LoDUl7jF1Pmgr57bUQResTnq2i/sGKvmQTqFanB1njdMktRx+ByxkMQ4Cd3+Dghhy4SrcVDrxxOARQGEnS9aDieGYAjLoXpWgEmXavg/HQO7CG66DprXZGNvyRrS8yj3QsXGv32eeaiTV+z+KE3BE5M0WfliSl0XpVvQSxe9SPitxbs9hhSHikTEZZgrnEKKctI4wlr4MEXBaMD6IiLFhEtEg1Ob/1V7H6YqOT1OfQTACp0+PT0WZOCsdHR9VyUd5/wttxIUN2hrutjWaT5sDet9bvfErRrVrXpDWq2mU2IudBZpNxB+qsNrpHiZkdHNoQ0FRtaa4LNAY9+83JGCVt7GxlU446bBk2fcGFbLteKCsqmt5rka+fYx7vwmTFS5XR8a9Nhalg0CiZf/4YwhekiiplOaiYl1LzeuC0Fn7Cu2g6SycF/qFuND1x15Gzu2lwU0w9eX1i9k8ZhOlT3hTgRGUzy2db7YfgiXyck+CHErKjriyQuPu20ZKLZND6KfC7B5paszwAMzr9wOx -e none https://256428178804.dkr.ecr.us-east-1.amazonaws.com


Sample .bash_profile

# .bash_profile


# Get the aliases and functions

if [ -f ~/.bashrc ]; then

       . ~/.bashrc



# User specific environment and startup programs








aws ecs list-clusters

aws ecs list-services –cluster ecs-cli-dchang

aws ecs list-tasks –cluster ecs-cli-dchang


aws ecs stop-task  –cluster ecs-cli-dchang –task 0be6c2a5-4e49-43af-9c5c-19fe247db194







  • Email to Sean 2017 budget
  • Email to cloud working group – survey, Roe and Thomas
  • Email to tech senior management at AWS conference
  • Email to Rick 2017 projects (slides, Madhura’s feedback)
  • Email to finance – 2017 budget
  • Email to Paul Mort about qa environment and CD pipeline
  • Check Madhura’s writing (load testing data)
  • Check Roger’s forms additional headcount
  • Check Madhura’s forms additional headcount – for ongoing and site performance project
  • Accomplishment table (Madhura)
  • Writing in load testing data (Madhura)
  • API testing data (Derek)
  • Real Device load testing for mobile web – requested by Mahesh. Marquee video is the use case. (Derek)
  • 2017 project table (Derek)
  • QA environment cost anaysis
  • Jacek – CI pipeline end to end






Sample YML

image: nginx
  – ./mysite.template:/etc/nginx/conf.d/mysite.template
  – “8080:80”
  – NGINX_HOST=foobar.com
 command: /bin/bash -c “envsubst < /etc/nginx/conf.d/mysite.template > /etc/nginx/conf.d/default.conf && nginx -g ‘daemon off;'”


Docker hub – https://hub.docker.com/r/bcardiff/nginx-4-wordpress-fpm/


Terraform vs Cloudformation




AWS solutions architect


  • Business logic in EC2, structured data in RDS and static content in S3





  • AWS associate
  • AWS professional – devops engineer and solutions architect




WordPress 新手教學

  1. 發表文章與管理文章 https://startpress.cc/post/wordpress-post-new.html
  2. 選單 https://startpress.cc/post/wordpress-nav-menus.html
  3. 全部內容 https://startpress.cc/post/category/wordpress-tutorials


  1. 只用文章發表 每篇文章必須分類
  2. 文章名稱使用中文
  3. 文章位址(URL) 使用英文
  5. 全部使用開源/免費外掛和佈景主題

site functions

  1. reference to other sites (booking.com agoda, airbnb)
  2. move all media on google drive to ‘google photos’ and videos to youtube so that site can source from it.
  3. logo location
  4. link to social media
    1. facebook feed
    2. facebook like button
    3. facebook page – call to action button
    4. sign in to facebook
    5. link wordpress comment to facebook comment and the other way around
    6. pinterest and instagram
  5. online booking
    1. availability check for online reservation
    2. online payment 易付寶
  6. web: amp page
  7. plugins
    1. use contact form 7 for online form submission
      1. signature
      2. probably sent it to facebook messenger instead of gmail
    2. google translate/dictionary completed
    3. google map
    4. plugin auto optimize
    5. plugin hyper cache and wp cache
    6. plugin site statistics
    7. plugin jetpack

social media

  1. instagram, pinterest, facebook, twitter and other popular one in taiwan
  2. a lot of photos

twenty-seventeen theme – header media sizing

  1. https://core.trac.wordpress.org/ticket/39035

twenty-seventeen theme use slider as header media

  1. https://wordpress.org/support/topic/slider-as-header-image-how/
  2. ensure you set a page as static front page

twenty-seventeen header video no sound

  1. workaround https://wordpress.org/support/topic/youtube-header-video-no-sound/

About twenty-seventeen theme

  1. how to customize https://premium.wpmudev.org/blog/twenty-seventeen-wordpress-theme/?ptma=b&utm_expid=3606929-109.P6e7JvhjTrWFxwrJZjRkog.1&utm_referrer=https%3A%2F%2Fwww.google.com%2F
  2. 5 ways to hack https://premium.wpmudev.org/blog/five-hacks-twenty-seventeen/?ptma=b&utm_expid=3606929-109.P6e7JvhjTrWFxwrJZjRkog.1&utm_referrer=https%3A%2F%2Fwww.google.com%2F
  3. how to master it https://www.designbombs.com/master-twenty-seventeen-wordpress-theme/

Journal and Progress

  1. fine tune twenty-seventeen
  2. create categories
  3. create contact us page
  4. create main menu


home audio system


Before i forgot, one thing for you to consider is the ‘furniture’ for your equipments. to me, the ‘look’ of your setup is probably equally important as the audio part of it

one thing i wasn’t able to accomplish when i built my home theater is that it doesn’t fit my living environment. and home theater has the inherent challenge since there will be equipments, cables everywhere. how to store them properly, decorate with your home is something for you to consider. also because most of HT components don’t have the classy look of a stereo system but it can be fixed if you select your audio furniture and equipments properly.

some sites with quality audio furniture for your consideration

https://www1.crutchfield.com/g_15720/Audio-Cabinets-Racks.html#&nvpair=FFBrand|Bell’O&nvpair=FFBrand|Salamander Designs&nvpair=FFBrand|Sanus&nvpair=FFBrand|Solidsteel&nvpair=YCStyle|Cabinet


Recommended Home Theater System Brands


Create a free website or blog at WordPress.com.

Up ↑