disclosure


Google Voice Vulnerability

I’m the type of person that likes to figure out how stuff is architected and built. Whether it’s a building or software, it doesn’t matter.

One day, I was interested to find out how the process of adding a forwarding number works and if it might be possible to mess with it. Luckily for me, I did find such a way.

Google Voice


Google Voice Vulnerability

I’m the type of person that likes to figure out how stuff is architected and built. Whether it’s a building or software, it doesn’t matter.

One day, I was interested to find out how the process of adding a forwarding number works and if it might be possible to mess with it. Luckily for me, I did find such a way.

security


Google Voice Vulnerability

I’m the type of person that likes to figure out how stuff is architected and built. Whether it’s a building or software, it doesn’t matter.

One day, I was interested to find out how the process of adding a forwarding number works and if it might be possible to mess with it. Luckily for me, I did find such a way.

alarm-manager


android


wakelock


continuous integration


integration


jenkins


Pushing to ECR Using Jenkins Pipeline Plugin

I’ve been recently spending quite a bit of time in the DevOps space and working to build out better CI/CD pipelines, mostly utilizing Docker. In this post, I demonstrate building out a pipeline that will create a simple Docker image and push it to Amazon’s EC2 Container Registry.

stash


java


Marshalling Interfaces in JAX-RS

In Java, interfaces are used all over the place. Occasionally, these will need to be marshalled into XML/JSON. However, JAX-RS creates its own JAXBContext on its own. So, you may see exceptions like this…

Foo is an interface, and JAXB can't handle interfaces.
    this problem is related to the following location:
        at Foo
        at public Foo[] Response.getFoo()
        at Response
 
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.getMarshaller(AbstractJAXBProvider.java:160) [resteasy-jaxb-provider-3.0.6.Final.jar:]
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.writeTo(AbstractJAXBProvider.java:122) [resteasy-jaxb-provider-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:129) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:62) [resteasy-jaxrs-3.0.6.Final.jar:]
        ...

Ugly, huh? Here’s how to fix it…

maven


servlet 3.0


web resources


github


Adding Images to GitHub Wiki Repo

[Update on April 9, 2014] – updated URL patterns to reflect change in raw GitHub domain names

Adding images to GitHub is pretty straight forward if you can host the images somewhere or if you can put them into your main repository. But, what if you want them ONLY in the wiki? Here’s how to do it!

images


Adding Images to GitHub Wiki Repo

[Update on April 9, 2014] – updated URL patterns to reflect change in raw GitHub domain names

Adding images to GitHub is pretty straight forward if you can host the images somewhere or if you can put them into your main repository. But, what if you want them ONLY in the wiki? Here’s how to do it!

wiki


Adding Images to GitHub Wiki Repo

[Update on April 9, 2014] – updated URL patterns to reflect change in raw GitHub domain names

Adding images to GitHub is pretty straight forward if you can host the images somewhere or if you can put them into your main repository. But, what if you want them ONLY in the wiki? Here’s how to do it!

dns


dreamhost


cdi


Using Weld (CDI), JSF, and JAX-RS in Tomcat

We’ve recently been in the transition from using Spring in a Tomcat environment to Java EE7 in Wildfly? (still finalizing the container of choice).

Since we’re in transition, we’d like to run the application in both Tomcat and Wildfly, without having to make changes to the bundled application. It should just work on deploy. Here’s how to do it…

ee7


Using Weld (CDI), JSF, and JAX-RS in Tomcat

We’ve recently been in the transition from using Spring in a Tomcat environment to Java EE7 in Wildfly? (still finalizing the container of choice).

Since we’re in transition, we’d like to run the application in both Tomcat and Wildfly, without having to make changes to the bundled application. It should just work on deploy. Here’s how to do it…

javaee


Marshalling Interfaces in JAX-RS

In Java, interfaces are used all over the place. Occasionally, these will need to be marshalled into XML/JSON. However, JAX-RS creates its own JAXBContext on its own. So, you may see exceptions like this…

Foo is an interface, and JAXB can't handle interfaces.
    this problem is related to the following location:
        at Foo
        at public Foo[] Response.getFoo()
        at Response
 
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.getMarshaller(AbstractJAXBProvider.java:160) [resteasy-jaxb-provider-3.0.6.Final.jar:]
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.writeTo(AbstractJAXBProvider.java:122) [resteasy-jaxb-provider-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:129) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:62) [resteasy-jaxrs-3.0.6.Final.jar:]
        ...

Ugly, huh? Here’s how to fix it…

Using Weld (CDI), JSF, and JAX-RS in Tomcat

We’ve recently been in the transition from using Spring in a Tomcat environment to Java EE7 in Wildfly? (still finalizing the container of choice).

Since we’re in transition, we’d like to run the application in both Tomcat and Wildfly, without having to make changes to the bundled application. It should just work on deploy. Here’s how to do it…

jax-rs


Marshalling Interfaces in JAX-RS

In Java, interfaces are used all over the place. Occasionally, these will need to be marshalled into XML/JSON. However, JAX-RS creates its own JAXBContext on its own. So, you may see exceptions like this…

Foo is an interface, and JAXB can't handle interfaces.
    this problem is related to the following location:
        at Foo
        at public Foo[] Response.getFoo()
        at Response
 
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.getMarshaller(AbstractJAXBProvider.java:160) [resteasy-jaxb-provider-3.0.6.Final.jar:]
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.writeTo(AbstractJAXBProvider.java:122) [resteasy-jaxb-provider-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:129) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:62) [resteasy-jaxrs-3.0.6.Final.jar:]
        ...

Ugly, huh? Here’s how to fix it…

Using Weld (CDI), JSF, and JAX-RS in Tomcat

We’ve recently been in the transition from using Spring in a Tomcat environment to Java EE7 in Wildfly? (still finalizing the container of choice).

Since we’re in transition, we’d like to run the application in both Tomcat and Wildfly, without having to make changes to the bundled application. It should just work on deploy. Here’s how to do it…

jsf


Using Weld (CDI), JSF, and JAX-RS in Tomcat

We’ve recently been in the transition from using Spring in a Tomcat environment to Java EE7 in Wildfly? (still finalizing the container of choice).

Since we’re in transition, we’d like to run the application in both Tomcat and Wildfly, without having to make changes to the bundled application. It should just work on deploy. Here’s how to do it…

tomcat


Using Weld (CDI), JSF, and JAX-RS in Tomcat

We’ve recently been in the transition from using Spring in a Tomcat environment to Java EE7 in Wildfly? (still finalizing the container of choice).

Since we’re in transition, we’d like to run the application in both Tomcat and Wildfly, without having to make changes to the bundled application. It should just work on deploy. Here’s how to do it…

weld


Using Weld (CDI), JSF, and JAX-RS in Tomcat

We’ve recently been in the transition from using Spring in a Tomcat environment to Java EE7 in Wildfly? (still finalizing the container of choice).

Since we’re in transition, we’d like to run the application in both Tomcat and Wildfly, without having to make changes to the bundled application. It should just work on deploy. Here’s how to do it…

configuration


Using JDBC Security Domain in Wildfly

As I was going through this task, I ran into the whole “there’s so much documentation, but none of it is working or makes sense” problem that’s so common with the JBoss Application Server. So, this post is designed to help out!

jdbc


Using JDBC Security Domain in Wildfly

As I was going through this task, I ran into the whole “there’s so much documentation, but none of it is working or makes sense” problem that’s so common with the JBoss Application Server. So, this post is designed to help out!

security-domain


Using JDBC Security Domain in Wildfly

As I was going through this task, I ran into the whole “there’s so much documentation, but none of it is working or makes sense” problem that’s so common with the JBoss Application Server. So, this post is designed to help out!

wildfly


Using JDBC Security Domain in Wildfly

As I was going through this task, I ran into the whole “there’s so much documentation, but none of it is working or makes sense” problem that’s so common with the JBoss Application Server. So, this post is designed to help out!

jaxb


Marshalling Interfaces in JAX-RS

In Java, interfaces are used all over the place. Occasionally, these will need to be marshalled into XML/JSON. However, JAX-RS creates its own JAXBContext on its own. So, you may see exceptions like this…

Foo is an interface, and JAXB can't handle interfaces.
    this problem is related to the following location:
        at Foo
        at public Foo[] Response.getFoo()
        at Response
 
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.getMarshaller(AbstractJAXBProvider.java:160) [resteasy-jaxb-provider-3.0.6.Final.jar:]
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.writeTo(AbstractJAXBProvider.java:122) [resteasy-jaxb-provider-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:129) [resteasy-jaxrs-3.0.6.Final.jar:]
    at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:62) [resteasy-jaxrs-3.0.6.Final.jar:]
        ...

Ugly, huh? Here’s how to fix it…

agile


How we do QA Testing in Agile

There are many different ideas and approaches for doing QA testing, many of which depend on what project management style you’re using, the developers on the team, and if you have a QA/functional testing team. However, this is how I’ve found it to be successful, based on my observations working on the CREST team at Virginia Tech.

bacabs


How we do QA Testing in Agile

There are many different ideas and approaches for doing QA testing, many of which depend on what project management style you’re using, the developers on the team, and if you have a QA/functional testing team. However, this is how I’ve found it to be successful, based on my observations working on the CREST team at Virginia Tech.

scrum


How we do QA Testing in Agile

There are many different ideas and approaches for doing QA testing, many of which depend on what project management style you’re using, the developers on the team, and if you have a QA/functional testing team. However, this is how I’ve found it to be successful, based on my observations working on the CREST team at Virginia Tech.

docker


Managing Secrets in Docker Swarm

Docker 1.13 was released just a few days ago (blog post here). With it came several improvements to Docker Swarm. One highly anticipated improvement (at least by me anyways) is secrets management. In this post, we’ll see how to add secrets to a swarm and how to make them available to running services.

Using Docker to Proxy WebSockets on AWS ELBs

At the time of this blog post, AWS ELBs don’t support WebSocket proxying when using the HTTP(s) protocol listeners. There are a few blog posts on how to work around it, but it takes some work and configuration. Using Docker, these complexities can be minimized.

In this post, we’ll start at the very beginning. We’ll spin up an ELB, configure its listeners, and then deploy an application to an EC2 instance.

Create a Docker 1.12+ Swarm using docker-machine

DockerCon 2016

In case you missed it, DockerCon 2016 was amazing! There were several great features announced, with most of it stemming from orchestration is now built-in. You get automatic load balancing (the routing mesh is crazy cool!), easy roll-outs (with healthcheck support), and government-level security by default (which is crazy hard to do by yourself).

In case you’re a little confused on how to spin up a mini-cluster, this post will show you how. It’s pretty easy to do!

Pushing to ECR Using Jenkins Pipeline Plugin

I’ve been recently spending quite a bit of time in the DevOps space and working to build out better CI/CD pipelines, mostly utilizing Docker. In this post, I demonstrate building out a pipeline that will create a simple Docker image and push it to Amazon’s EC2 Container Registry.

jekyll


ecr


Pushing to ECR Using Jenkins Pipeline Plugin

I’ve been recently spending quite a bit of time in the DevOps space and working to build out better CI/CD pipelines, mostly utilizing Docker. In this post, I demonstrate building out a pipeline that will create a simple Docker image and push it to Amazon’s EC2 Container Registry.

aws


Using Docker to Proxy WebSockets on AWS ELBs

At the time of this blog post, AWS ELBs don’t support WebSocket proxying when using the HTTP(s) protocol listeners. There are a few blog posts on how to work around it, but it takes some work and configuration. Using Docker, these complexities can be minimized.

In this post, we’ll start at the very beginning. We’ll spin up an ELB, configure its listeners, and then deploy an application to an EC2 instance.

Pushing to ECR Using Jenkins Pipeline Plugin

I’ve been recently spending quite a bit of time in the DevOps space and working to build out better CI/CD pipelines, mostly utilizing Docker. In this post, I demonstrate building out a pipeline that will create a simple Docker image and push it to Amazon’s EC2 Container Registry.

arquillian


Using Arquillian Drone and Graphene in Standalone Mode

I’ve been using Arquillian and its testing framework for a few years now and absolutely love it! It’s super easy to manage a server’s lifecycle, deploy applications, and then test them. Drone and Graphene’s extensions also make it incredibly easy to write browser-based tests without getting too down and dirty with the Selenium WebDriver API (which is a little messy).

Since I love Drone and Graphene, it would be nice to use the page abstractions/fragments on non-Java apps (sure, you can use Arquillian Cube too… but that’s another post). This post will go over what’s needed to run Drone and Graphene in standalone mode.

drone


Using Arquillian Drone and Graphene in Standalone Mode

I’ve been using Arquillian and its testing framework for a few years now and absolutely love it! It’s super easy to manage a server’s lifecycle, deploy applications, and then test them. Drone and Graphene’s extensions also make it incredibly easy to write browser-based tests without getting too down and dirty with the Selenium WebDriver API (which is a little messy).

Since I love Drone and Graphene, it would be nice to use the page abstractions/fragments on non-Java apps (sure, you can use Arquillian Cube too… but that’s another post). This post will go over what’s needed to run Drone and Graphene in standalone mode.

graphene


Using Arquillian Drone and Graphene in Standalone Mode

I’ve been using Arquillian and its testing framework for a few years now and absolutely love it! It’s super easy to manage a server’s lifecycle, deploy applications, and then test them. Drone and Graphene’s extensions also make it incredibly easy to write browser-based tests without getting too down and dirty with the Selenium WebDriver API (which is a little messy).

Since I love Drone and Graphene, it would be nice to use the page abstractions/fragments on non-Java apps (sure, you can use Arquillian Cube too… but that’s another post). This post will go over what’s needed to run Drone and Graphene in standalone mode.

swarm


Managing Secrets in Docker Swarm

Docker 1.13 was released just a few days ago (blog post here). With it came several improvements to Docker Swarm. One highly anticipated improvement (at least by me anyways) is secrets management. In this post, we’ll see how to add secrets to a swarm and how to make them available to running services.

Create a Docker 1.12+ Swarm using docker-machine

DockerCon 2016

In case you missed it, DockerCon 2016 was amazing! There were several great features announced, with most of it stemming from orchestration is now built-in. You get automatic load balancing (the routing mesh is crazy cool!), easy roll-outs (with healthcheck support), and government-level security by default (which is crazy hard to do by yourself).

In case you’re a little confused on how to spin up a mini-cluster, this post will show you how. It’s pretty easy to do!

docker-machine


Create a Docker 1.12+ Swarm using docker-machine

DockerCon 2016

In case you missed it, DockerCon 2016 was amazing! There were several great features announced, with most of it stemming from orchestration is now built-in. You get automatic load balancing (the routing mesh is crazy cool!), easy roll-outs (with healthcheck support), and government-level security by default (which is crazy hard to do by yourself).

In case you’re a little confused on how to spin up a mini-cluster, this post will show you how. It’s pretty easy to do!

elb


Using Docker to Proxy WebSockets on AWS ELBs

At the time of this blog post, AWS ELBs don’t support WebSocket proxying when using the HTTP(s) protocol listeners. There are a few blog posts on how to work around it, but it takes some work and configuration. Using Docker, these complexities can be minimized.

In this post, we’ll start at the very beginning. We’ll spin up an ELB, configure its listeners, and then deploy an application to an EC2 instance.

websocket


Using Docker to Proxy WebSockets on AWS ELBs

At the time of this blog post, AWS ELBs don’t support WebSocket proxying when using the HTTP(s) protocol listeners. There are a few blog posts on how to work around it, but it takes some work and configuration. Using Docker, these complexities can be minimized.

In this post, we’ll start at the very beginning. We’ll spin up an ELB, configure its listeners, and then deploy an application to an EC2 instance.

secrets


Managing Secrets in Docker Swarm

Docker 1.13 was released just a few days ago (blog post here). With it came several improvements to Docker Swarm. One highly anticipated improvement (at least by me anyways) is secrets management. In this post, we’ll see how to add secrets to a swarm and how to make them available to running services.

meetup


ci/cd


talk