Brightball Articles https://www.brightball.com/ The most recent articles from Brightball en-us en-us Story Points are Pointless, Measure Queues https://www.brightball.com/articles/story-points-are-pointless-measure-queues https://www.brightball.com/articles/story-points-are-pointless-measure-queues Their creator has disavowed them. People cannot agree on what a story point even represents. The measure is different for every team that uses it. They sow confusion, create conflict, unreliable timelines, are easily gamed, demotivate and degrade the performance of your team.For everyone involved, this is a waste of time. Let's deep dive into why Story Points are so broken and how to avoid dealing with them ever again. Business Agile estimation queues Barry 2024-07-15T10:05:55Z Mon, 15 Jul 24 10:05:55 Z Security Automation with Gitlab https://www.brightball.com/articles/security-automation-with-gitlab https://www.brightball.com/articles/security-automation-with-gitlab I recently had the opportunity to speak to DEF CON 864 about the multiple layers of security automation within Gitlab, the open source tools that drive them and how the findings are managed and resolved. Security DevOps gitlab Barry 2024-01-27T09:38:13Z Sat, 27 Jan 24 09:38:13 Z Rebooting the Carolina Code Conference https://www.brightball.com/articles/rebooting-the-carolina-code-conference https://www.brightball.com/articles/rebooting-the-carolina-code-conference The Carolina Code Conference is a welcoming and community-driven “polyglot” conference that’s set to take place in beautiful downtown Greenville, SC on Saturday August 19th, 2023 in the Greenville ONE building. This conference, which returns for the first time since 2019, invites coders of all experience levels to attend, plug into the development community, share their experiences and have a great time as well. Business events Barry 2023-05-21T00:00:00Z Sun, 21 May 23 00:00:00 Z How Microsoft Became Phishing's Biggest Enabler https://www.brightball.com/articles/how-microsoft-became-phishings-biggest-enabler https://www.brightball.com/articles/how-microsoft-became-phishings-biggest-enabler It might sound strange to hear that Microsoft, a company who goes to great lengths to protect computers and networks, is one of the biggest contributors to phishing and fraud on the planet. It's true unfortunately. They aren't actually committing the acts themselves of course, but they are enabling the problem by withdrawing support for standards designed to help stop it. Here's why this is such a big deal. UPDATE 4/12/2023: After years, Microsoft is finally fixing this by honoring p=reject. This is a huge improvement and deserves to be applauded. The work isn't done though. We need aggregate reports to avoid blind spots during our implementation. Offering the reports for enterprises is a great step though. Security Email DMARC Phishing microsoft Barry 2023-02-23T00:00:00Z Thu, 23 Feb 23 00:00:00 Z The Time I Accidentally Ended Up Combatting Fraud for a Year https://www.brightball.com/articles/the-time-i-accidentally-ended-up-combating-fraud-for-a-year https://www.brightball.com/articles/the-time-i-accidentally-ended-up-combating-fraud-for-a-year Lately, I’ve been spending a lot of time enjoying the Darknet Diaries podcast and it’s compelled me to finally share the entire story of the most intense year of my 20 year professional career. I was the sole developer hired by a company going through a circus-like ownership transition while criminals actively worked to defraud the 300,000 users of this 14 year old, high end marketplace. We experienced late nights, numerous technical challenges, worked with abuse response teams, learned a lot of lessons about phishing and fraud, high emotions, death threats and at least one person lost a business that depended on the site. Here’s the story from start to finish, including how to prevent many of these problems on your own site. Buckle up. Rails Security Email DMARC Fraud Phishing Barry 2023-02-10T20:36:00Z Fri, 10 Feb 23 20:36:00 Z Waste Spammers Time to Kill Their Return on Investment https://www.brightball.com/articles/waste-spammers-time-to-reduce-their-return-on-investment https://www.brightball.com/articles/waste-spammers-time-to-reduce-their-return-on-investment Continuing our series from 2012 where I accidentally ended up combating phishing and fraud for a year, we move onto the spam issue. Everything that happened that year was an exercise in triage. Problems were everywhere on the system and in the marketplace. The site I was working on was the leader in a niche space but it wasn't just the phish who tried to capitalize on the chaos, it was our competitors too. Spam takes a time investment and every time investment is a business decision. If you can't stop it completely, you can at least dramatically increase their costs...and have fun doing it. Business Security Phishing spam Barry 2022-07-30T00:00:00Z Sat, 30 Jul 22 00:00:00 Z Enterprise Challenges with DMARC Deployment https://www.brightball.com/articles/enterprise-challenges-with-dmarc-deployment https://www.brightball.com/articles/enterprise-challenges-with-dmarc-deployment DMARC deployment projects in larger organizations come with their own variety of challenges. A great many more people are involved, so there will be more communication, more approvals and more politics. Others will object on the basis of size. "Our company is simply too large!" some will say.In the final section of our DMARC guide, we will discuss these common concerns and how to address the challenges. If 74% of the US Federal goverment did this in about a year, you can too. Security Email DMARC dmarc-guide Barry 2022-07-25T00:00:00Z Mon, 25 Jul 22 00:00:00 Z Deploying DMARC Without Breaking Everything https://www.brightball.com/articles/deploying-dmarc-without-breaking-everything https://www.brightball.com/articles/deploying-dmarc-without-breaking-everything Too scary? Messing with the configuration on your domain email is scary, especially if you're already sending a lot of it. You have to worry that you're going to screw something up and break all of the email communications for the entire company. That's what I was worried when I first rolled this out and had no idea what I was doing. One of the reasons I'm such a big advocate for DMARC today is that it was painless, easy and involve no risk at all. Security Email DMARC Phishing dmarc-guide Barry 2022-07-23T00:00:00Z Sat, 23 Jul 22 00:00:00 Z Combating Phishing with DMARC https://www.brightball.com/articles/combatting-phishing-with-dmarc-a-complete-guide https://www.brightball.com/articles/combatting-phishing-with-dmarc-a-complete-guide Email shouldn't feel like a dark art, but to a lot of people it does. Everyone should have DMARC setup by this point, but they don't. Here's the first piece of a 3 part guide covering why it works and how to set it up.Since writing about how to reverse account takeovers last week I've decided to write a security series covering all the weird things I encountered back in 2012, when I accidentally ended up combating phishing and fraud for a year. In the last article, the first recommendation was to setup DMARC. So let's take a deeper look at why, how and what's involved in long term management once it's setup. Security Email DMARC Phishing dmarc-guide Barry 2022-07-18T00:00:00Z Mon, 18 Jul 22 00:00:00 Z Automatically Reversing Account Takeovers https://www.brightball.com/articles/automatically-reversing-account-takeovers https://www.brightball.com/articles/automatically-reversing-account-takeovers Today, Brian Krebs reported on account takeovers happening at Experian, one of the 3 major credit agencies. The first step after getting account access is to lock out the account owner, usually by swapping the email address. 10 years ago I dealt with this problem extensively, so I'd like to share how to solve it. Security Email DMARC Phishing Barry 2022-07-11T00:00:00Z Mon, 11 Jul 22 00:00:00 Z What to Expect When You're Emailing https://www.brightball.com/articles/what-to-expect-when-youre-emailing https://www.brightball.com/articles/what-to-expect-when-youre-emailing During Carolina Code Conf, I gave what is probably the most entertaining presentation ever given about email. We walk through how to protect, raise and nuture the domain for my pirate themed gym, Slimmer Ye Timbers. Email DMARC Pirate Barry 2021-11-01T16:37:21Z Mon, 01 Nov 21 16:37:21 Z Video: Developing a Layered Email Security Strategy Webinar https://www.brightball.com/articles/developing-a-layered-email-security-strategy-webinar https://www.brightball.com/articles/developing-a-layered-email-security-strategy-webinar In this joint webinar between dmarcian, GreatHorn and Inspired eLearning I had the opportunity to share an overview of SPF, DKIM and DMARC as part of a layered email security strategy. Security Email DMARC Barry 2021-11-01T16:21:27Z Mon, 01 Nov 21 16:21:27 Z I'm offering my first Scaled Agile Class https://www.brightball.com/articles/im-offering-my-first-scaled-agile-framework-safe-class https://www.brightball.com/articles/im-offering-my-first-scaled-agile-framework-safe-class After 20 years in software development, my frustations with watching organizations hurt themselves from bad practices finally boiled over in my article, Reality Driven Development. The response and discussion from Hacker News lead me into the work of Donald Reinertsen, who laid out the math that validated everything I was experiencing. Much of the Scaled Agile Framework is based on his work, which lead into my journey with SAFe 3 years ago. Join me on December 9th for my first class, Leading SAFe 5.1. Classes Agile SAFe Barry 2021-10-30T14:20:19Z Sat, 30 Oct 21 14:20:19 Z Ansible + Terraform, the PBJ of DevOps https://www.brightball.com/articles/ansible-and-terraform-the-pb-and-j-of-devops https://www.brightball.com/articles/ansible-and-terraform-the-pb-and-j-of-devops This week I had the opportunity to speak to Upstate Carolina Linux User Group (UCLUG) to share my thoughts on how well Ansible and Terraform compliment each other, as well as the many ways to share information between the tools to use them together. DevOps Terraform Ansible Barry 2021-10-15T14:42:03Z Fri, 15 Oct 21 14:42:03 Z Thank You TailwindCSS https://www.brightball.com/articles/thank-you-tailwindcss https://www.brightball.com/articles/thank-you-tailwindcss In the last 2-3 weeks, after seeing a lot of recommendations, I decided to read the Refactoring UI book and then dove into TailwindCSS. Design has always been a huge gap in my skillset. As frontend complexity increased over the last decade, it seemed less and less worth it to invest time to fill it. Then came TailwindCSS. Phoenix CSS Design TailwindCSS Barry 2020-08-17T11:50:18Z Mon, 17 Aug 20 11:50:18 Z Repeating History with Elixir...again https://www.brightball.com/articles/repeating-history-with-elixir-again https://www.brightball.com/articles/repeating-history-with-elixir-again Over the weekend I got the chance to speak at the inaugural Carolina Code Conf in Greenville, SC. It's the upstate polyglot conference where just about any relevant subject is welcome, so I submitted a talk on Elixir. I also gave a lightning talk on DMARC thanks to our wonderful sponsor, dmarcian. Elixir Phoenix Carolina Code Conf Barry 2018-07-31T00:00:00Z Tue, 31 Jul 18 00:00:00 Z Phishing Leaves a DMARC Trail https://www.brightball.com/articles/phishing-thats-gonna-leave-a-dmarc https://www.brightball.com/articles/phishing-thats-gonna-leave-a-dmarc In May I had the opportunity to present at the Anti-Phishing Working Group (APWG) Conference after spending some time cross referencing the APWG's eCrime Exchange data with dmarcian's historic DMARC reports to see if we could identify consistent patterns among known bad actors, as well as potentially identifying a wider scope to the attacks that any single entity could see. The results were interesting! Email DMARC Phishing apwg dmarcian Barry 2018-07-24T00:00:00Z Tue, 24 Jul 18 00:00:00 Z Reality Driven Development https://www.brightball.com/articles/reality-driven-development-fixing-project-management-in-software https://www.brightball.com/articles/reality-driven-development-fixing-project-management-in-software Not a lot of people know this about me, but I've almost exited programming at three different times in my career...because I wanted to get into project management at a high level. Ever since my first project management class in grad school, it just made sense to me...but after about 15 years in software it doesn't anymore. Let me explain how to fix it. Business Pairing Feature Agile Barry 2018-05-21T10:11:02Z Mon, 21 May 18 10:11:02 Z Comparing Elixir and Go https://www.brightball.com/articles/comparing-elixir-and-go https://www.brightball.com/articles/comparing-elixir-and-go Elixir and Go have both grown significantly in popularity over the past few years, and both are often reached for by developers looking for high concurrency solutions. The two languages follow many similar principles, but both have made some core tradeoffs that affect their potential use cases. Let’s compare the two by taking a look at their backgrounds, their programming styles, and how they deal with concurrency. Golang Elixir Barry 2017-02-07T09:52:51Z Tue, 07 Feb 17 09:52:51 Z Belated ElixirConf 2016 Recap https://www.brightball.com/articles/belated-elixirconf-2016-recap https://www.brightball.com/articles/belated-elixirconf-2016-recap This past September I took vacation time and paid out of pocket to drive to Orlando and attend ElixirConf with a few other programmers from Greenville who did the same thing. We weren't the only ones. Here is a belated recap from our combined notes and experiences. Erlang Elixir Phoenix Conference Nerves Barry 2016-11-30T00:00:00Z Wed, 30 Nov 16 00:00:00 Z Repeating History...on Purpose...with Elixir https://www.brightball.com/articles/repeating-history-on-purpose-with-elixir https://www.brightball.com/articles/repeating-history-on-purpose-with-elixir A dive into the highlights of Elixir that make it the ideal platform for the web...and how all these questions were answered figured out 30 years ago. Presented to Upstate Elixir in Greenville, SC on Nov 16. Erlang Elixir Phoenix Barry 2016-11-29T00:00:00Z Tue, 29 Nov 16 00:00:00 Z Elixir ETS + Mnesia vs Redis https://www.brightball.com/articles/elixir-ets-and-mnesia-vs-redis https://www.brightball.com/articles/elixir-ets-and-mnesia-vs-redis Learning Elixir has a way of challenging everything you know about programming. Redis is becoming an assumed part of many web stacks, in the same breath as your database. But with Elixir, do you need it? Do you even need a database? DevOps redis Elixir Performance Barry 2016-10-09T00:00:00Z Sun, 09 Oct 16 00:00:00 Z Email as a Microservice https://www.brightball.com/articles/email-as-a-microservice https://www.brightball.com/articles/email-as-a-microservice Email might be one of the most often overlooked pieces of any web application. Usually the biggest discussion around it in a project begins and ends with “and we’ll send them an email when this happens…”. A little thought and some minor adjustments can help us avoid some problems that will grow as your project does. Let’s talk about email as a microservice. Email DevOps Barry 2016-08-06T00:00:00Z Sat, 06 Aug 16 00:00:00 Z PostgreSQL functions with Elixir Ecto https://www.brightball.com/articles/postgresql-functions-with-elixir-ecto https://www.brightball.com/articles/postgresql-functions-with-elixir-ecto Functions within PostgreSQL can be setup to return rows and included in queries just like any other table. Continuing with our theme of trying to push Elixir and Phoenix a little on this site rebuild, we will move our site search inside of a database function and experiment with different ways to call it from Ecto. PostgreSQL Elixir Phoenix Ecto Barry 2016-07-27T00:00:00Z Wed, 27 Jul 16 00:00:00 Z Insanity with Elixir + Phoenix + PostgreSQL https://www.brightball.com/articles/insanity-with-elixir-phoenix-postgresql https://www.brightball.com/articles/insanity-with-elixir-phoenix-postgresql I'm at the borderline of obsessed with Elixir and Phoenix lately. I've avoided writing about it so far because it feels a bit too good to be true. In an effort to test my own enthusiam, I decided to rebuild this site with them in the most ridiculous way possible just to try to test some limits. Because I already have an unhealthy obsession with PostgreSQL, we're getting crazy with it too. DISCLAIMER: This is not a "how to build a blog" article. If you do what I'm about to do, people will look at you funny (and probably should). PostgreSQL Elixir Phoenix Barry 2016-07-06T00:00:00Z Wed, 06 Jul 16 00:00:00 Z Why Docker? https://www.brightball.com/articles/why-docker https://www.brightball.com/articles/why-docker Containers are not a new thing, but implementing them was always a little more complicated than it needed to be. Docker made great leaps in simplification of containers and set the world on fire from there. Let’s look at why. Docker DevOps Barry 2015-10-29T00:00:00Z Thu, 29 Oct 15 00:00:00 Z Monitoring with Bosun https://www.brightball.com/articles/monitoring-with-bosun https://www.brightball.com/articles/monitoring-with-bosun Bosun is a monitoring and alerting system developed by the good folks at Stack Exchange, then open sourced for the rest of us. It’s written in Go, meaning its monitoring agents can run anywhere that Go can drop a binary… which is just about everywhere. So what exactly does it do and how does it compare to the likes of New Relic, CloudWatch, Nagios, Splunk Cloud, Server Density, and other monitoring tools? Golang DevOps Bosun Barry 2015-10-15T00:00:00Z Thu, 15 Oct 15 00:00:00 Z Heroku Data Links with Postgres and Redis https://www.brightball.com/articles/heroku-data-links-with-postgres-and-redis https://www.brightball.com/articles/heroku-data-links-with-postgres-and-redis PostgreSQL has a great feature called Foreign Data Wrappers (FDW) that allows it to connect directly to outside systems. Although the setup can be a little complicated, once it’s available you can run queries with joins or subqueries against them, insert data, create views, etc. Heroku has dramatically simplified the process of using FDW with PostgreSQL and Redis thanks to Data Links. Let’s try it out. DevOps Heroku PostgreSQL redis Barry 2015-09-16T00:00:00Z Wed, 16 Sep 15 00:00:00 Z Zero Downtime Deployment with AWS ECS and ELB https://www.brightball.com/articles/zero-downtime-deployment-with-aws-ecs-and-elb https://www.brightball.com/articles/zero-downtime-deployment-with-aws-ecs-and-elb As development teams push farther toward continuous delivery, deploying updates to an application without disruption to users is constantly becoming a more sought-after practice. Amazon’s EC2 Container Service helps to make that easier than ever with tight Elastic Load Balancer integration. Docker DevOps AWS ECS ELB Barry 2015-08-25T00:00:00Z Tue, 25 Aug 15 00:00:00 Z How to Use Heroku PGBackups https://www.brightball.com/articles/how-to-use-heroku-pgbackups https://www.brightball.com/articles/how-to-use-heroku-pgbackups Backing up your data is one of the most critical activities for your application. Heroku PGBackups makes the entire experience pretty simple but comes with a lot of flexibility too, with a number of options for smooth restoration. DevOps Heroku PostgreSQL Barry 2015-08-11T00:00:00Z Tue, 11 Aug 15 00:00:00 Z No such thing as "real programming" https://www.brightball.com/articles/no-such-thing-as-real-programming https://www.brightball.com/articles/no-such-thing-as-real-programming I read an article earlier today called The self-hating Web Developer that I found on Hacker News and it bothered me. It resonated with me as something that I professionally internalized over my career but it bothered me because Joseph encountered personal financial difficulty for both himself and his family due to the struggle. For that reason (and insomnia), I feel compelled to write this as reference to refer to for anybody else who may be struggling with the same thing. PHP Life Business Barry 2015-07-20T01:34:00Z Mon, 20 Jul 15 01:34:00 Z Exploring Microservices Architecture on Heroku https://www.brightball.com/articles/exploring-microservices-architecture-on-heroku https://www.brightball.com/articles/exploring-microservices-architecture-on-heroku Building an application with a microservice architecture is an excellent long-term decision if you can afford the increase in upfront time investment to do it properly. Heroku provides a platform that most developers know for simple deployment, but it also dramatically simplifies microservices architecture.   DevOps Heroku Codeship Microservices Barry 2015-07-08T23:17:02Z Wed, 08 Jul 15 23:17:02 Z Heroku PostgreSQL vs Amazon RDS for PostgreSQL https://www.brightball.com/articles/heroku-postgresql-vs-amazon-rds-for-postgresql https://www.brightball.com/articles/heroku-postgresql-vs-amazon-rds-for-postgresql PostgreSQL is becoming the relational database of choice for web development for a whole host of good reasons. That means that development teams have to make a decision on whether to host their own or use a database as a service provider. The two biggest players in the world of PostgreSQL are Heroku PostgreSQL and Amazon RDS for PostgreSQL. Here's a detailed comparison. AWS Heroku PostgreSQL Barry 2015-07-03T11:04:23Z Fri, 03 Jul 15 11:04:23 Z Organizing Background Worker Queues https://www.brightball.com/articles/organizing-background-worker-queues https://www.brightball.com/articles/organizing-background-worker-queues At work earlier today I ran across an issue where one of our application queues got backed up and it got me to thinking about how queues are organized in general. The TLDR answer: use urgency and intensity.  DevOps scaling sidekiq queue redis resque Barry 2015-04-23T20:58:00Z Thu, 23 Apr 15 20:58:00 Z Go from a PHP Perspective https://www.brightball.com/articles/go-from-a-php-perspective https://www.brightball.com/articles/go-from-a-php-perspective Here are the slides from my recent presentation to UpstatePHP in Greenville, looking at Go (Golang) from a PHP Perspective. PHP Ruby Erlang Golang Barry 2015-04-16T21:06:59Z Thu, 16 Apr 15 21:06:59 Z Ruby on Rails and PostgreSQL Class Slides https://www.brightball.com/articles/ruby-on-rails-and-postgresql-class-slides https://www.brightball.com/articles/ruby-on-rails-and-postgresql-class-slides In August I taught a course titled Ruby on Rails and PostgreSQL - Intro to Advanced in Greenville over the span of 3 weeks. Here is the compilation of slides from the class. Ruby Rails PostgreSQL jRuby PostGIS Barry 2015-04-06T16:03:00Z Mon, 06 Apr 15 16:03:00 Z Protecting Users from Phishing and Fraud https://www.brightball.com/articles/protecting-users-from-phishing-and-fraud https://www.brightball.com/articles/protecting-users-from-phishing-and-fraud This presentation covers my experiences combatting phishing and fraud using DMARC and assorted other techniques in a large eBay-like platform for a niche market...when the site previously did everything over direct user email...for over a decade. Good times. Security Email DMARC DKIM DNS Fraud SPF Phishing Barry 2015-04-01T22:47:23Z Wed, 01 Apr 15 22:47:23 Z Code is the Cure for Developaralysis https://www.brightball.com/articles/code-is-the-cure-for-developaralysis https://www.brightball.com/articles/code-is-the-cure-for-developaralysis A couple of days ago, TechCrunch ran a column about Developaralysis that hit a little close to home. Developaralysis is defined as "the crippling sense that the software industry is evolving so fast that no one person can possibly keep up." This results in otherwise accomplished developers freezing up when trying to make decisions about the best language / framework / cloud platform to use for their project. There is a cure and it involves code. A code specifically. PHP Ruby Overthink Barry 2014-10-22T01:06:00Z Wed, 22 Oct 14 01:06:00 Z SSH::Batch - Simple remote shell commands https://www.brightball.com/articles/sshbatch-simple-remote-shell-commands https://www.brightball.com/articles/sshbatch-simple-remote-shell-commands SSH::Batch is a simple command line tool, written in Perl, that allows you to run shell commands over SSH across multiple servers. These days it seems most people turn to Puppet / Chef / Ansible for that type of thing, but sometimes your needs aren't that complicated. For that, SSH::Batch fills the gap nicely and it's really simple to get started. DevOps Perl SSH Barry 2014-09-16T01:10:00Z Tue, 16 Sep 14 01:10:00 Z Video: SQL vs NoSQL Discussion at UpstatePHP https://www.brightball.com/articles/video-sql-vs-nosql-discussion-at-upstatephp https://www.brightball.com/articles/video-sql-vs-nosql-discussion-at-upstatephp Here's the video from the August UpstatePHP meeting in Greenville discussing SQL vs NoSQL and where they are useful for your development process. I represented SQL solutions (*cough* PostgreSQL *cough*) while Benjamin Young represented NoSQL. Ben has actively contributed to CouchDB, worked for Cloudant, Couchbase, organizes the REST Fest Unconference (happening again September 25-27th) and is the owner of Big Blue Hat. I am a gainfully employed programmer...so...there's that. PostgreSQL MongoDB CouchDB MySQL NoSQL Barry 2014-09-14T00:12:15Z Sun, 14 Sep 14 00:12:15 Z Rails Gems to Unlock Advanced PostgreSQL Features https://www.brightball.com/articles/rails-gems-to-unlock-advanced-postgresql-features https://www.brightball.com/articles/rails-gems-to-unlock-advanced-postgresql-features If you've spent any amount of time on this site you may have noticed that I'm fond of PostgreSQL...and Ruby on Rails...and that I dislike the general trend among Rails developers to ignore all of the amazing features in PostgreSQL that make your application better in favor of risking data integrity just so that all logic can remain in Rails. So here's my top collection of Rails gems to get at all that untapped power in PostgreSQL that you didn't know you had. Ruby Rails PostgreSQL PostGIS Barry 2014-09-10T01:47:00Z Wed, 10 Sep 14 01:47:00 Z What exactly happened to Brightball for hire? https://www.brightball.com/articles/what-exactly-happened-to-brightball-for-hire https://www.brightball.com/articles/what-exactly-happened-to-brightball-for-hire It's been about four years since we last took on a new project as a company. Work continued for existing clients for a long time after that, but the company itself was basically dead from that point. I was on vacation with my family last week and somewhat reflecting on exactly how I got there after ending up in a hospital bed in the middle of the night four years ago trying to keep it going. Here's how it happened. NOTE: I still personally consult through Brightball. Life Business Barry 2014-08-11T01:24:00Z Mon, 11 Aug 14 01:24:00 Z Screenhero - This is your Business Plan https://www.brightball.com/articles/screenhero-this-is-your-business-plan https://www.brightball.com/articles/screenhero-this-is-your-business-plan I got a newsletter last night from Screenhero announcing version 1.0. The problem is that in the announcement, they also announced a change in pricing that will probably kill a lot of what they have going for them. And I hate that. I REALLY hate that. I've worked for companies where we had to invest a lot of time cleaning up bad decisions, so maybe it bothers me a little more. I really like Screenhero though, so I'm going to try to help. I wasn't doing a good job of explaining myself to them via Twitter, so this should hopefully be a better explanation of what I was trying to communicate. Business Pairing Barry 2014-07-31T12:05:00Z Thu, 31 Jul 14 12:05:00 Z Why should you learn PostgreSQL? https://www.brightball.com/articles/why-should-you-learn-postgresql https://www.brightball.com/articles/why-should-you-learn-postgresql Nearly a year ago I put together an hour long presentation on PostgreSQL to provide an overview of all of the benefits it provides you over other options in the database space. In hindsight, that wasn't nearly enough time because it has the capability to replace almost your entire application stack outside of the web server. In any case, here is an attempt to summarize all of the amazing functionality that you're cheating yourself out of by not choosing PostgreSQL. PostgreSQL PostGIS Barry 2014-07-21T20:00:00Z Mon, 21 Jul 14 20:00:00 Z Ruby on Rails and PostgreSQL - Intro to Advanced https://www.brightball.com/articles/ruby-on-rails-and-postgresql-intro-to-advanced https://www.brightball.com/articles/ruby-on-rails-and-postgresql-intro-to-advanced Beginning August 18th I will be offering a three week evening class aimed at professional programmers who want to learn Ruby on Rails and PostgreSQL, with the goal of becoming proficient with both in a very short time. Ruby Rails PostgreSQL PostGIS Classes Barry 2014-07-15T21:55:00Z Tue, 15 Jul 14 21:55:00 Z Pair Programming - The Lightning Talk Version https://www.brightball.com/articles/pair-programming-the-lightning-talk-version https://www.brightball.com/articles/pair-programming-the-lightning-talk-version Lightning talk introduce pair programming based on information gleaned from RailsConf 2014. Bulk of the credit for this presentation goes to Chuck Lauer Vose of New Relic and Joe Moore of Pivotal Labs. DevOps Pairing Barry 2014-07-04T15:49:00Z Fri, 04 Jul 14 15:49:00 Z Exploring Ruby on Rails and PostgreSQL https://www.brightball.com/articles/exploring-ruby-on-rails-and-postgresql https://www.brightball.com/articles/exploring-ruby-on-rails-and-postgresql An overview of Ruby, jRuby, Rails, Torquebox, and PostgreSQL that was presented as a 3 hour class to other programmers at The Ironyard in Greenville, SC in July of 2013. The Rails specific sections are mostly code samples that were explained during the session so the real focus of the slides is Ruby, "the rails way" / workflow / differentiators and PostgreSQL. Ruby Rails PostgreSQL jRuby Barry 2014-07-04T15:39:00Z Fri, 04 Jul 14 15:39:00 Z What's the "right" PHP Framework? https://www.brightball.com/articles/whats-the-right-php-framework https://www.brightball.com/articles/whats-the-right-php-framework This is a presentation that I recently gave at UpstatePHP in Greenville evaluating the framework landscape in PHP. We discussed why there are so many, history, goals, benefits, concerns and ultimately a recommendation. PHP CakePHP Ruby Rails Laravel codeigniter Barry 2014-06-22T00:00:00Z Sun, 22 Jun 14 00:00:00 Z Tempering My Docker Enthusiasm (retracted) https://www.brightball.com/articles/tempering-my-docker-enthusiasm-retracted https://www.brightball.com/articles/tempering-my-docker-enthusiasm-retracted In a recent post I provided my initial impressions of Docker, which were glowing to put it mildly. After spending more time working with it, I've found that it does still have some additional drawbacks in certain situations just about every situation covered thanks to Vagrant. Vagrant Docker DevOps Barry 2014-06-04T09:26:00Z Wed, 04 Jun 14 09:26:00 Z Docker is the Heroku Killer https://www.brightball.com/articles/docker-is-the-heroku-killer https://www.brightball.com/articles/docker-is-the-heroku-killer After getting an intense look at Docker last night, I firmly believe that it is going to be the most disruptive server technology that we've seen in the last few years. It fills a much needed hole that's currently managed by very expensive solutions and it's being actively funded by some of the biggest players in the market. Docker Heroku Barry 2014-05-14T11:02:00Z Wed, 14 May 14 11:02:00 Z PostgreSQL - It's kind've a nifty database https://www.brightball.com/articles/postgresql-its-kindve-a-nifty-database https://www.brightball.com/articles/postgresql-its-kindve-a-nifty-database This is a presentation I recently gave to provide an overview of PostgreSQL and some of it's excellent features, including full-text search, multiple built in datatypes, data compression and extensions.  Also, Morgan Freeman is narrating. You're welcome. PostgreSQL Barry 2013-11-27T09:42:00Z Wed, 27 Nov 13 09:42:00 Z Learning Ruby on Rails: Why? How? Pitfalls? https://www.brightball.com/articles/learning-ruby-on-rails-why-how-pitfalls https://www.brightball.com/articles/learning-ruby-on-rails-why-how-pitfalls I've always been a proponent of the "right tool for the job" approach to programming. Different languages are well suited for different situations. Over the past 2 years I've spent a great deal of time with Ruby on Rails after coming from a background of PHP, Java and Perl. Here's how I got started and some of the lessons I learned along the way. Ruby Rails jRuby Barry 2013-05-09T16:00:00Z Thu, 09 May 13 16:00:00 Z The Drawback to Web Frameworks https://www.brightball.com/articles/the-drawback-to-web-frameworks https://www.brightball.com/articles/the-drawback-to-web-frameworks Web frameworks are great, don't get me wrong here. They provide a structure and consistency across projects that will transcend developers over the life of a system while dramatically simplifying the code base amongst other wonderful side effects. But what's the downside? CakePHP Ruby Rails Barry 2013-04-29T17:37:00Z Mon, 29 Apr 13 17:37:00 Z "Make it faster." https://www.brightball.com/articles/make-it-faster https://www.brightball.com/articles/make-it-faster  I'm obsessed with performance tuning.  It's an itch that can never fully be scratched.  A sickness that can never be cured.  Here's the story of how I caught the bug. Life Optimize C++ Barry 2013-04-28T02:22:00Z Sun, 28 Apr 13 02:22:00 Z The Impossible Assignment https://www.brightball.com/articles/the-impossible-assignment https://www.brightball.com/articles/the-impossible-assignment I had the opportunity to visit the class of one of my legendary former professors yesterday and got to share a classic story about him...the time he gave us an impossible assignment. Life Binary Clemson Barry 2013-04-25T17:12:00Z Thu, 25 Apr 13 17:12:00 Z A Study of Pricing and Billing Models for the Web https://www.brightball.com/articles/a-study-of-pricing-and-billing-models-for-the-web https://www.brightball.com/articles/a-study-of-pricing-and-billing-models-for-the-web Asking people for payment for work is a touchy subject for everyone involved.  We've had the luxury of experimenting a little bit over our first couple of years, and here's what we learned. Business Barry 2010-09-13T17:00:00Z Mon, 13 Sep 10 17:00:00 Z The difference that expert Quality Assurance makes https://www.brightball.com/articles/the-difference-that-expert-quality-assurance-makes https://www.brightball.com/articles/the-difference-that-expert-quality-assurance-makes When we first started out, we listed the thorough quality assurance review as an optional piece of our estimates.  We had this incredibly naive idea that if we gave people the option to save a little money up front that they'd fully understand if there was anything that needed to be tuned up, post-launch.  We learned our lesson...hard. Business QA Barry 2010-07-06T15:33:00Z Tue, 06 Jul 10 15:33:00 Z The Wonders of SSH Tunneling https://www.brightball.com/articles/the-wonders-of-ssh-tunneling https://www.brightball.com/articles/the-wonders-of-ssh-tunneling Have you ever been working on a website and needed direct access to the database, but couldn't get access without using something like phpMyAdmin?  SSH tunneling can solve this common problem and a whole lot more. DevOps SSH database Barry 2010-05-11T08:37:00Z Tue, 11 May 10 08:37:00 Z Should my domain name include a "www"? https://www.brightball.com/articles/should-my-domain-name-include-a-www https://www.brightball.com/articles/should-my-domain-name-include-a-www In the age of Twitter and Web 2.0, we've started to see a lot of websites drop the standard www from their domain names.  This could simply be a product of people following trends or just trying to be a little different, but the real question is "What are the drawbacks?" DNS DevOps Barry 2010-05-06T18:27:00Z Thu, 06 May 10 18:27:00 Z WYSIWYGPro Helper and tutorial for CakePHP https://www.brightball.com/articles/wysiwygpro-helper-and-tutorial-for-cakephp https://www.brightball.com/articles/wysiwygpro-helper-and-tutorial-for-cakephp I couldn't find any resources on setting up WYSIWYGPro with Cake so I developed this helper along with instructions for total integration with your system. If you've never used WYSIWYGPro, you should check out the demos. I've tried every WYSIWYG editor out there and none of the other ones even come close as far as I'm concerned. PHP CakePHP wysiwygpro Barry 2009-09-09T02:41:00Z Wed, 09 Sep 09 02:41:00 Z Smoother CakePHP date/time fields with jQuery https://www.brightball.com/articles/smoother-cakephp-datetime-fields-with-jquery https://www.brightball.com/articles/smoother-cakephp-datetime-fields-with-jquery While working with the date/time input fields in Cake I got tired of having to select 3/6 drop down boxes to choose all of the date/time information and specifically of having to select 3/6 drop down boxes if I decided to clear the date. A little bit of jQuery will clear this right up though. PHP CakePHP jQuery Barry 2009-09-09T01:50:00Z Wed, 09 Sep 09 01:50:00 Z Automatically loading your ACL tables https://www.brightball.com/articles/automatically-loading-your-acl-tables https://www.brightball.com/articles/automatically-loading-your-acl-tables If you've spent anytime wanting to use ACL on your applications, you know how tedious it can be to manually enter your entire controller and action structure. This Task will handle finding and loading or updating all of those for you whenever you run it from the command line. PHP CakePHP Barry 2009-09-09T01:02:00Z Wed, 09 Sep 09 01:02:00 Z String localization with dynamic content in CakePHP https://www.brightball.com/articles/string-localization-with-dynamic-content-in-cakephp https://www.brightball.com/articles/string-localization-with-dynamic-content-in-cakephp Cake has a wonderful shell script function built into it called extract that will run through your code and create a .po file full of all of the text contained within your __('My text here') calls. You can then pass these files onto to translators to modify them for your languages. When you want to add variables though, you have to break it up into pieces which may change the context of the phrase. Here's a way around that. PHP CakePHP localization Internationalization i18n Barry 2009-09-09T00:00:00Z Wed, 09 Sep 09 00:00:00 Z PublishableBehavior for CakePHP https://www.brightball.com/articles/publishablebehavior-for-cakephp https://www.brightball.com/articles/publishablebehavior-for-cakephp PublishableBehavior allows the use of datetime fields for start and end ranges on content. Included functionality allows for checking published status, toggling to published / unpublished status, and adding conditions to a find to properly filter those results. PHP CakePHP Barry 2009-09-09T00:00:00Z Wed, 09 Sep 09 00:00:00 Z