00:00:15.980
Oh cool, that works! Hi, hi everybody, wake up! I'm Nick.
00:00:20.990
Oh hey, those are my slides too! I'm Nick, and you can find me on Twitter as @nick.
00:00:28.550
I'm going to talk about Open Hack. I really love programming. Programming is my favorite thing to do ever.
00:00:34.640
When I program, I feel like this kid banging my hammer, and all of a sudden, there's stuff flying out of my machine.
00:00:41.090
This is something I really love. One of the things I discovered while living in Boston is a simple formula: Pizza + Beer = Code.
00:00:47.990
If you provide food and drinks, it somehow creates productivity. We used to have Boston RB hack fests, and this formula worked.
00:01:01.190
This is how rubygems.org started, along with a bunch of other projects.
00:01:07.670
I wanted a way to repeat that hack fest feeling after moving to Buffalo, New York.
00:01:13.909
I wrote down some rules for doing hack fests, which I call Open Hack, and I'm going to share those with you.
00:01:20.149
So how does it work? First, someone must organize it. This is me in Buffalo.
00:01:30.350
One person is the point of contact.
00:01:36.139
To keep the event organized, they arrange intros, which are super important.
00:01:41.780
The intros build connections because when you enter a room of nerds coding, you might feel uncertain about how to introduce yourself.
00:01:48.049
You should aim to do these intros every night since they help bring new people into the group.
00:01:55.069
When you enter the room, just say who you are and what you are working on.
00:02:00.380
It's okay to work alone, but you can also ask for help and pair with someone.
00:02:07.590
You can even socialize while working.
00:02:14.970
Most sessions wrap up after two hours, and other groups have tried longer sessions, but I get sleepy.
00:02:21.750
Sponsors help a lot too. For instance, we have 37 Signals and Engine Yard helping out the Buffalo group.
00:02:27.480
It's usually less than a hundred bucks to pay for pizza and maybe some beer, which helps a lot.
00:02:32.849
We run this every two to three weeks in Buffalo.
00:02:43.670
This has been a successful endeavor, and I discovered several local groups in Boise, Logan, Tulsa, Albuquerque, San Francisco, and Santa Barbara.
00:02:48.900
We are currently in over 60 cities, and I aim to reach 100 by the end of the year.
00:02:55.410
If you're interested in organizing, that would be fantastic.
00:03:04.690
There are groups on the East Coast, plenty in Europe, and some even in Asia.
00:03:12.020
It's mind-blowing how many groups there are just started from a few simple rules I wrote down, along with some funny gifts.
00:03:18.000
If you're interested, please visit openhack.github.io.
00:03:28.700
Okay, I was lying. I actually have announcements for other groups on Twitter.
00:03:34.830
I'm throwing a Ruby conference along with other people from the Western Europe Ruby group in Buffalo, New York.
00:03:40.470
It's happening September 20th and 21st at nickelcityruby.com. Thank you!
00:03:52.910
Alright, I'm a professional, I can wait for my turn. There are 42 speakers and only six bowls of water.
00:04:10.370
Anyway, I'm a big fan of what Heroku built, and unfortunately, I feel like a sad panda because we can't use that.
00:04:17.550
So I became really interested in Cloud Foundry.
00:04:24.690
I work at a company called Stark and Wayne, which I have been informed is the first and only company with two fictional founders.
00:04:29.970
Board meetings are fun because I'm basically talking to myself.
00:04:36.000
But the good news is that soon I will not be alone anymore.
00:04:43.730
You know, I'm getting my fancy O-1 visa.
00:04:50.340
For Americans who perhaps don't need visas, that's the alien of extraordinary ability.
00:04:56.010
So, fancy dress day will involve pants on the outside, and it's going to be great.
00:05:10.370
As a consultant, I worked with a large enterprise company that wanted to adopt agile methodologies.
00:05:20.600
I felt really bad for people who've tried to do agile without proper support.
00:05:27.860
Let me know how many careers have been destroyed by those who say, 'Yes, let's do Agile' and leave it at that.
00:05:34.260
We have a hard rule around wanting everything in our internal private clouds across the globe, but that contradicts my belief.
00:05:44.340
Everyone should have nice things, just because we work in cubicles doesn’t mean we can't enjoy nice setups.
00:05:50.340
Fortunately, there is Cloud Foundry, but it isn't necessarily easy to run on your own.
00:05:57.770
At my workplace, we outsourced it to a company called tier 3, which set it up.
00:06:05.310
One of my pet peeves in the universe is companies claiming to be open source but leaving the execution to the reader.
00:06:11.130
It's been a personal project to make running Cloud Foundry as easy as possible.
00:06:16.960
I've reduced it to running two tools and five commands, and that's exciting.
00:06:26.120
Using Bosch Bootstrap and Bosch Cloud Foundry, I won’t go into details about them.
00:06:34.520
Instead, I just want to show you the commands to run.
00:06:41.930
You can install a gem called Bosch Bootstrap.
00:06:47.460
Then, you run the next command.
00:06:53.440
If you follow along, you can execute the command that follows.
00:06:58.940
Next, you run that command.
00:07:05.160
Lastly, you run the other commands that I haven't mentioned.
00:07:11.340
The commands are reasonably interactive and will ask you questions.
00:07:18.460
For example, they'll inquire about your Amazon credentials.
00:07:25.910
If you've used fog, it actually finds your credentials and uses them.
00:07:32.220
At some point, it will ask you about DNS and other things.
00:07:41.250
The reason I built this was because I grew tired of writing documentation, so I made a tool to simplify the process.
00:07:48.300
What do you get from this tool? You get boxes—Squares.
00:07:56.520
If you ever wondered what Amazon's boxes look like, they are square.
00:08:02.430
Running your own Cloud Foundry for 30 cents an hour is pretty cool.
00:08:08.280
You might want to run services, like where the Dinos run, so to speak.
00:08:14.750
It does all of this smoothly.
00:08:20.600
The setup typically takes about three hours, so we won’t do a demo right now.
00:08:27.960
A show of hands: who hates show of hands at conferences?
00:08:35.740
This talk is dedicated to all of you.
00:08:39.830
You may have heard of technical debt, but I'm here to speak about 'Technical Intimidation'.
00:08:45.120
Do you know Rails? Do you know all of Rails?
00:08:54.400
Do you know why we like the word 'Active' so much?
00:09:01.120
Can you program concurrently? Can you asynchronously stream hypermedia?
00:09:09.970
I don't really know what that means, but Google image can help.
00:09:17.500
Can you inject SQL into a cannoli?
00:09:25.660
Do you know how to get closure with your monads?
00:09:31.180
I don't really know what that implies either, but I suspect it has something to do with futility.
00:09:38.090
Does anyone understand what this is in JavaScript?
00:09:45.010
Do you know that they are actually putting JavaScript on servers these days?
00:09:51.170
It reminds me—I have a Kickstarter for hosting Oracle on my browser.
00:09:58.020
So if you've got any loose change…
00:10:03.520
Does anybody know what Adam Keys is talking about here?
00:10:08.510
If you take out all the buzzwords from that post, all you're left with is ASCII art of a troll face.
00:10:17.360
All of these points were taken from recent Ruby and JavaScript weekly news editions.
00:10:23.910
Does anyone here know all of this? If you said yes, you're lying.
00:10:31.030
Because I made that last one up, but seriously.
00:10:45.850
Recently, a prominent member of our industry posted a blog saying he was reluctant to ask a question.
00:10:54.880
He didn't want to seem out of touch.
00:11:00.400
I can relate to that, so can Kent Beck.
00:11:06.180
Sometimes it's all just technology, and we find ourselves staring at it, feeling overwhelmed.
00:11:12.750
And that leaves us with a feeling of shame.
00:11:18.500
Two traits are common among people: adaptability and shame.
00:11:24.220
When you combine these, you get hoarders.
00:11:27.739
This illustrates how powerful shame can be in our lives.
00:11:37.330
While it may not always play out so visibly for all of us, shame can shape our thoughts and feelings.
00:11:44.620
Jerry Weinberg was once asked what the most important thing for a programmer is when starting a new project.
00:11:51.539
He answered that each should ensure they are physically fit without nagging psychological problems.
00:11:58.159
These messages are nagging psychological problems.
00:12:06.410
As we know, shame robs our perspective and convinces us that we’re stuck.
00:12:13.640
Software is hard; Steve McConnell paraphrased Dykstra, saying computing is the only profession where one mind spans intellectual distances of nine orders of magnitude.
00:12:23.950
Several known figures in programming have voiced their decisions on critical issues, underscoring the difficulty of good design.
00:12:30.950
The more closely you look at a feature, the more rough edges you will find.
00:12:36.830
The sane approach is to iterate until it’s good enough and then move on.
00:12:43.240
According to NPR, professionals sometimes struggle to spot problems they are trained to find.
00:12:50.410
A whopping 83% of radiologists fail to see the gorilla in the image, while the legendary Garry Kasparov once blundered away his queen.
00:12:58.590
So if I'm looking at two thousandth of a percent of my codebase at any time, cut me some slack.
00:13:06.700
But what about all those things? Look, you can't learn everything, and it doesn't matter, at least not to people like Martin Fowler.
00:13:13.650
Given someone with broad design skills and someone who knows your platform well, Martin will take the one with broader design skills.
00:13:20.620
So what about everyone else who does seem to know everything?
00:13:26.780
The trick is, don't be intimidated; learn from them!
00:13:33.650
Pat Metheny advises young musicians to always be the least skilled person in the band.
00:13:40.580
If you're the best player, find a different band.
00:13:46.660
To summarize: we should do a much better job if we appreciate how difficult programming is.
00:13:53.320
Stick to modest and elegant programming languages and respect the limitations of the human mind.
00:14:00.650
Lastly, one great recommendation is to find Brandi Brown's TED talks on the topic of shame.
00:14:06.530
This is me on the web, peace out.
00:14:19.180
Hi everybody! My name is Jon McCartie.
00:14:25.130
I am a Ruby developer at Life Church TV, which is a church in Oklahoma City.
00:14:35.310
You can find me on the web at @JayMcCartie.
00:14:42.520
At some point in your programming career, you’ll probably ask yourself, ‘What’s the point?’
00:14:51.730
For me, this revelation came in 2010 when I was working in a B2B start-up in San Francisco.
00:15:04.230
I remember one day on the BART train between the East Bay and San Francisco, I asked myself that crucial question.
00:15:11.150
It was a question that profoundly shifted my perspective on what I valued.
00:15:18.050
What matters to me? My family? Money? Notoriety? Or something else?
00:15:27.350
It's a good question worth reflecting on.
00:15:34.700
Each of us has an intrinsic need to feel that our work matters and that we belong.
00:15:45.330
Embedded research shows that 75% of young people aged 25 to 30 give money to causes.
00:15:51.430
Sixty-three percent say they give their time to volunteer, revealing a shift from previous generations.
00:15:59.150
This suggests we are coming to terms with finding purpose in our work.
00:16:05.990
So what is my purpose?
00:16:12.750
When I was in San Francisco, a friend told me about a church in Oklahoma City.
00:16:18.810
It's a Christian church that uses technology to reach people and change lives.
00:16:27.340
We build software for these churches and give it away for free.
00:16:34.830
For instance, we developed the YouVersion Bible app with 90 million installs to date.
00:16:41.610
That became my purpose.
00:16:46.710
My challenge to you is to discover your purpose.
00:16:54.310
What motivates you and brings you fulfillment?
00:17:01.930
The best place to start is by looking at your values.
00:17:08.330
Identify what is really important to you.
00:17:15.290
Prioritize those values.
00:17:23.680
If you are a manager, make sure your developers understand why you’re doing what you do.
00:17:29.350
Even if the project isn’t important overall, you need to communicate its value.
00:17:37.900
Developers, if you don’t have a supportive manager find purpose.
00:17:42.950
Even if your work isn’t fulfilling, understand the impact you’re making.
00:17:50.780
For example, the feature you're working on might save someone time.
00:17:56.570
Hold on to that, treasure it.
00:18:03.650
If none of these projects fulfill you, consider what you can do outside your work.
00:18:09.300
You have valuable skills.
00:18:16.050
Work with a nonprofit or find ways to give back to the community.
00:18:24.710
Your code today might not last, but the impact you create can last a lifetime.
00:18:36.630
Hi, my name is Tanana Nakorn.
00:18:41.080
Today, I would like to talk about the internationalization of Rails.
00:18:47.310
I ran into a problem a while back with copying text on a website.
00:18:52.840
For instance, if you have a button labeled ‘Sale’ and your friend from marketing wants to change it.
00:18:58.680
They might want to change it to ‘Create’ first, and then a few days later to ‘Save.’
00:19:05.390
This tedious process can be cumbersome and frustrating.
00:19:12.420
Thus, I built a gem that lets you inline edit these elements on your website.
00:19:20.240
Now, I’ll provide a demo.
00:19:26.110
On the website, clicking on a label allows you to edit it.
00:19:31.080
It also works for attributes.
00:19:37.410
The edits can be saved.
00:19:42.710
At the end, you can deactivate the edit mode.
00:19:48.190
This approach empowers other team members to directly manipulate the website.
00:19:54.680
This leads to greater happiness for everyone involved.
00:19:59.440
You can easily include this JavaScript file when edit mode is enabled.
00:20:05.140
In your Rails application, simply replace the normal functions.
00:20:11.190
You can find out more about the gem at the URL here.
00:20:17.020
My Twitter is @winfred.
00:20:29.680
Now I want to share a project I've been working on.
00:20:34.800
Good evening, my name is David.
00:20:42.240
Let’s discuss Service Objects.
00:20:49.740
Over the years, I’ve aimed to extract as much business logic as I can.
00:20:53.920
This leads me to develop a service object.
00:21:01.560
Each service only performs one action.
00:21:08.880
Currently, they're in the app/services directory.
00:21:16.330
The class name starts with a verb, e.g., ‘UserService’.
00:21:24.950
It has a single method, and I can pass arguments to it.
00:21:31.490
Using dependency injection helps with testing.
00:21:38.120
I can validate if the method fails.
00:21:43.580
When testing, I make sure the user should not be able to save.
00:21:49.510
This method approach complements lambdas.
00:21:55.090
We still gain benefits from our original design.
00:22:01.940
Lastly, a service just shows how we can efficiently use professionalism.
00:22:09.560
You can spot reusable code, and it's good for expanding development.
00:22:17.100
This approach generates considerable flexibility in your code.
00:22:25.400
That's it, so I'd appreciate any advice on it.
00:22:34.750
Thank you, everyone. I would love your feedback.
00:22:40.430
Hello everyone, I'm gonna talk about a few things.
00:22:44.680
My name is David, and I am from a work where I build developer tools.
00:22:52.420
Let me start with an overview of my work.
00:22:59.550
It's an internship project enhancing awareness.
00:23:05.150
Let’s dive right into a discussion about code testing.
00:23:14.200
When testing your code, the goal is to ensure it works.
00:23:21.150
This is crucial for maintaining user satisfaction.
00:23:29.320
So testing helps raise confidence in the product, ultimately lowering lead times.
00:23:35.530
Sorry everyone, this is the first time I've spoken publicly.
00:23:46.040
It's a nerve-wracking experience but necessary for our developers.
00:23:56.000
Thank you, everyone. I appreciate the support.
00:24:02.000
Thank you for your attention, everyone.
00:24:07.530
This conference has been illuminating.
00:24:10.430
There’s so much to learn in our industry.
00:24:15.180
With new tech emerging, it’s an exciting time.