Categories
Code

Been writing morning pages

It’s only day 3 but.. so far so good?? I’m using the Life A5 pistachio notebook and aiming for 3 pages (might up to 5 to practice more).

 

 

Categories
Code programming

Containerization baby

I work at a pretty cool place. One of the things I like about it is the autonomy and freedom we tend to have around solution picking. The CTO is laid back around those things; as long as the solutions are valuable for the business then we’re good.

One of the things that we’re starting to do is containerize all the things. Much of the infrastructure is bullet-proof but maybe it’s not bomb-proof. Converting the apps to containers is a sometimes painless, sometimes painful process that will pay off in spades.

Our goal is to maintain the proper safety controls but increase the speed. I personally don’t believe that speed and safety are mutually exclusive. Containers are our way of getting to this place.

Will post more about how these efforts go monthly.

Categories
Code

Soft Launching timberbot.xyz

I made a silly slack thing at https://timberbot.xyz Soft launching today to see what inbound traffic is like on July 4. This is probably a dumb day to launch it cause like – who’s at work and using slack??

Anyway – check it out.

 

Categories
Code

Software Developers and Emotional Intelligence, a Podcast!

I had the pleasure of being a part of the EMAWW podcast this week!

We discussed how Software Developers and Emotional Intelligence can go hand in hand. I also talked about my own emotional journey from brash dumb-dumb to wise and stupid dumb-dumb.

If you’re a software developer and looking to get some perspective on your own emotional journey, check it out!

Emotional Intelligence and Software Developers at Work

 

Categories
Code

New things in the works

I’m writing a book about improv comedy.  But it will be a different book about improv comedy than all the other books about improv comedy.

More soon.

 

Categories
Code

Sharing it when you’ve answered your own question

Recently a developer was asking a question in the group chat room wondering if anyone changed a component. I coached the dev privately to review the code change log in SVN.  I also encouraged them to post back to the slack room once they have the answer.

They actually did review the log and found that the code change in question was a bug fix that actually busted a few other things.  However, they did not follow that information up with the team in anyway.

It’s always courteous to follow up with the team if you’ve answered your own question.  Who knows – you might save the team a ton of heartache down the road!

Categories
Code

Renaming Exported Mac Photos directories to be in date order

Recently I had to work out a script that would rename the directory names that Photos exported to something that was sortable by date.

Something like

2013 Photo Export/Westborough, MA - W Park Dr, January 30, 2013

would go to

2013 Photo Export/20130130, Westborough, MA - W Park Dr

That way the directory could sort on 20130130!

Just update the WORKING_DIR to the directory that contains the exported photos and use this.


from dateutil.parser import parse
import datetime, os, shutil
WORKING_DIR = ''

def rename_dir_to_name(direc):
tokens = direc.split(‘ ‘)

if len(tokens) == 3:
#name should be it
dirtokens = [ ]
datetokens = [x.replace(“,”, “”) for x in tokens]
else:
dirtokens = tokens[:-3]
dirtokens[-1] = dirtokens[-1].replace(“,”, “”)
datetokens = [x.replace(“,”, “”) for x in tokens[-3:]]

if len(dirtokens) > 0:
dir_str = ” “.join(dirtokens)
else:
dir_str = “”

date_str = ” “.join(datetokens)

d = parse(date_str)

dir_name = datetime.datetime.strftime(d, “%Y%m%d”)

if len(tokens) > 3:
dir_name = dir_name + “, ” + dir_str

return dir_name

for file_name in os.listdir(WORKING_DIR):
if os.path.isdir(WORKING_DIR + ‘/’ + file_name):
print “Moving ” + WORKING_DIR + ‘/’ + file_name + ” to ” + WORKING_DIR + ‘/’ + rename_dir_to_name(file_name)
shutil.move(WORKING_DIR + ‘/’ + file_name, WORKING_DIR + ‘/’ + rename_dir_to_name(file_name))

Categories
Code

Get a sense of control over your work with a Work Smash!

I like doing a Work Smash!  Say you have a list of to do items to get through.   They can be like.. a bunch of small tasks.    I use the Seconds app on my iPhone to create a “10 Minute Work Smash” timer that consists of 5 two minute exercises.

I start that timer and start working on one of the items on my todo list.  I let the 2 minute beep (short) let me know when it’s time to hurry up and finish and move to the next task.

What that does it give me a bit of fire on finishing the item.   Sometimes it might take 10 minutes to finish one item but that’s OK.  The point isn’t to get 5 tasks done, it’s really just to light a fire under you!

 

Categories
Code Entrepreneurship

Notes from the “Get Funded as a Technical Founder” talk that Charlie O’Donnell gave at the Django NYC Meetup

Hi, I’m Shaun Farrugia and I’m a system architect whose hands are practiced in code and status, but not so much at taking notes.   These are the VERY TERRIBLE NOTES that I took at the “Get Funded as a Technical Founder” talk that was given by Charlie O’Donnell (@ceonyc) at the (very good) Django NYC Meetup Group.

Since this was a Django Meetup , that means the audience was mostly engineers here.    Most of them knew what a VC was but they didn’t really know much about Venture Capital or how to ask about it or even what the effects of taking VC would be on the company they ran.

DISCLAIMER ON NOTES:   I took okay notes but I’m not really capturing the spirit of how Charlie talks here; he’s actually a very engaging speaker.  So hopefully you, the fun reader, is going to get something out of these.

With that said – here are the notes!

What’s a VC?

We trade on illiquid stuff which is equity in a company.  VC’s look at all markets not just tech.  However, there is not a lot of open access to these markets as it’s not like a public stock market or anything.  Yes, there are things like Angelist and Crunchable, but the best deals aren’t usually out there.  They are kept quiet usually and in the know. (SCF> I have “so it doesn’t get crickets” in my notes but I can’t tell if that’s just sloppy writing or if that was what was said!)

There is a difference between Angel Investors and Venture Capitalist as the term Angel Investor usually means someone using personal savings and a Venture Capitalist tends to be managing a fund for an institution.

Different VC’s do different size deals.  Charlie usually does deals around 250k and he has about 8 million to “play with”.  Other companies like USV (Union Square Ventures) are dealing with a pot of 500 million.  They do different types of deals.

A VC usually wants 20% in equity. So if you manage 500 million you need a lot of exits because higher investment.  Charlie manages around 8 million so doesn’t need a ton of exists on 20% to make a huge return and a big impact for his group.
Sometimes the funds that a VC will manage will grow (2mil -> 8mil -> 200mil).  So people who would have talked to you 3-4 years ago won’t talk to you if you aren’t large.

What is my job as a VC?

Basically my job is to meet a lot of people.  Some of these new people turn into new opportunities.  Sometimes the people he meets get placed at some of the investments that his fund has made.
Sometimes he would like people to run an idea by him first.  Shark Tank is bad because people feel like they have one shot and if they don’t get it then the idea is bad or they won’t get an investment.  One time he gave good feedback to a pitch that had a poor use case, they took the feedback and improved the use case but then didn’t come back.  Charlie wants people to come back.

If he doesn’t think people will pay for your service/product, then it’s your job to show that people will pay.  Example: Classpass pivoted from their initial service and then started to charge, based on some feedback, so they were able to adjust the initial approach and repair the use case so that it became something that people would pay for.

What does Charlie look for as a VC?

He’s keeping an eye for what will be a stumble.
(SCF: My notes here are terrible so I’m not really being accurate with the numbers of the pitches per week and the time period he sees 2k emails/demos in.  Blame my childhood and the lack of exposure to shorthand.) He will get 3-4 pitches some weeks and more other weeks but between emails and demos he sees about 2k a month(?)

If you pitch something that I like, then it’s yours to lose.

  1. Make sure you measure your ADDRESSABLE market.  Do not come to him saying “Tourism is a 9 trillion dollar market” and saying you’re going after that.  That’s not your addressable market.
  1. Consider Enterprise Software; but be aware that unless you have the VP, Enterprise Sales for Blackboard, you might not make that huge dent in the education market.  Why do you want the “VP”?  He can tell you A) what customers want and b) what Blackboard was not chasing and why they aren’t chasing them.

If you’re going after certain segments, you need a large sales force and keep in mind that in the “Blackboard” market, you really need to make sure the IT administrator who is stuck installing this software for 6000 users can be happy or else you’re not going to make headway.

  1. Consider the MATH PLEASE.   Sponsorships are not a huge thing.  You get one or two but those dry up when you’re not the hot thing anymore.   Consider if people are buying 1-2 things a year vs 1-2 things a month.

 

Why seek a VC or what is  VC looking for?

Well if you’re making 90k a year of your side project; then keep it; no need to open that up for a VC… Why not?
1. If you take a deal, then one day assume it won’t be yours.   This is because once your company grows, you might not be the best person to run the company or it might be too big for you.

2. If you take a deal you really need to imaginenot being a part of the company.

3. You have to go cash flow negative to grow.  VC will want you to grow not profit.  So you’ll need to hire a CEO and a bunch of engineers in order to sell into X market.   This is what your job starts to become.

How do I talk or reach out to a VC or Angel?

Really – use email  – Charlie and some other VC’s don’t care if you cold intro!  They have the reparative plugin and know who you know so they can get a sense of you and the network.
Some VC’s are picky about having a warm intro but hey if you’re selling 100k a month then those same VC’s aren’t going to be picky.

Questions to Charlie from the Group

Q) What is your Due Diligence?

A) Not much!  I’ll keep an eye on your online footprints to get some insight on your ideas. If the idea is compelling and your online life is matching up then it’s OK.  Then he gets a sense if he can work with you.   An example he brought up is he was giving advice to a younger guy at one time and the guy was nodding and saying yes, but Charlie could tell he was not really listening; that’s a red flag.

Q) Do you prefer B2B or Consumer?

A) Too many VC’s are too worried about that! Charlie is interested in knowing about things but isn’t shutting himself out of huge swaths of the market.

Q) How does he feel about a company if it was crowd funded?

A) Charlie doesn’t really care until you have about 750k of Angel investment.  At that point it’s a little too funded for someone of his size to get involved.
He feels like hardware is a good place for crowdfunding because manufacturing can be expensive.  Sometimes he will send someone to get crowdfunded instead of investing because that will work better for them.

Q) What does a Developer go to you with? Should we always have an MVP?

A) That all depends.. (Charlie shared a few anecdotes at this point …)

-Sometimes sees a guy on Twitter and asks him questions

-Sometimes he gives homework to people based on a pitch (AKA why is this different than the 4 that failed)
Charlie says never to do stuff for VC’s that is extraneous if you think it’s fundable.

Q) Who are the people that invest in your fund?

A) People are committing 250k over 4 years.  That’s a minimum.   He has a handful of Angels, VC’s and 3 small institutions that are the makeup of his fund.

His portfolio needs to have more than 20 companies in it, otherwise it’s too much risk.
The only way (individual investors) get better at venturing is venturing.  Just have money and you can do it.
Charlie gives access to the deal if you’re in his fund.  So that way if you want, you can double down on it.
(There was a side conversation about accredited investors at this point but I did not take those notes – SORRY!)

Q) What news sources do you check?

A) Usually just by talking to people + Twitter .  Likes Jordan Crook.

Q) What homework can we do before a pitch?

A) Get your product management process down!  Understand features, do user testing, have clickable wireframes. Hire UX!

Questions – Email Charlie @ Brooklyn Bridge Ventures.

Categories
Code

Quick and Dirty way to view page source on a Mobile Phone Emulator Browser

I’m not sure if this is even a problem that needed a solution but I needed to get the source code off of an Android Emulator running version 2.3.3 and using the stock Android Browser.   There isn’t a view source capability on the browser, and other methods that include displaying source code in a alert box seem didn’t seem to be useful.

The instructions in this post will show you how to install an open-source tool called weinre (yes. ok. pronounced winery but you, dear reader, will call it something else).     This tool will run on your desktop and allow you to view the dom and source for any pages that you view in a mobile device.  It’s written in node.js but if you have never used that or you don’t consider yourself a programmer, then dont worry!   If you’ve installed programs then you’re good to go.
First, Install Node
a) Install Node.js.   If you’re on Mac OS/X, you should use brew install node.   For Windows go to http://nodejs.org/download/ grab it and install it.
b) Install weinre (Home) .  This is the application that will support the debugging process and get the source.  This is a nodes package manager.  It’s very easy to install.  From a terminal or command enter without quotes “npm -g install weinre”;  If you are on Mac OS/X use “sudo npm -g install weinre” without quotes.

Then, Start up and Setup Weinre
c) run weinre:  weinre –httpPort 7897  –boundHost -all- –verbose      You’ll want to give a httpPort of something that is free on your system.  I happened to choose 7897

d) On your desktop browser, hit <MACHINE_ip>:7897  where machine ip is the ip address of your machine

d2) You’ll see a URL Bookmarker at the bottom.  This bookmark will need to be copied Android Device browser bookmarks.  Copy this into your clipboard and paste into a text editor on your desktop.   Ensure that the bookmark is pointing to the IP Address of your machine.  We’re going to make this as a bookmark on your emulator or device.

d3) On your desktop browser, hit <MACHINE_IP>:7897/client    This brings up the debug page.  Keep an eye on this page when you inject the bookmark later on.  You’ll see this page magically come to life when you hit the link in your Emulator Browser.

From here on out it depends on what device type you want to prepare this with.

Either you can follow Android 2.3.3 Emulator Browser steps..
e) Open up terminal and type telnet localhost 5554 (windows syntax might be different but you’ll just need to telnet into the android device)

f) Once you connect to telnet type the following string without quotes “sms send 1234 <paste javascript message in>”   You just texted yourself!

g) Open the Messages app.  We’re going to copy the message.    You’ll see a text message from 1234 there.  Hover your mouse over it, hold the left mouse button down and wait for the menu to come up.   Click Copy Message.

h) Go back to Android Browser.  Open bookmarks, Hold the bookmark icon to add it.  When Add bookmark comes up add Name as “Debug Page” and add location as the contents of the the android clip board by holding mouse down and selecting paste.

Or you can follow these steps for iPhone Emulator or Physical Device … (i’m sure it will work with 4.2.2 android)
e) On your physical device you can hit MACHINE_IP:7897

f) if you can do this then scroll to the bottom and copy the bookmark and add it to your device.  Steps vary depending on the device.

Viewing the Source Code for a Page
In this next set of steps, we’ll look at the source code for any page that you hit with the Android Emulator.

i) Hit any page you want to view in the  Android 2.3.3 browser emulator.

j) Now keep an eye on your desktop browser that is open to MACHINE_IP:7897/client while you do this step.  On your android browser open bookmarks and click the debug page.  This will inject some code into the page and make it available for Weinre to look at.    You’ll notice that hopefully the page becomes triggered and sees the target debug device.  What you did is send a message over to the Weinre server on your machine.  This message contains the HTML page that you were viewing on the Android Emulator.

k) Go to your desktop browser and click Elements.  You’ll see all the source tree for the page on the android browser.

l) Click Console and type in without the quotes ‘document.body.innerHTML’  There is your source.

At this point you’ve got your source, and you’ve got a way to drill around the dom to see exactly what’s being send to the Android Emulator.
NOTE: Android Emulator doesn’t have 127.0.0.1 pointing to the host machine.   You’ll have to use 10.0.2.2 while on the Android Browser to get ahold of the host machine.   There is more information at this great StackOverflow.com post: http://stackoverflow.com/questions/5806220/how-to-connect-to-my-http-localhost-web-server-from-android-emulator-in-eclips

If you want a wonderful deep dive analysis into several ways of getting source code from the browser, take a look at Tim Buschtöns’ wonderful “Debugging JavaScript on Android and iOS” article.