What have you built? Create a developer portfolio with DevPort. Sign Up

Popular Developers

The most visited developers on DevPort.

Adam Talcott

Los Altos, California

Founder of Atomic Powered and creator of QuakeInfo. Computer engineer, mobile app developer and dad of two.

QuakeInfo: Worldwide Earthquake News, Maps and Alerts with Sharing on Facebook and Twitter at Your Fingertips

What people have been saying about QuakeInfo: "Excellent software. I live in Santiago de Chile and I had all the information about [the 2010 Chilean] earthquake a few minutes after the quake. Radios were not working so I could tell my family and neighbors about what had happened." M. from Santiago de Chile "What an Impressive update! This is now the app I show off to friends." Bill from Portland, Oregon "...this is almost a must have application..." Review by Bwana at http://www.bwana.tv/2009/04/29/get-earthquake-data-on-your-iphone-with-quake-info/ ================== Using data from the U.S. Geological Survey, QuakeInfo™ displays earthquakes of magnitude 2.5 or greater occurring anywhere in the world during the past week. QuakeInfo™ has two main views: a Quake List and a Quake Map. Earthquakes in the Quake list can be sorted by date and time, magnitude or the distance from your current location or any other location on Earth which you choose (even the epicenter of any earthquake). You can also choose to always see strong earthquakes (magnitude 6.0 or greater) on this view no matter where they occur. On the Quake map, you can review the past week's earthquakes on a world map. Look for patterns, and see how earthquakes reveal the presence of faults in the earth's crust. You can even share earthquake information and a link to the USGS Earthquake Report via email, SMS, Facebook or Twitter directly from the app. You can also sign up for push notifications to be informed automatically about strong earthquakes and earthquakes near your reference location. You can also take a quick glance at what's going on with the Today Widget in iOS 8. Explore the changing face of our planet by discovering earthquakes in your neighborhood and around the world, all from the palm of your hand! Note: Continued use of GPS running in the background can dramatically decrease battery life.

Napkin Genius — Photograph, Sketch, Edit and Share Your Ideas

✪ Named one of CNBC's "Ten Must-Have iPhone Apps for Business" (October 13, 2010) ✪ Named one of OPEN Forum's "six apps that squeeze the most out of limited time" (August 15, 2011) Be ready when genius strikes! Just sketch away on a napkin and, when your genius is fully formed, save the napkin to your photo library—or share it with the world. Intuitive lines and simple, easy-to-use features: • Import photos from your library to use as a background—or take a new photo to use. • Change line widths at any time. • Change back and forth between black or white lines. • Go backward and forward through your lines, deleting at will or leaving them untouched. • Save your napkin with a photo background—or no background at all, leaving only your sketch. • Saves your work automatically when you quit the application. Your sketch is still fully editable when you return! Your feedback matters to us! Contact us using the "Send Us Feedback" option in the Export menu of the application, or by using the "Napkin Genius Support" link in iTunes. Yappler-Tags: Photography, Sketch, Create, Brainstorming, Markup, Architecture, Genius

Protect, Upload, Manage and Share Your Videos with Vilynx

• Never lose videos from any of your mobile devices again • Don't waste money paying for extra memory in your device that will never be enough • Don't waste time collecting videos from all your different devices If you're like most of us, you have a lot of personal videos spread out over many devices and it's gotten out of control. You have years of videos of your kids, your parents, your friends, your vacations... and they are all priceless memories. Now's the time to get serious about taking back control of all your personal videos, and Vilynx is the right solution for you. You don't want to lose any of those memories, do you? Vilynx automatically manages your personal videos so you don't have to. It is the easiest way to browse, share and curate your videos. Start by recording new videos right in the app or by importing videos from your Photo Library. Vilynx takes care of the rest. Your video will be uploaded to your cloud storage account (Pogoplug, Box, Dropbox, etc.), and Vilynx will also automatically generate a 5 second video summary. These video summaries and the original video can be easily viewed on your iPhone, iPad and the Web or shared with friends, email contacts, Facebook and Twitter. With Vilynx, all of your videos are accessible in the cloud so you can always view them any time, anywhere. This simplifies the way you manage and share your personal video memories. Give Vilynx a try, download it now. Key Features: • 5 second summary video generated for each of your personal videos • Automatic upload of your personal videos to your cloud-based storage provider (Pogoplug, Box, Dropbox and/or YouTube) • Share the video summaries with your family and friends on Facebook, Twitter, email, Vilynx or YouTube that are linked directly to the full video. • Keep your videos completely private or share them with family and friends. It's all up to you.

Rushy Panchal

New Jersey

I love to develop to change the world.


deployme An automated tool to deploy untracked files to servers (such as images) through the use of SFTP. Installation npm The Node-package-manager (npm) is the recommended way to install deployme. To install via npm, run npm install deployme -g. The -g parameter specifies that the package should be installed globally, which is recommended for nearly every use case. In addition, there are a few other varieties to installing via npm: # install through this GitHub repository npm install panchr/deployme -g # Install directly through GitHub npm install https://github.com/panchr/node-deployme.git -g git To install via git, run these commands in your terminal of choice: git clone https://github.com/panchr/node-deployme.git cd node-deployme Now, you can directly access the CLI (Command Line Interface) by using ./bin/cli. Again, I highly recommend using npm instead. Configuration The CLI tool uses the default configuration file, .deploy-config. To generate a standard configuration file, run deployme init. This will generate the configuration file in the current directory. Note: deployme will search for a .deploy-config file in any of the parent directories of the current working directory. So, it is possible to run the tool in any subdirectory of a project. The configuration options are stored as standard JSON. name description type default value host The host name of the server String "localhost" port Port to connect to the server with int 22 username The username to connect with String "root" password The password of the above user String "" local An object of local configuration Object {} local.root The local root of the files to sync String "." local.directories The local directories to sync Array [] local.files The local files to sync (not supported yet) Array [] remote An object of remote configuration Object {} remote.root The remote root to sync to String "/" For example, here is a sample configuration file: { "host": "myserver.io", "port": 22, "username": "panchr", "password": "v3rys3cure", "local": { "root": "static", "directories": ["images", "icons"], "files": ["myfavicon.ico", "secure.js"] }, "remote": { "root": "/var/www/site" } } Usage deployme comes with a few useful commands: init reset help diff sync local remote init This is the initialization script. To use it, run deployme init. It will walk you through the setup of the main configuration file, .deploy-config. reset Reset is very similar to init. In fact, it provides the same functionality but allows you to override previous options. It is invoked via deployme reset. help To get a list of commands and what they do, use deployme help. diff To see what the files that need to be synced, run deployme diff. sync Finally, deployme sync will calculate the required changes to be synced and then upload the appropriate files to the remote server. local deployme local provides a series of subcommands that allows you to configure the local settings of the syncer: Subcommand Argument Description Example root path Set the local root path to the file path deployme local root /static add path Add a local path to be synced deployme local add /test add glob pattern Add matching local paths to be synced deployme local add *.css remove path Remove a local path from being synced deployme local remove mystyle.css remove glob pattern Remove matching local paths from being synced deployme local remove test/* remote deployme remote only provides one command so far, but more will be added soon. Each subcommand allows you to configure the remote settings of the syncer: Subcommand Argument Description Example root filepath Set the remote root path to "filepath" deployme remote root /var/www/static


form-validate.js jQuery-driven form validation form-validate.js is a simple script to validate forms (as the name implies). To use it, simply use the jQuery selector with the .validate() method: $("#myForm").validate(); This will set the the onsubmit handler for the form. This means that whenever the form is submitted, the data will be validated. If the data is not valid, it will not submit the form. In addition, it will alert the user by adding a CSS class to the specific input. It is the job of the client to define these classes. The validator can also set a change-based handler for each input. Configuration The validation tool can be configured with up to six options: Option Description Type Default Value errorClass The CSS class to apply when an error occurs string "error" successClass The CSS class to apply when the input is valid string "success" onchange jQuery events to use as bindings array bindings validators Mapping of input types to RegEx validators object validators onsuccess A function to call when an element has a successful validation function null onerror A function to call when an element fails validation function null Default Validators Input Type Regular Expression Validator Description text .+ One or more characters textarea .+ One or more characters email .+\@.+\..+ email in the form of email@domain.tld Default jQuery bindings These are the jQuery bindings for each element. They are called whenever the associated event occurs for that element. To see the full list of bindings, check out the jQuery Events page. Binding Name Description change Triggered whenever the input element is changed keyup Called when a key is released paste Executed when the user pastes into the input element input Triggered when input is entered into the element blur Called once the element loses focus onsuccess and onerror handlers These two handlers are used to trigger user-defined functions when certain events occur. The functions are only called when the onsubmit event is triggered --- any of the onchange, jQuery-driven events do not affect these handlers. The onsuccess handler is called whenever an element is successfully validated. For example, when the user presses the "Submit" button, the validator iterates through all of the form elements. If an element is validated successfully during this iteration, it will call the handler, with the first argument being the DOM element. Knowing this, a potential onsuccess handler could be: function mySuccessHandler(element) { $(element).hide(); } Of course, any CSS-related handlers can be incorporated directly into the successClass and errorClass configuration. Similarly, an onerror handler: function myErrorHandler(element) { $(element).css("color", "red"); // again, it's easier to use the successClass and errorClass configuration options } Example usage HTML <script type = "text/javascript" src = "https://code.jquery.com/jquery-2.1.3.min.js"></script> <form id = "my-awesome-form"> <div> <input type = "text" name = "userame" placeholder = "Username" /> <span class = "error-text">Please enter your username!</span> </div> <div> <input type = "text" name = "recipient" placeholder = "Recipient" /> <span class = "error-text">Please enter a recipient username!</span> </div> <div> <textarea name = "message" rows = "6" placeholder = "Message" class = "input-validate"></textarea> <span class = "error-text">No message entered :(!</span> </div> <input type = "submit" value = "Send" /> </form> JavaScript $("#my-awesome-form").validate(); // default options $("#my-awesome-form").validate({ // set a few handlers instead onerror: function (element) { console.log(element.id + " is invalid!"); }, onsuccess: function (element) { console.log(element.id + " is valid!"); } }) CSS input ~ .error-text, .input-validate ~ .error-text { color: red; display: none; } input.success, .input-validate.success { border-color: green; } input.error, .input-validate.error { border-color: red; } input.error ~ .error-text, .input-validate.error ~ .error-text { display: initial; } SASS/SCSS $color-form-error: red; $color-form-success: green; input, .input-validate { & ~ .error-text { color: $color-form-error; display: none; } &.success { border-color: $color-form-success; } &.error { border-color: $color-form-error; & ~ .error-text { display: initial; } } }


Focus AI This repository contains all of my work (other than readings) for my Senior Focus Honors project. I am researching gameplaying AI and how they interact with human players. Specifically, I want to learn how to create an AI that can play a gamelike a regular human does. After looking into numerous Machine Learning algorithms and suitable games, I decided to use the Dynamic Scripting algorithm to create an AI that plays Checkers. By April of 2015, I hope to have created an AI for Checkers using this algorithm. In addition, I wish to create a website on which people can play against the AI (and against themselves), and then rate the perceived "humanness" level of their opponent. This will allow me to collect data on how the AI is faring so that I can improve upon it if necessary. The final project is located on my personal website, https://panchr.me/focus. My final paper for my first semester research is also on my personal website, https://panchr.me/papers/focus.pdf. Note: most of my code and development work is the dev branch. I will merge it into the master branch every week, so the weekly tag will contain the latest development work. Important Pages Overall Progress Overall Notes Summary Project Timeline Guiding Questions Final Paper

John Dispennette


Needle in the Haystack

Graphics and Art

Several Examples of Art and Graphics I have done throughout the years.


Spaced-Repetition Create “decks” of “flashcards” and track your progress during dynamic study sessions reviewing what you’ve learned about various subjects in order to increase the effectiveness of your retention and comprehension.:thought_balloon:

Dispennette Artworks Ultra Premium Commision Artist

Dispennette Artworks. John T. Dispennette the Ultra Premium Commission Artist specializes: Mural & Pallet Paintings, Saltwater Art; Redfish, Tarpon, Snook.

Patrick Joseph Gorospe


Mobile and Game Applications Developer

Dragon Tap by DBS

Experience the thrill and energy of DBS Marina Regatta on your mobile! Simply form a team of 4 friends - top teams get a chance to win exciting prizes including tablets, smart watches and fitness trackers! Download Dragon Tap now and start tapping away! The team play competition ends 18 May 2014, so hurry! For more details of exciting prizes, head over to http://www.dbsmarinaregatta.com.

Fairy Tiles

A Unity 3D Game for iOS and Android I developed for Crazy Monkey Studios. The goal of the game is to clear the field of characters. You have to make groups of 5 or more characters of the same color. Once the characters are grouped, you score points, and the grouped characters vanish, making more room for new maneuvers.

Surreal Facts

The World's #1 source for mind-blowing surreal facts. Discover thousands of interesting and shocking facts about animals, history, celebrities, technology, and more. Features: +Daily Updates - Yes we update many times a day! +Save as Favorite +Share on Facebook, Twitter, Instagram, Tumblr, SMS, Email, and many more.

Samuel Granato

Dallas, Tx

Web Developer and Information Architect

35 Years Together: MADD

Find out what we have done in the last 35 years in our interactive timeline.

MADD Online Victim/Survivor Tribute

MADD wants to honor each person impacted by a drunk driving crash-they are the reason we do what we do. We invite you to create a tribute page for yourself or a loved one who was killed or injured in a drunk driving crash.


MADDvocate Fall 2015 - 35th Anniversary



New to DevPort

iTunes App

Control the sites you love with Mote.io Mote.io lets you enjoy the power of the web from the comfort of your couch. Control your favorite sites like Youtube, Google Drive, Pandora, Grooveshark, Soundcloud, Hype Machine, Vimeo, Rdio, and more to come! Never leave the couch. Switch between apps with the new Homebase remote. Keep your phone next to your keyboard to create instant hotkeys for your favorite music sites. New and upgraded remotes are on the way! Control your presentation from the stage with Google Drive Presentation Remote Ditch your cable box for the Youtube and Vimeo remotes with fullscreen players Forget Airplay! Plug your computer into your speakers and control the music from all around the house. Follow the instructions here to set up Mote.io. Requires Google Chrome. https://mote.io/start Remotes: Youtube Remote Spotify Web Remote Hype Machine Remote Vimeo Remote Pandora Remote Rdio Remote SoundCloud Remote Grooveshark Remote Plex Remote TuneIn Radio Remote Google Play Remote Twitch.tv Remote Last.fm Remote More to come! Let me know what site you want Mote.io to support at https://mote.io/community Trouble connecting? Tweet at me! http://twitter.com/sw1tch a20185c26f

My First Web Blog

Hacker League is the premier platform for people who organize and attend hackathons. The Hacker League platform provides event organizers with the online infrastructure they need to organize a hackathon and a comprehensive suite of tools for performing common tasks.

Allison Betancourt

Austin, TX

Engineer turned awesome

Austin Career Consulting

Austin Career Consulting helps their clients find the career of your dreams. We helped them create a website and blog to start getting an online presence and potential clients. The website is a WordPress website utilizing a Bootstrap theme customized just for them. The navigation bar sticks to the top of the screen on the scroll and was made with JQuery.

Peace Love Nails

Peace Love Nails. A salon in Austin, TX. The new owners of Peace Love Nails wanted to update their website. They wanted to be able to edit content and photos and allow clients to contact them to book appointments and order gift certificates. With a fresh new design and a cloud hosted CMS, they have a brand new, easily accessable website. The site features a carousel, contact forms, map, and social media links.

StThomas Realty

Wendy StThomas, a local realtor and broker in Austin, TX, had no web presence and had no idea where to start. I designed and built her website, created a contact form (with php validation) and integrated her local realtor search into her website (via an iframe). Her website was origionally pieced together with Jekyll and the first page altered to have PHP form on it. Now Wendy has a way for prospective clients to search for her online!

Kim Desrosiers

Saguenay, Québec, Canada

Me in some words: Developer, Learn, Bike, Music and fun!

Real-time Dashboard

Real-time dashboard - GDPL This is a event dashboard providing real-time data such elevation, speed, distance to travel and the position of the event's runners. The dashboard includes various informations about time, speed and distance, a map to show the position of the main vehicules and a chart with an elevation graphique for the next 5 kilometers. Used technologies Languages HTML Javascript CSS PHP Libraries Leaflet Jquery JqPlot Bootstrap

Itinerary simulator - Cruise the Saint Lawrence Association

Itinerary simulator - Cruise the Saint Lawrence Association This is a project that I did during my internship at the CGQ. It allowed me to learn some basic concepts of the geomatics. Used technologies Languages Mostly HTML/Javascript/CSS and some PHP for backend requests. Libraries OpenLayers GeoExt ExtJs

Real-time race viewer and custom OpenLayers control

Real-time race viewer and custom OpenLayers control This project involves a race viewer to view the races in real-time. Also, I did a custom OpenLayers control that allowed races managers to give some security informations to runners. The real-time informations was provided by the SNALT platform of the CGQ. Used technologies Languages HTML Javascript CSS PHP (Backend requests) Libraries OpenLayers 3 Jquery Proj4js


Los Angeles

I'm addicted to Swift!!!


MyFitZ is a virtual Closet.

Memory Game

The game starts of revealing a random image out of four. The image blinks n times then it's hidden. After matching the image that was shown, with one of the four images at the bottom of the screen, the loop repeats this time adding another image to match with the previous shown image. This loop repeats itself until the user matches the wrong image or the user matching the maximum amount of images which is 16.


Shooter Game

Tomas Hanacek


Buiding tools for Designers & Developers

iOS Hat

Get colors, shapes, font styles, text, PNGs, dimensions and coordinates.

Craft by InVision LABS

Suite of tools for Sketch and Photoshop that let you design with real data in mind.


Export image assets easily. Get auto-generated code snippets, export colors, sizes, styles, fonts -you name it.