00:00:13.320
What we did in the beginning was to collect all the information when you guys registered. We got your details and put that into a spreadsheet. We also included the speakers, sponsors, organizers, and the folks who helped with the audio and visual support. We ended up with a big spreadsheet.
00:00:30.359
When I created the badges, I assigned everyone a unique number, turning that into a binary number associated with each of you. The reason for this is that at our Utah Ruby group meetings, we often draw one of 16 possible outcomes. Sometimes, we draw someone who isn’t present, so I wanted to give everyone a unique number.
00:00:57.359
Here’s the animal file that runs this lottery. It contains your name and whether or not you are eligible for prizes. For example, I might mark a participant as eligible so they can receive an Xbox.
00:01:16.159
I've added all the organizers at the end of the list, but for the most part, you are listed in the sequence of when you registered. The first person registered is at the top. I also segregated the files we created the badges from, just to ensure everyone was included properly.
00:01:39.078
The script is quite rough, and during the last talk, I attempted to create a new logo for RubyConf. However, I wasn’t sure what direction to take, as the name MountainWest RubyConf seemed less appealing. I really liked James Bre’s approach, so I'll use that for next year, 2009.
00:02:06.320
One of the biggest features that people enjoy is the large text generated using figlet. This is a simple Linux command that you can install from figlets.com or .org. I wrapped all figlet calls in my script to facilitate this.
00:02:36.280
I take the winning number and show one winner at a time to build suspense. After announcing the winner, if they are present, I ask what they’ve won. If there’s a prize value, I adjust their eligibility in the animal file. If not, we leave their eligibility intact.
00:03:09.640
Now, I want to discuss WAX, which stands for Web Application X. It is a framework that serves a similar purpose as Rails but operates under a different concept. Originally developed in Cold Fusion seven or eight years ago, it transitioned through PHP before being rewritten in Ruby two years ago.
00:03:55.240
WAX strongly ties to databases and is extremely fast for enterprise database applications. It has a built-in website and content management system, allowing web content and application data to be integrated seamlessly. While it’s used by 10% of the Fortune 500, many are unaware of its existence.
00:04:46.280
The reason WAX was developed was to facilitate smooth application deployment, enabling multiple customers to utilize the same applications. Each application resides in its folder, allowing for simple migrations across different installations. WAX applications are designed primarily with CSS, minimizing HTML usage, which helps streamline development.
00:05:43.760
Developers are responsible for most tasks, and the designer focuses on CSS field positioning. The interaction begins with a request coming in, which is transformed into a request object. This object generates a response object that flows to the Handler, functioning like a controller, which then manages interfaces and data objects, such as persons and companies, within the database.
00:06:59.600
Each data object contains fields tailored to user needs, and queries can be customized for unique data retrieval. Validation is incorporated within the interface itself, establishing mandatory criteria based on the input data’s context.
00:08:08.320
The field attributes possess several types, including XML formats, and allow for streamlined user input and data handling. For instance, the application interface allows users to select from dropdowns linked to external data sources for quick selection.
00:09:00.399
Our prototypes include list views with paging, search functionality built into the interface, and sortable columns. This provides users with a compact experience that’s easy to navigate and allows for dynamic data engagement.
00:10:33.720
My name is Jade Meskill, and I work for a company called Intergram Technologies in Phoenix, Arizona. Today, I'll be demonstrating how managing SSH keys with Capistrano has made my life easier.
00:10:40.440
The challenge we faced was providing developers access to our production environment to deploy prototype applications. We needed an efficient way to add or revoke access to developers’ keys across the board, which isn't the most secure system but suffices for internal prototyping.
00:11:05.320
To solve this, I made the process Capistrano deployable. Let me take you through my recipe briefly. First, we define the server to which we are deploying, specifying the user and the SSH demo directory—so I don’t accidentally disrupt my own SSH keys.
00:11:49.840
After the setup is complete, Capistrano uploads the necessary files from the keys directory—multiple developers’ public keys—into the authorized keys file. Once these files are linked to the current release in the SSH directory, public key management is established.
00:12:33.720
With the system now in place, developers can quickly deploy applications and manage SSH remotely. It streamlines their operations and ensures security while handling key management effectively.
00:13:30.440
Next, I’d like to introduce Kobe Rehnquist.
00:13:43.800
I’m Kobe Rehnquist, and I run a custom application development company here in Salt Lake. We've started venturing into Rails, creating internal applications for business clients.
00:14:02.560
While Rails provides an excellent development framework, I've realized it sometimes falls short once you're ready to deploy. After much research, I discovered a project called Goldberg, which serves as a generator for building applications.
00:14:34.600
I downloaded and installed the Goldberg generator into my generators directory and created a Rails application at the Mountain West Ruby Conference. Once set up, I simply run the script to start the server and generate a fully functional application with drop-down menus, user creation, and authentication functionalities.
00:15:36.760
One standout feature is the built-in CMS that allows administrators to create and manage static pages on their sites easily. Users can quickly access content management functions while implementing specific roles and permissions for user access.
00:16:10.760
Goldberg essentially provides a pre-built application framework featuring user management, roles, and permissions, enhancing the capabilities of any custom-built Rails application.
00:17:05.680
This development model greatly streamlines application creation, ensuring that you can swiftly build upon the initial framework without reinventing the wheel. You can modify the generator's output extensively while also bearing in mind that new releases may require code adjustments.
00:18:38.679
We’ve just released version 1.0 of Cruise Control Ruby, aimed at making continuous integration as simple as possible. Unlike many tools that incorporate various complex features, our approach focuses on preserving simplicity. The installation process should take approximately ten minutes.
00:19:25.000
The user interface is straightforward, and the tool is designed with Ruby developers in mind, enabling easy customizations and integrations. To give you an idea of our project's function, the front page displays all ongoing projects and their statuses.
00:19:54.080
You can see the last five builds and who checked in, along with their comments. Clicking on any project reveals more in-depth information such as the build log and project settings. The beauty of this MVP is its focus on usability by running a command in the background to check the success or failure of builds.
00:21:38.200
Our aim is to allow developers to swiftly get feedback on their builds without dealing with overly complicated setups. We've stripped away unnecessary XML configurations found in other continuous integration tools, simplifying integrations and execution.
00:22:38.520
Our project provides clear indications of successes and failures in builds, focusing on delivering useful feedback directly and quickly. Thank you for your attention as we continue to enhance Ruby development processes.
00:23:39.240
After some discussion about performance, the questions about deployment emerged as a key focus during our development meetings. Java deployment typically consists of zipping an application and deploying it directly to a server without additional hurdles. We've worked on methods to simplify Rails deployment using JRuby integration for seamless deployment processes.
00:24:36.340
Our Java controller interacts efficiently with the server, allowing us to dump out information suiting the specific needs of our project. The aim is to provide a streamlined process where each Rails application can utilize a singular server process to manage multiple requests efficiently.
00:25:33.580
This integration also offers superior database support over Rails thanks to JDBC optimization. In summary, we’re excited to unveil version 1.0 of the Rails integration project, designed to make the deployment process seamless and easy for all developers involved.
00:26:38.680
Now, let’s transition to a project I developed called Log Watcher. The aim was to create a system to manage extensive logs from numerous sources across a significant number of servers efficiently.
00:27:49.760
Log Watcher is especially beneficial for monitoring logs from 600 servers, with plans to expand to 3,000 in the next phase. The system processes logs by filtering for good and bad patterns, sending alerts based on any negative incidents detected.
00:29:17.760
Its design is user-friendly, enabling junior system admins to navigate quickly without needing professional programming knowledge. The overall complexity has been reduced to around 250 lines of code, allowing for rapid record processing and extensive scalability.
00:30:22.760
It is efficient in handling an impressive volume of log entries while offering a clear structure for adding new alerts and pattern definitions.
00:30:34.880
We’ve seen excellent performance metrics, and the overall logging management is straightforward and adaptable. Thank you for your attention!