# Formatting in a Shiny App

I’ve been updating a Shiny (web-based interactive R) application, during the course of which I needed to make a couple of cosmetic fixes. Both proved to be oddly difficult. Extensive use of Google (I think I melted one of their cloud servers) eventually turned up enough clues to get both done. I’m going to record …

More

# Some R Resources

(Should I have spelled the last word in the title “ResouRces” or “resouRces”? The R community has a bit of a fascination about capitalizing the letter “r” as often as possible.) Anyway, getting down to business, I thought I’d post links to a few resources related to the R statistical language/system/ecology that I think may …

More

I recently picked up a pair of Bluetooth headphones (Mixcder ShareMe 7) for use with my laptop (which runs Linux Mint). Getting them to connect properly was a bit of an adventure. After I had things (mostly) sorted out, I decided to script the steps necessary to get them working so that I could just …

More

# Finding the Kernel of a Matrix

I’m working on an optimization problem (coding in Java) in which, should various celestial bodies align the wrong way, I may need to compute the rank of a real matrix and, if it’s less than full rank, a basis for its kernel. (Actually, I could get by with just one nonzero vector in the kernel, …

More

# Enforcing Simultaneous Arrivals

I’m recapping here an answer to a modeling question that I just posted on a help forum. (Since it will now appear in two different places, let’s hope it’s correct!) The original poster (OP) was working on a routing model, in which vehicles (for which I will use and if needed as indices) are assigned …

More

# MathJax Whiplash

Technology is continuously evolving, and for the most part that’s good. Every now and then, though, the evolution starts to look like a random mutation … the kind that results in an apocalyptic virus, or mutants with superpowers, or something else that is much more appealing as a plot device in a movie or TV …

More

# Using CLP with Java

The COIN-OR project provides a home to a number of open source software projects useful in operations research, primarily optimization programs and libraries. Possibly the most “senior” of these projects is CLP, a single-threaded linear program solver. Quoting the project description: CLP is a high quality open-source LP solver. Its main strengths are its Dual …

More

# Java “Deep Learning” Library

If you are a Java (or Scala) (or maybe Clojure?) programmer interested in analytics, and in particular machine learning, you should take a look at Deeplearning4j (DL4J). Quoting their web site: Deeplearning4j is the first commercial-grade, open-source, distributed deep-learning library written for Java and Scala. Integrated with Hadoop and Spark, DL4J is designed to be …

More

# Accessing R Objects By Name

At a recent R user group meeting, the discussion at one point focused on two of the possibly lesser known (or lesser appreciated?) functions in the base package: get and assign. The former takes a string argument and fetches the object whose name is contained in the string. The latter does the opposite, assigning an …

More

# Matching Ordering Is Not Always Easy

In some circumstances, you might want to build an optimization model containing two sets of variables, say and , and constrain them so that the sort order of each matches. That condition is easily expressed in logical terms: if and only if for all pairs with . Translating that into a mathematical programming model that …

More

# Deep Learning tutorial: Yoshua Bengio, Yann Lecun NIPS 2015

I think these are the slides. One of the topics which I’ve remarked on before is the absence of local minima in the high dimensional optimization required to tune these DNNs. In the limit of high dimensionality a critical point is overwhelmingly likely to be a saddlepoint (have at least one negative eigenvalue). This means …

More

# The story of the Monte Carlo Algorithm

George Dyson is Freeman’s son. I believe this talk was given at SciFoo or Foo Camp. More Ulam (neither he nor von Neumann were really logicians, at least not primarily). Wikipedia on Monte Carlo Methods. I first learned these in Caltech’s Physics 129: Mathematical Methods, which used the textbook by Mathews and Walker. This book was …

More

# SOLVED: Problem with Impressive

I’ve written before (here and here) about using the open-source Impressive program to display PDF presentations. It’s been quite a while since I used it, or any other presentation software for that matter — retired geezers don’t do a lot of presenting — but I’ll be helping the INFORMS Student Chapter at the University of …

More

# Tale of the Loose Cable

Friday I used my laptop (Acer Aspire V5-131, Linux Mint 17.3) at a coffee shop with no problems. Saturday it wouldn’t boot. The specific error message was: Broadcom UNDI PXE2.1 v15.0.1 <blah blah blah> PXE-E61: Media test failure, check cable PXE-M0F: Exiting Broadcom PXE ROM No bootable device — insert boot disk and press any …

More

# Presentation from #macul16: Making your own educational games with Twine

I few months ago, I shared some of the thoughts I had shared at a professional development day at a school here in Michigan. I intentionally left out part of the presentation with the intention of coming back to it later, which I never did. Last week, I dusted off those thoughts and shared an …

More

# Demis Hassabis: The Future of Artificial Intelligence

Thanks to AlphaGo and Lee Sedol, even my wife is interested in AI :-) Here’s a recent talk by DeepMind CEO Demis Hassabis, whose comments start @5:30 min. The content of this talk is suitable for a non-technical audience. @39 min: AlphaGo value / policy nets, and tree search. @1h03: over the summer DeepMind will …

More

# Questions About “Computer Science For All”

Nationwide efforts are underway to expand computer science (CS) offerings in K-12 schools. Several weeks ago, President Obama unveiled twin budget proposals to supplement state and local efforts to bolster CS education: a $4 billion proposal to help states increase their CS offerings, and a$100 million competitive grant program for school districts trying to enroll more …

More

# A CP Model for the Weight Problem of Bachet de Meziriac

Fellow OR blogger Erwin Kalvelagen just posted a MINLP model for a puzzle apparently posed by French mathematician Claude Gaspard Bachet de Méziriac. You can read the puzzle statement on Erwin’s blog; a brief synopsis is that you are looking to find four integer weights that sum to 40, such that any object with integer …

More

# Moore’s Law and AI

By now you’ve probably heard that Moore’s Law is really dead. So dead that the semiconductor industry roadmap for keeping it on track has more or less been abandoned: see, e.g., here, here or here. (Reported on this blog 2 years ago!) What I have not yet seen discussed is how a significantly reduced rate …

More

# DeepMind and Demis Hassabis

Recent profile in the Guardian; 15 facts about Hassabis. The mastery of Atari games through reinforcement learning deep neural nets is described here (Nature). See also Deep Neural Nets and Go: AlphaGo beats European champion. Guardian: … “We’re really lucky,” says Hassabis, who compares his company to the Apollo programme and Manhattan Project for both …

More

# Lessons learned when Web scraping #GorafiESR tweets

I’ve posted in the past about Web scraping Twitter user profiles, but I took some time last week to tackle something else that I’ve been thinking about: Scraping the tweets themselves. Web scraping tweets is a nifty trick, but it doesn’t necessarily have an obvious application right off the bat. I wound up doing it …

More

# Port Forwarding in Mythbuntu

My MythTV setup recently broke in an “interesting” way, and the fix I came up with is a bit involved … so be warned, what follows is a major kludge. Setup Before explaining the pathology (and fix), I need to describe the setup. I have Mythbuntu installed on a PC whose only function is to …

More

# Exploring game reviews with the DataBasic suite

This morning, I learned about the DataBasic suite of easy-to-use data tools from an article on the FlowingData blog. The suite offers three basic tools that let beginners cut their teeth on data science by doing some initial exploration of a dataset (either one you provide or a default dataset on the website): WordCounter lets …

More

# Oracle Java 8 Update

For quite a while, I was getting security nags from Firefox every time a web site wanted to run a Java applet. Firefox would tell me I needed to upgrade to the latest version of Java. That would have been fine, except that I was already running the latest Java (1.8.0_66 as of this writing). …

More

# Evolving Intelligence … With a Little Help

The year 2015 may go down in history for a lot of things. Just this December saw a number of firsts: A movie about armed conflict among celestial bodies breaks all records, a rocket delivers a payload of satellites and returns back to Earth vertically, not to mention the politics of the election cycle. But …

More

A couple of weeks ago, I spent some time discussing how to use R and Web scraping to retrieve information on Twitter users’ locations, as stored in their profiles. I’ve since updated the code to scrape not only locations, but names, descriptions, locations, personal websites, join dates, number of tweets, number of users following, number …

More

# A glimpse at assessment in Minecraft

For the past two semesters, I’ve been teaching CEP 813: Electronic Assessment for Teaching and Learning, a course associated with MSU’s Master of Arts in Educational Technology and Graduate Certificate for Online Teaching and Learning. There’s a lot of great information in this course, but one of the highlights for me is the two-week unit …

More

# Plotting Twitter users’ locations in R (part 4: the results)

After a week of going through the ins and outs of my experience with the #educattentats hashtag, it’s time to see some results! Yesterday, I discussed how I used the ggmaps package to turn the text string “locations” in users’ Twitter profiles into latitude and longitude coordinates. Once you have those, plotting them on a …

More

# Plotting Twitter users’ locations in R (part 3: turning text to coordinates)

Plotting Twitter users’ locations in R (part 3: turning text to coordinates) In yesterday’s post, I described how I scraped Twitter users’ profiles to collect the locations (as text strings) that they list in those profiles. This was a fantastic leap forward for my eventual goal of indicating on a map the location of everyone …

More

# Plotting Twitter users’ locations in R (part 2: geotags vs. Web scraping vs. API)

Yesterday, I mentioned discovering the French hashtag #educattentats that was created in the wake of the 13 November terrorist attacks. As far as I can tell, I discovered the hashtag shortly after it was created, so it’s been interesting to see how use of the hashtag has grown in the hours, days, and weeks since. …

More

# Exploring the difference between good games and bad ones?

Over the past year or so, I’ve been working with data from the websites BoardGameGeek and VideoGameGeek. As both of these sites are crowd-sourced, there’s a huge amount of player-generated data about games, and I feel like there’s a lot that we can learn from it that has implications for educational games. For example, earlier …

More

# Producing Reproducible R Code

A tip in the Google+ Statistics and R community led me to the reprex package for R. Quoting the author (Professor Jennifer Bryan, University of British Columbia), the purpose of reprex is to [r]ender reproducible example code to Markdown suitable for use in code-oriented websites, such as StackOverflow.com or GitHub. Much has been written about …

More

# Another OR Educational Resource

Two years ago (two years and one day if you’re being picky), I posted a pointer to a Spanish language web site hosted by Francisco Yuraszeck (professor at the Universidad Técnica Federico Santa María in Viña del Mar, Chile). The site, Gestión de Operaciones, is listed in the resources box on the right. Recently, Francisco …

More

# Don’t Worry, Smart Machines Will Take Us With Them: Why human intelligence and AI will co-evolve.

I hope you enjoy my essay in the new issue of the science magazine Nautilus (theme: the year 2050), which discusses the co-evolution of humans and machines as we advance in both AI and genetic technologies. My Nautilus article from 2014: Super-Intelligent Humans Are Coming. Nautilus: … AI can be thought of as a search problem …

More

# More Shiny Hacks

In a previous entry, I posted code for hack I came up with to add vertical scrolling to the sidebar of a web-based application I’m developing in Shiny (using shinydashboard). Since then, I’ve bumped into two more issues, leading to two more hacks that I’ll describe here. First, I should point out that I’m using …

More

# Deep Learning in Nature

When I travel I often carry a stack of issues of Nature and Science to read (and then discard) on the plane.The article below is a nice review of the current state of the art in deep neural networks. See earlier posts Neural Networks and Deep Learning 1 and 2, and Back to the Deep. …

More

# Shiny Hack: Vertical Scrollbar

I bumped into a scrolling issue while writing a web-based application in Shiny, using the shinydashboard package. Actually, there were two separate problems. The browser apparently cannot discern page height. In Firefox and Chrome, this resulted in vertical scrollbars that could scroll well beyond the bottom of a page. That’s mildly odd, but not a …

More

# Tabulating Prediction Intervals in R

I just wrapped up (knock on wood!) a coding project using R and Shiny. (Shiny, while way cool, is incidental to this post.) It was a favor for a friend, something she intends to use teaching an online course. Two of the tasks, while fairly mundane, generated code that was just barely obscure enough to …

More

# The rJava Nightmare

I like R. I like Java. I hate the rJava package, or more precisely I hate installing or updating it. Something (often multiple somethings) always goes wrong. I forget that for some reason I need to invoke root privileges when installing it. It needs a C++ library that I could swear I have, except I …

More

# Selecting the Least Qualifying Index

Something along the following lines cropped up recently, regarding a discrete optimization model. Suppose that we have a collection of binary variables $x_i \in B, \, i \in 1,\dots,N$ in an optimization model, where $B=\{0, 1\}$. The values of the $x_i$ will of course be dictated by the combination of the constraints and objective function. …

More

# Alternative Versions of R

Fair warning: most of this post is specific to Linux users, and in fact to users of Debian-based distributions (e.g., Debian, Ubuntu or Mint). The first section, however, may be of interest to R users on any platform. An alternative to “official” R By “official” R, I mean the version of R issued by the …

More

# Keynote: Foundation of Digital Games 2015

Well, I’m going to be keynoting at the Foundation of Digital Games (FDG) Conference in just two weeks. That’s actually just one of the many things I’ll be doing. I’ll be serving on the doctoral colloquium as well as presenting as part of a panel with delightful people on a panel titled: “What Unity Wants/Making …

More

# Feelings of Rejection

This is a quick (?) recap of an answer I posted on a support forum earlier today. I will couch it in terms somewhat specific to CPLEX, but with minor tweaks it should apply to other mixed-integer programming solvers as well. It is possible to “warm start” CPLEX (and, I’m pretty sure, at least some …

More

# Hell Hath No Fury Like a Dependency Scorned

There is a recent package for the R statistics system named “Radiant”, available either through the CRAN repository or from the author’s GitHub site. It runs R in the background and lets you poke at data in a browser interface. If you are looking for a way to present data to end-users and let them …

More

# New kids on the blockchain

WSJ reports on institutional interest in blockchain technologies. WSJ: Nasdaq OMX Group Inc. is testing a new use of the technology that underpins the digital currency bitcoin, in a bid to transform the trading of shares in private companies. The experiment joins a slew of financial-industry forays into bitcoin-related technology. If the effort is deemed …

More

# Model Credibility

Someone asked an interesting question on a support forum recently. The gist was: “How do I confirm that my model is correct?” On the occasions that I taught simulation modeling, this was a standard topic. Looking back, I don’t recall spending nearly as much time on it when teaching optimization, which was a mistake on …

More

# Artificial Intelligence has crushed all human records in 2048. Here’s how the AI pulled it off.

By now, we’ve all heard of the addictive tile-mashing game called 2048. Last week, I picked up 2048 for the first time and — true to my nature — I started designing an AI to beat the game for me the following day. It didn’t take me long to find out that there’s already some …

More

# The Monty Hall Evolver

The Monty Hall problem is very famous (Wikipedia, NYT). It is so famous because it so easily fools almost everyone the first time they hear about it, including people with doctorate degrees in various STEM fields. There are three doors. Behind one is a big prize, a car, and behind the two others are goats. …

More

# Optimization Pro and Con

A tweet by Nate Brixius (@natebrix) led me to read the article “The Natural Order and Divine Order of Optimization” published by the Wisconsin Institute for Discovery, a rebuttal/counterpoint to a New York Times Magazine article titled “A Sucker is Optimized Every Minute“. The former sings the praises of optimization (somewhat) and the latter vilifies …

More

# Optimized walking tours of New York City and Philadelphia

In the past couple weeks, I’ve shown you how to use machine learning to improve the efficiency of road trips all over the world, including the U.S., Europe, and South America. In this post, I’d like to show you how we can use the exact same algorithm to optimize walking tours in large cities. If …

More