Digital Tool Factory blog - Page 16 of 34 - Backend web development in Atlanta GA Digital Tool Factory blog - Page 16 of 34 - Backend web development in Atlanta GA

The Digital Tool Factory Blog

How to fix problems with asp.net, C# and Request.ServerVariables[“HTTP_REFERER”]

The Problem: I recently built a small web app that tracked downloads.   Part of that was using the referring page.  Somehow, for some reason, the url was not being sent along with the request.

The Cause: After much travail, I finally noticed that the browser was on page https://www.somedomain.com and the link in question was http://somedomain.com/mytrackingapp – i.e. not under SSL, and with a slightly different hostname.  For some reason the referer header is not sent in that situation.

The Solution: Just change the link to https://www.somedomain.com/mytrackingapp and life is good.

 

This post originally appeared on the Stronico blog – with the absorption of Stronico into Digital Tool Factory this post has been moved to the Digital Tool Factory blog

 

This post originally appeared on the Stronico blog – with the absorption of Stronico into Digital Tool Factory this post has been moved to the Digital Tool Factory blog


12
Aug 11


Written By Steve French

 

Free Derek Sivers video on App Sumo

I’ve been a huge fan of Derek Sivers for several years now, and I have seen, listened, or read over a dozen interviews and presentations with him, making me something of a groupie.  Today’s App Sumo deal is the longest presentation I’ve seen of his, and chock full of data and useful advice.

And it’s free!  Go get it now.

 

Editor’s Note

This blog post originally appeared on the Profit Awareness Blog – as that app is up for sale, it has been consolidated into the main Digital Tool Factory blog.


05
Aug 11


Written By Steve French

 

Why you should NOT burn your boats, bridges, or escape routes

I recently came across the blog post “Founders: Burn Your Boats” on Hacker News and found it to be the exact wrong advice.  The logic behind the argument is that by removing your escape routes (boats) you are committing totally, and focusing your attention on your startup company, and you will of course be happier. will be more successful.   A good example would be not doing consulting work while working on your startup.  “Burning boats” works for marriage, where “forsaking all others” is one of the main points of the whole endeavor.

However. if you have a startup company, you’re only trying to make a product.  Total commitment is, at best, a necessary evil, not a virtue.  Sure, you’re showing commitment to other people, but why not just show them an  awesome product?  By “burning boats” the only thing you’re doing is putting yourself in a weaker negotiating position with venture capitalists, and looking good instead of doing good.

 

Editor’s Note

This blog post originally appeared on the Profit Awareness Blog – as that app is up for sale, it has been consolidated into the main Digital Tool Factory blog.


02
Aug 11


Written By Steve French

 

The introvert’s guide to getting out of bank fees

Do you wind up paying bank fees because you’re introverted, shy, quiet, or just too well bred to complain about such things?  There’s no need to pay the fees.  Here’s how to get out of them.

I recently bounced a check because I chose the wrong account in the online bill paying process (I have two accounts with that bank, one of which I rarely use).  I had tons of money in the other account.  I got hit with a $35 fee and a warning that they would hit me with another fee if I did not make the account cash positive in five days.

This fee annoyed me.  I started with this bank  in 1998, how dare they charge me anything?

I decided to get out of the fee, with a modified version of the script from the best personal finance blog ever.  I say modified because the past few times that I’ve used Ramit’s script verbatim it hasn’t worked, so I changed it to fit the situation and my conversational strengths.

Here’s what I did

First I put money in the account to show good faith and put myself on the moral high ground.  Then I waited two days.

Then I called, somewhat awkwardly (I’m not great at this sort of thing, but I’m getting better) and asked nicely for the bank to remove the fee.  The customer service rep very nicely refused.

I then

  1. Explained what happened, telling him how I made an innocent mistake
  2. Told him I have money in the other account, (politely saying I’m not a deadbeat)
  3. Reminded him that I demonstrated good faith by putting money in the account (politely saying I won’t bounce another check)
  4. Told him that I expect the fee to be removed (politely saying I know my position in the relationship with them)
  5. Went into a detailed history of my dealings with this bank for the past many years
  6. Name dropped (I made up the names) the people I have dealt with at the bank over the years

Then I come to a full stop and enjoyed the silence, waiting for him to move next.  Note, I did not end with a question.  This is key.  If you end on a question, people can give you a short answer.  If you bury the question within a wall of statements,  people feel obligated to refute your entire argument (which took me about five minutes to deliver).  Did he check with his supervisor if it was okay to refund the money “Just this once”?  Yes he did.

Why did all of this work?  I emphasized

  • I was a good, loyal client
  • Management notices when long-standing clients leave
  • I was nice
  • I was long winded
  • To tell me no again would extend the call by at least ten minutes, I clearly had all the time in the world and he had no clear reason to hang up on me
  • All it would take to get me to go away is the refund

If they are going to bend the rules for someone, they are going to bend them for me, so they did.

The takeaway:– If you’re long-winded and don’t end with a question you make customer service do more work, which they don’t want to do, so they give in.  Try it out.

PS – the code word for this type of fee forgiveness is “Relationship Refund“.

 

Editor’s Note

This blog post originally appeared on the Profit Awareness Blog – as that app is up for sale, it has been consolidated into the main Digital Tool Factory blog.


20
Jul 11


Written By Steve French

 

What having a daughter taught me about business – Part I

My wife and I (mostly her) had out first child (a girl) five months ago.   For various reasons we take her to lots of doctors, including four specialists, I thought I would share a bit of what I’ve learned on the topic of doctors and specialization by having a daughter.

Observations

  1. You have to wait every time
  2. Doctors do only medical work
  3. Doctors only do a small percentage of the medical work, the majority of the work (blood pressure, measurements, samples, etc) is done by nurses and PAs.
  4. If it can be measured, a doctor does not do it.  They make determinations, not observations
  5. Specialization is advertised,
  6. Generalization is practiced, but not advertised
  7. Everyone is perfectly content to treat you like cattle UNTIL you see the doctor.  Then you are special.  Once the doctor leaves you’re back to being cattle
  8. Everyone we’ve encountered got there via a referral from some other doctor
  9. The dress code (white lab coat) is universally followed
  10. People love going to the best person in the building/city/state/country

What have I learned from the above observations?

  1. Being the best, and being known as the best is the crucial thing, even is what you are the best at is a very narrow field.
  2. Being known as the best requires maintenance, and constant attention to detail.
  3. Your client should only see you in your area of expertise, nothing else, let other people be seen doing the boilerplate work

Much, much more to come..

 

Editor’s Note

This blog post originally appeared on the Profit Awareness Blog – as that app is up for sale, it has been consolidated into the main Digital Tool Factory blog.


15
Jul 11


Written By Steve French

 

How to fix problem with asp.net mvc 3 and json

The Problem: You are attempting to import json data into your web application, but you continue to get weird errors.  Here is what the json data looked like

[{“entry”:{“tags”:[{“name”:”Web Development”,”billable”:true,”id”:117906}],”created_at”:”2011-02-04T01:00:28Z”,”billable”:true,”minutes”:150,”updated_at”:”2011-02-04T01:00:40Z”,”recently_updated_at”:”2011-02-04T01:00:40Z”,”project_id”:40401,”import_id”:null,”url”:null,”time_to”:null,”id”:670893,”date”:”2011-02-02″,”user_id”:12914,”formatted_description”:””,”description_text”:””,”time_from”:null,”description”:”Web Development”,”invoiced_at”:null,”project_invoice_id”:null}},{“entry”:{“tags”:[{“name”:”Web Development”,”billable”:true,”id”:117906}],”created_at”:”2011-02-04T01:04:42Z”,”billable”:true,”minutes”:180,”updated_at”:”2011-02-04T01:04:42Z”,”recently_updated_at”:”2011-02-04T01:04:42Z”,”project_id”:40401,”import_id”:null,”url”:null,”time_to”:null,”id”:670909,”date”:”2011-02-01″,”user_id”:12914,”formatted_description”:””,”description_text”:””,”time_from”:null,”description”:”Web Development”,”invoiced_at”:null,”project_invoice_id”:null}},{“entry”:{“tags”:[{“name”:”Web Development”,”billable”:true,”id”:117906}],”created_at”:”2011-02-04T01:11:13Z”,”billable”:true,”minutes”:60,”updated_at”:”2011-02-04T01:11:13Z”,”recently_updated_at”:”2011-02-04T01:11:13Z”,”project_id”:40401,”import_id”:null,”url”:null,”time_to”:null,”id”:670914,”date”:”2011-01-31″,”user_id”:12914,”formatted_description”:””,”description_text”:””,”time_from”:null,”description”:”Web Development”,”invoiced_at”:null,”project_invoice_id”:null}}]

The Cause: The json is not in the format you think it should be in  While it looks like you would get each record back, you get one solid blob.

The Solution: Just remove the “[{“entry”:” and final “}”.  Ordinarily I wouldn’t make a big deal of this, but it did take me more than 30 minutes to figure out the cause of the problem, so here it is.

 

This post originally appeared on the Stronico blog – with the absorption of Stronico into Digital Tool Factory this post has been moved to the Digital Tool Factory blog


15
Jul 11


Written By Steve French

 

How to fix problems with Coded User Interface Tests

The Problem:

You attempt to create a new Coded User Interface Test in Visual Studio 2010, and you get the following error:

The following package failed to load: C:Users[File Path Goes Here]Microsoft.VisualStudio.TestTools.UITest.Extension.IE.dll. Coded UI Test is now in an inconsistent state. Remove this package and restart Visual Studio to work with Coded UI Test.

The Cause:

For whatever reason, Visual Studio does not copy Microsoft.VisualStudio.TestTools.UITest.Extension.IE.dll into the solution, and but it thinks it did.

The Solution:

Just copy the file over yourself.  Here’s how.

  1. Close Visual Studio
  2. Go to C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDEPrivateAssemblies
  3. Copy the Microsoft.VisualStudio.TestTools.UITest.Extension.IE.dll file into the bin/debug directory
  4. Restart Visual Studio and try again.

No idea on the root cause, but that should fix the problem.

 

This post originally appeared on the Stronico blog – with the absorption of Stronico into Digital Tool Factory this post has been moved to the Digital Tool Factory blog


11
Jul 11


Written By Steve French

 

How much is a client worth to your business?

One feature of my new web app is the evaluation of clients. At the moment I have the following criteria:

  1. Effective rate on their projects
  2. Size of billing
  3. Payment speed
  4. Amount learned on their projects
  5. Fun had on their projects

Am I missing anything? Does anyone have any thoughts on how these criteria should be ranked?

Update: I have more thoughts about how much is a client worth in this newer post.

 

Editor’s Note

This blog post originally appeared on the Profit Awareness Blog – as that app is up for sale, it has been consolidated into the main Digital Tool Factory blog.


07
Jul 11


Written By Steve French

 

How to fix problems with Linq and the Entity Framework

database 2

The Problem:

You attempt to do a query using Linq To Entities and your code does not work.

The Cause:

For reasons unknown, Linq to Entities has different operators than Linq To Sql.

The Solution:

Call your initial query/pull and us .ToList() on it before you run any of the problem operators – this fixes the problem entirely.
I am embarrassed to say that I spent 30 minutes trying to get Linq to Entities to work directly before I thought of that.

Creative Commons License photo credit: Tim Morgan

 

This post originally appeared on the Stronico blog – with the absorption of Stronico into Digital Tool Factory this post has been moved to the Digital Tool Factory blog


24
Jun 11


Written By Steve French

 

How to fix problems uploading images in asp.net mvc 3/razor

The Problem: You are attempting to create create an asp.net mvc 3 page with razor that uses an upload control.  You try to upload an image and all you get is a “server not available” error.  Not very descriptive it it?

The Cause: ASP.net sets the default upload limit very low.

The Solution: Raise the limit, just add this to the web.config file ,

<httpRuntime maxRequestLength=”9097151″ executionTimeout=”3600″/>

That’s it!

 

This post originally appeared on the Stronico blog – with the absorption of Stronico into Digital Tool Factory this post has been moved to the Digital Tool Factory blog


13
Jun 11


Written By Steve French

 




Copyright 2011 Digital Tool Factory. All Rights Reserved. Powered by raw technical talent. And in this case, WordPress.