Make Bold Claims

Stumbled upon this really great promoted Tweet today that I liked enough to click on (and bookmark), and wanted to make sure I wrote a little blurb about here on the blog for future reference:

The thing that stood out to me the most about this tweet was the claim of being “the world’s largest icon libary.” At first I think I sort of just took the author of the tweet’s word for it, but being a “promoted” tweet I then sort of realized that the advertiser was likely just making this claim up regardless of how accurate it may or may not be. However, Vincent appears to operate a fine icon library, which I may go ahead and use in my app here in the near future. But most importantly, I’m definitely going to steal Vince’s marketing strategy of making bold unverified claims about my product. Thanks for the hot tip Vinny!

 

Search Everywhere

A while back I created my own “search engine” called BuckBuckMoose. It was a one night project that simply redirects search queries to both Google and DuckDuckGo so that users can “search DuckDuckGo without fear of missing out on Google.” I built this tool to scratch my own itch. As an IndieHacker I like to support the little guy, DuckDuckGo, but I’ve found that I don’t search as often as I’d like because of my “fear of missing out on Google.”

The tool worked really great for awhile, but it’s pretty janky as the search results are launched in two new browser windows which I’ve come to find quite annoying. I programmed the tool at the time to work this way because well… it was the only way I could get it to work. However, I think I’ve found a better way: Googlespider

Tonight I’ve been playing around with scraping Google using Python and BeautifulSoup along with a couple of other libraries. However, Luke Maxwell at Hyperion Gray has released a neat Python library called Googlespider which apparently makes all of this a lot easier, so I think I want to give it a try.

A really good friend of mine once checked out BuckBuckMoose and thought it was pretty cool if I remember correctly. She exclaimed something along the lines of, “search everywhere!” So I think that’s what I’m going to call this thing going forward, SearchEverywhere.

 

Hi my name is Topher…

and I’m addicted to registering domain names on GoDaddy.

 

fatcamp.app

And one more domain while I’m at it: fatcamp.app

At the moment I’m focusing almost all of my creative energy on my personal finance tracking app, MoneyPhone, but I do want to play around a little bit with some other side projects that I can start using in personal life in a much less polished form. The idea for FatCamp is a weight and calorie tracker app to help me lose weight. And I want to use ReallySimpleTV and Castflix for consuming media.

Anyway, the domain name buying spree is over. I know, I have a problem 😉

 

castflix.tv

The domain name buying spree continues: castflix.tv

Was thinking this could be a sister site to reallysimple.tv, but for streaming on demand content instead of live. Will try to justify this purchase as a “birthday present for Dad.”

 

reallysimple.tv

Just registered a pretty sweet new domain: reallysimple.tv

Think I’m going to use it as a sort of birthday present for my father Captain Dave. He has a few live streams that he likes to watch, and I think he could definitely use a little RSS Powered Television on his Amazon Fire Stick.

ReallySimpleTV— RSS Powered Television [Coming Soon]

 

How to Prevent a Button from Changing its Border Color and Background Color When Clicked in CSS

This code snippet is brought to you by the developer of MoneyPhone, a personal expenses tracking app for Android and iOS. Quit living paycheck to paycheck and get your personal finances under control when you start monitoring your spending with MoneyPhone!

Okay, so you want your HTML <button> tag to stop displaying a solid border and changing its background color when clicked (using CSS). Here’s the quick fix for iOS & Android =>

<!DOCTYPE html>
<html>
<head>
<style>
.noFlash {
/* Remove onclick Background Color Change */
/* REFERENCE: https://bit.ly/2Yc95wR */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: transparent;
}
.noFlash:focus {
/* Remove onclick Border Color Change */
/* REFERENCE: https://bit.ly/2KFgNG7 */
outline: none;
background-color: white!important;
}
</style>
</head>
<body>
<button class="noFlash">CLICK ME</button>
</body>
</html>
 

Marketing Like Dr. Squatch

This really great ad from a soap company called Dr. Squatch keeps popping up in my YouTube feed, and I just wanted to bookmark it here on the blog for reference. Here in a couple of weeks I plan on “re-launching” my personal finance app, MoneyPhone, and I’d like to shoot a similar style ad for MoneyPhone:

And no, I didn’t purchase a bar because it’s kind of expensive. But I still love the ad. #CopyWhatYouLike => http://paulgraham.com/copy.html

 

A Mix of Entertainment & Education

This blog post is brought to you by the developer of BitBudget. BitBudget is an automated budgeting app for Android and iOS which syncs with your bank account and helps you avoid overspending. If you’d like to quit living paycheck-to-paycheck and get a better handle on your finances, download it today! https://bitbudget.io

Almost everything I do I try to have a mix of entertainment and education. There’s a sweet spot between those… If it’s too entertaining you don’t learn anything, and if it’s too educational nobody listens.

Russ Roberts
 

How to Build a RESTful API in Python with Flask in 50 Lines or Less

This blog post is brought to you by the developer of BitBudget. BitBudget is an automated budgeting app for Android and iOS which syncs with your bank account and helps you avoid overspending. If you’d like to quit living paycheck-to-paycheck and get a better handle on your finances, download it today! https://bitbudget.io

Really simple example of how to build an API with Python and Flask that listens for HTTP requests and spits out JSON. The hard part of all of this is building the JSON with python. For really simple JSON we can just use a dictionary. However, where things get complicated is if you want your JSON objects to contain objects. The work around I’ve found is to simply create a dictionary of dictionaries, where we will use dictionaries instead of objects. In the example below first_category, second_category, and third_category would normally be represented as objects, but have been converted to dictionaries instead:

# Import Flask
from flask import Flask, render_template, request, jsonify, session, redirect, url_for, Response
app = Flask(__name__)
# REFERENCE: http://blog.luisrei.com/articles/flaskrest.html
@app.route('/dictionary-to-json-test', methods=['GET', 'POST'])
def dictionary_to_json_test():
list_of_categories = []
first_category = {
"name": "Fast Food",
"number_of_transactions": 13,
"amount_spent": 427.33
}
second_category = {
"name": "Restaurants",
"number_of_transactions": 1,
"amount_spent": 54.0
}
third_category = {
"name": "Entertainment",
"number_of_transactions": 2,
"amount_spent": 125.0
}
list_of_categories.append(first_category)
list_of_categories.append(second_category)
list_of_categories.append(third_category)
dictionary_of_dictionaries = {
"category": list_of_categories
}
# Convert Dictionary to JSON
json_obj = json.dumps(dictionary_of_dictionaries)
# Create Response Object
response_obj = Response(json_obj, status=200, mimetype='application/json')
# Return JSON (Response Object)
return response_obj
if __name__ == "__main__":
app.run()