Hello, I'm Sig.  I develop cool things.

Some Cool Coding Tips

I was doing some nighttime programming for fun, and came across a bit of code I had to look up (i.e. search on the web).  In C#, I was familiar with ternary operators.  I love using them when appropriate.  It turns 3 ~ 5 lines of code into one pretty, simple statement.

When I came across a coalescing operator, my head exploded (ok, that may be a bit over-the-top…).

Coalescing operators have a fantastic usage (particularly in C#) with nullable objects.

Example time!

Lets say we’re posting data to a form.  The form contains a name (which is an optional field) and birth year (another nullable field).

Assuming we have a “Person” object, that takes a string and integer for a birthdate, we could code that up as follows to handle the null-case of those objects being passed in.

 

public void doThis(String? name, int? birthyear)

{

Person p =  new Person();

  // option #1 - if statements

  if(name!=null)

p.name=name;

  else 

        p.name = “Bob”;

  if(birthyear != null)

        p.birthyear = birthyear;

  else 

        p.birthyear = 1902;

  // option #2 — ternary operators

  p.name = name!=null ? name : “Bob”;

  p.birthyear = birthyear != null ? birthyear : 1902;

 

  //option #3 — coalescing operator

  p.name = name ?? “Bob”;

  p.birthyear = birthyear ?? 1902;

}

 

How about that for a super quick example? I’m not sure how useful this is, but it seemed like a cool little tidbit of information to come across that I was previously unaware of.  Maybe it’s time I start reading up on the changes between C# 3.0, 3.5 and 4.0.   If I start doing that, I’ll need to look in the differences between Java 6 and 7 (I have 5 and 6 down pretty well), and don’t get me started on PHP 4 and 5…

Ah well, that’s all.  Hope someone on the interwebs finds this useful!

$100 in 100 days. Making Money on Android.

This is the first in what I hope to be a series of three blog posts discussing monetization on Android.  I recently attended O’Reilly’s Android Open Conference held here in downtown San Francisco.  It was a great event with plenty of fantastic speakers.  One speaker presented 50 business models in 20 minutes.  While the talk was great, I thought I’d try and bring about a slightly different focus on app developers monetizing their hobby apps.

I’ve been curious about making money on the Android marketplace for a while, and have read a few other blogs and articles about such information.  I’m inclined to start fresh.

The question I’m setting out to answer is: what does it take to make $100 by making an Android application.  I plan to launch three different types of applications.  Each of these applications will be in a distinct category within the marketplace.  Each app will also be infused with as much analytical information as I can possibly gather.

The soul purpose of the analytics is so that I can share some pretty charts and graphs about what my apps users are doing.  What types of users respond to advertisements, what types of users are willing to pay an up-front fee for apps, and what in-app purchase mechanisms work well for an audience, etc.

If this were a scientific test, I would do three different apps in three different categories and do a comparison based on that information.  Due to the fact I’m only composed of two hands and one brain currently, I’ll be a little bit more limited than a team of developers looking to answer my rather basic questions (for only $100, too). 

My hypothesis is that in-app purchases will be more difficult (i.e. not as fruitful) on the Android Marketplace than the Amazon Marketplace.  Further, I  think advertisments inside of apps will be almost useless in terms of monetization.  Lastly, I think the freemium / premium app versions will be the best bet.  Give a user a decent ad-enabled free app, and remind them that they would really like to drop a buck or two for the ad-free version at a later date.

I started some small development on these apps this weekend, and after I get some UI help from a friend, will launch them with Google and Flurry Analytics.  From there, I’ll wrap the apps up, launch them in the marketplace, and report back accordingly.

Moving from paperback to eBooks... Is this the future?

I’ve recently decided that I wanted to minify my life, much like one might minify javascript on a webpage (really bad example, but they both use the word minify which works out well).  I got the idea from the “100 things challenge”.

My parents consider me to be a minimalist already, but that’s part of what comes with living in a city.  People in cities tend to be more conscious about the space they live in because the dollar per square foot ratio is a bit higher than rural areas. The question I started to approach was how do I run a minify operation on my life, such that I can really understand what a functional person needs in order to be satisfied in the technology age.  My motiviations are purely economical.  It’s not that I’m looking to save money by selling or donating a ton of junk, rather I’m trying to see a business model that might be interesting to a recent college grad with his or her first apartment and job after leaving school.

I’ve noticed advertisements to rent a neighbors call for a few hours which directly competes with the City Car Share and Zip-Car services in the bay area.  Spotify launched in the U.S. and I’ve noticed facebook friends who I don’t view as nerdy/geeky to be using subscription-based streaming music services to get their music fix (e.g. Rhapdsody, Spotify, Rdio, etc.).  I also took a class in grad school in understanding technology and the services industry a good while back and have found the subject to be a bit fascinating.  I think the world is moving from product to services, and technology will be a major player in that movement.

What does this have to do with moving from paperback books to eBooks?

This is a step that I think the next generation won’t be making.  The future won’t have people moving from paperback to eBooks, they’ll already be using tablets to buy, rent or checkout books, magazines, and newspapers.  The concept of buying a physical book is going to foreign to many kids in the very near future.

I’m willing to bet that the government will take a look at public education in the near future and realize it’s cheaper to get kids new textbooks by giving them a tablet and sending them an eBook version rather than buying, shipping and re-using (outdated) textbooks year after year.  These kids will be looking at the economy in a vastly different way than the likes of anyone not having experienced this.  This group of individuals will look at the world wanting to understand what method is easiest to consume the content they’re looking to utilize.  Before this generation of kids, we decided we liked a particular magazine and bought a subscription which was delivered to our door every month.  This group of individuals may buy a service which allows them to look at the last 50 issues of any one of their favorite magazines and new ones as they come out on a digitial device.  That’s a good bit different from the way we do things now.

I am a massive fan of the subscription economy, which I plan to blog a whole lot about in the very near future, and think that’s the way our entire society will move towards.  It will be a massive shift in focus from a product / ownership-based economy in the short future.

As I started looking through my collection of books, I realized that some I’d read and kept on a bookshelf with no intention to read them again.  Others were textbooks from my undergrad or grad work that are very specific in nature and likely nothing I’d need that I wouldn’t be willing to buy again should I need a copy in the future (assuming a digital copy wouldn’t be available at that point in time).  A small set of books I realized I couldn’t part with.  These are books that an author had signed or had some special significance to myself.  The last set of books were mostly technical reference books that had an e-book version I could replace it with.

To help get the ball rolling, I shipped all the books to Amazon (including a few DVD’s and Blu-Ray’s I didn’t have a need to watch anymore).  The “Fullfillment by Amazon” feature is fantastic.  Ship your books to them, set a price, they notify you when something sells.  That way, the books are immediately removed from my life, and I get some money from month to month as they sell.  Granted, Amazon takes a bigger chunk out of the profits in this scenario than if you were to sell it yourself on Amazon or trade it in to a bookstore.  I found this to be the easiest method for me.

Step two was to order a kindle (I opted for a Kindle Fire, but think I may get an e-ink version as well).  When my Kindle Fire arrives, I’ll be purchasing replacements of a few books I know I’ll need (as many raw PDF copies as possible for backups and portability to other devices) and only buying new eBooks through early March 2012. 

I believe this will be enough time to evaluate what life is like when getting rid of most of my technical books and opting for electronic copies.  Part of this results in me getting rid of my bookcase/desk which became a storage haven for most all books, and cleaning out a few dust-balls collected behind those pieces of furniture.

I’ll let you know how it goes in a few weeks when my Kindle device arrives!

Updated website + more blogs

I’ve cleaned up my act.  It’s time that I regularly blogged about everything going on in the (technology) world that I care can gripe about.

I hope you enjoy my new site!  I plan to post multiple times a week on Android and iOS development, other Joomla projects I’m still working on, and how to take over the world (in 6 ~ 10 steps).

My resume is horribly out of date, but no matter! I pledge to update that within the next decade as well (it’s a bit farther down on my to-do list).

With a little luck, some of the stuff I blog about my be of interest to the other software engineers floating around the world.  I’m totally pumped to be attending O’Reilly’s Android Open 2011 conference.  Hopefully I’ll get to learn a heck of a lot that I didn’t over the three days.  A couple of my coworkers at SendMe are going as well, so it should be a pretty fun affair for us to see what the rest of the android mobile app world is doing.  At least those that have decided to trek to San Francisco.

Aside from that, I plan to post some new music recordings here and there on the site as I find time, and also post pictures of my adorable little nephews as I get new pictures in.  In addition I get some pretty nice photos from my other sister in Beijing, China (which I’m planning to visit early next year), which I plan to post as I get them as well.

My new years resolution was to blog more.  This marks the first blog post I’ve done in 2011.  As unimpressive as it seems, we’ll see if I can keep up to my goal and accomplish that little resolution I made such a long time ago (in a galaxy far, far away…).

Selling Smartphones

One of the biggest problems (in my opinion) with cell-phone carriers these days is the inability to really try a cell-phone before you purchase.  When a customer walks into Best Buy, they are expecting to touch, look at and play with the devices inside the store.  Best Buy stores (and other similar retailers) generally have a section of technology products that a customer can demo—be it a laptop, desktop or other techno-widget-device, however when it comes to cell phones everybody is lacking it seems.

When a customer wants to consider purchasing a product, the easiest way many sales veterans might advise would be to get the product into the customers hands.  At stores like Best Buy, Costco, and many cell phone retailers this is where they go insanely wrong.  They get a “model” of the product into the customers hands.  It’s a plastic rip-off without any functionality.  In the age of touch-screen-enabled devices and the mobile-app economy, the former ideology of placing a cheap plastic prototype on display for customers to see is a bit absurd.  How many people would actually walk in and say “Man, this plastic container fits my hand perfectly, so the phone’s operating system, applications, screen, etc., must all be great in the real thing.”  Nobody.

I’d propose fixing this problem by having the likes of LG, Samsung, Apple, Palm (HP) and all the other carriers get a device to put on display that actually works.  Maybe lock it down or disallow the addition of apps in the various models, but the days of a plastic model being the means for making a decision on a new cell phone are long gone.  With increased projections for cell-phone sales this year, it might be time to put some actual sales tactics to use for some of these stores.

The W3C

I’ve been reading article after article, and listening to podcast after podcast about how the World Wide Web Consortium’s CSS and XHTML standards are basically moot in the ongoing browser wars between IE, and Firefox, and Opera, and Safari, and …

I thought I’d throw in my two cents. I think standards are fantastic, and love coding to them, when I get the chance. Of course, I’m not claiming complete compliance, but lets face it—there are standards for a reason. We hope that someday every browser abides by the standards so that we can stop coding two or three additional CSS files just to get the look and feel down across all the browsers.

I’m not sure why it is that it’s so hard for all these groups to conform to a standard, sorry—THE standard. It seems like it will be an ongoing battle and everyone is merely in the midst of rooting for their favorite player.

Who knows, maybe next week Microsoft will release a patch that standardizes everything. That would single-handedly save out-of-employment programmers. How, you ask? Lets see, everyone starts upgrading, those that upgrade will realize that their websites are all goofy now. What are they gonna do? They’re gonna hire a consultant to fix all the goofy little problems. You know what—that’s a LOT of problems that need-a-fixin’. Okay, I’ll admit, it probably wouldn’t be THAT big a deal, but who knows, maybe it would generate some business for all of us pawns in the web and software worlds who are looking to climb up the chain.

Or maybe we should look for a different rope to climb up. Ah well, who knows.


I’ll first mention why I do not care for Comcast’s HD-DVR. I don’t like monthly bills—and when a monthly bill is absolutely necessary, I want it to be as low a fixed cost as possible. I pay $40/month for internet via Comcast, which is quite speedy, and when I had the HD-DVR, that cost went to $90.00 for the first six months. Six months later, I saw my bill jump to $120.00, and being a person that doesn’t watch a massive amount of TV, I called and cancelled. The actual DVR lacked many capabilities, and was annoyingly complex. I was paying for HD-service and DVR capabilities, yet when searching for programs 1/2 the screen is taken up with the Comcast logo and new movies available for purchase. I’d prefer to see a full-page listing of as many channels and programs as possible, but the capability to remove advertising is nonexistent. Further, I don’t want to manually delete every show just to free up space on my box. I’m slow at watching programs, and 2 weeks is often not enough time to get me caught up on my shows, and so I get far behind on my DVR. It fills up, and in order to free up space, I have to go through and punch delete (a 3-step, slow process) on every show I decide I can do without seeing.

TiVo HD and Series-2 DVR’s have the same user interface, but their hardware specs differ. One can do HD, the other cannot. One has tons of storage space, the other has 80 gigabytes (which is still alot!). One costs $300.00, the other you can snag used for $30-40 bucks on eBay. After toying with the HD version, I decided on the HD box because of my interest in watching HD content.  There is one caveat with my choice—I had to get a cable card from my local cable company.  When I inquired about the little cards, I had some interesting responses from Comcast—I told them it was going into a TiVo, and that I wanted the “M-Series” card (M-Series = Multi Stream, I believe).  An “M-Series” card allows a user to watch one channel and record another at the same time.  The “S-Series” cards (or Single-Stream) only allow for one channel at a time.  The difficult part of this situation was that, in requesting the “M-Series” card, the phone support tech at Comcast was convinced that I’d have to pay to have a tech come out and do an “advanced install.”  I asked if I could just pick up the card and put it in myself (it really can’t be that hard, can it?), and was told that it was out of the question.  I caved and paid the one-time set-up fee for the tech to come out.

When the Comcast technician arrived, he had an M-series card in hand, popped it into the back of the TiVo, made a phone call to send an “Init” request to the mothership, and left.  I know what you’re thinking, and I blame Comcast (not the technician) for believing that I was too inept to plug in a card and make a phone call.  After reading the forums online, I found out that maybe it was best to have the technician come after all because there are users having great difficulties with CableCards in some cases.  Ah well, at least I got my HD service and TiVo up and running in under a week.

Well, there you have one more rant. Eventually I’ll find time to go back and proof read one of these, but that day is certainly not today.

Cable Company DVR vs. TiVo

I’ve got some positive news—my television picks up over-the-air content quite well, so I now have about 25 channels (everything from G4, HGTV and Animal Planet to local programming). I was thinking it might be time to consider getting a TiVo DVR. Then I started thinking it might be worthwhile to compare the features of TiVo to that of Comcast’s DVR.

I believe in this day and age, everything should be about HCI—Human Computer Interaction. If you don’t have an awesome, clean, intuitive user-interface, your product and user-base will eventually disappear. I firmly believe that Comcast’s DVR’s, if they weren’t subsidized by the cost of cable, would all be headed to the landfills because no one would want to pay for such a clunky device (even though most people do, they just don’t notice it popping up on their cable bills).

I’ve played with three DVR devices: Comcast’s HD-DVR, TiVo’s Series 2-DVR, and TiVo’s HD-DVR. There are pros and cons to all of them, and it’s notable that all devices have dual-tuner capabilities, but one device has a warm spot in my heart…

I’ll first mention why I do not care for Comcast’s HD-DVR. I don’t like monthly bills—and when a monthly bill is absolutely necessary, I want it to be as low a fixed cost as possible. I pay $40/month for internet via Comcast, which is quite speedy, and when I had the HD-DVR, that cost went to $90.00 for the first six months. Six months later, I saw my bill jump to $120.00, and being a person that doesn’t watch a massive amount of TV, I called and cancelled. The actual DVR lacked many capabilities, and was annoyingly complex. I was paying for HD-service and DVR capabilities, yet when searching for programs 1/2 the screen is taken up with the Comcast logo and new movies available for purchase. I’d prefer to see a full-page listing of as many channels and programs as possible, but the capability to remove advertising is nonexistent. Further, I don’t want to manually delete every show just to free up space on my box. I’m slow at watching programs, and 2 weeks is often not enough time to get me caught up on my shows, and so I get far behind on my DVR. It fills up, and in order to free up space, I have to go through and punch delete (a 3-step, slow process) on every show I decide I can do without seeing.

TiVo HD and Series-2 DVR’s have the same user interface, but their hardware specs differ. One can do HD, the other cannot. One has tons of storage space, the other has 80 gigabytes (which is still alot!). One costs $300.00, the other you can snag used for $30-40 bucks on eBay. After toying with the HD version, I decided on the HD box because of my interest in watching HD content.  There is one caveat with my choice—I had to get a cable card from my local cable company.  When I inquired about the little cards, I had some interesting responses from Comcast—I told them it was going into a TiVo, and that I wanted the “M-Series” card (M-Series = Multi Stream, I believe).  An “M-Series” card allows a user to watch one channel and record another at the same time.  The “S-Series” cards (or Single-Stream) only allow for one channel at a time.  The difficult part of this situation was that, in requesting the “M-Series” card, the phone support tech at Comcast was convinced that I’d have to pay to have a tech come out and do an “advanced install.”  I asked if I could just pick up the card and put it in myself (it really can’t be that hard, can it?), and was told that it was out of the question.  I caved and paid the one-time set-up fee for the tech to come out.

When the Comcast technician arrived, he had an M-series card in hand, popped it into the back of the TiVo, made a phone call to send an “Init” request to the mothership, and left.  I know what you’re thinking, and I blame Comcast (not the technician) for believing that I was too inept to plug in a card and make a phone call.  After reading the forums online, I found out that maybe it was best to have the technician come after all because there are users having great difficulties with CableCards in some cases.  Ah well, at least I got my HD service and TiVo up and running in under a week.

Well, there you have one more rant. Eventually I’ll find time to go back and proof read one of these, but that day is certainly not today.

Cable Bills!

Yesterday I got a bit frustrated, yet again, with the massive cable bill from Comcast. I get my Internet and TV from them, and realized that I only really need one of their services—high-speed Internet. When looking at the numbers, I realized that I could get the fastest Internet package for around $60.00. The package I had yesterday included a slower connection (12Mbps) and digital cable. Not only is their remote control utterly annoying to use (the buttons have a slow response time, and there are just too many of em’!), but everything seems so clunky to me. I needed a cable box, remote, wires galore, cable modem, more wires, a router, and a few more wires. And I had to pay more money.

The problem I was running into was that only one outlet was of enough quality to support high-speed internet—the same one the digital cable box was plugged into. That creates quite a bit of congestion in terms of wires mixing around in the TV stand. When I realized I was spending $100/month on cable TV and Internet, more than all my other bills combined (yes! you read that correct!), I decided it was worth it to, yet again, live without the TV. I did this for about 3 months a year ago. The difference was, at that point in time, I didn’t have a TV, just a computer.

Here’s what I’m thinking, I’ll save approximately $40/month by cancelling cable and snagging the fasters Internet connection speed. That $40 will go to a long way—I can go to a movie once a week every month, get popcorn and a drink! Or, I suppose I could put that money towards my daily cup of coffee—that’s three weeks of coffee paid for! Maybe I could put it towards my savings account, or invest it in something cool. I could use the $40/month to get a Sprint MiFi plan and then have the internet with me everywhere I go. I’m not sure what exactely I’ll do with the spare change—granted it’s not a bunch, but $40 x 12 months = $480. If I go without cable for a year, I can buy myself a pretty awesome gizmo next summer.

So, you may be thinking, what are you actually gonna do with the money??? I’ve decided my time is more well-spent reading. But I tend to go crosseyed if I read for a long amount of time, so I’m investing that spare change in Audible.com. These guys are professional story-tellers, and I can put it on my portable music device and spend the wasted time in front of the tube exercising my brain for a change. Novel, you say? Exactely my point!

But, alas, I can still watch TV online. There’s always Hulu and the big cable network websites to check out, so I don’t think I’ll starve myself of mindless (though oddly enjoyable) entertainment anytime in the near future.

Apple vs. World

Another day, another set of tech company feuds. Some of you may know that Apple, Google and the Federal Trade Commission are looking into whether anything is amiss when Google people and Apple people are on each others executive boards. Well, whoop-dee-doo. I’d argue they’re in different tech sectors altogether, but with the announcement of Google’s Chrome OS (i.e. Linux), and the fact that the second generation of Android-based smart-phones are on the horizon, maybe there is some credibility there.

I’m a big fan of strategy games, and I think the smartphone market is the perfect place to whet my appetite with a good bit of strategy talk. Palm and Google have said that each of their respective mobile-platform operating systems, WebOS and Android, are going to eventually support Adobe’s Flash standard. Great! Right?

Apple has continually refused to nudge on the Flash-support front, and, from the Apple point-of-view, I think this is a rather smart move. First off, Apple’s always going to tick off a few people that are really wanting to see Flash on the iPhone. However, as Apple continues to gain marketshare, up from 5% to 10% over the last year, I think we will notice companies think twice about putting any content in the public domain that cannot be accessed by the entire smartphone market. Translation: if Apple’s market share continues to climb, more and more websites are going to have to find a method of making their product or company available to their entire user-base, and that means stripping Flash from their websites and opting for XHTML (or HTML5 whenever that one comes to fruition).

So what does Apple gain from not supporting Flash? I think their goal would be to make obsolete the Flash standard. If every other smartphone has spent time to bring such functionality to market, and it becomes moot, that means Apple has that much more strength. Apple’s never been a company to be “open” and, in fact, remains quite closed. I think we’ll see that Apple, by slowing development and deployment of Flash-based applications, will erode the future need to become “open” on any alternative platform. We won’t see Apple cave to anyone if they can move this mountain (or rather, prevent it from moving). If users were really wanting Flash and started buying Palm’s Pre in place of the iPhone, I think we’d see the chink in Apple’s armor become bigger, but if users accept the lack of Flash functionality, the use of Flash-based applications will, in turn, dissapate.

The RIAA really wanted Apple to have DRM in the iTunes store, but after Apple got enough of the downloadable music market, look what happened… Suddenly the RIAA’s bargaining power was lost because Apple was strong enough to say that DRM wasn’t gonna fly with them anymore. Sure enough, if Apple gets to the point where businesses are purposefully not using Flash because they don’t want to alienate potential end-users then Apple has more strength down the road negotiating standards and formats. This is something that could be massively powerful for the company when they do support a specific technology…

Wireless... In My Pocket

I think it was Bill Gates that said something like…

“In the future, the internet will be in everyone’s pocket.”

I think the relization of his dream hasn’t come yet, but in doing research about some of the latest and greatest mobile internet solutions brought to us by top U.S. cell carriers such as Sprint, AT&T and Verizon, it is clear that the technology is starting to come to fruition.

Oddly enough, I think Sprint is going to be leading the pack with their 4G network. Rumors have been appearing of late about Verizon “fast-tracking” their 4G solution for another rumor of an Apple table PC. These rumors are getting a bit old, but as soon as I start really knocking the rumor-blogsters I’ll be aghast to find a press-release from Apple stating that the tablet is real.

Enough of hi-jacking my own blog post… Sprint has already rolled out the “Beta” version of it’s 4G network in Baltimore and has concrete plans for rollouts in many other cities Q1 2010. The thing that excites me about the 4G network is that there are:

  • No Bandwidth Caps! All the major carriers currently limit you to 5 Gigabytes per month over their 3G networks.
  • Fast speeds! Imagine in 5 more years what hi-speed wifi brought to us over the air will mean—fiber-to-the-home will be moot, we’ll have hi-speed internet traveling straight to your pocket!
  • Competition! Eventually (maybe on the 5G networks) we will have a choice of having internet provided by any of Comcast, Sprint, AT&T, Verizon or whatever other cable/DSL companies that exist in the neighborhood. This is great for the consumers because as TV and telephony converge into the Internet we’ll finally have a TV/phone/internet solution that will be the equivalent of a modem and router that is mobile, fast and, most importantly, cheap!

This is bad news for some of the companies that have invested heavily in land-line infrastructure, such as Comcast and AT&T, because eventually I’d bet that most everything to the end-user will arrive from over-the-air. Well, that’s my two cents. I could be totally off course, but I know what companies I’m going to be investing in and watching over the next few years.