Skip to Content

Planet Ruins Halloween!!

Php Guy - Fri, 2014-10-03 17:21
Steer clear of   On July 13, 2014 my mother placed an order for the Anna/Elsa dresses that were on pre-order as she wanted to get the Anna/Elsa dresses for my twin daughters (age 2) so we directed her there as the reviews of the company were great and it pricing was great.  We all understood that this was a pre-order item and would not be receiving it right away.  Some time went by and I wanted to follow up with so I asked my mom to forward me the confirmation email so that I could get the order number and follow up with them. So she did and I sent the following email on 8/25/14 to follow up on the order:

I am trying to follow up on the order status for:  myfancyprincess-xxxxx
I know the order was for pre-order, so I just wanted to follow up on the status for the actual items.
On the same day I received the following response:
According to the date you ordered, you are in our third presale shipment which is not due to arrive here at our location until the end of August/early September.  Once we receive the shipment and check it in, then we will ship in the order received.  If there are no further delays you should see a shipping confirmation somewhere around mid to third week of September. 
Thank you for your business and your continued patience.  We sincerely appreciate it!
Excellent, a quick reply and an approximate date of when to expect the dresses.  So some more time goes by and we hadn't received the dresses yet, so I called my mom and asked her if she had heard anything, and she had not.  So on September 23, 2014 I sent a quick email:

I just wanted to follow up on this order as we still have not received anything and it is now the end of September.
Another 5 days went by without any type of response, so on 9/26/14 I sent another email as their phone system says the way to get the  quick response is to email them:
I have not received my order not a response from you this week, not quite sure what is going on.On 10/01/14 still no response, so at this point we call and leave a voice message, as well as send another email:
I am sending yet another email to follow up on this order.  Please its getting close to halloween and it was our understanding that we would have these items by now.....
So no response  for most of the day on 10/02/14 so I send the following email, granted its definitely confrontational, but all I am looking for is a status update:
So yet another week has gone by.  Both my wife and I have called and left messages as well as sent email and NOTHING has been responded to.  This is totally UNACCEPTABLE and I will start a social media campaign soon if I don't hear back.
Also being slightly disgruntled at this point, I figured I would try another contact medium, Facebook.  So I posted a message along the same lines as my previous emails. (Which has now been deleted).  That seem to get their attention and I received the following email reply.
Any details regarding the order are released to the purchaser only.  We see we previously responded to an e-mail but that was a mistake.  Thank you.To which I responded:

Ok please email the purchaser (my mom) with an update and I will contact her to get the details.And they comment on my Facebook feed also that they have responded to my email as well as forwarded the information along to my Mom, great an update, we are happy.  My mom then tells me that the email states the dresses will not be shipping for another 1-2 weeks and then we'll receive them 5 days after that.  They also explained that this is not their fault and that it is the fault of their manufacturer/distributor.  So hey what are you going to do, so we just have to wait.  Well it seems that they didn't like some of the negative comments that some of my friends/family put in the thread that I had started with them.  So they deleted the post.  And sent the following email to my mom, the original purchaser:

We have gone ahead and canceled this order.  Order delays from our supplier are not our fault and we will not continue to be bashed publicly for something that is not out fault.  we just spoke to our supplier yesterday and they are the ones delaying, NOT us.  We have explained this just this morning to your husband (I think they meant son) who also tried to publicly shame us for this.  We explained it respectfully and nicely.  Yet you felt the need to once again publicly bash us for what we already explained was not our fault.  We are just as upset over this as you are and have on more then one occasion expressed out disappointment that we are the ones taking al the blame for the delays that are not our fault.  We also gave you an option to switch to other in stock dresses (Double the cost) and instead of e-mailing us to work something out you once again went on our page to publicly express your disappointment  (My mom, the actual purchaser, never posted on the page, my wife did when she saw they deleted my post to their page).  You have every right to be disappointed, but please understand that we did not cause this.  You have been refunded in full and the order is now cancelled.
Well that got me really pissed as they could have use the opportunity to shine in a customer service issue, and they chose not to.  So I looked back at some of their Facebook posts to see if anyone else was complaining on their Facebook page and found a recent one within the last day or two and commented on that posting stating to be careful what they post as if they find it "offensive" or that it is "bashing" them they would cancel your order.  Since that comment their Facebook page is now completely locked down, no commenting, no liking and no posting.

Ultimately they should have been sending status updates on these pre-order items, thats the right thing to do.  They also could have used the Facebook posts to shine in customer service but chose to hide everything in email.

I am sorry but if you are on social media you must take the good and the bad with it.  You can't just delete/hide everything that you don't like you have to use it as a tool to show everyone else how you can treat the customer with respect.

In the end who suffers, my 2 year old twin daughters, as we are really close to Halloween and no one else has these costumes in their size.  My wife just told me that she let my daughter Sarah know that she might have to be something else for Halloween and she started to cry.

Shame on you!!
Categories: Planet

The case for open sourcing the SQL Saturday Website

Just A Programmer - Wed, 2014-04-09 22:04

My name is Justin Dearing. I write software for a living. I also write software for free as hobby and for personal development. When I’m not writing code, I speak at user groups, events and conferences about code and code related topics. Once such event is SQL Saturday. I haven’t spoken in a while because I became a dad in June. However, my daughter is 9 months old now and the weather is warm. I feel comfortable attending a regional SQL Saturday or two.

So last night I submitted to SQL Saturday Philadelphia. The submission process (I mean the mechanical process of using the website to submit my abstract) was annoying, as usual. What really got me going though was when I realized two things:

  • My newlines were not being preserved so that my asterisks that were supposed to punctuate bullet points were not at the beginnings of lines.
  • I could not edit my submission once submitted.

I like bullet points, a lot. However, I digress. In response to my anger, I complained on twitter that the site should be open sourced, so I the end user could create a better experience for myself and my fellow SQL Saturday Speakers.

Dear @sqlpass throw the sql saturday website source code on github, and I'll send yo pull requests.

— Justin Dearing (@zippy1981) April 9, 2014

I got three retweets. At least I wasn’t completely alone in my sentiment. I complained again in the morning, started a conversation and eventually Tim sent this out this:

@TampaDBA We have no plans to open-source the SQL Saturday website redesign that is already underway. cc @zippy1981 @SQLRockstar @sql_r

— Tim Ford (@sqlagentman) April 9, 2014

So the site was being rewritten, but it would not be open sourced.

Should I have been happy at that point, or at least patiently await the changes? One could presume that session editing and submission would be improved. At the very least, things would get progressively better as there were revisions to the code. If the federal government could pull off the ObamaCare site, with some hiccups, why can’t a group of DBAs launch a much smaller website, with much simpler requirements and lower load?

I’d be willing to bet they will. I’d be willing to bet that this site will suck a lot less than the old site, and that it will continue to progress. I’m sure smart people are working on it, and a passionate BoD are guiding the process. At the very least I’ll withhold judgement until the new site is live.

Despite my confidence in the skills of the unknown (to me) parties working on the site, there are so many hours in the day and only so many things a team of finite size can do. However, a sizable minority of PASS’s membership are .NET developers. Many of them speak at SQL Saturdays. They have to submit to the site. Some of them will no doubt be annoyed at some aspect of the site. Some of them might fix that annoyance, or scratch their itch in OSS parlance, if the site was open source and there was a process to accept pull requests.

I’m not describing a hypothetical nirvana. I’ve seen the process I describe work because I’m submitted a lot of patches to a lot of OSS projects. I’ve submitted a patch to the (not actually open source, as Brent will be the first to state) sp_blitz and Brent accepted it. I’ve contributed to NancyFX. I once contributed a small patch to PHP to make it consume WCF services better. I’ve contributed to several other OSS projects as well.

Perhaps your saying SQL Server is a Microsoft product, not some hippie Linux thing. Perhaps you share the same sentiment as Noel McKinney:

@zippy1981 @sqlagentman @TampaDBA @SQLRockstar @sql_r Open sourcing the site would be inconsistent with the mothership's beliefs

— Noel McKinney (@NoelMcKinney) April 9, 2014

However, as I pointed out to Noel, the mothership’s (i.e, Microsoft’s Editors Note: Noel has stated to me he meant Microsoft) beliefs are not anti OSS. Microsoft has fully embraced Open Source. You can become an MVP purely for OSS without any speaking or forum contributions. One of the authors of NancyFX is an example of such a recipient. F#, ASP.NET and Entity Framework are all open source. Just this week Microsoft Open Sourced Roslyn. As a matter of fact I’ve even submitted a patch to the nuget gallery website, which is operated by Microsoft and owned by the OuterCurve foundation. The patch was accepted and my code, along with the code of others was pushed to So I’ve already submitted source code for a website owned and operated by an independent organization  setup by Microsoft, they’ve already accepted it, and the world seems a slightly better place as a result.

So I ask the PASS BoD to consider releasing the SQL Saturday Website source code on github, and I ask the members of PASS to ask their BoD to release the source code as well.

Categories: Planet

Creating a minimally viable CentOS OpenLogic rapache instance

Just A Programmer - Sun, 2014-02-16 00:52

Recently I’ve been dealing with R and rapache at work. R is a language for statisticians. rapache is an apache module for executing R scripts in apache. Its like mod_perl or mod_php for R. I’ve been writing simple RESTful scripts that return graphics and JSON, and calling them from static html pages. I’ve been also using my MSDN Azure subscription to engage in R self study at home. In the spirit of my last post, I’ve posted the setup notes here to get you stated with a new Azure VM for running an rapache instance. Azure used a special cloud enabled version fo CentoS 6.3 called OpenLogic. However, it seems to work similarly to the vanilla CentoOS 6.4 instances I’ve used at work. So everything should apply there. If something doesn’t work leave a comment.

  • First, CentOS is very conservative, but Fedora makes EPEL to give you a more modern set of RPMs
    • rpm -Uvh
  • Now lets install the packages we need. The kernel will be updated, so we will need to reboot.
    • yum update -y
    • yum install -y vim-x11 vim-enhanced xauth R terminator xterm rxvt R httpd git httpd-devel gcc cairo cairo-devel libXt-devel
    • yum groupinstall -y fonts
    • ldconfig
    • shutdown -r now
  • Now as a regular user lets compile rapache.
    • mkdir ~/src
    • cd ~/src
    • git checkout
    • cd rapache
    • ./configure && make && sudo make install
  • Now lets configure rapache. Create a file called /etc/httpd/conf.d/rapache.conf with the following:
# rapache configuration by Justin Dearing <> LoadModule R_module modules/ <Location /RApacheInfo> SetHandler r-info </Location> AddHandler r-script .R RHandler sys.source
  • Now restart apache.  Make sure it’t working by running  elinks http://localhost/RApacheInfo.

Azure doesn’t configure swap space by default. You’re going to absolutely need some swap space if you’re using an extra small instance. A good howto for that is here.

Categories: Planet

Thoughts on design: What is “good” design

ManChuck - Tue, 2013-12-17 12:19

Well I was hoping my next post was going to expand on my previous post on using Google App engine with Zend Framework 2 but, the past two months have been a little crazy. Instead I want to write about a thought I had on application design. This came about from me idling in the #phpmentoring IRC channel on free node. A question was asked “What is viable to use case for the ternary operator?”. To which I gave the following (real world) example from an application I am working on:

class UserGateway { public function deleteUser($user) { $userId = $user instanceof User ? $user->getId() : $user; if (empty($userId) { throw new \Exception('Cannot delete user with empty id'); } // code to delete user } }

I got a comment saying “Good example of a use case for the ternary operator”. Shortly after, a comment: “I see poor application design” was made. This puzzled me, “Poor design?” I thought “What is poor about that?”. I asked the person what could be done to improve my design. The suggestion was to break up the function into two parts: deleteUser and deleteUserById. Makes sense, the functions become clearer on what needs to be passed into them. My choice NOT to follow was simple: Security. After the “if” statement, an event is dispatched to check various rules to confirm the user can be removed (a suggestion made from Matthew Weier O’Phinney). I explained this to the person, to which the response was: “security SHOULD NOT be inside the gateway rather outside in the controller”. Asserting that this will be a “better” design.

My decision to put security into the gateway was not only design. We did have security outside in the controller for another project, but found holes when developers did not secure the controllers. It was set up so that each action would have to be registered. When a new action was added and a developer failed to register, that developer would either: forget that they had to register, or, just wild card the whole controller. We also changed our security around from and ACL to RBAC due to new business requirements. Since we had a few serious bugs happen due to the wildcard controllers, the decision was made to move security from the controller to the gateway. This provided a Single Point of Entry from the application to the database.

The whole system is under test. If the decision was made to break up those functions, a test for each function and, for each number of rules for user deletion would have to be written. This would dramatically increase development time (something along the line of 20 tests would need to be written). Time to provide a feature my developers are not asking for. My developers know that deleteUser takes a user Id or a user object, and throws an exception on an error. It only takes a quick read into the code to see that behavior as well (we all use phpStorm so following into a function is trivial).

This brings me to my point: design depends on context. A hammer is a “good” designed tool, until you have to use a screw. To that point, compare a screw driver to a screw gun, a screw gun is more efficient. So can’t we argue that a screw gun is designed better? (I’ve ruined furniture from IKEA due to ma failure to read the instructions that had the “no screw gun” icon). London’s Tower bridge is a bad design for NYC. The bridge only allows ships that are 42 meters in height and 244 width to pass through it. Container ships range in height from 44 to 64 meters and a width of 294 to 366 meters.

I am indifferent to the comments made about my design choices from the chat room. Yes I could have deleteUser make the following call $this->deleteUserById($user->getId()); but I did not. I find it better to have as few functions as possible. I prefer if (null === $id) to if (is_null($id)), which both have the same outcome. When I design an application, I take in many factors: average team skill, time to development, time to test. Those metrics to me, make design “good” or “bad”, not what some one said in $gt;insert blog post or book here<. I stand by any decision I make. I am not going to spend the time now to make deleteUserById, since the developers on my team are not asking for it. My security layer is going to stay in the gateway and not the controller due to past experience. I find following good design patterns is more important that the overall design. After all if we all came up with one design for a bridge, they all will run the risk of failing.

Everyone is a critic. They will have something good or bad to say about your choices. Don’t get upset when someone tells you something is poorly designed. Take in all the criticism, review all aspects of the design, then ask if what you built is properly designed. When the Flatiron building’s construction was completed in 1902, it received a lot of negative comments about its “awkwardness” and its “a disgrace to our city, an outrage to our sense of the artistic, and a menace to life”. Is it not an iconic building? How practical and cost effective would it be for us to “improve” its design to something more traditional? Stop worrying about if you code is poorly designed, just write it!

Categories: Planet

Getting started with ZF2 and Google App Engine

ManChuck - Sat, 2013-11-02 05:57

A few weeks ago, I attended ZendCon. I stopped by the Google App Engine booth where I picked up $1,000 for App Engine and $1,000 for Compute Engine. Since Google App Engine now supports PHP, I decided to give it a whirl. Im going to build a ZF2 application that will allow me to keep track of all my Magic the Gathering cards. I am going to use the Compute engine to parse out the HTML from Gatherer which is wizards online library for all the cards.
To get started I had to register my application with Google App Engine. In order to enter the code, I had to head over to a different location that just had me fill out a form and told me that Google would send me instructions on how to continue. So for now I will just use the free quotas.
Next setting up my computer so I would be able to develop locally. Setting up the SDK was fairly painless, I followed the instructions here and fired up the instance like so:

C:\Python27\python.exe "C:/Program Files (x86)/Google/google_appengine/" "--php_executable_path=C:\php\php-cgi.exe" C:\Web\MANCHUCK\Magic-Card-Keeper

And got a number of errors:

WARNING 2013-11-02 06:20:08,349] Could not initialize images API; you are likely missing the Python "PIL" module. INFO 2013-11-02 06:20:08,361] Starting API server at: http://localhost:57533 INFO 2013-11-02 06:20:08,367] Starting module "default" running at: http://localhost:8080 INFO 2013-11-02 06:20:08,371] Starting admin server at: http://localhost:8000 ERROR 2013-11-02 06:20:09,490] The PHP runtime is not available Traceback (most recent call last): File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\", line 219, in new_instance self._check_environment(php_executable_path) File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\", line 193, in _check_environment raise _PHPEnvironmentError(check_process_stdout) _PHPEnvironmentError:
Fatal error: XCache: can't create lock in Unknown on line 0

Fatal error: XCache: failed init opcode cache in Unknown on line 0
The PHP runtime cannot be run with the "Memcache" PECL extension installed

So it looks like Google is not liking Memcache and XCache. So I just had to disable those extensions and all was well and I got my simple Hello World. So now to set up Zend Framework 2.

I created a simple composer.json file and followed the setup of the ZF2 skeleton application. I updated the app.yml file to point to the public folder like the following:

application: magic-card-keeper version: 1 runtime: php api_version: 1 threadsafe: true handlers: - url: .* script: public/index.php - url: /css static_dir: public/css - url: /js static_dir: public/js - url: /font static_dir: public/font - url: /img static_dir: public/img

When I navigated to http:\\localhost:8080, the page loaded but with no CSS, JS or images. Turns out the handler cascades down so I had to move the .* match to the bottom. BINGO! I see the skeleton app. Time to publish to App Engine using appcfg

C:\Python27\python.exe "C:/Program Files (x86)/Google/google_appengine/" -e c******@******.com --passin --no_cookies -R --runtime=php update C:\Web\MANCHUCK\Magic-Card-Keeper

appcfg ran with out any issues and after a short time, I was able to reach with no issues. All in all took about 15 min to get the app running after everything was installed and configured. Hopefully this will help to get people started with ZF2 and Google App Engine. Stay coding my friends

EDIT Realized that I should have put up the live site and the github links:
Live site:

Categories: Planet

Dear Congress...

Das Blog - Wed, 2013-04-10 01:44

 Dear Congres,


Seriously, just FUCKING STOP.
I read this one today and just couldn't believe it guys:


A bipartisan group of senators will introduce legislation to stop the FAA from closing any control towers to meet its sequester cut requirements. "The Protect Our Skies Act, which is co-sponsored by a bipartisan group of 18 Senators, would prohibit the Department of Transportation (DOT) from closing any air traffic control towers, including those that are operated by the FAA," says a news release issued by Sen. Jim Inhofe (R-Okla), one of the bill's sponsors.

(Via AvWeb) So, basically in your infinite stupidity you all went ahead and created a law that imposes budget cuts so draconian that they say it's inconcievable that it woud ever be allowed to go into effect, then when you pull the trigger on this massive bazooka pointed at the nation's head and realize essential services are getting cut as a result your answer (rather than doing something sane like passing a reasonable budget) is to start legislating agencies into an impossible situation: Cut your budget, but don't cut any of the services you provide.   Frankly I'm not a huge fan of the tower closings (a bunch of towers at fields I would like to visit would be going away under the FAA's plan, and I think it would turn the airspace over Connecticut into a marvelous knot), but I'd rather the FAA make those cuts rather than wiping out more center and approach controller positions, eliminating maintenance inspectors, or countless other options with potentially more devastating safety implications than closing 150 towers.   So my dear esteemed congresscritters, I would like to know two things:
  1. Exactly what economics program did you all flunk out of?
  2. Exactly when did you all become experts on the national airpsace system?
  You all seem to be laboring under the misguided assumption that you can cut a budget without cutting services.
I hate to be the bearer of bad news, but the FAA is a service agency, and those services are (a) essential, and (b) provided by people.  If you want them to cut their budget they're going to have to cut the least essential of those services, and that - I'm sorry to say - pretty much means "Towers". The other option is to make deeper cuts to approach control and centers, which at least in my little corner of the airspace system are already working above capacity.   You also seem to think you know better than the FAA how to run the nation's airspace. First you stomp your feet like petulant children and DEMAND that the FAA integrate unmanned aerial vehicles (drones) into the airspace, now you pitch a hissy and try to micromanage the way they deal with this budget crisis you idiots created.   Frankly - you're full of it, and messing with things you don't understand, so PLEASE just fucking STOP - you're making it worse!   Just sit on your hands and resist the urge to try to legislate anything until your term is up and we can replace you with something more useful (like perhaps a stuffed wombat.   No love,   Me.


Categories: Planet

Political Correctness, Sensitivity, and Censorship in the Information Age

Das Blog - Thu, 2013-02-28 21:39


So anyone who knows me knows that I hate censorship in any form.  I'm the guy that wears the "I Read Banned Books" shirt, and considers it to be a required reading list (yeah I'm still working my way through it myself).

So you can imagine I was just a little bit miffed when I found out that @violetblue's talk at BSides SF was apparently cancelled because it offended someone's delicate sensibilities (particularly since they can't have possibly known the content of said talk as it HADN'T BEEN GIVEN YET). I was even a little miffed at @BSidesSF for basically caving to PC-Pressure (unjustly as it turns out, so I'm glad I didn't lay into them), but I just quietly commented on the WTFery of such censorship and moved on...
...until tonight when I read @violetblue's blog post on what went down.

I beg of you, please go read that blog post before you read mine. Violet Blue took the time to compose a sound, well-reasoned retort to the folks that quashed her talk. What I'm presenting here is a seething ball of anti-censorship politically-incorrect fuck-the-world unmitigated rage. Update: Please also read The Ada Initiative's side of the story as well (thanks to Rob for pointing it out, I didn't find it in my 30 seconds of Googling). The Ada Initiative has done some very good things, and they do raise many valid points. I don't think censorship was (or is) their intent, it's just an unfortunate side effect of cultural hypersensitivity surrounding certain issues...


I fully expect this blog entry will piss some people off.  Frankly I don't care. Try not to get any wharrgarbl on me if you feel the need to respond. 


Continue reading "Political Correctness, Sensitivity, and Censorship in the Information Age"
Categories: Planet
Syndicate content

Powered by Drupal, an open source content management system
by Dr. Radut