I'm 33.5 years old now. And I feel that I am starting from scratch once again. Back in 2006, I had the privilege to start my first real company. And after a year of relentless dedication, I saw the fruits of my labor as we started to generate money from something I created out of nothing. What I never told many people was that the motivation to start and work so hard in creating something came from a few audiobooks that I listened to. First one was Personal Power II by Anthony Robbins. And the other one being John C. Maxwell's 21 Irrefutable Laws of Leadership. I've listened to a lot of audiobooks since, but these 2 were the most important ones for me. The information in Personal Power II, is really incredible stuff. My reasoning was, if he can help Andre Agassi, Serena Williams, Princess Diana, Wayne Gretzky, Nelson Mandela, Mother Teresa, Bill Clinton, numerous fortune 500 CEO's, he probably knows something that I don't know. And he probably can get me some pointers.
For me, there were countless mind blowing revelations on how the most successful people in the world empower themselves to get everything they set their mind to, and combat all the things that get in their way. So if you're wondering how I got motivated to literally jump out of bed and work on a company for 18 hours a day, 7 days a week, and sustain that crazy motivation for over a year until I had a product that was ready to sell, there you have it.
The audiobooks I was listening to at the time were telling me, no one achieves success with their first company, and if you try and fail, you just ran a play and it didn't work out. The game is not over as long as you are alive. But as the large checks started rolling in, and we were looking to get a lot more, I kept saying to myself, "wow, I am so fortunate that my first company is successful. I guess I'm one of the lucky ones."
Well, long story short, my first company didn't work out. Many lessons learned. Lessons I would have never learned without going through the process. And by the end of that chapter in my life, I grew as a person immensely. And I'm proud of what I accomplished. But did I jump out of bed the next day saying, "no problem, this is what I'm going to do next"? No. With all the knowledge I've gained on how to handle crisis, no one said experiencing failure after you've given your soul was easy. I took a break for over a year soul searching, traveling, and taught English in Korea for a year. During that time, my dad passed away, and I realized it was time to get back to reality and continue on my journey I had set for myself more than 5 years ago.
The life as an entrepreneur is committing yourself 100% (not 80%, not 99.9%, but 100%), working smart, and working hard until you get what you want. There is no plan B. If plan A doesn't work out after you've given and tried everything, it is only then you make a new plan A. Dust yourself off because life is about to hike the ball to you once again.
I am listening to the audiobooks once again because there are many things I have forgotten about. But I realized that since the information feels more of a refresher, I am not as focused, but I should be. Having great knowledge, but not using it, doesn't really do anything. I am depriving myself the benefits of this information by not being focused. So I plan on using my blog, or at least a private blog, to try to extract every once of what these programs could offer.
This is where I am now. Beginning a new chapter. I'm working on something bigger, better, very different, but incorporating every lesson I've learned along the way. Watch out world!
Saturday, February 25, 2012
I'm back to blogging
I used to blog a lot. I'm close to having 1000 entries if you count all the blogs I've started, then replaced because I wanted to start fresh because I would learn something about life and it would be such a powerful realization that it meant that it would be a new beginning.
Probably for a few years though, probably after the invention of twitter, blogging has served a different purpose for me. I stopped blogging essentially, and all my blog posts were about information that I found that was missing from the Internet, and I felt compelled to share that information to make the Internet more complete. That is what makes the Internet great. If it is not there, hopefully someone is willing to share their information. I'm happy to take a part in that process. And then I would do reviews and share my opinion about things. But what I stopped doing was self reflection, and that's always been a big part of how I grew as a person. So I'm going to get back on that.
Probably for a few years though, probably after the invention of twitter, blogging has served a different purpose for me. I stopped blogging essentially, and all my blog posts were about information that I found that was missing from the Internet, and I felt compelled to share that information to make the Internet more complete. That is what makes the Internet great. If it is not there, hopefully someone is willing to share their information. I'm happy to take a part in that process. And then I would do reviews and share my opinion about things. But what I stopped doing was self reflection, and that's always been a big part of how I grew as a person. So I'm going to get back on that.
Friday, February 10, 2012
My analysis of what happened at the series 2 finale of Sherlock.
Spoiler alert.
If you haven't seen it,
and don't want to ruin it,
stop reading here.
You've been warned.
So how did Sherlock fake his own death? He basically pulled off a traditional magic trick. Like any magic trick, you gotta understand that there is no such thing as magic. Magic is only misdirection, letting the minds of the audience follow continuity even when there are breakages in the continuous lines, and the magician going through extraordinary planning that the audience would never expect. Sherlock really jumps off the building, but lands without dying (obviously) on a cushioned surface. The tall buses provide provide cover as well as props to pull this off. People on the ground are in on the act. Even Moriarty notices that there is an unexpected amount of people on the ground, walking around, who would be witnesses to Sherlock's suicide. Molly, Sherlock's doctor friend, supplies a decoy body switch, covered in blood and all. They still would benefit from a little bit of distraction so Sherlock had someone on a bike crash into Watson so that the sniper's attention on Sherlock is distracted. For effect, Watson wasn't in on it. Poor Watson. He will be pissed and relieved that his emotions have been through the wringer.
This meant that Sherlock knew that Moriarty knew all along that he wanted Sherlock to commit suicide by jumping off a building. Why else would he want Sherlock to meet on top of a building anyway. And the death by suicide part was obvious. Moriarty wanted to destroy the public image of Sherlock by painting a picture of a man who couldn't live with himself after people found out he was a fraud.
If you haven't seen it,
and don't want to ruin it,
stop reading here.
You've been warned.
So how did Sherlock fake his own death? He basically pulled off a traditional magic trick. Like any magic trick, you gotta understand that there is no such thing as magic. Magic is only misdirection, letting the minds of the audience follow continuity even when there are breakages in the continuous lines, and the magician going through extraordinary planning that the audience would never expect. Sherlock really jumps off the building, but lands without dying (obviously) on a cushioned surface. The tall buses provide provide cover as well as props to pull this off. People on the ground are in on the act. Even Moriarty notices that there is an unexpected amount of people on the ground, walking around, who would be witnesses to Sherlock's suicide. Molly, Sherlock's doctor friend, supplies a decoy body switch, covered in blood and all. They still would benefit from a little bit of distraction so Sherlock had someone on a bike crash into Watson so that the sniper's attention on Sherlock is distracted. For effect, Watson wasn't in on it. Poor Watson. He will be pissed and relieved that his emotions have been through the wringer.
This meant that Sherlock knew that Moriarty knew all along that he wanted Sherlock to commit suicide by jumping off a building. Why else would he want Sherlock to meet on top of a building anyway. And the death by suicide part was obvious. Moriarty wanted to destroy the public image of Sherlock by painting a picture of a man who couldn't live with himself after people found out he was a fraud.
Tuesday, February 7, 2012
Food for thought: Being gay is not a choice for the heterosexual man.
A true heterosexual man would never say being gay is a choice. Does a straight man choose to not wear a women's dress because he chooses not to? No, it is because he probably finds the thought naturally conflicting with his essence. It is only a secretly gay man that doesn't find this conflicting with his character that he would say he's not wearing a woman's dress because he chooses not to. It is this man who tries to convince others to choose to not be gay, just like he has.
Not that there is anything wrong with that. I'm glad Prop 8 is getting the boot. I'm tired of people who try to shove their religious beliefs down other people's throats by taking away their rights. Mind your of f'ing business. Especially when it is about strangers you don't know or will never meet. It is not your job to police something you don't understand. You should use that same focus and energy towards making your own life more righteous because you know you aren't perfect. Clint Eastwood would agree.
Not that there is anything wrong with that. I'm glad Prop 8 is getting the boot. I'm tired of people who try to shove their religious beliefs down other people's throats by taking away their rights. Mind your of f'ing business. Especially when it is about strangers you don't know or will never meet. It is not your job to police something you don't understand. You should use that same focus and energy towards making your own life more righteous because you know you aren't perfect. Clint Eastwood would agree.
Thursday, January 26, 2012
How to use Playstation(PS2) controller on your Android to play GTA III
Requirements:
PS2 to USB adapter (I have this working on my Windows 7 x64)
PS2 Controller (Obviously)
JoyToKey (Converts game controller buttons to key strokes on your computer)
Wifi Keyboard (Android App)
Verify that your PS2 controller is talking to your computer
Go to:
Control Panel -> Devices & Printers -> Twin USB Joystick -> (right click) -> Game controller settings -> (depending on what port you've connected the PS2 controller, select the Properties on one of the "Twin USB Joystick"
you should see that the buttons respond. While you are here, I would click on the "ANALOG" button on your PS2 controller and make sure the red light is on.
Map the buttons to keyboard strokes
Open JoyToKey on your computer.
You need to first check these 2 options on JoyToKey under the "Others" tab.
-Use Axes other than X and Y.
-Use POV switches.
If you haven't done so enable ANALOG mode on your PS2 controller.
Go back to the Joysticks tab in JoyToKey, and either select Joystick 1 or Joystick 2 depending on what port you've connected your PS2 controller.
You should map your controllers as shown below.
AxisX(<0) A
AxisX(>0) D
AxisY(<0) W
AxisY(>0) S
Axis3(<0) I
Axis3(>0) K
Axis6(<0) J
Axis6(>0) L
POV1:UP W
POV1:RIGHT D
POV1:DOWN S
POV1:LEFT A
Button 1 4
Button 2 2
Button 3 1
Button 4 3
Button 5 8
Button 6 6
Button 7 5
Button 8 7
Button 9 Enter
Button 10 F5
Button 11 7, 9
Button 12 0
Enable Wifi Keyboard to run in the background
The trick to doing this is selecting it as the input method, and it stays running in the background. Follow the instructions on Wifi Keyboard by going to a URL in your Internet browser. Should be something like http://192.168.1.2:1111 Then select "Game mode" under Keyboard Mode on the web page. Click on the big area to type in called "Android input".
Open the GTA III app and enjoy.
PS2 to USB adapter (I have this working on my Windows 7 x64)
PS2 Controller (Obviously)
JoyToKey (Converts game controller buttons to key strokes on your computer)
Wifi Keyboard (Android App)
Verify that your PS2 controller is talking to your computer
Go to:
Control Panel -> Devices & Printers -> Twin USB Joystick -> (right click) -> Game controller settings -> (depending on what port you've connected the PS2 controller, select the Properties on one of the "Twin USB Joystick"
you should see that the buttons respond. While you are here, I would click on the "ANALOG" button on your PS2 controller and make sure the red light is on.
Map the buttons to keyboard strokes
Open JoyToKey on your computer.
You need to first check these 2 options on JoyToKey under the "Others" tab.
-Use Axes other than X and Y.
-Use POV switches.
If you haven't done so enable ANALOG mode on your PS2 controller.
Go back to the Joysticks tab in JoyToKey, and either select Joystick 1 or Joystick 2 depending on what port you've connected your PS2 controller.
You should map your controllers as shown below.
AxisX(<0) A
AxisX(>0) D
AxisY(<0) W
AxisY(>0) S
Axis3(<0) I
Axis3(>0) K
Axis6(<0) J
Axis6(>0) L
POV1:UP W
POV1:RIGHT D
POV1:DOWN S
POV1:LEFT A
Button 1 4
Button 2 2
Button 3 1
Button 4 3
Button 5 8
Button 6 6
Button 7 5
Button 8 7
Button 9 Enter
Button 10 F5
Button 11 7, 9
Button 12 0
Enable Wifi Keyboard to run in the background
The trick to doing this is selecting it as the input method, and it stays running in the background. Follow the instructions on Wifi Keyboard by going to a URL in your Internet browser. Should be something like http://192.168.1.2:1111 Then select "Game mode" under Keyboard Mode on the web page. Click on the big area to type in called "Android input".
Open the GTA III app and enjoy.
Thursday, December 22, 2011
ASP.NET MVC 3: How to update EdmMetadata ModelHash when manually adding a field to a database
Having developed web applications for 8 years now, I've gotten very used to adding fields to existing web applications. It is not an everyday thing. Maybe not even a every month thing. But it is definitely a every major release thing. With that in mind, Microsoft's MVC 3 seems a bit incomplete in what they are recommending you do every time you need to add a field to a existing MVC web application.
Option 1: Microsoft's suggested solution? Add a few lines of code that will automatically drop the table, re-create it, then seed it through an Initializer class if it detects that the schema has changed. This may be fine for development, but since most people actually looking to do this is working on a production web applications, this is a bad idea even to propose as one of the ways to add a field to your web application. And you must be extra careful when implementing this on a simple table. Imagine you or someone updated the schema of a table that has a lot of valuable data, but you just want to update a few tables with a few rows of data in it and you could easily seed it. You turn this feature on and that valuable data vanishes without a trace for that customer.
Option 2: If you try to search for the solution, the number one recommended solution is to disable checking of changes to the schema. This isn't a bad suggestion. Just turn the whole darn thing off. You and maybe a handful of people are care about schema changes anyway. Why have this elaborate schema checking system in place anyway? The answer is that the customers have compliance requirements, and they are required that their web application meets those requirements. And a common one is that they be notified of schema changes to their database.
Better Solution: What MVC does is that it runs a consistency check by hashing the schema definition. And they don't provide a well documented way to update this hash value. What they should do is let the user put the database in a learning or training mode. So that if the schema changes, it will update the stored hash value to the new value. Then when you are done adding the field, you can switch off he learning mode so that it throws up the normal server error when someone has maliciously (or unknowingly) changed the schema without alerting the right people. So this is my solution to make all that happen:
Step 1: Open Global.asax.cs in your MVC web application.
Option 1: Microsoft's suggested solution? Add a few lines of code that will automatically drop the table, re-create it, then seed it through an Initializer class if it detects that the schema has changed. This may be fine for development, but since most people actually looking to do this is working on a production web applications, this is a bad idea even to propose as one of the ways to add a field to your web application. And you must be extra careful when implementing this on a simple table. Imagine you or someone updated the schema of a table that has a lot of valuable data, but you just want to update a few tables with a few rows of data in it and you could easily seed it. You turn this feature on and that valuable data vanishes without a trace for that customer.
Option 2: If you try to search for the solution, the number one recommended solution is to disable checking of changes to the schema. This isn't a bad suggestion. Just turn the whole darn thing off. You and maybe a handful of people are care about schema changes anyway. Why have this elaborate schema checking system in place anyway? The answer is that the customers have compliance requirements, and they are required that their web application meets those requirements. And a common one is that they be notified of schema changes to their database.
Better Solution: What MVC does is that it runs a consistency check by hashing the schema definition. And they don't provide a well documented way to update this hash value. What they should do is let the user put the database in a learning or training mode. So that if the schema changes, it will update the stored hash value to the new value. Then when you are done adding the field, you can switch off he learning mode so that it throws up the normal server error when someone has maliciously (or unknowingly) changed the schema without alerting the right people. So this is my solution to make all that happen:
Step 1: Open Global.asax.cs in your MVC web application.
Step 2: Add these lines to the top of the file:
using myMvcProjectName.Models;
using System.Data.SqlClient;
Step 3: Add these lines to the main class for your MVC web application (the class is probably named MvcApplication).
private myDBContext db = new myDBContext();
public void Update_EdmMetadata_ModelHash()
{
string newHash = System.Data.Entity.Infrastructure.EdmMetadata.TryGetModelHash(db);
SqlConnection sqlConn = new SqlConnection(myConnectionString);
SqlCommand sqlComm = new SqlCommand("UPDATE EdmMetadata SET ModelHash = '" + newHash + "'", sqlConn);
sqlConn.Open();
sqlComm.ExecuteNonQuery();
sqlConn.Close();
}
Step 4: Add this line to the top of Application_Start, to run the new function to turn on "learning" mode. Just comment it out when you are done:
Update_EdmMetadata_ModelHash();
Italic = change these values accordingly.
Monday, December 12, 2011
The reason why the Galaxy Nexus has been delayed
The real reason? Billions of dollars of potential revenue for the foreseeable future with NFC money transactions. What Google wants to do is thin-out your wallet by getting rid of all your plastic, but in a good way. I certainly would prefer not to carry around the debit cards, credit cards, club membership cards, and clothing line cards if I didn't have to. There might have been some appeal in the past, maybe 10 years ago, to carry around as much plastic as possible. But that time is long gone as it has become a nuisance to carry the right card to the destination you are heading to. Instead, Google is predicting that swiping cards will be a distant memory in just a few short years with NFC chips that is built into newer phones. Instead of using a plastic card, you will just have a digital copy of your card on your phone, and all you will have to do is touch the smartphone to the credit card receiver. The amount of cards you can carry will be limitless, and you don't have to carry anything extra in your pocket. A real win for the consumer.
Under our noses, Google has positioned themselves to be the first successful and soon the only NFC payment service people will want to use. Even though NFC payment services have been in existence for a while, these companies are still struggling to gain any market share or convince consumers to start using NFC instead of plastic. Google, on the other hand, has smoothly made our Google Checkout accounts able to accept NFC payments (renamed it as Google Wallet), and is about to enable the NFC capabilities into android devices that we already own and carry with us all the time. And this is happening at the right at a time when the adoption of NFC payment devices at retail locations is exploding or about to explode. Well played Google. They are poised to take a percentage from every one of our credit card transactions in the future. They are one move away from saying "checkmate." And us, as consumers, are about to love Google for enabling this service.
But who is holding up the show? Verizon. And understandably so. Verizon would rather not have Google Wallet pre-installed on the Galaxy Nexus, and instead would rather have their own NFC payment app installed, and want any other NFC payment app blocked from making it on the device. So this is the real reason the Galaxy Nexus, already stocked at retail locations, is not being sold at the moment. This landmark decision is so big that Verizon is willing to lose many customers daily to AT&T as AT&T is turning on their LTE networks like gangbusters at major metropolitan areas on a daily basis.
The way I see it, Verizon is fighting a losing battle.
A) People don't like using included apps provided by the carrier, aka "bloatware". They are usually not refined, and better 3rd party solutions exist. It has become a reflex to uninstall bloatware as soon as a new phone is turned on.
B) Even if by a slim chance Verizon gets everything they ask for, gets Google to agree to remove Google Wallet, and block any other NFC apps from accessing the NFC chip, it can easily be circumvented by rooting. To add to that, what is going to stop Google from wanting users from rooting their device so that they can get Google Wallet onto their devices? Google will be on the side of the consumers, not Verizon.
C) A low level root protection could be enabled on the Galaxy Nexus and if it actually worked and held, there would be a backlash of biblical proportions by tech review blogs that it would be the worst decision Verizon can make that all the money they spent to get exclusive licensing of the Galaxy Nexus and the first one to have ICS, will be negated, maybe lost due to the impact on sales.
In conclusion, as much as Google has become "big brother", I trust Google a billion times more with the integrity of my payment transactions. Speak to anyone who has dealt with Verizon's hidden charges, erroneous charges, cancellation charges (even after you've fulfilled your contract). The way they handle themselves in your face is criminal. Basically, you are likely to get some erroneous charges when you first sign up for their service. You call, and the person that answers your phone call is already pissed off at you before you even start speaking. Then after a long heated argument on why you shouldn't be charged for something you didn't order and would never use, they make it sound like they are forgiving you by removing those charges. Then when you get your bill, you realize it is still high because they are charging you $15-$25 of hidden fees and taxes. You call them about it, and they say they have no reason to control that because it is a tax by the government. Federal, state, and local. No other carriers do this as they pay these fees which is included in your service fees. Then say after 2 years, you're done with their contract, you decide to cancel. They send you a mystery bill. When you call them on why you are getting charged for service you no longer are using, they once again are pissed off before you even start speaking. Then they ask to go talk to the manager. And they come back and say that they are giving you a break and that the manager has agreed to reduce your bill to half the amount as a favor. This is a bill you shouldn't even be paying. Then the only option of paying your bill is over the phone. And guess what, Verizon charges $5 for phone payments. This is how they run their business. It works for them because a lot of businesses like using Verizon as their carrier and businesses are unwilling to go through this kind of hassle. They instead just pay. Do you want a company Verizon acting as the bridge for everyone of your transactions in the future? Absolutely not. I trust Google more.
Under our noses, Google has positioned themselves to be the first successful and soon the only NFC payment service people will want to use. Even though NFC payment services have been in existence for a while, these companies are still struggling to gain any market share or convince consumers to start using NFC instead of plastic. Google, on the other hand, has smoothly made our Google Checkout accounts able to accept NFC payments (renamed it as Google Wallet), and is about to enable the NFC capabilities into android devices that we already own and carry with us all the time. And this is happening at the right at a time when the adoption of NFC payment devices at retail locations is exploding or about to explode. Well played Google. They are poised to take a percentage from every one of our credit card transactions in the future. They are one move away from saying "checkmate." And us, as consumers, are about to love Google for enabling this service.
But who is holding up the show? Verizon. And understandably so. Verizon would rather not have Google Wallet pre-installed on the Galaxy Nexus, and instead would rather have their own NFC payment app installed, and want any other NFC payment app blocked from making it on the device. So this is the real reason the Galaxy Nexus, already stocked at retail locations, is not being sold at the moment. This landmark decision is so big that Verizon is willing to lose many customers daily to AT&T as AT&T is turning on their LTE networks like gangbusters at major metropolitan areas on a daily basis.
The way I see it, Verizon is fighting a losing battle.
A) People don't like using included apps provided by the carrier, aka "bloatware". They are usually not refined, and better 3rd party solutions exist. It has become a reflex to uninstall bloatware as soon as a new phone is turned on.
B) Even if by a slim chance Verizon gets everything they ask for, gets Google to agree to remove Google Wallet, and block any other NFC apps from accessing the NFC chip, it can easily be circumvented by rooting. To add to that, what is going to stop Google from wanting users from rooting their device so that they can get Google Wallet onto their devices? Google will be on the side of the consumers, not Verizon.
C) A low level root protection could be enabled on the Galaxy Nexus and if it actually worked and held, there would be a backlash of biblical proportions by tech review blogs that it would be the worst decision Verizon can make that all the money they spent to get exclusive licensing of the Galaxy Nexus and the first one to have ICS, will be negated, maybe lost due to the impact on sales.
In conclusion, as much as Google has become "big brother", I trust Google a billion times more with the integrity of my payment transactions. Speak to anyone who has dealt with Verizon's hidden charges, erroneous charges, cancellation charges (even after you've fulfilled your contract). The way they handle themselves in your face is criminal. Basically, you are likely to get some erroneous charges when you first sign up for their service. You call, and the person that answers your phone call is already pissed off at you before you even start speaking. Then after a long heated argument on why you shouldn't be charged for something you didn't order and would never use, they make it sound like they are forgiving you by removing those charges. Then when you get your bill, you realize it is still high because they are charging you $15-$25 of hidden fees and taxes. You call them about it, and they say they have no reason to control that because it is a tax by the government. Federal, state, and local. No other carriers do this as they pay these fees which is included in your service fees. Then say after 2 years, you're done with their contract, you decide to cancel. They send you a mystery bill. When you call them on why you are getting charged for service you no longer are using, they once again are pissed off before you even start speaking. Then they ask to go talk to the manager. And they come back and say that they are giving you a break and that the manager has agreed to reduce your bill to half the amount as a favor. This is a bill you shouldn't even be paying. Then the only option of paying your bill is over the phone. And guess what, Verizon charges $5 for phone payments. This is how they run their business. It works for them because a lot of businesses like using Verizon as their carrier and businesses are unwilling to go through this kind of hassle. They instead just pay. Do you want a company Verizon acting as the bridge for everyone of your transactions in the future? Absolutely not. I trust Google more.
Subscribe to:
Posts (Atom)

