RFS: A food/drink inventory tracker for homes

There's a startup/web app out there that I really wish existed: some sort of food/drink inventory tracker for my home. I think this will actually solve a pain that a lot of people have.

Pain: Wanting to know if you have a certain food/ingredient in your home, expiring food and the waste that comes with it, and being consious about food spending.

Demographic: Mostly families of 4+ (and especially those who shop at Costco or Sam's Club).

Well at least I know I have the aforementioned pain and that I fit the aformementioned demographic.

My family often buys food in bulk from Costco and often times we don't need all that food. This leads to a lot of waste and overspending. 

I think that an app that lets you track all the food items you buy, the date of purchase, and the expiration dates, would solve those problems. Ideally something that lets you take a picture of a receipt, enter in some expiration dates manually, then keeps it all in a nice database for you would be awesome. It would be even greater if on the app you can search for food/drink by tags/keywords and there would be a dynamically updated list on the side of "food expiring in the next 5 days" and "food that you bought a long time ago." In addition to all this, the app could recommend ways to serve the food/ingredients based off what is available, time of day, and the season.

Overall I think there is a lot of cool stuff here! And along with that, I believe that tracking all this will make people more consious of their food spending and will therefore result in spending less. 

The hardest part here is figuring out how the receipt-picture-taking would work exactly, and getting people to enter in dates manually. And also getting people to update what they just ate/used so that the food can be removed from the database or at least updated.

If someone makes this/figures it out let me know! My family could really use it.

Leaving for China tomorrow

Great food! Great (cheap) shopping! All my family! But no (real) internet. And an ocean away from the United States.

I think there's going to be a lot to enjoy while I'm there but I don't think I will be able to hold back my FOMO. What could I be doing (productive or not) if I was back in the US??

A lot of my meetings, calls to potential customers, deals with potential partners, and probably more will be put on hold for the most part due to the time zone difference and the fact that I will not be physically present. It's probably a bad sign that I'm young and stressing over little things like this. I really should be thinking about how much I will be able to enjoy my trip back to Shanghai (haven't been back to see my extended family in probably over 5 years).

I will do my best to enjoy it, but also will try my best to get as much work done overseas as I can. I'll also be going through some iOS dev stuff (just installed VMware image of Mac OS onto my Thinkpad) and CSS/design learning during my free time.  Overall I think (and I hope) the trip will be productive.

Either way, I'll still have to keep up this blog until November 30.. though it seems Dan Shipper has fallen off the face of the planet :).

Attending college right after high school is generally a bad idea

I have a feeling that most "kids" in college are not particularly sure of what they want to study in school or what they want to do when they get out of school (if someone has evidence to prove this, or otherwise please share). Given this assumption, I think that it makes even more sense to take a couple years off before you go to college. But even if this assumption is not true, I still think it makes a lot of sense to not go to college right away after high school. Let me tackle this both ways.

First, given that most kids are not particularly sure what they want to study or do it makes sense to take some time between high school and college so you can figure stuff out. I'm a proponent of being able to take time off, in this case, to explore different interests and career paths or just to party and hang around.

I think it's obvious why taking time off to explore different interests and career paths would be valuable for someone who is not sure of what they want to do. Through experience, someone can figure out what practical things they are good at, what they don't enjoy, and hopefully what they do really enjoy. So ideally, someone who takes time off after high school will go through these motions and get a better sense of the direction they want their lives to take, so when you go back to school you know what you need to focus in on. But in all liklihood, if you let a teenager loose they probably won't do the responsible thing. So let me explain why I also think it's important to take time off even if it's to party/chill out.

After taking it easy and partying for a while, a kid will probably wise up and realize that life is not that simple and will start to take more responsibility and go down the path I mentioned in my last paragraph. If a kid is never able to realize this after partying for a long long time, they probably would never have been able to get that beaten into them through being in the academic system for 4 extra years anyways. I personally know several kids that are really wasting their time in college, so I will extrapolate that there are millions of other students doing this whom I will never know. I define waste as: partying way too much, attending classes only on occasion (or not at all), and/or taking classes just for the sake of taking classes (and not because they are interesting or valuable in any way). These goof-offs are better off goofing-off while not in college. Doing this while in college is a waste of time, money, and a valuable opportunity. A parent will often say something like, "Stop partying and wasting your time! Trust me I know what's best, and what's best is focusing on school work."

Well as it turns out, parents and adults generally do know what they're talking about, but it's hard for us kids to see that as immature creatures. We listen and remember lessons better by learning from our own mistakes and making the decisions ourselves. So even though you Moms and Dads of the world are usually right, we probably won't listen and will go with our own gut. Why not let us go with our own gut, even if that gut says to party? Just make sure we're not in college while we're doing it. Let us waste our time when that time isn't worth $40K+ a year and wait for us to wise up, figure out what we want, and go back to school if we so please.

College can be extremely valuable. You have a wealth of resources from your classmates, to your esteemed/experienced professors, to the great choices of classes and extracirriculars. People would be able to attain much more value out of these resources if they knew exactly what they were trying to get out of them and if people weren't too busy being distracted by other goof-offy things. Therefore to me, it makes a lot of sense that someone who doesn't have it completely figure out yet should take some time to goof off and figure it out before they go to college and extract every dollar of value they can out of the resources there. It'd be much more efficient that way. For very similar reasons, someone who does know what they want to do should also take time off between high school and college.

Now given my first assumption was wrong, if kids did know what they wanted to learn/do they should still be expected to take time off between high school and college. The first obvious thing is that people often think they want to do something before they actually do it. So taking time off gives those people a chance to try it out, and really figure out if they want to do it. If they really did want to do it, well nothing is lost because at least you get some valuable experience out of it. If it turns out that the person didn't end up actually liking what they thought they would like, well then they just saved a lot of time and money figuring it out before they went to college.

There is a less obvious reason for why someone should take time off if that person already knows what they want to do with their life and that thing has a high liklihood of not changing. Let's say I know that I want to be a programmer. Taking time off to try to do that and getting some experience will still be extremely valuable for me because 1) I'll figure out what parts of programming I really enjoy and 2) which parts I really suck at. Knowing both these things will help me extract more value out of college. I will be able to choose which classes to take, professors to talk to, people to interact with based off what I know my particular fancy is and based off what I know I need to learn more about and get better at.

All of these reasons I mentioned about why taking time off between high school and college is good revolve around extracting the most out of college as possible. This should tell you that I am not actually against college and higher education, I am just for a different approach then what is traditionally acceptable. As I mentioned, I believe college has several great resources for people and that everyone should recognize it. The only thing is, I believe that you should optimize your time in college. And I think that for everyone, no matter what your case is, you can optimize your time there by first taking some time off between graduating high school and going to college.

I think that going to college is still generally a good thing so it should still be commonplace for people to attend college. I am just proposing people shift their views about how fast the turnover should be between a student exiting high school and entering college.

Would definitely love to hear your thoughts in the comments!

RIP 1983 BMW 320i

Rest in peace, friend. Today we officially (sort of) say goodbye to a very (very) old friend - let me clarify that he is very very old, but has not been my friend for that long of a time. 

While trying to install a new battery into the 1983 BMW 320i sitting in front of my garage, my friend and I heard a *thunk*. We thought nothing of it, until we walked around the car a few minutes later and noticed the exhaust pipes and muffler had fallen off the car... There they were just rusted off this masterpiece BMW.

Given I hadn't driven this car for a while, and it was only given to us recently, I was still hoping there was some chance to breathe life into it. My friend really needed a car and didn't want to spend much, so I was planning on giving it to him practically for free! 1) I get to help a friend out and 2) I get to vicariously live through someone who gets to drive that sweet BMW on a daily basis.

It just ended up needing too much fixing, and it probably wasn't worth it. At 260K miles, we knew we had to replace the battery, the alternator, and now also the muffler/exhaust pipes. Now this is what we found after just extremely basic inspection. I imagine if we looked any further, there were probably other parts that needed fixing or tuning up. In fact, I could easily imaginge my buddy driving down the highway and not realize that he had been losing bits and parts every so mile or so until he ended up home with nothing but two wheels and his comfy seat.

It was the right decision though to say, you know what there's too much risk involved and already a lot of money I'd have to up front for a crappy car. So I would have walked away too. But now, I have to either find a super passionate car-fixer-upper, or donate this guy/gal.

Frugality vs Stinginess

There's a fine line between being stingy and being frugal. You can choose to not waste money - that's frugal - or you can choose to hoard your cash - that's stingy. It's such a fine line because what counts as a 'waste' and 'basic necessity' is often subjective and very open to debate.

Here are a few things for consideration when talking about being frugal versus being stingy.

Choosing a living space. It can be argued that for your place of inhabitance, all you need is space to sleep, eat, and shower, and that's that. I think that may be true for some people, but for many people having the basic minumums could be a hinderance on productivity and happiness. I think that for what I know about myself, I can be perfectly content with just enough room for an air mattress, and some space to set up my laptop and a couple of plates for food and food I consumed the days before (since I refuse to clean up often). The thing is not everyone can live like this. Some people genuinely will become unproductive or demoralized without a certain level of comfort met. You have to decide if you still want to work with those people - if you do, you have to learn that this means you can't try to force them to be too 'stingy' - or if you want to find people like you. So being "frugal" or "stingy" in this case is just what the level of comfort someone must have before their mood or work is impacted. Again for me personally, my frugal tends to be a lot of other people's stingy. I'm okay with very very basic needs.

What to eat. Again, this is not cut and dry. You can decide to feed yourself the basic nutritional needs and could consider that frugal. But almost everyone else would find that stingy. I actually have found that empiracally, I do get a happiness boost if I eat good food over just basic cheap food. Being full is important, first of all, but being satisified can be just as important. It's all about morale, I suppose. Being frugal here is just trying to buy groceries on sale as often as possible and planning ahead, while stingy would be just always buying the dirst-cheapest thing available.

What office supplies to get. There are some clearer measurable metrics here, so this is probably the most objective out of the three. I think you could clearly measure productivity boosts that an extra monitor provides, or a separate keyboard/mouse, or even quality pens/pencils. I would say with office supplies, it can be good to spend some money here. Obviously, don't go buying huge monitors for everyone and their mothers, but make sure you don't limit your productivity by not having something you need. Being frugal here, I would say is just trying to get the best deals for the things you need. Being stingy would be telling everyone that just a laptop is enough and to go with Toshiba or something ridiculous like that. 

Overall I think being frugal means, spend the least amount of money possible so that you can be productive without thinking about what else you might need or having things get in the way. Being stingy would cause you to really be worn down by the environment. That would be bad.

Always find a key take away

I think it was JBiebs that introduced this principle to me first. I was back at Penn last year and we were having lunch. I was asking him for advice on what classes to take and how to get the most out of him. Something that stuck with me was what he said about how he always makes sure he has at least one key take away from the classes that he takes. One sentence that summarizes the most important concept he learned. 

A few reasons I think this is a good concept to apply to several things are that 1) it really makes your brain reprocess the information that was thrown at you and that itself helps you retain information better, 2) because it's one sentence it's even more likely that you'll remember it, and 3) because of 1 and 2 you're likely to really have gained value from that one class or whatever.

Today I had several meetings in a row and decided that I might try using this "find a key take away" thing to see if it does any good. Immediately I found myself really thinking about the conversations I had more than I normally did. Usually I would forget most of the notes that I took. In addition, being able to synthesize it I am now able to really internalize the lessons and advice that was given to me. I think this is something I am going to continue doing.

And this shouldn't only apply to meetings with people who offer advice and guidance. But it can be used on a daily basis for all tasks. After you do some Google-fu for research, after you read an article on Hacker News, or after you finish trying to figure out what way to design your next batch of code. Next time I'm going to use this method and figure out how much it will improve my life and the amount I learn and retain what I learn. My hypothesis is that it will be really beneficial.

Patent Trolls

Patent trolls are lame. Same with trademark trolls. And other trolls that just frustrate and waste the time of startups. Today I spoke with a startup that wasted valuable time and money fending off a pesky trademark troll. What a waste! But what else could they do?

I think Google was right in adopting the motto "don't be evil" because it really make sense for the technology world (and really the world as a whole).

It seems so simple, yet it's not common practice not be evil. I think the good thing about laws are that they establish somewhat of a boundary of no matter what you absolutely cannot be THIS bad or you will be punished but the issue with them is that many people (including myself) decide that "rules are meant to be broken" and there is no perfect rule that is not exploitable. So people will typically either exploit rules to exploit them, or people are genuinely a little evil but sensible just enough to not want to get arrested or sued themselves.

This general attitude of "but I'm not breaking the law" is what I find annoying and useless. Being good is not just being loyal to the PoPo but loyal to generally having a good moral compass. Now that is VERY subjective but I think there are a lot of things people can generally agree are good and bad. And also, more often than not, perpatraters who claim they know no better, really know the difference between 'evil' and 'good' and decide to be 'evil' because it's legal.

In general the law should not be your moral compass. 1) because the law can be wrong sometimes and 2) the law is just the boundary case of what is absolutely unnacceptable. I'm sure there are a lot of exceptions to this, but I make it simple for myself so it's just how I see things. Certain things are right and certain things are not.

For instance patent trolling is wrong. A patent is a legitimate way to encourage innovation, so don't use it to hinder it. Someone who just squats on patents and tries to debunk any somewhat successful person from building something awesome (or just wasting their time/resources) is evil in my book. Or at least not good. 

I know this is kind of a ramble. But it kind of makes sense.

TL;DR - don't be evil. 

A constant of sports and startups - always fail at full speed

This is a post that I've been meaning to write for a long time and I probably won't do justice to. So look forward to me rewriting it in the future :). But a valuable lesson that has (literally) been beaten into my brain since I started playing football in 3rd grade is always go full speed

Some of the more obvious safety beneftis of this is when you slow down or hesistate in football, you tend to be more prone to twisting your ankle or falling the wrong way and hurting your wrist/fingers. Also when tackling, when you slow down your opponent always seems to be able to knock the wind out of you that much easier. I can't explain how this works scientifically, but empirically I've noticed these things during my 10 years of playing time. 

And beyond just avoiding injury or getting pounded by a huge lineman, there seems to be a clear mental benefit in failing at full speed as well. Your body tends to remember the decision it makes, and it was right, it will repeat it. If it was wrong, it will avoid it. Again I have no scientific way to explain this, but I'll give this one my best shot.

I attribute this phenomenon to muscle memory. As an athlete, you will find yourself doing a lot of tedious drills. The point of this is to gain muscle memory for the basic skills you need for whatever sport and position. That's why drills tend to be easy, then hard, then easy, then hard, etc. Because you usually will build muscle memory for somehting very basic, move on, get used io it, then it becomes basic to you, and you have to move on, and etc. My observation is that drilling tends to be very effective, and my hypothesis is because it banks on muscle memory (which for many people is very effective). A lot of math people to do it too (I know b/c I used to be a mathlete). In school, we get drilled on fractions, times tables, etc. This is all because muscle memory is great for a quick and reflexive response.

This is why making mistakes (or failing) at full speed is important. Because failing at full speed enough times, will make you instincly know that it's the wrong thing. It means that you will be able to make the right decision faster, because your brain has been trained to see what's wrong. Maybe you won't instinctly know what's right but you'll instincly know what's wrong and if you fail enough times, logic says you'll eliminate all wrong options and therefore you will know what's right afterall. That's right there is an argument to fail fast. So you can get to the right option faster.

But just like with sports/math/whatever, some people "get it" faster than others. And some people develop that instinct after shorter periods of times than others. It really just depends on how smart you are, and after a certain point that is probably out of your control.

So segue into startups and real life... the more you make business decisions at full speed, the more likely that if it was the wrong decision, or a mistake, you'll build the instinct to avoid it.

The thing people end up doing wrong is overthinking and taking too much time on decisions. You'll never be able to internalize that decision process unless you're a super genius (which some entrepreneurs might be). So think about it, and go for it. This is why VC's encourage companies to go after high stakes really quickly. I think it's not only because that's how fund math works, but because it's how great companies are built.

And this principle of failing at full speed applies to life too! Try it next time, smarty! When you're lost and you have to decide to turn right, or turn left... next time don't think too much about it and just go for it. It will be better for you in the long run. Trust me.

How to hack several systems - all you need is a gmail address

So there is a simple hack you can use almost all across the web that I only recently found monetary value for. You can tell me what you think the ethics of it are, but let me first explain to you what I'm talking about. To participate in this, all you need is a Gmail address.

What I found out a long time ago from a friend is that Gmail has 'dot blindness,' or in other words wesley.zhao@gmail.com is functionally the same as wesleyzhao@gmaill.com, w.e.s.l.e.y.zhao@gmail.com, and wesleyzh.ao@gmail.com (etc..). If you send an email to any one of those email addresses, they will end up in your inbox (assuming that's your username).

Now the big question is...how can I use this new found knowledge to my advantage? Simple. First case is with Twitter. As someone who builds web apps now and then, I also like to get Twitter handles for those projects on occasion. Twitter doesn't allow you to sign up multiple accounts on the same email address (very similar to almost every single service out there which requires an email on sign-up) because usually that's the unique identifier in their records database. With this cool dot blindness knowledge, you can know sign up an infinite amount of accounts using just one Gmail account with varying numbers of dots. And as I breifly mentioned earlier, this can be applied to almost every single web service that requires an email and you would like to have multiple accounts for whatever reason.

Now the second way that I've found use for this, that also has some monetary value, is the new Red Robin Royalty Card promotion. If you get a loyalty (or royalty) card from them, you get a free appetizer within 15 days of registration, and a free burger on your birthday. All you need is an (unique) email! Well... needless to say. I may have found my way to several free appetizers and free burgers on consecutive months. You figure out how I did it. Should be easy if you've been paying attention.

Wake on LAN (WOL) stopped working randomly [FIX]

Recently I set up a server on my dinsasoar home computer that nobody used. I loaded Nginx onto it was able to successfully set up some secure SSH on it. I was pretty excited, and will definitely write a post about that later.

One of the things that I tried to do was set up Wake-on-LAN. This is a feature that lets you basically send a TCP packet to a computer (must be connected over ethernet because it targets IP and MAC address) and then it wakes up the computer from a shut-down state. 

So I ran into an issue that I eventually found a solution to. My WOL feature for my home nginx server wasn't working after it had just worked. I fiugred out why thanks to this post:


Apparently if you don't shut down the computer cleanly (e.g. you are forced to hold the power button) something gets fuxed up and doesn't work.

After I turned it back on, and shut it down cleanly. All was god.

WOL setup is pretty simple though to begin with.