admin

Home/admin

About admin

This author has not yet filled in any details.
So far admin has created 116 blog entries.

Computational Ferrying: Challenges in Deploying a Mobile High Performance Computer

Mobile devices are often expected to perform computational tasks that may be beyond their processing or battery capability. Cloud computing techniques have been proposed as a means to offload a mobile device’s computation to more powerful resources. In this paper, we consider the case where powerful computing resources are employed on a vehicle, thus they

Offload Destination Selection to Enable Distributed Computation on Battlefields

http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6956867&tag=1 The tactical edge (battlefields, disaster relief operations, etc.) is an ideal domain for utilizing mobile devices for computation. However, these situations require jobs to complete in a timely manner. Efficiently offloading computation can ensure timely job completion, but access to cloud computing infrastructure is typically limited, unreliable, or unavailable. As an alternative, we propose

Baseball Bat Picture Frame

This picture frame was made for my father in law from scrap Major League Baseball bats! It is simply a plywood frame upholstered in baseball fabric. The bats were left looking “rustic” to add to the look of the old baseball photograph.

Spalted Maple Bowl

While I was learning to turn bowls on a lathe, one of the woodshop foremen brought a block of spalted maple from his backyard for me to practice turning.  Especially given this was just a throwaway piece of wood, the bowl turned out really cool looking!

Decorative Trays

These decorative trays are made of redwood (Christmas tree) and walnut (Tennessee) and are both finished with clear shellac.  They make perfect coffee table trays or perhaps a candy dish in the holiday season!

Floating Corner Shelves

In our kitchen, we have a big open space for an eat-in table.  We thought the corner would be a great place to put our wine rack and I thought this would be a perfect place to add some floating shelves!  The shelves are made of white oak and finished with stain and polyurethane.

Condiment Caddy

I made this condiment caddy for my wife and I to use during the summer while we grill outside!  It's the perfect size to fit a handful of bottles (ketchup, mustard, pickles, etc.) so we can easily carry everything to eat outside on our patio furniture while we grill.  The caddy is made of ash

Daniweb Member of the Month – July 2010

I was excited to receive Daniweb's "Member of the Month" in July 2010!  Click here to read my interview.

Alphabet Blocks

I made alphabet blocks and a storage box for my nephew's first birthday.  The consonant blocks are quarter sawn sycamore and the vowels are Red Wood.  The box is made of Sapele. The letters were created with a wood burning tool and everything was simply finished with clear shellac (baby safe!).  

Apple Wood Frame with Redheart Splines

A cross stitch design by Hayley and an Apple wood frame to showcase it! [pwaplusphp album="JacksCrossStitchFrame"]

Chisel case

My Narex chisels came without a case, so I had to make one. As this is a "shop project", the case frame is pine and the panel is 3/32" plywood.

Drill bit case

  My Lee Valley HSS Brad point drill bits came without a case, so I had to make one. As this was a "shop project", the case frame is pine, and the panels are 1/4" plywood.

Bandsaw Jewelry Box

  This jewelry box was made from a solid block of laminated walnut, maple, and cherry. It is otherwise known as a "bandsaw" box, as this is the primary tool used in construction. The drawer is lined with felt.

Pen/Pencil Holder

This pen/pencil holder is made from spalted maple (sides) and machichi (base).

All Albums

[pwaplusphp]

Cat Scratching Post

We bought a new scratching post/perch for our cats.  The base and top was originally laminated MDF.  I upgraded it by redoing the base and top with red oak, finished only with shellac.  Looks much nicer, and the shellac has no toxins for the cats to ingest! [pwaplusphp album="Oakscratchingpost"] Comment on the pictures here!  

Pens

This was my first time turning anything on a lathe.  I took a pen turning course at the Parks and Rec Woodshop and this is what I ended up with!  I was very happy with the result.  

Coffee Table

This coffee table was a PROCESS.  My wife and I really wanted a neat centerpiece for our new living room and we thought the modern design of this really matched our taste.  What I didn't know, when I was picking out wood for this, was that maple is almost impossible to get a dark black

Three-Shelf Cherry Bookcase

This is the second bookcase that almost matches the first.  This bookcase is the larger of the two.  It has three shelves and is the same height as the first, just wider.  Another difference is I did the front of this using half blind dados, so you can't see the shelf come through the front

Grill Addition

My wife and I recently bought a new grill, and we thought it'd be helpful if we had a bit more surface area to place plates or food, etc.  So, I added an extension wing to the end of it! [pwaplusphp album="GrillExtensionTable"] Comment on the pictures here!

Drying Rack

I ideally need a separate finishing room, but for now there is not enough space. Instead, I built a drying rack where I could lay several pieces I am working on to dry instead of placing them all over the other surface tops in the shop. [pwaplusphp album="DryingRack02"]

Two-Shelf Cherry Bookcase

I am building two bookcases for our offices at home.  Both are made out of cherry and have a similar style.  This one is the smaller of the two.  It has two shelves, is 26" wide and 35" high.  I finished the bookshelf simply with teak oil, to bring out the natural pink/red of the

New Workbench

As you may know, before I moved to Maryland, my workshop was in my one-car garage.  Since my wife insisted on parking in the garage (how ridiculous, right?!), everything I used had to be able to be folded up against the side of the garage, including my workbench.  However, in my new house, I have

End Tables

Second on the list was to create a couple of small end tables for our basement setup.  These were made out of sassafras wood.  I've never worked with this wood before, but it  was actually incredibly pungent!  it smelled like strong fresh herbs while I cut it.  I stained it from its natural color in the end.

Black Walnut Table

My third major project was building a table to put in the master bedroom.  This table was specifically built to hold our TiVo and DVD player.  This was built out of black walnut.  I loved the natural color of the wood, so I only put a clear coat of shellac on top to highlight the

Consistency/Confidence Poster 3DIM 2009

I presented this poster at the 3-Dimensional Imaging and Modeling (3DIM) workshop in conjunction with the International Conference on Computer Vision in 2009 in Kyoto, Japan.

Filling Large Holes in LiDAR Data By Inpainting Depth Gradients Presentation

      Filling Large Holes in LiDAR Data By Inpainting Depth Gradients Presentation This presentation was given at the Point Cloud Processing Workshop in conjunction with the Computer Vision and Pattern Recognition (CVPR) conference in Providence, Rhode Island (June 2012). It summarizes the work in "Filling Large Holes in LiDAR Data By Inpainting Depth

PCL Enhancements (CVPR PCL Tutorial 2012)

PCL Enhancements I presented this talk at the Point Cloud Library Tutorial session at the Computer Vision and Pattern Recognition (CVPR) conference in Providence, Rhode Island (June, 2012). The talk focused on recent events in the Point Cloud Library, many of which were the result of several Google Summer of Code Projects. These enhancements included

Filling Large Holes in LiDAR Data By Inpainting Depth Gradients

We introduce a technique to fill large holes in LiDAR data sets. We combine concepts from patch-based image inpainting and gradient-domain image editing to simultaneously fill both texture and structure in a LiDAR scan. We discuss the problems with directly inpainting a depth image, and present a solution to this problem based on inpainting the

A Robotics Based Design Activity to Teach the Doppler Effect

Jonathan Ashdown, David Doria , "A Robotics Based Design Activity to Teach the Doppler Effect" 2012 IEEE Integrated STEM Education Conference.

A Greedy Patch-based Image Inpainting Framework

Click here to see the full publication. We present a system for filling holes in an image by copying patches from elsewhere in the image. These patches should be a good continuation of the hole boundary into the hole. There is typically no “right answer” as we are extrapolating image data into an unknown region.

Poisson Editing in ITK

Click here to see the full publication. Two very related problems in image processing are hole filling and compositing. This article explains an implementation of similar algorithms to solve both of these problems - poisson editing and poisson cloning; both algorithms were presented by Perez in “Poisson Image Editing”.

Kitware Source 2011 Top Submission of the Year

One of my articles, "Poisson Editing in ITK", was chosen as one of Kitware Source's top submissions of 2011.

Teaching software libraries by example

Teaching software libraries by example

Kitware Source 2011 Top Submission of the Year (#2)

One of my articles, "A Greedy Patch-based Image Inpainting Framework", was chosen as one of Kitware Source's top submissions of 2011.

2011 People’s Choice Award

OpenSource.com chose me as their top contributor in 2011.

const a*, a* const, and const a* const, oh my!

Everyone knows how to pass a pointer to a function: void MyFunction(int*){} int* a = new a; MyFunction(a); But how do you make this const correct? (I learned this from here: http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.5) Lets start with the non-pointer const syntax: void MyFunction(const int a){} This means 'a' is passed by value, so if you change a

Improving the speed and quality of research via shared algorithm implementations

I wrote an article for the March 2011 Edition of IEEE GOLDRush magazine. (Hosted locally for redundancy) A short summary of the article is: "Sharing and dissemination of ideas throughout a research field is absolutely critical. Recently, algorithms have become quite complex and ideas are tightly coupled to their implementations. The ability to share and

Social Coding

Social Coding I prepared this talk for the Product Design and Innovation course at RPI to teach students about modern tools (such as Github) that allow them to work collaboratively on projects.

Benefits of Open Source Practices

Benefits of Open Source Practices 2011-09-15(pdf) Benefits of Open Source Practices 2011-09-15(odp) Benefits of Open Source Practices 2012-09-10(pdf) Benefits of Open Source Practices 2012-09-10(odp) I prepared this talk for the Product Design and Innovation course at RPI to encourage students to share their ideas and designs following best practices of an open source.

My Wedding

I married my wife on October 1, 2011.  Some of our wedding photos can be viewed here!

Small Hole Filling in ITK

Click here to see the full publication. This code provides an implementation of a simple technique to fill small holes in an image. We use a multi-pass method that fills pixels on the border of a hole with the average of its non-hole 8-connected neighbors. This process is repeated until all holes are filled. The

Interactive Correspondence Selection

Click here to see the full publication. This document presents a GUI application to manually select corresponding points in two data sets. The data sets can each be either an image or a point cloud. If both data sets are images, the functionality is equivalent to Matlab's 'cpselect' function. There are many uses of selecting

Moore Neighbor Tracing

Click here to see the full publication. This document presents an implementation of Moore Neighbor Tracing - an algorithm to find an ordered outline of a blob or contour in an image. An excellent tutorial on Moore Neighbor Tracing is provided here. The code is available here.

Clustering Segmentation for VTK

Please click here to read the full publication. This document presents a VTK implementation of the algorithm described in "A clustering method for efficient segmentation of 3D laser data" by Klasing, Klaas Wollherr, Dirk, and Buss, Martin. The code is available here.

Smart Nearest Neighbors

This document presents an implementation of two algorithms, Voronoi Neighbors and Binary Space Partition (BSP) Neighbors. These algorithms find neighbors of a point in a point set that are somehow ``better'' than a ``K nearest neighbors'' or a ``all neighbors within a radius'' query. This type of nearest neighbor query is more computationally expensive, but

Morphological Opening on a Graph

This document presents an implementation of an algorithm to perform a morphological opening on a graph. The intent is to remove short branches in a graph while preserving the large scale structure. This implementation is based on the algorithm described in "Efficient Closed Contour Extraction from Range Image's Edge Points''. We have used the data

Closed Loop Simplification

This document presents an implementation of an algorithm to find a low edge-count approximation of a complex, discrete, 2D closed contour. This implementation is based on the algorithm described in "Using Aerial Lidar Data to Segment And Model Buildings'' and "A Bayesian Approach to Building Footprint Extraction from Aerial LIDAR Data.'' The code is available

Hough Transform Plane Detector

This document presents a VTK wrapper of an extracted portion of ‘3DTK - The 3D Toolkit’ to enable a developer to find planes in 3D point cloud data. Click here to see the publication.

Cats

I have two cats, Bebop and Ella. Surprisingly, Hayley came up with the names, not me! Bebop (aka Monkey, aka Bop, aka Bopper) is the gray domestic short hair. Sometimes I think he is smarter than I am, but sometimes, only when he wants to, he is the snuggliest cat you have ever met. Ella

Bird House

This was my very first project. It turned out decent, but I learned first hand exactly how warped pine from a hardware store is! Even when I "measured twice and cut once", things didn't line up very well. After some investigation it turned out that the boards were simply not straight to start with. I

Dog Stairs

I was asked to build some small stairs so a neighbors dog with a bad knee could more easily climb onto their bed. There is a dado (aka notch) in the back two sets of legs for the previous step to sit in. Since the whole thing is pine, 2x4's, and cheap carpet, the whole

Cat Feeder Lockdown

One of my cats, Bebop, is quite a little trouble maker. We bought the cats an automatic feeder because the other one, Ella, can't control her food intake properly! Unfortunately, it seems that the testing process implemented by the designers of this device did not include putting it near a clever cat. After only a

Folding Workbench

As I only have a one car garage, if I wanted to continue to park in it as well as do some woodworking, I had to build this folding workbench. It works great! [pwaplusphp album="FoldingWorkbench"] Comment on the pictures here!

Coffee Table

This was my first contract gig as a wood worker. A guy on CraigsList had broken the glass on his coffee table and wanted to replace it with wood so the repair would be less expensive. I made a orange/gold inlay to separate the dark stain from the dark stain I would use in the

Oak Bench

Pushing the limits of my woodworking skills, I built a bench out of red oak. I was extremely pleased with the result! It is happily displayed at the foot of my bed. [pwaplusphp album="RedOakBench"] Comment on the pictures here!

Motorized Bicycle

I'm still not sure about how good of an idea this was, but I decided to make a motorized bicycle. It worked pretty well, going nearly 35mph! It was a "friction drive" system - powered by rotating the tire directly. It would be pretty neat if it didn't come to a halt on slopes of

Coil Gun

This was a "pre-engineering school" attempt at a coil gun. It was a nice practical introduction to capacitors, rectification, and inductance. [pwaplusphp album="CoilGun"] Comment on the pictures here!

Aluminum Chess Set

I'm not much of a chess player, but I thought this would be a good exercise to become proficient in a metal shop. The board is made from an old server rack shelf. The pieces are made from scrap aluminum stock. One team is polished and the other is sandblasted. [pwaplusphp album="ChessSet"] Comment on the

Kaleidoscope

My girlfriend (now wife!) collects kaleidoscopes so I decided to make her one. They are actually quite simple - three first surface mirrors configured in a triangle stuck in a tube. Easier said than done! The result was great though! I used a laser cutter to make the acrylic stand. [pwaplusphp album="Kaleidoscope"] Comment on the

Daniweb.com contributions

Daniweb.com At the beginning of my graduate school career I realized that my C++ skills were not as refined as they needed to be. I joined an amazingly helpful formum of Daniweb.com (almost 1 Million members) . After receiving excellent, very quick help for quite some time, I realized that forums like this survive because

ITK Examples Wiki

ITK Examples Wiki Motivated by the success of the VTK Examples Wiki, I created the same platform for ITK . My hope is that this page will again significantly reduce the learning curve of these very useful, but quite complex, toolkits.

VTK Examples Wiki

VTK Examples Wiki After struggling through the learning curve of VTK and ITK for a few years, I decided no one else should need to do the same. I created the VTK Examples Wiki to host short, compilable examples that demonstrate basic functionalities and tasks. This wiki was extremely well received by the community. In

New Course at RPI: Introduction To Visualization

Introduction To Visualization I co-taught a course at RPI (CSCI-4972) named "Introduction To Visualization" to share my knowledge and experience using the Visualization Toolkit (VTK). I prepared the lectures in such a way that they are usable even by people not in the course : VTK Lectures.

The role of technical forums in the progress of open source

The role of technical forums in the progress of open source

Improving the speed and quality of research via shared algorithm implementations

Improving the speed and quality of research via shared algorithm implementations

How To: Founding an Open Source Software Center at a University

How To: Founding an Open Source Software Center at a University

Open source software gains ground in higher education

Open source software gains ground in higher education. OpenSource.com, February 2011

Loopy Belief Propagation on MRFs in ITK

David Doria "Loopy Belief Propagation on MRFs in ITK ". The Insight Journal, March 2011   This code provides a base implementation of Loopy Belief Propagation on MRFs in ITK. We use binary image denoising as an example problem to demonstrate this code. This document is intended only to describe the implementation, not the theory.

inSCIght: The Scientific Computing Podcast, Episode 10

I was a moderator for inSCIght's Episode 10 about how to improve technical education.  Click here to listen!

Poisson Editing in ITK

David Doria "Poisson Editing in ITK". The Insight Journal, March 2011   This code provides an implementation of two techniques from "Poisson Image Editing'' on ITK images. First, we fill a hole in an image given only the pixel values on the boundary. Second, we copy a patch of an image into another image and

Teaching Practical Software Tools Using Screencasts While Simultaneously Reinforcing Theoretical Course Concepts

Jon Ashdown, David Doria, Michael Wozny, "Teaching Practical Software Tools Using Screencasts While Simultaneously Reinforcing Theoretical Course Concepts". American Society of Engineering Education St. Lawrence Section Conference, March 2011.

inSCIght: The Scientific Computing Podcast

I was a guest on inSCIght's Episode 2 podcast.  Listen to it here!

Criminisi Inpainting

David Doria "Criminisi Inpainting". The Insight Journal, February 2011   This document presents a system to fill a hole in an image by copying patches from elsewhere in the image. These patches should be a good continuation of the hole boundary into the hole. The patch copying is done in an order which attempts to

Kitware Source 2010 Top Submission of the Year

One of my articles, "A Synthetic LiDAR Scanner for VTK", was chosen as one of Kitware Source's top submissions of 2010.

Selfish Behavior Leads to Inefficiency

In the language of Game Theory (http://en.wikipedia.org/wiki/Game_theory), a zero-sum game is a situation in which one player’s (person’s) success comes at the other’s expense. For example, if I take a big piece of cake, there is less cake left for everyone else. This is also known as a "rivalrous good" in Economics. While this is

Interactive Image Graph Cut Segmentation

David Doria, Siqi Chen "Interactive Image Graph Cut Segmentation". The Insight Journal, November 2010   This document presents a system to "scribble" on an image to mark foreground and background pixels and then feed these pixels to a graph cuts segmentation technique. The interaction is done using the Visualization Toolkit and the processing is done

Introduction to the ITK Examples Wiki

ITK Examples Wiki I prepared this talk for the ITKv4 Fall 2010 Meeting (Iowa) to announce the ITK Examples Wiki. I was unable to attend the meeting so the talk was presented by Luiz Ibanez on my behalf.

Qt Introduction

Qt Introduction I prepared this talk to introduce RPI students to Qt4.

RPI UserVoice – Crowdsourcing Campus Improvements

RPI UserVoice – Crowdsourcing Campus Improvements I gave this presentation to the RPI Student Senate to encourage them to utilize the student body (the "crowd") to develop interesting and useful improvements to the campus.

A VTK Interface for the Hokuyo UTM 30LX Laser Range Finder

David Doria, "A VTK Interface for the Hokuyo UTM 30LX Laser Range Finder". The VTK Journal, October 2010   It is convenient to acquire data in a format which VTK can read directly. To enable this, we provide a wrapper of the Hokuyo UTM-30LX interface in a class vtkHokuyo.

A K-Means++ Clustering Implementation for VTK

David Doria, "A K-Means++ Clustering Implementation for VTK". The VTK Journal, September 2010   K-Means clustering is an excellent technique for clustering points when the number of clusters is known. We present a implementation (vtkKMeanClustering) of the algorithm written in a VTK context. We also implement the K-Means++ initialization method which finds the global optimum

A Mean Shift Clustering Implementation for VTK

David Doria, "A Mean Shift Clustering Implementation for VTK". The VTK Journal, September 2010   Mean shift clustering is an excellent technique for clustering points when the number of clusters is not known. We present a implementation (vtkMeanShiftClustering) of the simplest version of the algorithm written in a VTK context.

Expectation Maximization of Gausian Mixture Models in VTK

David Doria, "Expectation Maximization of Gausian Mixture Models in VTK". The VTK Journal, September 2010   Expectation maximization (EM) is a common technique for estimating the parameters of a model after having collected observations of data generated by the model. We first explain the algorithm, then present our impelementation. We focus on estimation of the

Systematically Writing Free Articles And Texts

Systematically Writing Free Articles And Texts I gave this presentation at a meeting of the Rensselaer Center for Open Source (RCOS) to encourage students to share their knowledge and insights by producing useful and lasting documents which capture the main ideas.

Fix/Report Problems As You Find Them!

The title says it all. This applies to all aspects of life - from a pothole on your drive to work, to a broken link on a website, to asking a question in a class, to fixing a bug in a software project. There are three main reasons I attribute to people following this bad

Improving Technical Topics at WikiVersity – Wikipedia Conference at NYU

Improving Technical Topics at WikiVersity - Wikipedia Conference at NYU I prepared this talk to alert Wikipedians to some best practices in crowdsourcing engineering education content production.

Call for coherent, systematic field summaries

The overview As a Ph.D. student, figuring out what has already been done by past researchers is by far the hardest problem I have come across. The current expectation and requirement is that every student will browse tens of conferences and journals going back tens of years. At the end of this long and tedious

Conference Summary Committees

At every professional conference, hundreds of papers are presented. This can quickly become quite overwhelming. For people in attendance, the game plan seems to be to scan the list of titles in the conference schedule to see which posters and talks seem most interesting and/or most applicable to the individuals research objectives. To be sure,

Students are not being prepared for industry

I can only speak about my field (computer vision and image processing), but I imagine the situation is similar across the board. What we learn in college are "the fundamentals" - the theoretical (often too much so) ideas of many topics. We are seldom asked to implement these ideas in software. When we are, it

Stop letting students play online during class!

Walk into almost any college classroom and you will almost certainly see at least a handful of students staring at a laptop screen, clearly not at all paying attention to the instructor. In this discussion, let's ignore the underlying reasons that the students are not paying attention (most times it is the lecturers fault that

Granularity of Grading Scales

One thing that has always bothered me is the granularity of grading scales. The point of the exercise of giving a grade should be an attempt to classify how well the student learned the material. It seems reasonable to classify this level of understanding into “not at all”, “not very much”, “ok”, “pretty well”, and

Why does no one care that professors aren’t trained as instructors?

It has always seemed extremely odd and unacceptable to me that faculty members of most universities, while being experts in their areas of research, have not received even a single hour of training on how to be an effective educator. While such expert status may make someone the best person to teach a very specialized

Teach the “Why”, Not the “How”

Let us consider a college Calculus course. The timeline of the course goes approximately like this: Week 1 - What is a derivative? Week 2-10 - Practice manually computing derivatives of hundreds of functions. Week 11 - What is an integral? Week 12-20 - Learn many methods for performing integration manually and practice this on

Problem Abstraction: Helping others help you & promoting the archive-ability of your answers

I find all too often on mailing lists and forums that people are so concerned with getting the answer to their question that they forget that no one else has anywhere near the same view of the problem as they do. Asking too specific of a question is extremely harmful to all parties. For the

Creating a Common Research Language

As a research engineer, the sharing and dissemination of ideas throughout the field is absolutely critical. These ideas are tightly coupled to their implementations. As a explanatory example, consider a very simple invention, the pencil. Once can explain the concept of a pencil in a single sentence : ``A pencil is a writing implement usually

ASEE Northeast Section Conference May 7-8 2010 Summary

I recently attended the Northeast Section ASEE conference in Boston, MA. While there were two full days of poster and oral presentations, there were a few that stood out as particularly profound to me. The following is a brief summary of the conference and these excellent presentations. Theme The conference theme was “Education in the

A Conditional Mesh Front Iterator for VTK

David Doria, "A Conditional Mesh Front Iterator for VTK". The VTK Journal, April 2010   Region growing is a technique that can be used to propagate information over a mesh. In a previous submission, "A Mesh Front Iterator for VTK", we introduced an iterator that can be used with vtkPointSet subclasses to traverse a mesh.

A Mesh Front Iterator for VTK

David Doria, "A Mesh Front Iterator for VTK". The VTK Journal, April 2010   Region growing is a technique that can be used to propagate information over a mesh. We provide an iterator that can be used with vtkPointSet subclasses to traverse a mesh in a reasonable fashion. A "front" is emanated from a selected

Graph Cuts Based Super Pixel Segmentation for VTK

David Doria, "Graph Cuts Based Super Pixel Segmentation for VTK". The VTK Journal, March 2010   Segmenting images into "super pixels" is lately a very hot topic. One implementation of such a technique is by Felzenszwalb and Huttenlocher. We propose a new class, vtkSuperPixelSegmentation, which has wrapped Felzenszwalb's code (with permission) to provide this functionality