Sunday, October 7, 2012
Nginx, Comet, and Symfony2. Fun times.
What have I done?
I've officially found a brand new config that I am testing out. This time it is ngninx with the http push module to accomplish Comet pushes without the need for a full Bayeux implementation, php-fpm using a unix sock, and Symfony2 for the MVC legwork. I am looking at setting up HAProxy on the front end to do load balancing if possible in the future.
So far it has been very painless with a few caveats. I'll be interested to see how the performance of the server can handle the repeated requests. At this point I have the push module running on static html pages. I will be curious to see if php is able to take the requests as fast as I can throw them down the open connection. Initially I'll be connecting to just MySQL dbs and maybe a SQL database occasionally. At some point I'd like to see if I can integrate with Amazon RDS. I am pretty psyched and can think of so many projects this combo could be used for.
Wednesday, August 8, 2012
Expanding on the built-in reporting capabilities in Labtech, ConnectWise, and ShoreTel
The Problem: Reporting as an afterthought
We've all used software that boasts reporting capabilities, but how often do we actually take full advantage of this functionality? Personally, I only look at reporting when I actually need the report. My own time management issues aside, when I finally find the time to jump into reporting, I am usually extremely underwhelmed by the canned reports that are available to me. They are often static, have fields that I do not want, and cannot be exported automatically, on a schedule to a central repository. In an environment such as mine, I want to set up a report once and never touch it again. I want the reports to run on a schedule and I want the results to be automatically published and available via a version history.
I've finally come to the conclusion that many others have settled upon. Sharepoint with SQL Reporting Services is the ideal reporting solution for reporting across various . Software vendors can now officially stop adding reporting "features" into their enterprise software. Just give us access to your SQL or MySQL database, a schema description, and call it a day.
Thought shift: Reporting as an API
Unfortunately, in the MSP world, most built-in reporting "features" either misses the mark completely or is only slightly effective in delivering an overall business intelligence. It would be great if software manufacturers started to think about reporting as an API function instead of trying to bundle it in as part of their software. This is where business leaders in the software development field need to stand up to their project managers. Resist the urge! Do not bundle crappy, limited reporting into your software. Instead, spend your time documenting your database structure. Release this via a developer network and then let others develop easily against your software.
ConnectWise has done this already and are quick to offer reporting services to their customers for a fee. Good for them I say. My question is, why not remove the built in reporting completely. It may serve some people for one off reports, but for anyone who is serious about business intelligence, they will have to look elsewhere. Strangely enough, ConnectWise uses SSRS but misses the mark when it comes to educating partners on how to actually use these powerful features.
Labtech Software has attempted to revamp the reporting in its software package as well, but again, misses the mark as reports are stored inside the software itself and not easily exported. They are often clunky to navigate. Labtech is moving to a more robust web control center so perhaps they will have "reporting" built in to that. One thing is for sure, Labtech being on MySQL and ConnectWise on Microsoft SQL has limited how much the company is able to offer in terms of reporting.
The Solution: Bridging the gap with Sharepoint and SQL Server Reporting Services
Sharepoint with SQL Server Reporting services allows for us to bridge the gap between Labtech and ConnectWise. We can run reports against both MySQL and MSSQL with the same system. All reports can be run on a schedule automatically and dumped into locations on Sharepoint that are immediately accessible to all members of an organization, not just those with access and knowledge to a specific system.
Although the setup time and effort needed to write the SQL queries is much larger than the built in reports, we can actually start to learn about the inner workings of our organization. The metrics are usable, relevant, and you set them up once and walk away.
Using the same system I've been able to write reports against our Shoretel call logs as well. This gives us an idea of call volumes over time and on how our employees are doing on answering calls.
I try to go into a bit more detail later on how exactly this can be implemented.
Wednesday, March 14, 2012
Google Page Speed: Gzip and Caching, order matters
Ok so this may seem pretty simple and obvious, but it is late in the day and my brain is fried so I just wasted time on it. If you're ever using Google Page Speed and it suggests enabling caching and enabling Gzip compression, make sure you enable caching last. I just accidentally enabled caching, then went about enabling Gzip for all of my mime types. The problem is that Page Speed was (correctly) listening to my caching rules and as such, I was fooled into thinking my Gzip rules were not taking. In reality, Gzip was working fine, but the JS and CSS files were cached and thus my browser still viewed them as "uncompressed". Order matters.
Monday, March 12, 2012
GOAT Web Development Stack
Ok, real talk. There's a lot of absolute garbage out there. Defining your core quality tools is made difficult for new developers as they try to sift through the good, the bad, and the ugly.
I've put together what is my current stack of what I consider quality development tools. I've put them all on a server in a file called GOAT (Greatest of all time). It works like a personal repository for my favorite frameworks and plugins.
bootstrap (aka Twitter Bootstrap 2, use bootswatch.com to get a good theme.
bootstrap.colorpicker (Color picker for Bootstrap)
bootstrap.datepicker (Date picker for Bootstrap)
jquery (A no brainer...)
jquery.chosen (Nicely style SELECT elements for easy filter)
jquery.noty (The best jquery notifications plugin out there)
jquery.qtip2 - Excellent Tooltip Library
jquery.tinycon - HTML5 Favicon Manipulation Library
jquery.mobile (Slowly becoming more stable, very neat stuff so far)
jquery.mobile.bootstrap.theme (A great theme for jquery mobile)
jquery.mobile.gmap - Responsive Google Maps for mobile devices
jquery-ui.bootstrap (The bootstrap theme for jquery UI)
jquery-ui.smoothness (A simple, clean theme for JQuery UI)
knockout (Knockout.js is simply amazing MVVM. Do their tutorial and you'll see why.)
sammy (Sammy is a small library that goes well with Knockout.js for handling RESTful eventful javascript)
FuelPHP (FuelPHP is the library I've settled on for doing my MVC and so far I've very impressed)
Foundation by Zurb (I want to use this, but Bootstrap 2 make is tough. I keep going back and forth)
jquery.tokeninput (Token input is nice but development has stopped. In the end, I went with jquery.chosen instead.
That's all I've got for now. I will try to update this as I add to it. Would love to hear suggestions or potential additions to this list of core dev tools/frameworks for web application developers.
I've put together what is my current stack of what I consider quality development tools. I've put them all on a server in a file called GOAT (Greatest of all time). It works like a personal repository for my favorite frameworks and plugins.
Here they are:
bootstrap (aka Twitter Bootstrap 2, use bootswatch.com to get a good theme.
bootstrap.colorpicker (Color picker for Bootstrap)
bootstrap.datepicker (Date picker for Bootstrap)
jquery (A no brainer...)
jquery.chosen (Nicely style SELECT elements for easy filter)
jquery.noty (The best jquery notifications plugin out there)
jquery.qtip2 - Excellent Tooltip Library
jquery.tinycon - HTML5 Favicon Manipulation Library
jquery.mobile (Slowly becoming more stable, very neat stuff so far)
jquery.mobile.bootstrap.theme (A great theme for jquery mobile)
jquery.mobile.gmap - Responsive Google Maps for mobile devices
jquery-ui.bootstrap (The bootstrap theme for jquery UI)
jquery-ui.smoothness (A simple, clean theme for JQuery UI)
knockout (Knockout.js is simply amazing MVVM. Do their tutorial and you'll see why.)
sammy (Sammy is a small library that goes well with Knockout.js for handling RESTful eventful javascript)
FuelPHP (FuelPHP is the library I've settled on for doing my MVC and so far I've very impressed)
Honorable mentions:
Foundation by Zurb (I want to use this, but Bootstrap 2 make is tough. I keep going back and forth)
jquery.tokeninput (Token input is nice but development has stopped. In the end, I went with jquery.chosen instead.
That's all I've got for now. I will try to update this as I add to it. Would love to hear suggestions or potential additions to this list of core dev tools/frameworks for web application developers.
Monday, March 5, 2012
Get Wireshark to Work in Windows 8
I came across very handy fix for Wireshark in Windows 8 was posted today by user thejoefish.
http://www.reddit.com/r/sysadmin/comments/qiwdv/windows_8_and_wireshark_easy_fix/
"For those of you out there experimenting with Windows 8, you were probably upset by the fact that Winpcap won't run. If you do an upgrade from a Win7 box to a Win8 it warns you, and Server 8 just refuses to list any capture interfaces.
It turns out the issue is with the installer only and not NDIS 6.2 or something. Install wireshark but don't run the winpcap installer. Then download Winpcap for x64 separately. Go to the binary, right click and choose compatibility mode. Run it in mode for Win 7 and as administrator.
It installs and run without issue. It will even capture on the new Windows Server 8 built in teaming just fine."
Very handy stuff for those moving to Windows 8.
Friday, March 2, 2012
PsExec with UAC Enable
Christopher Byrd has a nice little write up on using PSExec on UAC enabled machines: http://riosec.com/Windows-UAC-PsExec.
I will be updating my articles accordingly with the proper syntax, but for now, this is my lazy solution.
Wednesday, February 29, 2012
JQuery Mobile Prototyping with Codiqa
JQuery Mobile Prototyping with Codiqa
Codiqa lets you mock up your JQuery Mobile apps without installing any software. My big question here is the pricing. It seems a bit steep considering there are other mockup sites out there that will likely soon add jQuery Mobile to their list of possible mockups. My big question is, why Codiqa over other mockup options? They do give you a nice 30 day trial and you can actually "use" the interface after mocking it up by sliding around all the elements. Worth a look. http://codiqa.com/
Subscribe to:
Posts (Atom)