Happy sweet sixteen Meghan!

My wife still ribs me a little about stifling discussion around an important family decision a little more than sixteen years ago. She’s told the story dozens of times about how when she was pregnant with our second child I confidently declared one day, “I can see my daughter. She has brown hair, big brown eyes and her name is Meaghan.” The Big Book of Baby Names was never opened. Sixteen years later, the only detail I have to concede in my prediction is the letter ‘a’ in her name.

Today is my baby’s sixteenth birthday. She is amazing; smart, beautiful, talented, and mature way beyond her sixteen years. Though it may seem as if I got the child I “ordered”, God has a sense of humor and prettied up a fiercely independent and stubborn child with the hair and big, brown eyes I imagined. The independence and stubbornness that earned her the nickname “Ice Princess” when she was barely out of second grade has since turned to self-sufficiency and conviction. Meghan is simply the sweetest young lady you could ever meet, but unbending on things that matter.

Meghan has her mother’s raw singing talent, yet listens to scream-o bands. She is lovely, beautiful, and feminine, yet trains in a boxing gym with professional fighters. Her room is a mess yet she’s already started a promising photography career on her own with the organization and discipline required of an entrepreneur. She loves hanging with family. She likes breakfast “dates” with her dad. She is so creative and has an amazing photographer’s eye. Most importantly, she loves God and it is evident in everything about her.

It’s natural for any parent to be full of reservations about their child’s future when they’re sixteen years old. Not me. I’m so excited to see what Meghan does with all the God has given to her. I know I’ve said it before, but there’s only one Father that loves His daughter more. Happy sweet sixteen baby! I love you!

Posted in Me | 1 Comment

How to sniff https traffic to/from your mobile device

Years ago I built a web app for managing the home finances. I may post about that another time. But part of the back-end of this app is a script that runs several times a day that fetches transactions from my bank and American Express. It’s served me well, with the exception that the OFX direct connect to American Express does not offer download of pending transactions.

It occurred to me the other day that the American Express app on my phone does show pending transactions. If I could see what the app sent, I was confident I could recreate with CURL and pose as the app. A little Googling turned up a really nifty java proxy called Burp that claimed to reveal all HTTP traffic, including SSL.

For SSL traffic, this proxy creates a host-specific, self-signed certificate for the client on the fly. This is fine if you’re sniffing traffic from a regular browser. You will merely be prompted for whether to trust the certificate before continuing. But for a mobile app, it just simply won’t work. If sniffing traffic from a mobile app is your aim, here’s some steps to getting around this.

  • Download and install Burp
  • Run Burp and go to the “proxy” tab and select the “options” button.

Edit the default proxy listener and uncheck “listen on loopback interface only”.¬†Make sure “generate CA-signed per-host certificates” is selected.
Click “update” when finished.

  • Open Firefox (or any other browser that allows export of certificates) and set it up to use the Burp computer as a proxy (i.e. 192.168.1.2 on port 8080).

Browse to any https site. You should receive a warning about the certificate not matching or not being trusted. View the certificate. Highlight the root certificate (PortswiggerCA) and export.

  • Attach the exported certificate to an email and send it to yourself so you can install on your device.
  • Install the certificate (on an iPhone this is tapping on the attachment and accepting the prompts).
  • In your proxy settings, again set the Burp computer as your SSL proxy.

Now when your apps that use SSL to communicate initiate a connection, they will see the untrusted certificate created on the fly by Burp, but the CA is now trusted on that device. All HTTPS traffic should now be visible in Burp. Don’t forget to remove the installed certificate when you are finished. Happy sniffing!

Posted in Me, Technology | 2 Comments

It Might Get Loud – Screaming God’s Praises

I saw Brian “Head” Welch speak and perform at Soulfest 2011 this weekend. Brian Welch was formerly the guitarist from the band Korn. I first came across his story from a video clip from Iamsecond.com over a year ago. Although I was never a fan of Korn and didn’t know who he was, I was blown away by his testimony. As a believer in Jesus Christ, I am moved by examples of God reaching out and claiming a lost sheep, and all the more so when the one is so far from the ninety-nine.

I’ve since thought more about why Welch’s testimony hit me so hard. I simply don’t identify with any part of his story. I’m not stuck in addiction and don’t share any of the problems (particularly the weight of adoring fans) that plague people with similar lives. Yet I was still moved to tears by this seven-minute video. Why?

Here’s a thought that’s bounced around my head since seeing “Head” perform and speak: if God sees fit to save Christianity, it will be through people like Brian Welch.

Brian "Head" Welch @ Soulfest 2011

It’s a thought only slightly scarier than Welch’s bass player. When Jesus Christ rolled through town, He left a wake of changed lives. Christian churches of today are plagued with comfort and complacency, and have become gated communities of sorts. If lives aren’t being dramatically changed in your church, it is simply not living up to the church’s mission. We live in a sick world that needs Jesus Christ as well as people who are willing to testify that He indeed changes lives. Brian Welch is a representative of that sick world and his testimony is a profoundly compelling example of God’s grace and power. Brian is living proof that the weary and burdened get rest in Jesus Christ. Brian is living proof of the claims in Ecclesiastes that no amount of riches and power compares to living in the will of God. Not to mention, Brian also follows the trend in the Bible of God using the unlikeliest of characters for His bidding.

Brian Welch’s music is another element to this story. Like I said, I wasn’t a fan of Korn and wasn’t particular drawn to his music. But I want to support him. If that takes buying a CD that sounds like a building falling down, so be it. But guess what? I agree with the message in worship songs like “Heart of Worship”. But aren’t we in a little more of a desperate situation than that lovely little tune would indicate? Shouldn’t this message be shouted from the balconies of every church? Check out the lyrics to Welch’s “Die Religion, Die!” Welch’s music is honest, visceral, and exactly where he’s at. This is a part Brian “Head” Welch that God clearly intends to use. I’m gonna listen.

Like others, I take inspiration from people who I believe are braver, wiser, and more selfless than I am in living out their devotion to God. I don’t think I’ve come across anyone who was so trusting in the Lord and so transparent as to seem as if God was simply directing his words and actions as a puppeteer would. Brian Welch is not out of the woods (or wilderness) by a long-shot. He’s an addict. He’s broke. He still has to live with the poor choices he made before giving his life to Christ. There will be temptations around every corner that will promise to make things just a little easier for him, even temporarily. He has my prayer. I’m so grateful for the influence he’s had on my life and pray that others are moved by his trust in God.

For sure, Pastor Head’s testimony and music isn’t going to appeal to everyone. But it’s where I’m at now.

Posted in Faith, Me, Music | 1 Comment

XCode 4 and Subversion

After spending a couple hours trying to figure out why I couldn’t commit any project files to my svn repository, I though I’d share my discovery and hopefully save someone the hassle.

The hard drive on my computer died a couple weeks ago and I opted to do a fresh install of Snow Leopard and selectively restore files from a Time Capsule. Among these files were sources for an iOS project that was under svn control. I installed XCode, checked out my project successfully, and got a few hours of updating in. When trying to commit my changes, I’d get the following error message:

Authentication realm: **********-**********
Password for 'jjones':
Authentication realm: **********-**********
Username: jjones: Can't read stdin: End of file found

My login credentials were correct. I had obviously checked out the sources just fine. I resorted to messing with svn from the console. I found that I could successfully execute a commit from there. Not only that, once doing so, XCode worked fine. I don’t know why, but here’s what to do: simply open a terminal and issue an ‘svn cleanup’ from your project folder. Then perform a commit with ‘svn commit -m “commit from terminal”. If all goes ok, you should now be able to perform commits from XCode.

Posted in iOS Development, Me, Technology | Leave a comment

Charity by the sword

I finished reading Erwin McManus’s excellent book “Soul Cravings” a couple weeks ago and still have some things ruminating in my head. Specifically, McManus tackles the question posed to so many believers: “If there’s a God, why would He allow so much suffering in the world?”

As McManus suggests, let’s suppose God does not exist. Would we still have starvation? AIDS? Murder? Millions of children living in urban garbage dumps in Latin America? War and genocide? The answer is yes. So without God, who should we blame? All we have left is us.

McManus says, “For God to create us in such a way that we can choose that which is good, true, and beautiful, He must also allow us the freedom to choose that which is corrupt, false, and destructive.” Simply put, God gave us free will and the world we live in is the result of the choices we make. It has to be that way or the love and adoration of Him would be empty and meaningless. Love itself would be meaningless. Does free will matter to God even when the result is so much misery for His creations? Clearly it does.

As interesting a topic as this is all by itself, I’ve been thinking about it in the context of budget cuts and the debt crisis plaguing us at every level of government. For weeks I’ve read and heard statements like, “a budget is a moral document” and “what would Jesus cut?”

Let’s set aside for now that the Federal government was never intended to be responsible for the well-being and happiness of its citizens. Let’s also set aside that by any measure, the federal government is far less efficient with your dollar than is private enterprise. For those of us who believe we have a responsibility to widows and orphans, to the hungry, and to the addict, it then does not matter whether our wealth is shared through the federal government or through a private charitable organization. We are willing to give. What should we say of the wealth that comes from the unwilling?

Does it matter to God? If great things are achieved through “charity by the sword”, is God pleased? Do the ends justify the means? If we’ve already established that God will tolerate the mess created by our choices as individuals in order to love out of our own free will, how can we believe that God is pleased by compelling the unwilling to give? Free will matters to God. As difficult as it is to consider, God cares more about our love for Him expressed in the genuine caring and love for the poor and hungry than He does about the poor and hungry. In John chapter 12, Judas scolded a woman for pouring expensive perfume on Jesus’ feet when she could have sold it and used it to help the poor. Jesus said “leave her alone” and that “you will always have the poor among you, but you will not always have me.”

The point of this is of course is not to excuse us from our responsibility to be our “brother’s keeper.” Jesus is the human embodiment of love and justice and is the example for all Christians to follow. All Christians should give sacrificially (Mark 12:41-44). When we are compelled to hand over wealth to the government, that wealth is squandered in bureaucracy, corruption, and politics. When we advocate big government programs and the politicians behind them, not only do we waste wealth, we diminish everyone’s capacity to express love for each other out of the free will God gave us.

We will always have the poor with us because there will always be those who don’t believe and don’t care about the poor. Solving poverty apart from God is folly. The goal for believers should not be to create and protect government programs; it should be to create and protect more believers. C.S. Lewis said, “Aim at heaven and you will get earth thrown in. Aim at earth and you get neither.” To expand on that, if we aim at being obedient and creating more disciples of Jesus Christ, we’ll also do great things for the poor and hungry. If we seek to do great things for the poor and hungry through charity by the sword, we get neither. Unfortunately, the evidence of the latter is all around us.

Posted in Faith, Politics | Leave a comment

App Store Reviews

The iTunes App Store is a ferociously competitive market. If our app ever gets in front of the app shopper, we have only a few seconds and a few glances to tell our story. Excellent reviews and overall ratings are vital to getting the user to tap Install. With my own sales, I’ve seen a negative review on top cause a 30% – 40% drop in units sold until a couple positive reviews appear on top. Likewise, a pile of five-star ratings can give you a nice bump. Reviews are currency in app store marketing.

One of the things that’s bugged me about the review / rating system in the App Store is that the user is never prompted to rate an app until it’s removed. Of course if the user is removing the app, it isn’t likely to be a glowing review.

Before releasing my latest iOS app, My Hours, I did a little research to see what other developers were doing to address this. I actually found a poorly named but excellent class that allows one to prompt a user based on having met several conditions. It’s called Appirater and is free and easily implemented. If you use My Hours daily for 30 days, you will be prompted to rate it. Hopefully, that’s the use you expect of a happy customer.

If you develop apps for iOS, check out Appirater and keep those five-star reviews coming!

Posted in Technology | Leave a comment

Don’t judge a book by it’s lack of a cover

I finally broke down and bought a Kindle. Actually, in typical me fashion, I bought three Kindles for my family of four. I’ve been interested since version one, but waited for some sort of Amazon credit program to be implemented whereby one would get credit towards eBooks for the real books previously purchased at Amazon. I buy all of my books from Amazon. In fact for most of the things under my roof, if it isn’t perishable, I probably bought it from Amazon. But the idea of having to re-purchase some of the must-have books in my library was off-putting. Alas, I’ve been traveling quite a bit lately and an eReader just made sense.

So far, I’m super impressed with it. The E Ink technology is easy on the eyes. The battery life is awesome. And the silent page-turning is nice for nighttime reading when you’re just nodding off and your spouse is still reading.

In the days that followed, a friend posted on Facebook a question about eReaders and whether they were appropriate for kids. I guess I shouldn’t have been surprised at how hostile some responders were to the idea of the digital medium eventually replacing, or greatly reducing print. It was also interesting to see how frequently the smell of books or bookstores was mentioned while defending real books. Weird. I guess I’m just not that sentimental – unless of course we’re talking about lightbulbs. Those compact fluorescent bulbs just plain suck.

Oh..and if you have an eReader, check out Calibre. This is a must-have tool for converting to and from different eBook formats.

Posted in Life, Technology | Leave a comment

Happy birthday Matt!

It’s a funny thing not having updated your blog for ages. On the couple of occasions in the last few months that I’ve actually had intentions of updating, I’ve read through my last couple posts and considered all the life that’s happened since then that I didn’t blog about. I would think, “if not then, why now?” and post my thought on Facebook or Twitter instead. And yet – here I am…

My son turns sixteen tomorrow. Forgive me for wallowing in cliched sentimentality, but it seems like yesterday that they let us go home with this red, wrinkled creature without supervision. It seems like yesterday that we laughed till we couldn’t breathe the first time he really laughed that kind of laugh that leaves you exhausted. It seems like yesterday that my wife got a little mad at me when I sat him upright in the shopping cart seat because she thought he was too little, and I didn’t. It seems like yesterday that I took him to see the first of the new Star Wars movies. It wasn’t all just yesterday. It’s been sixteen years. Holy crap.

Matt is smarter than me. I don’t feel bad because he’s smarter than most people I know, which still leaves lots of room for my ego. My wife and I used to tell new parents that among all the other blessings that come with parenthood, what a trip it was to hold a conversation with your kid as if you were talking to another adult. In hindsight, we may have thrown those people a little curve ball because we were enjoying such conversations with Matt much sooner than I’m sure most parents do.

Though there are occasions where a subtle expression or comment makes it known that he’s merely tolerating our nonsense, Matt’s humility and respect of us and other adults is remarkable. When experience and God-established authority trumps his own understanding, Matt says, “Yes sir.” When Matt is introduced to someone, he looks them in the eye and gives a firm handshake. He hugs his parents no matter who’s watching. He has always gotten straight A’s. He’s the funniest person I’ve ever known. He’s an incredible drummer. Matt’s appreciation of movies, food, music, and books has always been that of a person well beyond his years. I’ve watched him learn to do things in a fraction of the time it would take a normal person. Sometimes I don’t get him. Sometimes it’s like God pushed the rewind button on my life.

My wife and I have had some fun with him repeating a Homer Simpson quote for years. “When you’re eighteen you’re outta here!” It’s not funny anymore. College is still a couple years off. Even still, I have to choke back tears just thinking about it. That day will possess epic suck. I love him so much and miss him already.

This is my blog. It’s supposed to be about me. Trust me, it is. I want what most guys want. Among other things, I want to leave a legacy. I want an imprint of who I am to be left when I’m gone. If I got hit by a bus tomorrow and the world knew me through my sixteen-year-old son, I couldn’t be more blessed. Happy birthday Matt.

Posted in Me | Leave a comment

iPhone, iTunes, & Linux

I got the new iPhone 3Gs a couple weeks ago, and apparently like many other Linux users, wrestled with the best way to sync/backup my phone since iTunes only runs on Mac and Windows. I settled on running XP in a VirtualBox machine and running iTunes from there. Although many people are doing this successfully, I thought I’d share a couple hints to save some time for anyone looking to do the same.

First off, this is for Ubuntu 9.04…ymmv on other flavors and versions of Ubuntu.

If you have the open source edition (OSE) of VirtualBox installed, you’ll need to remove it and install the proprietary version. This is necessary for the USB pass-through. I’m using VirtualBox 2.2.24. If you’re using Ubuntu, you can do this through the Synaptic Package Manager or through the command:

jjones@dads-pc:~$ sudo apt-get install virtualbox-2.2

Install XP on the virtual machine. Update your service packs, etc and install iTunes. I disabled some services from automatically starting to keep the boot-up relatively quick. I also used VirtualBox’s shared folders feature to keep all my music in Linux and share it with the VM. I just mapped a network drive in XP and imported that folder into my iTunes library. Next, make sure you have USB enabled. Go to Settings->USB.

usb

You’ll also want to setup a USB filter to have the iPhone passed through to the virtual machine. With the iPhone plugged in, click the button to add a new filter and choose the iPhone.

Once you get this up and running, you’ll find that plugging your iPhone in will cause Ubuntu to mount it as a camera. XP may or may not see it too. But iTunes won’t see it until until you unmount the iPhone camera in Ubuntu. It would be good at this point to make sure that’s the case. I came across a great post on the Ubuntu forums that gave a slick way to supress the automounting of the iPhone as a camera without turning off automounting of removal media altogether. It involves creating a HAL policy to ignore when the iPhone is detected. the HAL daemon actually sees two devices when the phone is plugged in. We need to grab the IDs of both. You can do this by grepping through the output of the command:

jjones@dads-pc:~$ sudo hal-device

We’ll use the values for each ‘info.udi’. Here’s a little snippet that should grab what we need:

jjones@dads-pc:~$ hal-device | grep Apple -A 36 | grep info.udi
info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1294_bcc2f6da7f53acb1b65d03d87c7bf1ac0748faeb' (string)
info.udi = '/org/freedesktop/Hal/devices/net_00_50_56_c0_00_08' (string)

Next, create a file like /etc/hal/fdi/policy/10-noiphone.fdi (“noiphone” is arbitrary…you can name it whatever you like) with the following:

<?xml version="1.0" encoding="UTF-8"?>

<deviceinfo version="0.2">
  <device>
    <match key="info.udi" string="$info.udi1">
       <merge key="info.ignore" type="bool">true</merge>

    </match>
  </device>
  <device>
    <match key="info.udi" string="$info.udi2">
       <merge key="info.ignore" type="bool">true</merge>

    </match>
  </device>
</deviceinfo>
  • where $info.udi1 = first info.udi value from hal-device search
  • where $info.udi2 = second info.udi value from hal-device search

I needed to reboot to see this take effect. But afterwards, you should be able to plug in your iPhone without it being mounted in Ubuntu as a camera. If you have USB enabled and a filter set up, XP and iTunes should have no trouble detecting the phone.

If you’re like me and intend to use the XP virtual machine for iTunes only, here’s a way to have your virtual XP loaded automatically when the iPhone is attached and unloaded when removed. Here’s how:

Get the id of the virtual machine running XP:

jjones@dads-pc:~$ VBoxManage list vms

Create the following two scripts substituting my vm id and other info with your own:

/usr/local/bin/iphone_attach.sh

#!/bin/bash
export XAUTHORITY=/home/jjones/.Xauthority
export DISPLAY=:0.0
su jjones -c "/usr/bin/VBoxManage startvm 376e6b19-1602-4e73-bc7e-7248c49be9a3" >> /var/log/iphone.log

/usr/local/bin/iphone_remove.sh

#!/bin/bash
export XAUTHORITY=/home/jjones/.Xauthority
export DISPLAY=:0.0
su jjones -c "/usr/bin/VBoxManage controlvm 376e6b19-1602-4e73-bc7e-7248c49be9a3 acpipowerbutton" >> /var/log/iphone.log

Set the executable bit on these scripts:
jjones@dads-pc:~$ sudo chmod +x /usr/local/bin/iphone_*

With the iPhone unplugged, run the following command:

jjones@dads-pc:~$ sudo udevadm monitor --environment

Plug in the iPhone and take note of the output of udevadm. We’re looking for line similar to:

PRODUCT=5ac/1294/1

Lastly, create the file:
/etc/udev/rules.d/98-iphone.rules

SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/1294/1", ACTION=="add", RUN+="/usr/local/bin/iphone_attach.sh"
SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/1294/1", ACTION=="remove", RUN+="/usr/local/bin/iphone_remove.sh"

Again, substitute the appropriate values for your own stuff.

Now when you plug in your iPhone, your VirtualBox XP machine should load automatically and autorun iTunes when booted up. When you remove the iPhone, XP detects an ACPI shutdown and closes. Enjoy!

Posted in Me, Technology | Tagged , , | 1 Comment

Our Tax System Explained: “Bar Stool Economics”

I’m reading Atlas Shrugged and thought this modern-day parable was apropos when I stumbled upon it. This has floated around the ‘Net for years with no solid authorship and has even been quoted by the late William F. Buckley.

Our Tax System Explained: “Bar Stool Economics”

Suppose that every day, ten men go out for beer and the bill for all ten comes to $100. If they paid their bill the way we pay our taxes, it would go
something like this:

The first four men (The poorest) would pay nothing.

The fifth would pay $1.

The sixth would pay $3.

The seventh would pay $7.

The eighth would pay $12.

The ninth would pay $18.

The tenth man (the richest) would pay $59.

So, that’s what they decided to do.

The ten men drank in the bar every day and seemed quite happy with the arrangement, until one day, the owner threw them a curve. “Since you are all such good customers,” he said, “I’m going to reduce the cost of your daily beer by $20.” Drinks for the ten now cost just $80.

The group still wanted to pay their bill the way we pay our taxes so the first four men were unaffected. They would still drink for free.

But what about the other six men – the paying customers? How could they divide the $20 windfall so that everyone would get his ‘fair share?’ They
realized that $20 divided by six is $3.33. But if they subtracted that from everybody’s share, then the fifth man and the sixth man would each end up
being paid to drink his beer. So, the bar owner suggested that it would be fair to reduce each man’s bill by roughly the same amount, and he proceeded to work out the amounts each should pay.

And so:

The fifth man, like the first four, now paid nothing (100% savings).

The sixth now paid $2 instead of $3 (33%savings).

The seventh now pay $5 instead of $7 (28%savings).

The eighth now paid $9 instead of $12 (25% savings).

The ninth now paid $14 instead of $18 (22% savings).

The tenth now paid $49 instead of $59 (16% savings).

Each of the six was better off than before. And the first four continued to drink for free. But once outside the restaurant, the men began to compare
their savings.

“I only got a dollar out of the $20,”declared the sixth man. He pointed to the tenth man,” but he got $10!” “Yeah, that’s right,” exclaimed the fifth
man. “I only saved a dollar, too It’s unfair that he got ten times more than I!” “That’s true!!” shouted the seventh man. “Why should he get $10 back
when I got only two? The wealthy get all the breaks!” “Wait a minute,” yelled the first four men in unison. “We didn’t get anything at all. The
system exploits the poor!”

The nine men surrounded the tenth and beat him up.

The next night the tenth man didn’t show up for drinks, so the nine sat down and had beers without him. But when it came time to pay the bill, they discovered something important. They didn’t have enough money between all of them for even half of the bill!

And that, ladies and gentlemen, journalists and college professors, is how our tax system works. The people who pay the highest taxes get the most
benefit from a tax reduction. Tax them too much, attack them for being wealthy, and they just may not show up anymore. In fact, they might start
drinking overseas where the atmosphere is somewhat friendlier.

Posted in Politics | Leave a comment