Open is a web application created by the West Side Story's Engineering and Development team. It's designed so that anybody, regardless of experience, can change properties of a webpage with ease.

Inputs for colors can be simple colors, like "red", "green", "white", etc. as well as hexadecimal colors for even more specificity.

Inputs for font faces can be "Helvetica", "Arial", "Times", and the like; these are basic webfonts.

Inputs for link formatting can include "underline", "line-through", or "overline".

If you have suggestions for fonts or additions to the list of properties, send us a personal email or talk to us in person.

WSS Engineering

A collection of stuff I think is cool.

I love what I do and I love making a difference through what I do. Seeing someone else smile because of something I did is my greatest goal.

Who am I?

I am Anthony Pizzimenti.

I'm a Java and web engineer from Iowa City, Iowa. For the last year, I've worked freelance, improving my skills in frontend and backend web development as well as software engineering. I now work for the West Side Story as a web developer, IT consultant, and podcast guy.

I don't have a lot of spare time, but when I do, I play ice hockey for the Varsity high school team (also, LGRW!). I like doing crossword puzzles and playing StarCraft II, probably my favorite video game of all time. I also enjoy playing recreational soccer (although I'll be trying out for the school team next year) with my friends and cooking. My friend Louis and I run a podcast called TechTalk, where we discuss recent news surrounding the technological news sphere as well as do a whole portion of the show dedicated to helping people troubleshoot their PC problems on reddit.

My Tools

Brackets, my HTML/CSS/JS editor. With a few added extensions, it (almost) becomes an IDE.
eclipse, my Java IDE. It's a great editor and not TOO too heavy. Easily my favorite feature is auto-building.
Not really a tool, per se, but Chrome is a great browser. I'll post a list of the extensions I use soon enough. Also, the devtools are great.
I use the command line for a lot of stuff. I use Git to organize and publish my work, and as I don't really like the desktop app, I use the command line. I also use SASS as a preprocessor, so I run SASS commands from the command line as well.

I'm Anthony Pizzimenti. I'm a Java and web engineer from Iowa City, Iowa. This is my blog about music, web and software engineering, robotics, dinner parties, and whatever else I can muster. This is the mobile version of the site, so if you want a better experience with more content, visit this page on a computer.

The Simple Blogger theme edited by Anthony Pizzimenti © 2014, 2015.
Full mobile version by Anthony Pizzimenti, © 2015

June 29, 2015

Keeping it Sharp

Small Activities

Lately, I've been a bit bored. Every day for at least an hour, I've been riding the city bus home. It's a great time to sit and reflect on life - or to do a crossword puzzle. These dizzy dinky daily dastardly riddles baffle my brain and test my memory to a tee.

... sorry.

Anyway, I've taken to them. They're fun to do and getting angry at how abstract or vague the clues can be is the second best part of doing the puzzle. I now keep a pencil and a pen in my backpack at all times.

The Daily Show

Since school is over and I work on projects for about 2-3 hours a day, I have quite a bit of free time. So, I've taken to watching The Daily Show again. Even though it's a comedy show, it's an okay way to stay informed and have a few laughs at the same time.

My favorite show, though, is Last Week Tonight.  I've loved John Oliver since his premier days on The Daily Show, and when he took over the show while John Stewart was making Rosewater. Oliver does an excellent job on his show, especially with his big interview of Edward Snowden. He is purely content, and points out hypocrisy and injustice through a comedic medium. It's pretty awesome, and I highly recommend it.

The other thing I was is standup comedy. Lots and lots of standup comedy.

Keeping it Dull?

I've also been surfing reddit almost ALL the time. I read AskReddit threads, browse dank memes, and read articles on offseason NHL trades. It is a great content website that's updated almost constantly, so I'm there most of the time. A lot of the stuff I get is also from Tabbie, my absolute favorite browser extension. I have HackerNews and GitHub extensions, too, that let me browse news and cool repos.

June 22, 2015

New Design

It's all New

So it's been much too long since I last wrote a post, but I was preparing for final exams, taking final exams, preparing for ACT/SAT, taking ACT/SAT, taking driver's ed, et cetera.

Anyway, a new design has appeared! After doing all that stuff, I finally got back to what I love most: coding and programming. I've been exploring new things to do with Java on the server side, and new, exciting things on the front end. I've started using SASS, using CSS3 transitions/transforms, and reading lots of engineering blogs.

I got a position at West Side Story, too. I'm working with a team of devs/engineers and we'll be working on redesigning the website to the needs of everyone on staff (most notably the editors-in-chief). Also, I'll be "pimping" out the blogs for the staff members and possibly continuing some freelance work on the side.

Anyway, just a check-in. Since I have a lot of free time, I plan to blog about ~4-5 times a week.

May 19, 2015

Interview with Romy Bolton

Recently, I published a research paper on the presence of women in the computer science sector. I used a variety of sources, but I found that a personal interview with one of my girlfriend's moms would do the job perfectly.

To introduce her, Romy Bolton is the director at the University of Iowa's SiteNow program, which contracts the team to build a website for a city or University function. Bolton is also the creator of the eBongo bus tracking system, widely used throughout Iowa City and Coralville (and by me, personally).

Anyway, here's the interview. It's insightful and fun to read.


There's obviously a pretty large gender gap in the tech industry (oftentimes, <25% of positions are held by women). At what point during the educational process do you think this begins and why?

As with any problem that is challenging to solve, there are many things that come together to create the problem. I think in general many parents still create gender biases within their kids that often precludes girls from expressing interest in things like video games and legos that could lead them to a career in STEM generally but IT specifically. It is then reinforced in grade school where they play with other girls who experience the same things at home and many of girls that might be more interested in “non-traditional” things conform to have friends. They then don’t grow up with an active interest in math and science which leads them to stay away from STEM high school courses and the teachers don’t have the time to go and encourage them to stretch.

I am (far more often than not) the only woman in many of my daily meetings and sometimes I don’t even notice it anymore.


When did you decide that you wanted to work in development and what gave you motivation throughout your education experience?

I came to development in a pretty different way. My undergrad degree is in marketing and my MBA is in Quality, Leadership, and Teams, and I have a Six Sigma Black Belt and a Lean certification. In short I am all about solving problems for people - process engineering, re-engineering and efficiency. As I was working in those areas, technology played a very natural role.

First it is often a key tool in making a process more efficient. As an example one of my first projects was to help sales of telephone services move through the pipeline more quickly so customers could get their service faster. An application to gather sales information electronically and then move things along and proactively notify the next person in the online “assembly line” was at least one obvious way to do that.

Second, when you are getting ready to build a new application, (in the best executed app dev projects) you map out the process you are trying to automate before you gather requirements. The last thing anyone wants to do is automate a bad process.

And then there just some innate things about me that lead me here. I have always played video games with my brother, way back one it was an Intellivision (Google it :) ), later it was Oregon Trail in DOS format, then Sid Meier’s Pirates with at least 20 5 ¼ floppies, and then as adults we would set up a USB hub, connect two desktop PCs and play Civilization all night on holidays and finally MMORPG games like Dark Age of Camelot.

I took a couple programming classes in high school because I wanted to and I loved them. In the Business program at Iowa, you get a fair amount Management Information Systems coursework and I loved those too.

At the end of the day, though, it’s really my drive to solve problems that feeds my interest in coding and development.


What are some possible solutions to solving this problem?

I think there are several things in process and coming that could shift things for the better….

First is the consumerization of technology. So many (if not all) girls have smartphones now and recognize the way they integrate with their daily lives. That is more than anyone had when I was younger, even 10 years ago. I get girls and women telling me all the time that something should be made into an app for phones. Just that level of interest, knowledge and integration with technology will steer some girls in this direction.

Second, there are more games that girls are interested in – [my daughter] Allie, a big Sims player (and, obviously, Skyrim) and those more RPGish games play more to what girls like than first person shooters (for example). Allie likes to fight in Skyrim, but she was originally drawn in through the narrative and the relationships between the characters in the games (if that makes sense to you?). You can build a house and decorate a house and get married and adopt kids and all of that stuff – like playing house but in a XBOX game.

Both of these are making girls more interested in technology and some will gravitate here that wouldn't have before because it’s a not an external thing they read about, but it’s in their lives every day in a way that fits them and they want to understand more.

There is a new trend that is being discussed and studied right now in technology that should be pushed in high schools. There is a distinct move away from the hardcore technology people in the workforce, but this is just starting. As things move to the cloud for efficiency of hardware management and server virtualization really takes hold, there will be fewer system administrators and the ones there are will all work for Amazon Web Services or Microsoft Azure or large research universities. The people working with technology in individual businesses will now need to be proficient in things like communication, customer service and empathy, consensus building, understanding how technology systems can integrate to solve problems, documenting requirements, training end users, better ways lead and deliver technology projects; all things that are more in line with the way many women think and not so much solely manipulating bytes.

As you yourself know, many of the languages are becoming more based in human language than machine language. Integrated development environments, GUI interfaces are quickly replacing (or at least offering alternatives to) straight command line actions. Hardcore techies will still be necessary, but there is a tremendous realization that we have a huge gap [between] the staff who can help connect the technology that the super techies build to the humans who need to use it.

Finally, you have women like me who hopefully help change the way many men think about women in technology. I look actively for women to hire and mentor and turn in to leaders [and] female students to hire and train. Many men I work with do the same things.

Potential: A Research Paper on the Turbulent Past

Trying to type with one hand is much harder and slower than typing with two. Currently, the US workforce is comprised of 92.9 million women -  forty-seven percent (US Department of Labor). At maximum, only one in four employees at a large tech company is a woman, rendering their corporate personnel totals hollow. Why is the female component of the workforce minimally included in the fastest-growing industry in the world? Women are an imperative part of the technological movement, and are key to filling the large influx of jobs in computer science and its related fields.
Interaction with technology begins at a very young age, both for boys and for girls. Most of the time it’s through video games, especially as kids games on mobile platforms continue to increase in number. “I have always played video games with my brother,” says Romy Bolton, Director at the University of Iowa SiteNow program (a paid website development program) and  creator of the eBongo bus tracking system. She credits part of her initial interest in tech to video games; this goes for the majority of kids today as well. Ninety-seven percent of all teens, regardless of gender, play video games. And while ninety-nine percent of boys play games, this is followed closely by girls’ ninety-four (Pew). As the global market for all video games grows, interest in playing them grows as well: “There are more games that girls are interested in,” says Bolton. At the teenage level, girls are only one percent behind boys in desktop gaming at seventy-three percent and out-game boys on mobile platforms by ten percent, indicating potential interest in desktop and mobile computing. Also, girls significantly outplay boys in the puzzle game category eighty-seven to fifty-eight percent, showing a clear interest in problem solving (Pew). Girls are clearly interested in technology, yet comprise only thirteen and ten percent of computer science and engineering degrees respectively (US Department of Education). A large, looming problem exists with women’s presence in the technological field, and it has to be solved.
The gender gap in computer science and its related fields has actually widened since the advent of the personal computer despite relatively stable gender disparities in other STEM (Science, Technology, Engineering and Mathematics) fields (Sax). The intentions of many women entering college has markedly changed: in 1983, approximately four percent of women intended to major in computer science, compared to men’s five-point-eight; this was followed by a significant drop in intention for both men and women in 1985. In 1996, the rise of the Internet revitalized computer science interest, and men’s intention numbers shot up to six and a half percent; women’s peaked at just above one-point-four. Since then, women’s numbers have continued to decline and now rest at a miniscule zero-point-three percent compared to men’s two (Sax). The gap in degrees given to women is also quite significant: in 1985-86, fourteen percent of all Bachelor’s degrees were given to computer science majors, and women represented thirty-seven percent of those awarded. In 2011, seven percent of all degrees went to CS (computer science) graduates, and women comprised seventeen percent; in 2012, eight percent of degrees were in CS, and women represented thirteen percent (US Department of Education). Although these statistics indicate loss of interest in computer science for both genders, the amount of women intending to major or graduating in the field of computer science has declined alarmingly.
Under most circumstances, the factors that play into women shying away from careers in CS likely begin as early as kids are able to play with toys. “I think in general many parents still create gender biases within their kids that often preclude girls from expressing interest in things like [...] LEGOs that could lead them to a career in STEM,” Bolton says. And as these problems continue through primary and secondary education, self-rated confidence in mathematical ability among young women (compared to male counterparts) drops significantly. Another contributor is the ideology behind choosing a career: statistically, women tend to favor jobs where they can help those around them. For example, women are now nearly equally represented in the medical and bioscience fields (Sax, US Department of Labor). However, the idea of sitting behind a desk and programming all day oftentimes doesn’t appeal to the ‘helping-others’ ideal. These factors have played into a drastic lowering of women’s interest in the field, dealing a blow to the tech industry of the future.
The tech industry grows larger every day, and with this growth comes the need for human capital. With effectively half of the potential workforce declining work in this field, the country may face a problem filling these new positions (US Department of Labor). Currently, seventy-seven percent of all companies in Silicon Valley intend to hire more people in 2015, and of that seventy-seven percent, sixty-two percent plan to increase their staff by more than a fifth (Silicon Valley Bank). By 2022, there will be more than one-point-two million computer science jobs in the United States. Unless more women enter the field, only sixty-one percent of those positions can be filled (US Department of Labor). On top of low graduation numbers for women in CS, an analysis of 10 large Silicon Valley and Seattle companies show that they underemploy women, especially in the technology sector:Screen Shot 2015-05-17 at 10.58.55 PM.png
Alongside the gender gap, a gender-pay gap exists as well. Women with a Bachelor’s or higher are paid forty to seventy-three percent less than men with the same educational experience, and the percentage only grows as educational level increases (Silicon Valley Index). If the negative trends in graduation rates, employment, and pay equity are perpetuated, the tech industry will not have enough employees to fill its necessary jobs. These companies must employ women if they wish to remain relevant and, in turn, alive.
Bolton says that there is hope on the horizon resulting from increased mobile phone and computer use with girls. “So many, if not all, girls have smartphones now and recognize the way they integrate with their daily lives” she says. It’s much more than Bolton had as a kid, and now she gets “girls and women telling me all the time that something should be made into an app for phones. Just that level of interest, knowledge and integration with technology will steer some girls in this direction”. In this vein, Harvey Mudd College and the Anita Borg Institute began a project called Building Recruiting and Inclusion for Diversity, or BRAID. Its aim is to restructure the recruiting process for computer science departments in 15 major universities across the US. BRAID reaches out to high school instructors and students to make CS courses less intimidating, to generate interest in underrepresented groups, and to create joint majors like biology and CS (Sax, Harvey Mudd).  Another possibility, says Bolton, is that technology is shifting away from “hardcore techies” and towards “communication, customer service and empathy, consensus building, understanding how technology systems can integrate to solve problems, documenting requirements, training end users, better ways to lead and deliver technology projects - all things that are more in line with the way many women think and not so much solely manipulating bytes”.
It is absolutely necessary to get more women into the tech field. Three of the top ten highest-rated careers are in the computer science fields, all with average base salaries starting at or above $97,800 (Forbes). Through powerful initiatives such as BRAID and the support of role models like Bolton and Sax, the gender gap, while large, can be worn away. With concentrated effort to instill and retain an interest in technology from women and relaying to high school students the large potential in the technology field to build communities and better society, there is hope. “You see the impact every single day, on real people. Your friends and your family. That’s just… magical” (Fitzpatrick).
Citations and Bibliography

Pew Research Centers. Pew Internet & American Life Project: Teen & Parents Gaming and Civics Survey. Pew Research Centers, November 2007 - February 2008. Web. http://www.pewinternet.org/2008/09/16/part-1-1-who-is-playing-games/

United States Department of Labor and Statistics. Labor Force Statistics. May 8, 2015. Web. http://www.bls.gov/data/

United States Department of Education, National Center for Education Statistics. Table 318.20. Bachelor’s, master’s, and doctors degrees conferred by postsecondary institutions, by field of study: Selected years, 1970-71 through 2011-2012. Digest of Education Statistics, 2013. Web. https://nces.ed.gov/programs/digest/d13/tables/dt13_318.20.asp

Linda Sax. Examining the Underrepresentation of Women in STEM Fields: Early Findings from the Field of Computer Science. University of California, Los Angeles, 2011-2012. Web. http://new.csw.ucla.edu/publications/newsletters/2011-2012/article-pdfs/Apr122.pdf

Silicon Valley  Bank. Innovation Economy Outlook 2015. Silicon Valley Bank, 2015. Web. https://www.svb.com/innovation-economy-outlook/

Rachel Massaro, Alesandra Najera, Silicon Valley Institute for Regional Studies Advisory Board, Joint Venture Silicon Valley Board of Directors, Silicon Valley Community Foundation Board of Directors, Index Advisors. Silicon Valley Index 2014. Silicon Valley Institute for Regional Studies, 2014. Web. http://www.siliconvalleycf.org/sites/default/files/publications/2014-silicon-valley-index.pdf

Harvey Mudd College. Harvey Mudd Launches BRAID Initiative to Increase Diversity in Computer Science. Harvey Mudd College, 2014. Web. https://www.hmc.edu/about-hmc/2014/09/24/harvey-mudd-launches-initiative-increase-diversity-computer-science/

Susan Adams. The 10 Most Promising Jobs of 2015. Forbes, January 2015. Web.
http://www.forbes.com/sites/susanadams/2015/01/27/the-ten-most-promising-jobs-of-2015/

Jen Fitzpatrick. MAKERS at Google: Women in Technology. Google, 2013. Web. https://www.youtube.com/watch?v=tjFeLln_tfg

Bolton, Romy. Personal Interview. May 13, 2015.

April 13, 2015

WPP #2 - Follow-Up

Intro


Since the last time I checked, the UI hasn't posted the answers to the challenge questions.  I couldn't save the code for our solutions either, but I'll do a writeup with the gist of how to solve the problems.

Intro to a project I actually did on Sunday


So I actually did a project on Sunday. I wrote a NHL playoff predictor. It's fairly rudimentary and only based on the relative regular-season strengths (% of games won in the regular season), but it does 10,000 series simulations with 100 single-game simulations to predict the outcome of a series with reasonable accuracy.


The Maths

So the way the winner is calculated is by a HUGE series of averages.

First, the user inputs the strengths of each team over the regular season. The difference between the two is calculated (using Math.abs(strength1 - strength2)) and stored in a global variable.

In the series() method, it first enters a loop which will individually run 10k times, simulating a full playoff series 7 times. After this, it enters the individual series loop, which terminates after one team reaches 4 wins. Each game is simulated 100 times, and goes like this:




























So each team's win is calculated by the difference in strengths applied as a handicap for the worse team. If one team has a strength of, say, .665 (the St. Louis Blues) and another has a strength of .610 (the Minnesota Wild), the difference of these strengths is .055. The method generates a random number between 1 and 0. This actually determines the winner of the game, as it is entirely random. If the teams have the same strength (in the case of the Washington Capitals and the New York Islanders), each team has odds of .5.  If the random number is in the 0 - .49 range, the Capitals win. Otherwise, the Islanders win. In the case of the Blues vs the Wild, however, the range of winning numbers increases by the difference in strength. For the Blues/Wild series, the blues can win in the range of 0 - .555, and the Wild have the other portion. This seems like a small and insignificant change in range, but when run, the program predicts a 4-1 series victory for the Blues almost 99% of the time.

Next comes the calc() method, which looks like this:
























The aggregating portion works through the entire array and compiles the scores and the amount of wins per team. The winning score is calculated by taking the average of all the elements in the array, and then the % won and #/10000 win is calculated by counting the number of 4's in the winning team's array and dividing by 10000.

So there it is, the whole project. It can be found in my Github repo under the name 'Predictor', and I'll keep it updated.  Here are the projected scores for each series:

WEST


Blues vs Wild
Blues win 4-1 @98.54%

Predators vs Blackhawks
Predators win 4-3 @62.19%

Ducks vs Jets
Ducks win 4-1 @99.24%

Canucks vs Flames
Canucks win 4-2 @80.77%


EAST


Canadiens vs Senators
Montreal wins 4-1 @99.69%

Lightning vs Red Wings
Lightning win 4-1 @96.82%

Rangers vs Penguins
Rangers win 4-1 @99.99%

Capitals vs Islanders
Islanders win 4-3 @58.58%

April 10, 2015

WPP #2 - Friday

Intro


So tomorrow morning is the University of Iowa Hawkeye Programming Challenge; that's where I'll be for the majority of the day. This event will be my project for the weekend, and I'll see about bringing home the problems and the code that solved them.

There's another team that I believe won last year, and they're going to be there. It'll be a challenge, and I'm pretty excited to compete.

PS - complementary breakfast.

April 6, 2015

WPP #1 - Sunday

Intro


Today was the day I had to integrate the charts.

Done(?)


I finished the game early in the morning, making sure that the 'done' pane and graph buttons worked correctly. I made sure the margin values were generated correctly in the setMargin() function, and that the size of the buttons selected correctly. Most of these changes were in script files, and didn't take too long. I also changed some design elements (buttons, borders, etc.) to make it look simple and pretty damn good.

Charts


I used the Chart.js library to make the charts. First, though, I had to have a way to get data, and so I created the count() class. This class has methods that track the number of clicks on the dots and the total number of clicks, and every three seconds (1/10th of the length of the game) puts the number of clicks over the last three seconds into arrays. Each array (correct, incorrect, and total) is returned with accessor methods. The genData() is what actually does the timed data aggregation, and it's only called once in the whole project. I still have to finagle a little bit with the counters to make sure they return the correct amount of clicks and stuff, but you get the idea.

Anyway, I wanted to use a line chart to show how many correct and incorrect clicks, and then a bar chart to show approximated clicks/minute. The charts have to be imported from the Chart.js library, and if you click the link in my last update, you can find the Github link (or you can clone it using git). In order for it to work everywhere, though, I had to store it in my Dropbox folder just like everything else. Then initiating it was somewhat of an issue, as I wanted to display the two graphs in the same pane. I tried using one variable called ctx to reference a canvas DOM object. So my first declaration was this:

var ctx = document.getElementByID('canvas').getContext('2d');

ctx was a global variable, and every time the clicks/min or hits vs misses buttons were pressed, it would grab ctx and instantiate a new graph. However, the graphs didn't replace each other, they were just layered on top of each other. So, whenever a user would hover over an empty part of the graph, it would switch to the other graph under it, and whenever they moved back, it'd switch back to the top graph. So I changed it to the current system, like so:

// function that displays the hits v misses graph
$('#hits').click(function () {
    $('#canvas').remove();
    var $('#frame') = document.getElementByID('frame'), $canvas = document.createElement('canvas');
    $canvas.id = 'canvas';
    var ctx = document.getElementByID('canvas').getContext('2d');
.
.
.

Then the same happens for the bar graph. So instead of reassigning a value to a variable, I just make it local to the function. There's definitely a better solution, but for the sake of time and less thinking, I decided to go with this.

Done.


So this time I actually was done. I finished the project in my allotted time of 2 days, and worked about a total of ~10-11 hours finishing this up. I actually had my dad (did scientific programming in the 80's) and 2 University of Iowa CS/math professors take interest in what I was doing. So I think this project was a success.

Play the game.