The iCIDR App (link) is currently being reviewed by the Apple Store team. I hope to have it cleared and posted for download soon. This is my first app to go through the process, so I don’t expect it will be smooth. I’m sure there are some things that even the pages and pages of specifications and preparation documents did not fully cover, or at least I didn’t get the intent.
When I have more information about the status of the App, I will be posting it here.
Other applications are moving forward in their development.
Some of these new applications include 2 games, and 3 more technical tools. More information to come when I can talk about it.
Playing with the iTunes app, I’ve scrubbed out my old history and reset the counters, and now I have a top-10 list of my favorite (more played) songs from last week: One of them looks like the same song but one is the video, the other is just the tune.
I’m thinking of making this a weekly addition to my blog. Will I keep up with it? I don’t know, only time will tell. Either way, here is the first installment, from the most to least played last week:
I’ll admit it. I’m an addict. A caffeine addict. I seldom go a day without a 10 or more ‘cups’ (what do they call a cup, 6 oz. or something.. pffft.. rubbish) of coffee. That means I go through beans like a Mexican canned foods factory.
To keep from going broke (and falling asleep any time of the day), I’ve been buying coffee in 3-5 lb. bulk sacks. This also means that these beans are bulk roasted, and the options are limited. Well.. not any more!
After reading one of the famous “Eat this, not this” books, somewhere inside I ran across some tips on herbal enhancements (not *those* kind of enhancements!) you can make to foods to assist with blood pressure, diabetes, stress, etc.
One such suggestion was Cinnamon added to the ground coffee to give it a slightly ‘Mexican Coffee’ flavor. Cinnamon also has some nice benefits including increased brain function, improved blood flow and assists in sugar control. Sounds good to me, so I tried it. And honestly, I like it. A lot. It’s adding a nice variety to my morning, afternoon and evening coffees. And, an upside to all this is, I can vary the flavor based on how many pinches I put in the grounds, or just not use it one of those days I want the full trucker-coffee effect.
Along with the Cinnamon, I’ve experimented around with cloves, and that adds a nice nutty / smokey flavor to the coffee. I don’t do it all the time but again, it provides some variety. Another recent add that sounds totally insane (perhaps….) is chili pepper. Yes.. I’ve added chili pepper to my coffee. In fact the cup in front of me right now has some in it and you can taste the spice! I love spiced foods, so this is what I’d consider a good thing.
So.. there you have it. Bored of your current sack of coffee, maybe try out some variety. Variety is the spice of life, right? Now that you’ve recovered from your guffaws.. you might actually give it a run.
** Disclaimer: I’m not a doctor, herbalist, actor, nurse, parasitologist nor new anchor so… there you have that too
What is that weird little device that seems to serve no purpose? It’s not a laptop, not phone, not a book nor hot plate.
Well, I am about to find out, and those of you following my blog can too. In fact I’m typing this blog entry with one right now. It’s only spent 4 days in my care to date, but so far this weird ‘little’ thing has engendered itself to me, my kids and a couple of other people whom have had some time to really try one out, beyond a little demo at the local electronics retailer
Even if this becomes little more than an eBook reader, I feel good about the investment. I do think this will find a place in my daily technology and recreation routines.
For instance, I can say already that it’s a fantastic way to enjoy a streamed movie or TV show anywhere you have some network but no TV. My first test of this was to enjoy 3 episodes od Galactica, streamed by Netflix to the iPad. I loved it.
I’ll have much more to say about it as I try out some daily business tasks. One of the first will be setting up some sample photography galleries to show prospective clients.
Another will be use of the device in the day to day administration of systems and IT management.
Stick around as I explore the ups and downs of the iPad over the next month or so.
Along with the iPad I am testing out Apples new Apple TV. Both are getting rave reviews in my house right now.
I am pleased to announce that the first Application to roll off the assembly line, is in the final testing phase.
The first in a series of utility applications is soon to be released to the Apple iTunes Application Store, and made available for public consumption.
App 01 is primarily designed for Systems Administrators. Providing a pair of commonly used tools, that come in handy more every day, but are most useful when you find yourself off-site, troubleshooting a networking issues, or in need of providing access credentials to other members of your organization. Having this handy pair of tools, will make your day just that much easier.
More information about this exciting development will be made available on my new Applications Site, located here: Apps by David. Right now, this is the only screen shot available for public distribution.
When testing has completed there will be a lot more information about this nifty little app to go around.
Well, after reading the 37-page EULA, which, for a 37 page EULA was not that tough to stomach, I completed the registration request, sent off my annual fees and now I await to here the disposition of my request for acceptance into the Apple iPod/iPad/iPhone Application Development family.
In the mean time, I continue to narrow in on the first of what I hope to be a few lucrative and useful Apps, and begin physical device testing next week.
It’s almost 4:00PM now, maybe I should go and get some lunch…
UPDATE:
Developer License delivered! It takes a while to get the CSR generated, sent to Apple the the completed Certificate returned. Then it has to be installed and integrated into the IDE/SDK. But once that’s done, I’m deploying apps for test to my iPhone.
The stakes (and motivation) just got a lot higher!
I have been writing code like a mad-man. 8-10 hours per day for the company I work for, then another 6-8 for my own education. Well beyond the ‘Hello World’ apps of just a week or so ago.
Of the apps I’ve worked on in the last few days, this one involved the most code writing. Well mostly copying from examples in the books. Some examples were downright scary! Like one that executed a division of two calculated numbers without doing a check to see if the divisor was zero! Want to crash a program? Divide some number by zero. I’ve not yet any language that takes too kindly to such shenanigans!
So.. back on topic. The App. It’s pretty simple and uses and embedded image (you can’t just pick one and mess it up), but it leverages a bunch of the built in functions in the SDK that are just fantastic.
It’s pretty easy to handle event driving multi-touch gestures in the code. The design of the iPhone itself was groundbreaking.. but now seeing he amazing work Apple developers did in the SDK.. it’s.. jaw dropping. They really designed a full system, not some bolted together pile of .DLLs and crap that competitors doe (ever written an app in the old MFC? NIGHTMARE!).
So.. the education continues. I’m at little bit closer to getting the match functions of my first *real to be published* app spec’d out. I don’t think I’ll need tangent and radian calculations, or need to use the Pythagorean Theorem to solve for the distance between two points in Cartesian space…. but if I do, I now have it well embedded in my brain how to do it.
Upward and onward…. just another day in the life of a professional computer geek working hard to comfortably retire before he dies.
It’s been a really good and really bad few days of writing iPhone Apps based on a couple of books I’ve been reading. About 8 hours were burned slamming my head on the table, because the tutorial was just not *quite* clear enough on the exact actions suggested to accomplish a task.
It was not until I decided to just S-can it (for the 3rd time) and move onto the next task, and finally another after that, when I realized just exactly what the author really meant to say when wiring up a bunch of Objective-C code. Then I also found that I’d checked a checkbox (I have a newer SDK version with an option not shows in the texts) that really hosed me up by creating a TABLE based window when I wanted a NORMAL window. Lesson learned.
No matter what, I have deleted all the old ‘Hello World’ apps and have constructed 3 complete functioning aps that display, overlay and swap images. I picked a few of my favorites from recent work. The results are pretty good! It’s not *easy* to write iPhone apps, but with some planning, and not Boat in the Water shot-gun hacky-do programming.. it can be a pretty quick development cycle.
So the two Apps I intend to release for public consumption are now underway. Once is about 50% complete (I need to port some PERL code I have to Objective-C) and the other is a just a bare-bones framework and a bunch of scribbled notes. No matter.. progress has been made!
For those that were breathlessly waiting for me to publish one of my Sys Admin tools.. here is a little one, that I discussed a couple of weeks back.
It’s the CIDR Block Notation Converter. I use it quite frequently in my line of work. Now, I could of course used many of the other online CIDR translates available. Simply using a tool (like a car, or a computer) often requires little or no knowledge of how it, or one of it’s sub-systems works. But, to fully utilize a tool, you should understand it’s origin, it’s function and often you will find other, unrealized purposes for the tool.
Such as the car. You get your driver’s license (people should also need a computer license, they can also be dangerous to one’s self), plob behind the seat and go to the store. But, if you understand some of the mechanics, you might realize it’s useful for more than getting your latte at StarSucks, or a back of dog bones at the pet store. With a little tweaking, you could use it to cross deserts, mountains, even compete and MAKE MONEY with it.
A little knowledge is a powerful thing, so I embarked on reading the specifications for IPv4 (not ipv6… not going there.. yet, in fact I don’t believe CIDR notation has any meaning in IPv6.. digressing..) and CIDR notation so that I could not only understand it’s inner utility but how to write a converter of my own.
If you found utility in it.. awesome, I hope you post a comment (good or bad) to say thinks.
Finally, an app that has moving parts. Things are starting to get interesting.
This next app is again, a View Application (single view). The tutorial indicates that we’ll just have to play some tricks to give the illusion of the changes.. image overlays as you will.
Now.. finally, some code has to be written, so here is the first block that is from the controllers main header file:
hello005ViewController.h
//
// hello005ViewController.h
// hello005
//
// Created by David DeMartini on 10/3/10.
// Copyright 2010 David DeMartini. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface hello005ViewController : UIViewController {
IBOutlet UILabel *label;
IBOutlet UIImageView *uiImageView;
}
// Tell the compiler about these properties of our little object-method pointers
// nonatomic - let the Apple core code handle the mutability (dynamics) of object
// retain - tell compiler that we reserve the right to fuck up our own meory management
@property (nonatomic, retain) IBOutlet UILabel *label;
@property (nonatomic, retain) IBOutlet UIImageView *UIImageView;
// Inform compiler that a Button Action (IB) will be part of this application
- (IBAction)buttonPressed:(id)sendr;
@end
Next, the Implementation file must be written.
hello005ViewController.m
//
// hello005ViewController.m
// hello005
//
// Created by David DeMartini on 10/3/10.
// Copyright 2010 David DeMartini. All rights reserved.
//
#import "hello005ViewController.h"
@implementation hello005ViewController
// Command synthesis
@synthesize label, uiImageView; // defined that which needs synthesis- (IBAction)buttonPressed:(id)sendr {
// This modifies the text in object pointed to by 'label' to this string
label.text = @"The only thing better than a cute girl, is two!";
// Defining a pointer to the physical Image file (UIImage)
UIImage *imageSource = [UIImage imageNamed: @"top.jpg"];
// Setting the synthsized object image property to the pointer to image file
uiImageView.image = imageSource;
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end
Now that the primary parts of the code are in place, it’s time to assemble a UI. Adding the main text label (at the top – temporary text displayed for design purposes) and the big button that will cause stuff to execute.
Shortly after this however, everything went sideways. It would appear there are more brain-dead errors in the book frustrating my progress. It is forcing me to read more and more of the Objective-C documentation than the book suggested I’d have to. But to fix the errors, I must first gain at least a minimum understanding of their nature.
About 5 hours of work. Most of it burned trying to get the last bit of it working… the image swap. Outside of that everything else worked great. With intent to use a fair bit of image swapping when I put the final first app out.. I’d better get a handle on this.
Update: 4-October-2010
After sleeping on it last night, I rebuilt the entire thing from the ground up again. This time going in phases from the initial background image to the label an the button, compiling and executing. That worked perfectly.
Next part I fired up the screen cast the Professor made of him stepping through the process. It then became quite clear (it was not in the book) that the overlay container does NOT reference the second (upper) image directly, but instead is used simply as it’s container. This (of course, being the smart guy I am) made sense the first time around, and I did (what I though) was exactly that. Created a view with not image. Regardless, I re-created my steps this morning, created the empty container, re-compiled and ran. WORKED! Except it looked like doo-doo because the upper level image was NOT properly sized, and the overlay effect did not work. The book (and the screen cast) made it seem like it would expand as required. IT DOES NOT.
So, I referenced the the image view to the top image so I could size and position it to create just the desired effect, then I removed the image association and re-compiled again. This time.. PERFECTION
And the icing on the cake is that it now has a custom icon image for the application. That was pretty simple too. Once I checked online and found that despite what the book said (image size 320×480 which made ZERO sense..) the icon image size should be 57 x 57 pixels and of the format .png (at least the book had the latter part right).