danwatt

Compressing a Word List on 1980’s Hardware

This is a long overdue continuation of a series I stared a couple years ago. Last time I wrote about huffman codes, and eventually was going to write about prefix trees. Does this research really provide anything useful for the world? Maybe not. It is more of a curiosity. As a computer scientist, I have long found it fascinating how my predecessors of one or […]

Compressing a Word List on 1980’s Hardware Continue Reading »

photography of three dogs looking up

Optimizing Away a LEFT JOIN in a Pinch

A couple years ago the company I worked for had had just launched a free consumer-facing application, and had been pushing it hard on social media. They were seeing hundreds to thousands of active users. It was painfully slow, and the culprit appeared to be the database. One of the main queries on the application was pushing the database server to its limits. Some users

Optimizing Away a LEFT JOIN in a Pinch Continue Reading »

Quickly Testing A Refactored SQL Query for Equivalence

A common problem I have worked on in my career has been to troubleshoot and improve slow, complex SQL queries. Usually these are part of codebases with few or no tests. If there are tests, they usually are testing some other part of the code and assume that the query is correct. It is rare to see tests that prove the columns being selected are

Quickly Testing A Refactored SQL Query for Equivalence Continue Reading »

woman placing her finger between her lips

Comparing the Non-Disparagements of a “Christian” Workplace

Last week there was a large update in the court case of a woman who is engaged in a lawsuit against my former employer, Ramsey Solutions. There are on the order of 1,000 pages that were released of depositions and e-mail threads in documents 93 and 94 on the case. While reading through those, one thing I noticed was the evolution of the NDAs used

Comparing the Non-Disparagements of a “Christian” Workplace Continue Reading »

Condensing Tests in Kotlin : Dependencies

My current team maintains an application built using Spring and Kotlin. We have several thousand unit and integration tests. I’m a big fan of condensing code as much as possible, so long as it remains legibile. A lot of our older integration tests in particular take the following form: Using default Kotlin formatting, the dependencies for the tests take up 3 lines each. This could

Condensing Tests in Kotlin : Dependencies Continue Reading »

Should Landlords Feel Guilty About Raising Rent Prices? – Analyzing Public Records

Last month I said I had hoped to stop talking about Lampo (d/b/a Ramsey Solutions). I’m not going to talk about them as an employer, I hope I am done with that. What I do want to talk about is this video that has been circulating over Twitter over the past week, titled “Should Landlords Feel Guilty About Raising Rent Prices?”. The clip is actually

Should Landlords Feel Guilty About Raising Rent Prices? – Analyzing Public Records Continue Reading »

Why Write About Lampo (dba Ramsey Solutions)?

I’ve been asked a handful of times why have I occasionally written about The Lampo Group LLC (d/b/a Ramsey Solutions)? Why use this space to talk about a previous employer? A quick disclaimer: views expressed below are my, Dan Watt’s, own. The domain name should make that obvious. I think the problem is the assumption that this was just an employer. Some on the outside,

Why Write About Lampo (dba Ramsey Solutions)? Continue Reading »

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.

Working From Home – A One Year Retrospective Continue Reading »

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 »

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 »

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 »

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 had a project that used Essentials4J and its predecessor Rapidoid Fluent, to simplify some stream/collection APIs. We were converting this project to Kotlin, and no longer need that library due to features of Kotlin’s standard library. The conversion was actually fairly straightforward. Do.group(…).by(…) Do.map(…).to(…) Do.map(…).to(…) with unique values d639a7ccf9252433

Switching from Essentials4J to Kotlin Continue Reading »

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. This solution was adapted from https://stackoverflow.com/a/13948327/206480.

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. In SQL MIN and MAX are aggregate functions that operate across all rows. But there are times where you want the smallest or largest value in a finite number of columns, a scalar min/max. That is where GREATEST and LEAST come in. Both allow for

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 »

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 »

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 »

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 »

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. The story I’ve been working on a project that involves taking flat files, importing them into SQLite, and exporting that database for use on low-powered client devices. I’ve had two such projects over the past couple of years, and each one has provided some small

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 »

Postal Code Voroni Diagram

The links in this article point to a free Heroku instance, which can shut down due to inactivity. It may take a few seconds for the instance to start up. I’ve uploaded a little experiment to Heroku, showing something I toyed around with a couple years ago. Would it be possible to approximate a map of zipcodes using just centerpoints? I loaded the US zipcode

Postal Code Voroni Diagram 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: The Errors object works as a stack, so field names have to be pushed as the validator iterates through arrays and nested objects. So, a very simple validator

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 HTTP 404 (or any 4xx) as Success

One of the projects I am currently working on involves re-writing a REST service from one framework to another. I’m in the testing phase, and am trying to make sure the new endpoints behave the same as the old version. 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

Making JMeter Accept HTTP 404 (or any 4xx) as Success Continue Reading »

Use SQL to Find Central ZIP Codes for Metro Areas

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

Use SQL to Find Central ZIP Codes for Metro Areas 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 »

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 »

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 »

Upgrading an Older Desktop

If you follow desktop computer trents, chances are you know that Solid State Disks, or SSD, are quickly replacing Hard Disk Drives as the storage medium of choice. SSDs are more expensive per GB of storage than their spinning relatives, but make up for the smaller space by being much faster. I’ve had an SSD for over a year now – I bought a 256GB drive to

Upgrading an Older Desktop 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 »

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 »

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 })
public class SpringMvcConfiguration extends WebMvcConfigurerAdapter {
 @Qualifier(“generalMapper”)


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 »