text:
en https://superorbit.al/ SuperOrbital Journal 2018-07-19T00:00:00Z Tammer Saleh https://superorbit.al https://superorbit.al/img/logo.png https://superorbit.al/img/logo.png tag:superorbit.al,2018-07-19:/journal/the-cf-vs-k8s-vision-of-devops/ Comparing The Cloud Foundry and Kubernetes Vision of DevOps 2018-07-19T00:00:00Z 2018-07-19T00:00:00Z ?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+SuperOrbital
It's interesting to me to see how aligned people are around DevOps as a movement, and yet how varied the actual implementations end up being.

The best tools often encourage a highly opinionated philosophy of not only how to use them, but by extension, how a team should operate. This is well illustrated by comparing Kubernetes and Cloud Foundry, how they encourage DevOps inside an organization, and what form of it they enable.

Cloud Foundry

Cloud Foundry is a 12-Factor platform that takes most of it's inspiration from Heroku.

There are two distinct personas who interact with the Cloud Foundry platform: The application developer and the platform operator. Each has unique responsibilities and the platform presents them with completely different tools and interfaces.

The Application Developer

The developer is the software engineer who's responsible for writing the application and managing it in production. They interact with Cloud Foundry primarily through the cf command line tool. This tool gives them easy access to higher level commands focused on manipulating deployed applications.

Their view is entirely app-centric. They have no visibility into the underlying virtual machines or servers that the platform is running on. They also need no more than a basic familiarity with the contents of the container image that houses their application, or indeed of the fact that there are containers at all.

It's entirely possible to run a massive application in production without diving into the details of the containers. The Cloud Foundry platform does an admirable job of hiding those details from the application developer through buildpacks. It hides other components as well – components it believes are the responsibility of the platform, and not something application developers should manage directly. These include how the ingress routing system works, how to mount persistent volumes, how to implement container-to-container networking, how to gather metrics and logs, how to manage distributed databases and so on.

Instead of these low-level concepts, the cf command provides higher level workflows. It provides simple commands for deploying your application, listing running applications, scaling them, tailing logs, creating databases, adding ingress routes and domains, and so on.

The application developer isn't responsible for configuring servers and running the underlying platform, but they are responsible for the security and performance, and availability of their application. The platform doesn't carry the pager for them.

The Cloud Foundry philosophy is that by providing a more tailored experience, and by automating as much of the stack away as possible, it makes it easier for application developers to practice DevOps without expecting them to become experts in every component from hypervisor to browser.

The Platform Operator

Of course, someone needs to worry about how to provision VMs, how many IOPS are left on the SAN and how to manage and upgrade the platform. This is the role of the platform operator, who interacts with the Cloud Foundry platform through a tool called BOSH.

BOSH is often referred to as "the platform under the platform." It provides operators with the workflow and tooling necessary to provision, configure and manage large-scale clusters of virtual machines. It continually monitors the servers and the software deployed on them, keeping everything running and healthy.

By the way, BOSH is a general deployment tool. It's not at all specific to Cloud Foundry, and it's gaining some popularity in the overall operations world.

Kubernetes

Kubernetes is a container orchestration platform, where the primary unit of deployment is a set of containers, rather than an application codebase. The distinction is subtle, but has far reaching implications throughout the system.

In Kubernetes, there is one persona and one interface into the system. Instead of providing higher level workflows, Kubernetes focuses on exposing the entire system as building blocks that a team uses to construct their ideal architecture.

This flexibility and configurability comes at a price. Users must understand the intricacies of dozens of different domain concepts, how to configure, secure and maintain them. Deploying a single application consists of configuring a Deployment, it's Pods and Containers, a ConfigMap, Secrets, a Loadbalancer or Ingress, and NetworkPolicies. The user must also configure and manage the database themselves, which is a complicated affair consisting of StatefulSets, PersistentVolumes, StorageClasses and PersistentVolumeClaims.

The fact that Kubernetes exposes the underlying domain directly has a democratizing effect. It's possible to draw lines of responsibility in a Kubernetes system. For example, between interacting with the platform via kubectl and administering the underlying servers and Kubernetes processes, or by making use of RBAC and namespaces to restrict what different users can do inside the platform. But the platform doesn't do this by default, instead leaving it as an exercise to the end user.

By omitting a default level of isolation of concerns, Kubernetes encourages a more platonic version of DevOps. In the Kubernetes world, everyone is part of one team and jointly responsible for all aspects of the platform.

The Philosophies

The Cloud Foundry philosophy on DevOps is that the modern stack is getting larger and larger, and that it isn't realistic to expect any one person to be responsible for the entire spectrum. It believes that by targeting specific personas, the interface into this stack can be simplified at the expense of flexibility.

Cloud Foundry is in effect a wall between developers and operations. It allows operations teams to provide more self-management and control to application developers, while guiding them toward best practices.

The Kubernetes philosophy, on the other hand, believes in the DevOps commons. It breaks down the developer/operator wall entirely, and provides the user with a collection of Lego bricks to construct an architecture that suits their needs. Kubernetes works best when everyone intermingles, writing and deploying code as a single team.

Each Path in Context

The Cloud Foundry model is best suited on the two ends of the organizational size spectrum: On the large end are enterprises with many teams wanting to consolidate their platform to control security, decrease complexity and make better use of server resources. They already have a large operations team with complex infrastructure and virtualization needs.

On the smallest end of the spectrum are the pre-investment startups that are able to use a hosted offering such as Heroku, Bluemix or Pivotal Web Services. They have simple technology needs and value a quick path to market above all else.

Kubernetes, on the other hand, finds the sweet spot right in-between the two – The large swath of funded startups with complex microservices needs, for example, benefit from the high configurability, as do smaller departments inside enterprise organizations with similar needs.

Some interesting projects are attempting to bridge the gap between Cloud Foundry and Kubernetes.

From the Cloud Foundry Foundation, we now have the CF Container Runtime, a BOSH-powered Kubernetes as a service. This deploys Kubernetes clusters on demand using the Cloud Foundry Services interface.

Taking a different approach is Eirini (a CF incubated project with support from SUSE, IBM and SAP), which modifies Cloud Foundry to deploy applications into an existing Kubernetes installation. SUSE has also produced SCF, which deploys Cloud Foundry itself onto Kubernetes. Combine both if you're daring.

However, these attempt to sidestep the important question of what type of DevOps organization is right for you. The answer will change as the size and needs of your company changes, but it's important to be mindful of which directions the tools you choose will send you. Attempting to graft an opposing DevOps philosophy onto the wrong tool will result in wasted effort and a workflow full of friction.

 Reach out to learn how we can help your team through engineering or tailored, hands-on workshops on Kubernetes and Cloud Foundry.
 ]]> An exploration in how Cloud Foundry and Kubernetes codify vastly different philosophies of DevOps. tag:superorbit.al,2018-07-09:/journal/google-chromebooks-and-cloud-shell-for-classrooms/ Google Chromebooks and Cloud Shell for Classrooms 2018-07-09T00:00:00Z 2018-07-09T00:00:00Z ?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+SuperOrbital
Workshops are about half of what we do here at SuperOrbital – building and consulting on cloudy infrastructure makes up the other half. One of the most overlooked aspects of making a smooth and enjoyable training experience is the student development environment. Making sure the student's workstations and cloud environments are identical, fully compatible with the workshop labs, and are easy to use isn't an easy task.

We participated in a series of hour long workshops at the most recent Cloud Foundry Summit, where this challenge was even more interesting. We had to come up with a mobile classroom that could be quickly and easily wiped and recreated during the five minute break between workshops. Casey West (Google's resident yoga expert) was kind enough to lend us a dozen Chromebooks. Combined with the Google Cloud Shell, these proved the perfect solution.

Why Chromebooks

Chromebooks present a number of advantages when used in a classroom setting:

They're close to disposable.

They're lightweight, which is useful for bringing to in-house classrooms.

They use google for authentication, meaning students logged into the Chromebook are automatically logged into the GCP console.

The models we use have touch screens, which is a surprisingly useful feature for the instructor when giving a student a quick pointer to get them going on a lab.

Combine them with the Google Cloud Shell, and you have a really slick student experience.

What's the Google Cloud Shell?

Every Google Cloud Account comes with a free persistent terminal built right into your GCP Console. You launch it by clicking on the Activate Google Cloud Shell icon at the top right corner of your console:

Clicking that icon brings up a panel at the bottom of your console with a running bash prompt:

Let's go over some great and subtle aspects about this terminal.

Tmux

For one, tmux is launched for you automatically. For those who aren't yet familiar with this tool, it's a terminal multiplexer that enables terminals to be created, accessed, and controlled from a single screen. This means you can create vertical and horizontal splits, multiple windows and more. It's also designed to be detached from the controlling screen, which means your terminal session will survive if you close the browser tab, put your laptop to sleep, or suffer from an airplane WiFi connection.

Adding tmux was a great move on Google's part, but they made it even better. If you click the plus sign on the terminal tab bar, then you'll get a new tab with a second bash prompt, which is integrated into tmux as another window.

Again, since tmux is designed to survive when detached, your tabs will survive as well.

Orion Cloud Editor

For those who aren't died-in-the-wool terminal junkies, the Cloud Shell also comes with the Eclipse Orion editor integrated as a beta feature. You launch it by clicking on the pencil icon on the terminal tab bar:

Doing that brings up a more than serviceable IDE with syntax highlighting, splits, previews and more:

Easy Authorization

The final feature that's incredibly useful for our workshops is that the terminals come pre-authorized against GCP. That means you can run the gcloud command line tool without first doing the OAuth dance. Just one more hoop that our students don't have to jump through.

We'll stop there, but feel free to read about the rest of the Cloud Shell features.

Persistence

It's important to point out that the Cloud Shell terminal and all of the data in your home directory is persistent, but the running VM behind the terminal is not. What does that mean? When you launch the Cloud Shell terminal, GCP provisions a VM, mounts the persistent disk that contains your home directory, and launches bash. You can see this for yourself by running the mount command:

$ mount | grep /home /dev/sdb1 on /home type ext4 (rw,relatime,discard,data=ordered) $ df -h | grep /home /dev/sdb1 4.8G 240M 4.3G 6% /home

GCP reserves the right to re-provision the underlying VM at any time (it does this, for example, when you request a 24 hour speed boost). When the VM is re-provisioned, any software or modifications you've made disappear. The upshot is that any custom software should be installed in your home directory. You can also see above that you only get 5GB of space in your home directory, so you should exercise some amount of restraint in what you install.

Provisioning

We can combine the above with a git-backed home directory to provide our students with a fully configured terminal environment and a quick and easy way to reset it in case they get in a bind.

First, we need a private git repository that contains all of the training material and the student dotfiles such as .bashrc and .profile. The repo should also include a bin directory, which is placed at the front of the student's $PATH, and which contains all of the statically compiled binaries the students might need (such as kubectl, cf, bosh, terraform, etc). These binaries can get quite large, so we use git-lfs to store them (we'll write about that more in a later post).

We also provide a nuke script, which will use git to completely reset the student's home directory, and pull down any new changes from Github:

#!/usr/bin/env bash set -euo pipefail if [[ ! -v CLOUD_SHELL ]]; then echo "This script removes all changes from a git-backed" echo "cloud-shell home directory." echo echo "Since I don't see the \$CLOUD_SHELL variable" echo "defined, I don't believe we're in a Cloud Shell." echo echo "Cowardly refusing to proceed." exit 1 fi export GIT_SSH_COMMAND='ssh -o StrictHostKeyChecking=no' git clean -df git reset --hard git lfs install git pull git lfs checkout

This script can be run by the student, or by an instructor who has access to all of the GCP accounts. This makes it easy to reset all of the accounts in between classes:

#!/usr/bin/env bash set -euo pipefail for i in $(seq 20); do gcloud --account="firstname.lastname@example.com" \ --project="project$i" \ alpha cloud-shell ssh --command="nuke" & done wait

Git Workflow

All of this has the added bonus of allowing students to use familiar git commands and workflows during the workshops. Students can snapshot their progress and checkout branches while they experiment, giving them even more of a safety net.

Other Cloud Providers

While we're huge fans of the Google Cloud Platform for a number of reasons, we often give training on AWS and other clouds as well. In those situations, we end up provisioning our own infrastructure and recreating a lot of the work that the GCP engineers have already provided for us.

Closing Thoughts and Future Directions

While this workflow has proven itself in our classrooms, there is room for improvement.

For one, we'd like to see Orion upgraded and expanded. As far as we can tell, GCP provides us with version 8, while 17 is the latest release.

Another improvement, of course, would be to allow customization of the underlying VM, which would remove the need to keep software in the home directory.

Similarly, we'd like to see an option to increase the home directory size beyond 5GB.

Even without these changes, we're very happy with the combination of Google Chromebooks and the Google Cloud Shell for an outstanding student experience in our workshops.

 Let us know if your team would like to experience a SuperOrbital workshop, or if you're in need of Kubernetes, Terraform or Cloud Foundry engineering expertise.
 ]]> Why you should consider Google Chromebooks and the GCP Cloud Shell as the foundation for your next workshop, and how we go about provisioning them. tag:superorbit.al,2018-02-22:/journal/superorbital-joins-cff/ SuperOrbital Joins the CFF 2018-02-22T00:00:00Z 2018-02-22T00:00:00Z ?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+SuperOrbital

 I'm excited to announce that SuperOrbital is now an official member of the Cloud Foundry Foundation!

 As VP Engineering for Cloud Foundry at Pivotal, I've always believed that CF is the only truly production grade application platform.

 As founder of SuperOrbital, I believe that more than ever, and I'm excited to help support and take part in the growing community around it.

 You can read more about this in the official press release.

 ]]> Cloud Foundry continues to prove itself as the only truly production grade application and container platform. We're excited to help support and take part in the growing community around it! tag:superorbit.al,2018-02-20:/journal/bastille-networks-casebook/ Bastille Casebook 2018-02-20T00:00:00Z 2018-02-20T00:00:00Z ?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+SuperOrbital
 I was lucky enough to get a chance to work with Bastille Networks, a company at the forefront of enterprise threat detection through software-defined radio.

 Even as the options for DevOps-related tools improve, it still feels like assembling IKEA furniture. So SuperOrbital made a lot of sense; Tammer could sort out the mix of open source software and hosted tools that were the best fit for our needs and assemble our build, metrics and monitoring systems.
  Christian Sepulveda, VP Engineering Bastille Networks

 See the full Bastille Casebook to learn how SuperOrbital was able to help them with their CI/CD and Monitoring & Alerting needs.
 ]]> Bastille Networks needed to invest in CI/CD, metrics & monitoring. SuperOrbital was there to help. tag:superorbit.al,2018-02-18:/journal/safari-bosh-livelesson/ Safari BOSH Livelesson now available 2018-02-18T00:00:00Z 2018-02-18T00:00:00Z ?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+SuperOrbital
I'm happy to announce the official release of the SuperOrbital BOSH Livelesson on Safari!

Months of hard work and thought went into this, and the feedback so far has been incredibly positive!

The journey from why BOSH exists to creating and deploying a BOSH release was a really beneficial one as it covered a lot of ground. The steps were all at a comfortable pace and it never felt like one areas wasn't covered in enough detail to limit progressing onto another.

As a series, I found it to be a really informative and it could be a great resource for those new to cloud foundry and BOSH.

BOSH, part of the Cloud Foundry tool chain, is a truly enterprise-grade system for managing distributed cloud infrastructure and stateful applications. This five hour hands-on tutorial will teach you how to harness its power to build resilient and reliable cloud native deployments.

Start by deploying a fresh BOSH director using the latest tooling on GCP, and finish by authoring your own BOSH release to manage your own software reliably in the cloud.

 Grab your copy on Safari today and learn:

The fundamentals, domain terms, and language of BOSH

How to build your own BOSH releases, gaining confidence that you understand exactly what's deployed on your network

How to fully automate your deployments, unlocking a huge potential in predictability and testability

How BOSH detects VM issues and automatically recovers them for you

How to monitor your deployments with BOSH

How to collocate your own tools into your BOSH deployment

Table of Contents

Lesson 1: Introducing BOSH

In this lesson, you'll learn what makes BOSH unique, its core philosophies and concepts. You'll also learn BOSH and general Cloud vocabulary, and will get pointers of where to get help in the future.

Lesson 2: Deploying the Director

This lesson covers the steps needed to deploy our bosh director, which you'll later use to deploy your production software. The lesson walks through preparing your GCP project and networks, deploying the BOSH director by hand, and accessing the director remotely. Finally, you learn how to deploy the director using the new BOSH Bootloader tool.

Lesson 3: Deploying Nginx

Now that you have a running bosh director, it's time to provision your first production deployment. The lesson starts simple, by deploying a single virtual machine running Nginx. You then learn how to upload stem cells and releases. You then configure your Nginx deploy manifest and your cloud config. Finally, we'll deploy the release, and spend some time exploring what we've produced.

Lesson 4: Deploying Etcd

This lesson explores how BOSH manages a clustered release with persistent disks by deploying Etcd. You'll upload and configure an Etcd release and deploy it to Google Cloud Platform. You then connect to it and ensure replication is happening correctly, and spend some time exploring this clustered release.

Lesson 5: Managing Your Deployment

This lesson covers some of the day to day BOSH tasks. You'll learn how to apply a security patch to all of our VMs at once, how to monitor our deployments, how to manage the processes running on our VMs, scaling the cluster, and reconfiguring the software that's running on the VMs.

Lesson 6: Making Use of Some Advanced BOSH Features

This lesson explores some more advanced BOSH usage. You'll learn how to collocate deployment to run multiple jobs on a single VM. You'll also learn how to use BOSH add-ons to automatically collocate jobs on all VMs in all of our deployments. Finally, we explore the BOSH resurrector, a crucial part of the self-healing nature of BOSH.

Lesson 7: Creating Your Own Release

This lesson takes you step-by-step through the process of building a frontend to Etcd and packaging it up in our own custom release. First, you'll initialize the release directory, and then you'll write the frontend server. Next, you will create the package files and jobs and learn how to manage large files as local blobs. After that, you'll review what we've built so far and explore the development cycle in building a release. Then, you will build and deploy your release, learn how to configure a GCP load balancer for it, and review the entire deployment. You'll finish off by making use of bosh links to make it easier to configure and manage our release.

Lesson 8: Publishing the Release

This final lesson starts by discussing the difference between development and final releases. Next, you will learn how to upload your final release blobs to the Cloud. Finally, you will build your final release and distribute it to the world.
 ]]> Announcing our five hour long video on Safari. Learn how to harness the power of the Cloud Foundry BOSH tool to build resilient and enterprise grade cloud-native deployments. tag:superorbit.al,2016-05-24:/journal/a-modern-cloud-vocabulary/ A Modern Cloud Vocabulary 2016-05-24T10:44:00Z 2016-05-24T10:44:00Z ?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+SuperOrbital

The Cloud is Chaos. Cloud-resilient systems must adhere to a new vocabulary in order to withstand it, but many developers have never been exposed to these concepts. Systems built using these patterns are stronger, more resilient, and are overall easier to reason about.

Declarative (vs Imperative)

When I was a kid, just learning about computers and programming and such, my teacher asked us to describe the precise steps necessary to make a sandwich. She then paired us up, had us perform those steps verbatim, and sat back and cackled as we made disasters of our lunch. She was imparting an important lesson about how we interact with computers: Their power is that they do exactly what we tell them to do, their fundamental flaw is the same.

This is the imperative model. We tell the machine, step by step, what actions to perform. We cross our fingers and hope that these actions will result in a sandwich. If our instructions are wrong, then we end up with something else. If our assumptions were wrong, and the mayo was on the left while the peanut butter was on the right, then we end up with something else.

Imperative systems work well when the conditions are controlled and predictable. If you know i started at 1, then you know i++ will result in 2.

Imperative systems make actual and desired state implicit, and make moving between them explicit. In that way, they are the opposite of declarative systems.

Declarative systems make actual and desired states first class concepts, and take the responsibility of bridging the gap between them (which we call the delta). We interact with these systems by telling them how the world is already supposed to be, and watch as they scramble to catch up.

I should have a sandwich in front of me.

Crap! You're right - there should be a sandwich there! Let me make one!

Declarative systems are much harder to build. They have to be smart enough to find their own path to desired, routing around any obstacles in the way. They can't make assumptions, and instead have to be able to discover the actual state of the world. They're also less predictable. How are we getting there? Who knows? Who cares? Look - we're here! And they can be verbose. Instead of instructing the system to "add mayo" to fix your sandwich, you have to declare the entire sandwich all over again (mayo included).

If imperative systems thrive in controlled environments, declarative systems excel in chaos.

(The Cloud is chaos)

Declarative systems are one piece of the puzzle in resiliency. Another is…

Convergence

When I think of convergence, I think of the parable of the oak and the reed. The oak is strong but rigid, while the reed is weak but survives the storm.

(The Cloud is that storm)

Convergence is a property of a system that says "no matter how hard you blow, I'll eventually be standing again." Convergence goes hand in hand with declarative systems, as a convergent system needs to understand an explicit desired state. Convergence works by continually monitoring the delta between actual and desired state and triggering the declarative system when that delta exists. Often this works by taking a declarative system and simply running it in a loop.

Idempotence

Idempotence means an action has the same effect no matter if it's called once or many times. Mathematically speaking, that means f(f(x)) == f(x).

Idempotence is important in cloudy systems such as distributed databases. Operating in the Cloud means operating in chaos (see a theme forming?), where messages may or may not make it to their destination. We need to know that we can safely run the same command twice and get the desired result.

 x = 5 is idempotent, but x++ isn't.

 HTTP PUT is idempotent, but HTTP POST isn't.

 echo "foo" > bar is idempotent, but echo "foo" >> bar isn't.

Declarative systems are inherently idempotent.

Immutability

Way back when I was a Unix grunt, I managed 400 machines the old fashioned way – SSH and hand-crafted bash loops. This was a nightmare for a number of reasons…

It was error prone – what if the server's down?

It created snowflakes with slightly different configurations than the rest.

It was impossible to reason about the contents of a server. The only way to know the actual state was to SSH in and find out.

Chef and Puppet automated this process, but perpetuated the fundamental flaw of gradually applying changes to the system.

The programming world has long had the concept of immutable data structures (C's const being the simplest), but this concept has been extended to everything from server configurations to distributed databases.

Immutable infrastructure is the practice of burning entire VM images for each software deployment, and reprovisioning those servers entirely. This increases security and reliability, removes snowflakes, and makes the servers easier to reason about.

Immutability can also have a big impact on data stores. It's easy to make performance optimisations if you can decide that the data will never be altered. This also makes many distributed data strategies tractable. Even if your data can be changed, you can fake it by storing immutable versions and reading the most recent one. This is the underlying principle of many modern eventually-consistent systems. I don't know this for sure, but I'm willing to bet cash money that Twitter uses this trick to store tweets.

Know Your Vocabulary

Understanding concepts like Declarative systems, Convergence, Idempotence, and Immutability, and knowing when and how to apply them will help you as you build architectures stable enough to withstand the chaotic mess of the Cloud.
 ]]> The Cloud is Chaos, and cloud-resilient systems must adhere to a new vocabulary in order to withstand it. tag:superorbit.al,2014-07-09:/journal/unix-programming-by-example-runit/ UNIX Programming by Example: Runit 2014-07-09T11:29:00Z 2014-07-09T11:29:00Z ?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+SuperOrbital
I've often heard from fellow developers that they don't feel they have a strong foundation of UNIX principles. The Unix Philosophy is a good set of meta-rules (much like SOLID principles), but I do better by seeing concrete examples.

This description of Runit is such an example. It makes graceful use of the filesystem, symlinks, convention-over-configuration, process semantics, tool modularity and so on.

If you read that article and fully understand all of the features Runit gives you and the benefit of the features it doesn't, then you're on your way to really understanding good UNIX development.

Take a second to read through "Runit for Ruby (And Everything Else)" if you haven't already. We're going to go through it, point by point, to get a practical understanding of what we should be aiming for when building UNIX friendly tools.

Conventions over Requirements over Configuration

Good UNIX tools favor rewarding conformity over enforcing dogma. Runit demonstrates this in spades.

As you can see, all services live in one place, defined by $SVDIR or /service by default, which runsvdir manages.

…and, later:

We can […] give a user control over their own $SVDIR, /home/username/service here.

Everything Runit needs in order to operate is encapsulated in that one directory, conventionally /service, but also easily changed by a non-root user.

It would be tempting but misguided for the Runit developers to add a check to ensure it's being run as root. By not enforcing that, and by allowing the directory to be configured by the environment, we've enabled a major feature: per-user service directories.

This reminds me of the Ruby duck-typing philosophy. Don't sprinkle aggressive type checks throughout your code. Instead, be more flexible and rely on the fact that your code will break cleanly when used improperly. By doing so, you can open entirely new use-cases.

We see this again in the implementation of runlevels:

Runlevels become (unlimited amount of) directories of services (in /etc/runit/runsvdir) which can be switched to quickly and simply.

# Switch to the services described in `/etc/runit/runsvdir/primary` $ runsvchdir primary # Switch to the services described in `/etc/runit/runsvdir/failover` $ runsvchdir failover

Runit doesn't place unnecessary and arbitrary constraints on the user. It's simpler to outline conventions and allow the user to build functionality through normal tools like symlinks. See this description of runsvchdir:

runsvchdir switches to the directory /etc/runit/runsvdir/, copies current to previous, and replaces current with a symlink pointing to dir.

Normally /service is a symlink to current, and runsvdir(8) is running /service/.

So, all runsvchdir actually does is move symlinks around. This is just an encouragement to follow good conventions. A user who "knows better" could easily build scripts to enable more complex tactics. This is similar to how capistrano manages the currently deployed application. Symlinks are also used for the /service/* entries:

The services in /service/* are symlinks to directories (usually in /etc/sv/) which must contain one executable file, named 'run'.

Note that /etc/svs is just an encouraged location for your actual service directories. As King of Your Domain™, you could decide to keep those in /tmp/goingawaynextboot – Runit doesn't need to care, so it doesn't care. But it does strongly suggest the convention of using /etc/svs by repeatedly referring to it in the documentation.

On the other hand, Runit does need to know how to run your service. It could allow you to configure that in a runit.rc file or some such. But it takes a much easier and more oppinionated approach: it requires that you have a run script. It's simple for both Runit and the user, and it's much more predictable.

Runit also leans on convention to enable an entire set of features around failure notifications:

When a process stops, if a file named finish exists and is executable, finish will be run with two arguments, the exit code and exit status of run.

Note that the name of the script isn't configurable (since there's no real need) - it's just finish. It's also entirely optional, since Runit can operate without it. Runit is able to gracefully punt on the entire notification quagmire, because it respects the fact that…

Your Users are Developers

Let's look at the output of sv status:

$ sudo sv status /service/* run: /service/callcenter: (pid 2870) 5266009s run: /service/postgres: (pid 3732) 7700117s run: /service/lighttpd: (pid 27321) 5208602s; run: log: (pid 3724) 7700117s run: /service/ssh: (pid 3757) 7700116s; run: log: (pid 3731) 7700117s ...

Note that all of the details for each service are listed on a single line, in a simple, but well-defined format. This is easily parsable by both machines and humans.

Of course it'd be easier for me to read if it converted the seconds to hours or days as appropriate, or if it aligned all of the columns. But that would make it much harder for me to drive sv through other scripts. As a UNIX user, I'm more than happy to make that trade-off.

You can see this respect for developers in the way Runit enables dependencies between services. Runit simply provides the ability to wait for another service to come up, and expects the user to write run scripts that use it:

Basic dependency example /service/lighttpd/run:

#!/bin/sh -e sv -w7 check postgresql exec 2>&1 myprocess

This single feature (wait 7 seconds for the postgresql service to be running, exiting with an error if that timout is reached), when used by the end user in their run command, solves a whole world of dependency-management features in one blow.

You can even see this focus on scriptability in the lack of output in the happy paths:

Generally there will be no output from such commands, use -v to get some output (examples from here on out will use -v)

This follows Eric Raymond's "Rule of Silence": When a program has nothing surprising to say, it should say nothing.

Similarly, consider Runit's strategy for managing environment variables for each service:

A directory of files where an enviroment variable will be created for each file, with the value set to the contents of that file, may appear cumbersome at first glance.

In practice, however, we find that changing one or two options is the most likely workflow.

With the envdir setup, this becomes

echo "value" > /service/foo/env/VARIABLE_NAME

If you respect the fact that your users are programmers, then it becomes immediately clear that this is much better than a flat file of key/value pairs.

This also shows how we can gain simplicity by leaning heavily on the UNIX filesystem…

The Filesystem is Your Database

Consider, again, the example above. To set environment variables for your service, you simply create a file. Contrast that with the heroku CLI (heroku config:set GITHUB_USERNAME=joesmith), or with setting variables in the .travis.yml file. Both of these solutions require more code on the author's part, more congnitive load on the user, and (at least in the travis case) more effort to script.

Runit's approach, however, is both easy and incredibly simple. It achieved this simplicity because the authors understood that the UNIX filesystem wasn't just intended to hold MP3s. It's your local database.

You can see this same simplicity in adding and removing services:

Remove a service (stop it and make it not start back up, even on boot)

$ rm /service/sshd

That's it. Runit polls the filesystem, and constantly converges on the expected state. Much simpler for the user to interact with than learning a new command line option.

Simplicity through Composability

Runit also achieves simplicity by breaking itself up into many different tools with clear responsibilities: runsvdir, runsvchdir runsv, svlogd, chpst, sv, and more. Most programmers understand the need to break their code into clean classes and modules, but they often fail to extend that into the overall user interface.

By breaking the interface up into multiple executables like this, you simplify the implementation and make each individual tool easier for the end user to understand. The overall system may seem more complex, but that comes with the benefit of being able to easily drive various parts of the system through user-written scripts.

Consider the Runit process hierarchy:

runit `- runsvdir |- runsv | `- apache-ssl |- runsv | `- crond `- runsv `- tinydns

The responsibilities are cleanly split between running many services (runsvdir) and monitoring/restarting a single service (runsv). By moving the restarting logic to many runsv processes, the semantics of each is much simipler to understand and debug. Having many processes with a single task each is better than a single master process with too many responsibilities.

Runit also gains simplicity through a strong understanding of processes and pipes.

Understand Processes

Processes run in the foreground logging to stdout/stderr.

The only thing cool about daemons is the name. They're a terrible hack involving a voodoo ritual of over 10 steps that makes old TSRs look like "good architecture." Daemons were only ever devised as a workaround for the poor design of the original init. Runit understands this, and expects that the services it monitors simply run in the forground as a normal god-fearing executable.

Furthermore, it makes graceful use of stdout and UNIX pipes to handle service logging:

If the directory log/ exists, it will be treated as a log service.

runsv will create a pipe and redirect standard out of the service (and its optional finish script) to log/run.

Log Service (for sshd) /etc/sv/sshd/log/run:

#!/bin/sh exec svlogd -t /var/log/sshd/

Using UNIX pipes simplifies the entire logging problem. Processes no longer need to understand how to talk to syslog - they just print to STDOUT. This is something Twelve-Factor systems like Heroku and Cloud Foundry get right.

Become a Better Developer by Understanding UNIX

The logging example above actually sums up everything we've talked about quite nicely:

By respecting the fact that the user is a programmer, Runit enables them to implement whatever filtering or strange logging logic they need.

Runit doesn't enforce that users manage logs in any specific way, but encourages conventions by providing the svlogd logging tool.

Runit achieves simplicity by treating the logging service like any other process.

It leans on the filesystem: the log subdirectory is just another service directory, and could be shared amongst other services via symlinks.

It only enforces the conventions it has to: the log directory is entirely optional, but the run file is necessary (and isn't configurable). Similarly, logging isn't required, but if it's used, then all logs must come via STDOUT.

These principles are old, but there's a lot to learn from revisiting them. You can become a significantly better developer by studying how a single, well-written UNIX tool makes graceful use of the filesystem, symlinks, convention-over-configuration, process semantics, tool modularity and so on.

Thanks to Mike Perham, who recently wrote a nice little piece about how much he appreciates runit. It prompted this post by reminding me of how wonderful an example of proper UNIX programming runit (and it's lineage, Daemontools) truly is.
 ]]> Learning good UNIX programming technique by examining how Runit is built. tag:superorbit.al,2014-05-20:/journal/mind-the-map/ Mind the Map 2014-05-20T00:00:00Z 2014-05-20T00:00:00Z ?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+SuperOrbital
I've dealt with a lot of technical debt in my life. Enough to fill a book. I've come to a conclusion: Technical Debt is almost always manageable. Product debt often isn't.

Surface Area

What do I mean by "product debt?"

Features that reduce your control over your product's surface area.

This form of debt usually comes around because of laziness on the product owner's part. Instead of dedicating time and energy towards discovering exactly what knobs customers need, they give them everything in one fell swoop.

"Want to clean up your configuration file? How about we just give you all of Ruby?"

"Want to install a package in the cloud? How about we just give you full root access?"

"Want to gather stats from your processes? How about we just expose the entire runtime over the network?"

At first these feel like clever solutions to entire classes of customer feature requests. "If we just give them X, then we never have to deal with feature requests like this again." But by being lazy, you've created a number of huge problems for yourself.

Unknown unknowns

These decisions impart more features to the end user than they actually need. It's hard as hell to take features away from customers, even the rarely used ones. You're now committed to maintaining features you haven't yet thought of.

Lack of Visibility

To make matters worse, when you add sweeping features such as these, you're left blind as to how customers are actually using your product. You've lost the tooling to give you insight as to how to make your product really shine.

Which packages are they installing? Which commands are they running? Which metrics do they care about?

Painted in a Corner

Iterating yourself out of technical debt is easier because only your team deals with each change. The channels of communication are few, and you can coordinate migrations through each step.

With product debt, however, each change impacts a huge number of people who you have no direct contact with. Removing an all-encompassing feature requires that you gradually add focused replacements until you believe the majority of your customers will be satisfied. But, because you can't control when they migrate to these new tools, and you can't see exactly why they're still using the meta-feature you gave them years ago, this becomes a herculean task.

Maintain the Map

You can get yourself out of product debt, but it's incredibly painful. Apple did it when they abandoned MacOS 9 in favor of a daring new OS X. Heroku did it when they abandoned Bamboo for Cedar, and that took them years. It involves patience, communication, insight and bravery.

To avoid this situation in the first place, you need to start actively thinking about your product's surface area.

Imagine a topography that describes the way your customers interact with your product. Each new feature broadens that landscape, increasing the size of the terrain that you have to monitor and maintain. Some features add fjords, and some add entire continents. Elegant products achieve a high degree of focused utility by exposing very little territory for the customer to understand and interact with. Instead, they focus on keeping that area meticulously maintained. This focus on quality over quantity produces highly maintainable and flexible products.

Your job is to figure out what customers need, and give it to them using as little land as possible.
 ]]> Ignoring the surface area of your product will cause more challenges than any amount of technical debt. tag:superorbit.al,2014-05-10:/journal/building-an-encrypted-usb-drive-for-your-ssh-keys-in-os-x/ Building an Encrypted USB Drive for your SSH Keys 2014-05-10T00:00:00Z 2014-05-10T00:00:00Z ?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+SuperOrbital
UPDATE: This post's process has been encoded and published in this repo, pivotal/usb-login-scripts. Try out the "scripts-autoexpire" for a similar experience with a few extra features.

Security is something you know, something you have, and something you are.

The commonly agreed upon tenets of strong security is that it requires a combination of "something you know, something you have, and something you are." Two factor authentication includes both of those - usually something you know and something you have.

Here's how we've implemented two factor authentication across the board for our SSH keys using USB keychain drives. This strengthens our access to Github repositories and the numerous deployments we manage.

Follow these instructions to increase your security at home and work as well.

Choosing a USB Key

We prefer the Kingston DataTraveler drive due to its size and cost. Once you've found a USB keychain drive to your liking, you'll want to reformat it using macOS's built-in encrypted filesystem.

Format the Drive

Plug your drive into your computer and open Disk Utility. Select the disk (not the volume) on the left and navigate to the "Erase" tab. You'll want to name the volume something simple (such as "keys") to make it easier to access on the command line.

If you see the encrypted options in the dropdown, then just go ahead and format your drive with Mac OS Extended (Case-sensitive, Journaled, Encrypted).

However, some USB keys' partition tables are MBR, which doesn't support encryption, and you won't see encrypted partitions as options in the "Format" dropdown. In that case, you'll have to do a two-step dance, formatting the drive twice:

Once as OS X Extended (Journaled) using the GUID Partition Map, then..

Again, using Mac OS Extended (Case-sensitive, Journaled, Encrypted).

Now, you'll be prompted for your decryption password whenever you insert the drive. Be sure not to save the password into the OS X Keychain.

Add your SSH Keys

If you don't already have SSH keys, then you'll want to generate a new set. In fact, it's probably a good idea to use this as a chance to create a fresh set either way, just in case yours have been compromised.

You create a new SSH key pair by running ssh-keygen:

$ ssh-keygen -f /Volumes/keys/id_rsa -C "Tammer Saleh" Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_rsa. Your public key has been saved in id_rsa.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx Tammer Saleh The key's randomart image is: +--[ RSA 2048]----+ | x | | x x | | x x xxxxxxx| | x x x x xxxx| | x x x x | | x x x x | | x x x x | | x x | | | +-----------------+

Then add the newly-created public key to your Github account.

Script to Load Keys and Eject

At this point, you could use the drive by manually adding the keys to your running agent and ejecting the drive. But that's a lot of typing and feels fairly error prone. Instead, let's script it.

Create the following script on your drive, and name it load:

#!/usr/bin/env bash set -e HOURS=$1 DIR=$(dirname $0) KEY=$DIR/id_rsa if [ -z $HOURS ]; then HOURS=1 fi /usr/bin/ssh-add -D /usr/bin/ssh-add -t ${HOURS}H $KEY /usr/sbin/diskutil umount force $DIR

You will need to mark the script as executable:

$ chmod +x /Volumes/keys/load

Now, you can simply run /Volumes/keys/load to load your keys and eject the drive automatically. This makes for a very quick workflow.

$ /Volumes/keys/load All identities removed. Enter passphrase for /Volumes/keys/id_rsa: ********** Identity added: /Volumes/keys/id_rsa (/Volumes/keys/id_rsa) Lifetime set to 3600 seconds Volume keys on disk3 force-unmounted

Make a Backup Image

Finally, you can make an encrypted backup image in case our USB drive shits the bed.

Again, open Disk Utility. This time, we select the New Image>Image from "keys" menu item. Save the image as keys_backup, and configure it to be compressed and encrypted.

Ideally, you'll store your backup somewhere super secure. Another option is to simply create two USB drives, and store one in a locked box. My wife and I have a locked fireproof box that we use for all of our personal documents (passports, etc), which is an ideal location.

Weaknesses and Future Improvements

While this is infinitely better than leaving your ssh key unprotected on your computer, there are some weaknesses and potential future improvements.

The major weakness is that we're trusting that the host machine hasn't been tampered with. If it has, then we're handing our private keys over to it. Again, this risk exists either way, and isn't made worse through this technique.

The forced eject is blatant cargo culting. When tried without forcing, the drive reports being in use, but lsof shows no processes using it. This is the case even when the script is run from outside the drive, so I'm at a loss.

Ideally, we could store our entire ~/.ssh directory on the keychain. This requires a symlink from ~/.ssh to /Volumes/keys/.ssh, and has a number of other complications around permissions. We haven't investigated further.

Alternatives

A friend of mine recently blogged about his alternative approach, which makes use of an HTTP service that serves your SSH keys, and authenticates with a YubiKey.
 ]]> How to make an encrypted USB key to securely hold your SSH keys in Mac OS X. tag:superorbit.al,2014-01-21:/journal/cto-vs-vpe/ CTO vs VP Engineering 2014-01-21T00:42:00Z 2014-01-21T00:42:00Z ?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+SuperOrbital

What's the difference between a CTO and a VP Engineering?

– People, all over the place.

I get this question a lot.

The biggest misconception is that it's all about the money - that being a VPE is just a step towards being a CTO, a rung in the ladder. This is entirely wrong, and it's a mistake that hurts companies and employees. The differences between the two roles, and the type of person that excels in each, is huge.

CTO

A CTO is an outward facing role. CTOs are tasked with setting the technical vision of a company and evangelizing that vision to the rest of the world. A good CTO has vision and charisma, and should be expected to speak regularly to both the internal team, and at external conferences.

CTO's Don't Lead Teams.

Having experience as a VPE before becoming a CTO is helpful, but completely unnecessary. However, having strong opinions about the future of technology, and extensive speaking experience is a must.

VP Engineering

A VP of Engineering, on the other hand, is a much more hands-on, personal and tactical role.

VPEs are responsible for ensuring that the engineering team continues to hum along at a good pace. They guide the technical architecture of the product, the team organization, and short-to-medium-term technology direction. They have a personal relationship with every engineer and can make the best use of each individuals strengths.

A good VPE can lead teams of hundreds of developers.

The Right Role for You

This division of labor is a pattern. Once you know to look for it, you see it everywhere. CEO vs COO, President and Vice President, Picard and Riker.

It's incredibly rare to find someone who has the skills or the time to tackle all of running the day-to-day aspects of an organization and act as the public facing visionary.

But be careful – these lines blur all the time. Many companies hire for one when they actually want the other. More importantly, many people see themselves as Robert Crawley when they'd be much happier as Mr Carson.
 ]]> The difference between the responsibilities of a Chief Technical Officer and a Vice President of Engineering.


text:
Kratora is open and we are taking orders! We are working hard on keeping our business open, but please note that due to the Coronavirus outbreak and restrictions we can not guarantee same day shipping. We will do our best to try to ship every order that comes in before our normal shipping cut off times. We hope each and everyone of you stay well.
Sign up to receive email updates of new products, special offers, coupon codes and more!
Copyright 2019 Kratora. All Rights Reserved.

subset: commoncrawl


text:
Balikatan exercise strengthens U.S.-Philippine relationship
Terri Moon Cronk
DoD News, Defense Media Activity
WASHINGTON — U.S. and Philippines' armed forces began their 32nd iteration of Exercise Balikatan, April 4, in the Philippines, Defense Press Operations Director Navy Capt. Jeff Davis told reporters, here, April 5.
This year's annual exercise comprises about 5,000 U.S. service members and 3,500 members of the Philippines' armed forces, in addition to nearly 80 Australian Defence Force personnel and observers from 12 other nations, he said.
"It is the premier bilateral training exercise between the United States and the Republic of the Philippines," Davis said, adding that the major U.S. military participating units include the 3rd Marine Division, elements of the 3rd Marine Logistics Group and the 1st Marine Air Wing, the Army's 25th Infantry Division and the 1st Stryker Brigade Combat Team.
"The exercise is designed to increase interoperability through combined military operations and strengthen the long-standing relationship between the United States and the Philippines," Davis said.
It focuses on three simultaneous events through a single scenario across the Philippine islands of Luzon, Palawan and Panay, he added.
This year's Exercise Balikatan – a Filipino word for "shoulder-to-shoulder" – will focus on disaster relief, crisis response training and humanitarian civic action projects, including dental and veterinary services and engineering civic access.


text:
My mission is to provide operative ways of communication between the worlds od business and IT, thus enabling efficient appliance of IT solutions aligned with business. I believe that by focusing on good understanding of business needs and looking after partnership cooperation between a client and a vendor I make the work of both parties significantly convenient. My goal is better solutions, delivered faster and cheaper.
- My services include:
- Recognition of areas of potential business development with IT solutions
- Business process analysis, innovation and design
- Business rules and business requirements elicitation and analysis
- System specification and design (incl. RFI, RFP)
- Surveillance, rationalization and traceability of system development + solution acceptance
The services I provide are based on an over 10 years long experience in delivering IT projects for financial, pharmaceutical and public sectors using modern methodologies and tools (e.g. RUP, Agile, PMM, UML, BPMN). Please visit Projects page for more detail.
Let's do this together!
Jakub Mendys


text:
Let's talk about DELIVERY. Not the baby-producing kind, and not the "special' one that rings your doorbell. No, let's talk about how you come across in making your feelings and needs understood.
Several styles come to mind when I think about people and their chosen deliveries. There's:
"Let Me Be Frank"
"I Need To Be Aggressive"
"I Know You Can Read My Mind"
For example, a simple situation: It's Tuesday night and a couple is having dinner at a local restaurant. Let's listen to the various types of responses:
One Person tells waiter: 'I'll have the salmon with the maple glaze and a Caesar salad."
(Frank) "Really? Do you know how much sugar is in a maple glaze? Aren't you on a new diet?"
(Aggressive) "Don't order that! Let's order something we can share, and I don't want all that sugar and cheese!"
(You Can Read My Mind) Looks over with wrinkled brow. Orders and sulks through most of the meal because you should know that he got sick from Caesar salad the last time he ate it.
(Hinter) "Hmm…" Shifting in the seat. Looking across the table and back at the menu. "Hmm… Are you sure about that? Did you look over the whole menu? You might want some dessert later."
Get the picture? How much more enjoyable the evening could be if we just say what we mean but deliver it in a non-offensive, accusatory or aggressive way.
Instead, how about:
"Do you think the portions are large here so we could share the main dish, and I'll just get a salad?" Or, "If you don't want to share and are really hungry, I'll just get a small appetizer and a salad."
Regardless of what you want to order, you will listen to each other and consider the options – and the evening will turn out a lot nicer. Another approach might be that before the ordering is done, you can have a discussion:
'How hungry are you? I could really share something tonight. Do you feel like a pizza and a salad? If not, I'll get something small."
Sounds so obvious but people often don't even recognize themselves. And it's not just about food.
Next time you are having a real discussion, put me on your shoulder to whisper in your ear. I'll remind you to make your feelings known but help you remember to consider your DELIVERY and maybe you will stop and think about not only what you are going to say – but how you are going to say it.
Then watch what happens. I think you will be pleasantly surprised.
~ Loretta
Photo credits: © Can Stock Photo Inc. / 4774344sean;stokkete; gladkov; lifestock; Antonio_Diaz


text:
|Previous Page
|Next Page
WRANGLING ON THE RANGE #10 Well winter is back here, very unusual for near the end of April, but this winter (of 2008/009) has been a bad and strange one for most of North America. It looks like it will be the 1st of May (Friday) before I'm out at the Ranch. Tonight on the news was the shocking story of husband and wife "veterinarians" in Surrey, B.C. near Vancouver, Canada. They appeared in court today, but the story goes back to February. The SPCA (Society for the Prevention of Cruelty to Animals) rescued 6 horses from these "vets" - the horses were so thin and bony they only had about two days to live. Two horses did not make it - they had to be put down, the other four survived and to see them today (which they showed) you would never know they are the same horses - and nice looking horses they are, now up for adoption. It is just unreal that two "vets" could have been responsible for such mistreatment of six horses. It is DISGUSTING!! They say the two could be: fined $5,000; jailed for 6 months; have their license taken away; never be allowed to have any animals the rest of their lives. AND SO THEY SHOULD HAVE ALL THE ABOVE!! I walked into Blockbusters today, and found a horse movie I did not know existed. It is called "The Wild Horse Redemption" and was made in 2007. It is about the wild Mustang of the USA and a high desert foothills prison in the Colorado Rocky Mountains. Hardened criminals are taught training methods from the "horse whisperers" to tame wild Mustangs, taken from Government lands. It's a unique rehabilitation program for horse and inmate. The horses are then put up for sale or adoption after being "green broke." What I was shocked at was that it was not UNTIL 1998 that the trainers training the inmates to break wild horses, realized their "old cowboy" method of "throw a saddle on and ride the buck out of them" did not give very good results. So they decided to go to the modern "horse whisperers" to train themselves how to break wild horses with better results. They were WAY BEHIND the times. I was breaking wild horses in 1961-63 in Saskatoon, Saskatchewan, Canada, with some of the so-called "modern" methods. Part was because I had a teacher that was not the old cowboy breaking guy (well most of the time he was not) in wild horse breaking, and part was because the guy left me to figure out the best way to break wild horses. Yes, I was doing some of the "modern method" way back in 1961, at the age of 18 through until I was 21. Though I did not do other parts of modern horse breaking ways, parts I still do not agree with. The start of this movie still tells me they have not got it correct even as yet. The first thing to do with a wild horse (and we are talking about real wild horses here, never before touched by human hands, not even around the human kind) is to "halter break" them. And to do this you do not run a wild horse around a round pen and throw a rope on it, and except it to cosy up to you. You put a "nerve line" around its head, back of the ears and around the nose. With a nerve line you have control over any horse. It freezes up if it tries to pull back. When the rope is slackened it learns that the nerve pressure is gone. In a very short time, you have a horse that will lead. And so you have halter broken it, and you lead it around the round-pen, and you lead it around for a number of days. It gets to "respect" you. You are the boss, at least so far. And then you go from there. All of which I have given you in detail in previous pages under this section of horse training and "diary" notes. I have not finished watching all the movie, so I will, and then give you more thoughts on it all. Watched more - not impressed very much at all. They have this obviously very nervous and wild horse in the round pen, not even halter broke, so it is "against you" in the horses mind, "and you ain't as big or powerful as I" says the horse. They run the horse around, getting it more excited. The inmate walks towards the horse, the horse in a flash turns its back on him and lets fly with both back legs, as quick as could be. If that inmate had been six more feet closer to the horse, the horse would have nailed him with both hooves on the chest or head - either serious injury or could have killed the guy. I just have to cringe in disbelief they were doing such silly things with wild horses. When you are in a pen, the round pen with a wild horse, that has never been halter broken, and has already developed some respect for you, and some friendship, then you are ASKING FOR TROUBLE! It's one of the craziest ways to get seriously injured. The horse is way bigger than you, way stronger than you, and if it was to charge you and give you a good kicking, then it is the master of the round pen not you, it has you running around the pen, and you better be prepared to jump the wall of that pen if that horse sets out to get in close to you, and give you a licking (and not with its tongue). Halter training, halter training, halter walking, leading, stroking the head and neck, getting to be friends as much as you can is one big key. The horse needs to know you are its friend, it needs to know it can have confidence in you. Soft talk, petting, soft talk. Lead around the pen. Build confidence in the horse. Stop this so-called "sacking out" stuff. I never did it. I've seen too many horses just get taught to be nervously jumpy horses by sacking out. There were other scenes in this movie, of people going in to round pens WAY before the horse was calmed down through nerve rope halter breaking and leading for a number of days around the round pen. And so it showed one guy getting kicked and a few others in too close for comfort in a bad situation. I had to cringe at the scenes, and shake my head. Two guys were trying to get the horse to move clockwise around the round-pen, the horse would have nothing to do with it, and was simply going to run them over. Then there was the scene where one fellow was on the horse, the other guy with a long stick with a flag in the end. You could tell the horse was scared and nervous. The closer the guy got with the flag stick the wilder the horse became, it was smashing into the sides of the round pen, which was made of some tin like substance, to my shock. And so the horse was now scared of the clanging sound of the walls of the round pen. Either way the horse was scared - of the flag stick and then the banging of the walls of the pen when it hit them. Just no way to break a horse. Then there was this other teaching in modern breaking of getting up on the horse's back with your body over its back, and slowly pulling your leg over. The first time the guy went to lift his right leg over, the horse jumped, the guy hit the dust. Now that could have been worse, the horse could have stepped on him or even more kicked him. NEVER DO IT! When you are ready to mount that horse you do it in a saddle, and there are good reasons I say that. FIRST IF THERE IS ANY DOUBT the horse may jump around or even buck, then you can tie the left front foot up to the saddle horn. A three footed horse ain't going to jump very well. I've done it and I know it. Then a saddle gives you a few things you can hang on to, that getting on bare-back does not. You have a saddle horn and you have back leather straps. Those cowboys in this movie that ending up on a horse that did buck, were never taught to grab hold of the back leathers with the right hand if your right handed. Holding the horn stops you getting bucked off when the horse is in backward butt up motion, and holding the back leather strings stops you from getting thrown over the horses head, when the horse is in forward head down bucking position. Most of us are not pro. bronco riding people, so what I've described above is the best way to stay on a bucking horse. I'm amazed that so many un-pro-horse breakers have never thought of the logic of riding a bucking horse that way. Grabbing those leather back-strings are the surest way of keeping you flying off over the horses shoulder or over the horses head. Of course you make sure you have good strongly secured back strings, the ones the cowboys tie their bed rolls to. I told Paul about it when he got bucked off a few times trying to break horses, but it was like talking to the wall, he was not going to do it, hence he continued to get bucked off from time to time. Too may scenes in this movie where it is clear the horse in the round pen is "scared skinny" and was in no mood to cooperate, and in a confined area, a sure way for a human to get hurt. They did not do their homework on halter breaking and getting to pet the horses head, neck and basic body, enough times, which could be many days. I was actually on pins and needles just waiting to see someone get seriously injured. A scene on trying to trim and shoe the hooves was not much better. They were going way to fast in trying to put shoes on horses that would hardly stand for any time with their foot up. One fellow trying to shoe is thrown for a loop a few times, again asking for serious trouble. Wild horses need lots of time to learn to just pick their feet up and be good for trimming, before you try to put on a shoe. They were going to fast in training methods with many of the horses (but some do learn quicker than others), and just not doing it correct in some other cases. This modern "sacking out" idea is for the birds - get away from it. The horse has enough to contend with without you flapping bits of flags and ropes at him. I was never taught it and never thought of it, so I never did it, and I broke many a wild horse to be good trail riding horses in my younger days. Just because you've "sacked out" a horse dozens of times, will make no different if a wild deer suddenly jumps from behind a tree or bush, your horse is 90 per cent sure to be startled and jump. Its instinctive to want to protect themselves from what they think is a sudden attack. You had better have a good seat and legs as you sit that saddle, or you'll be eatin' dirt. I cannot over estimate that lots of time is needed to halter break and lead around and slowly get to touch the horse's head, neck and shoulders, then its back, and so on, to its rump, WITH YOUR HAND. Forget about throwing ropes and flappy flags on poles over its rump and back legs, and scaring the heck out of it. The wild horse needs to know you are not going to hurt it, but be its friend. You start with correct halter breaking and leading, and then touching and petting its head and neck, with soft smooth talk. Once you have shown you are nothing to be frightened by, then it will go smoother for you and the wild horse when you stroke its back, belly, and rump. One thing they did have right, was the knowledge that a wild horse, after you are up and into the saddle and have "broke it" even to go on a trail ride for a number of days, some will, if spooked (and a few if not spooked at all) start to buck. It happens. It happened to me as a young guy. You grab those back saddle stings and the horn or good tight hold of the reins, and you go with the buck. You really have no choice anyway, if the horse starts to buck you ain't going to stop it with smooth soft words. You never let a "green horn" ride a new broken wild horse. You as the trainer have to ride it for many weeks, until you know it is fully dependable, before you put it in a string of trail riding horses. And you have to remember, each horse has its own personality and type, and some horses will ever only be for well experienced, if not what you may call "professional" riders. That's just the nature of the game as they say. Overall the program for the inmates at the Colorado Mustang breaking and training prison is certainly much better for the horses than their old program before 1998, and it seems to have great benefits for helping the inmates of the jail to learn lessons and develop a better way to live life. The sun broke through today, April 26th, and a little bit of Spring came forth, so cowboy gear on and off to the Ranch, for after today winter they say is back till the 1st of May comes, next Friday. For below average temperature it was a pretty good day for trail riders coming out. They were all members, no guide needed, so that left me able to spend some good quality time with my horse Goldie. She got her usual mash and grooming. I did a little side-stepping from the ground with her. A few quick neck-reining turns and circles, and a couple of about 50 feet back-ups. Out we went for a short trail ride, not very long today as the ground and weather just not Spring like. We came back, I gave her some hay cubes, and went to help with horses and riders coming in and going out. I had not yet seen Tom but he did shortly arrive, and told me about two "girl- guide" groups (about 10 in each group) that had come out for a trail ride a few days ago, and it was snowing. He said they were pretty tough girls, I agreed they must have been to ride while it was snowing. Tom introduced me to an Australian young man, about the same age as Tom, forgot his name now, will give it to you next time. He is out to stay on the Ranch for 4 months or more, to help break some of the younger horses born on the Ranch and now are ready to begin to ride. We talked about Australia and the movies "The Man from Snowy River" as well as the recent movie "Australia" with Hugh Jackman and Nicole Kidman, a very fine movie by the way, well worth seeing and/or buying. Tom and the Aussie then left as they had to go to town to pick up two horses they had rented out to two judges in the local "pointer dog" competition. The way the weather has been it should have been "point to the snowman" competition. I then spent 10 minutes or so with Goldie again. Last summer I began to teach her to "bow" - the first stage of it, so we refreshed it and she remembered very well. I also started to teach her to do the front high lift straight out leg march. I say "one" and tap and lift her right front leg out straight. I move quickly to the other left leg, tap and say "two" and pull that leg out straight. It takes time, actually lots of it, as horse trick trainers know. I do not really have the time, so it will take me 10 times longer to get Goldie to do those trick, but maybe she will get them one day, she's pretty smart and quick to learn things. Then I also like to show-jump her, and that takes time. So her and I do what we can with our limited time together. I'm not ready yet to retire from my Monday to Thursday "music teaching" profession - still teaching guitar, banjo, mandolin, in fact all the popular "fretted" instruments; been doing it now for 34 years, either full time or part time. Now it is part time, as I teach only 25 students a week, compared to 40 to 50 a week in full-time years. The Music School I teach for pays me so well, and the students need my teaching; it's not time to retire just yet. So with that and my studies I upload to this Website, I only have limited time with my horse. It all makes for a full and diverse life. We un-saddled and turned out the horses onto the range. I did notice on the drive back to that the grass is trying its best to sprout up, but it has not been easy for it this Spring-time as the winter just wants to hang on and not let go. ........................ To be continued
|Previous Page
|Top of Page
|Next Page
|Navigation List:
|Word Search:


text:
Lesotho— Mothejoa Metsing, former Lesotho deputy prime minister today, met Justice Dikgang Moseneke and his team of mediators to discuss issues pertaining to a peaceful return of Metsing to Lesotho to participate in the kingdom's reform of the constitution, judiciary, civil service, parliament and defence.
The three hour meeting, took place in government offices of the Republic of South Africa, Pretoria. Metsing was accompanied by Tseliso Mokhosi, his deputy leady in their Lesotho Congress for Democracy, the third largest political party in Lesotho. party spokesman, Teboho Sekata says they are satisfied with the talks.
Metsing skipped Lesotho borders into South Africa last year (2017) fearing for his life and up now, leaves in the neighbouring republic as a political refugee.
Last week Friday, July 27, 2018 was in the capital Maseru for an inaugural meeting with stakeholders in the programme that is supervised by the South African Development Community (SADC) through the South African president as facilitator.
Justice Moseneke is mediating on behalf of President Cyril Ramaphosa who is no more able to do justice to the task due to his busy schedule was snubbed by the leadership of the four party alliance government. He nevertheless, went on to meet the opposition, though he should have kicked off his stakeholder meetings by sitting with government. RK.


text:
X-Men's ragin' Cajun might get his own standalone movie, with a 21 Jump Street and White House Down star filling the title role.
Speaking personally, I've never quite understood the appeal of Gambit. His entire identity can be summed up as "mysterious Cajun", and outside of an ongoing storyline where he loved Rogue but couldn't touch her, he didn't seem to have much of interest going on. But maybe that's just me. After all, many X-Men fans seem rabidly affectionate for the character, which was the main reason Gambit appeared in X-Men Origins: Wolverine. But X-Men producer Lauren Shuler Donner doesn't want to stop there. She believes that Gambit has enough draw to carry an entire standalone X-Men movie by himself, and is pushing Fox Studios to make Channing Tatum its star.
"I'm dying to do a Gambit movie with Channing Tatum," Shuler Donner said. "That doesn't have to be a great big movie. It's a thief in New Orleans, it's a whole different story. He's on board, and I have to get the studio on board. How can anyone resist Channing? He's such a sweetheart."
Apparently the only person more interested in a Tatum-led Gambit movie is Tatum himself, which he proved at a White House Down press conference last year. "I would like to play Gambit," Tatum explained. "Gambit's my favorite. I'm from New Orleans, around that area. My dad's from New Orleans, and I like to do a Cajun accent. I could do it for real. No knock on Taylor Kitsch, though, 'cause I actually like his Gambit, but I've always lived around Cajun people. Gambit was always like the woman-loving, cigarette-smoking, drinking guy. He was the punk rock of all the superheroes. He's a thief. He kind of rode the line."
Given that the core X-Men movies are quickly reaching critical mass in characters and convoluted plotlines, taking a step back with a small-scale story isn't a bad idea. I'll even admit that Tatum could pull off Gambit in a way that makes for a fun action flick. That being said, assuming Rogue is still with Iceman in this cinematic universe, Gambit's going to need something original to brood over for a full-length feature film.
Source: Empire Online, via Bleeding Cool


text: Fiber optic cables serve many important purposes in the broadcast industry. One of the most important is distance. The unique characteristics of fiber make it the "go-to" solution for long distance transmissions. FIS Blue has the industry's quickest turnaround times on Fiber Optic Tactical Cable Assemblies. When a critical shoot needs a cable on-site tomorrow, FIS Blue can meet the challenge. Since FIS Blue also produces the Tactical Cable itself, the pricing on the cable assemblies is very competitive.


text:
Megg Nicol
Megg Nicol has written hundreds of songs for various BBC and ITV series as well as for Radio and Musical Theatre. The most prestigious being the BAFTA award winning series YOUR MOTHER WOULDN'T LIKE IT. Find out more at www.meggnicol.co.uk
This is Megg and David's second show as co-writers. Their recent children's opera, THE DRUMMER BOY OF WATERLOO, was premiered by Jubilee Opera in Aldeburgh in 2015 (the bicentenary of the famous Battle) to great acclaim.


text:
On Oct. 17, the City of South El Monte and Fire Station 90 personnel hosted the Eighth Annual Appreciation Day Pancake Breakfast and Open House.
The current drought and water conservation have been constant concerns for many communities, and it was apparent to Forestry Division personnel who participated in the City of Walnut Family Festival on Oct. 10.
The Los Angeles County Fire Department is saddened to announce the death of Fire Fighter Gino "Rick" Zeni of Fire Station 125 in Battalion 5.
Fire Captain Cesar Cano, the recipient of the 2015 Perpetual Fire Prevention Award of Excellence, has been doing fire prevention since his first day as a firefighter.
Five Battalion 17 firefighters are recognized by the Palmdale City Council for saving the life of retired Los Angeles City Fire Captain David Moore.
The Gardena Masons honored Fire Captain Jim Keehn of Fire Station 158 with their Firefighter of the Year award during their annual Fire and Police Recognition Dinner on Sept. 25.
The two additional Bombardier CL-415 aircraft—commonly known as Super Scoopers—will augment the Department's fleet of nine helicopters, one Erickson Air-Crane Helitanker and two Super Scoopers.
It's shaping up to be a beautiful and busy weekend at the beach.
Eleven members of the Los Angeles County Fire Department, along with several sheriff's deputies, were recognized by the Los Angeles County Board of Supervisors on Sept. 29.
The Los Angeles County Fire Department is joining forces with the National Fire Protection Association to remind local residents about the importance of having working smoke alarms in their home.


text: Blue Sail is a local coffee shop located in downtown. I love their coffee and I especially love their sweets. My favorite is their Cinnamon Toast Crunch Latte which has hazelnut and vanilla in it! And my favorite sweet is their chocolate chip cheesecake brownie. Yes it is as wonderful as it sounds!


text:
- Kylie Jenner wore a Backstreet Boys tour T-shirt in her latest Instagram post.
- The shirt is by the label Rhude, and had the brand's name spelled out in Swarovski crystals along the front.
- She paired the shirt with a $620 leather skirt by Epuzer.
- The skirt added an edgy twist to the vintage T-shirt.
Kylie Jenner wasn't even born when the Backstreet Boys released their first single in 1995, but that doesn't mean she can't incorporate a bit of '90s nostalgia in her wardrobe.
The Kylie Cosmetics mogul posted a look of her latest outfit, a modern spin on an old T-shirt, to Instagram.
Jenner wore a Backstreet Boys Millennium Tour T-shirt from clothing line Rhude, adorned with the brand's name written in Swarovski crystals.
She paired the throwback shirt with the $620 Dravit skirt by Epuzer. The skirt has a corset design at the chest and is made up of tiny intertwining stripes of leather, which added an edgy touch to her vintage shirt.
This isn't the first time Jenner has rocked a boyband shirt recently. Another of her recent Instagram posts shows her wearing a hoodie featuring the Speed Hunters, a fictional boyband created for Balenciaga's latest Fashion Week collection.
Though when it comes to supporting her favorite artists, she usually opts for her boyfriend Travis Scott's Astroworld Tour merchandise instead.
Read more: Kylie Jenner took a fashion risk in a pair of bright red pants and a new icy shade of silver hair
Visit INSIDER's homepage for more.


text:
Andhra Pradesh Co-operative Bank has released a Notification to recruit Managers, Staff Assistants. Applicants who have applied for the AP Co-op Bank Recruitment can verify the APCOB syllabus. Those who haven't applied yet can start applying now. The APCOB Manager Syllabus is available on our site. Along with the complete info about the Exam Pattern, AP Co-Operative Bank Syllabus 2016 are also available on our website. So, the Applicants who are planning to attend the Test can check the APCOB Staff Assistant Syllabus. About Andhra Pradesh State Cooperative Bank Ltd (APCOB) : The Andhra Pradesh State Cooperative Bank Limited was shortly known as APCOB. AP State Cooperative Bank Ltd Vijayawada, is a Scheduled State Cooperative Bank for the Andhra Pradesh State. Consequent on the reorganization of the State of AP, the Andhra Pradesh State Cooperative Bank has been reorganized into TSCAB and residual Andhra Pradesh State Cooperative Bank Ltd.
Collect Information for AP Co-operative Bank Syllabus 2016 :
Name of the Department : Andhra Pradesh Co-operative Bank Ltd.
Name of Exam : APCOB Manager & Staff Asst. Exam 2016
Official Website : apcob.org
Total no. of Posts : 47 Vacancy
Name of the Post : Manager,Staff Assistant
Last Date to Apply : 19.09.2016
Manager Exam Date : 14.10.2016
Staff Assistant Exam Date : 15.10.2016
Admit Card Status : Available Soon
APCOB Syllabus : Available Here
Andhra Pradesh State Co-operative Bank Ltd.| AP Co-Operative Bank Recruitment 2016 : The Andhra Pradesh State Co-operative Bank Ltd. had published notification for inviting applications for Manager (Scale-I) & Staff Assistant post. Starting date for filling up online application is 09.09.2016. Those candidate who are applying for Manager & Staff Assistant post of AP Co-operative Bank Recruitment will be eligible for AP Co-operative Bank Manager & Staff Assistant Exam. So those candidate who are intending to attend examination can check exam pattern & AP Co-Operative Bank Syllabus 2016 for exam preparation.
APCOB Manager, Staff Assistant Exam Pattern, Centre & AP Co-Operative Bank Syllabus 2016 in Detail :
APCOB Staff Assistant & Manager Exam Center : APCOB AP Co-operative State Bank will held written examination on 14th & 15th October, 2016. Examination centres are held in the cities i.e Visakhapatnam, Rajahmundry, Vijayawada, Guntur, Nellore, Tirupati & Kurnool. This examination will be held in English language. In this examination, question paper will consist a total of 100 questions marks. Duration of examination will be 60 minutes. There will be negative marking of 0.25 marks for each wrong answer.
APCOB Manager (Scale-I) Exam Pattern 2016 : APCOB has recruited the applicants by conducting the written test & Interview. The Syllabus & Exam Pattern of APCOB Recruitment 2016 is explicitly explained here. Check the below table for precise information regarding APCOB Staff Assistant Syllabus & Exam Pattern.
|APCOB Manager (Scale-I) Exam Pattern
|Subject name
|No of questions
|Total Marks
|Time Duration
|English language
|60 minutes
|Quantitative Aptitude
APCOB Staff Assistant Examination Pattern | AP Co-Operative Bank Syllabus 2016 : Candidate who were applied for these posts they will going to write Examination. This examination will consists of a single paper. This paper consists of multiple choice questions. All candidates will undergo a common multiple-choice type examination. This examination will consists of papers:
|APCOB Staff Assistant Exam Pattern
|Subject name
|No of questions
|Total Marks
|Time Duration
|English language
|60 minutes
|Numerical Ability
AP State Cooperative Bank Syllabus 2016 | APCOB Exam Syllabus : We have the subject wise syllabus in a detailed Way. After checking the APCOB Syllabus, the applicants can Prepare well for the Examination in a perfect Way. Hence, check the Subject wise details here.
APCOB Manager (Scale-I) Reasoning Syllabus :
- Judgment
- Problem Solving
- Observation
- Decision Making
- Similarities & Differences
- Spatial Visualization
- Verbal and Figure Classification
- Discrimination
- Analysis
- Visual Memory
- Arithmetic Reasoning
- Coding & Decoding
- Syllogistic reasoning
- Relationship Concepts
- Statement Conclusion
- Decision Making
- Nonverbal series
- Analogies
- Embedded Figures, etc.
AP State Cooperative Bank Ltd Staff Asst. Numerical Ability Syllabus :
- Averages
- Arithmetic
- Algebra
- Pipes and Cisterns
- Geometry
- Simplification
- Menstruation
- Statistical Charts
- Percentages
- Trigonometry
- Time and Distance
- Data Interpretation
- Boats and Streams, etc
APCOB Syllabus For General English Syllabus :
- Sentence Structure.
- Usage of Words
- Synonyms & Antonyms.
- Vocabulary.
- One word substitutions.
- Idioms and phrases.
- Improvement.
- passage.
- Verbal Comprehension passage.
- Verbs.
- Adjectives.
- Clauses
- Grammar. etc.
AP State Cooperative Bank Syllabus 2016 – Quantitate Aptitude :
- Simplification.
- Average.
- Percentages.
- Time & Work.
- Area.
- Profit & Loss.
- Simple & Compound Interest.
- Time & Speed.
- Investment.
- Problem On Ages.
- Bar Graph.
Easy Step To Download AP Co-Operative Bank Syllabus 2016 :
Candidates who are going to appear for AP Co-Operative Bank Syllabus 2016 can download syllabus from here. As for exam preparation you have to follow its Exam Scheme & Syllabus to score well in exam. To download APCOB Syllabus 2016 follow some steps given below :
- At First, open the official website apcob.org.
- Click on the AP Co-Operative Bank Recruitment 2016 Notification.
- Open the chemist notification for APCOB Syllabus 2016.
- Read the complete notification carefully for exam details.
- Prepare a time table as per according to the exam scheme.
- Follow the pattern and score well in exam.
Important Link For AP Co-Operative Bank Syllabus 2016 :
More details For APCOB Official Notification
Download APCOB Exam Hall Ticket
AP Co-Operative Bank Syllabus 2016 | APCOB Manager, Staff Assistant Exam Scheme : Andhra Pradesh Co-operative Bank Limited is going to recruit candidates for 47 Manager,Staff Assistant Vacancies. Candidates are allowed to submit the application form on or before 19.09.2016. Applicants download APCOB Manager,Staff Assistant Syllabus 2016 for exam preparation.


text:
Author: Gabriel Persechino-Forest Published: May 20th, 2018
Episodes: 12 | Type: TV Series | Language: Japanese & English
There are many school comedies out there and it can sometimes be difficult to know which ones are worth watching. Often, it'll come down to a matter of personal preference between slice of life, fanservice or comedy. Fortunately, this series delivers on all three fronts.
The story revolves around a commoner being transferred to a school attended only by elite young girls and from the premise, you probably already get that this is a harem series; fortunately, this is one of those that is actually more or less realistic. Since the main character is the only game in town, it makes sense he gets all the action. As with most of these types of series though, the story isn't really that important outside of establishing the basic setup of the show. Although the story does develop later on, it never takes itself too seriously and that, in my opinion, is a blessing. Without going into spoiler territory, I'll say that it was refreshing to see a series that isn't afraid to make a finale that is less serious than you'd expect instead of dropping their comedic elements and doing an anti-climatic drama like so many other series of the genre.
The characters are most important in this type of show since the comedy depends entirely on them. Kimito is your average harem lead: Perverted, shy and a nice guy; although, not as pronounced as in most series of the genre. But since the lead in harem series is often just there to make the chemistry between the various female members of the cast work, I don't think a bland lead is an issue or at least, it wasn't for me. The meat of the cast, the harem, consists of Reiko, the nice, sweet and well endowed girl. Karen, the violent and hyper-tsundere type. Aika, the female lead who is slightly tsundere but overall the "friend" type. And finally Hakua, for those who like them young but don't want to feel like pigs (The story is she's older than she looks). This covers the basic types of characters you're getting but they are more nuanced than that of course. This series actually created genuinely fun and interesting characters each with their own quirks and personality and of course the characters themselves are a different version of the tropes we know; for example: Aika is the friend type but the main character isn't actually her childhood friend, Reiko is the nice girl but with an aristocratic twist, Karen is the violent tsundere but also a swords master whose character laughs at shonen tropes… Overall, if you like these types of characters then this series will not disappoint you.
The series has a fairly even mix of fanservice (Never getting too extreme), comedy and slice of life pretty much ensuring that even if you don't like one of these this show still has something to offer. The series revolves heavily on themes of social acceptance in a manner similar to Haganai, although less extreme. The characters have different forms of social issues, aside for the lead, that are explored throughout the series and you'll actually see character progression as well. Character progression is refreshing because usually in most sitcom-style series the characters always stay the same. Of course, due to the social theme at play the characters' relationships and, as a result, their friendship is also central.
Animation & Voice Work
The animation is what you'd expect of a modern series in both terms of quality and style and whether or not that's a good thing is for you to decide. I personally like it although, even for a fanservice series, a skirt with booty bite was ridiculous. I can honestly recommend both dub and sub as a matter of personal preference to the viewer as well; the original Japanese does a fine job while Funimation seems to have put genuine effort into this dub.
Rank: 8
Genuinely fun and energetic with just enough fanservice to go around. It gets thematically relevant without shoving it down the viewer's throat and has a varied and interesting cast of characters. I recommend it as a solid example of its genre and how it should be done.
In Conclusion
Basically, a more tame fanservice comedy that also offers, and pulls off, more serious stories along the way without ever forgetting it is a comedy. If you're looking for a straight up slice of life or for a heavy fanservice series, this show is not for you. If you're looking for a fun romantic comedy, I can happily recommend it.
Source: Article Image: Shomin Sample Funimation DVD/BD cover
- Original Title: 俺がお嬢様学校に『庶民サンプル』としてゲッツされた件 (Ore ga Ojousama Gakkou ni "Shomin Sample" Toshite Gets♥Sareta Ken)
- Director: Masato Jinbo
- Series Composition: Kento Shimoyama
- Release Date: 2015
- License: Funimation


text:
OverviewCreating professional business cards usually takes some design skills, costs money and requires planning. However, today you can create your own business cards with free templates created by other companies. These companies provide layout templates and graphics free of charge. You simply select the best design for your business card and how to properly represent your business on the face of your business card. The online service will print your cards for free.
Step 1Go to the VistaPrint website (see Resources).
Step 2Locate the business cards category on the main page. Click on "Free Business Cards." The customizing screen opens.
Step 3Fill in information for the front side of your business card. In Section 1, enter your company name and contact information in the text boxes on the left side. Ensure that you clearly identify your position and the nature of your business in the text boxes. Avoid using a title like "Boss" or "Chief." If you are a CEO, then write CEO or Chief Executive Officer. Use a capital letter for the beginning of your title. Do not write in all capital letters.
Step 4Select your card's appearance and design in Section 2. Click on one of the thumbnails. A preview will load, showing you what your business card will look like. Consider which design best fits your type of business. If you are a computer consultant, choose the least distracting style for the front of your card (example: two colors, white and blue, fewer graphics). If you're a florist, gardener or craftsman, choose a card that has an image that represents plants, tools or construction. If you're a landscaper or sprinkler salesman, choose a picture with trees and sprinklers. In general, keep your business cards easy to read. Click "Next."
Step 5Create a VistaPrint account name and password, or continue designing your card as a guest. Click "Next" when you are ready to proceed.
Step 6Select the number of cards you want printed. To get your business cards for free, select 250 cards. Decide whether or not you want to have VistaPrint send you emails regarding new offers. Click "Next."
Step 7Select "Matte Finish" for the type of paper to print your cards on. Click "Next."
Step 8Select the "Free" option for the backside of your business cards. Click "Next." Click "Next" again to bypass buying additional items. Click "Next" again to disregard purchasing accessories.
Step 9Decide whether or not you want a free website with your business cards. The website is free for 1 month. Click "Next" to disregard this offer.
Step 10Click on the "Checkout" button to complete your transaction. You will be prompted to enter your mailing address.
- Skill: Easy
- Tip: Clearly represent your business and title on your business card design. Avoid distracting graphics, and keep your business card as professional-looking as possible.
- Warning:
- Do not type your name in all capital letters.


text:
- Stock #134814
- Year2007
- ManufacturerFleetwood RV
- MakeFleetwood
- ModelTioga
- Floorplan31
- TypeClass C
- ConditionUsed
- Mileage28,320
- Length31' 0"
- Price$41,700.00
- Sale Price$31,400.00
2007 Fleetwood Tioga 31 - For Sale in Sarasota, FL.
- ChassisFord
- Engine ManufacturerFord
- Engine Model6.8L Triton V-10
- Fuel TypeGas
- Sleeps4
- Water Capacity (Fresh)30
- Water Capacity (Grey)44
- Slideouts2
Low Hours. Many upgrades including AC and flooring.
If you are in the market for a class c, look no further than this 2007 Tioga 31, just reduced to $31,400.
This Class C is located in N. Fort Myers, Florida and is in good condition. She is also equipped with a Ford engine that has 28,320 miles (as of March 8).
We are looking for people all over the country who share our love for boats/RVs. If you have a passion for our product and like the idea of working from home, please visit SellBoatsAndRVs [dot] com to learn more.
Please submit any and ALL offers - your offer may be accepted! Submit your offer today!
Reason for selling is not using enough.
- Generator
- Awning
- Slideout
5717 Bessie Drive
Sarasota, Florida 34233
Phone: 941-200-1030
Fax: 941-894-3214
Site: http://www.poprvs.com/
More Listings


text:
Sales Partner Opportunities at eTutorWorld
eTutorWorld offers attractive sales incentives for promoting its exciting new online personal tutoring services in Math and Science for school students in grades 5 to 12.
We are looking for individuals and organizations based anywhere in the United States, who are passionate about helping school students do better in school and in life, and who are actively associated with schools, students and parents in their community.
You will work from home, at days and times of your convenience. No financial investment is required. We provide free training. You will earn attractive cash incentives based on the results achieved.
For more information, please mail us at
Quick Links
Follow Us
Give Your Child The eTutorWorld Advantage
Research has proven that personal online tutoring not just cements school learning, it helps build student confidence. eTutorWorld provides the best K-12 Online Tutoring Services so you can learn from the comfort and safety of your home at an affordable cost.
Be it an exam, class test or a quiz, eTutorWorld's Math, Science and English tutors are responsible for your academic progress. Meet your personal coach at your convenient day and time to get help for Grade 3-12 Math, Science and English subjects and AP, SAT, SSAT and SCAT Test Prep help and test practice. All our tutors are graduates and bring with them years of teaching experience to the tutoring lessons.
Our 'Learning by Design' methodology makes sure that each student is at the center of the teaching-learning process. All tutoring sessions start with a question to the student 'What do you want to learn today?' Hence, tutors diagnose your skills and recognize your requirements before the actual tutoring happens. Post every tutoring session, an individualized worksheet is emailed to the student to assimilate learned concepts. Regular formative assessments are used to evaluate a student's understanding of the subject.
The state of the art technology used is stable, user friendly and safe. All you need is a computer or a tablet and an internet connection. The easy-to-use web conferencing software requires a one time download, using which the student can talk and chat to the tutor, annotate on an interactive shared whiteboard or even share documents, assignments or worksheets.
All tutoring sessions are recorded and made available for a month so you can review concepts taught.
Email or call our support team with any issues or questions – we are here for you 24X7.
Also, download free printable math and science worksheets in pdf format and solve SCAT and SSAT Practice Tests online. Sign up for a Free Trial Lesson Today!
Thousands have taken the eTutorWorld Advantage – what are you waiting for?
© 2020 eTutorWorld - Online Tutoring and Test Prep | All rights reserved