Recent Posts

AT&T Uverse vs TimeWarner Cable

general

I have had it with AT&T Uverse! We have been having some internet issues lately. We have been AT&T Uverse customers since 2008. I started out with 6mbit service then upgraded to 12mbit and then to 18mbit (upstream is only 1.5 mbit.) When we first got it installed it was very cheap but as the years have been going on they have been increasing the prices and not necessarily the speed. The first time they installed it they had to do like a 4 hour install which pretty much involved rewiring the house from the Node in the alley all the way to the jack they installed for the gateway. Given that my house is over 100 years old this probably isn’t too surprising. When I initially did the upgrade from 6 to 12 mbit the speed only went up to 8 mbit. They sent a tech out and he fixed the wiring apparently the first installer had done a few things wrong and he had to replace our 2-wire gateway as that also seemed to have issues. At some point I upgraded from 12 to 18mbit as the price differential was so small there was no reason not to. When we first got 6 mbit service it was amazing, videos streamed perfectly, downloads were fast I was very happy. When I upgrade to 12mbit I was blown away I was downloading songs from iTunes in 3 seconds everything was great. We could watch Netflix without having to wait to buffer again life was good. When we went to 18 I didn’t notice a big difference but everything just got a little bit better. But as time has gone on the service quality has gotten horrible, even though I still have my 18mbit clearly AT&T has some backbone issues, as I can’t hardly play a YouTube video now without it choking. I tried doing some Amazon streaming a couple of months ago and it was almost unusable.

Read more →

Wordpress auto updates

general

I am always a little amazed when I get an email from my blog that tells me it upgraded software versions. Even though I have had auto-updating operating systems and other software for years, something about a website updating itself just seems like a bigger deal. I am sure most people think like whatever, but I think what a cool time we live in, when all this stuff just manages itself.

Read more →

Google page ranking favors responsive websites

general

Google has changed their algorithm to favor sites that are more mobile friendly if the user is coming from a mobile device. So of course wanting my blog to show up in search results I ran google’s tests on it. The first one they have is Mobile-Friendly. I ran that and am happy to report that Wordpress automatically took care of that for me. The other tool that you should run against your site is Google Pagespeed. When I ran that it actually had a list of a few things that I should fix to make my page faster. Some of them I wasn’t quite sure if I can change inside of Wordpress easily but one that it highlighted was that I didn’t have GZip compression enabled for my site. They also give instructions on how to fix the issue. So now because of Pagespeed my site will now compress files it sends across. Anyway wanted to mention them both as they both seemed pretty useful to me.

Read more →

The nuclear option

aspectj , general , hibernate

I have been using open source software now for about 20 years. One of the things that I always saw discussed back in the day was if you don’t like the way a project is being run you can always fork it and do things differently. In all my years I have never actually felt the need to do such a thing because lets be honest running an open source project is a ton of work. As readers of my blog know I have been wanting to update to Spring 4.1. What has been holding us back was a change in aspectj 1.8.2 where it would automatically process annotations found in the code. This ends up generating the hibernate meta-model and dumping the files wherever maven was invoked. So trying to work within the project I opened up a jira for an enhancement which would allow me to pass a flag to the compiler to not process the annotations. There was a quick response at the beginning of January and I was left with the impression that this would be handled in a couple of weeks. Finally in the middle of February with the work still not done Ralph Engelmann submitted a patch which would actually implement the feature.

Read more →

Spring Security 4.0

security , spring-framework

I was checking the Spring Blog today to see what was new after taking much of the week off. I came upon the following entry. Of course I was very interested as Spring Security 4.0 has been hyped for a few months now so I figured I would check out the migration guide from 3.2 to see what will be involved for us to upgrade. I found this is the new feature section. They have added a feature which will now automatically prepend ROLE_ to any roles you use in Spring security if your role doesn’t start with that. So if you have a role called ROLE_USER for a standard user you can now just say @PreAuthorize(“hasRole(‘USER’)”).

Read more →

Cassandra Data Modeling

general

I ended up having to miss the JHipster webinar last week as I was invited by my company to attend the Datastax DS220: Data Modeling with Datastax Enterprise class on Monday and Tuesday. The company came out and taught the class onsite. The instructor was Andrew Lenards and he did a great job.

I have been using Cassandra for a little while, but I hadn’t done anything serious with it. The CQL query language is all at once a great blessing and a curse. On the upside it is immediately familiar so anyone who has done SQL work can get comfortable creating tables and executing queries quickly. On the downside it sort of abstracts a few things about the data store away from you and I think at a certain point for performance you sort of need to understand what is going on under the hood. This class gave us that. It starts out presenting a data model like you might see in relational databases and then you work through the ways you might model that data in Cassandra and the trade offs of different models (which questions you can ask, which fields are required to ask those questions, etc). One of the biggest things I was missing prior to the class was the whole concept of partitions vs rows and what the partition key is vs the collating keys. I had been using the data store like a SQL database so that my partitions always had at most one row. We did a lot of looking at instead what if we model the data so the partitions have many rows and what are the advantages and disadvantages of doing so. On day two we got very deep in the technical aspects of what was going on under the hood, how data was stored on disk and how to do things like estimate partition sizes. We were also able to ask a lot of questions specific to how we have been using Cassandra in our organization and what the limitations are going to be as we expand its usage to even more areas of our product.

Read more →

Signal Messenger

security

I just wanted to mention signal has been released so for all the iPhone users out there it is definitely worth installing. Signal is an implementation of Text Secure on IOS. Given the insecurity of text messages and how many other messengers have varying degrees of security Open WhisperSystems has released Signal. Some popular chat programs like WhatsApp are starting to encrypt but they aren’t always encrypted. One of the biggest benefits of Signal is they released the source code so that anyone can audit the code. Granted if you are installing it from the iTunes store there is still the risk of a back door being in there, but one inclined and with a developers license could build their own and install it on their phone. Of course that also assumes that your copy of XCode hasn’t been tampered with. At the end of the day if you are a target they are probably going to get your stuff, but the benefits of widespread use of secure products would be to disallow wholesale metadata and data collection that has been alleged to have been happening so that innocent people are left alone. The EFF has a nice scorecard that ranks the security aspects of different messenger apps. Here is another story suggesting the use of this app. If you are on Android Signal is an implementation of TextSecure.

Read more →

Cobertura is gone and Clover is here

general

I have spent most of this week working on integrating Clover into our environment and ripping out Cobertura. I ran into a couple of issues along the way, but we are up and running now. First one thing I dislike about Clover is by default they will mess with the maven artifacts that you may intend to ship. I think this is actually a poor way to instruct people to configure it out of the box because you are basically saying you only run it every so often on different builds or you end up having to invoke maven multiple times or other associated hacks. I didn’t like any of those options as the idea is to fail the build if coverage drops below the acceptable level and not accept the commit until that is addressed. Luckily I stumbled upon the clover2:instrument option that you can use instead of the default recommended clover2:setup goal. But then I hit a second problem, the way it names the instrumented classes with the clover2:instrument option seemed to be clashing with the JPA 2.0 Metamodel generator that we were using. I had sort of been looking for an excuse to rip that whole thing out of the project for a while and now I finally had that so I removed it from our software and replaced it with just reflection on the classes and used unit tests to verify at test time that the code wasn’t broken instead of the compile time checks we would get with the metamodel. With that gone clover integrated greatly and I got it wired into our Jenkins configuration. Today I was able to get our configuration manager to install the clover plugin into Jenkins instead of using the publish html report option and we have much nicer integration. With the Sonar Clover plugin we now have integration with Sonarqube. The Sonar plugin brings in the coverage but it no longer lists technical debt like the Cobertura does. So aside from that I think this is going to be a much better solution for us going forward and was glad we could finally switch.

Read more →