This is mostly a post for me who sometimes forgets how to do things. But if you own an LG Dare, you may want to create your own MP3 ringtones at some point and it’s nice to know how to do it.
First, make an mp3 version of the ringtone. My experience says use Audacity to take your clip and really boost the audio on it. The reason is once you xfer and compress it…sometimes the sound isn’t that loud as a ringtone on your phone. Save the mp3 somewhere on your computer.
Next, connect your LG Dare to your computer via the USB cable. Go to Settings and Tools, Tools, USB Mass Storage. Let the system connect to your computer. Don’t worry if you don’t see the Windows autoplay popup right away. For some reason it takes like 15 – 30 seconds for it to appear.
Now copy the mp3, and paste it into the my sounds directory on your phone. Disconnect the USB mass storage by clicking Exit on your phone.
Now go to your media center, music and sounds, my sounds, and then click not on the play button of your sound, but the name itself. A popup will come up asking what you want to do with the file. Click Send and send it to your own cell phone number.
When the text message comes in you’ll want to click the little page looking button at the far bottom corner of your phone screen to allow you to “Save as Ringtone”. Click that and you’re all set!!! Happy ringtone making.
Ok, just a quick post today about an issue that I personally encountered that about baffled the living hell out of me. If you have Dreamweaver CS3, this is what happened to me….maybe it’ll help you.
Opened a file…php….and edited it and saved it no problem. Went to another .php file in my same project directory and as soon as I hit the “{” character….I got the dreaded, “Adobe Dreamweaver Has Stopped Working”…and so it closes and the frustration began. This also happened on a few .cfm ColdFusion files as well and in some cases it just involved me clicking in the code region like I was going to type something…but never got the chance as DW closed right away.
So after doing some digging that day, still couldn’t find anything. Thankfully I found the answer which said the error was caused by….Daylight Savings Time!!!! I had been in Arizona for many years and never changed my clocks on my computer since Arizona doesn’t change to and from Daylight Savings Time.
I thought about it and said you know, the problems did happen right on a Monday morning after the clock change…I wonder. So following the instructions I went to C:Users<username>AppDataRoamingAdobeDreamweaver 9Configuration. (or if you have XP or Pre-Vista – C:Documents and Settings[Your username]Application DataAdobeDreamweaver
9Configuration), deleted the WinFileCache*.dat from that directory, then restarted Dreamweaver….in a flash (no pun intended) it was working like a charm again.
I’m sure this has been fixed in later versions but just in case you’re not able to upgrade yet to CS4 and you’re still using CS3 like me, you’ll definitely want to make sure you watch for this in the future. Hope it helps someone else….let me know if it does.

As a business owner in development projects, there are days where I just wonder if I’m doing the right thing and being a good businessperson. I recently had a project which just was one bad thing after another happening, and while it wasn’t really anything I caused, the customer was very upset. It led me to think about why things go wrong in web projects and what can I do to prevent them?
The simple fact is that Web Projects are very much like kids. They each need to be raised, educated, and disciplined in pretty much the same way. However, like kids, not all Web Projects are ever exactly the same since there are always different players involved, new technologies to explore, and plenty of kicking, screaming and crying when things don’t go exactly the way they are supposed to.
I get where my clients are coming from, and you always want to focus on the positive and not the negative for a new project, which is why in my contracts I put a “bugs” clause which basically says that the web is a huge place filled with plenty of facets and the slightest blemish in one of those facets can cause the entire project to be delayed, not function properly, etc. However, I think it’s fair to say that even when I’ve been forced to sign a “sh*t happens” document when going to the doctors, it doesn’t make it any better if things go wrong.
So what can we do? Do we play Scotty from Star Trek and just over-exaggerate the timelines so when things do go smoothly we’re heroes? But that can limit the clients who need things done quickly and also force them into unneeded delays for their business as well. Do we tell them about all the things that can go wrong and hope they sit back and say, “Wow thanks for letting me know all hell could break loose so I can prepare for it?”….not likely. How about just giving up web development and just taking up selling pet rocks at a carnival…those people have it made!
But what happens when the google eyes fall off that night from the rock? Or the little feet bend and snap and now looks like something out of a horror movie? Do you get less upset because its a pet rock? Or do you still get upset just a bit because money was spent and things didn’t go exactly as expected.
I guess the revelation here is that things go wrong in any business no matter what that business is. I’m sure some engineers can weigh in here about how their project got completely screwed up, or even a restaurant owner who unfortunately had a shell from an egg make it into a food critic’s dish.
I think the key here is how you handle those issues as both a consumer and a vendor. If you are a vendor…do what you can to make things right by understanding the customer’s frustration. If you are a customer…if you see someone trying to make an effort to right a wrong (whether its themselves or just in general) work with them to get to the other side. I’ve had great relationships made by hanging in there with a vendor and seeing just how good they do in a crisis situation to make everything turn out right.
So….just like kids….there will be good days and bad days….but it will never change your love or understanding towards them. I think we as a society get too wrapped up in the “me” and really need to step back sometimes and not allows ourselves to take out our frustrations for other aspects of our life on these situations when they present themselves.
Hopefully this will help you as a customer reading this to know we will always work with you as a client to make things right if something should go wrong, or if you are a business owner…know that you are not alone and things can and do go wrong at times. Try your best to rectify the situation and hopefully your customer will see your efforts.
Doug
Before I throw them under the bus completely, let me first point out the positives about PayPal. First, it is a great way for new businesses who are maybe testing out the waters of their business model and don’t want to get locked into all of the hassle of setting up a merchant account through their banks. Second, they do provide a great number of applications that do cater to many of the different scnenarios many online businesses need such as Recurring Payments, Calculation of Shipping based on Area, and plenty more. So for the most part, PayPal is a “good” option for many online businesses.
Why PayPal Needs a Quality Assurance Wakeup Call
I spent literally 4 whole days going back and forth from blog to blog, developer forum to developer forum looking for the answer to this seemingly simple scenario. Create a recurring payment and charge a single payment for items in the same transaction. According to PayPal, this is a piece of cake. Not so young Skywalker.
I started by going to PayPal’s website and discovered their old Express Checkout site had changed quite a bit and some of the familiar code snippets they had available before to perform tasks such as this were gone. I wasn’t that concerned and proceeded to their Express Checkout area which, again according to PayPal, was an easy and great way to perform the tasks I wanted to complete.
PayPal’s Code Wizard…Merlin’s Red-Headed Step Child
Ok so here’s the point of the blog post. This code wizard of PayPal. Now most wizards are pretty friendly. They are supposed to walk you through the basic features of what you’re trying to accomplish and give you a base to start from so you can then maybe go into the advanced features and adjust your code accordingly. Theirs is completely a mind-screw and you’ll just love what I found out.
Help for You Fellow Coders in ASP.net
If you found this article because you got the “Token is Invalid”, or “Timeout Error”, or “Amount is Undefined”, dude…I feel your frustration. You also probably spotted a few articles where these other devs said, all you have to do is call the SetExpressCheckout, change your version to 42 or higher, etc. What they failed to mention was in the PayPal’s own generated code wizard, the version number is not a NVP (Name-Value-Pair) you put into your code…it’s in the .CS code itself way down at the bottom of the friggin’ class.
How I Solved the Issue
Go into the PayPalFunctions.cs the wizard generates for you and scroll down to the buildCredentialsNVPString(). Change the following code from:
codec["VERSION"] = “2.6″;
to:
codec["VERSION"] = “54.0″;
You can see they were off by just a few versions. Now while I understand that the wizard is not made for recurring payments, it would have been nice for them to mention that in maybe the final screen. I would also imagine that this change of version will work for the Express Checkout regardless of whether you’re doing recurring payments or not, but maybe not.
Other Items I Had to Solve
Other things they don’t really point out to you are the things you should include in the NVP for the SetExpressCheckout:
NVPCodec encoder = new NVPCodec();
encoder["METHOD"] = “SetExpressCheckout”;
encoder["AMT"] = “45.00″; //amt;
encoder["RETURNURL"] = returnURL;
encoder["CANCELURL"] = cancelURL;
encoder["PAYMENTACTION"] = “Sale”;
encoder["L_DESC0"] = “12 Month Subscription to Your Store”; // THIS MUST MATCH THE BILLING AGREEMENTDESCRIPTION
encoder["L_BILLINGTYPE0"] = “RecurringPayments”;
encoder["L_BILLINGAGREEMENTDESCRIPTION0"] = “12 Month Subscription to Your Store”; // THIS MUST MATCH YOUR L_DESCn FIELD…IN MY EXAMPLE THE L_DESC0
encoder["L_NAME1"] = “Item Number 1″;
encoder["L_NUMBER1"] = “XY1238″;
encoder["L_DESC1"] = “Some Description”;
encoder["L_AMT1"] = “15.00″;
encoder["L_QTY1"] = “3″;
You’ll notice there’s a few things they exclude in their version that is code generated and such. Now in a separate function I called DoRecurring, I have the following NVP:
NVPCodec encoder = new NVPCodec();
encoder["METHOD"] = “CreateRecurringPaymentsProfile”;
encoder["TOKEN"] = token;
encoder["DESC"] = “12 Month Subscription to Your Store”; //YEP ADD THIS AGAIN
encoder["PROFILESTARTDATE"] = “2009-03-16T13:00:00Z”; //MAKE SURE THIS IS GMT FORMAT
encoder["BILLINGPERIOD"] = “Month”; //Month, Year, etc.
encoder["BILLINGFREQUENCY"] = “1″; // This is the “cycle” so each month the customer will be billed once
encoder["AMT"] = “25.00″;
encoder["L_BILLINGTYPE0"] = “RecurringPayments”; //Has to be this for recurring to work
encoder["L_BILLINGAGREEMENTDESCRIPTION0"] = “12 Month Subscription to Your Store”; //YEP HAS TO MATCH
So there ya go. Now if you’re still a bit confused at the way PayPal’s Code Wizard said things like insert this on your billing and confirmation pages, etc. Don’t let that bother you. Here’s a simple version to do what I was trying to accomplish. Hopefully this helps make it a bit clearer for you:
- Take the image they put in a form and make it an Image Button.
- On click of this image, in your code behind, insert the SetExpressCheckout code to setup your transaction and send the user to paypal to either enter their credit card or log into their PP account.
- After they do this they will be returned to a return URL you specified in the Wizard. Create something called checkout.aspx and in the .cs file in the page load save the token and payerid into session variables.
- Put another button on this page and say something like “Finalize Payment”. (Above this you’d put something like a list of the items or subscriptions they’ll be purchasing….just so they’re really sure about purchasing.
- On the click of that button put in the call to the CreateRecurringProfile function by copying the call as the FinalizeCheckout does.
Hopefully that helps you out a bit. If you have any questions please email me at info[-at-]justicesolutionsllc.com or simply comment below. I’ll really try to respond and help as much as I can because this was really frustrating. I hope a PayPal developer reads this and rather than criticizing the hell out of my code which may not be perfect, really takes this back to PayPal and does a real QA on their code wizard and their manuals. Because there are critical pieces and better explanations needed.
I sat back and said a prayer for a moment since I believed that getting angry was not going to solve my problem. And just like that I had a thought….approach this problem as if I were my 6 year old son using the form. Within minutes I had the problem figured out, put in a quick javascript validator to make sure the values would be entered correctly and just like that…the problem was solved.
So I decided to blog about this since many times not only developers, but business owners will have their websites so complex that it will cause more problems than successes simply because they are not thinking like a user who’s prime source of income would be a nice chocolate chip cookie.
I’ve actually had my son test quite a few of my websites and even though I may have to read the form to him to fill out, he has discovered some issues with my sites and I’ve coded appropriately to deal with them. So the next time you’re ready to launch a new form, or a new functionality of your site, think to yourself….if I were 6 how would I look at this. Or better yet, if you can snag a youngster from your family or your close friends, use them to test it themselves and pay them with a nice big cookie for their good work.
Happy Coding!
Doug.







