Help
RSS
API
Feed
Maltego
Contact
Domain > chrisdesmond.dev
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2019-10-06
104.27.152.223
(
ClassC
)
2024-09-10
104.21.73.198
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Tue, 10 Sep 2024 07:51:52 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveCache-Control: max-age3600Expires: Tue, 10 Sep 2024 08:51:52 GMTLocation: https://chrisdesmond.dev/Report-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sM4cCdkGaxmtdDMCtHk03d2BCJ3BtW9ZjJ1ugH5DK6LFxOySKRld6CaO1IUn12VnBrVCU0JA65UjXAOHSydnivVULDhhI%2Bx6zTikm6f8OhQvvEtJ%2FC9UMY2QQq1mJKlMF8pjD},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8c0dd5d64f358e69-PDXalt-svc: h3:443; ma86400 html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>cloudflare/center>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Tue, 10 Sep 2024 07:51:52 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveLast-Modified: Wed, 14 Jun 2023 23:27:20 GMTAccess-Control-Allow-Origin: *expires: Tue, 10 Sep 2024 08:01:52 GMTCache-Control: max-age600x-proxy-cache: MISSX-GitHub-Request-Id: 37A3:3AF3D8:3D86548:3F39EA2:66DFFA97Age: 0Via: 1.1 varnishX-Served-By: cache-pao-kpao1770040-PAOX-Cache: MISSX-Cache-Hits: 0X-Timer: S1725954712.173276,VS0,VE98Vary: Accept-EncodingX-Fastly-Request-ID: 7aefc4856a3a13c974370e42edf97228f9e6e8a9CF-Cache-Status: DYNAMICReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?s5cdyvTE9Z0lYQVvW%2FQVexoD48VREZ%2FhaxTOaUQXRJ7MWWMi9%2Bv8pkd23EANdHEx%2FcdThE7FSSxB62UTKjww7WPIVLe5GqfmvVoBSoT8MuL7B4TN2Yjc%2FT%2BnHkXxYWWyrsvsj},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8c0dd5d6d9166a10-SEAalt-svc: h3:443; ma86400 !DOCTYPE html>html>head> meta charsetUTF-8> title>C. Desmond/title> meta nameviewport contentwidthdevice-width, initial-scale1.0> link relpreconnect hrefhttps://fonts.googleapis.com> link relpreconnect hrefhttps://fonts.gstatic.com crossorigin> link relstylesheet hrefhttps://fonts.googleapis.com/icon?familyMaterial+Icons> link relstylesheet hrefhttps://fonts.googleapis.com/css2?familyRoboto&displayswap> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css> link relstylesheet hrefhttps://cdn.jsdelivr.net/gh/devicons/devicon@v2.15.1/devicon.min.css> link relstylesheet href./media/styles/index.css>/head>body classprimary primary-text> header> nav classnav-extended accent> div classnav-wrapper> a classbrand-logo center hide-on-small-only> Christopher Desmond /a> a classbrand-logo center-align hide-on-med-and-up> C. Desmond /a> /div> div classnav-content> ul classtabs tabs-transparent tabs-fixed-width> li classtab> a href#about classactive> About /a> /li> li classtab> a href#projects> Projects /a> /li> /ul> /div> /nav> /header> main idabout> div classhide-on-med-and-down styleposition:fixed;margin-top:24px;margin-left:48px;> h5> a classhide accent-text href#info>info —/a> a classhide accent-text href#tech>tech —/a> a classhide accent-text href#education>edu —/a> a classhide accent-text href#employment>employ —/a> /h5> /div> div classcontainer> div idinfo classsection scrollspy> div classcenter-align> ul> li>i>Motivated developer with a passion for gaming and intelligent computing./i>/li> li>i>Application Engineer at Robotic Vision Technologies in Silver Spring, MD./i>/li> /ul> /div> /div> div classdivider>/div> div idtech classsection scrollspy> div classsection> div classcenter-align> i classdevicon-csharp-plain-wordmark colored medium-large tooltipped data-positiontop data-tooltipcsharp>/i> i classdevicon-python-plain colored medium-large tooltipped data-positiontop data-tooltippython>/i> i classdevicon-cplusplus-plain-wordmark colored medium-large tooltipped data-positiontop data-tooltipcpp>/i> i classdevicon-java-plain colored medium-large tooltipped data-positiontop data-tooltipjava>/i> i classdevicon-go-line medium-large tooltipped data-positiontop data-tooltipgo>/i> i classdevicon-html5-plain colored medium-large tooltipped data-positiontop data-tooltiphtml>/i> i classdevicon-css3-plain colored medium-large tooltipped data-positiontop data-tooltipcss>/i> i classdevicon-javascript-plain colored medium-large tooltipped data-positiontop data-tooltipjs>/i> i classdevicon-nodejs-plain colored medium-large tooltipped data-positiontop data-tooltipnode>/i> /div> /div> div classsection> div classcenter-align> i classdevicon-dot-net-plain colored medium-large tooltipped data-positionbottom data-tooltip.net>/i> i classdevicon-visualstudio-plain colored medium-large tooltipped data-positionbottom data-tooltipvs>/i> i classdevicon-github-plain colored medium-large tooltipped data-positionbottom data-tooltipgithub>/i> i classdevicon-windows8-plain colored medium-large tooltipped data-positionbottom data-tooltipwindows>/i> i classdevicon-linux-plain colored medium-large tooltipped data-positionbottom data-tooltiplinux>/i> i classdevicon-android-plain colored medium-large tooltipped data-positionbottom data-tooltipandroid>/i> /div> /div> /div> div classdivider>/div> div ideducation classsection scrollspy> h5>UNC Charlotte/h5> ul stylemargin-left:24px;> li>icon classmaterial-icons left>chevron_right/icon>span>Bachelor of Science, Computer Science/span>/li> li>icon classmaterial-icons left>chevron_right/icon>span>Concentration in Intelligent Systems/span>/li> li>icon classmaterial-icons left>chevron_right/icon>span>Minor in Business/span>/li> li>icon classmaterial-icons left>chevron_right/icon>span>Cum Laude/span>/li> /ul> /div> div classdivider>/div> div idemployment classsection scrollspy> div> div> h5 styledisplay:inline-block;>Application Engineer/h5> span classpipe accent-text>|/span> span classaccent-text styledisplay:inline-block;>Robotic Vision Tech/span> /div> div>Nov 2017 - Present/div> ul stylemargin-left:24px;> li> icon classmaterial-icons left>chevron_right/icon> span>Developed a user friendly, reduced feature set version of our vision software for SME clients/span> /li> li> icon classmaterial-icons left>chevron_right/icon> span>Designed a modern interface with WPF in C# and XAML/span> /li> li> icon classmaterial-icons left>chevron_right/icon> span>Decoupled our core codebase through a .Net interop layer using CPP/CLI/span> /li>br> li> icon classmaterial-icons left>chevron_right/icon> span>Developed a data analytics web app to visualize information recorded by vision software products/span> /li> li> icon classmaterial-icons left>chevron_right/icon> span>Designed the web interface with Dash, using Ploty for the data visualizations/span> /li> li> icon classmaterial-icons left>chevron_right/icon> span>Data is recieved through a REST API built using Flask/span> /li>br> li> icon classmaterial-icons left>chevron_right/icon> span>Completed some work in robot programming on Universal Robots/span> /li> li> icon classmaterial-icons left>chevron_right/icon> span>Recently began development on an SDK implementation of our vision software/span> /li> /ul> /div> div> div> h5 styledisplay:inline-block;>Research Assistant/h5> span classpipe accent-text>|/span> span classaccent-text styledisplay:inline-block;>UNC Charlotte/span> /div> div>May 2016 - Jul 2016/div> ul stylemargin-left:24px;> li> icon classmaterial-icons left>chevron_right/icon> span>Developed a GPU-accelerated Particle Filter for use in tracking moving objects in video/span> /li> li> icon classmaterial-icons left>chevron_right/icon> span>Parallelizing for GPU significantly accelerated the task over conventional serial methods/span> /li> li> icon classmaterial-icons left>chevron_right/icon> span>Built with C++ using the ArrayFire library/span> /li> li> icon classmaterial-icons left>chevron_right/icon> span>Prototype developed in Matlab/span> /li> /ul> /div> div> div> h5 styledisplay:inline-block;>Manager/h5> span classpipe accent-text>|/span> span classaccent-text styledisplay:inline-block;>Pizza Hut/span> /div> div>Jan 2013 - Dec 2014/div> ul stylemargin-left:24px;> li> icon classmaterial-icons left>chevron_right/icon> span>Managed the team members during my shift/span> /li> li> icon classmaterial-icons left>chevron_right/icon> span>Dealt with customers directly to resolve any quality or service issues they might have encountered/span> /li> li> icon classmaterial-icons left>chevron_right/icon> span>Handled opening and closing operations for the store including transactions and cash deposits/span> /li> /ul> /div> /div> /div> /main> main idprojects stylemargin-top:11.25px;> div classcontainer> div classrow> div classcol s12 m6 l4> div classcard large> div classcard-image valign-wrapper styleheight:60%;> img classmaterialboxed srcmedia/images/vf_sample.png> /div> div classdivider>/div> div classcard-content> span classcard-title activator> Vision Factory a classbtn-small btn-floating right pulse accent onclickclearPulse(this)>i classmaterial-icons>more_vert/i>/a> /span> p>User friendly, reduced feature set version of core software product./p> /div> div classcard-reveal> span classcard-title> Vision Factory i classmaterial-icons right>close/i> /span> div> p>Front-end developed with WPF using C# and XAML. Connected to back-end with .Net CPP/CLI interop./p> p>Improved UX version of Pro software with a reduced feature set for our SME clients./p> p>Designed and implemented the UI and UX improvements. Contributed to the interop/back-end development./p> p>This is a lite software offering built for small to medium enterprise clients that dont make use of system integrators or need faster system set-ups./p> /div> /div> div classcard-action> a target_blank stylepointer-events:none;>N/A/a> /div> /div> /div> div classcol s12 m6 l4> div classcard large> div classcard-image valign-wrapper styleheight:60%;> img classmaterialboxed responsive-img srcmedia/images/vfdata_sample.png> /div> div classdivider>/div> div classcard-content> span classcard-title activator> VF Data i classmaterial-icons right>more_vert/i> /span> p>Data analytics app for visualization of Vision Factory data./p> /div> div classcard-reveal> span classcard-title> VF Data i classmaterial-icons right>close/i> /span> div> p>Interface built with Dash/Plotly in Python. REST API implemented with Flask./p> p>Web app used to visualize data captured by Vision Factory products. Data is recieved through API calls and stored in a SQL database./p> p>Updates in realtime and runs fully independent of Vision Factory. Live updates can be disabled to perform date filtering on all data./p> p>Calculates critical information including average cycle times, average deviation distance, failure rates, etc./p> /div> /div> div classcard-action disabled> a target_blank stylepointer-events:none;>N/A/a> /div> /div> /div> div classcol s12 m6 l4> div classcard large> div classcard-image> img classmaterialboxed srcmedia/images/filterOut.gif> /div> div classcard-content> span classcard-title activator> Particle Filter i classmaterial-icons right>more_vert/i> /span> p>Developed a GPU-accelerated Particle Filter for use in tracking moving objects./p> /div> div classcard-reveal> span classcard-title> Particle Filter i classmaterial-icons right>close/i> /span> div> p>Developed in C++ using the ArrayFire library, prototyping done in Matlab./p> p>Using a template image and differencing provides simple but robust tracking. The goal was to maintain accuracy of tracking while reducing tracking times./p> p>Parallelizing for GPU significantly accelerated the task over conventional serial methods. This is done by collecting the image patches for each particle in parallel and vectorizing the work done to determine the likelihood that the object is located at each particle./p> p>Further works needs to be done to optimize for multi-object tracking and improve robustness./p> /div> /div> div classcard-action> a classmodal-trigger href#filtermodal>Example/a> /div> div idfiltermodal classmodal primary> div classmodal-content> pre>code classcpp primary stylefont-size:small;overflow-x:initial;>// Sample particle filter construction, input, and output using ArrayFire//// Note: array data is stored on the device and is marked as free when it is out of scope// for this reason you do not need to manually deallocate device data#define _USE_MATH_DEFINES#define FILENAME_BUFFER_SIZE 25#include <arrayfire.h>#include <cstdio>#include <cstdlib>#include <math.h>#include <time.h>using namespace af;int main(int argc, char *argv) {try { // Select a device and display arrayfire info int device argc > 1 ? atoi(argv1) : 0; setDevice(device); info(); // Set seed for af::randn setSeed(time(NULL)); // Image and filter variables int tempSize 39; int patchSize (tempSize - 1) / 2; int resY 720; int resX 1280; int padResY resY + tempSize; int padResX resX + tempSize; int startFrame 100; int numFrames 50; int numObjects 1; int numParticles 500; // Distribution float variance 4; float sigma 10000; float mu 0; // Array of images in set to be tracked array imArray constant(0, padResY, padResX, numFrames); char fileNameFILENAME_BUFFER_SIZE; for (int f startFrame; f < startFrame + numFrames; f++) { array pad constant(255, padResY, padResX); snprintf(fileName, FILENAME_BUFFER_SIZE, Input/frame_%i.png, f); pad(seq(patchSize, resY + (patchSize - 1)), seq(patchSize, resX + (patchSize - 1))) rgb2gray(loadImageNative(fileName)); imArray(span, span, f - startFrame) pad; } // Ground Truth int hostGT { 608 + patchSize, 532 + patchSize }; array deviceGT constant(0, numObjects, 2, s32); deviceGT(0, 1) hostGT0; deviceGT(0, 0) hostGT1; // Create vector of template image array templateArray constant(255, tempSize, tempSize, numObjects); templateArray(span, span, 0) imArray(seq(hostGT1 - patchSize, hostGT1 + patchSize), seq(hostGT0 - patchSize, hostGT0 + patchSize), 0); array templateVector tile(templateArray(span, span, 0), 1, 1, numParticles); // Best particle array best constant(0, numFrames, 2, numObjects); // Linear model of image patch array model (iota(dim4(tempSize, 1), dim4(1, tempSize)) - patchSize); model + tile((range(dim4(1, tempSize), 1) - patchSize) * padResY, tempSize); // Init particles randomly from ground truth array particles constant(0, numParticles, 3, numObjects); array noise randn(numParticles, 2) * variance; particles(span, seq(2), 0) round(tile(deviceGT(0, seq(2)), numParticles) + noise); particles(span, 2, 0) 0; // Frame loop for (int f 0; f < numFrames; f++) { array im imArray(span, span, f); // Create translate matrix for each particle, declare vector for each particles patch array translate tile(moddims(particles(span, 0, 0) + (particles(span, 1, 0) * padResY), 1, 1, numParticles), tempSize, tempSize); array patchVector constant(0, tempSize, tempSize, numParticles); // Collect patches for each particle gfor(seq n, numParticles) { patchVector moddims(im(model + translate(span, span, n)), tempSize, tempSize, numParticles); } // Sum of Absolute Differences array sad moddims(sum(sum(abs(patchVector - templateVector)), 1), numParticles); // Probability that the object is at that particle array probs (1 / (sqrt(2 * M_PI)*sigma) * exp(-(sad(span, 0) * sad(span, 0)) / (2 * (sigma*sigma)))); particles(span, 2, 0) probs(span, 0) / tile(sum(probs(span, 0), 0), numParticles); // Find maximum of the particle probabilities // val here is need for the max function to return, as I dont array val constant(0, 1); array idx constant(0, 1); max(val, idx, particles(span, 2, 0)); best(f, span, 0) particles(idx, seq(2), 0); // Redistribute particles randomly particles(span, seq(2), 0) round(tile(particles(idx, seq(2), 0), numParticles) + variance * randn(numParticles, 2)); // Video output for example only // As hard disk R/W is a bottleneck, ideally this program would only return a matrix of object locations // If video is needed it is better suited on its own snprintf(fileName, FILENAME_BUFFER_SIZE, Input/frame_%i.png, f+100); array imOut loadImageNative(fileName); for (int n 0; n < numParticles; n++) { imOut(*particles(n, 0, 0).host<float>() - patchSize, *particles(n, 1, 0).host<float>() - patchSize, 0) 255; imOut(*particles(n, 0, 0).host<float>() - patchSize, *particles(n, 1, 0).host<float>() - patchSize, 1) 255; imOut(*particles(n, 0, 0).host<float>() - patchSize, *particles(n, 1, 0).host<float>() - patchSize, 2) 0; } snprintf(fileName, FILENAME_BUFFER_SIZE, Output/frame_%i.png, f); saveImageNative(fileName, imOut); } // Frame Loop} catch (exception& e) { fprintf(stderr, %s\n, e.what()); throw;}return 0; /code>/pre> /div> /div> /div> /div> div classcol s12 m6 l4> div classcard large> div classcard-image> img classmaterialboxed srcmedia/images/gatherMate.png> /div> div classcard-content> span classcard-title activator> GatherMate i classmaterial-icons right>more_vert/i> /span> p>A prototype application for spontaneous event scheduling./p> /div> div classcard-reveal> span classcard-title> GatherMate i classmaterial-icons right>close/i> /span> div> p>Developed in Android Studio (Java) using Firebase and Google Maps API./p> p>Each user can create events that are visible to friends. Friends can be added via username or email and are shown any events that their friends create./p> p>Each event opens a details page that contains a map view and other information about the event. Navigation to the event can be started from the map view and will open in Google Maps./p> p>Timers countdown to indicate when an event starts. Colored travel times indicate whether you can make it to an event on time and are updated from current traffic conditions via the Maps API./p> /div> /div> div classcard-action> a hrefhttps://github.com/MissingL-tter/GatherMate target_blank>Repo/a> /div> /div> /div> div classcol s12 m6 l4> div classcard large> div classcard-image> img classmaterialboxed srcmedia/images/ritualMaster5.png styletransform:translateY(-150px);> /div> div classcard-content> span classcard-title activator> Ritual Master i classmaterial-icons right>more_vert/i> /span> p>Game Jam project redesigned for mobile based on feedback./p> /div> div classcard-reveal> span classcard-title> Ritual Master i classmaterial-icons right>close/i> /span> div> p>Built using C# in Unity./p> p>Dynamic puzzle drawing maximizes asset resuse regardless of puzzle difficulty./p> p>Gameplay consists of mastermind style puzzles, growing in difficulty through size and number of resources./p> p>Presented at the first Playthrough Game Convention. Feedback indicated that people enjoyed the puzzle aspects of the game but felt other aspects were tedious./p> p>Originally designed as a desktop application during Global Game Jam. We redesigned it as a mobile game based on that feedback./p> /div> /div> div classcard-action> a hrefhttps://github.com/MissingL-tter/Ritual-Master target_blank>Repo/a> /div> /div> /div> /div> /div> /main> footer classpage-footer accent stylepadding:0;> div classfooter-copyright> div classcontainer center-align row> a classwaves-effect btn left accent-dark hrefhttps://www.linkedin.com/in/missingl-tter target_blank> i classdevicon-linkedin-plain hide-on-med-and-up>/i> i classdevicon-linkedin-plain left hide-on-small-only>/i> span classhide-on-small-only>MissingL-tter/span> /a> a classwaves-effect btn right accent-dark hrefhttps://github.com/MissingL-tter/ target_blank> i classdevicon-github-plain hide-on-med-and-up>/i> i classdevicon-github-plain left hide-on-small-only>/i> span classhide-on-small-only>MissingL-tter/span> /a> /div> /div> /footer> script srchttps://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js>/script> script typemodule srcmedia/scripts/index.js>/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]