swissmisfit

Stay High by Tove Lo (Hippie Sabotage Remix) – Pick of the Week

Stay High by Tove Lo (Hippie Sabotage Remix) – Pick of the Week

This weeks pick of the week, is Hippie Sabotage’s remix of Stay High by Tove Lo. Hippie Sabotage’s remix is incredibly catchy and I found myself listening to this remix over and over again, probably an unhealthy amount of times. Stay High by Tove Lo Habits Remix A dark synth draped over a simple progressive beat makes for a perfect build up to an over the top melodic chorus. Detailing the process of “dealing” with a breakup through self medication.

The Hippie Sabotage remix does a fantastic job of bring to life the very feelings and emotion the original lyrical tone set. In my opinion the remix goes well beyond the original, producing a feeling more true to the sense of the emotions I felt Tove Lo was trying to convey in the original. Hippie Sabotage’s beat and melody set a far better scene for the lyrics and for me it will always be far greater than the emotions conveyed in the lyrics created in Tove Lo’s original.

Tove Lo

Tove Lo is a Swedish indie pop / rock artist. Her professional music career began in 2011 when she collaborated with Max Martin, a Swedish music producer, and his songwriting team. Tove Lo released her debut EP, Truth Serum, on March 3, 2014 as a digital download in Sweden. Truth Serum included the singles “Habits (Stay High)”, “Out of Mind” and Hippie Sabotage’s remix of “Stay High”. Stay High’s remix peaked at 32 on Swedish Singles Chart, but was far more successful in other parts of Europe. Eventually peaking on the UK Singles Chart at number six.

Tagged with: ,
MusicPosted in %s, Pick of the Week

Guacamole Recipe: Guacammmole

Guacamole Recipe - Guacammmole

Guacamole Recipe: Guacammmole

Guacamole dip, the dip of all dips and often celebrated as the ultimate party appetizer. Make it for any occasion, or make it for a party and secretly eat half the guacamole before even leaving for the party… This recipe is a super easy guacamole recipe that is sure to have everyone asking about your guacamole dip! Then impress all your friends who ask for the recipe by saying “well, I kind of just winged it.”

Guacamole Recipe Details

Name: Guacammmole Prep Time: 15 minutes Difficulty: Easy Servings: 5

Guacamole Recipe Ingredients

  • 3 Avocados
  • 1/4 cup Red Onion
  • 2 cloves Garlic
  • 1/2 bunch Cilantro
  • 1 Jalapeño
  • 1 Tomato
  • 1 whole Juiced Lime
  • 1/4 teaspoon Green Tabasco Sauce
  • 3 – 4 dashes Salt
  • 1 dash Pepper

Preparation Instructions

It still remains a mystery to me how this recipe can be so damn good and yet contain such simple ingredients. I guess that is the beauty of this guacamole recipe and guacamole in general. Let’s get to it with our ingredients.

Guacamole Recipe Ingredients

You will need three avocados… the fruit of the gods. Don’t worry, I wikipedia’d Avocado and it is in fact a fruit and as you will find out, I often trust everything I read on wikipedia. Another somewhat useless fact to add to your arsenal. In addition we will be dicing up a red onion, mincing a couple of cloves of garlic, chopping cilantro and tomatoes, finely chopping jalapeño’s, and finally juicing a lime.

Fun with Knives

Preparing the Avocados

Avocados can either be a total joy to peel if perfectly ripe, or a total nightmare if not quite ripe or worse overly ripe and on the their way to spoiling. Hopefully yours have ripened to a firm yet soft consistency. If so, you should have no troubles slicing and peeling the avocado.

Sliced-Avocado

To begin cut the avocado in half vertically, hotdog style as I say. Now take your knife and karate chop the seed. Careful to not miss or chop too hard. Twist the blade and pop the seed out. Cut the now halved avocado in half again so that you know have quartered the avocado. Peel the skin and chop the avocado into roughly 1 inch by 1 inch squares. Place the chopped avocados into a larger mixing bowl for later.

Preparing the Red Onions, Garlic, Cilantro, Jalapeño, and Tomato

This guacamole recipe could probably be made far quicker with a food processor, but what fun is that? I prefer to chop my veggies with love. However if you are partial to a processor go ahead and throw the red onion, garlic, jalapeño and tomato into a processor and go to town. If you choose the more adventurous route and chop by hand I applaud you.

Sliced Guacamole Recipe Ingredients

Begin by dicing the red onion. If you aren’t familiar with cutting onions, check out this quick video that details how to slice and dice onions like a pro.

Now on to mincing the garlic. Garlic has a special trick prior to mincing that helps release flavors and aroma in addition to making it incredibly easy to peel. With your unpeeled garlic, take the flat surface of your knife and crush or smash the clove. It should now look like you stepped on it. The clove should now easily peel leaving a delightfully smelling clove of garlic. Proceed to mince the garlic into small bits. Now that your hands totally reek of garlic you may be asking yourself “are my hands going to smell like this for a while?” The answer is “yes,” probably for a day or two. However, you can try rubbing your hands with salt and lemon to remove the smell. Avoid lemon and salt if you recently cut your hands… it won’t feel good… promise.

Cilantro is either described favorably or in more cases than not very unfavorably. It is an herb that has grown on me over the years and I have come to enjoy its flavor in small doses. Begin preparing the cilantro by taking half a bunch and holding it in your prominent hand like a flower bouquet. Separate the leaves from the stems as best as possible and then cut the leaves from the stem in one slice. It is really up to you how whole you want to leave the cilantro leaves, but I tend to keep them a bit larger so they aren’t mashed into a pulp.

Next we have our jalapeños. This is where we get the bulk of our spiceness in the guacamole dip. If you like your guacamole with a kick, add the seeds. If you like your guacamole a bit tamer go ahead and dispose of the seeds.

Sliced Jalapeno Guacamole Recipe

Begin by slicing the top off the jalapeño and then slicing it into thin strips. Turn the jalapeño and slice until you have nice dice sized cubes of jalapeño. Another pro tip, don’t rub your eyes or your skin after washing your hands a few times. If you rub your eyes you aren’t going to have a good time, and will likely not enjoy the guacamole dip and that will make me very sad.

Finally chop the tomato and add the red onions, garlic, cilantro jalapeño, and tomato to our mixing bowl that contains the chopped avocados.

Lime Juice, Tabasco Sauce, Salt and Pepper

Lastly we need to add the lime juice, four to five shakes of our green Tabasco sauce, salt, and pepper to the mixing bowl. It is now a party in that mixing bowl.

Guacamole Recipe Ingredients Ready To Be Mixed

Mix It All Up

We have all our ingredients present in the mixing bowl and now we just need to pull it all together by mixing and whipping our concoction. Once you have mixed it all together and it begins to look as guacamole typically does you can transfer to a serving bowl and dig in! Remember to leave some for the party though.

Gaucamole Recipe Final Presentation

That is all there is to it! Guacamole recipes are about as simple as recipes come, and I promise this guacamole recipe will be a real winner. This is the first recipe on SwissMisfit, and I am happy to know that it was a recipe for Guacamole. Let me know what you think of it in the comments or any difficulties you may have had making it.

Tagged with: , ,
CookingPosted in %s, Food

Functional SMART Tasks and Managing Development

Functional SMART Tasks and Managing Development Process

Sprint planning is a rigorous process driven meeting that most development teams, on a good day, don’t particularly enjoy. The process can sometimes feel like it drones on without any real value being yielded by the team. However, it is important to realize that sprint planning many times sets up the team for a success or failure for any given iteration. It is because of this why we must facilitate this meeting and create a sense of value add for each of the participants so that they can champion the sprint planning meetings and scrum process to other members within the organization.

Functional Smart Tasks and User Stories

User stories in almost any methodology can be described by the acronym INVEST, Independent, Negotiable, Valuable, Estimable, Small, Testable. User stories add a small slice of value to the overall product and in many cases formulate around a feature set or business initiative that stakeholders or product owner has defined as a value add to the product. User stories are comprised of tasks that represent the smaller sub units of work that must be accomplished in order to complete an entire user story.

SMART Tasks – Tasks On A Mission

SMART tasks are defined as Specific, Measurable, Achievable, Realistic and Time-boxed. Tasks need to be well defined and narrow in scope to understand the entirety of a task. The task must have a clear beginning point and end state in order to properly measure progress and status. Tasks should always be achievable given constraints and resource availability. If tasks are being assigned to individuals that don’t feel confident in its ability to be achieved the team needs to take a step back and understand what steps need to occur in order for this task to feel achievable. Finally a task must be achievable within a certain time period. Ideally tasks would last no longer than a day. Anything beyond a day may need to be broken down into additional tasks.

Writing Better Tasks – Functional Smart Tasks

We reviewed SMART tasks above, but lets take our task creation game one step further. Let’s introduce the idea of functional SMART tasks. Functional smart tasks align perfectly with development terminology. All programming languages contain functions, often times written as function(). Functions, when combined with programming best practices define a snippet of code that executes one and only one task. Think of all tasks within a user story as functions that when combined in sequential order achieve the objective of the user story.

6 Reasons Why Functional Smart Tests Benefit Process

Now for the reasons why you should actually care about why I am advocating for this idea. The benefits of functional smart tasks are limited to this list, however these are the primary reasons I continue to practice this method with my team.

1. Uncovering the ‘WHAT’ of User Stories

Functional smart tasks define the WHAT of a tasks objective, allowing for the developer to address the HOW. The how is the skill set that developers were hired to solve, and it is our duty as managers to trust and respect our developers to make the best decisions and provide the optimal solution. Developers who make how decisions are far more engaged and feel a greater sense of accomplishment when a user story comes together. It is this engagement that creates a happy work environment. This is one point that I can’t stress enough, manage the what and leave the how to your team.

2. Don’t Miss A Beat

Walking through functional tasks that comprise a user story will ensure that you won’t miss anything and you won’t include any unnecessary tasks.

3. Measuring Progress

Measuring progress it far easier and more efficient if you don’t need to add any additional tasks during the sprint.

4. Opening Up Dialogue

Discussion and questions centered around each functional task will greatly mitigate any misunderstandings or communication issues that may center around a specific task.

5. Swarm User Stories Effectively

SMART and functional tasks are independent, allowing multiple team members to work together on the same user story and effectively ‘burn’ down user stories in the order they are prioritized.

6. Setting Up For Test Success

Functional tasks lend themselves perfectly to unit testing, providing clear expectations for what tests need to be developed in order to meet acceptable criteria of each functional task.

At this point you are either sold on the idea, or are thinking this guy doesn’t know what the hell he is talking about. Hopefully I have done a fair job explaining the benefits and why of SMART functional tasks. Check out my article on How To Create Smart Functional Tasks to learn about team exercises and methods for creating SMART functional tasks.

Tagged with: , ,
Work

Connect to MySQL Database

Connect to MySQL Database

Requirements

In order to complete the following steps you will need to have a version of MySQL installed on your machine. If you are unsure type the following command in terminal. $ mysql --version

If a mysql version is not listed check out my tutorial on how to Setup Local MySQL Server. This will guide you step by step on installing MySQL and starting up a local MySQL server.

Run MySQL and Connect to Database

Now that we have our MySQL instance running we simply need to run MySQL and connect to our database file.

Run MySQL

Within the terminal application we will execute the following command: $ mysql -u root -p

Let’s break this down into the details of what is being executed. This command states that we want to run ‘mysql’ and the ‘-u root’ option designates that we want to connect as the root user. The -p option tells mysql to prompt you for the password. In most cases the password will be blank. Simply hit enter when prompted for password.

Connect to Database

Notice how are prompt has now changed to ‘mysql >’? We are now running MySQL within the terminal! Our final step in this process is to either create a database file or connect to an already existing database file. In either case you will execute the USE command on the newly created database or the already existing database.

Create Database

What if you don’t have a database already? No problem, we will create a new database with the following command. mysql> CREATE DATABASE database_name;

This command tells MySQL to create a new database with the file name database_name. Now that we have a database we can proceed to use the database.

Use Database

At this point you either have an existing database you want to connect to, or you created a new database in the previous section. Time to connect to our database with the following command: mysql> USE database_name;

Import Data From Database

We have connected to an already existing database and now we need to import the data into the database. Use the following command to import the data from a source: mysql> SOURCE ~/directory/file_name.sql;

This command tells MySQL to import data from a .sql file on your machine. Your path may be different that the one displayed above, so make sure to define a clear path to wherever the file lives on your machine. To avoid needing to define an absolute path you could change directories to the directory that contains the .sql file prior to running MySQL. This would allow you to execute this command instead: mysql> SOURCE file_name.sql;

Tagged with:
Web Development

Setup Local MySQL Server

Setup Local MySQL Server

Setting up a local MySQL server can seem daunting your first time through, however the process is fairly straightforward and not nearly as complicated as it sounds. I will review a couple options to install MySQL and the terminal commands needed in order to setup local mysql server.

Installing MySQL

MySQL installation can be achieved in many ways, however I will be reviewing two methods that are widely used. The first is an installation directly through mysql.com website. The second is through a popular package manager called Homebrew. If you are unfamiliar with Homebrew check out my more in depth discussion, Understanding Homebrew. I prefer the Homebrew approach given the hassle of creating an Oracle account when downloading MySQL through mysql.com.

MySQL.com Direct Download

Downloading MySQL from the website is a bit more involved, but doesn’t require any prerequisites like the Homebrew option. If you have extra time I highly recommend becoming familiar with the Homebrew package manager. I promise it will be worth your time if you plan on adventuring into development.

  • Step 1: Downloading MySQL requires you to visit MySQL’s Website – mysql.com and select the downloads tab in the main navigation. Beneath the MySQL Enterprise Edition utilities list select the “Download from Oracle eDelivery” link.
  • Step 2: Sign in or register an account with Oracle’s Software Delivery Cloud. Agree to terms and restrictions documentation and select “Create Account”
  • Step 3: Select the MySQL Database product pack for Mac OS X platform and press the “Go” button.
  • Step 4: Product results should now be visible below and I suggest downloading the DMG file labeled “MySQL Database 5.6.19 DMG for Mac OS X 10.7 x86”. Once the download has completed open the DMG and install the mysql-advanced-5.6.19-osx10.7-x86_64 package.

Homebrew Package Install

The Homebrew option is more technical in nature, but lucky for us Homebrew does a lot of the heavy lifting and keeps the busy work to a minimum.

  • Step 1: To begin we will want to install Homebrew to our machine. We can accomplish this by typing the following command in terminal. You can find terminal in /Applications/Utilities/Terminal.app and as a reminder for those unfamiliar with terminal, we don’t actually type the $, that is just a reference to the terminal prompt. You should see the $ at the end of your terminal line. $ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)”
  • Step 2: Once the download has finished we will use Homebrew to install git. Check out my series on Git, Getting Started With Git, if you are unfamiliar with git and why it is so awesome. Use the following command to download and install git. $ brew install git
  • Step 3: Now that we have git we are going to update Homebrew. Type the following command to update Homebrew. $ brew update
  • Step 4: Great job! In this Last step we will have Homebrew download and install MySQL to our machine automatically. $ brew install mysql

Congratulations, regardless of what option you chose, you now have MySQL installed on your machine and have one more step to go to a setup local mysql server.

Starting, Stopping and Restarting Local MySQL Server

In order to connect to a MySQL database or create a MySQL database, a local MySQL server will need to be started. The code to follow may look intimidating, but I will break it down.

Start Local Server

Within the terminal application we will execute the following command. $ sudo /usr/local/mysql/support-files/mysql.server start

This command starts up a local instance of a MySQL server. The ‘sudo’ preceding the command denotes that we will be running this command as a super user (SU), eliminating any issues we may have with permissions. Following the execution of this command you will be prompted to enter a password. This password is your account password, which is the same password you use to login to your Mac user. After entering your password you will be prompted with a success message.

Stop Local Server

Similar to start, execute the following command within terminal. $ sudo /usr/local/mysql/support-files/mysql.server stop

Restart Local Server

If you attempt to restart a server that isn’t running you may receive an error. “ERROR! MySQL server PID file could not be found!” This executed command first stops the MySQL server instance and then starts a new instance. Within terminal execute the following command. $ sudo /usr/local/mysql/support-files/mysql.server restart

Tagged with:
Web Development

Snoop Lion ‘Reincarnated’: Album Review

Snoop Lion ‘Reincarnated’: The Rebel Way

Snoop Dogg returns from adventure time in Jamaica with a new name reflecting that of a far more ambitious mammal, a debut reggae album, and a creative partnership with executive producers Diplo and Ariel Rechtshaid. Snoop Lion Reincarnated Album Cover All jokes aside, whatever Snoop was smoking certainly paid off on his twelfth studio album, Reincarnated.

Snoop Lion’s Reincarnated album is his most catchy and enjoyable record of the last decade. Looking past the Rastafarian patois and the occasional elementary rhymes it is clear that Snoop found his own inner positive vibes while recording Reincarnated. Snoop forges Reincarnated with surprising grace, melding his laid-back West Coast flow with electric Reggae energy. There’s a genuinely sincere tone and vibe to his sunny jams that embrace peace, love, and a shift toward a unified humanity.

Top Singles and Tracks

Reincarnated had a number of singles, proving Snoop to be more than a one hit Reggae wonder. A number of high profile featured artists helped create a number of great tracks.

Here Comes the King

Snoop’s first single, “Here Comes the King” curbs skeptics questioning the sincerity of Snoop Lion’s Reincarnated album along with any doubts that this is just another stint by the rapper turned reggae artist. Snoop Lion proves the king is here to stay.

Ashtrays and Heartbreaks

Album closer “Ashtrays and Heartbreaks” featuring Miley Cyrus exposes the hard reality we all face when losing loved ones. “Tomorrow when you wake up and realize the world ain’t fair.” A moving track that reminds us all that nothing is certain and even when its all planned right, it could very well go all wrong. Possibly my favorite track of the album.

No Guns Allowed

Featuring Drake and sampled from Beirut “Nantes” this beaming, chant for humanity proves Snoop Lion has matured past the rap game. “Money makes a man and that’s a crime,” Lion chants over a melodic bass. “If we all were rich, we’d spend more time on our daughters and sons.”

Snoop Lion’s Reincarnated proves that Snoop Lion is here to stay and is just as fierce within the Reggae genre as he is within the Hip Hop genre. It is clear that Snoop’s musical career can’t be contained within any genre and I hope to hear far more from a wiser, more mature Snoop Lion in the future. Reincarnated is Snoop Lions twelfth studio album released on April 23, 2013 under Berhane Sound System, Mad Decent, Vice Records and RCA Records.

Tagged with: , ,
MusicPosted in %s, Music Reviews

Git Basics: Getting Started With Version Control

Git Basics: Getting Started With Version Control

Git Basics is a four part series outlining the principles and basics of Git, including installing Git, Git repositories, Git workflows and Git commands needed to begin and collaborate with others on projects. This series isn’t intended to be an in-depth breakdown of Git, but rather a condensed series that helps you quickly understand the core principles and foundations of Git and its workflow. Hopefully this is the first step of many in further understanding Git and how you can integrate it into your workflow to create successful projects.

Version Control Introduction

Version control systems, or source code control as it is referred to sometimes, serves as a method for recording and managing changes to a file or collection of files over time. VCS’s provide significant value in their ability to recall specific versions of a file at any given time during the project in addition to efficiently organizing all these numerous versions of each file. Changes to files are tracked with unique ID’s that allow for users to easily revert files back to previous versions. This may be particularly useful in the event that your recent changes to a file cause issues, or in the invent you need to review the changes that were made from one version to the next, or in the worst case scenario where you need to completely recover files or entire projects.

Local Version Control Systems

Local version control is the most simplistic and often people’s version control method of choice for small projects. It is so simple in fact that you may be currently utilizing this method without even knowing. This method utilizes a project directory with multiple versions of the application files. Users checkout files from the applicable directories and save when finished.

Git Basics - Local Version Control System Diagram

Figure 1: Local Version Control System Diagram

Local VCS’s simplicity unfortunately also has quite a few drawbacks including its proneness for errors such as incorrectly placing files within the wrong version directory or accidentally writing to the wrong file or copying over existing files. In addition to errors, local version control severely limits the ability to collaborate with others on a project. This becomes increasingly problematic as the projects scope increases and additional developers are needed to complete a project in a timely fashion.

Centralized Version Control Systems

Local VCS’s inability to scale efficiently to accommodate multiple developers on a project led to the development of centralized version control systems. These systems have a single sever that holds all of the versioned files where users checkout files to a local machine in order to make changes.

This setup offers many advantages over the local VCS’s, including developer knowledge of how the project was evolving and the ability for project administrators to place specific controls over who can do what in relationship to the project.

Git Basics - Centralized Version Control System Diagram

Figure 2: Centralized Version Control System Diagram

Centralized VCS’s offered many advantages over its local counterpart, however it doesn’t come without some serious downsides as well, with the most obvious being a single point of failure. If that server goes down developers will be unable to make any changes to anything on the server. Even more disastrous is the event that data becomes corrupt or unrecoverable. If backups haven’t been kept, the project is a complete loss. It is also worth noting that local VCS’s share this same disadvantage. Whenever you have the entire project in a single location, you risk losing everything.

Distributed Version Control Systems

The solution for this single point of failure is where Distributed Version Control Systems really shine. Users don’t just check out files with a DVCS, they fully mirror the repository and checkout files from the mirrored repository. In the event that the central VCS server dies any one of the users repositories can be copied back up to the server to restore the project. Every user checking out the project is essentially creating a backup of all the data.

Git Basics - Distributed Version Control System Diagram

Figure 3: Distributed Version Control System Diagram

Git’s History: A New Hope

Git was created by Linus Torvalds, creator of the Linux operating system, with assistance from the Linux development community and was released in 2005. The creation of Git was prompted after the relationship between Linux’s development community and then DVCS, BitKeeper, went sour. Linus with the help of the Linux development community set out to create a new DVCS that embraced the ideals of open source and was able to manage both large and small project efficiently. The team built Git recalling the lessons they learned while using BitKeeper and shaped the product around the following goals.

  • Speed
  • Simple design
  • Strong support for non-linear development (branches)
  • Fully distributed
  • Ability to manage large projects efficiently

Benefits of Utilizing Git

Git is a distributed version control systems that has evolved and matured to be easy to use and continues to retain the goals stated above. Git is incredibly fast, exceeds expectations in efficiency handling large projects, and has an incredible branching system for flexible non-linear development. Git excels with its ability to have multiple remote repositories, allowing for developers to collaborate with different groups of people in different ways simultaneously within the same project. This flexibility allows for several types of workflows not possible in centralized systems. This flexibility allows for numerous variations of workflows to adapt to any group or individuals development needs.

The Complete Git Basics Series

  • Part 1: Git Basics: Getting Started with Version Control
  • Part 2: Git Basics: Installing Git
  • Part 3: Git Basics: Creating and Cloning Repositories
  • Part 4: Git Basics: Git Workflow and Git Commands

Additional, more in-depth, resources can be found by viewing the official Git documentation. References to the official Git documentation are made throughout the series for those interested in exploring ideas in more detail.

Tagged with: , , ,
Web DevelopmentPosted in %s, Web Development Process

2013 IA Summit: 3 Major TakeAways

Based on previous years reviews, this years 2013 IA Summit was another smashing success. Filled with UX thought leaders such as Dan Brown, Jared Spool, Dan Willis, and Kate Rutter, the IA Summit continues to be the premier user experience conference. This year the event was held in Baltimore Maryland, and marked my first year of attendance.

IA Summit exposed me to the science and art of user experience, and the numerous disciplines involved with creating successful experiences. Many of my workshops exposed the frustrations and UX professionals integrating with marketing and technology

2013 IA Summit Takeaways

My main takeaways from IA Summit:
  1. User Experience consists of numerous disciplines that each have very specialized requirements, however in the broad scope it can be summarized as:
    • Understanding the problem that needs to be addressed or communicated.
    • Engaging both people and process in order to facilitate a clear, effective solution.
    • The ability to communicate effectively to peers and stakeholders ideas and solutions to the problem at hand.
  2. The key to effective communication is the story you tell. If the story to be told isn’t good or compelling in the first place, it won’t matter how it is presented.
  3. Organizational and team cultures need outlets for communication in order to thrive and grow. Don’t ever expect the culture to grow and spread on its own merit. Tools and process need to be in place in order to open lines of communication and empower the culture.
Tagged with: ,
Work
Recent Projects
  • Grub.ly
    Explore and discover new foods!
    Comments

  • Grub.ly
    Explore and discover new foods!
    Comments

About Me Dal Price: SwissMisfit

I’m Dal, an enthusiast for all things technology, design, music, and food. This is a collection of inspirations, misfit thoughts, and random musings that may or may not be interesting to others.

Other Places to find me
  • RSS
    Feed updates from the blog

  • Twitter
    Bits of random 140 characters

  • Flickr
    So many pruty pictures!

  • XBox
    Pwning N00bs

  • Instagram
    Filters make my pictures better