So last night my daughter goes to make a phonecall. Note she’s standing right on front of me when she does this – and she opens the phone just like anyone else would with a Razr (the little thumb flick open thing they do) and the phone litterally snaps off at the hinge.
So now I’m calling AT&T for the 4th time.
1st time I got hung up on. Why? Because I told the lady I did not want to be transferred to insurance as the phone was not dropped and this was not an insurance issue.
2nd call dropped. Shocker.
3rd call – 20 minutes long and the final person said their systems were updating and they would call me back in 30 minutes. It’s been an hour.
4th call coming up.
Business Customer Service is not fairing well today.
4Th Outcome:
On the 4th call to AT&Tfor warranty support – 3rd transfer during this call10:04 AM yesterdayfrom twhirl
Another transfer … this time to Motorola because AT&T is saying its not covered under warranty because its physically broken.10:26 AM yesterday
Motorola says they won’t do anything but have me send the phone to them to determine if they will fix it under warranty. $75 if they won’t.10:48 AM yesterdayfrom twhirl
No joy. Phone is broken due to MFG. defect. Nobody (AT&Tor Motorola) is willing to send a replacement. AT&T says send it to Moto. and hope.11:00 AM yesterdayfrom twhirl
So- after 2 hours and 17 minutes of actual on the phone time… I get an email from Motorola and some information on how to send my daughter’s phone to them so they can determine if they need to charge me $75 to fix it. The pessimist in me is pretty sure how all of this is going to turn out.
So… in the mean time, my daughter is using my standby T-Mobile SDA. WinMo 6 is just to much power for an 11 year old.
was throwing an error about assigning the values from a distinct Objective-C type. I was able to fake my way around it in another viewController I had a similar issue with, but this time it was a show stopper because when I tried to work with the resulting array later (by adding/removing some stuff from it) I would get another error:
exception: *** -[NSCFArray addObject:]: mutating method sent to immutable object
Well, I was pretty dammed sure I hadn’t asked for my array to be immutable, but I’m guessing somewhere in the code for the persistent object (which I’ll be checking into) there’s a copy happening (or something similar) and its turning the returned data into an NSCFArray. To fix it… I needed to make it a mutable array again:
if (self.commandArray != array){
[self.commandArray release];
self.commandArray = [array mutableCopy];
Of course this may be simple if you’re the programming type… but it drove me nuts for a while!
Had to write a VBScript today to do some funky stuff. Basically we needed to copy in a string of text and then output that text so it would be formatted to go into an email.
Input text looked something like:
x.x.x.0/x Company How Assigned Location
The big issue I had with all of this is that there’s spaces in the company names, spaces in the location, spaces in how assigned… so I couldn’t use a space as the delimter. Well, the code is UGLY… but the general concept is I knew I had certain points where I would have more than one space in a row. After the company name I had 2 spaces. After the How assigned I had 4 spaces. So I could create a couple arrays and delimit using those known values. The only other problem I had was how to get rid of the IP address before the company name… well I solved that by getting rid of all the numbers from the section of the array where the company should be. Again this isn’t pretty – but it got the job done.
window.resizeTo 450,500
dim arrHeaders(3), strIP, strCompany, strStatus, strNewContent
arrHeaders(0) = "IP Block:"
arrHeaders(1) = "Customer:"
arrHeaders(2) = "Status:"
arrHeaders(3) = "IDC:"
Sub SetCopyPaste
strPortal = "From the site:"
strline = CopyPaste.value
arrFields = Split(strLine)
arrFields2 = Split(strline, " ")
cutString = arrFields2(0)
arrFields3 = Split(strline, " ")
strAlphaNumeric = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
For i = 1 to len(cutString)
strChar = mid(cutString,i,1)
If instr(strAlphaNumeric,strChar) Then
CleanedString = CleanedString & strChar
End If
next
strIP = arrFields(0)
strCompany = CleanedString
strStatus = arrFields2(1)
strIDC = arrFields3(1)
strNewContent = strPortal & vbCrLf & vbCrLf & arrheaders(0) & " " & strIP & " - " & strStatus & vbCrLf _
& arrHeaders(1) & " " & strCompany & vbCrLf & arrheaders(3) & " " & strIDC
CombinedText.Value = strNewContent
End Sub
Obviously there’s VBSCRIPT tags at the top and the bottom… and some HTML to format the page.
The attached file you can grab and see the whole thing with the code and whatnot.
Output text looked like this: From the site:
IP Block: x.x.x.0/x – How Assigned
Customer: Company
IDC: Location
So apparently there are only a certain set of known keys for the Windows 7 Beta – which so far I’ve been able to confirm that these are the only ones being generated. Rather than have you waste a bunch of time trying to get a “special” key that’s just for you – here they are:
There are 14 known keys for windows 7 and here they are:
32bit
QXV7B-K78W2-QGPR6-9FWH9-KGMM7
TQ32R-WFBDM-GFHD2-QGVMH-3P9GC
6JKV2-QPB8H-RQ893-FW7TM-PBJ73
4HJRK-X6Q28-HWRFY-WDYHJ-K8HDH
GG4MQ-MGK72-HVXFW-KHCRF-KW6KY
Here's the code. Reposted for my future reference in case the source disappears.
@interface AppDelegate : NSObject {
UIWindow *window;
UITabBarController *tabBarController;
MyTableViewController *myTableViewController;
MySecondTableViewController *mySecondTableViewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) UITabBarController *tabBarController;
@property (nonatomic, retain) MyTableViewController *myTableViewController;
@property (nonatomic, retain) MySecondTableViewController *mySecondTableViewController;
@end
@implementation AppDelegate
@synthesize window, myTableViewController, mySecondTableViewController, tabBarController;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
tabBarController = [[UITabBarController alloc] init]; // creates your tab bar so you can add everything else to it
myTableViewController = [[MyTableViewController alloc] init]; // creates your table view - this should be a UIViewController with a table view in it, or UITableViewController
UINavigationController *tableNavController = [[[UINavigationController alloc] initWithRootViewController:myTableViewController] autorelease];
[myTableViewController release]; // creates your table view's navigation controller, then adds the view controller you made. Note I then let go of the view controller as the navigation controller now holds onto it for me. This saves memory.
mySecondTableViewController = [[MySecondTableViewController alloc] init];
UINavigationController *table2NavController = [[[UINavigationController alloc] initWithRootViewController:mySecondTableViewController] autorelease];
[mySecondTableViewController release]; // does exactly the same as the first round, but for your second tab at the bottom of the bar.
tabBarController.viewControllers = [NSArray arrayWithObjects:tableNavController, table2NavController, nil]; add both of your navigation controllers to the tab bar. You can put as many controllers on as you like, but they will turn into the more button like in the iPod program.
[window addSubview:tabBarController.view]; // adds the tab bar's view property to the window
[window makeKeyAndVisible]; // makes the window visible
}
- (void)dealloc {
[tabBarController release];
[window release];
[super dealloc];
} // lets go of everything else, thats so your program doesn't create any leaks of memory.
@end
So, for the past few days I’ve been pulling my hair out (because I’m not a programmer so this is all new to me). I was having a really hard time with figuring out why even if I had a class named AppDelegate, and I had all the methods I needed in that AppDelegate class I would get exceptions thrown at runtime because I was requesting something my tableview controller that it didn’t have. Drove me bananas trying to figure out why the tableview controller was responding and throwing errors when I knew the AppDelegate class has the right stuff.
Turns out there was one little problem with my understanding of the Model-View-Controller concept – and its this:
You can have as many classes as you want, and you can call them all kinds of things including AppDelegate, but only one of them is actually going to be the app delegate – and it’s the one that has this little line in it:
// notice the part where it conforms to UIApplicationDelegate. That’s the key!
I gleaned this little jem of information in an explanation from (another) Brandon here:
The AppDelegate is basically your application’s controller. It is where execution begins (other than main.m). That line was put into place to access the AppDelegate object. This was to get a reference to the “fruits” array. The “fruits” array was declared inside of our application’s delegate.
Here it is line by line
FruitAppDelegate *appDelegate
// Declaring an object to hold the reference to the applicaiton’s appDelegate
(FruitAppDelegate *)
// We are casting the return value of the next phrase to a FruitAppDelegate
[[UIApplication sharedApplication] delegate]
// This gives us a reference to the appDelegate for the whole application
now that the appDelegate object holds a reference to the application’s appDelegate object, we can access variables that are declared inside of it. This allows us to do things like [appDelegate.fruits count] which will return the number of fruits in the array.
I hope that helps…
So they key to all of this – is AppDelegate isn’t that class you smartly named AppDelegate. The AppDelegate was defined when you started the project.
Lawrence Livermore Laboratories has discovered the heaviest element yet known to science. The new element, Governmentium (symbol=Gv),has one neutron, 25 assistant neutrons, 88 deputy neutrons, and 198 assistant deputy neutrons, giving it an atomic mass of 312.
These 312 particles are held together by forces called morons, which are surrounded by vast quantities of lepton-like particles called peons.
Since Governmentium has no electrons, it is inert. However, it can be detected, because it impedes every reaction with which it comes into contact. A tiny amount of Governmentium can cause a reaction that would normally take less than a second, to take from 4 days to 4 years to complete.
Governmentium has a normal half-life of 2 to 6 years. It does not decay, but instead undergoes a reorganization in which a portion of the assistant neutrons and deputy neutrons exchange places. In fact, Governmentium’s mass will actually increase over time, since each reorganization will cause more morons to become neutrons, forming isodopes.
This characteristic of moron promotion leads some scientists to believe that Governmentium is formed whenever morons reach a critical concentration. This hypothetical quantity is referred to as critical morass.
When catalyzed with money, Governmentium becomes Administratium (symbol=Ad), an element that radiates just as much energy as Governmentium, since it has half as many peons but twice as many morons.”
Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people…
Do you ever think “Ugh, I’d totally write a new blog post, if I just had something to say?” Or maybe, “I’m sick and tired of writer’s block but I don’t know what to do about it!”
Back in March when we announced Gravatar-powered profiles on WordPress.com, your profile page remained private so that only you could access it. Now that you’ve had a chance to update your…
Have you ever come across a blog post that you enjoyed so much you wanted to easily share it with the readers of your own blog? Sure, you can copy and paste the link and perhaps even a snippet of…
Have you been hearing a bunch of hubbub around the web lately about the upcoming release of WordPress version 3.0? I know I have, and it’s always fun to hear what people are saying when we get close…
When Neil Pasricha started his WordPress.com blog, 1,000 Awesome Things, he decided to highlight one awesome thing each weekday to help him keep a positive outlook.
On WordPress.com, you start with a standard WordPress.com domain name for your blog which looks something like this – example.wordpress.com. You then have the option of upgrading to a custom…