Form & List + ManDeeps Module Mashup
I had to create a portfolio and handle various formats so I tied the form and list module together with the LiveContent module from ManDeeps.com and used them to create the gallery. Technically I could have done this all with ManDeeps LiveContent module, but tying it in with the Form and List module makes it a little bit easier to maintain for content managers as well as gives me sorting, paging, and stronger control via CSS.
I’ve recently been researching Splunk and have been impressed with its power, flexibility, and ease of use. This blog is not intended to be a step-by-step tutorial, but rather is aimed to show some initial findings, overview one way to integrate Splunk with DNN, and paint the picture of some potential use cases.
So What is Splunk?
If you don’t already know what Splunk is, Splunk is a software company based in San Francisco that produces software for searching, monitoring, and analyzing machine generated big data via a web style interface. Splunk’s software helps organizations with operational intelligence, log management, application management, enterprise security and compliance.
Installing Splunk was simple and after clicking around a little while it was evident that Splunk is an intuitive software. From a UI standpoint, it makes logical sense and the flow is easy to understand. And it didn’t take long to see and understand how powerful it is.
As you may imagine, I began to wonder if and how I could integrate Splunk with DNN.
DNN + Splunk: One Way to Connect the Two
One of Splunk’s powerful features is that it can literally suck in all types, styles, and formats of data. This data can be machine data, log files, or even data from a REST API. There are several mechanisms for getting data into Splunk, but for this scenario, DNN’s web API implementation makes this an easy fit. On the DNN side, a developer can easily create a custom module using web services to expose any DNN data on an endpoint, which Splunk can then access. If you’d like to go the custom module route, check out my other blog series on module development. However, I did not write a custom module to test the integration.
For my initial investigation into Splunk I chose to use DNN Sharp’s API Endpoint module as it allows easy configuration of end points. Splunk is architected to consume any type of data and then it makes that data extremely easy to search, create visualizations and/or alerts with. These searches, visualizations, and alerts can be very basic or very complex in nature.
Another thing to note is that Splunk is architected to do this at scale and can easily parse enormous amounts of data. For example, every time you drink from a Coca-Cola “Freestyle” machine at a fast food restaurant, the data from your drink selection is logged and Splunk helps analyze the data, denote trends, and sends alerts. So yes, those Coke machines (all across the world) are connected IOT devices and Coke is a Splunk customer. See how Coke is using Splunk in the Splunk Conf 2014 Keynote replay session. Imagine how much data that is on a global scaled --> Splunk is helping Coke make sense of it.
Side note: Check out the blog I wrote on using Particle & Splunk to monitor temperature
So, my first goal was simple: see if I could get data from DNN into Splunk.
Sticking along the thought process of “data logs” I figured why not expose the DNN event log on an endpoint and see what I could make happen. Obviously, the event log may not be the best use case as site administrators can clear logs or processes to automatically clear logs sometimes exist. However, for this initial test it is a good candidate. To get the event log data on an end point I used the DNN Sharp API Endpoint module to make a SQL query on the event log view and return it as JSON.
With the event log now sitting out there as JSON on a DNN end point now all I needed to do was get it into Splunk…
Getting REST Data Into Splunk
The Splunk side of this configuration only took a few minutes to configure and keep in mind I’m no Splunk guru (read, it’s easy!). Splunk is similar to DNN in that it’s extensible. Splunk extensions can be found on the Apps and Ad-Ons sections of the Splunk website. I tell you this because ultimately, I followed a blog by Damien Dallimore on getting REST data into Splunk which used a modular input extension and that was all it took. I simply completed the required fields in the Splunk REST Modular Input as shown below.
I chose to poll the data every 60 seconds. With this information inputted I clicked save and returned to the Data Inputs screen of Splunk and chose my newly created data source.
BOOM! I was seeing DNN event log info in Splunk!
Searching, Visualizations, & Alerts in Splunk
With data in Splunk now I needed to proceed to using Splunk to make sense of the data. Splunk’s searching functionality makes it very easy to search for, well... anything you'd like. I’m not yet knowledgeable enough to fully explain all the capabilities, but what I can easily see is that you can select your data source, click on keywords, add them to the source's search criteria and set your desired timeframe for the search. It’s feels as if you have a Google search bar and all your searches are performed on your data source and intellisense & syntax highlighting for your search are provided too!
Once you have a search returning data you can then create visualizations or alerts. And yes, there are tons of visualizations provided by Splunk. These visualizations can be saved as reports or live as “panels” that reside on dashboards. Dashboards can have as many panels as you want and you can have multiple dashboards if you like. Also, you can easily embed these panels into DNN or any other location by clicking the “convert to HTML” link that each panel has. Being able to display this info anywhere you like is a neat feature. Are your mental light bulbs turning on yet?
So, I created a few visualizations based on event log data that was available. I created a number-based-visualization to show a large number that represented a count of 404 errors, a line graph showing the number of failed logins, and a chart showing the 404’s over time. So, in just minutes Splunk was already helping me understand that I have some issues going on with one of my sites. I believe one reason for the 404's is that I've renamed some pages that I think bots are targeting trying to register. Anyways, I've got work to do... don't judge!
Opening Up Possibilities
Now you may be looking at this and thinking to yourself, yeah this is neat, but I could create a custom module to make something similar to this happen. And you would be correct, but keep in mind the potential use cases, flexibility, and scalability of Splunk in comparison to a custom module. You could easily have all your customers as data sources and create dashboards to help you (and your customers) quickly understand what’s going on with your customer's applications. You could also do data mashups of data from a DNN website/web app, some IOT device out in space, and any other data source you can think of to provide valuable insight. And again, Splunk has no problem doing this with massive amounts of data.
With just a little research into Splunk it didn’t take long to get my mind spinning with all the possibilities within DNN and beyond. Think about your current DNN use cases, requirements of your customers, and the exploding IOT market and you’ll soon see the light.
Here are some ideas I had right off the bat:
As you can see the power and flexibility Splunk provides is really nice. I believe Splunk could be a game-changer especially for those with large amounts of data to parse, anybody in the IOT space, and much more. I hope this blog has provided you with an introductory glimpse into some of the capabilities of Splunk and even got you thinking of potential ways to integrate Splunk into your applications or customer's environments. I am still learning about it and hope you will too. I know that I'm just scratching the surface here in my initial findings.
Find out more about Splunk at http://www.Splunk.com
This past week we had another Queen City DotNetNuke User Group meeting. This meeting was unique in the fact that we had been promoting hard because DNNCorp flew one of their engineers out to speak to our group. Will Strohl arrived to Charlotte late last Wednesday evening. I gave Will a late night mini-tour of Charlotte and we talked as we rode around. Our meetings happen every 3rd Thursday so it wasn’t long before the next day came and it was meeting time.
At some point either Wednesday night or Thursday during the day I told Will that I thought we should open the meeting up and try a Google+ Hangout to see if any DotNetNuke developers in other areas would like to jump on to watch the presentations. Will was open to it and so I made a point to bring my laptop. When we got to Microsoft (our group meets at Microsoft Charlotte) we began setting everything up. We weren’t really sure how the video or audio quality would be, but we wanted to give it a shot. I put my computer off to the side of the table (near an outlet) on the front row. I turned the Google+ Hangout on and posted a link to it on Twitter. Within minutes I had my first taker. Gifford Watkins, a DotNetNuke phenom from Nova Scotia, jumped on to see what the fuss was all about. Shortly thereafter we had one more, then another, then another and before long we had a crew on a Google+ Hangout at least 20 minutes before the meeting began.
One of the first things I did was to give the guys a walk-around tour of the meeting. I got my laptop in my hands and showed them the room and the spread of food that we had at the meeting. I showed them the server rack near the door and randomly videoed people and talked with them as I walked around. It was kind of like a live virtual tour of the meeting. I did this to try to give the hangout attendees as much of a view of what was going on as possible.
The guys online were saying that they could hear me well and see the video clearly so it seemed like it was working out well. I told them we would do the best we could to make them feel like they were attending the meeting with us. To achieve that we also had one of our guys join the hangout. Will turned his laptop and joined the hangout and he interacted with the attendees via the chat window. One issue we had to overcome was when someone at the meeting would ask a question from the back of the room. Obviously the guys online couldn’t hear the question so Will would type it out to them in the chat window. He also typed some lines of code that one of the presenters used in his slide deck to make sure the guys could clearly read it. During the Hangout one of the guys typed that being a part of the Hangout was better than being at the actual meeting because they got to see the presentation plus they didn’t get in trouble for “passing notes”. His statement referred to the fact that the hangout attendees could read and write message to each other in the chat window. Will also typed to the hangout attendees and asked them if they had any questions for the speaker and sometimes they did so we were able to ask the speaker questions from hangout attendees as well! Remote Q&A with the speaker. Cool stuff!
In this picture you can see our speaker, Will Strohl, interacting with members of the Google+ Hangout
One note that is worth mentioning is that to make this happen the hangout attendees needed to turn their microphones down. I could see where some of the attendees were muting each other because they were getting feedback or their sound would steal the “stage” of the live speaker momentarily because that’s how Google+ Hangouts are configured. We just had to ensure that our speaker was the “live speaker” in the hangout and muting the microphones did this.
I will add one unique note as well. We had one DNN guy who wanted to attend the meeting. Robb Bryn was attending a meeting in the afternoon and was heading to Charlotte after his meeting. His meeting went over by a couple of hours so he was unable to make it. Though, when he found out about us opening it up to a Google+ Hangout he was able to join the hangout from his phone while driving down the road. I could literally see him in his truck riding down the road with trees passing him in the background of his driver’s side window. Eventually Robb finally pulled over on the side of the road and watched the whole meeting from his vehicle. Now that is some dedication and also some awesomeness that he was able to achieve via his Google+ app on his phone.
Richard English raising his DotNetNuke mug as he enjoys attending the meeting from afar
By the time the meeting ended we had 12 people total on the Hangout from Egypt, the Netherlands, Ohio, Cali, Pennsylvania, South Carolina, Florida, North Carolina, Nova Scotia, and a few more states up north. They weren’t all on at the same time and some came and went, but nevertheless it was very neat to open the meeting up and reach out to even more people via the Hangout. At the end of the meeting the guys on the hangout were all commenting on how everything went well and they said they really enjoyed it. Some remarked that they felt like they were there and that the video and audio was very clear. They could even read the text that was presented on the screen. We asked them if they thought joining the hangout added value or was beneficial for them and they all overwhelmingly remarked saying yes! They also requested that we do it more at future meetings.
Ultimately the decision to open the meeting up added a new dimension to the meeting. During the meeting we had a lot of energy in the room as well as online in the hangout. There were 2 different conversations going on at the same time and it was really cool to be a part of the live & virtual meeting at the same time. I think we’re definitely going to try to do more of these in the future and I would encourage any other user groups to give it a shot so that members in your community who aren’t in the local area can also attend and contribute.
Google+ Hangouts just changed our user group meetings for the good! And with that said…be sure to tune in to our next meeting!
Once you choose a font you can click to the “Type Tester” section to see how any specific words you type will look in your selected font. You can easily increase or decrease the font with the slider and you can also view how the font looks in various browsers on the “Browser Samples” tab as shown in the screenshot below.
Typekit uses “kits” to organize fonts for usage by designers. It’s really easy to create a new kit. Simply hover the kit section and click “Add New Kit”. As you can see from the screenshot below, I've created a kit for each site on which I use custom fonts. You can see how to add a new kit in the below screenshot.
Now that the "kit" is ready I need to add some fonts to it. Once you decide on a font you simply hover over the font and click “Add to Kit” and the font will be added to the kit for which you are currently viewing as denoted in the below image.
After you add a font to a kit you can go into the "kit editor" to further customize. Once you’re inside the kit editor you can customize various settings and styles that make the custom fonts appear on your site. You can simply add the CSS selectors that you’re using on your site & they will then render showing the custom font that you've just selected in Typekit. Notice in the below screenshot where I'm adding " .ANewSelector " class in Typekit's editor.
If you wanted to access specific weights & styles via your skin.css file you can click on the “Using weights & fonts in your CSS” option which will give you the below screen allowing you to copy the CSS necessary for your specific font & weight.
Now if you did click the “Copy CSS” option you would end up with some CSS that resembled the below:
font-family: "atrament-web",sans-serif; font-style: normal; font-weight: 400;
Once you click publish you will be ready to go. I should also mention that if you want to develop or test out styles locally you can also enter “localhost” in your kit editor settings and that will make your local sites work with the new custom fonts.
If you were concerned about how your styles would display on mobile devices you can click into the "Mobile Settings" section of the Typekit editor as seen in the below screenshot.
Now to make all of this active we need to click the big green “Publish” button at the bottom right hand corner of the kit editor screen which you can see in the below screenshot.
Then in my HTML Module I simply referenced the CSS classes that I specified earlier in the Typekit selectors area.
And that's all it takes to get everything lined up. You can see an example of the redesigned home page (running locally) using the custom font “Atrament web” that I selected earlier.
Typekit makes it extremely easy to use custom fonts in your site. If you’re a Creative Cloud member you should check it out. I hope this blog has been helpful to you with integrating custom fonts in your DotNetNuke sites.
I need to start out by saying that I’ve been inspired to do all this by some great guys in the Charlotte area and they are Dan Thyer, Mike Linnen, and Jay Ziobrowski… thanks for the motivation guys! I am either copying something creative I’ve seen them do or trying to imitate their passion, talent, and drive for Halloween and/or IOT projects. One day I hope to be as sharp and creative as they are.
Halloween & IOT
In 2016 I made a flame throwing pumpkin (copy-catting one of Dan’s inventions) and let’s just say some of the parents weren’t too keen on fire being near their kids and I also didn’t make any fans on the community’s HOA! Though, we all must start somewhere. In 2017 I went the safer route and made the AirGhost which is very similar to this year’s project.
The IOT Clown
This year I have created an IOT Clown. I did some testing and iterating on various ideas and concepts and there’s just no way to get around it… the thrust of compressed air brings a startling surprise and the best part is that it’s safe. We have tons of young kids in our neighborhood and moving a skeleton bone (which I debated in this early prototype) could likely hit someone, cause a toddler to fall, or trip someone up which could potentially lead to a spill on the concrete sidewalk. I don’t want to injure anyone or have some local parents mad at me, so I reverted to the compressed air, but then added a few more movements and changed the medium from a ghost to a clown.
Here’s a quick video of the end-product prototype just to show you where we’re heading… I’m going to dress it up a little more by Halloween, but you’ll get the gist.
Here are the main components I’m using for this project:
Here’s a video “talk-through” of the mechanical parts and power supplies being used.
Let’s Talk About Particle
The Particle platform is awesome! Check out this video of the Particle platform to learn more. I am admittedly a little bit behind all of Particle’s new innovations. I still need to learn about their Mesh and Argon solutions. Even though I’m not 100% up to speed I know you can do tons of creative stuff with the particle platform, their multiple IOT devices, and their integrated IDE. Since I’m using the Particle photon, we’ll start with it.
The Particle photon is a small IOT (internet of things) device that makes it easy to bring real world objects online. Particle makes it easy to setup the device and to connect to Wifi via a mobile app. If you want to know more about initially connecting and getting up and running with Particle they have some of the best documentation I’ve seen check out the doc, tutorials, and guides.
For this project all I really want to do is to move 3 servos… one for the head to spin, one for the head to roll, and one to push the handle on the air compressor. To do that we need to use the components I listed above + Particle’s platform + some code. I’ve listed out the components and just introduced the photon… now let’s look at some code.
Let’s Look at Some Code!
Particle’s platform is awesome, but we need some code to make things happen! I could easily copy and paste code here, but that wouldn’t help you understand the “why” and “how” behind some of the concepts. I hope to help you connect some dots here and as such I’ve cut a video walking through how I’m doing some of this stuff. The video shows code and includes videos of the device in action.
To all you senior devs… yes, the code shown in the video could be much better. I have not refactored anything yet, so the code is not nearly as efficient as it could be. And yes, I showed my handy Particle access token in the video… no worries though, by the time you read this I’ve already recycled it and created a new one.
Here are some relevant links:
So, with some disclaimers down and links shared let’s talk through the code some…
If you take the sum of all the info presented here that is how I’m making this happen!
And We Wait on Halloween!
Halloween is just about a week away at this point. If you have any questions or issues filling the gaps in this high-level tutorial, please reach out and ask your question. I plan on trying to video some of the fun at Halloween and posting any interesting reactions here just below this section… so stay tuned!
The Halloween Video
Check out some of the reactions we got from kids and a few adults!
My wife and I recently sold our townhome and set out to buy a new home. We spent a good deal of time researching, driving out to communities, and looking at floor plans. We finally settled on a new-construction development that was a Lennar community.
As we looked at the different floor plans we had a few that we liked, but ended up settling on a plan called the “Westley”. We chose a lot that was having the foundation laid so that we could still pick floor colors and have a little control over some features. We were excited to watch the home as it went up.
Of course once we sold the townhome we were displaced and without a home while the new home was being constructed. Based on the word Lennar gave us we would close on June 26th. Since we sold the townhome on June 5th that would give us about 3 weeks where we would shack up with my mom. This was where the “fun” began.
While the home was being constructed we made a few trips to the community to meet with the builder and to fill out paperwork regarding the loan. On one trip the home seemed to be a long way from “closing” and I asked the supervisor if he thought he was still on track to close on the 26th. He responded “Oh yeah, shoot if this good weather keeps up we may close early”. With the house still having a lot of work that needed to be done it was difficult to believe that timeline, but I am obviously not a builder and so I leaned on the supervisor’s expertise.
The day finally came for the walkthrough. As you can imagine, my wife and I were excited to go and review our soon-to-be new home. I had recently been to the home and had a list of items that I wanted to ensure were completed while we reviewed the home. At this meeting there were 2 building supervisors present, my wife and I, plus our real estate agent team members.
When we arrived at home we learned that the electricity had not been turned on. Translation: there was no air conditioning on and it was in the dead of the humid South Carolina summer. As all the windows were closed in the home it was like an oven and it didn’t take long before we all were sweating. The Lennar representatives told us that we would go through the home with blue tape and mark every item that needed to be touched up or corrected. They also indicated that this would be our only chance at creating a “punch list” and that moving forward only items on the list would be worked on. So this was our only opportunity to find items that were not done correctly – during the middle of a work day, in a house with no air condition, during the heat of the summer, and with a scheduled hour for the meeting. As you can imagine, the conditions were not the best for the walkthrough.
We started in the garage and I started asking about things and marking things up. The supervisors told me that the garage was “still a work in progress” and that a lot of work still needed to be done. I thought to myself that it wasn’t really fair to tell us that this was our only chance to make a punch list, but then to turn around and say that this area was still “in progress”. What were we supposed to do other than just trust them? We couldn’t really call out items that technically were not through or finished. That was the first of several red flags throughout the failed process.
As we went through the house we found several items that were not as they should be. There were door casings with no paint at all, door casings with large splinters, several areas that should have caulk that did not have caulk (such as the bathroom sinks), a noticeable bend in the metal in the front door’s casing, thin and uneven paint throughout the house, a metal awning over the bay window that looked terribly crafted, a crawl space door that had sprayed foam through 2 of the 5 gaps in the wood, and the main thing we noticed was a pretty nice hump in the dining room floor and in the kitchen pantry closet that was along the same seam in the floor. The uneven floor signaled a foundation that wasn’t level and that really concerned us.
By the end of the first walkthrough everyone was completely soaked in sweat, hot, and we had gone through 2 and a half rolls of blue tape. Every room in the house literally had blue tape all over it. In short, the home was a long ways from being ready and there was still a lot of work to be done. The following week our real estate agent spoke with a representative from Lennar who guaranteed our real estate agent that “Your clients won’t close until they are 100% happy".
As any home buyer would do we hired a home inspection company to inspect the house. A week or so later we met the home inspector at the house to review his report. He had been there 3 hours inspecting the house by the time we arrived. The good news was that in order to inspect the house the electricity had to be turned on, which meant this time we wouldn’t leave soaked in sweat. The home inspector found several of the items that we had blue-taped but he also found several more items that we hadn’t. He indicated that the vertical seams in the outer trim work needed to be caulked, an item which I had already raised to the supervisor in the first walkthrough and that they told me didn’t need caulk. He also identified areas where the bay windows & fireplace met the roof where there was clearly exposed wood beneath the flared edges. The inspector pointed it out to us and said “If I can see that wood and you can see it then you know that moisture can enter as well as bugs”. Needless to say you don’t need any wood exposed to the elements. The exposed wood was due to a technique Lennar uses in scenarios where bay windows connect back to fascia boards near the roof. This exposed wood scenario was present in several areas of the house’s roof. And since the air condition was on the inspector was able to identify a whistling sound in the air conditioning. The whistling sound represented air either coming through or getting out of somewhere that it shouldn’t and it could result in an increased bill to heat or cool the home.
In the end the Home Inspector created a staggering 85 page report filled with images and lists of issues with the house. I’ve included several images from the report in this blog entry. While we were glad that the home inspector found these issues it didn’t make us feel any better about the home.
By this time the builder had reviewed our punch list and had also received the inspector’s 85 page report. We worked with Lennar to accommodate their request to push back the closing by a week. A week later, when I arrived to this walkthrough I saw the entire front door being removed and there were several vehicles at the home. When I entered the house I learned that we now had a new supervisor. I’m not sure if the old one was fired, transferred, or what happened, but we would be dealing with a new supervisor going forward. There was also a Lennar representative there who appeared to be the manager of the supervisors. He maintained his distance throughout the walkthrough, but I saw him through the windows outside of the house just walking around and shaking his head as if here were saying “No” when looking at the craftsmanship of the home.
In our initial conversations with the construction supervisors our real estate agent let them know that we shouldn’t have even done the 1st walk through when we did. She told them that the house wasn’t nearly in the shape it should have been for a walkthrough. The Lennar team seemed apologetic and the new supervisor seemed to recognize that he was thrown into a difficult situation. While we were there talking one of the supervisors told us “We really do want to deliver a quality product to you all”. He seemed sincere and at the sight of seeing the front door being replaced and then hearing the reassurance from the Lennar crew I felt somewhat better initially.
As we re-walked through the home we again put blue tape on areas that needed to be updated. There were still several of the same areas that needed work. We just, again, put tape back on the same areas where we previously put tape. At one point the new supervisor said that we should just stop the walkthrough and let them revisit the entire house themselves. It was as if he recognized all the general theme of the issues and knew the house wasn’t ready for a walkthrough. Though, after making that comment they continued walking through with us. It was a little odd.
Upon walking into the dining room area it was apparent that nothing had been done with the hump in the floor. This was one of our major concerns that we had voiced to them several times. We called it out to them and continued the re-walk through. When we got to the attic we still heard the AC whistling. We again cited that to them along with the areas outside the needed caulking + the exposed wood above the windows. On this walkthrough the garage doors were up and we were able to see that the “stud” boards that the garage door was bolted to were bowing inward toward the door.
At the end of walkthrough we were in the garage talking with the Lennar representatives and our real estate agents. This time the corporate guy or the supervisor of the construction managers joined us. We again expressed concern over the hump in the floor and the most senior guy piped up saying that the hump in the floor was normal. I questioned him about that and he said that the hump in the floor was within their “tolerance” and that they wouldn’t be doing anything about it. My thought was that if something is within your tolerance then we shouldn’t be able to see it with a naked eye. My wife then spoke up saying that it was unfortunate to hear that Lennar was essentially drawing the line and not going to do anything to make the floor right. Her comment apparently got to the guy’s ego a bit because he puffed his chest out and said started telling us that he had been building houses for over 18 years and that this kind of thing is expected. I laughed out loud at him because he took my wife’s comment personally and tried to tell us how much of a building legend he was. I had never seen this guy before. All I knew was that he showed up, stood around, and was on his cell phone a lot. He could have been our neighbor for all I knew. I guess he wanted instant credibility because he wore work boots. I asked him to get his level and let’s go look at the floor. We went back into the dining room and found that the wall was also bowed. The level we used was a 6 foot level and was long enough to get from one hump to the next so to me it didn’t accurately represent the hump in the floor. They again stated that they would work on the wall, but not the floor.
By the time walkthrough #3 got here we were 3 weeks past schedule on the house. The lender was forced to extend the interest “rate-lock” agreement for the 2nd time and it was costing Lennar money each time. I had also started a new job and had been gone for 10 days which gave the builder plenty of time to fix the items that remained. I figured with me being gone so long Lennar should have no excuse for not having the items taken care of.
This walkthrough was unlike any other and was odd from the onset. We again showed up with our real estate agents and it became very clear that the Lennar sales representative + the construction manager were rushing us through the walkthrough. Why did they want to rush us? We had a punch list and before even addressing all items in one room, the Lennar reps were saying “Ok, what’s in the next room?” For much of the walkthrough I was lagging behind actually spending time looking at the issues they were supposed to fix.
When we continuously called out the thin paint the Lennar sales representative told us that in a walkthrough home buyers are supposed to stand 5 feet away from a wall and look rather then get up close to the wall. This puzzled us. If were are going to make a significant investment in a home I don’t care if I lay down on my back and look upside down. If something is supposed to have paint on it, then it should have paint on it. This goes back to a conversation I had one evening with a painter, but more on that later.
By the time we had gotten upstairs we had noticed the hump still in the floor downstairs + newly scratched up wood in the den area. When the lady told my wife to stand 5 feet away from the wall to review the thin paint it kind of put a line in the sand. We just all stood there in this one room and had an awkward moment of silence. I asked the question “So you’ve known about the punch list for over a month now and there are still issues. Are you going to fix these issues?” At this point the construction manager responded “The house is what it is and we are not making any more updates” and that essentially sealed the deal. At this point we were half-way through the walkthrough and we knew where we were headed. Though we continued walking through the rest of the house.
As we continued upstairs to the 3rd floor the building supervisor accused my wife of “creating new items” that were not on the initial punch list. As you may imagine that comment didn’t go over well. My wife responded “That’s interesting because I have video of all the items from both previous walkthroughs and if you want me to go downstairs and get my phone I can show you the video.” The supervisor responded “No you don’t have to do that” because he knew he’d been caught in a lie. After being pegged the supervisor commented, with a voice of frustration “I can’t be here all day watching people, I have other projects going on as well”. It seems like Lennar either has their supervisors on too many projects or that this guy didn’t really care about providing us a quality home.
As we reached the outside of the house I asked the supervisor about the mud that was on the fascia board above the garage. I called this out to them on the very first walkthrough over a month ago. The supervisor said they weren’t able to get it off. While we were going through the walkthrough a painter had arrived. The painter was Hispanic and I asked him in Spanish if it was possible to get the mud off. He went and grabbed his ladder, climbed it, and took 3 minutes to wipe the mud off. It was that simple. This action essentially meant that in 2 weeks’ time the supervisor hadn’t even attempted to wipe the mud off or had anyone see about it and then lied about it. That was at least 2 lies within an hour from the Lennar crew.
At the “end” of the walkthrough the supervisor asked me “Well what do you think?” What I thought was that the fact that they rushed us through the walkthrough, told us to stand 5 feet away from walls, got caught in multiple lies, and didn’t seem to care about the things that concerned us represented a surface level signal to a much more deeply rooted problem. And that problem was that Lennar wasn’t serious about not closing until we were happy and they weren’t serious about fixing the house. Ultimately they Lennar team knew we wouldn’t buy the house with the issues it had and they also knew they weren’t going to fix them. Consequently any time they spent with us was wasted time and wasted money. It was as if they wanted to hurry and get us through the process so they could start over a new buyer.
By this point in time we had already put down earnest money on the house and even transferred the down payment to the lawyer’s office. We were supposed to do the walkthrough in the morning, sign a release accepting the condition of the house, and close on the home the next day. It was down to the wire. We left without signing papers and told the Lennar reps we needed to think about some things. Of course everyone knew what was happening. The Lennar reps told our agents that they would refund us back the earnest money should we decide to withdraw the offer. This was a sign that they knew they were in the wrong.
We thought long and hard about the home. It was a nice floor plan, in a nice area, and a seemingly nice community in the making. However, we just didn’t feel good about things. You know that uneasy feeling you get in your stomach that’s always an indicator that you’re fixing to mess up… yeah that’s the one we had. The main things that led to our decision to withdraw were the poor quality home (the hump in the floor being number one), Lennar personnel rushing us through the walkthrough, and also getting mixed messages from Lennar throughout the process. They didn’t do a good job at building credibility and good will with us throughout the process.
At least for us, when considering making a large investment such as this, we wanted to feel good about it and have a sense of trust in the company with which we’d be doing business. We didn’t have that feeling and felt that we’d lost faith in Lennar by the time we got to the end of the process. As you just read it had not been easy to get the builder to take care of the items they guaranteed us they would take care of before buying the house… so needless to say, we didn’t have much faith in them coming back to fix things after they had our money.
I will give Lennar credit on the refund. They did refund us the earnest money we had put down on the house. By their paper work, which was heavily slanted towards them, they didn’t have to technically give us our money back. Though, I feel like they knew the house was not quality and thus they instantly agreed to refund us the earnest money. This was one of the few areas in which I’ll say they did right by us.
While my mom was a flexible and gracious host (thanks mom!), her home is about 50 miles from where we planned to live and where my wife works. The logistics were difficult to manage in this stressful time, so we decided to rent an apartment closer to the area we hope to live. As we looked for apartments we visited 3 apartment complexes that were brand new and still being built. This area of town is rapidly growing and thus there are houses, communities, and apartments going up everywhere. As my wife and I visited these apartment complexes I still had the flaws in the home we just backed out of in my mind. As we walked around I wasn’t so much paying the apartment representative attention as I was more so examining door casings, hardiplank implementations, observing where there was and wasn’t caulk, paint consistency, and the overall quality and craftsmanship of the buildings. And as you would imagine, there were things that were done differently than what we had just experienced with Lennar. For example, the caulking of vertical seams of the hardiplank, the same areas that the Lennar builders had just told us that didn’t need caulk. There also were no whistling air conditions, dents in door casings, door casings left completely without paint, paint in the carpet, stair “skirt” boards with dents in them, etc. The list could go on, but the point is that the quality was much better in the apartments we were reviewing than the house we’d just backed out of. After the apartment reviews I knew we had made the right the decision even though it was going to cause us more stress in the short term.
During this process we incurred several costs. We had to pay for the home inspection, movers, I’m still paying on the storage, we had nice gas tabs for our commutes, now we’re paying on an apartment, and the major cost was the inconvenience in time. Rescheduling furniture deliveries with multiple furniture companies, with movers, and with the internet installer all added up to make this a “fun” process.
The experience was unfortunate for both my wife and I and I believe for Lennar as well. We really did like the community, the floor plan, the lot, and the area of town. I believe that Lennar knew the specific house wasn’t well managed from the start and they knew the hump in the floor was an item they weren’t willing to fix because it would eat into their profit margins. I think once they recognized that we wanted something structurally updated with the house they just wanted us to hurry and withdraw our offer because they knew they weren’t going to get down to the foundation and fix it. The longer they kept us around the more money they were losing. In taking this stance they showed their true colors and literally left money on the table. I’m sure they will sell the house, but I’m also sure that house will have problems down the road.
So the process has been unpleasant, but tucked away in the frustrations and disappointments are great lessons to be learned. We learned what “problem areas” to look for when buying a house. We learned the signals and body language from home builders when things aren’t quite right. We learned about the core principals, ethics, and organizational character with which Lennar operates. We learned more about the house buying process in general and are better off for it in the long run. It was like a 3 month education on house buying. I would rather be displaced and incur stress in the short term in exchange for having a problematic house in the long run. Sure it’s not fun, but it would be even worse a few years from now if we had purchased that house.
The Lennar reps statement of “You won’t close until you’re 100% happy” still holds true and it is true because we will close on another house, with a different builder, in a community just up the road when we are 100% happy.