I recorded this video after coming home from Extreme Pitch. I wanted to give advice on what to do to calm yourself before a pitch. I think I managed to say don’t drink too much coffee and go to yoga, that advice probably won’t work for most people. Sorry guys! Read the rest of this entry »
I Think, Therefore I Tweet #twitterjunkie
I am addicted to Twitter. There, I said it, admitting it is the first step, right? Over the last year, posting to Facebook has diminished, especially as I became more and more fascinated by Twitter. The biggest attraction is real-time news whether it’s what’s trending locally, articles about technology or startups, or conversations about my favorite topics. I love reading and consuming what’s going on, even if I do most of my reading late at night and into the wee hours of the morning.
I love sharing information and the conversations around various hashtags opens my mind to different ideas. During the work day, I limit information consumption so I can power through my to do list and have productive meetings. Yet the minute I get a free moment I’m compelled to check the feed to see what’s going on. Does anyone else feel this way? Hidden obsessive-compulsive tendencies?
It’s ok, if you don’t follow me. I tweet up to a hundred times a day which can be overwhelming to a casual user or anyone new to Twitter.
This is what I post:
- Content from startup or social media events.
- Content I’m reading, using Twitter to “bookmark” since it’s automagically backed up on Backupify.
- Conversations on the following hashtags: #startup, #leanstartup, #smcphx, #socialmedia, #UFC, #phxlatenite
- Random thoughts throughout the day.
- Checkins on Gowalla/Foursquare/Facebook/Google+
Here are the mobile Twitter apps I use for iPhone:
- Echofon – my favorite for browsing the feed and having twitter conversations.
- Smartr – to read articles tweeted by people I follow without the noise of the conversations.
Hootsuite – to schedule articles and shorten links.
- Tweetdeck – to post tweets longer than 140 chars, it’s laggy on my device so I use it very rarely.
- Twitter – I use this the least and can’t figure out why I haven’t deleted it.
What are your favorite Twitter apps? Who else is addicted to Twitter?
Image credit: Steve Rhodes
How to Trash Your Klout Score
I’ve been following a social experiment with great interest over the last couple of weeks. Merlin U Ward challenged himself to become influential over #futzing in Klout in 10 days. He chose a word that wouldn’t be used in normal conversation for his “scientific” experiment. At first, I ignored using the #futzing hashtag on Twitter, hoping it would go away because I didn’t know what it meant. I also had no desire to accidentally have #futzing attached to my name. When I realized I can hide word in Klout I decided to join in on the fun, as a by product my own Klout score raised 4 points over 30 days, even going up 1 point in the last 5 days.
I thought this was interesting since social media junkies are all slightly obsessed with raising Klout. I’ve never been one to follow the pack so why not do the exact opposite for 10 days?
In an effort to see the results of influence within Twitter, I disconnected my Facebook account which resulted in an immediate 2 point drop in Klout. Then I disconnected Linkedin to receive a 4 point drop in Klout to 52 points.
10 Day Plan
- Last tweets before going silent is to moderate the Social Media Club Phoenix Chat on how to separate your professional and personal life online on July 8 from 2:00 – 3:00 pm using the hashtag #smcphxchat
- Respond to @mentions on DM to reduce the number of tweets from my account to nearly zero over the next 10 days. This will be hard since I’ve recently switched to using Twitter to replace instant messaging and text messaging. Most of my conversations are public, I have no secrets.
- Don’t post any content I’m reading to Twitter, post directly to Linkedin.
Report back in 5 days with a screenshot showing the Klout score at that time.
If you want to follow this experiment, don’t forget to sign up to get it delivered to your mailbox or RSS reader. You can also follow on Twitter @CherylMarquez.
Klout score after disconnecting Facebook and before disconnecting Linkedin.
Klout score after disconnecting LinkedIn.
Note: This entire post was written on my iPod Touch in Evernote, then pasted into the WordPress app. This is why the screenshots of Klout are from an iOS device instead of the web.
Startup Weekend Chandler Day 1
Normal people look forward to the weekend to relax and hangout with their friends. Entrepreneurs, go to Startup Weekend and decide to get involved in another exciting project. Friday morning, I woke up, got ready, and packed my purse with everything I would need to work for the day. My gear included; netbook, power charger, phone, iPod, extended battery, headphones, mouse, notebook, pens, makeup, extra t-shirt with geek logo, webcam, mouse, and USB hub. Yes, I did pack all of that in my very stylish black patent leather purse that I had to use because they matched my shoes.
I stopped by Gangplank to drop off the stuff for the Women 2.0 Founder Friday happy hour. Hand Things Down was hosting this networking event for the ladies attending Startup Weekend. Then drove to the Chandler Public Library to attend Startup 101. Startup 101 was a chance to get a primer before the weekend for anyone new to the world of being an entrepreneur. They had panels talking about creating a team, product development, and execution.
I thought the best talk was about building teams and resolving conflict given by Derek Neighbors and Jade Meskill. Here are some of their key points.
- Create a team with a common vision.
- Look at the vision and use that to help guide decisions and conflict resolution.
- Read “Core Protocols” to learn about conflict resolution.
- Ask people at the beginning about their level of commitment.
- You should NOT compromise, negotiate for the best of each idea.
- Teams of developers and business people should sit together to discuss direction as the weekend progresses.
As the evening kicked off, the ladies of Startup Weekend got together for Founder Friday happy hour to get to know each other before we joined the guys. There was some good discussion and an exchange of Twitter handles so we could follow each other during and after the weekend.
When Startup Weekend kicked off, we heard about 28 pitches and then the mayhem of self-forming teams commenced. Two teams stood out for me. One of them was Chow Locally who is creating a locavore website to connect local farmers with consumers and delivering the farm fresh veggies and fruit to the Phoenix Public Market. The second team I was interested in was called Surpriz.es and this is the team I joined for the weekend. Surprizes collects birthday freebies and presents them to you on your special day with Facebook and Twitter greetings. Now you can feel the birthday love all day as you go out and collect your freebies.
So that wraps it up for Day 1. Tomorrow I will be writing up birthday related blog posts for Surprizes and greeting people for their birthdays on Twitter. Sign up for your birthday Surpriz.es.
Getting Press for Your Startup
When we were in the Founder Institute at the beginning of the year, we had weekly milestones for customer development, market research, competitive analysis or product development to keep our business moving forward. The biggest aspiration we had at the time was to graduate. We worked our butts off to polish the pitch deck and get the 0.1 version of the Hand Things Down mobile app done during our last three-week sprint.
We naively thought, once we graduate we can get back to a normal life. Then as you hit each milestone, you take a breath, maybe catch up on a little sleep and start charging towards the next goal. Startups usually go into beta, then start scrambling to get press for their big launch. We were very lucky to receive our first mention in a Mashable article by Jolie O’Dell on the “5 Ambitious Social Good Startups Created in a Single Weekend” while we were busy with the private beta for Hand Things Down.
Before you begin tackling the tactics below to make a splash with your web startup, make sure you create a compelling story to make people want to share what your company’s story with their friends. Then give them a product they can’t live without so they keep telling their friends about it.
Top 7 things you need to do to launch a web startup, according to Robert Scoble on Quora:
- Get a LaunchRock site or create a landing page from WordPress using the LaunchPad theme to collect email addresses.
- Make a blog.
- Make a YouTube video channel.
- Start Tweeting.
- Get a Facebook Page.
- List your company on Angel List (and StartupLi.st, CrunchBase, etc).
- Figure out the 10 journalists you want to have seen your product before you launch.
- Be lucky…added by me
If you are creating your startup team, the ideal combination is to have one person focused on business and marketing while the other founder focuses on development. My primary focus has been on creating content for the blog, writing guest blog posts on websites that our target customer regularly visits and of course social media. Social media includes tweeting regularly on the company Twitter account, posting questions and content on the Facebook page and commenting on Facebook pages our target customer might read AS THE BUSINESS FACEBOOK PAGE. Do all of these marketing activities even before your company releases the product to build your online brand. Social media marketing takes a long time to gain traction. If you don’t have time to create your blog, create a landing page where you can collect email addresses of interested customers that you can market to when you start your beta.
I added number 8 because luck will play a part in how hard or easy it will be to get your company in the news. Since we participated in Startup Weekend, Founder Institute – Seattle, and continue to be active in the startup community, we are sometimes listed on their websites under the Hand Things Down brand. Being listed in the Startup Weekend company directory got us included in the social good article on Mashable.
Lastly, guest blog and begin developing relationships with 10 journalists you would like to feature your company before you need press and establish yourself and your company as a thought leader in your space.
Image credit:Â Chlorine-lim
Memory Management Part I: Objective-C Object Ownership
Proper memory management by an application is key to stability of an application. Doing it incorrectly can cause a myriad of bad things to happen! The side effects can include corrupting application data, crashing the application, locking up use of the computer or device, or even crashing the system or causing it to reboot.  Thus, memory management concerns are always in the back of the mind of every programmer (and, if they are unfortunate, the front of their mind), especially when they learn a new language. This article introduces programming issues related to memory management. In my next article I will get more technical with best memory management practices in programming iOS/CocoaTouch View Controllers.
In older, procedural programming languages that allow memory allocation (non-object based languages such as C or  Pascal), managing memory was pretty straight forward:
[sourcecode language=”c” light=”true”]
int appFunction(int size)
{
int *array = malloc(size * sizeof(int));
â‹®
free(array); // Done with the dynamically allocated memory
} // appFunction()
[/sourcecode]
With object-oriented programming, application designers tend to structure their designs as a fluid interaction of objects. The syntax of object-oriented languages (such as C++ or Objective-C) helps programmers to avoid memory management mistakes easier than procedural languages, particularly in more complex application designs.
Since Objective-C was invented along with the APIs and frameworks used for environments like iOS and Mac OS X, Apple assumes its use with a class hierarchy and, for all practical purposes, a dependence on the NSObject
base-class. This class determines a whole gamut of conventions that are nearly indistinguishable from the Objective-C language itself, so it is hardly worth discussing the use of Objective-C without NSObject
. Â While it looks complex, the important thing is that the allocation and deallocation is handled at well-known locations in the code that will be used for other purposes, the initializer and deinitializer.
[sourcecode language=”obj-c” light=”true”]
– (id)init:(int) size
{
self = [super init];
if (self)
_array = [[NSArray alloc] init];
return self;
} // -init
â‹®
– (void)dealloc
{
[_array release];
[super dealloc]; // Done with the dynamically allocated memory
} // -dealloc
[/sourcecode]
Just as, with C, where you need to internalize when you should call malloc()
and free()
, with Objective-C  you should internalize “object ownership” and when to send retain
and release
. These retain
/release
messages (sending a message is analogous to a function or method call, in other languages) implement reference-counting—a way of keeping track of how many objects are referring to the object.
Internalize this rule:Â If you doÂ
alloc
,Âretain
, orÂcopy
on an object, you own it and it is your job toÂrelease
it… otherwise it isn’t.
In Objective-C, objects allocate other objects for its use or other’s use. These allocations are memory allocations. Cocoa (used in Mac OS X) and CocoaTouch (the Cocoa variant used for iOS) programming frameworks assume a clear understanding of who owns an object. Any number of objects can retain ownership another, either explicitly or implicitly. If one object allocates another, then there is an implicit ownership of that object.
stringOwner
implicitly owns the allocated object, so it must release
it.
[sourcecode language=”obj-c” light=”true” highlight=”1,2,3″]
NSString *stringOwner = [[NSString alloc] init];
â‹®
[stringOwner release];
[/sourcecode]
tempString
does not get ownership, but it can use it for the duration of the method.
[sourcecode language=”obj-c” light=”true” highlight=”1,2,3″]
NSString *tempString = [NSString string];
[/sourcecode]
stringOwner
has claimed ownership via retain
, so it must release
it.
[sourcecode language=”obj-c” light=”true” highlight=”1,2,3″]
NSString *stringOnwer = [[NSString string] retain];
â‹®
[stringOwner release];
[/sourcecode]
If an object is passed as a parameter to another method, it is possible that the other method may claim ownership of the object. In this case, the sender (AKA “caller” in other languages) can release the object if it won’t need it, later.
[sourcecode language=”obj-c” light=”true” highlight=”1,2,3,4,5,6″]
NSString *stringOnwer = [[NSString string] retain];
â‹®
[existingArray addObject:stringOwner]; // array is also, now, an owner
â‹®
[stringOwner release]; // Not needed by this method (or class any longer)
[/sourcecode]
The problem is that, despite Apple’s simple set of rules (or, better yet, the Rules of Thumb), it is often not clear which of their APIs retain ownership of the objects passed in, even by reading the official documentation. I usually find that if I am at all unsure, I need to google it—which often leads to the most reliable advice coming from Stack Overflow.
Apple must know this because they provide their excellent (though not perfect) Instruments tool that works with their Xcode development environment to help ferret out memory bugs and leaks.
Next, I will write about memory usage as it relates to iOS CocoaTouch View Controllers (because that also isn’ve very apparent).
Resources — The Basics
- Application Programming Interface (API)
- Procedural programming languages
- Object-oriented programming languages
- Reference counting
- Software programming framework.
- Apple’s Memory Management Programming Guide: Â Object Ownership Policy. or better yet, Memory Management, Rules of Thumb
- Stack Overflow!. High quality user contributed help forums.
Frameworks: Beyond the Nuts and Bolts

Without frameworks our “big ideas†would still be stuck in the pre-industrial age. —Bill Lee, Berlin, 2008
I have been on a long hunt for a PHP framework so I was going to write up an article about PHP frameworks, but then I thought I should back up a bit and talk about what a framework is and why you should use one.
Software driven computing has existed for over 60 years. In the early days computer programming was performed using long series of numbers to represent the electronic switches tell a computer what to do—computers still work this way. Fortunately no one has to program computers by speaking computer-ese numbers anymore. With that kind of tedious programming, the most advanced programs would be tic-tac-toe games.
But numbers are the nuts-and-bolts of a computer’s operation. Designing a sky-scraper while having to dwell on every nut and bolt of its construction might limit us to working in ten story buildings. It is vitally important in designing complex systems to be able to think at more abstract, level. Programming using numbers quickly led to “assembly language” as mnemonic way of specifying those numbers, then to “third-generation” programming languages (such as C, C++, Pascal, Fortran) which allow programs to be written without regard to the numbers that the computers can actually interpret. This frees software designers to think about problem-solving without being encumbered by the tediousness of the numerical “nuts-and-bolts” needed by the computers that run the programs.
Constructing a building does not occur in isolation; its context involves the skills and machinery of those involved as well as governmental and environmental infrastructure. Over the past 30+ years, the complexity of computing has given rise to very advanced operating systems that define the context in which a program runs. Add to that, the interactions between a program and other programs or data that exist across a network or even the internet and the complexity of issues add to the tediousness of dealing with nuts and bolts. Again, if a software designer has to dwell on the minutia of all these elements, modern complex, powerful software would never be completed.
A framework attempts to encapsulate the complexities of designing and implementing software. A good framework allows software design to occur more abstractly, unencumbered by the tediousness of the contextual details of  the environment. Said a different way, a good framework allows the software designers to focus on the application’s purpose rather than the complexities of implementation.
Software is constructed in layers or components. Encapsulation is one of my favorite concepts in software design and implementation. It embodies the idea that there are specifics at every level or component within the software system that need not be exposed outside that implementation for that level. There are two key side-effects of this: (1) it prevents parts of the program outside the component from messing with or depending on implementation details which leads to (2) each component’s implementation can be changed or improved without fear of adversely affecting use of the component in unexpected ways. This leads to more stable, maintainable products.
Good programmers embed encapsulation within their design and implementation. Many object-oriented programming languages attempt to formalize this concept so that it is easy to do this. Well designed frameworks do the same, “protecting” some parts of the program from complex or variable implementation details.
There are good frameworks and there are bad ones. In a later article, I will discuss some of the issues to consider in picking a framework.
What have been your experiences in using programming frameworks?
I Just Want to Submit a Frickin’ iPhone App to the App Store! (Part 3)
Way back in in “I Just Want to Create a Frickin’ iPhone App! (Part 1),” I walked you through the logistics of joining the developer program (no, you didn’t miss “Part 2,” I have not written it yet). Fast-forward a couple of months and it’s time to submit to the app store! For a company that has built a reputation on simplicity, Apple has concocted an arcane process and made it worse by not providing any complete nor accurate information to help with the application submission process.  Apple’s minimalistic approach is of no help… you often feel like your flying blind as you try to make your way through the process. I’ll try to give some heads-up and clarity if you, too, are going through this for the first time.
So, let’s hope I can remember all that I went through.
.plist
 file, so you can access its “CFBundleIdentifier” (aka “Bundle identifier”) explicitly. The value in the app should be the reverse domain name, for example, “com.handthingsdown.htdmobile”; do not prefix the “Bundle Seed ID” to the bundle identifier in the app.Resources
Posted in Commentary, Technical