To continue with my fire theme (see Van fire), I was awoken around 0500 to the sound of some yelling and then some fire trucks. I couldn’t see any fire or smoke from my bedroom window, but could see the trucks and firefighters and neighbors outside. I could hear some talking and at one point chopping and breaking glass. There were so many fire trucks with flashing lights that a red glow came through the curtain, reminding me of a certain Seinfeld episode. They took up like half the block parked along the street. One firetruck parked right in front of our house. They were there for a couple hours probably and kept me awake for at least that long (I often have trouble falling asleep). The event got a brief blurb and video on the channel 5 website.
Toby's Log page 91
Van fire
On my way home from my brothers, I saw a van on fire. Really on fire. The whole thing was enveloped, the van itself looking like a dark skeleton trapped within. The flames would sometimes jump to at least twice the height of the vehicle or flow across the lane width beside it. Firefighters were around it spraying away. The flames would fluctuate out and in, though always completely covering the van. This was on 480 West.
I witnessed another fire related incident recently as well. I saw a large plume of smoke on my way home from work. I was on 77 North and it looked to be a ways away. I had seen smaller plumes before and had wondered what they were, but never investigated. That day though, I had nowhere to be and was in my car, so I decided to find it. I just drove in its general direction until I got close enough to it. It was on the east side of Cleveland. The traffic around it was terrible and it was really slow going in its vicinity. I didn’t get the best view of it, but I did drive down the roads adjacent to it and saw the huge, rolling, multicolored plume of smoke billowing from pretty close and got brief glimpses of the flames and possibly the building. I saw streams spraying into the smoke and flame. The traffic was bad enough that I got my fill looking at it trying to get out of the traffic jam.
And we’re back
I haven’t posted anything on this site since 2011. My “professional” site and related blog took my attention as I focused on my career. In 2011, this site was hosted from my home on an iBook. That server probably was taken down within a couple years of that post when I moved and didn’t bother trying to get it back up and running. By that point, I had my “professional” site on a shared host (Dreamhost) and liked what it had to offer. I no longer had to worry about keeping my IP updated with DynDNS or the downtime from internet outages (common with my Windstream DSL), server problems, router problems, etc.
This site was down for a period, but at some point I migrated it over to my Dreamhost server. I started it at personal.tobymackenzie.com. After a while, I decided it needed its own domain and would be a good candidate for a .name domain, so I bought tobymackenzie.name. The site was still not fully functional though. Some pages and sections were completely broken, and for a while I couldn’t log into the WordPress install this blog is run with.
Recently, I went through and got most things working and threw a more recent, responsive theme (Twenty Fifteen) onto the blog. A few sections still don’t work. I may have lost the data for the almost never used forums. The gallery is run by software that shared photos from my iPhoto library, no longer possible on shared hosting. I may replace these at some point, though I would probably only put the forum back in a read-only mode for posterity.
Anyway, this site is old and outdated. Some of the information is inaccurate. At some point soon, I intend to replace it with something new, probably something built on Symfony. I hope to merge the code-base and some of the content of my “professional” and personal sites, though in appearance and most content they will remain separate to serve their own purposes most effectively. I will leave this site as is on a sub-domain for posterity. As with most of my personal projects, who knows when I will actually get to it, but I have been itching to play with some things that I don’t get to at work.
As to this blog, I hope to get back into the habit of writing for it. I’ve put a lot of focus on my career lately, but miss thinking and writing about some of my other interests. It can be somewhat therapeutic to write down my ideas or about things happening in my life. Lately, my interest in homes and architecture has been coming back. Hopefully, this blog will be seeing me as regularly as it once did and my thoughts will be archived for my future self and others.
Home Lighting: Sun-light, Moon-light
Every room has sun-light and moon-light. Hallways, stairwells, walkways, etc. probably just have moon-light. The sun-light would be the bright bulb(s) in the middle of the ceiling or by work areas to allow tasks to be performed. The moon-light is the much dimmer, low wattage option like a night-light, for moving about and other less visually precise activities.
Continue reading post "Home Lighting: Sun-light, Moon-light"Load Balancers and HTTPS
Until recently, I had no experience working with sites behind load balancers. Cogneato has been moving its sites to Rackspace virtual servers for flexibility, among other things. One of their recommendations that we took was to put our web server behind a load balancer. Even though we haven’t needed multiple nodes behind it yet, it makes it easier to upgrade the server behind it without needing to change IPs in DNS and will allow us to easily pop up another node when it is needed.
This arrangement has gone relatively smoothly except a few issues. The biggest ones have had to do with our HTTPS sites. We run both HTTP and HTTPS sites on the same server. We put the certificates on the load balancer, so traffic goes from the load balancer to the web server over HTTP. Both Apache and code see the request as HTTP as standard methods are concerned. I will discuss some of the problems we had and solutions I found.
Continue reading post "Load Balancers and HTTPS"Kendo UI
We recently acquired licenses for Kendo UI at Cogneato. We have plans to use some of its widgets, most notably the data grid and window, heavily in the admin interface for the new CMS we will be building. We figured that the time we save from not having to build similar widgets ourselves would be well worth the hefty license costs.
Troubles
We have made use of the window in a few sites so far, and the grid on alpleaders.org. I have found that for both widgets, it has helped to build a sort of wrapper around them. The wrapper helps normalize configuration and handles some things that we want to happen for all instances. Some of this was related to problems we ran into with the widgets or features we wanted that weren’t built in.
For instance, the data grid has the ability to be filtered per column client side. A ‘row’ mode provides an input with autocomplete for the values in that column. If you want to use a different mode, however, there is no built in autocomplete feature. You have to create an autocomplete widget for each column. Attaching the same data source as the grid uses results in the same number of items in the autocomplete as there are rows in the grid, meaning if 30 items have a ‘State’ of ‘Ohio’, the autocomplete will show ‘Ohio’ 30 times. I set up a helper to build columns and automatically create a new data source with a single instance of each value for the items in a given column. I’m not sure why, since they already built their own logic for the ‘row’ mode, they couldn’t make that an option for other modes.
Continue reading post "Kendo UI"Additive overwriting of Symfony security configuration
Symfony provides a security component and bundle for managing authentication and authorization in an application. It is versatile and powerful, if not a bit complicated. You can toss as many mixes of authentication and authorization configuration as you want. The important parts of the configuration cannot be overridden or added to by multiple config files, though. This makes sense for one-off applications, where you can be sure that no bundles are messing with your security configuration. However, if you’re building something like a CMS that will be used for multiple sites, where you want the CMS’s bundle to manage security, setting the configuration within the bundle will block the application itself from adding its own configuration.
One way I’ve found to work around this is to have the security configuration set on your bundles configuration extension instead of the ‘security’ extension directly, and have your bundle merge all such configurations and set them on the ‘security’ extension in PHP. If you allow this configuration node to be overridden, any number of bundles can add to it and avoid the “cannot be overwritten” error.
Continue reading post "Additive overwriting of Symfony security configuration"The Happs
New Cogneato people
For a small company like Cogneato, it’s always exciting to bring in new people. New personality, new ideas, new experience, new opportunities. We hadn’t brought on any new people for probably two years, and had even lost a few from our maximum. And most importantly for me, we have only brought in two new developers in my entire tenure, only one of whom remains.
With increasing business and one of our “contenters” (who do client communication, work on content, light development, etc) leaving near the end of the year, we decided to bring on not one but two more people. One of them is a contenter (who has already started) to replace the one leaving, but one is a developer. We just signed her on last week and she will be starting by the beginning of December. She doesn’t have a lot of web experience, at least on paper, but has a masters degree with a focus on programming. It will be nice to have some help and to have another person to discuss development things with. I’m excited.
Continue reading post "The Happs"Parallax Background Images
Recently, I made my first foray into the popular parallax on websites fad. My needs were simple: I needed to make background images move at a different rate than the content that sat on top of them when scrolling occurred. This was the first type of parallax I saw on the web and the most intriguing to me. I figured that there would be a lot of already built libraries to make this easy. Looking through the parallax libraries though, the most popular ones were quite complex or didn’t do what I wanted. I did find a couple of scripts that just handled the background image parallax, but I had some problems getting them working, and they didn’t work with vertically centered images.
In the end, I took ideas from those scripts and some articles to create my own parallax script. With my class library removed, the script would look like the following:
Continue reading post "Parallax Background Images"Backbone: Maintain scroll position when going back
I’ve been spending a lot of time at work recently working on another phone app. Like our other apps, we’re using Phone Gap to build an app with web technologies. Like one previous app, we’re using Backbone, adding Marionette to help this time. Backbone apps are generally SPA‘s that rerender entire pieces of the HTML document when the underlying data changes. This can often be basically the entire content of the document when you change routes.
Because there is no page change, browers don’t typically change the scroll position when you visit a new “page”. So when you click a link at the bottom of one page, you may end up at the bottom of the new page you are loading. It’s common to have apps set the scroll position to the top via JavaScript on page change, like window.scrollTo(0, 0);
.
What happens when hitting the back button varies from browser to browser. Some, like Chrome, try to remember the scroll position for each fragment identifier (how Backbone handles routes by default), while others, such as Safari, do not. When they do not, it can be a usability problem working with lists of items. You might visit the detail page of one item by pressing a link in the list, then go back to the previous page wanting to look at the next one, only to find your place is lost.
Continue reading post "Backbone: Maintain scroll position when going back"