The IEEE Computer Society Having Fun at Our Annual Engineering Expo

February 26, 2013

The IEEE Computer Society had some fun demonstrating computer-related objects to students of all ages during this year’s USF Engineering Expo. On display were Sifteo Cubes, a Lego Mindstorms working robot, a PC in an aquarium (filled with nonconductive mineral oil!), a processor under a microscope, and new this year: A Raspberry Pi.

Thank you to everyone who volunteered and to everyone who came by and visited us this year!


Free Software and The Pirate Party Meet

October 19, 2012

Two giants in the modern technology world have just collided (in a good way): Richard Stallman (“rms”, the founder and leader of the free software movement) has endorsed the Swedish Pirate Party‘s platform regarding the trademark, patent, and copyright monopolies. Read more over at Rick Falkvinge’s post. Excellent news!


Compete in the Second Annual USF Programming Challenge

October 16, 2012

The IEEE and ACM student organizations are hosting the second annual USF Programming Challenge. Register here for a day of food, fun, programming, and great prizes. Compete and show off your team’s C, C++, Python, or Java skills!


American Law is Patent Nonsense

August 30, 2012

In light of Apple v. Samsung, a new article from Financial Times invites us to rethink our entire system of intellectual monopoly.


International Day Against DRM 2012

April 16, 2012

The IEEE Computer Society is considering participating in the 2012 International Day Against DRM! If you’re interested in helping to volunteer, or if you want to offer your input, please come to our general body meeting on Friday, May 27 in MSC3712 from 1600-1700. Also, please click the image above to visit a page with more info on the event and a form where you can join a mailing list.


Garbage Collection in Python

December 24, 2011

While studying for the final exam in the Fall 2011 Compiler Design course at USF, I decided to investigate garbage collection in my favorite language, Python. Prior to the course I had heard that the CPython interpreter (what the majority purportedly use) uses reference counting for its garbage collector, and to make sure I understood exactly what that means (and its implications) I wrote a quick Python program to illustrate CPython’s inability to collect garbage cycles.

It runs and allows the user to increase the size of allocated memory by fixed amounts (originally 4MiB), then the user can “release” it and turn all memory allocated this way into garbage simultaneously.

It works by creating a doubly-linked list cycle. Even if the program allocates just a single node, it points to itself (twice!), and then extends the cycle with each allocation. You can run this while using a utility like gnome-system-monitor in GNU/Linux in order to see the process memory increasing, and after releasing it, the memory allocation will not drop; the process must be killed to reclaim the memory.

Grab the program here and play around with it yourself.


A Wild pyQuine Appears

November 24, 2011

If you ever want to flex your programming muscle, pick a language and write a quine in it. A quine is a computer program that performs a single function: It simply prints its own source code and then terminates. There are many ways to write a quine, techniques differ by language, and some ways are definitely more hackish/cheatish than others.

I sat down and wrote a quine in Python today, and it took me about 20 minutes. It really felt like an amazing experience; imagine having a program that lets you do this:

$ python quine.py > out1 && python out1 > out2 && python out2 > out3 && python out3 > out4 && ....

It simultaneously rewards and boggles the mind!

If you want to checkout my quine, look in the Fun Stuff page of this site.


On DRM and the Emergence of Open Gaming

November 14, 2011

In our modern digital world we have so much entertainment right at our fingertips: Online music sales abound, even outside of iTunes, and the masses have hopped on the bandwagon of digital video distribution with Netflix, Hulu, et al. Nevertheless we find ourselves in a constant tug-of-war, a battle even, between the rights of the user and the rights of the developers/producers (I refuse to digress at length at this point about the fact that these are two distinct, unequal classes of rights). Case in point: At one point, all iTunes audio files came encumbered with DRM (digital restrictions management), a digital layer of artificial and intentional restriction on the song files that prohibited certain uses of them, like copying the files to multiple devices, or listening to them on unapproved devices. Thanks in large part to public outcry and Apple, the four (now three) major labels dropped their DRM. Netflix, in contrast, still uses a more subtle form of DRM: It’s streaming-only. The audio and video that you view while using Netflix is stored on your computer, but the designers have programmed the technology to prevent you from storing the data after viewing it. Other services (e.g. Steam, Rhapsody, Spotify) use these kind of ephemeral files or remote activation as DRM, too. And, in passing, do note that this qualifies as DRM: It is an artificial restriction purposefully designed to limit the ways you can experience the media which you acquire. As far as DRM goes, though, I think many would agree that streaming-only is much less objectionable than, say, SecuROM or StarForce (remember those? I may be dating myself here :-P ).

Traditionally media has been copyrighted strongly. When authors, developers, musicians, or videographers produce their art, they most often sign over their copyright to their production label. Then, the production label creates distribution deals, and eventually a user ends up with the media in their possession. Despite the user’s possession of the media on his/her physical property (computer, digital audio player, DVD, etc.), and despite the user’s expectation, the user *never* has full possession of traditionally-licensed media; the user isn’t sold the song, art, software, or movie; the user is sold a license to use the media under a limited list of very strict and very strongly enforced terms. DRM steps in to enforce these terms extrajudicially. This is why we all should pay more attention to the licenses to which we agree when we encounter what has become known as “clickwrap.” You don’t have to have a law degree to understand the clause that says “You may only use this software on one computer,” or the clause that says “You may only listen to this song on three devices,” or the clause that says “This eBook may not be read aloud,” or the clause that says “We have the right to revoke your media consumption privileges and delete the files on your device remotely at any time” (all frightening and actual license clauses). And even if you disregard those clauses in the legal agreement, you’ve given explicit consent to them, and the other party in the agreement (e.g. the company, developer) and its team of lawyers consider your agreement binding, and often coerce your compliance using DRM.

Not all is bleak, though: A whole slew of licenses has sprung up, starting last century with the GNU Public License (GPL) from the Free Software Foundation, that recognizes and protect certain user freedoms. These licenses come from different individuals, foundations, companies, and organizations, and cover every kind of digital medium, including documents, audio, video, and games. Licenses like the GPL and Creative Commons (CC) have similar goals, despite that the GPL most commonly is applied to software and the CC most commonly is applied to other kinds of art. These kinds of copyleft licenses respect certain user freedoms. The GPL gives users the ability to modify the software to suit their purpose. Certain flavors of the CC allow people to remix the artwork. Both the GPL and the CC allow redistribution, and both the GPL and the CC-SA licenses have what’s called a “copyleft clause,” which is a clause in the license that permits redistribution only under the same license. This copyleft clause prevents, e.g., Mallory from freely obtaining and benefiting from software X, then making her version proprietary and denying the same freedom to Bob. If Mallory wants to redistribute software X, she may, but only if she allows Bob to redistribute it in turn. This is a beauty of modern copyleft licenses, an inherent and enforceable fairness clause, a feature some people have derogatorily called “viral.” (Microsoft CEO Steve Ballmer shockingly likened it to cancer. Yes, *cancer*.)

Over the last year, several game studios have shown that they listen to users and respect users by releasing their games via multiple novel distribution channels and under new licenses. These people are engaging in a strange and exciting new kind of social experiment, and it seems they’re doing quite well. Wolfire Games has teamed up with Childsplay, the Electronic Frontier Foundation, and numerous independent game developers to release their Humble Indie Bundles. Users pay what they want for a collection of games that are guaranteed to be cross platform (Windows, OSX, and GNU/Linux) and DRM-free. Moreover the users can divide their payment among the developers, Wolfire, and the non-profits and way they choose. When purchasing a game, the buyer is given a unique URL that he can use to download the bundle, but the URL isn’t even protected. In other words, even the receipt is DRM-free! The five Humble Bundles to date have raked in over $7M collectively.

I just stumbled upon the Indie Royale bundles a couple days ago. They have a similar deal, but they don’t promise cross-platform support for all games, though they are DRM-free and users still pay what they want. The Indie Royale system works a little differently than the Humble Bundle system, though: Users can pay what they want subject to a (low) minimum amount. If the buyer pays exactly the minimum price, the minimum price increases for the next buyer. If the buyer pays more than the minimum price, the minimum price decreases for the next buyer. In the Indie Royale system, the more you pay, the less other people *have* to pay, and your generosity goes to benefit others.

Here’s a neat fact: The income and support from the community at large for these bundles have persuaded some developers to relicense their games or release other digital content to add value to the bundle. At least one developer relicense its game under the GPL, and several others have released source code and/or soundtracks in response to the overwhelming support from gamers.

As a last example, today I learned about Mob Rules Games, an outfit that has commenced a Kickstarter campaign for their first game. Mob Rules Games has designed another unique take on funding: Voting power. The more a buyer pledges in Kickstarter, the more votes he will receive for use with Mob Rules Games. The first opportunity to use votes will be to decide on which of three potential games they will develop first, and, in my humble opinion, they all sound novel and fantastic. Regardless of the title that wins the voting, Mob Games have declared admirably that they will release it under the CC-BY-NC-SA license, which gives any buyer the freedom to redistribute the software with attribution and the copy-left clause. That means buyers will have zero restriction on how they can experience the game, it means they can install it on any number of computers, and it means they will be able to experience the software forever, with no expiration or required internet access for activation. It’s completely DRM-free.

These initiatives excite me, and I hope they excite you, too. Consider bookmarking the bundles’ pages and joining me in contributing to the Mob Rules Games Kickstarter campaign. We all know that we vote with our pocketbooks; well, I’ve voted with mine. I vote for freedom from DRM, I vote for an end to user restrictions, and–for now–I vote for The Last Second.


UDS-P

November 6, 2011

Last week was UDS-P (Ubuntu Developer Summit, P for the Precise Pangolin release) in Orlando, a semiannual Ubuntu conference for developers, leaders, enthusiasts, and other members of the community. They had lots and lots of interesting sessions. I caught one particularly interesting presentation by Keith Burgelt, the CEO of Open Invention Network (aka OIN, an industry company that exists to protect GNU/Linux against patent infringement lawsuits brought against it by companies like Microsoft, read more here http://www.openinventionnetwork.com/about.php), entitled “Patent Wars.” Bryan and I also attended a rapid-fire multi-speaker session put on by Ubuntu’s Testing team.



Linaro was holding Linaro Connect, an event that ran concurrently with UDS, and many of the conference monitors on the premises were run by Pandaboards (http://pandaboard.org/). I’m going to have to buy myself one of these things!

Wednesday night the Florida LoCo hosted a classic horror movie night. We all got together and watched Elvira present Night of the Living Dead, which itnet7, zoopster, and I picked up earlier that day. We sat around, watching the movie, munching on popcorn and candy, and talking about OpenPrinting (http://www.linuxfoundation.org/collaborate/workgroups/openprinting) with Till Kamppeter, one of the project’s developers working for The Linux Foundation.

I met with members of the Ubuntu Florida LoCo whom I had not met before (maxolasersquad, govatent, and chloric), and caught up with other familiar members. It was great to see everyone in person again. Friday night was the closing party, and we ate, danced, played foosball and air hockey, juggled, and listened to live music. We also enjoyed some freshly made ice cream, frozen with liquid nitrogen. Everything was going swimmingly until govatent and chloric decided to bring out this Finnish anise-flavored candy (http://www.suomikauppa.fi/product_info.php?products_id=67). I tried a piece, and I tolerated it for about 2/3 of the time, but the center of this candy holds a surprise for anyone who makes it that far. Purchase some and try it for yourself to see, but in the meantime, it suffices to say that a single piece of this candy scared the carbonation right out of a glass of Sprite, and we fully expect it could be used in place of a mothball, a chlorine pellet, a gasoline additive, or a dishwasher detergent pack.

Guests were encouraged to come to the party in costume. I spotted The Hulk, Spiderman, a couple Wonder Women, a Shadowman (http://24.media.tumblr.com/tumblr_leuaosP3IN1qg99qqo1_500.jpg), a beer keg, and last-but-not-least, Indika and I had the great privilege of meeting Mr. Mark Shuttleworth himself.

Thank you to mhall119 and michelleq for hosting the cookout for the Ubuntu Florida LoCo. It was great to see you again and meet members of our team and other (international!) teams.


We finished the IEEEXPC5!

October 24, 2011

Phew! I had fun, but I’m so glad it’s over. The super-difficult problems included a prime number based ball tossing game that only a deranged math teacher would make children play, an Elmer Fudd/Bugs Bunny hunting game on a tree (as in graph), a billiard ball simulation, and calculating resistance of a resistor network.

You can find an archive of the problems and our solutions, not all correct or even complete, here (~13MiB).