Skip to main content

Mobomo webinars-now on demand! | learn more.

This post is part of a series called Open Source Citizenry in which we discuss ways to eliminate the barriers that developers and companies face to fully participating in the open source community.

You might think there's not really anything to being a good user of open source. Install the library, use it how you need it, and move on. And honestly, for the most part that's a fine thing to do. But if you want to be more than one of the silent users, if you want to help the projects you use just by using them, there are lots of ways to do it. You could become a vital part of pushing forward your favorite open source projects without ever altering a single line of code.

Ultimately, being a good open source citizen is about respecting what open source is, how it's made, and how you can help. Open source software is made by many; that's its beauty and its curse. If you can help bring more order to the naturally chaotic development process by adding documentation, fielding support requests or even just encouraging maintainers to keep going, you are becoming a vital part of the open source ecosystem and helping it to grow.

Categories
Author

Pill Finder enables rapid identification of unknown solid-dosage medications (tablets/capsules) based on physical characteristics including: imprint (characters or number printed on a medication), shape, color, size, and scoring. Once a medication is identified, Pillbox provides high-resolution images of tablets and capsules (if available) as well as links to drug information and drug labels. Pillbox uses the National Library of Medicine's Pillbox API which is not intended for clinical use. Images contained within this resource are not part of the Structured Product Label and have not been verified by the sponsor/manufacturer.

 

Categories
Author

September 2011 - Federal Mobile Apps: Are Your Federal Apps Secure?

Privacy and Security Management Considerations When Deploying Mobile Applications in the Federal Government

It is predicted that 50% of our workforce will have a smartphone by the end of 2011. We call them "phones" because we make telephone calls on them, but with email, web browsing, applications, and gigabytes of file storage, your smartphone is a small computer, and that makes it a potential security and privacy risk. If you are like many other of your colleagues in the federal government, you are witnessing huge demand for the development of new mobile applications that help agencies better serve citizens or make public sector employees more productive.  As this new wave of technology washes over your environment, we have a question:

Are federal agencies employing secure best practices in developing these popular applications?

This webinar series will focus on tools and techniques to manage the increasing number of devices, provide support for them, and secure them. We will tackle the question head on, along with any other issues you would like to raise, in a one-hour webcast scheduled to take place on September 15, 2011 from 2 pm to 3 pm Eastern Time.

We have assembled a panel of experts with extensive experience in this new mobile environment.  We hope you will join your colleagues and tune in to listen and actively participate in this highly-interactive online event.

 

Categories
Tags
Author

As someone who has both attended and instructed many 2-5 day classes on programming topics, I’ve come to understand there are certain things teachers can do to make classes more useful and enjoyable.

Here are 12 tips to keep in mind when creating and teaching a technical course:

  1. Rest- I’ve learned to make sure I get plenty of rest the night before I teach. I also make sure I have plenty of caffeine, water, and healthy snacks at my disposal during the day. Do not underestimate how much energy it takes to run a class.
  2. Relax- You lose your train of thought, you freeze, you stutter, you sweat a little, you don't know the answer, you forget their names... Relax, these things happen. Believe it or not, your students want you to succeed and are very forgiving. Just realize that mistakes happen: handle it, and move on. If you can't recover quickly, simply make the class take a 5-10 min break to recover or defer to the other instructor.
  3. Break the Ice with Introductions- For me, the hardest part of teaching a class is the first hour of class on the first day. You don't know the students and they don't know you. The best way to get around this is to quickly introduce yourself then have the students go around the room and introduce themselves. "Please tell us your name, where you're from (location, work), what's your specialty, and what you hope to get out of the class". This takes the pressure off you, distributes it across everyone in the room and gives you the time to get comfortable and ease into the role of instructor.
  4. Labs- Lots of them. Labs are the most important aspect of teaching a class on programming. Students will not absorb the information from your lectures as well if you don’t give them frequent opportunities to put the material to use in a practical way. It's like playing a musical instrument - you can read about it all day long but when it comes down to making music there's no substitute for physical practice and interaction with the instrument itself. Knowledge is solidified during lab time. This is when most of the "Ah-ha!" moments occur.
  5. Avoid Slides if Possible- Slides work really well for short presentations because they help support your succinct message; in the classroom, slides can actually hinder students from paying attention. Slides also have a tendency to kill the opportunity for spontaneous subjects. It's okay to go off on a tangent, especially if your students are engaged. Don't just read from a slide deck. Build things with them on the fly. There's nothing techies love more than live, working, and tweakable examples. Student: "How does that work? Why does that work?" Instructor: "Here, let me show you". That wins over slides every time.
  6. Encourage Discussion- People like to talk. Give them frequent opportunities to talk with you and the other students about the material. I've found that if you encourage lots of discussion during the lecture (and throughout the course) people tend to help each other a lot more during labs. It creates a more lively and memorable environment. People pay attention more if an interesting conversation is likely to break out at any time.
  7. Two Is Better Than One- Even if your class is small, it’s always better to have at least two instructors. One instructor can do most of the lecturing while the other can ask questions, point out typos, play devil’s advocate, gauge the students' engagement levels, and pay attention to the pacing. The secondary instructor can also walk over and help individuals while the primary is interacting with the rest of the class, ensuring a consistent flow. If one of the instructors gets flustered or loses their train of thought the other instructor can take over or help get things back on track.
  8. Contextualize- Structure your class so that each topic builds on the previous one. Lay out a foundation and build upon it. Stick with the same application or domain space throughout the course. Put some thought into the transitions between topics in your curriculum and lay it out in a way that is comprehensive and progresses logically and predictably.
  9. Legos- During the lectures and the labs you are giving students small building blocks of knowledge and inspiration. Don’t forget to give your students the chance to build something. Decide on an appropriate application to build throughout the course. This will help to solidify the knowledge and put those Legos to good use.
  10. Break Often- It’s easy to get rolling on an activity or topic and forget about taking breaks. Set a timer for yourself if you have to because your students need plenty of opportunities to go to the bathroom, grab water, refill their coffee cups, stretch and socialize for a few minutes at least every hour. Pay attention during breaks; you'll quickly learn if people are having a good time or not. Be aware of mass exodus or silence.
  11. Continuing Education- Make sure students learn enough to ask the right questions when they finish your course. Make sure you’ve taught them well enough so that when they try to practice the material a week later at home, they know how to ask the right questions, look in the right places, etc. Give them the equipment they need to succeed once your class is over.
  12. Post-Course Availbility- Don’t disappear when all is said and done. Make sure your students know how to get ahold of you. Encourage them to seek you (and each other) out if they have questions or concerns. Ask them for feedback about the class. Create a Google Group so they can ask questions about the concepts after the class is done. This allows them to have access to you and the other students.

With these tips you should be well equipped to deliver a quality and exciting class that your students will talk about and remember for years to come. Teaching programming classes is an act of servitude, and one that is highly respected. Taking the time to create an engaging curriculum and a thoughtful structure will be of great benefit to you and everyone else.

Those that know, do. Those that understand, teach.

Aristotle

tl;dr

The format I've used which seems to work best (to keep folks engaged and encourage knowledge solidification) is:

For each topic:

  • 30-40 mins of lecture
  • 15-30 mins of lab/exercise
  • 10-20 mins of discussion of different solutions
  • 5-10 mins break
  • Encourage lots of questions and discussion throughout all sections
  • Always have a minimum of two instructors
Categories
Author

In the second post in the series on “Why Your Company Needs a Rails Shop”, we’re talking about the “first-mover advantage" and how outsourcing your development to a Rails company can get your product to market quicker.

What’s The Big Idea?

You’ve got a great idea. You know it’s great because you’ve done objective market research, talked to your target customers and made an effort to understand your competition. Now you need to get your product some legs of its own. Getting your product to market as soon as possible can be critical to the success of your initiative. The web is rich with the innovations of passionate people; the landscape is competitive. You have no time to spare.

Advantages of being first to market:

  • Monopoly – Not the game, but rather a temporary monopoly of the market share. Being first to market in your niche means that you have the early advantage of being the only (or one of the few) players in your field, allowing you to capture a market share advantage.
  • Good Looks – Being the first implies that you are innovative and proactive. You were smart enough to detect an opportunity and adept enough to act on it quickly. Getting to market quickly saves you from the “me too!” reputation that your future competitors might garner when they penetrate the market with a similar idea or product after you have paved the way.
  • Experience – By getting to market first you get a head start on building experience with your customers, the technology, the feedback, and engagement of your product or service. This early experience is valuable when you use it to fine-tune your product and continue to release new versions or features. The early experience gives you the opportunity to foster exclusive and meaningful relationships with your target audience before anyone else.

Who You Gonna Call?

A Rails shop! When you need to get to market quickly, go with the pros. In last week’s article in this series we talked about how difficult it is to penetrate the competitive Rails market to find good talent. When you need a web application created quickly and professionally it makes even more sense to rely on an experienced Rails shop. Spending weeks or months trying to build an internal team will only delay your product launch.

Trying to hire your own team can be costly and time consuming when you consider this:

  • Finding good Rails developers and verifying their experience level is no easy task. Ruby is a young language and Rails an even younger framework. This means that most Rails developers have only a few short years (sometimes months) of experience under their belts. Additionally, you might not know what to look for in a Rails developer, whereas Rails companies have experience vetting good programmers.
  • It can take 2-3 months to hire experienced individual Rails programmers and assemble a small internal team of developers.
  • Even after you’ve hired a good internal team, you won’t necessarily have an expert Project Manager on hand who is skilled in Rails to lead and direct the team.
  • Assembling a team from scratch means that you don’t know how the new team members will work together. You have to allot time for personality and workflow differences as the team adjusts to working together.
  • Hiring a team internally leaves you with the added cost and concern of providing benefits and having additional employees on your books indefinitely. In hiring a Rails shop you negotiate a straightforward contract for work and then you have a choice of keeping them on retainer for future maintenance if needed.

As a Rails shop that’s been around for awhile, we’ve learned a few things about hiring Rails developers, working with clients efficiently, and delivering projects on time. Rails shops are living in the Rails world every day – we understand the ecosystem, and can easily identify a talented Rails programmer. When you outsource your web application development to a Rails shop you’re inheriting the combined experience of a large team of experts. And when you need to get your idea to market, you need the power of experts to help take you there.

Full Service

Most of the popular Rails shops in the U.S. today offer a range of services to meet all of your application development needs. This mean that when you hire a full-service Rails shop you’re getting an entire team of experts to manage your application every step of the way:

  • Designers – A team of experienced designers who are adept at listening to clients and transforming their vision into beautiful design and optimal layout.
  • Developers – Expert Ruby on Rails developers who have been building web applications in Rails for years, and have key knowledge of the newest technology and advancements in the industry.
  • Project Managers – Someone to oversee and direct the development process of your product, ensuring that deliverables are defined and met on time, and that the team is meeting client expectations every step of the way.
  • QA Engineers- Skilled software testers that put your application through rigorous testing before it ever goes live, ensuring that the final product is secure and ready for users.

Rails Company + Your Product = Win

We all want to win. And it's easier when you partner with people that have a track record for success. Taking your vision to a reputable Rails company means that you get the assistance of a team of seasoned Rails developers, designers and project managers – all ready to listen to you, understand your intent, and breathe life and form into your vision. Having a Rails shop to work with ensures that you can get your application launched sooner. Plus, you’ll have a team on hand that is already experienced with your product when you need to work on the next iteration to keep you competitive and fresh.

About Intridea

We create custom web and mobile solutions for businesses large and small across a range of industries – from Healthcare, Government, IT, Education, Arts, Real Estate, Insurance and more. Our team of designers, architects and developers can work with you every step of the way to bring your vision to life on the web. Contact us today to find out more!

Categories
Author

Mobomo participated in the nationwide 1.USA.gov Hack Day

Data is created every time someone clicks on a 1.USA.gov link, which happens about 56,000 times each day. Together, these clicks show what government information people are sharing with their friends and networks. No one has ever had such a broad view of how government information is viewed and shared online.

During the day long event, Mobomo created Popgov.us

Check it out and see what is popular in government right now!

 

Categories
Tags
Author

Every so often I like to completely wipe out my computer and start it over from scratch. This isn't because I particularly enjoy the pain of setting up a system from scratch, but it does come with some advantages:

  • You get rid of the stuff you didn't need.
  • You have a chance to try things that came out since you last reinstalled.
  • You have a clean install that isn't choking from years of cruft.

I took it upon myself to perform this task when I upgraded to OS X Lion and thought it would also be a great chance to write one of those "how to get a Ruby development machine going from scratch" posts since that's what I'd be doing anyway. So here's the process of how I got my machine set back up to work the way I want it to on Apple's latest.

Application Avalanche

Google Chrome has been my browser of choice for the past year or so. I never would have thought I could give up Firebug, but the speed difference was enough for me to learn to love the Web Inspector.

iTerm2 is new to my roster. I don't know too much about it other than that it can do split-pane views which is something I love in all of my apps.

XCode is a big huge download, and while I don't use the IDE I need the build tools for just about everything else in my dev toolchain.

Adium is my universal IM client of choice. It's simple, customizable, and always there when I need it. I roll with the AdiumIcon icon set, the Mnmlsm message style, and the Leopard Sidebar contact list style.

Mailplane gives me exactly what I want in an email client: the GMail web interface but in its own dedicated application. While the benefits over something like a Fluid window for GMail aren't necessarily enormous, email is core enough to my daily routine that it was worth a little cash for a little better experience.

MacVim is my editor of choice although I don't pretend to be a "real" Vim user. I switched to Vim *solely* because it allows me to edit with split pane windows, and I still treat it more like Textmate than I'd normally like to admit in public. Note: If you're planning to use ZSH you'll want to install a snapshot release of MacVim, otherwise it will occasionally hang.

Growl is an obvious must-have for any Mac user, developer or not.

Presently and HipChat are my desktop coworker communication tools and I'd be lost without them.

Alfred is another new addition to my roster, replacing the Google Quick Search Box. I haven't used it much yet, but I had heard good things so I'm going to give it a go.

VLC has a well-deserved reputation for being able to play just about everything. If I could remove Quicktime entirely and replace it with VLC, I would.

Spotify is what I've been using the last week or two. I've tried both it and Rdio and I'm honestly pretty torn as to which I like more. But let's be honest, my primary listening point for music recently has been Turntable.fm.

The Official Twitter App is the client I've used since its release. I'm not a power user (and all of the searches that I care about I handle via Twilert so it works well enough.

Cloud is an extremely useful little app to have for quickly sharing screenshots and files. I use Skitch as well when I need to be able to annotate the shots quickly.

Adobe CS5 gives me the tools that I need for putting together logos and design assets. I was going to say "and mocking up sites" but since CSS3 I don't really use Photoshop for mockups that often these days, I just go straight for the markup.

Command Line Commando

Once I had gotten the easy stuff out of the way, it was time to actually set up all of the development tools that I would need to get my machine up and running the way I needed it.

First up is installing Homebrew. Homebrew is without a doubt the simplest and most "it just works" package manager that I've used for OS X. Installing it is as easy as:

     /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

Once Homebrew is installed, we can go on a mad tear of package installation. Here are some of the tools that I set up right away:

     brew install wget git redis node imagemagick     brew install postgresql     brew install mongodb

Another new entry for this round, I thought I'd take my coworkers advice and switch to ZSH with Oh My ZSH. Installed like so:

     wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

Next up we'll install RVM so that we can manage multiple Rubies with ease. I'll also be installing the Rubies that I use on a regular basis and setting the default Ruby to be 1.9.2 since that's what I'm using 90% of the time.

     bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )     rvm install 1.9.2     rvm install jruby     rvm use 1.9.2 --default

After that I needed to follow the instructions printed out by RVM to make sure it was working in my shell. Magnificent! Now we're almost all done with our basic development stack. We need something to run our web apps, and Pow is definitely my favorite nowadays. We'll also install the powder gem to make it super simple to manage our Pow links.

     curl get.pow.cx | sh     gem install powder

Now I've got my development tools up and running, but I still need a little bit more out of my editor. Like I said, I'm a training wheels Vim user, so I like to install Yehuda/Carl's janus to get a good set of Vim plugins that make Rails development super easy in MacVim.

     curl https://raw.github.com/carlhuda/janus/master/bootstrap.sh -o - | sh

We're getting quite close now. The only thing to do before enjoying my new setup is to make it so that I can clone my repositories off of the various services I use. So I followed the GitHub, Unfuddle, and Heroku setup instructions and I was up and running.

Summary

So that's pretty much it! Everything went pretty much as expected once I actually got a fresh-drive install of Lion working. The biggest pain was waiting for multi-gigabyte downloads like XCode, but leaving them overnight worked well enough to solve that. So for those who are curious, Ruby development is alive and working on Mac OS X Lion. Is there anything in my setup that you'd do differently? Let me know in the comments!

Categories
Author

Barg Upender presented the various mobile apps and mobile websites provided by the General Services Administration at the Mobile Gov Apps Theater at the Federal Office Systems Expo (FOSE) on July 21, 2011. He demonstrated the USA Search iPhone app, m.USA.gov mobile, m.GobiernoUSA.gov, apps.USA.gov, and apps.GobiernoUSA.gov. In addition, he highlighted the tremendous growth in mobile access to USA.gov over the past year.

Barg Upender at FOSE 2011

Categories
Tags
Author

In this new blog series, Why Your Company Needs a Rails Development Shop, we’ll discuss why it makes sense to turn to a reputable Rails development company for web application development. In a new market saturated with Ruby and Ruby on Rails buzz, it can be hard to determine who the experts are and where to find them. We hope this series unveils some of those challenges and how using a Rails development shop can alleviate some of the headaches in making decisions about development.

In this first article of the series we’ll focus on the current climate of the Rails job market and how it complicates the process of finding and securing talented developers.

First, A Brief History

Since its release in 2005, Ruby on Rails has forged an incredible legacy for itself. Rails has been widely adopted as an ideal framework for creating web applications by companies large and small, and has been supported by a uniquely driven development community. Apple’s announcement that Ruby on Rails would ship with OSX v10.5 in 2006 helped to solidify the future of Rails in the business world.

Thanks to those early adopters and evangelists, Rails is now a legitimate and successful framework that is being put to use by some of the most prestigious and highly-trafficked web sites around the world, including Scribd, Groupon, Twitter, Amazon, NASA and more.

Growing Need For Rails Experts

As Rails has become more mainstream the demand for Rails developers has increased significantly. Today there are thousands of companies looking for expert Rails developers to help bring their ideas to the web quickly and efficiently. Trend analysis from Indeed.com shows just how radical the shift in the Rails job market has been in the last 5 years:

ruby on rails Job Trends

Ruby On Rails jobs

Rails allows you to build robust, scalable and competitive web applications quickly – of course you want a Rails app. But the task of assembling a team of expert Rails developers is a complicated process.

Advantages Of Hiring A Rails Company In A Competitive Rails Market

With an increasing number of companies realizing they need Rails development to keep them competitive, and an almost equivalent number of new Rails developers looking for work, how do you make sure you hire the right expert to develop your web application? Here’s a hint: Hire a Rails Development Company. This may seem like an obvious solution, but we’ve worked with enough rescue projects to know that oftentimes companies try to bring Rails developers in-house before they turn to a Rails company.

Turning to a seasoned Rails development company to build your web application can give you certain advantages over hiring your own Rails developers directly:

  • Rails is young: It’s hard to evaluate Rails developers – after all, the framework is only a few years old, which means that unlike Java and C developers, Rails devs won’t have years of experience to consider. And programmers aren’t studying Ruby on Rails in college, so their experience will be limited to recent projects. A Rails company has a better understanding of the language and how to vet the developers.
  • Rails developers are in high-demand: The quickly growing Rails market, combined with a lack of traditional education in Rails means that Rails developers are hard to come by. The demand for good Rails developers is incredibly high (as illustrated by the graph above). A Rails company is continually scouting for the best Rails talent and has managed to secure top-notch developers in the Rails landscape.
  • The Community: The Rails community is a forceful and dynamic ecosystem. The community drives and supports the framework, works to nurture and teach incoming developers, and evangelizes best practices. In order to hire expert Rails developers to build your application it helps to be immersed in that community. The top Rails companies, including Intridea, understand the ecosystem and are an integral part of it. This makes it easier for us to distinguish the talented developers from the fledgling Rubyists. We know how to find and hire the best Rails developers out there, so you don’t have to.
  • Depth of experience: If a Rails company has been around long enough, you can bet that they’ve been solving lots of complex problems. At Intridea, our Rails developers have worked with hundreds of clients and every day they architect new systems, solve new problems, and think critically about design and implementation. By relying on a Rails shop you’re getting more than just a talented team of developers – you’re getting the aggregate real-world experiences of a large team of experts. These experts would be harder for you to find on your own in this competitive Rails market!

Rails shops already know how to find top Ruby on Rails developers – you don't have to spend time interviewing, hiring, and training a new team of Rails developers to create your web application when Rails companies have already done the work to assemble teams of bright and talented developers.

Summary

When you need to take your product to the web, find a reputable Rails development company – and have the peace of mind in knowing that your application is being architected, designed and deployed by a team of developers that was handcrafted and optimized for excellence. You can’t afford to trust your application to unknown variables. The Rails community is saturated with varying levels of programmers and the culture is close-knit and potentially difficult for an outsider to navigate; finding the right talent for your project can be difficult. In the words of Stephen King:

“Talent is cheaper than table salt. What separates the talented individual from the successful one is a lot of hard work.”

It’s not enough to trust your application development to someone talented. You’ve got to have a team of developers that work hard, value quality code, are efficient, and care deeply about their work. By outsourcing your application development to a Rails shop you’re tapping into a pool of successful, proven Ruby on Rails experts.

In future posts of this new series, Why Your Company Needs a Rails Development Shop, we’ll talk about additional advantages to contracting your application development to reputable Rails shops, and why relying on experts is so vital in this fierce market.

About Intridea

We create custom web and mobile solutions for businesses large and small across a range of industries – from Healthcare, Government, IT, Education, Arts, Real Estate, Insurance and more. Our team of designers, architects and developers can work with you every step of the way to bring your vision to life on the web. Contact us today to find out more!

Categories
Author
Subscribe to