Computing

Computers have become indispensable problem solving tools thanks to correctness, consistency, speed and abstraction. Computational abstraction is synonymous with ongoing complexification, or a continual reduction in functional complicatedness from the standpoint of the user. The construction and maintenance of the problem-solving hierarchies that arise from this process of complexification presents a wonderful burgeoning field in which I enjoy participating. I pursue Computer Science at the University of Wisconsin – Madison. At the moment, graph theory, web development, distributed computing, and software architecture interest me. More generally, I am interested in comparing problem-solving patterns between hierarchies of computation.

New Release of the Gephi Minimum Spanning Tree Plugin

after-running-minimum-spanning-tree

At the end of 2015 the Gephi team released version 0.9. Version 0.9 contained many important core innovations that necessarily broke backwards compatibility, and with it, some plugins. The Minimum Spanning Tree plugin broke. I recently fixed it to work … Continue reading

Posted in Computing, Projects | 6 Comments

Brief Data Visualization Portfolio

ca_drought_reservoir_bars_and_map2

Through my work at the Center for Integrated Data Analytics, I’ve created many interactive web-based data visualizations. I highlight a few of the publicly-available works below. Disclaimers Descriptions of the apps are my own – they are not representative of the US … Continue reading

Posted in Computing, Projects, Web Development | Leave a comment

Gephi Spanning Tree Plugin Finally Available

spanning-tree

I published a plugin for Gephi, an open source graph data structure visualization and analysis platform. The plugin calculates a minimum spanning tree of a graph data structure via Kruskal’s Algorithm. The plugin can be installed like any other plugin on the … Continue reading

Posted in Computing, Projects | 4 Comments

Avoid “for in” loops in JavaScript

Newcomers to JavaScript from other programming languages often neglect an important aspect that makes their code prone to subtle, difficult-to-detect bugs down the road. JavaScript’s "for in" loop is not your C-like-language’s “for each” construct. "for in" enumerates all properties of … Continue reading

Posted in Computing, Programming Best Practices, Web Best Practices | 5 Comments

Dynamic Modularity in Java

I am really excited about the Netbeans OpenIDE Lookup library! The library allows you to retrieve service-providing class implementations at runtime. My favorite part is that it is elegantly simple to use, just one call to a static method returns … Continue reading

Posted in Computing, Programming Best Practices | Leave a comment

Kruskal’s Minimum Spanning Tree Algorithm

wiki kruskal example mst

A description of the Kruskal's Minimum Spanning Tree Algorithm is available on Wikipedia. I have reproduced the example graph from the Wikipedia article in several formats. Download various formats of both the initial graph and the final minimum spanning tree. Download various formats … Continue reading

Posted in Computing, Projects | Leave a comment

JavaScript OOP reference for Java Programmers

OOP in JS

JavaScript features a prototype-based object model that is distinct from the class-based object models of languages like C++ and Java. JavaScript is capable of many of the object-oriented features of the aforementioned languages. This post serves as a succinct reference for … Continue reading

Posted in Computing, Web Development | Leave a comment

Stop Wiscmail Spam

Many students at UW-Madison complain that they receive an inordinate amount of spam. Since I’m studying abroad in Madrid this semester, and 95% of the bulk mailings bear no relevance to me, the problem was all the more frustrating. Spam … Continue reading

Posted in Computing, Travel, Web Best Practices | Leave a comment

Programming Paradigms, Functions as First Class Citizens in PHP

Hunt and Thomas, authors of The Pragmatic Programmer, firmly advocate that code-crafters: “Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking … Continue reading

Posted in Computing, Programming Best Practices | Leave a comment

An Overview of the Open Source Movement

This presentation was created for LIS 201 – The Information Society at the University of Wisconsin – Madison. Those interested in a more thorough introduction should view the documentary Codebreakers. Photo Credits In Order of Appearance http://en.wikipedia.org/wiki/File:Here_Comes_Everybody.jpg http://en.wikipedia.org/wiki/File:ClayShirkyJI1.jpg http://gs.statcounter.com/#browser-ww-monthly-201012-201111-bar http://images.dailytech.com/nimage/22099_Linus_Torvalds.jpg … Continue reading

Posted in Computing, Projects | Leave a comment