Latest Entries

Getting schooled

I’m not going to go into the gory details of what might have happened this weekend, but I will share the knowledge gained. While this may appear to be for the benefit for you the reader, its more important for the writer in this instance as I want these lessons seared into my brain.

1) If you ask about a projector, carry both possible adapters—not just the one you have handy.
2) If you have a base of support in a big meeting, stick with it. More on this in a second.
3) If you know of opposition in that meeting, do not acknowledge it by bending to it in advance. Prepare for it—but above anything else, STICK TO YOUR GUNS. Give no indication that you are considering another approach or concept. Nothing is worse than someone who appears to be on the fence. If you want to alter direction, fine—but give them the chance to feel like they have guided you to the solution. Showing that you are capable of being guided is just as important as leading the innovation.

In short, you can prep your way right out of an opportunity just by showing all your cards.

Sadly, I thought I had it nailed until I watched the situation unfold and discovered that I had prepped until 6 in the morning for all the wrong questions.

We’re always told to fail as fast as we can. On Saturday, I managed to wipeout in just under 30 minutes.

Opportunity likely lost, but knowledge gained.

I can at least be thankful for that.

Solving for Backstretch

What I am learning through week 9 of Code Academy is that there are about 3000 different facets of code that you could spend your life learning and still only be scratching the surface.

This all only becomes more interesting when you begin mixing the various languages together.

As a complete noob, I feel compelled to share with you my dilemma of the evening—utilizing the jQuery Backstretch plugin for Rails.

Mind you that I’ve heard for months how easy jQuery is. That probably is true but when you try tackling learning jQuery and the Rails asset pipeline in the same week, it all can seem a bit daunting.

Luckily Ginny Hendry was floating by on her way out of Code Cloud when I was struggling with getting Backstretch piped into my app.

The app I am working on is really no more than a Launchrock page, but I am trying to build it from the ground up with no step-by-step guide for how to construct it. Needless to say, the seasoned developer could probably produce what I have done over the course of a day in about an hour. Maybe faster.

Which brings us back to Backstretch. It’s a really cool plugin for handling background images and sequencing using jQuery, that just happens to have been produced by resident Chicago nice guy Scott Robbin.

Truth, I was cursing him for about an hour. Not because of his work, but because of my inability to grasp how to plug in what he did into my environment.

The true culprit? My unfamiliarity with the asset pipeline.

Forking the repository and cloning it to my machine was a piece of cake. As was grabbing the minimized file and moving it into my app.

The question was where in the hell am I suppose to put it? My first assumption was to append it to my application.js file as we had done some of that in class recently.

But this wasn’t my code, it was a plugin from github. So it needed to live in the vendor/assets/javascripts folder.

So awesome. It’s now in the right spot. How the hell do I call on a plugin in the vendor folder?

You have to adjust your application.js file to work much like your application.css file. You have to add a file to the structure for the application.js file to include with the app. And that is where vendor.js comes in.

Vendor.js follows along in the asset pipeline model and collects all needed items from the vendor/assets/javascripts folder and appends them to application.js.

Again, awesome. How the hell do I actually call on the plugin?

That is where users.js.coffee.erb comes in. But you will likely only know this file as users.js.coffee. To change the file name without upsetting git you will need to navigate to the file in terminal and then proceed to

git mv users.js.coffee users.js.coffee.erb

This renames the file to allow for the addition of erb while not upsetting git.

From there it was a blur of trial and error involving the sample code from Scott’s site

$.backstretch(“http://dl.dropbox.com/u/515046/www/image_name.png”);

and making it ruby-friendly for inclusion in the asset pipeline

$.backstretch(“<%=asset_path ('image_name.png')%>“);

The important key was that we were attempting to use image_tag when rails wanted us to utilize asset_path.

I wish I was an expert at rails and could intelligently explain the difference, or why one broke and the other didn’t. All in due time.

The key is that Backstretch does a great job of not distorting your background images and allows you to quickly add a little modern flair to our apps.

VC day notes at Code Academy

Many of the passages here may not reflect exactly what was said, but may in fact be paraphrased for speed of capture)
In short, if something sounds off, it’s probably my notes and not these guys…

Speaking from left: Paul Lee, Lon Chow, Chris Conn, Tyler Spalding

Idea or team?

CC: Pick athletes, not specialists. Make sure you have people who can pivot with you.

TS: No matter how good the idea is, it really comes down to the team.

PL: Investing in startups is like marriage. Lightbank is a great team in a market that is interesting.

What do you look for in unproven entrepreneurs?

PL: Looking for conviction and passion behind an idea. Conviction and evidence of it. Do you have any skin in the game? What have you invested? How much do you believe in the idea?

LC: Where have you come from? Where are you at in your life? A 20-something will need maturity and must project it?

CC: Emailed Lightbank 7 times (jk)… People buy into him because he listens. He also exudes passion. Its something that he has to do.

TS: Emphasize where you come from when you talk to Angels/VCs. Can you get an introduction through someone they already invest in? You can’t sell someone in 5 minutes, you need to go have coffee, get the longer 30 minute meeting to properly sell yourself.

Best pitch, worst pitch.

TS: Share the air… Brilliantly terrible. The best pitch will be able to show traction. Whatever it is, SHOW TRACTION.

CC: Worst pitch, his own. When you don’t get any engagement, you know. When you aren’t prepared, even the best product can come across half-baked. Best pitch, went out before the site was launched but you could show the product. Don’t pitch something that you can’t show.

LC: Won’t pick. But here are the pet peeves: Know your business. Know your industry. Don’t be the ‘We’re Ebay for Blank’ person. Use your own words to express what you do. Go to slideshare and study the decks, but focus on showing what you’ve done to build the business. Both CX & TX came across as very smart in their pitches.

PL: Show a product that actually works. Be able to tell a story—About yourself. About the business. Most VC’s can only remember 3 things coming out of the pitch. Can you singe the right 3 things into their head? Zaarly had no traction, but you could see the potential. What is the story? What is your background. What is the product?

When is a startup ready for funding? What metrics do you need?

TS: Depends on the business and the industry? Investor A and Investor B will need different things? How is your team constructed? Tell everyone your idea to everyone on the planet and get the feedback. See where you are.

CC: Metrics you need: When do you get purchases from people you don’t know. Raise money when you can spend a dollar and get more than that back. Bootstrapped his company with a 2-month old in his lap.

LC: To get investment as a first-time entrepreneur, you need to have a level of skin in the game. Can you bootstrap the business until the point that you can show traction? Address an unmet need. Disrupt an industry. Don’t try to build Twitter in Chicago. Build something that people will pay for if you want investment here. Some of this is based on the ecosystem differences between Chicago and the Bay area.

PL: Some people are looking for large user engagements. For Lightbank, they look at CAC (customer acquisition cost)/LTV (lifetime value). You can’t build Twitter here because you don’t have the technical base to support it here—yet.

How do you meet investors that will be a good fit?

TS: Do diligence on the investors that you might met? Who have they invested in. Look at Lightbank. Who have they invested in. They have 38 companies. Go talk to people they have invested in. Ask them how they got in. Ask them how they broke through—IF—you think Lightbank would be a good fit for your company. Go find the portfolio companies.

CC: Start talking to people before you need something. Write thank you letters. Build relationships 6-months before you actually have to ask for something. It was 6-months of relationship building before the actual fundraising begins. Wanted to spend more in Oct. It was the following Sept. before the capital was in hand.

LC: Value-added investing is way overrated. If you need money, get that first. But find investors that you can trust and that you respect. Make sure you can get along with the investor. Who is/isn’t difficult will be defined by you (its a personal preference).

PL: Lon knows everyone in the city. I’d go from friend/family to a VC round and skip the angels. Chicago Angels are hard to find. They stay anonymous. There is a premium on speed. How fast can you work? Lightbank has closed deals in 4 weeks. Raising money shouldn’t bog you down. Get money and go build as fast as possible.

CC-counter: Read Brad Feld’s term sheet series front-to-back before you pitch. Get your docs done before you pitch. Only one person backed out. It took two years to build the business model to the point that he was ready to pitch to VCs. Saw two tech bubbles and this approach was made to weather such market issues.

LC-counter: There is no right answer. Investing is somewhat like parenting. There are so many moving pieces that a single approach simply doesn’t exist.

TS-counter: Figuring out who’s money I wanted to take ended up being a fulltime job for a month. We pitched investors on a working prototype. The traction was limited to the users who were allowed in as alpha tester.

Random answers (sorry, didn’t catch the entire question, but I think you can make out what is going on from the answers here)

CC: Plenty of businesses that made money have been shut down after taking on investment because they didn’t make enough money.

LC: Will people use it? Will they pay for it? How much does it cost to acquire users/customers? Know the answers to these and more before you raise. … If I can’t invest in a company, I’ll tell you why. If you go into a meeting and you don’t know what you want—don’t ask for the meeting. Do your own homework first. Don’t waste peoples time—this goes both ways for founders and VCs.

It’s not about raising capital. It’s about building successful businesses. There is nothing wrong with building a small, positive cashflow business.

CX: If you can’t break through to talk with VCs you might want to think about doing something other than being an Entrepreneur.

PL: If you want to pitch Paul Lee, send him a tweet with a link to your site. A meeting might follow. It’s fair to follow up—even encouraged, but don’t pester.

PL: You support your CEO until you don’t. It’s 100% support—or nothing.

LC: It’s not about getting fired—it’s about getting things done. You might be the right person to get the company started but you might not be the right person to take the company to the next level.

PL: VCs sell money for a living and take a long view on making money.

LC: You failure will be measured by how you handled yourself through the rough times. Did you do everything you can? Did you treat people the right way? Or did you bail, mistreat your funding and the people who supported you. Failure is when people show their true color.

PL: You can fail once or twice but on the third try—go find something else.

02/14 Rails Class Notes

First class after hack weekend… this should be interesting.

on tap for today/thursday…

model associations
cookies
sessions
user accounts
model callbacks
seed data
layouts

product.reviews = proxy

you can call methods on a proxy

a product has many reviews (associations)

def new
@review = Review.new
@review.product = Product.find(params[:product_id])

– this code will break if you do not have a valid product id , to fix the issue you need an if statement –

if params[:product_id].present?
@review.product = Product.find(params[:product_id])
end

– however to really fix this issue, you need to use find_by_id… if no id is found, now it will only return a nil value and won’t create an error –

if params[:product_id].present?
@review.product = Product.find_by_id(params[:product_id])
end

– you can continue to refactor and simply remove the if statement when using find_by_id –

@review.product = Product.find_by_id(params[:product_id])
end


time to strip out the product selector

Welcome to Hidden Form Fields…

Product page => URL => New Review Form => Form Field => Create Review

The new review form customizes itself based on the URL… however, the ID for the item needs to continue along with the item passed the new review state

(in _form.html.erb)
<% if @review.product.present? %>
<%= f.hidden_field :product_id %>

notice that the = sign is present. = isn’t just about being shown, it’s also about being injected into the HTML. the content needs to be added to the HTML, but it needs to be hidden—thus = is needed…


map and collect will both go through your collection and give you each element back

[1,3,5].map do |n|
puts n
end

w = [1,3,5].map (or collect) do |n|
n * 2
end

puts w

if will run anything that doesn’t return nil or false… if that statement does return a nil or false, then it will run an else statement if provided…

SESSION DATA/COOKIES… nom, nom, nom….

In every browser, there is a cookie monster.

Every cookie has a name and a value. Each cookie has a name/value pair. Expiration is optional.

No expiration date means that it only will last as long as a user session as dictated by the browser. Although you could control the length by setting the length manually.

The cart_id is saved on the client side.

The whole cookie jar comes across with every request.

To add cookies to the session..

session[:name] = value
(this dictates what cookies are sent to the browser and creates a new cookie)

Each cookie is limited to 4K of data and will allow about 20 cookies per domain.

seed files… and gemfile kaminari

Seed files are great for creating dummy data

02/13 HTML5 Class notes

Just simply go to shayhowe.com and scroll down to lesson 5 if you want the backstory to everything being shown here.

Yeah! Typography! #printnerd

H1…
no longer limited by the 1-per-page google rule. Now HTML5 allows you to have one per each significant area of the page.

Citations & Quotes…

Actual Title will be viewablerest of sentence about the item being discussed goes here.

Used for titles of work and references

Dialog & Prose Quotation

Steve jobs once said, “quote is here.”

You can also add citations to quote elements

External quotations…
use

, and you can add citations to the mix using

You can automate quotes… which is cool for getting around those weird apostrophy issues

to use RGBa write it like the following…
rgba (0,0,0,0.5)

but remember to put a non-translucent element with it for older browsers
#555
rgba (0,0,0,0.5)

color shorthand take the 6 numbers in a hex and pairs them into single elements where available
#ff6600 becomes #f60
#ffff00 becomes @ff0

Items that are two words should be displayed back in quotes in code… ‘Helvetica Neue’

Fonts, fonts, fonts!!!

fonts-style: accepts four values: Normal, italic, oblique and inherit.

font-varient: accepts three values, normal, small-caps, inherit

font-weight: keyword values normal, bold and inherit… also you can add numerical values of between 100-900 for some fonts…

line-height: don’t mess with this too much. become a grid junkie wherever possible

FONT SHORTHAND
if you are going to use font: you have to choose a font-size and font-family. All other font options are optional…

the set order is…
font: style, varient, weight/height, family

—-

0209 Class Notes

Loads of lab work today… notes are very sketch…

diving into respond_to…

api.friendbc.com/api/post

json formatter chrome extension

.map

calling .map is the same as .each, the difference with .map is that it is expecting you to do something with the new array that it creates.

.map is the same idea as .collect

collect is like being a train conductor and picking up the tickets from the riders….

heroku logs…
for debugging issues when pushing to heroku

heroku asset issues
> app/environments/production/config.assets.compile = true (this is initially set to false)

01/31 Rails notes

It was a late night at the Tribune (4am)… I apologize in advance if I blackout somewhere along the way.

diving in…

Model Validations, Model Associations… I know not what these things mean, but I soon shall.

The models do all the important work in Rails… the best rails devs can make their models do anything they want them to do.

Models are the soul of the app. It’s how you capture data.

There is very little memorization in programming. However, the resources of Rails is the exception.

resources :products
—–

URL Verb Action Named route
/products GET index products_url
/products POST create products_url
/products/1 GET show product_url(@product)
/products/1 PUT update product_url(@product)
/products/1 DELETE destroy product_url(@product)
/products/new GET new new_product_url
/products/1/edit GET edit edit_product_url(@product)

model validation rules example
—–
class Movie < ActiveRecord::Base
validates :title, :presence => true
end

You can enforce unique entries in this area of your model.

—–
NOTE: Agile Web Development with Rails is the Rail’s Pickaxe…
—–

Model Associations
The twitter example…
You have a user model that contains your name, followers, following, tweet count, etc…
Then you have a tweet model that contains the posts that you have made. These models are associated somehow..

The amazon example…
You have your user account info…
The recommendations is likely a separate resource…
The concept of departments within the site would be a model…
The product list is associated with certain departments…
The product details could also be a model…
Shipping is likely another model…

NameError: uninitialized constant Actor
> this means that it does not recognize the class of the model

example…
—-
class Actor
attr_accessor :name
attr_accessor :sex

def initialize(hash)
@name = hash[:name]
@sex = hash[:sex]
end
end

star = Actor.new(:sex=>”male”, :name => “Steve Martin”)
puts star.inspect
—-

Model Associations
—-
Many models have a one-to-many association.
>Think in terms of movies. every movie has many actors.

class Movie < Active Record::Base

has_many :actors

end

class Actor < Active Record::Base

belongs_to: movie

end

----

Shifting gears

---

Helper methods and scaffolding... Let's build a google map thingy! Weeeee (sleepy)

---

code.google.com/apis/map/documentation/staticmaps/

copy the example code found here...

past into the show.html.erb page...

remember to use <%= %> to display the image tag within the page


HELPERS

app/helpers/application_helper.rb

Use this space to put in additional methods to keep your models and controllers “thin.” Define methods such as

def map(address)
# address + “whatever”
# this is where you would put in the google maps api string
“http://maps.googleapis.com/maps/api/staticmap?center=#{address}&zoom=14&size=512×512&maptype=roadmap&sensor=false”
end


PARTIALS

Just a snippet of HTML code that you can use. Helper methods are ruby-based.

———

The class that has the belongs_to gets the foreign key.

–skip-bundle

Shay Howe HTML5 class notes

most of this is straight from shayhowe.com… excellent tutorial site should one want to dive in and learn some html/css…

Backgrounds…

div {
background: #f60;
background-color: #f60;
}

RGBA allows for us to use opaque colors (transparency)

div {
background: #b2b2b2;
background: rgba(0, 0, 0, 0.3);
}


Being that RGBA is not universal, always list a base color above the RGBA designation in your CSS

div {
background: url(‘alert.png’);
background-image: url(‘alert.png’);
}


Background repeat

The default behavior for background repeat both vertically and horizontally, below is how you control that behavior
div {
background: url(‘alert.png’) no-repeat;
background-image: url(‘alert.png’);
background-repeat: no-repeat;
}

repeat-x, repeat-y are common behaviors to see used in instances where you might want to repeat an element


NOTE: Backstretch: Javascript hack to handle proper scaling of full screen background images

Background position

You have to declare two values (X, Y) to control where this element will lineup…

div {
background: url(‘alert.png’) 10px 10px no-repeat;
background-image: url(‘alert.png’);
background-position: 10px 10px;
background-repeat: no-repeat;
}

Gradient backgrounds…
+ While vendor prefixes are becoming less relevant it still doesn’t hurt use them for older browsers.
Mozilla Firefox: -moz-Microsoft Internet Explorer: -ms-Opera: -o-Webkit (Chrome & Safari): -webkit-

++LINEAR++

div {
background: #70bf32; <= simple background image applied first to insure something shows up
background: url(‘linear-gradient.png’) 0 0 repeat-x;
background: -moz-linear-gradient(top, #a1e048, #6a942f);
background: -ms-linear-gradient(top, #a1e048, #6a942f);
background: -o-linear-gradient(top, #a1e048, #6a942f);
background: -webkit-linear-gradient(top, #a1e048, #6a942f);
background: linear-gradient(top, #a1e048, #6a942f); <= this is the most important designation here, this should overwrite everything that has come before in the css
}

Top indicates the start of the gradient. You can also use degree values {315deg} to designate a starting point for your gradient

++RADIAL++
People rarely use radial gradients—if they really need that…

div {
background: #70bf32;
background: url(‘radial-gradient.png’) 50% 50% no-repeat;
background: radial-gradient(circle, #a1e048, #6a942f);
}

For a deeper dive on radial gradients, go here

http://ie.microsoft.com/testdrive/graphics/cssgradientbackgroundmaker/default.html

Gradient stops…
This is how you handle multiple colors in a gradient…

div {
background: #6c9730;
background: url(‘linear-gradient-stops.png’) 0 0 repeat-y;
background: linear-gradient(left, #8dc63f, #d8ad45, #3b4b94);
}

You can add a percentage to each color to indicate where those stops should occur {#8dc63f 25%,}

Class 6 Rails dev notes…

The latest in my really, really rambling notes. I’ll be posting more coherent blog posts moving forward on Built In Chicago. Here is all about notes and learning for the time being. Having fun doing it this way too!

—NOTES—

Square brackets can mean that you want to go grab something out of the hash…

When you have a collection of things, go grab a specific thing

hash is key = {:value} based

product = { :name => “iPad 2″, :price => 499, :quantity => 2}

puts product[:name]

to change the value within the hash simply redefine the value

put S strips the colon off of the symbol value prior to printing the string

to target deep into nested hashes, simply use the [:target] approach to drill down to the level and value that you are searching for.

#targeting information within nested hashes

params = { :shipping => :standard, :customer => { :name => “Patrick”, :city => “Chicago”} }
#technique 1
customer_data = params[:customer]
puts customer_data[:city]

#technique2
puts params[:customer][:city]

use string interperlation to put numerous values from the same hash together in an output

What is in a http request
URL + Method + Format

Method has four main possibilities [ get, post, put, delete ] (up to 7 methods actually exist)

The URL does not tell the app what to do… (uniform resource locator… it knows where things are but it does little)

Your web application is no more than the value you provide to your users. But we should shift our thinking away from what pages do I need to what resources do I need to provide.
The method changes… not the URL.

Web request > Rails app > Web Response
is actually
Web request ( params [...] ) > Rails app > Web Response

Forms in Rails
<%= form_for @station do |f| %>

<%= f.label :name %>
<%= f.text_field :name %>

<%= f.submit %>

<% end %>

the params of this form are @station and :name

rails uses .pluralize and .singularize to try to help the creation of classes, methods and routes

use the network tab in chrome to view the method and request of the page that is being served


Break No. 1

replacing the .new method with .create

Station.create (params [:station])
redirect_to “/stations”

but your more likely to see something like the following
Built using a local variable
station = Station.new(params[:station])
station.save

Editing an existing value
> in controller.rb

def edit
@station = Station.find_by_id(params[:id])
end

you need a put method within routes to subimit the updates back into the database

never allow for a link to exist on your server for creation and deletion of data without a rel=”nofollow”… without this, search engines like Google could systematically delete your entire database of information

Route naming conventions
get “/stations” => “stations#index”, :as => :stations

method “/URL” => action, :as => name I would like to use

Renaming routes in routes.rb
redirect_to “/stations/#{@station.id}”
becomes
redirect_to station_url(@station.id)

but screw this noise…
> replace all of it with…
resources :stations

the long way isn’t wrong… but it’s important to know that the short way isn’t magic

what does resources :products do
URL > verb > action > named route

….

create new app

1: rails new transit_chicago
2: cd transit_chicago
3: rails generate scaffold Station name:string address:string info:string
4: rake db:migrate
5: mate .
6:

… scaffolding is not intended to be the finished product.
Just like when you are building a house with scaffolding, you should not leave up the scaffolding when the house is finished.

….

don’t wait until you know everything to start building your app…

plan on refactoring and rebuilding your app over and over as the course continues.

get comfortable with throwing code away and starting over.

….

Model Validations
Business Rules: things that must happen to keep our model organized and useful (someone can’t sign up with the same email 15 times, etc) — sometimes called Domain Logic

example:

class Movie < ActiveRecord::Base
validates :title, :presence => true
end

rails g model title:string year:interger

within models create a validation statement to keep bad or incomplete data from making it into the database

class ModelName < ActiveRecord::Base
validates
validates
end


if you change your code in textmate, you will either need to restart rails console entirely or reload!

model objects have a way of telling you why a model is invalid

m.valid?
output=true/false

m.errors
this is a collection of error feedback, like…

m.errors.full_messages
output= [“Title can’t be blank”, “Year can’t be blank”]

01/25: Entrepreneurship & Legal Hurdles

Full disclosure: I’m really starting to dig this whole public note taking thing. My notes are yours. Share the knowledge and let’s talk about the things that are being discussed so we can take all of this information and put it into action!

Some of this will be gibberish (have you ever looked at your own notes?) But some of it you might find helpful. Dig in.

Quick lunch at Code Academy…

Legal topics to keep in mind, with Brian Axelrad.
baxelrad@hmblaw.com, 312-606-3242

Go read
Brad Feld: How to be smarter than your lawyer and venture capitalist

You’re looking for a business partner in a lawyer. If someone is going to bill your startup by the quarter hour, that’s not a lawyer that is really interested in helping your startup business. The upside for lawyers who deal with startups is the future of the business, not the immediate billing.

3 things to keep in mind with legal issues…

1) Ownership: If it has to do with who owns what, contact a lawyer.
>Equity:

>Classes

>Majority:
When starting a company, your obviously going to have a majority. But understand that you will be diluted over time if your company is successful and needs to grow.

>Employees:
Have hard conversations with people you bring on at the beginning. You don’t have to lawyer up, but you have to cover your bases. It’s sometimes best to get everyone in the room together and just buy people out when the company is worth nothing.

>Vesting:
Making everyone vest protects them and protects you.
–>Cliffs: You don’t get anything until you clear a set date or goal. So if you have a four-year vest you might not actually have any interest in the company until one year has passed from the start date.

2010-2012 example…
You get an investment. The company is not profitable and was formed in 2010. You are two years into the company. If you haven’t done any vesting up to the point of the investment, the investor can then anchor the discussion with their money to their own ideal vesting schedule. Protect yourself by getting credit for the time spent before investment comes into the picture.

>Valuation:
As investments come in, your company begins to get a set value. This creates the floor for your company. If your floor is too low, it impedes your ability to raise money in the future.

If you are taking in a ton of money, expect to have a lower percentage of the company.

>Getting fired:
What happens when you get terminated from the startup.

If you get terminated for cause, you could lose your equity. Cause is major stuff (felonies, etc).

Without case is ‘you suck’. In those cases, you’ll exit at a lower rate but you’ll have something.

>IP Ownership:
You have to assign the IP and assets into the LLC. IP is very broadly defined.

There is a statute in Illinois that states you can have ownership over the IP of an idea provided that it is outside of the industry of your current employer, regardless of any agreements that may have been signed between yourself and your day job.

To work on any startup and hold another job, you must have the awkward conversation and ask for a release of claim for the IP created for that startup. No one wants to have that conversation, but its the only way to protect yourself.

All LLCs should have a representation and warranty clause signed by all members of the LLC assigned IP created to the LLC and guaranteeing that no one can claim that IP as their own.

2) Risk: Anything involving risk, potentially contact a lawyer. The scale of risk will impact exactly when someone should get a legal advisor involved.

You need an LLC to protect your personal assets.

>Liability:
—> Leasemaid.com… started the business but is not incorporated yet.
… Sole-proprietor, totally exposed. If he brings in parters, it becomes a general partnership. If something goes wrong, you are personally exposed.
—> Furnishly.com… started a business and has formed an LLC.

Generation Real Estate Inc.: Formed a C-Corp.

>Pass-through:
—> You don’t get double-taxed with an LLC.

LLC vs. Corporations
To switch between a corportation to an LLC would require the corp to be dissolved to form the LLC.

Most of the time, when an investor asks that you reform your LLC to a corporation its generally grounded in a tax concern.

It’s easier to go from LLC to corporation than the other way.

You form an LLC first because;
if you are generating a profit in the short-term, the LLC has simple pass-thru.
LLC’s are very flexible. Has a default statute for operating agreement.

Delaware vs. Illinois filing
Delaware you can throw out anything in the statute. Illinois has protections built in for minority owners that can not be thrown out—which is why investors like Delaware, for flexibility.

File in Delaware. You do not have to register your business in Illinois. But you should. Eventually.

However, while there are some costs reasons around filing here or there—cost should not drive your decision.

100% of the tax profits and the tax losses can be applied to anyone in the LLC. IRS will not care so long as the bill is paid. This includes passing the tax losses through to an investor. This could make your company more attractive to angel investors.

3) Compliance: If you think you are on the edge of a legal boundry: contact a lawyer.

Now hearing from Maria from Built In Chicago. (builtinchicago.com)

Founded by Matt Moog. Roots from discussions with folks at Groupon and Vibes media.

Built overnight. A much prettier relaunch coming in February. New World Ventures, Lightbank, others provided initial funding.

7K registered users. 35K monthly uniques.

70% of visits from Illinois. Most the rest is coming from the coasts.

Built in Chicago meetup coming soon.

Working closely with 1871. (Matt Moog deeply involved in that as well.)

1871 slated to open in April.

Office hours will be moving from Excelerate to 1871 in April. (sounds like she is saying Exceler-it. hmm.)

She’s been asked about her favorite company of 2012… talking about bootstrapped legal teams like TotalAttorneys and shifting gears to talk BrightTag, Groovebug? etc.

Be a good PR person for your product and idea and yourself. You are your best advocate. Be humble but be vocal. People will not find you if you are hiding in the corner.

Promoting via Built in Chicago touted by the guys from EveningFlow…



Copyright © 2004–2009. All rights reserved.

RSS Feed. This blog is proudly powered by Wordpress and uses Modern Clix, a theme by Rodrigo Galindez.