Google App Engine

For the past few weeks I’ve been writing a web app using Google App Engine. It’s going really great! When I first started this job my understanding of any kind of programming outside of Android apps was incredibly small. Microscopic. My boss told me during my second week that he wanted me to make a web app that can audit all of the companies’ emails and display the export status of the audits. I had no idea what he was talking about. He tried to explain it to me but my understanding didn’t increase very dramatically. After I finished doing some small wordpress stuff he told me to get started.
He knew that I was very green and he’s been programming for over 20 years; so he helped me get started with baby steps. First he told me to write some python scripts to parse strings into dictionaries and lists and such. A few weeks ago I thought those smalls scripts were actually important. I thought they were some kind of back bone to the giant magical project. It took me a 2 weeks to gain confidence in writing scripts. Once I had made a few of them I showed Kevin (my boss) a few short py scripts that parsed a few piped strings. Those scripts were so beautiful to me. It’s really interesting to me how only a few weeks ago I knew so very little.

Today I’m almost finished with a Google web app that talks to Google to gain data about our google app domain. I use that data to fill up some html tables and I store it. Making this web app has been such a learning experience! A few weeks ago I thought that parsing strings was going to be the core functionality of some mystical program. Today I know just a little bit more. It looks like I’m going to be looking back often and seeing my Wizard skills grow. I’ve finally created a real website, with a real function and purpose. I’ve made a web app that actually does something useful!

Making this web app has taught me more of the basic principles of programming. It has taught me how some more of the little things work, like types and method parameters. I still have so much more to learn. It feels like I’m worlds apart from the guy who wrote those 100 line py scripts; but I also realize that I’m still extremely amateur. I’m very far from satisfied with my ability and my code. I’m going to work harder and harder to become a good programmer! (Goku)

Sir Jony Ive

Sir Jony Ive redesigns TIME

Python and Scripting

I learned programming on my own from youtube and thenewboston.org. I learned how to make an android app with java and xml and I felt like I knew a decent part of what programming is.

I was so fucking wrong.

Learning how to program on your own is great, but you will be ignorant to the basics of programming that they teach you in college. It’s hard to learn programming in a class room. You have to write code to learn code; that’s why I was able to learn enough to make something in my bed room. But college teaches you the fundamentals. After working as an intern dev for a month I realize how ignorant I was to the fundamentals of programming. While making my DBZ app I was sort-of frightened of command-prompt scripts and of APIs. I didn’t understand how important those aspects are to programming. I avoided them at all cost and I got very frustrated when ever I was forced to deal with sh scripts. I didn’t want to use any other code besides the code I wrote myself. After a month of writing scripts I see how silly I was.

All programs are scripts and they all are run by the sh. That’s why when you try to do more complicated things with your mobile app you will crash hard into the sh brick wall. Google and stack-overflow are the reasons why I was able to make my app. Other programmers are very social and very willing to help. Helping others code helps you learn more about your own code. It makes you more powerful and wiser. When I tried to make my second app and I needed to use other people’s apis I was so lost and confused. I have no idea what I was doing and why things weren’t working. I can’t imagine how long it would of taken me to learn if I hadn’t of gotten this job. I needed to learn the basics. I had skipped the basics and went directly to intermediate with the help of stack-overflow.  So when I wanted to use things like HTTP and OAUTH and parsing data I was completely in the dark.

I’ve used so many different new languages in the past few weeks. Javascript, HTML, CSS, Ruby, bash(? is that a lang?). It has really shed some light, and I’m more powerful than I was a month ago.

But yesterday…

Python…

I’ve been writing pure sh scripts for a few weeks. Then my boss says, “Do this in Python”. It was a project that he really wanted me to get done; to complete the project with a new language would normally be irksome but I’ve been using so many langs that they all seem so similar now. Or maybe I feel like it can’t get any harder than it is.

So writing my first real script in a new language. Wow, was that an experience. I had to manipulate big data and that made me learn what scripts are for. I learned what all programs do essentially; take data and return data. It all basically comes down to that. Python did me a favor and does the same things sh can do but with out all the unreadable code.

instead of       echo ” test test test ” | tr -d ‘ ‘

you can say    print line.strip()

Python makes scripting so much more pleasant. There is one thing I really don’t like about python. Whitespace matters in python. Really annoying because most OOP languages don’t use whitespace. It’s really annoying. Needing to turn on invisible characters just to know what’s indented is lame. It makes up for it by being fairly great. More pleasant looking than ruby. Maybe I will like ruby more once I start using rails.

Now I’ve been writing scripts for a month and only just today do I finally feel comfortable. I’m far from good. I’m very very bad. But today for the first time in weeks; when I write a script I feel like I’m writing DBZ HD again. I have the tools, so I can finally start fixing the problems.

My Second Website! (and other stuff)

I’ve just finished work on my second website. This is another wordpress website. Making this website revealed the problems with using the wordpress software to create a site. It’s very limited and trying to customize it is very difficult. I’m starting work on a 3rd website soon, and this one I want to make professionally.

blog.cuny-tap.org

WordPress enables you make a website very easily, but you pay the price with lack of control and inovation. You get a generic clone, copy-paste website used by thousands of people. If you want to make a real website you need to take it to the next level. Learn HTML, CSS, and ECMAscript.

The last two weeks I’ve been training myself. I’ve been studying Bash, ECMAscript, HTML, and I just started CSS yesterday. It’s really exciting. Two weeks ago when I thought about how to make a website I felt afraid. I was scared that I knew too little to be able to accomplish developing a good website. Now I feel confident I can make a decent product. I have a grasp of all web development concepts and I know how to build a website without using a handholder like wordpress. I’m going to make this 3rd website with passion. I finally feel the same spirit I felt while building DBZ HDTV. I know I’m going to be able to make this site really nice!

Soon; my first real website!

DBZ HDTV v3.1.5

4/05/13 ~ (v3.1.5) Back to Original Stream. This app was meant to be used by a few dozen people, I didn’t expect thousands of people to download it everyday. Until I can stop using Flash Player on this app I won’t be working on it much. There are many bugs caused by Flash Player and Android clashing and I’m not good enough to fix them yet. Hopefully Justin.tv goes HTML5 soon and I can remake the app for Android and iOS.

3/25/13 ~ (v3.1) Backbutton now goes to and from the chatroom. Added Flurry Analytics!

3/23/13 ~ (v3.0) Updated to original DBZ Dub! +bug fixes

3/16/13 ~ (v2.3) Menus Updated + Preferences Added

2/26/13 ~ (v2.2) PayPal Bug squashed + 2 AdMod Banners

2/19/13 ~ (v2.1) Volume Bug + RAM Bug fixed. Other small bugs fixed.

2/12/13 ~ (v2.0) Full Screen Stream/Chat + SWIPE support. Multiple bug fix.

2/10/13 ~ A full screen Stream/Chat update will be release soon!!

2/09/13 ~ (v1.2) Fixed Orientation Bugs. Updated for 4.0+ (ICS)! PayPal support has been added! No more ugly title bar! If you like this app please email me the problems you are having so I can fix them. Thanks.

My First Ruby Program

So I finally know enough Ruby to make some shitty code run. I like Ruby so far; I still have a mountain of code to learn.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


class Dollar
 @@final_amount_per_day = 0
 @@final_amount_per_week = 0
 @@final_amount_per_two_weeks = 0
 @@final_amount_per_month = 0
 @@final_amount_per_year = 0
 @@final_amount = 0
 @@amount = 0
 def calculate()
 amount = 8.50 #Enter how much you get paid (per hour) here
 @@amount = amount

hours = 8.00 #Enter how many hours (per day) you work here
 per_day = amount * hours
 @@final_amount_per_day = per_day

days = 5.00 #Enter how many days (per week) you work here
 per_week = per_day * days
 @@final_amount_per_week = per_week

per_two_weeks = per_week * 2
 @@final_amount_per_two_weeks = per_two_weeks

weeks = 4.00 #Enter how many weeks (per month) you work here
 per_month = per_week * weeks
 @@final_amount_per_month = per_month

months = 12.00 #Enter how many months (per year) you work here
 per_year = per_month * months
 @@final_amount_per_year = per_year

annuity_per_year = 544.43 * 12
 all_income = per_year + annuity_per_year
 @@final_amount = all_income

puts "You get paid $#@@amount an Hour",
 "You make $#@@final_amount_per_day per Day",
 "You make $#@@final_amount_per_week per Week",
 "You make $#@@final_amount_per_two_weeks per two Weeks",
 "You make $#@@final_amount_per_month per Month",
 "You make $#@@final_amount_per_year per Year"

 link = "http://www.gmail.com"
 system("start #{link}")
 end
end

object = Dollar.new
object.calculate

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The result is :

You get paid $8.5 an Hour
You make $68.0 per Day
You make $340.0 per Week
You make $680.0 per two Weeks
You make $1360.0 per Month
You make $16320.0 per Year

And my browser opens gmail for no reason.

Learning Ruby

I may of been accepted to an internship with a really good mobile dev startup. They use Ruby on Rails so for the past few day I’ve been trying it out. It’s more different than Java than I imagined. It’s simple and nice, but I still don’t know any of the syntax. Today I got Ruby running on eclipse and I tried out this tutorial. It runs, but I have no idea what it’s supposed to do. I think I’m supposed to assign file with some value and I never did.

I understand the code for the most part. I can’t wait until I understand it as well as I understand Java and XML.

http://neurogami.com/content/10_minutes_to_your_first_Ruby_app/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

class Launcher

def initialize app_map
 @app_map = app_map
 end

def run file_name
 application = select_app file_name
 system "#{application} #{file_name}"
 end

def select_app file_name
 ftype = file_type file_name
 @app_map[ ftype ]
 end

def file_type file_name
 File.extname( file_name ).gsub( /^\./,'').downcase
 end
end

def help
 print "
 You must pass in the path fo the file to launch.
 Usage: #{__FILE__} target_file
 "
end

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Simple Code

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


public void onBackPressed() {

if (chatChanged == "1") {
 chatView.loadUrl(url2);
 chatChanged = "2";
 } else {
 if (flipView.getDisplayedChild() == 1) {
 setStreamView();

} else if (flipView.getDisplayedChild() == 0) {
 setChatView();
 }

}
 }

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I added this to both apps today. I came up with it last night when I was trying to fall asleep. It made me remember how just a few months ago something like this simple code was really difficult for me to use. I really like how much better I’m becoming, and it’s exciting that I have a shit load more to learn. Can’t wait to have that knowledge.

I also added flurry.com analytics to both apps. It’s going to be very interesting to see how people use these HDTV apps.