Working From Home – A One Year Retrospective

March of 2020 presented the opportunity to beta test working from home for about 5 weeks, while the company I worked for tried to figure out how it was going to respond to COVID. I had wanted to work from home for a long time, but this experience helped to see that it would be possible. Maybe you the reader know me, and are curious to know how a real-life transition to remote work has worked out.

Studying an Old E-Reader : Compressing a Dictionary with Huffman Codes

This is the third post in a series. Part 1: Studying an Old E-Reader for Fun Part 2: Studying an Old E-Reader for Fun : Text Compression 1 Part 3: Studying an Old E-Reader : Compressing a Dictionary with Huffman Codes Part 4: Studying an Old E-Reader : Compressing a Dictionary with a Prefix Tree (coming soon) Quick Recap Last week I established a few …

Studying an Old E-Reader : Compressing a Dictionary with Huffman Codes Continue Reading »

Studying an Old E-Reader for Fun : Text Compression 1

This is the second post in a series. Part 1: Studying an Old E-Reader for Fun Part 2: Studying an Old E-Reader for Fun : Text Compression 1 Part 3: Studying an Old E-Reader : Compressing a Dictionary with Huffman Codes Part 4: Studying an Old E-Reader : Compressing a Dictionary with a Prefix Tree (coming soon) Programming Tradeoffs A lot of what we do …

Studying an Old E-Reader for Fun : Text Compression 1 Continue Reading »

Studying an Old E-Reader for Fun

This is the first post in a series. Part 1: Studying an Old E-Reader for Fun Part 2: Studying an Old E-Reader for Fun : Text Compression 1 Part 3: Studying an Old E-Reader : Compressing a Dictionary with Huffman Codes Part 4: Studying an Old E-Reader : Compressing a Dictionary with a Prefix Tree (coming soon) I’ve recently picked up an old E-Reader, specifically …

Studying an Old E-Reader for Fun Continue Reading »

Database Schema Migrations : A Few Lessons Learned

About 5 years ago I was introduced to Flyway, a tool for managing schema migrations using simple SQL scripts. I’ve used it on several projects now, and have more recently been introduced to Liquibase. The two tools both solve similar problems, with slightly different approaches. The main purpose of these tools is to version changes to the schema of the databasse. Liquibase has a good …

Database Schema Migrations : A Few Lessons Learned Continue Reading »

Being a Month Ahead in the Budget

The very strict rules and forms of the Baby Steps helped to establish some discipline for us very early on, but in the long term aging our money to the point that we could budget on the previous month’s income was a lot easier for us to work with and eliminated a lot of headaches.

Actually Getting a Mortgage With no Credit Score

Earlier this year I wrote about the hypothetical process of getting a mortgage with no credit score. Now that we have lived through that process, and have finally closed on selling our old house, I want to document what it actually looked like. I hope someone out there went through this process recently and can say they had a better experience. Maybe there was a …

Actually Getting a Mortgage With no Credit Score Continue Reading »

Visualizing The Nurses in an ICU

My wife is an ICU nurse. Specifically, she works in a Medical ICU, which at her hospital, is the primary unit responsible for taking care of COVID-19 patients. The Medical ICU staff has the training and experience that lines up with the symptoms exhibited by most COVID patients (they are used to taking care of extreme cases of flu, people with lung failure, pneumonia, etc). …

Visualizing The Nurses in an ICU Continue Reading »

beach, shoreline, coast

Side Hustles, COVID-19, and the Tide Going Out

Over the course of our marriage, Summer and I have ran several small side businesses between the two of us, including: A photography business Web / application development Childbirth education classes Doula (childbirth support) services We learned a very hard lesson with our very first customer for our photography business. It was a small wedding, and we were just starting out, so the total was …

Side Hustles, COVID-19, and the Tide Going Out Continue Reading »

Righteous Living as a Corporate Value

We are nearing the end of the first wave of the COVID-19 shutdown. Tennessee is set to “re-open” at the end of this month, and people will start returning to work. This includes my team. This past month of working from home has afforded me the opportunity to clean up my home office / homeschool room / dumping ground, and I finally cleared some room …

Righteous Living as a Corporate Value Continue Reading »

rotor cipher machine, enigma, electro-mechanical

Sharing Time-Stamped Knowledge of Secrets

I had a thought a few years ago that I never committed to writing. It is probably not an original thought. There are very likely people who are way smarter than me who have researched this topic well, maybe even written a scientific paper or dissertation about it. But, this is just a thought experiment, and I wanted to write it down. So, feel free …

Sharing Time-Stamped Knowledge of Secrets Continue Reading »

The One Line Docker Change for UTF-8

At work we have been trying to ensure that all of our applications correctly support UTF-8. This includes making sure that our REST APIs can handle accented characters (ex: é) and emoji (🤔) when it makes sense to. This is somewhat complicated by the multiple database platforms we have (MSSQL, MySQL, and Postgres). MSSQL is fairly straight forward – it usually involves swapping the text …

The One Line Docker Change for UTF-8 Continue Reading »

Simple Broadcast and Group Call Resources for Churches

We are in the first week of many states and municipalities in the US asking people to stay home and avoid group gatherings to prevent the spread of COVID-19. Many churches who may never have considered streaming their services or doing online video are now faced with having to switch to digital options. Part of my day job is helping on the digital side of …

Simple Broadcast and Group Call Resources for Churches Continue Reading »

Troubleshooting a Performance Problem Using NewRelic

Or, how to poorly implement adding css and javascript resources to a page One of the tools we use at work is the MagnoliaCMS. It powers some portions of some of our properties. For those who have not heard of it (I had not until a few years ago), think of it as WordPress, but more enterprise-y. Recently we noticed that some of the properties …

Troubleshooting a Performance Problem Using NewRelic Continue Reading »

Switching from Essentials4J to Kotlin

At work we have a project that used Essentials4J, and its predecessor Rapidoid Fluent, to simplify some stream/collection APIs. We have been converting this project to Kotlin, and no longer need that library. The conversion was very simple. It highlights some of the things you can do with collections with Kotlin’s standard library. Do.group(…).by(…) Do.map(…).to(…) Do.map(…).to(…) with unique values d639a7ccf9252433

Getting a quick hash of a query in PostgreSQL

I’ve been doing a lot of tweaking of SQL queries as of late, trying to squeeze some performance out of a query by adding indexes, optimizing joins, and some other operations. To do a quick check to ensure that the queries return the same results, I’ve been hashing the results to see if I get an identical hash back. Courtesy of https://stackoverflow.com/a/13948327/206480 sha1 is only …

Getting a quick hash of a query in PostgreSQL Continue Reading »

PostgreSQL’s GREATEST (and LEAST) function

PostgreSQL has two functions that are not standard SQL, but are very helpful in certain situations : GREATEST and LEAST. PostgreSQL does not have scalar functions for MIN and MAX (those are aggregate functions that operate on all rows in a query), but GREATEST and LEAST accomplish that and then some. Both allow for more than two values to be passed in, and also handle …

PostgreSQL’s GREATEST (and LEAST) function Continue Reading »

Web Hosting

Get Your Web Hosting Act Together

I still do a little bit of web development on the side. Usually it involves helping small organizations upgrade their presence. Usually it takes several days to a week of back-and-forth e-mails to get all of the necessary settings and credentials ironed out. Today, I was pleasantly surprised when taking on a new client. They sent me a document containing the registrar, admin user and …

Get Your Web Hosting Act Together Continue Reading »

Pausing the Baby Steps for a Baby

I started writing this back in 2015 when we still had a balance on our mortgage, but for some reason never hit the “Publish” button. Back then we had a refinanced mortgage of $120,000 that we were aiming to pay off before 2020. Around 2015, our monthly interest payment was somewhere around $300. We ended up having no surprises with the birth of #4, so …

Pausing the Baby Steps for a Baby Continue Reading »

Automatic file encoding detection in Java

A few months ago I worked on a process that imports Facebook Leads into a legacy system. Facebook sends its advertising data as UTF-16 encoded CSV. The tool also had to support the CSV files occasionally being ended by hand, which reverted the encoding to something a bit more standard. Thankfully, there was a small library out there that helped. So, in case you ever …

Automatic file encoding detection in Java Continue Reading »

Working for Ramsey Solutions – The First Week (2010)

I was going through Facebook, and noticed that i had a handful of old “Notes”. In an effort to keep blog-type stuff consolidated, I am moving some of those over here and off of Facebook. The last “Note” I wrote was about my first week’s experience at my current employer, Ramsey Solutions. This was originally posted 10/03/2010. A full week has gone by, and I …

Working for Ramsey Solutions – The First Week (2010) Continue Reading »

An Argument Against Credit Card Rewards

A few years ago while my uncle, while he was still alive, made a good argument for why the Christian should not gamble – it is a selfish act – if you want to win, you are wanting someone else to lose. You are violating the golden rule. Put another way: Gambling, then, is an essentially selfish exercise.  Not only is the gambler indifferent to the …

An Argument Against Credit Card Rewards Continue Reading »

The Dumbest Thing We Did With Money

Where I work, we have this concept of Stupid Tax – when someone does something stupid and it costs them money. My wife and I thankfully haven’t had too much stupid tax, but we did have one big expense that came down to me stupidly holding on to something that was “mine”.

Salesforce Trigger Context

At work we are working on a new Salesforce organization. We’ve written some code over the last few months, but at the advice of some contractors who are more seasoned with Apex, we are doing some refactoring of the code. One of these changes is making sure that recursive triggers are not possible – something along the lines of Account AFTER INSERT being called, which …

Salesforce Trigger Context Continue Reading »

Salesforce and Amazon SQS

One final post from the old company blog, from March, 2011. A couple of us are working on a new project that involves Salesforce CRM. We recently came upon a few technical challenges related to our need to keep a subset of the data stored in the cloud in-sync with our internal application servers. These include: Limited number of API calls we can make per 24 …

Salesforce and Amazon SQS Continue Reading »

Coldfusion 9 ORM, Caching and Autocommit

One more from the archives of the company dev blog, this time from August 2011. We have been gradually moving off of ColdFusion over the last several years, but maybe there is something in here that might be useful for someone. We have been using ColdFusion 9 for a few months now. With all new code that is developed, we have been abandoning <CFQUERY> in …

Coldfusion 9 ORM, Caching and Autocommit Continue Reading »

Performance of CFScript

This is another article from the retired company blog. This one is from September, 2011. I have been developing ColdFusion on and off for about 10 years, and one topic that has been controversial the entire time is CFScript. The arguments go back and forth: ‘It’s too slow’, ‘it’s not ColdFusion’, ‘It looks like Javascript, but isn’t’. On our team, the majority of our code …

Performance of CFScript Continue Reading »

Logging in To Salesforce from ColdFusion

Im continuing to clear out articles from the retired company development team blog. This one, was instrumental in getting me connected with one of my first big side work projects, which evolved into a two year project that helped us retire our mortgage. From August 2011: We have been working the last few months on an experiment with Salesforce.com. The code is some of our …

Logging in To Salesforce from ColdFusion Continue Reading »

3 Ways to Become a Digital Lumberjack

Restored using the Wayback machine from: https://www.developwithpurpose.com/digital-lumberjack/ When we had our development team blog, our content team would edit our posts. This one was very different before it went in to copy editing, I had embellished the lumberjack metaphor a lot more than this, and they cut it back. Also, I took out the clickbait title. In EntreLeadership, Dave talks about catching people doing something right. In the …

3 Ways to Become a Digital Lumberjack Continue Reading »

Helping Team Members Move

Here is another post revived from the Wayback machine from our (discontinued) company blog from December 2011. One of the great things about working for Dave Ramsey at the Lampo Group is that they treat all team members equally well. This is especially true of the Web Development Team, which has its own flavor of generosity. One of the Web Development traditions is to help new team …

Helping Team Members Move Continue Reading »

Limiting the Use of CAPTCHA

I used to blog periodically on my company’s blog. Earlier this year, the blog was taken down, and I needed to reference something I posted from 2012. I’ve restored the post using the Wayback machine here. The information is a little dated, but maybe it could be useful to someone. This post references the old reCAPTCHA system that Google used to verify book scans and …

Limiting the Use of CAPTCHA Continue Reading »

Development tools/links for the week of 2017-06-11

Gradle 4.0 is out. It is fast, much faster than Maven. I tried it out on 3 projects that I maintain, and all of them saw build times cut in half (longest one was 86 seconds -> 40 seconds). cukes-rest – I am really late the to the Cucumber / Gherkin party, and I finally started to use it this week. I started writing my …

Development tools/links for the week of 2017-06-11 Continue Reading »

Optimizing a SQLite Database

TL:DR; takeaways: These seem very obvious, but with rushed deadlines, and “it works well enough”, these things are sometimes overlooked. Use the right data type for the job. If the documentation says VARCHAR when the values are always integers, maybe you should use INT. Generate a proper primary key when you can, skip indexes that overlap with the primary key Sort your data before importing …

Optimizing a SQLite Database Continue Reading »

Lessons learned from our first trip to Disney

We just got back from our first trip to Disney World, and had a great time. We procrastinated a bit in our planning, and there are some things I wish I had known before going. Maybe these will be helpful to someone: Complete your registration. When you get an e-mail to “complete your registration”, go ahead and do that early. We stayed “on property” (at …

Lessons learned from our first trip to Disney Continue Reading »

The Love of my Live

An excellent wife who can find? She is far more precious than jewels. The heart of her husband trusts in her, and he will have no lack of gain. She does him good, and not harm, all the days of her life. (Proverbs 31:10-12, ESV) A little over twelve years ago, I was a very nerdy, very much single guy wrapping up his Junior year at the University of Illinois. …

The Love of my Live Continue Reading »

Using Consumer in Spring Validator to validate nested collections

In one of my projects I have a custom Spring Validator that validates a nested object structure, and adds per-field error messages. As an example, a field nested inside an array might produce an error like the following: array[0].field must be a valid value The Errors object works as a stack, so field names have to be pushed as the validator iterates through arrays and nested …

Using Consumer in Spring Validator to validate nested collections Continue Reading »

Hibernate Logging Options

For years I have relied on a simple property “show-sql=true” to see Hibernate’s generated SQL. This option is fairly limited: it bypasses the logging framework in the rest of my apps (SLF4J) it doesnt show parameters, just question marks it doesn’t show any timing information Frustrated at these limitations, I set out to understand all of the other options available to me. This is very …

Hibernate Logging Options Continue Reading »

Making JMeter accept a HTTP 404 as success

One of the projects I am currently working on involves re-writing a REST service written in ColdFusion into Java/Spring. I’m in the testing phase, and am trying to make sure the endpoints behave the same as the ColdFusion versions. One of the tests I am performing is to replay a month’s worth of GET requests from production against this service, and look for differences in …

Making JMeter accept a HTTP 404 as success Continue Reading »

Sql Quickie: Find zip codes near the center of a region

At work we have a copy of the zip-codes.com Business database, which I tend to reference somewhat frequently due to the nature of projects I work on. Today I needed a list of postal codes from major metro areas, which would be used to drive a test data generator. The data generator has access to a simpler, non-commercial zip code list, and can do radius …

Sql Quickie: Find zip codes near the center of a region Continue Reading »

Salesforce: Serializing Objects from a Managed Package

I’m currently working on a Salesforce project that utilizes a few home-built managed packages. There are lots of restrictions of what you can and can’t do with managed package, and most of those are documented fairly clearly. Some, however, are somewhat hidden. One such restriction is this: Only custom objects, which are sObject types, of managed packages can be serialized from code that is external …

Salesforce: Serializing Objects from a Managed Package Continue Reading »

2015 Goals

Last year I wrote a series of posts about my goals for the year. With the start of a new year, it is time for a fresh set of goals. Goals, not Resolutions I was introduced to the concept of setting real, measurable goals a few years ago – goals that are supposed to be more concrete than simple resolutions like “I want to lose …

2015 Goals Continue Reading »

Naming a class in Salesforce the same as a built in interface

I am currently working on a small managed package for a Salesforce project. One of the nice things you can do inside of managed packages is create post-install scripts, which are sort of like migrations in Rails. For some reason, I kept getting a compiler error when I created even the simples of install handlers: global class PostInstallHandler implements InstallHandler { global void onInstall(InstallContext context) …

Naming a class in Salesforce the same as a built in interface Continue Reading »

Troubleshooting a SQL Server Implicit Conversion Issue

Over the last couple of weeks, I have been spending some time troubleshooting performance issues in some of our Java-based RESTful services. This week I came across one that required some different steps to troubleshoot. First, the tl;dr – our JDBC driver (jTDS) converts CHAR to NCHAR, which causes an index SCAN on a CHAR column instead of an index SEEK. The Architecture Here is …

Troubleshooting a SQL Server Implicit Conversion Issue Continue Reading »

Researching Child Car Safety

My wife and I have an unwritten rule about how we raise our kids: Make decisions about how to raise our kids using the best information we can find, without being paranoid, second guessing, or spending every waking hour reading every opinion about how to parent. Ok, maybe that’s not really as concise as the rule really is, but you get the general idea. When it …

Researching Child Car Safety Continue Reading »

Home Mortgage Tax Deduction – Part 1 : Intro

Have you ever had a moment where you realized that something the majority of the population hold as true was actually a bad idea? You believed that idea for many years, and those telling you seemed to have good data to back their claim, so you just ran with it? But, after having someone sit down with you and show the numbers, you realized that …

Home Mortgage Tax Deduction – Part 1 : Intro Continue Reading »

Java 8: Optional

A fellow developer today asked me a question about the Optional interface in Java 8. My team is still working on a Java 6 stack, but his team is blazing the trail to Java 8. I’ve used Optional a little bit in some side work, and I am a little more familiar with Guava’s version. His use case centered around the correct syntax to rewrite this using map() instead …

Java 8: Optional Continue Reading »

Life Insurance: Why?

Let’s talk about a really fun topic today: life insurance. Before we get to that exciting topic, I want to excite you even more with a short meta-post. I sat down and started to write this really long post – what would have amounted to 5+ pages, complete with tables and numbers – and realized that I needed to step back and focus on the most important thing. …

Life Insurance: Why? Continue Reading »

Budget Basics: Saving for Car Expenses

When we first started using a written budget about 5 years ago, one of the first semi-irregular expenses that we had to start budgeting for was car maintenance. Up until that point, if a tire wore out or a battery needed to be replaced, we just whipped out the credit card, and worked it out at the end of the month when we paid our statement. It turns out, …

Budget Basics: Saving for Car Expenses Continue Reading »

A Cappella Worship Resources

Where my family worships we are a bit “weird”. We currently worship at a building bearing the name “Church of Christ” in Franklin, TN. What is strange, at least according to many followers of Christ in the United States, is our form of worship. We worship exclusively and collectively with our voices – no piano, no guitars, and no iPads. You may be stumbling across this article, and scratching your head …

A Cappella Worship Resources Continue Reading »

Mockito AdditionalAnswers

Sometimes you use a framework for years, and then discover something new that it can do. I had one of those moments today with Mockito. I have an API that I am mocking, where I need to capture the argument passed in for further testing, that had a line that ended up looking something like this: This is actually incorrect Mockito syntax. The captor.capture() doesn’t go …

Mockito AdditionalAnswers Continue Reading »

2014 Goal – Last Will

This should be the last in a series of posts about my family’s goals for the year 2014. Thank you for reading. I hope I haven’t been annoyingly personal. It has been my hope that maybe someone out there has struggled with goals, and might gain some ideas from me speaking about our thoughts that went into our goals. If that’s not something you struggle with, awesome. Thanks for …

2014 Goal – Last Will Continue Reading »

2014 Goal – Run

This is the second in four posts about goals for 2014. Goal 1: Be An Encourager Goal 2: Run Goal 3: Mortgage Reduction Goal 4: Last Will Waiting for the end to come… Wishing I had strength to stand… This is not what I had planned… It’s out of my control…. Linkin Park – Waiting For The End When I ran my first half-marathon, I …

2014 Goal – Run Continue Reading »

Welcome to the Future

I wish they could see this now The world they say is changing oh ‘Cause I was on a video chat this morning With a company in Tokyo Hey, everyday is a revolution Welcome to the future — “Welcome to the Future”, Brad Paisley Earlier this year I had one of those “wow, we are living in the future moments.” My family was on our way home from celebrating our …

Welcome to the Future Continue Reading »

IE9 Print Stylesheet Issues

Over the past two years, I have had the pleasure of fixing two issues with printing from Internet Explorer 9. Both of the problems deal with IE-specific “filter” attributes in CSS. We have an application that is used by an audience that deals with a lot of paperwork. They like to print information from our application to add to their paper files, so it is important that printing functionality works …

IE9 Print Stylesheet Issues Continue Reading »

Hibernate Timeouts while Offline

We are currently on a road trip to watch opening weekend of College Football. I’m trying to get a little work done in the car – and by that, probably a whole hours worth. Im working on a Java application on my Macbook, which communicates with a MySQL backend. Due to various dependencies, MySQL runs inside an Ubuntu VM via Virtualbox. Normally this setup works great – communicating …

Hibernate Timeouts while Offline Continue Reading »

Batch Operations for GoPro images

Recently I purchased a used GoPro Hero 3 Black. I’ve used it mainly to take time lapse pictures. The GoPro records images in 4×3 aspect ratio, and makes quite large images (2MB+ per frame). With the help of Google, I was able to piece together some scripts to help me convert these to mp4 videos on my MacBook. Assuming the images have been offloaded from …

Batch Operations for GoPro images Continue Reading »

Vacation on a Budget – Part 4 – Recap and Lessons Learned

This is part 3 in a series about vacationing on a budget. Recap I’ve said it before, and will do so again – by budget I do not mean “cheap”, I mean “a plan” – on paper, on purpose, before the trip began. There are many people who take far more expensive trips than we did, but our trip was far from being a “budget” …

Vacation on a Budget – Part 4 – Recap and Lessons Learned Continue Reading »

Vacation on a Budget – Part 3 – Remaining Expenses

This is part 3 in a series about vacationing on a budget. As a quick recap, our budget for the entire trip was $2,400. We broke it down into the following categories: $1,200 for lodging (50%) $300 for gas (12.5%) $400 for food, groceries, supplies (16.7%) $500 for activities (20.8%) As I covered in part 2, we spent $1,188.84 out of our budgeted $1,200 for …

Vacation on a Budget – Part 3 – Remaining Expenses Continue Reading »

Vacation on a Budget – Part 2 – Where to Stay

In part 1, I went over our budget for our 2013 Family Vacation. Our total budget was $2,400 cash. We had saved up that amount in a savings account, and had no more than that to spend. Our rough breakdown was: $1,200 for lodging (50%) $300 for gas (12.5%) $400 for food, groceries, supplies (16.7%) $500 for activities (20.8%) Location, Location, Location Our family enjoys …

Vacation on a Budget – Part 2 – Where to Stay Continue Reading »

Vacation on a Budget – Part 1 – Establishing a Budget

Our family loves to travel. During the first 3 years of our marriage, we would travel over 500 miles from home at least 3 times a year. One year we went to Hawaii, San Francisco, Texas, and it seems like at least one other place in that year. One year we drove out to Colorado from Missouri to see some property that has been in …

Vacation on a Budget – Part 1 – Establishing a Budget Continue Reading »

Let Your Words Be Few

Don’t be rash with your mouth, and don’t let your heart be hasty to utter anything before God; for God is in heaven, and you on earth. Therefore let your words be few. For as a dream comes with a multitude of cares, so a fool’s speech with a multitude of words. — Ecclesiastes 5:2-3 I would have written a shorter letter, but I did …

Let Your Words Be Few Continue Reading »

Private Insurance

It has been a long time since I have written anything of substance, so why not break the hiatus and write about a very exciting subject – health insurance. Maybe this is a bit personal, but I am not going to reveal how much my family earns, nor how much of our income as a percentage is spent on health care, nor how much my employer’s group plan …

Private Insurance Continue Reading »

Writing

I have been going to old sites where I used to blog, and am trying to consolidate anything that may matter and bring it here before shutting down those services. I came across a site where I used to write, Pleonast, and realized I had not posted there in over 2 years, yet, I had some fairly good content there. So, it is here now. …

Writing Continue Reading »

Clearing Pleonast

It has been around 2 years since I last posted on Pleo. I am going to start taking the content down, and move it over to my personal blog at danwatt.org.

black and yellow analog clock

Mocking Time with Joda

A big project I have been developing over the last year has been an automated billing system. There is a part of it that involves scheduling bills, and has a lot of pieces that need to know various dates – when bills are due, when they were created, and the current time. We are trying to write good unit tests, and I am trying to make sure the …

Mocking Time with Joda Continue Reading »

Encrypting config files with Spring 3.1 and jasypt

I’ve been working on a project that at one point needed encrypted configuration files. The JASYPT library provides a very nice tie-in with Spring. There were some pieces I had to put together, so here are the results of my @Configuration file that handles encryption. It will scan a given directory (specified by the VM argument config.dir) for any .properties files, and uses JASYPT to …

Encrypting config files with Spring 3.1 and jasypt Continue Reading »

Full Spring 3.1 Config

Someone asked for my full Spring 3.1 annotation configuration. I’ve stripped all domain-specific information, but the overall structure is intact. SpringConfig.java – this is the top level class, is empty except for @ComponentScan and @Import statements. The web.xml references this. SpringMvcConfiguration – Any MVC related configuration DatabaseConfiguration @Configuration @ComponentScan(basePackageClasses = { SpringConfig.class}) @Import({ SpringMvcConfiguration.class, DatabaseConfiguration.class}) public class SpringConfig { } @Configuration @EnableWebMvc @Import({ MvcComponents.class,BeanConfiguration.class }) …

Full Spring 3.1 Config Continue Reading »

Spring 3.1, No-XML, Hibernate, Cglib, and PermGen errors

Lately I have been maintaining several Spring-MVC applications written from the ground up with Spring 3.1. They use the purely Java based configuration scheme that comes in version 3.1, Hibernate. The apps do not have the pattern of “an interface for every class” that some Spring apps have, so it proxies concrete classes using Cglib. When the apps are deployed to Tomcat, we do a …

Spring 3.1, No-XML, Hibernate, Cglib, and PermGen errors Continue Reading »

Making Java, Coldfusion, Tomcat and PayflowPro Play Nicely

One of the more odd parts of our architecture at work involves a cluster of Tomcat instances running ColdFusion and Java services side by side. We are porting our existing ColdFusion services over to Java/SpringMVC applications, and during the transition they are being served up by the same app servers. One of these services interacts with Paypal/PayflowPro. We have a ColdFusion Component (CFC) that makes …

Making Java, Coldfusion, Tomcat and PayflowPro Play Nicely Continue Reading »

ColdFusion, HQL and Named Parameters with Collections

I am currently working on a app that has a fairly simple database model, and we are using ColdFusion 9 and Hibernate to map that model. The model is actually a local cache of a Sales Force CRM database. I have an Account, that can have a list of postal codes assigned to it. Since we have no need for any metadata other than the …

ColdFusion, HQL and Named Parameters with Collections Continue Reading »

OpenSearch

At work we use several Atlassian products, including JIRA and Confluence. We recently upgraded to the latest version of both, and when that happened I noticed Chome starting to behave a little differently. One day I was typing in https://jira (the path to our internal instance), and all of a sudden Chrome's URL bar changed, and I had a search directly of JIRA. Typing in …

OpenSearch Continue Reading »

New Job

So I promised to some that there would be some big news on Thursday, so here it is. Some people had to find this out first (mainly my boss) before I could post it publically. A few have known about this for a while, so thank you for holding your tongues. This post should only be visible to some, and I have tried to set …

New Job Continue Reading »