General Exception http://www.briancorrigan.com The personal blog of Brian Corrigan posterous.com Mon, 06 Feb 2012 10:02:00 -0800 TechValley Startup Weekend http://www.briancorrigan.com/techvalley-startup-weekend http://www.briancorrigan.com/techvalley-startup-weekend

On March 3, 2012 Startup Weekend comes to TechValley. Startup Weekend is a technology focused business competition, where people pitch ideas, form ad-hoc teams, and develop a product idea over the span of a weekend. Despite what a lot of people think, it's not a code competition in the spirit of the Node Knockout or Rails Rumble; points aren't awarded based on cool tech alone. However, also unlike these other events, Startup Weekend focuses on producing real-life companies with making real money. (Like, for real, yo). Why should you care?

As a resident of the Capital Region, it's good for our economy There are almost a dozen out of town Venture Capitalists, executives, and engineers travelling here to learn more about what we have to offer. This area has become increasing important due to our local engineering talent and our vicinity to both NYC and Boston. Startup Weekend is the perfect time to show off our entrepreneurial and technical prowess. It's my belief that while this region has all the right raw materials, it needs a grassroots spark to fan the flames.

As a business owner or manager, it's good for your company Startup Weekend is a great way to let your company and your team think outside the bounds & constraints they work with during the week. It's also a great way to meet other local talent and test your wits against other people in the area. I promise you'll be surprised at all the small startups that exist right here under your nose. Finally, it shows your team, your customers, and your colleagues that you care about their field and our region. Win win!

As a software craftsperson, it's good for your career No one stays in one place forever (particularly in our field). The opportunities locally aren't as abundant as they might be in a larger metropolitan area,but that itself creates a unique opportunity. Great startups (like all great teams) require the right mix of people. It's exceedingly rare to see a single individual take an idea and develop it into something meaningful on their own. Said another way, its more risky (resulting in a smaller potentially upside) to go it alone. At Startup Weekend you'll meet scores of other people interested in the business of technology. Who knows, maybe that idea you've had kicking around will take root and grow.

Agora is encouraging (and helping to subsidize) attendance by any interested employees. Here's a list of other businesses sponsoring the event (current, as I write this post):

Sponsorship opportunities are still available (but limited) for anyone else interested in helping out. Check out the website for more information!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Sat, 04 Feb 2012 18:33:00 -0800 My emacs config http://www.briancorrigan.com/my-emacs-config http://www.briancorrigan.com/my-emacs-config

Hat's off to Matt Sweeney, patched by your truly to work with el-get 3.1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
;; This emacs configuration comes from:
;; http://www.viget.com/extend/emacs-24-rails-development-environment-from-scratch-to-productive-in-5-minu/
;; It's patched to work with el-get 3.1 as noted here:
;; https://github.com/dimitri/el-get

(push "/usr/local/bin" exec-path)
(add-to-list 'load-path "~/.emacs.d")

(setq make-backup-files nil)
(setq auto-save-default nil)
(setq-default tab-width 2)
(setq-default indent-tabs-mode nil)
(setq inhibit-startup-message t)

(fset 'yes-or-no-p 'y-or-n-p)

(delete-selection-mode t)
(scroll-bar-mode -1)
(tool-bar-mode -1)
(blink-cursor-mode t)
(show-paren-mode t)
(column-number-mode t)
(set-fringe-style -1)
(tooltip-mode -1)

(set-frame-font "Menlo-16")
(load-theme 'tango)

(defun ruby-mode-hook ()
  (autoload 'ruby-mode "ruby-mode" nil t)
  (add-to-list 'auto-mode-alist '("Capfile" . ruby-mode))
  (add-to-list 'auto-mode-alist '("Gemfile" . ruby-mode))
  (add-to-list 'auto-mode-alist '("Rakefile" . ruby-mode))
  (add-to-list 'auto-mode-alist '("\\.rake\\'" . ruby-mode))
  (add-to-list 'auto-mode-alist '("\\.rb\\'" . ruby-mode))
  (add-to-list 'auto-mode-alist '("\\.ru\\'" . ruby-mode))
  (add-hook 'ruby-mode-hook '(lambda ()
                               (setq ruby-deep-arglist t)
                               (setq ruby-deep-indent-paren nil)
                               (setq c-tab-always-indent nil)
                               (require 'inf-ruby)
                               (require 'ruby-compilation)
                               (define-key ruby-mode-map (kbd "M-r") 'run-rails-test-or-ruby-buffer))))
(defun rhtml-mode-hook ()
  (autoload 'rhtml-mode "rhtml-mode" nil t)
  (add-to-list 'auto-mode-alist '("\\.erb\\'" . rhtml-mode))
  (add-to-list 'auto-mode-alist '("\\.rjs\\'" . rhtml-mode))
  (add-hook 'rhtml-mode '(lambda ()
                           (define-key rhtml-mode-map (kbd "M-s") 'save-buffer))))

(defun yaml-mode-hook ()
  (autoload 'yaml-mode "yaml-mode" nil t)
  (add-to-list 'auto-mode-alist '("\\.yml$" . yaml-mode))
  (add-to-list 'auto-mode-alist '("\\.yaml$" . yaml-mode)))

(defun css-mode-hook ()
  (autoload 'css-mode "css-mode" nil t)
  (add-hook 'css-mode-hook '(lambda ()
                              (setq css-indent-level 2)
                              (setq css-indent-offset 2))))
(defun is-rails-project ()
  (when (textmate-project-root)
    (file-exists-p (expand-file-name "config/environment.rb" (textmate-project-root)))))

(defun run-rails-test-or-ruby-buffer ()
  (interactive)
  (if (is-rails-project)
      (let* ((path (buffer-file-name))
             (filename (file-name-nondirectory path))
             (test-path (expand-file-name "test" (textmate-project-root)))
             (command (list ruby-compilation-executable "-I" test-path path)))
        (pop-to-buffer (ruby-compilation-do filename command)))
    (ruby-compilation-this-buffer)))

(require 'package)
(setq package-archives (cons '("tromey" . "http://tromey.com/elpa/") package-archives))
(package-initialize)

(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
(require 'el-get)

(setq el-get-sources
      '((:name ruby-mode
               :type elpa
               :load "ruby-mode.el"
               :after (lambda () (ruby-mode-hook)))
        (:name inf-ruby :type elpa)
        (:name ruby-compilation :type elpa)
        (:name css-mode
               :type elpa
               :after (lambda () (css-mode-hook)))
        (:name textmate
               :type git
               :url "git://github.com/defunkt/textmate.el"
               :load "textmate.el")
        (:name rvm
               :type git
               :url "http://github.com/djwhitt/rvm.el.git"
               :load "rvm.el"
               :compile ("rvm.el")
               :after (lambda() (rvm-use-default)))
        (:name rhtml
               :type git
               :url "https://github.com/crazycode/rhtml.git"
               :features rhtml-mode
               :after (lambda () (rhtml-mode-hook)))
        (:name yaml-mode
               :type git
               :url "http://github.com/yoshiki/yaml-mode.git"
               :features yaml-mode
               :after (lambda () (yaml-mode-hook)))
))

(setq my-packages
  (append
    '(cssh el-get)
     (mapcar 'el-get-source-name el-get-sources)))

(el-get 'sync my-packages)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Sat, 14 Jan 2012 18:11:00 -0800 Upgrading Emacs on Lion http://www.briancorrigan.com/upgrading-emacs-on-lion http://www.briancorrigan.com/upgrading-emacs-on-lion
  1. Install Homebrew
  2. brew install emacs --cocoa --use-git-head --HEAD
  3. Install new version of Emacs Starter Kit
  4. Checkout git://github.com/defunkt/textmate.el.git

That's all folks :)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Wed, 11 Jan 2012 08:41:24 -0800 Hanging out with Steve @ Collar City Crossfit http://www.briancorrigan.com/hanging-out-with-steve-collar-city-crossfit http://www.briancorrigan.com/hanging-out-with-steve-collar-city-crossfit

6a0133f5a38360970b016760445f05

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Wed, 04 Jan 2012 10:08:00 -0800 Crossfit http://www.briancorrigan.com/crossfit http://www.briancorrigan.com/crossfit

Crossfitbrian

 

I've been doing Crossfit for the last 6 months or so.  This picture was pretty funny (nice shoes weirdo).

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Fri, 09 Dec 2011 12:00:00 -0800 Tired @ Crossfit http://www.briancorrigan.com/tired-crossfit http://www.briancorrigan.com/tired-crossfit

Crossfitbrian_12_09_2011

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Sun, 20 Nov 2011 08:20:31 -0800 My little chick http://www.briancorrigan.com/my-little-chick http://www.briancorrigan.com/my-little-chick

P50

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Sun, 06 Nov 2011 10:44:00 -0800 Troy, NY Co-Working http://www.briancorrigan.com/troy-ny-co-working http://www.briancorrigan.com/troy-ny-co-working
I'm poking around to see who's interested in opening up a new co-working space in Troy.   General concept is to attract a community of makers (full time and/or part time), ie: designers, developers, artists, writers, and entrepreneurs.  The goal is two-fold:
  1. Being in an inspiring space constantly surrounded by a group of like minded people is good for your creativity, your productivity and your general happiness!
  2. In addition to the benefit you'll see at your day job (and hopefully your life in general!) I'm hoping to bring together people that wouldn't normally meet and spawn some new micro-startups in the area.
I think the cost would be quite reasonable with options for daily, monthly, and punch card rates.  Actual cost structure would depend on who's interested and what they're interested in.  General features I've been thinking about are:
  • One or more big open spaces
  • Small private rooms for phone calls, etc.
  • Large 8-10 person meeting room
  • Fast internet (50-100Mbps)
  • Shared office equipment (printers)
  • Kitchen
  • Lockers
  • Anything else you think is important!
If you're interested send me a tweet! Also, if you run a user group looking for space, let us know! @genexp

UPDATE: We started recruiting and we'd like your help!  The Capital Region needs a space like this to spark a more dynamic startup environment.  Join us!  http://www.collarcollective.org

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Wed, 19 Oct 2011 18:45:00 -0700 Up and running with Zappa, Coffeescript & Mongoose http://www.briancorrigan.com/up-and-running-with-zappa-coffeescript-mongoo-53883 http://www.briancorrigan.com/up-and-running-with-zappa-coffeescript-mongoo-53883

At Major League Gaming we recently launched an internal profile service using NodeJS. Having never used NodeJS professionally, I decided to use it on my latest personal project. In addition, since CoffeeScript is now included out of the box in Rails 3.1 I decided it was time to try that too. Here's a simple app to get you up and running with Node, Zappa, Coffeescript & Mongoose.

To get it working:

  • Install MongoDB
  • Install NodeJS
  • Install NPM
  • npm install -g mongoose
  • npm install -g zappa
  • Run the gist 'coffee file.coffee'

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
require('zappa') ->
   # MongoDB Setup
  mongoose = require 'mongoose'
  db = mongoose.connect('mongodb://localhost/my_database')

  # Declare schema for model
  Schema = mongoose.Schema

  User = new Schema
    name: String

  # Use the schema, create an object
  User = mongoose.model 'User', User

  @get '/': ->
    user = new User
    user.name = "Ted"
    user.save
    title = "Testing 123"

    #Render the view
    @render index: {user, title}

  @view 'index': ->
    h1 @title or 'View template'
    p @user.name

Dig it?  Follow me @genexp

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Wed, 15 Dec 2010 17:46:10 -0800 Hello again Las Vegas... Now on to San Jose http://www.briancorrigan.com/hello-again-las-vegas-now-on-to-san-jose http://www.briancorrigan.com/hello-again-las-vegas-now-on-to-san-jose

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Sun, 21 Nov 2010 17:35:00 -0800 Pretty MySQL listings http://www.briancorrigan.com/pretty-mysql-command-line-output http://www.briancorrigan.com/pretty-mysql-command-line-output

Tired of MySQL wrapping long rows when running selects from the command line?  Here's a crazy useful tip:  add \G to the end of your 'select' statement and your output will go from gobbledygook to great.

Here's an example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mysql> select name, identity_url from members \G;
*************************** 1. row ***************************
        name:
identity_url:
*************************** 2. row ***************************
        name: support
identity_url: NULL
*************************** 3. row ***************************
        name: testuser
identity_url:
14 rows in set (0.00 sec)

ERROR:
No query specified

mysql>

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Sat, 30 Oct 2010 08:39:00 -0700 Entle at play! http://www.briancorrigan.com/entle-a http://www.briancorrigan.com/entle-a

Entle in the park

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Fri, 29 Oct 2010 06:37:33 -0700 My little duck and pig http://www.briancorrigan.com/my-little-duck-and-pig http://www.briancorrigan.com/my-little-duck-and-pig
2010-10-29_09-33-45_272

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Sun, 17 Oct 2010 18:57:41 -0700 Tequila with Agora App Team http://www.briancorrigan.com/tequila-with-agora-app-team http://www.briancorrigan.com/tequila-with-agora-app-team
2010-10-17_21-52-55_153

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Sat, 16 Oct 2010 16:07:00 -0700 View from inside the Gaylord Entertainment Center http://www.briancorrigan.com/30740125 http://www.briancorrigan.com/30740125

2010-10-16_19-02-50_73

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Sat, 16 Oct 2010 15:48:18 -0700 MLG Live at DC http://www.briancorrigan.com/mlg-live-at-dc http://www.briancorrigan.com/mlg-live-at-dc

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Tue, 12 Oct 2010 16:46:00 -0700 Grady, you're just awesome. http://www.briancorrigan.com/grady-youre-just-awesome http://www.briancorrigan.com/grady-youre-just-awesome

Img_8940

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Tue, 12 Oct 2010 16:36:00 -0700 Vinnie's Birthday Party http://www.briancorrigan.com/crazy-grady http://www.briancorrigan.com/crazy-grady

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Sun, 10 Oct 2010 16:06:00 -0700 My weekend coworkers http://www.briancorrigan.com/30177712 http://www.briancorrigan.com/30177712

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan
Thu, 05 Aug 2010 21:40:00 -0700 The Strophe.js Echobot http://www.briancorrigan.com/2010/08/05/the-strophe-js-echobot http://www.briancorrigan.com/2010/08/05/the-strophe-js-echobot

I'm toying around with in-browser XMPP in order to publish information to our users in real time.  To start, I wanted to get the strophe.js echobot demo working.  I found the posted steps a bit lacking, and thus I present a more detailed procedure for how to get nginx+ejabberd+strophe.js up and running on Ubuntu 10.04 Workstation.  When we're finished, we'll test using Firefox and Empathy.

Note: The process should be the same for a Ubuntu server, though you'll have to futz with hostnames and test using your workstation or something like irssi+bitlbee.

Installation

Configuring ejabberd

  1. Setup account admin account [source language='bash'] foo@bar$ sudo ejabberdctl register admin localhost admin [/source]  
  2. Edit /etc/ejabberd/ejabberd.cf and make the following changes. In the admin user section, add the username "admin" so that it looks like this: [source language='bash'] %% ejabberd.cfg %% Admin user {acl, admin, {user, "admin", "localhost"}}. [/source] In the modules section add mod_http bind to the list of loadable modules: [source language='bash'] %% ejabberd.cfg %% {modules, [ ... {mod_http_bind, []}, ... ] }. [/source]
  3. Restart ejabberd [source language='bash'] foo@bar$ sudo /etc/init.d/ejabberd restart [/source] 
  4. Verify ejabberd is working by browsing to http://localhost:5280/http-bind

Configuring nginx 

  1. Create /etc/nginx/sites-available/strophe and include the following: [source language='bash'] #nginx.conf server { listen 8080; server_name localhost; location /http-bind { proxy_buffering off; tcp_nodelay on; keepalive_timeout 55; proxy_pass http://localhost:5280; } location / { # This is where you place your strophejs sample. root /var/www/strophe; } } [/source] Note: If for whatever reason the new configuration conflicts with an existing one, you can probably get by if you change the port number.  I used 8080 so that this won't conflict with the default config. 
  2. Symlink the config to the sites-enabled folder [source language='bash'] foo@bar$ sudo ln -s /etc/nginx/sites-available/strophe strophe [/source] 
  3. Be a good little sysadmin and check your work. [source language='bash'] foo@bar$ sudo nginx -t the configuration file /etc/nginx/nginx.conf syntax is ok configuration file /etc/nginx/nginx.conf test is successful [/source] 
  4. If it passes, restart nginx [source language='bash'] foo@bar$ sudo /etc/init.d/nginx restart [/source]

Setup strophe.js

  1. From the directory where you downloaded strophe [source language='bash'] foo@bar$ tar -xzvf strophejs-1.0.1.tar.gz foo@bar$ sudo mv strophejs-1.0.1 /var/www/strophe [/source]
  2. Modify /var/www/strophe/exampl/echobot.js [source language='javascript'] // echobot.js var BOSH_SERVICE = 'http://localhost:8080/http-bind' [/source] 

Test!

  1. Open Firefox and go to: http://localhost:8080/examples/echobot.html 
  2. Enter the following: JID: admin@localhost Password: admin  
  3. Click connect, it will show message like this. Strophe is connecting. Strophe is connected. ECHOBOT: Send a message to admin@localhost.local/4199388567126350847984920 to talk to me. 
  4. Open Empathy and create a new Jabber account. Login: admin@localhost Pass: admin 
  5. Initiate a new chat with the contact id shown in the web browser, in my case: admin@localhost.local/4199388567126350847984920  
  6. Type a message, and it will appear in the browser. Done!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763413/brian_face_2.jpg http://posterous.com/users/4SIS8nhzuOmB Brian Corrigan genexp Brian Corrigan