Saturday, December 27, 2008
Objective C blocks
Sunday, September 21, 2008
App store observations
- There are still plenty of business issues (mktg, customer service, ip, taxes, etc) to deal with even though Apple takes care of some (distribution, payment, part of taxes). I think there's some opportunity there (publishing houses, co-ops?, consolidation?), but I'm not sure what yet.
- 'mimic' apps are making there way on to the store...sometimes better, sometimes not, often stealing wording and sample data straight from other apps and cross-posting reviews to drive traffic to their apps
- Not a lot of apps that access critical consumer data (i.e. - my bank, my frequent travler info, etc) -- slow-moving large corps [opportunity]
- Surprise market for apps for 'little kids' (parents appear to gladly pay 99c-4.99 to keep a kid busy for some period of time)
- Great market for taking something that's specialized and mechanical (sleep sounds, chess clock, specialized calculator) and making a cheap digital version.
- Still lots of new game concepts that haven't been tapped . . .
- When you have something that's selling all over the world, it's a challenge to keep up with what's going on in all the different country-based app stores, and partitioning feedback, marketing, and sales to drive prioritization.
However, the NDA is still in effect for experienced developers and publishers, though the enforcement seems erratic (some developers are openly violating it in discussion forums, app descriptions, blogs, tweets, etc).
Sunday, July 27, 2008
New apps on the store RSS feeds
Thursday, July 17, 2008
Environment Optimization: Marco Polo + Synergy
- [Both machines] Automatically launch the synergy daemons (on both machines) to share my desk's keyboard/mouse when laptop & desktop are both at home
- [laptop] Launch my work chat client (iChat) at work, and my home chat (Adium) client at home.
- [laptop] Set my iChat status to 'at work' when at work.
- [laptop] Set the default printer appropriately based on location.
Sunday, June 22, 2008
Interacting with GIT
update (July 1): just for comparison, a co-worker sent me one of those wonderful scripting commands for subversion to add all unknown files:
svn stat -u | awk '/^[?]/ { print $NF }' | xargs svn add
Monday, June 16, 2008
Time to GIT you a quick update
$ svn up
U Classes/ClassA.m <-- _awesome_ single letter indicator for
U Classes/AppDelegate.m <-- what happened to the file during the update
U Classes/DynamicSheetDelegate.m
U Classes/AlertDelegate.m
U Classes/SalesTransaction.m
U App.xcodeproj/user.pbxuser
Updated to revision 1028. <-- _short_ summary
$
$ git pull
remote: Counting objects: 58, done. <- Keeps you apprised of comm.
remote: Compressing objects: 100% (48/48), done. <- rather than pauses w/o info
remote: Total 48 (delta 37), reused 0 (delta 0)
Unpacking objects: 100% (48/48), done.
From git://machineB/projectA
f355111..99258fb master -> origin/master <- SHA-1's of from and to
From git://machineB/projectA <- versions on remote repo
* [new tag] aftermemfixes -> aftermemfixes <- New tags on remote repo
Updating f355111..99258fb <- SHA-1's of current to new ver
Fast forward <- on local repo + current op.
Classes/ClassA.m | 25 +-
Classes/AppDelegate.m | 11 +- <- Counters and visual (ascii :)
Classes/DynamicSheetDelegate.m | 2 + <- indicators show amount of
Classes/AlertDelegate.m | 2 + <- change on per-file basis
Classes/SalesTransaction.m | 5 +-
App.xcodeproj/user.pbxuser | 2510 ++++++++++++++++++--------------
7 files changed, 1604 insertions(+), 1176 deletions(-) <- Summary totals
$
Sunday, June 15, 2008
WWDC 2008 wrap-up
Does it GIT any better than this?
# renamed: AllViewController.h -> RootViewController.h
# renamed: AllViewController.m -> RootViewController.m
Saturday, June 14, 2008
The Pragmatics of Innovation
Tuesday, June 10, 2008
It's GIT'ing better all the time.
- I have some source code that I need to share between a desktop and laptop sporadically.
- When I'm working on the code on the laptop (potentially disconnected from any network for several days), I want all the same scm style capabilities (tagging, branching, roll-backs) that I get when I'm working on the desktop.
- I don't want the overhead of maintaining a server securely or paying for a hosted solution.
- I'll only ever be actively developing on either the laptop or desktop at any given time, so merges are no concern [for now].
GIT Recipe #1. One-way pushes between two trusted peers.
Given:
Base dir
|-> Myproject dir
Step 1. Create a GIT repo and index on machine #1 for your project.
machine1$ cd /myproject
machine1$ git init
machine1$ git add .
machine1$ git commit
Step 2. Start the git server component on Machine #1. Warning this allows fully anonymous unauthenticated access, so only do this in a secured LAN environment -- and personally, I would only do it for short sporadic bursts of time even in that environment. For a more secure option (i.e. - apache/ssh/etc), see the git docs (it's a bit more work).
machine1$ git-daemon --verbose --export-all --enable=receive-pack --base-path=/parentof/myproject/dir
Step 3, clone the repo to machine 2.
machine2$ git clone git://machine1/myproject
To do work on machine 1, and send the updates to machine 2
On Machine 1 (origin repo), remove a file and commit the change.
machine1$ vi README.txt
machine1$ git add README.txt machine1
machine1$ git commit
On Machine 2, pull those changes across
machine2$ git pull
To do work on machine 2, and send the updates to machine 1
Make some change . . .
machine2$ vi README.txt
machine2$ git add README.txt
machine2$ git commit
Push those changes over to the origin repo
machine2$ git push
Then, on Machine A [be careful not to have any local changes], to get those changes into your working copy:
machine2$ git checkout -f
Some of the better GIT Resources I've found:
- http://rails.wincent.com/wiki/Git_advantages
- http://www.youtube.com/watch?v=4XpnKHJAok8
- http://www.sourcemage.org/Git_Guide
- http://www.gitcasts.com
- http://www.rockstarprogrammer.org/post/2008/apr/06/differences-between-mercurial-and-git/
- http://cheat.errtheblog.com/s/git
- http://cheat.errtheblog.com/s/git_usage/
- http://ktown.kde.org/~zrusin/git/git-cheat-sheet-medium.png
- http://code.google.com/p/git-osx-installer/
- http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html
- http://google-opensource.blogspot.com/2008/05/develop-with-git-on-google-code-project.html
- http://osteele.com/archives/2008/05/my-git-workflow
- http://ktown.kde.org/~zrusin/git/git-cheat-sheet-medium.png
- http://www.dekorte.com/blog/blog.cgi?do=item&id=2539
Saturday, June 07, 2008
Eric Schmidt - What can others copy from Google, how does his style compare to other CEO's
Great video with CEO Eric Schmidt on a variety of mgmt topics, challenges he faces at google, and how he tries to facilitate the focusing of the energies of passionate engineers and founders. He alludes to what he thinks would be hard for others to copy, and what wouldn't.
Saturday, May 17, 2008
Attaining Agile Mastery -- Forget the word Agile!
Sunday, January 27, 2008
From Tiger to Leopard
- Spotlight performance: +1; (usable!)
- General OS responsiveness: +1;
- Safari Speed: +1;
- Safari Reliability: -1; (has crashed on two different web sites for me so far! -- guess I'll go back to my camino/firefox combo)
- Quicklook: +1;
- Dock improvements (grids and fans): +1;
- Time machine: ?; I set it up, but for me the jury is out on any backup software until I actually need to restore something.
- Haven't found any major app incompatibilities yet.
Don Brown is working on serious Maven 2 improvements
Thursday, January 24, 2008
Links
Options for showing an ajaxy 'wait' indicator in wicket:
http://www.nabble.com/best-practice-for-a-wait-page-td15070792.html
Last.fm announced you can now stream full songs and albums (from all major labels) for free...
http://www.last.fm
Tuesday, January 22, 2008
Wicked Fast Wicket
http://wicket.apache.org/quickstart.html
It uses a maven archetype to generate the project structure, and then you can use the typical mvn eclipse:eclipse or idea:idea to get your project into an IDE. 2 methods for running jetty are automatically built in as well:
- Start.java
- mvn jetty:run.
It's soooo much better than piecing together your first wicket project by hand. Believe me! (These aren't the droids you're looking for)
Now, I'm generally of the opinion that template based code generation can only take an application so far... which is why it's exciting to see extensible code based approaches to sharing behaviors across pages in a web app --> Wicket Web Beans . Next time I build a data-entry app, I'll definitely consider WWB.
Tuesday, January 15, 2008
Wicket is taunting me.
The magic line of wicket code which eludes forums and wiki documentation follows...drum roll...
In your Application's init() method add the following. :
getResourceSettings().setAddLastModifiedTimeToResourceReferenceUrl(true);
Hmph... method names don't get much clearer than that do they?
This causes a 'wicket:lm=######' (lm stands for lastModified) url parm to be appended to package resource url's that are rendered. Now the browser has a url based clue as to when it REALLY needs to refresh from the server.
It's nice that it can be turned on in one place for all generated package resource url's.
Monday, January 14, 2008
Environment Optimization: Eye-fi + Smugmug. One step wireless photo sharing and backup (at full resolution)
Couple that with the fact that I've had 2 external hard drives die in the last 7 years, I'm tired of burning CD/DVD backups ad nauseam, I'm lazy when it comes to posting and sharing photos, and you can see my dilemma
In walks the solution . . .
As I'm setting up the Eye-fi, I see that they've done their homework and offered out-of-the-box integration with 15+ photo sharing sites. One of the sites they integrate with is phenomenal -- unlimited high-res photo sharing (SmugMug). I set my Eye-fi up to automatically create galleries on SmugMug. Here's how it works now:
- My wife and I take some pictures at some event (wedding/family get-together/etc)
- We come home, turn on the camera. The camera automatically, wirelessly (802.11 - no special camera usb cables!) transmits the high-resolution (8megapixel) photos to my computer. During transmission, a new SmugMug gallery is automatically created with a default name like "Photos taken on January 27th, 2007". The photos are automatically uploaded to that gallery.
- If the photos are ones I want to share, I only have to flip a switch on that gallery and give it a name. If they are photos I don't want to share, I simply leave the gallery as is.
Now inevitably, the people that I've explained this process to so far have responded in one of the following ways:
- I back my photos up to an external hard drive.
- I don't trust photo sites . . .they've disappeared on me . . . How do you know they won't go out of business?
- How do they make money?
- That's cool. But still a look a of skepticism -- as if you have to be some tech guru to set this all up.
- They store the full res photos????? (i.e. - How can they afford that?)
- Hard drives have a limited life span. It will die eventually. What happens if your house burns down?
- This is a profitable business focused on a discriminating user. They are a standalone company who's entire consumer base has bought into the specific services they offer. Go read about them and see what you think. Also, you can order a DVD backup of your photos at anytime (about $20). If you use the Eye-fi approach I'm describing, you'll have a backup on your computer anyway. For the more technical, you can mount your photo site as a virtual drive (WebDAV) and drag and drop backup photos to whatever other format you like at any time. They are not free. They are, however, fairly priced. $40/year for unlimited high-res photo storage and spam-free, login-free sharing. They claim the photos are backed up in three different states.
- You pay them $40/year.
- The Eye-fi makes it simple to get the photos there. You still have to learn a little SmugMug to get your sharing settings right, but it's quick once you get familiar.
- You pay them $40/year. Hard disk space is cheaper than it has ever been.
Maybe I'm just a sucker for shiny things, but the almost effortless instant wireless photo sharing and backup at full resolution, for the cost of an Eye-fi ($99) and SmugMug ($40/yr) feels like a heck of a deal.
Environment optimization: iCalViewer
Environment optimization: Single Hotkey to large Terminal
after the post notes: hmmm..looks like blogger downsized my video. doh :)
Saturday, January 12, 2008
Here comes the Tardis
That's right, now you are on the hook. And by you, I mean me.