Warning: include_once(/home/kosertech/kosertech.com/wp-content/plugins/wordpress-support/wordpress-support.php): failed to open stream: Permission denied in /home/kosertech/kosertech.com/wp-settings.php on line 207

Warning: include_once(): Failed opening '/home/kosertech/kosertech.com/wp-content/plugins/wordpress-support/wordpress-support.php' for inclusion (include_path='.:/usr/local/lib/php:/usr/local/php5/lib/pear') in /home/kosertech/kosertech.com/wp-settings.php on line 207

Pebble Watch Watchband replacement

I’ve had my Pebble a few weeks and the stock band was on the last hole for me since I have a rather large wrist.  I ordered a longer band from Pebble but they aren’t shipping until sometime in March and I didn’t want to wait that long for it to arrive.  Since any standard 22mm band will fit I started scouring the web.

I wanted something that looked similar to the stock band but was long enough to be comfortable for me.  I ended up browsing around on Modena watch and decided on this Seiko style band.  I got the 22mm band and it only took about 2 days to arrive.  I had a very positive experience with the site, it was my first time ordering from them.

I had no trouble swapping the band out although I did have to sand down the replacement band to shrink the space between the retention pin and the watch body.  The new band was beefier than the stock and the pin wouldn’t each the pin holes in the watch.  Once I had done that it snapped right in.  The extra clasp side length and band length has me in the 4th hole from the end and a much more comfortable fit than the stock band.  If your a large wristed person like me I can’t recommend doing this enough.  You can see the comparison of the stock band with the newly installed band in the image below.

Since the clasp ends up resting on my laptop and is metal to metal I might do some searching around for a Velcro cloth style band ala iron man watches and see what I can come up with for another replacement later on.

2013-02-17 17.41.47




Pebble Watch

I pledged the awesome kickstarter project for the Pebble watch.  It took a long while to ship/arrive.  They did do a great job updating backers with frequent emails about progress in manufacturing and design changes and updates.  The watch went through several changes including the decision to make it water resistant and durable.


I’ve been using it for about 5 hours now and have enough experience at this point that I thought I’d post some thoughts on it.  I’m using the watch in conjunction with my android phone, a Galaxy Note 2.

The watch has a few base features worth mentioning:

  • Multiple watch faces (even more through downloads through the app)
  • Music control of your phone using standard AVRCP controls
  • Notifications from your phone
  • Backlight
  • Vibration
  • Caller ID
  • Phone controls (answer/ignore)

So far I’m using the built in gmail notification within the Pebble application and default built in messaging application notifications for SMS.  The email notifications for the default email application don’t appear to be working on Samsung and this appears to be a known problem.

I’ve been extending the functionality of the notifications through the use of Tasker and an awesome tasker plugin called Pebble Notifier.  Pebble Notifier bridges the gap between android and Pebble watch notifications.  It allows you to setup anything in tasker and send the notifications to your Pebble watch.

I’ve been able to setup instant message notifications from trillian out to the Pebble watch as well as a notification if my phone battery gets to 20%.    The picture above is the first IM I had come through.

Overall the watch is awesome.  For the cost it’s hands down the coolest smart watch I’ve played with and I haven’t even explored much in the SDK or other available applications at this point.  Being able to glance down and see the latest email that came in without dragging out my phone is awesome, especially with the note which is a pretty large device.

There are some small problems that I know can be updated with future software updates:

  • Only the latest notification shows up get two in a row and you’ll miss one
  • You can’t recall a notification if you clear it accidentally
  • The vibration is really intense with no adjustment (I’d like it about half as long and half as strong)
  • Scheduled notification disabling, between 11pm and 7am for instance.

In the future I’d also love it if they made the buttons able to trigger other events on the phone.  The up and down are not used in the clock face display so those are good candidates to push events to the phone to trigger things.



ceTwit will not support oAuth

For various reasons ceTwit isn’t going to be supporting oAuth.  There are other windows mobile twitter clients out there that are supporting oAuth.  I haven’t used windows mobile in some time and also have some personal views on how oAuth isn’t really solving the problems that twitter is purporting it as solving.  It was fun writing an app that I was able to use every day but it’s time to end support for it.  As of today the download links will be disabled.


Migrating image links in WordPress database

I have been wanting to migrate the blog from kosertech.com/blog to the root of my domain at kosertech.com.  When I first installed wordpress it wasn’t something I thought I could build out a whole site with and I didn’t think it was really mature enough to rely on.  I had visions of building out a static site in the root of my domain and then leveraging wordpress for ongoing updates.

I think wordpress has come a long way since I originally installed it so I made the move over the last couple of days.  The only issue that was a little tricky to resolve was that all my uploaded images in old posts pointed to the old directory kosertech.com/blog/wp-content/uploads which is a problem as I wanted to do away with that directory since I was migrating everything from inside the blog directory up one level.

I did some digging in the wordpress database and determined that the post content is in the wp_posts table in the post_content column.  The basic job to do is find all occurences of “http://www.kosertech.com/blog/” and replace them with “http://www.kosertech.com/”.  I did some digging and found the REPLACE command that is basically like a string replace from most programming languages.  You supply it the source text (in this case the post_content database column), the text to replace and the replacement text and it goes to work.

You can wrap this all up into the following query replacing my urls with your own and run this directly against MySQL via command line client or through a utility such as phpMyAdmin.

UPDATE wp_posts SET post_content =

REPLACE( post_content, ‘http://www.kosertech.com/blog/’ , ‘http://www.kosertech.com/’);

That query should return the number of rows that we’re updated.  I recommend copying your wp_posts table to a temporary copy and trying the updated on the copy first, and as always backup your database prior to trying any of these things.


What’s the dealio, yo? (or, why write FOSS)

If the post title is lost on you I recommend you stop reading this, go watch Zoolander then come back and read this.  Much like viewers of Zoolander either seem to love it or want their 2 hours back, open source  software seems to be viewed in two ways, there are the authors that love contributing and being a part of it and there are those software developers that don’t seem to see why anyone would want to contribute to something for free.

I’m certainly from the school of like on both.  I think Zoolander is an amazing comedy that gets funnier every single time I watch it (I’ve seen it over 10 times at this point).  I also love writing and contributing to open source software.

I think people generally get started contributing to open source in similar ways.  The software you want is either not available or expensive or you need to extend something that already exists and is open source.  I got started writing free open source software (FOSS) when I wanted a twitter app for my windows mobile phone.  This was ages ago when there weren’t many third party apps especially for mobile and the timeline was restricted to 20 requests per hour.  The great thing is I got to write it exactly how I wanted it.  I got quite a bit of feedback from users, some great and some frustrating.  The nice thing about it being free software though is there’s no motivation to please everyone and if someone wants to have a particular feature added in you can certainly branch the source and add it in your own copy or contribute it back to the original copy.  This is true of most open source projects.

I get asked pretty often what I get out of it.  There are certainly good and bad sides of writing and contributing to open source.  I think your exposed to more of the bad if you write and distribute a piece of open source software for end users than if you are contributing to a larger project.  Lets break down some of the advantages.

Great Stuff:

  • You learn a lot about your desired platform (remember you chose to work on this, free will!)
  • You get an chance to have your source commented on and learn to improve it
  • You can save someone else time who has to do the same thing (make your code reusable!)
  • By reducing others time doing the same tasks the result is everyone has more time for new ideas/software
  • Self satisfaction that you created something you can use and that other people value
  • Increased organizational skills, you become a master of saving yourself time
  • You’ll make new friends with common interests that are brilliant and push you to improve yourself

There are tons of positives beyond this list, but there is also a darker side to open source software that can drive you crazy as a developer.  Lets take a look at some of the downsides.

Suckie stuff:

  • You get a lot of feedback like this -> “This thing sucks” and that’s it, no details or comments on how to improve or fix whatever issues caused the problem.  This is one of the most frustrating things for me as an open source developer
  • You’ll invest a decent amount of time developing things for little or no financial return
  • You have to spend extra time documenting and hardening your software since it’s for mass use
  • If your blazing new ground you might have trouble getting help
  • You’re probably your own support staff

If you’re not currently contributing to an open source project I can’t recommend it enough.  If you’re using open source software and don’t think you have it in you to start something from scratch see if you can contribute to an existing project, there’s always bugs waiting for developers to fix them.  Don’t be afraid to modify an existing open source project for yourself either if you want a new feature it’s pretty likely that others do too.

“For Serious.”

–Darek Zoolander


PlainNote Progresses


Work on PlainNote is continuing. Eventually it will hopefully turn into the PlainNote ecosystem. I’m currently working on a sync library to sync up with a server that doesn’t exist yet. The server side is going to get some help from @funkatron. We have been collaborating on a google doc for the API.

Notable Items about the API

  • Try to be RESTful, but don’t get stupid about it
  • JSON is much better than XML, so only support JSON initially
  • This needs to be open and hostable by others, so don’t use closed-source tech to power it
  • If we’re worried about security at all, we should probably run this over SSL, since we’re sending account identifiers. That does make the backend stuff a little more complex, but doable. I wouldn’t worry about it at first.

Current Methods include

  • login
  • all (get all notes from the server)
  • list (get an abbreviated list of notes from the server)
  • one (get one note from the server)
  • update (update a single note on the server)
  • updatemany (update several notes on the server <future>)
  • delete (delete a note from the server)

In the interest of being open I thought I’d get some information out there on what we’re working on. The ultimate hope would be to have the ability to view and edit notes across any device as well as the web and have it all play nice together. There are a lot of timing issues to think about as far as updates on multiple devices without sync. For simplicities sake I think our current direction is going to be take the latest edit as master and not try to merge.

Good things to come shortly…. (like the below WebOS version of PlainNote)



PlainNote updates and instaPaperLib Rocking updates!

I’ve been doing some more work on PlainNote and added several fixes and features over the past week.  There is now protection code in case you exit the app while editing via the home button or get a call or sms and exit to deal with those your note will be autosaved.

I also changed the mail button on the note detail screen to an action button which now shows two actions.  The original action of “mail” to mail your note and a new action of instapaper which will send your note to instapaper.com.  This is a fast way to get your note online and you can pick it up via their website or in your rss feed if you subscribe to your own instapaper feed.

While creating the code in PlainNote for posting to instapaper I created it as a stand alone library so it could be included in other applications and have open sourced it.  The code is available at github here.  It’s pretty easy to use and you basically instantiate the library and then call one call to send it all to instapaper and you get a Yes or No back indicating if it went alright.

instaPaperLib *IPLib = [[instaPaperLib alloc] init];
BOOL response = [IPLib postToInstapaperWithUserName:@"username"
                                            andBody:@"sample text snippit"
                                           andTitle:@"Your post title"];

The new binary for PlainNote was also submitted to Apple this afternoon and hopefully it won’t be more than a day or so until the app is updated with these new features on the AppStore.


AppStore: Rejected

Posted PlainNote for review two days ago and got the rejection notice last night.  I used an action button to spawn the mail view and this was against user interface guidelines.

Just a quick swap to a text label and resubmitted it.  For future reference if your trying to do something that isn’t an action button don’t use this:

use this:

Or map a custom image to your button which is also possible.  Hopefully in a couple more days it will be available.  I’m encouraged by how fast it got reviewed though that was only about 48 hours vs my previous submissions taking over two weeks.


Exciting things

The Lowdown

I’ve been working for a few weeks on a pretty basic note pad application for the iPhone.  It’s called PlainNote.  It’s got a basic set of functions and should be as usable as the built in note pad that comes with the iPhone.  Initially the functionality will be very basic and allow for standard notepad use.  In the future I plan to expand it with online syncing, change the storage method from plist to a database, perhaps some basic themes (probably just reverse white text on black).

Initial Features:

  • Create / Update / Delete notes
  • Sort by date so newest notes are always at the top
  • In App mailing of notes


I had a goal in mind when I started PlainNote of learning to code something that used a UITableView and to write it in Objective-c.  I’ve always had the intentions of releasing the source for PlainNote so that other people could see how I accomplished certain tasks such as storing dates in a plist, sorting an array by date, in app mail etc…

The app store reviews should be interesting on this one since it is just another note pad.  Hopefully people will get that it is an open source project so other budding developers can see how to accomplish things in Objective-c but I don’t have high hopes for that.  The reviews seem to be a pretty mixed bag on applications.

I submitted it to the AppStore on 2/9/2010 so lets see how long it takes to get there.


Facebook advertiser privacy nightmare

Facebook has chosen to allow 3rd party advertisers to use of your uploaded pictures without permission as a default.  Basically this means that your face/avatar may show up in a singles ad on your friends pages.  It would have been nice if Facebook set the default to “no one” but they have chosen to enable this use of your photos by 3rd parties by default.

Managing your privacy on Facebook is a confusing difficult process and something you would do well to take a look at.  There is a good write up at mashable on this subject.

You can disable the advertisers use of your photos by logging into facebook and selecting Settings -> Privacy, then choose  News feed and Wall.  There are two tabs there select the Facebook Ads tab and select “no one” and click save.  Your photos will now not be shown in 3rd party ads.

Picture 2