iOS Snippet: Using UITextView with the Keyboard

It would seem reasonable to expect that an on-screen keyboard would normally be used with a UITextView, but if the UITextView is full screen then when the keyboard displays the bottom half becomes inaccessible. It is easy enough to fix, but there seem to be more ways to get this wrong than there are to get it right. Below is the method that I have found (from examples on the Apple developer site) to work the best, so far.


MarkShown is a very simple iPhone app for quickly creating textual presentations which can be shown on an external display. A Markdown-like syntax is used to format presentation slides and presenter notes; the presentation slides will show on an AirPlay device, and the presenter notes will show on the local screen.

MarkShown is designed to make creating simple, text-based presentations easy, so it does not currently support images, slide transitions, or any other fancy features. If you need a more powerful presentation tool, then by all means stick with Powerpoint or Keynote.

MarkShown is available for free from the Apple App Store.

When Affirmative Action Was White

In When Affirmative Action Was White, Ira Katznelson contends that the modern economic disparities between black and white Americans were fueled more by New Deal era policies than by the long standing American tradition of white supremacy. New deal and fair deal policies, such as Social Security, Labor Reform, and the GI Bill of Rights, were written in ways which allowed for the outwardly colorblind laws to be administered in traditional, segregated fashion. This selective administration of progressive policies allowed for members of the white middle class to increase their socioeconomic status at a tremendous pace while blacks remained shackled in poverty. The differences in opportunities allowed for the socioeconomic gap between whites and blacks to grow at an accelerated rate. Taking this historical perspective into account, Katznelson further argues that present-day affirmative action was not a new social policy devised as a result of the civil rights era; it was a redirection of affirmative action policies already in existence that had favored whites from the 1930s through the 1960s.

When New Deal programs were being formulated the Roosevelt Administration had to get support for the radical legislation by pulling together groups with diverse interests. One of the groups whose support was required to pass the legislation was the Southern Democrats. The South had been solidly Democratic since President Lincoln, and this consistency led them to hold control of committees which were key to maintaining Jim Crow laws. These factors gave the Southern Democrats outsized control of the New Deal legislation, and they used that control to ensure that the social order they were accustomed to would be maintained. Their strategy was ensuring that federal programs be administered locally rather than at the federal level; due to the scale of the proposed legislation it was an easy concession to garner. Once local administration was ensured, the Southern Democrats could allow for the passage of legislation that was not explicitly discriminatory yet would result in the outcomes that preserved existing Southern social order.

Software as a 2.5D City in the Rust Belt

Software as a 2.5D City in the Rust Belt

Using Pseudo-3D and Micro-metaphors to Visualize Software

December 15, 2012

Abstract — By expanding the “software as a city” metaphor to take advantage of micro-metaphors while limiting the viewport’s range of movement, a breadth of disparate information can be conveyed in a compact, intuitive manner. This novel combination of focus and context could enable less technical staff and computer science students to more readily grasp complicated software engineering topics; it could also improve experienced staffs’ ability to visualize ever more complicated software applications.

Trouble Ticket Solution Provider

Using Natural Language Processing to Perform Information Extraction

December 13, 2012


Most large corporations provide various information technologies to their workers. To support the provided hardware and software they often have a help desk or service desk which is made up of people and software. Service desk employees are often entry level and have little understanding of the business and its specific technical problems, so software is employed to route tickets to the appropriate staff and record the knowledge which is learned along the way. For improved efficiency it is important to be able to access the information that has been amassed in the service desk software, but simple text queries often fall short. The purpose of this experiment is to use natural language processing techniques to extract information from a series of service desk tickets, then structure the information in such a way that it can be retrieved with more precision than is provided by simple text queries.

Race in Modern America & Big Data

Modern America is a divided society. Maybe it is a side-effect of our socioeconomic system, which prides itself at thriving through competition, or maybe it is natural. Whatever the cause, America must strive to identify and eliminate those division which have a net negative effect on its people. Of those negative divisions, race is probably the most pernicious. Scholars such as W. Lloyd Warner and Michelle Alexander have argued that the racial divide is so extreme that it almost resembles a caste system. Regardless of exactly how divisive race is, it is clearly still an issue in contemporary America, and it carries incalculable costs. As W.E.B. Du Bois said of racial discrimination, “[It] is morally wrong, politically dangerous, industrially wasteful, and socially silly.” (Katz and Sugrue 1998, 55) All Americans should support actions to reduce the burden of historical racism. Racial division was originally a direct result of laws created within the United States, so it should be possible to use the same system of laws to redress the issue of racial discrimination and division.

Software Engineering Advice for Manufacturing Companies

The software development process for a large midwestern manufacturing firm is likely to be much less efficient than that of a fresh young startup in the Silicone Valley. Many of these large firms have been around for years, and their processes were likely developed prior to the digital revolution. According to Lehman’s third law on self regulation, iterations of a software package will take on a uniform set of characteristics over time; this is true for business processes as well, since firms will tend to keep doing what has made them successful in the past. Unfortunately, applying industrial revolution era practices to digital revolution era technologies yields less than optimal results. However, with an open mind and an able guide, it is possible for these established firms to implement an efficient, modern software development strategy.

Random Letters for a Word Game

My wife and I enjoy playing the iPhone game LetterPress which was recently released by atebits. Atebits’s lead developer is Loren Brichter, who also wrote Tweetie, which became the official Twitter app for the iPhone, writes some great software. So, if you have not done so already, you should definitely try this free game [and then make the in-app purchase if you enjoy it]. That being said, I did come up with one tiny complaint.

Recently a board came up which five “Z”s, two “V”s, two “K”s, an “X”, and a “J”. Those letters are five of the seven least used letters in the English dictionary, only “Q” and “W” were missing. Almost half of the game board was composed of very infrequently used letters. The game was still playable, but I thought that gameplay might be a little better if concentrations of infrequently used letters were minimized. I think that the chance of getting a “Z” on any given tile should be less than 1 in 26, and instead of just complaining about the game I decided to see what it would take to create an improved random letter generator.