Import blogger data.
This commit is contained in:
14
_posts/technology/2006-08-22-programming-theory.html
Normal file
14
_posts/technology/2006-08-22-programming-theory.html
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
layout: post
|
||||
title: 'Programming: The theory'
|
||||
date: '2006-08-22T04:14:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- programming
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.878-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-3711031036226478256
|
||||
blogger_orig_url: http://www.stringofbits.net/2006/08/programming-theory.html
|
||||
---
|
||||
|
||||
One of my biggest problems with the IT community, both in amateur programmers and prospective employers, is the following question: "So, what programming languages do you know?" This implies that learning a language is an extremely difficult task, and collecting languages like trophies is somehow a worthy pursuit.<br/><br/>A programming language is a tool. A skilled craftsman isn't good at her trade because she knows how to use a given set of tools; anyone can learn that. Rather, true skill comes from knowing how to *apply* the tools. The fundamental concepts behind programming are the skills on which we should be focusing.<br/><br/>This applies to academia as well. The language you use to teach students, especially the first language they encounter, *is* important. I'm not about to advocate "teaching languages" like Pascal, though. I think it's important to choose a real-world language, with all the pitfalls and caveats of a real-world language, as a student's first language. At the same time, it should be a language with the features available to demonstrate all the fundamental concepts in programming. A language that doesn't support recursion would be a Bad Choice, for example.<br/><br/>So, when someone (a peer or a hopeful programmer-to-be) asks me "what languages do you know?", I won't respond "Well, I know C, C++, Java, perl, php, xhtml/xml/css (if you count those), lisp, prolog, LotusScript, Javascript, LSL..." etc. Instead, I'll say "I've used a number of languages, but the key thing is that I know how to learn any language." When an employer asks, I suppose I'll have to say "Well, I know @languages...". Then, though, I might add "...but I consider the fundamental concepts behind programming languages to be more important, because mastering those means I can learn to get around in any language given a week or two of study."<br/><br/>In summary: Learning a programming language is trivial, once you know the fundamental concepts of programming.
|
13
_posts/technology/2006-08-25-technophobia.html
Normal file
13
_posts/technology/2006-08-25-technophobia.html
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
layout: post
|
||||
title: Technophobia
|
||||
date: '2006-08-25T20:31:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.884-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-6152385275314555608
|
||||
blogger_orig_url: http://www.stringofbits.net/2006/08/technophobia.html
|
||||
---
|
||||
|
||||
I have recently realized why there are so many computer illiterate people running around. It's not that people are simply stupid - that's a grossly judgemental answer that many of my fellow geeks unfortunately arrive at. That's not it at all, because computer illiteracy reaches into technical fields. I know several computer science professors that simply can't use technology newer than 5 years old.<br/><br/>So, what causes this, if not simply "they're dumb"? Fear. Technology is mysterious; most people, when confronted with something unfamiliar, are uncomfortable. It feels like some delicate piece of magic; if they touch it too hard, it might shatter.<br/><br/>The consequence of this fear is that, once gripped by it, people start assuming they *can't* learn anything about computers; it's too arcane. So, when presented with technical terms or ideas, they stumble over them. If the technophobe stopped to think about the idea they are grappling with, they'd probably figure it out pretty quickly. But their mind won't do that, computers are "too complicated" for anyone like them to figure out.<br/><br/>An example: USB flash drives. Even most technophobes know what floppy disks are, but when you tell them this is similar, except it connects to that rectangular plug on the side of their computer, they give a blank stare. They can't comprehend it because it's new.<br/><br/>A better example: If presented with two products that very clearly do the same thing, but are made by different companies, the technophobe will invariably ask "what's the difference between these two?" If you showed them a Dirt Devil and a Hoover, they would have no such problem, but computers are *mysterious*, afforded a special class of untouchability.<br/><br/>So, to all you technophobes out there: Stop being afraid of the computer. I promise it won't bite. Engage your mind and really *listen* when computer jargon floats by. Make intuitive leaps; even if they're wrong, they'll eventually point you in the right direction.
|
16
_posts/technology/2006-11-09-decentralizing-second-life.html
Normal file
16
_posts/technology/2006-11-09-decentralizing-second-life.html
Normal file
File diff suppressed because one or more lines are too long
13
_posts/technology/2007-05-01-28.html
Normal file
13
_posts/technology/2007-05-01-28.html
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
layout: post
|
||||
title: 2^8
|
||||
date: '2007-05-01T19:35:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- freedom
|
||||
modified_time: '2013-10-22T11:19:50.539-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-8561575503641306262
|
||||
blogger_orig_url: http://www.stringofbits.net/2007/05/28.html
|
||||
---
|
||||
|
||||
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0<br/><br/>That is all.
|
16
_posts/technology/2007-05-13-then-they-fight-you.html
Normal file
16
_posts/technology/2007-05-13-then-they-fight-you.html
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: post
|
||||
title: Then They Fight You
|
||||
date: '2007-05-13T20:56:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- freedom
|
||||
- open source
|
||||
- linux
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.548-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-5431666752428348053
|
||||
blogger_orig_url: http://www.stringofbits.net/2007/05/then-they-fight-you.html
|
||||
---
|
||||
|
||||
<a href="http://money.cnn.com/magazines/fortune/fortune_archive/2007/05/28/100033867/index.htm?section=money_latest">Microsoft threatens to sue the entire FOSS community</a><br/><br/>Where have I seen this kind of threat before? Hmm... SCO, anyone? Is MS really desperate enough for that? SCO only sued IBM because they were losing money in copious amounts, flirting with bankruptcy. Vista seems to be the straw that's breaking Microsoft's back.
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: post
|
||||
title: Nintendo and the Homebrew Arms Race
|
||||
date: '2008-11-19T11:51:00.000-05:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- freedom
|
||||
- video games
|
||||
- Gaming
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.562-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-7895229798301291259
|
||||
blogger_orig_url: http://www.stringofbits.net/2008/11/nintendo-and-homebrew-arms-race.html
|
||||
---
|
||||
|
||||
When I purchase a piece of hardware, it is mine to do with as I wish. This is a long-held understanding. If I buy a piece of clothing, I can have it altered. If I buy a car, I can change the tires. If I buy a television, I can kill myself trying to screw with its insides.<br/><br/>It might void the warranty, it might put my life at risk or potentially damage the thing I've purchased, but it is my right as a consumer.<br/><br/>Nintendo takes a different view on the issue. Owners of the Wii have long been able to employ a simple buffer overflow exploit in <a href="http://en.wikipedia.org/wiki/Twilight_Princess">Twilight Princess</a> to run custom code. This exploit, called the <a href="http://wiibrew.org/wiki/Twilight_Hack">Twilight Hack</a>, allows a user to install, among other things, an application called the <a href="http://hbc.hackmii.com/">Homebrew Channel</a>, which looks like any other Wii channel and lets you run other custom code without using the Twilight Hack again. It's the gaming console equivalent of installing a new stereo in your car.<br/><br/>Since the hack was made public, Nintendo has been trying to thwart it. They have, to date, released three firmware updates that included code targeted to stop the Twilight Hack. The most recent update succeeded at stopping it completely - it appears to detect the hacked save files and delete them, both on boot and whenever you insert an SD card.<br/><br/>So, all of this is standard fare. Whenever a console launches, homebrewers will make it run custom code. The console manufacturer will release an update to prevent this. The homebrewers will work around it. This process will continue in an escalating cycle.<br/><br/>However, Nintendo has delivered a low blow here. Along with the System Menu 3.4 update, they changed their <a href="http://www.nintendo.com/consumer/systems/wii/en_na/privacy.jsp">terms of service</a>.<br/><div style="margin-left:40px;"><em><br/>We may without notifying you<strong>,</strong> download updates, patches, upgrades and similar software to your Wii Console and may disable unauthorized or illegal software placed on your Wii Console...</em></div><br/>Now, that's pretty cold - deleting our custom software? Come on Nintendo, all I want to do is play videos on my Wii! Also, the first time a fully automated background firmware update breaks something, the angry calls are going to pour like rain. Power outage in the middle of a night-time firmware update? Too bad! But it gets worse...<br/><div style="margin-left:40px;"><em>If we detect unauthorized software, services, or devices, your access to the Wii Network Service may be disabled and/or the Wii Console or games may be unplayable. </em></div><br/>Okay, at this point I feel it is crucial to point out a couple of things. First, these quotes come from two documents, the Wii Network Service Privacy Policy and the Wii Network Service EULA. Both of these documents are required, not to use the Wii in general, but to use the Wiiconnect24 services (the Shop channel, Nintendo channel, and Nintendo's other online content channels). So, to use their network, you agree that they may <strong>disable your system completely</strong>. This means two things:<br/><br/>1. You can perfectly legally run hacked code on a Wii that does not use Wiiconnect24.<br/><br/>2. You grant Nintendo the right to break the law (destruction of private property) if you choose to use the Wiiconnect24 service.<br/><br/>Now, according to a lawyer I know, a contract cannot override criminal law, even if signed in full knowledge as opposed to clicked-through (the enforceability of click-through EULAs is still up for debate in the US). So this clause is, by necessity, unenforceable.<br/><br/>So why is it there? Nintendo has a juggernaut legal team, famed for its ruthlessness. They can bankrupt any individual consumer with the legal proceedings necessary to challenge them, and it is unlikely that this will raise enough stink to get a class-action suit started.<br/><br/>I used to have some respect for Nintendo.
|
File diff suppressed because one or more lines are too long
14
_posts/technology/2008-12-31-com-is-new-org.html
Normal file
14
_posts/technology/2008-12-31-com-is-new-org.html
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
layout: post
|
||||
title: ".com is the new .org"
|
||||
date: '2008-12-31T04:26:00.000-05:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- news
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.616-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-7008723687065570881
|
||||
blogger_orig_url: http://www.stringofbits.net/2008/12/com-is-new-org.html
|
||||
---
|
||||
|
||||
No, not an angry rant about proper gTLD usage. Instead, this is more of a Public Service Announcement: silenceisdefeat, my favorite provider of life-long free shell accounts, has had their domain name taken hostage. silenceisdefeat.org now redirects to an ebay auction for the domain name. As a result, they can now be found at:<br/><br/><a href="http://silenceisdefeat.com">http://silenceisdefeat.com</a><br/><br/>I have updated my previous link to their site (in <a href="http://stringofbits.net/2008/12/paranoid-security-establishing-a-connection-the-hard-way/">this article</a>) to reflect the change as well.
|
14
_posts/technology/2009-01-07-an-aside-on-education.html
Normal file
14
_posts/technology/2009-01-07-an-aside-on-education.html
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
layout: post
|
||||
title: An aside on Education
|
||||
date: '2009-01-07T10:33:00.000-05:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- education
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.660-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-4480323441727822265
|
||||
blogger_orig_url: http://www.stringofbits.net/2009/01/an-aside-on-education.html
|
||||
---
|
||||
|
||||
I first encountered Clay Burell on his blog <a href="http://beyond-school.org">Beyond School</a>, where he had started a series of <a href="http://beyond-school.org/2008/08/26/gilgamesh1/">Unsucky English Lectures</a>. These posts were brilliant, engaging, and poignant, and I followed them to their tragically early conclusion. (Clay, if you're reading this, pick those back up, man!) It turns out that Beyond School was actually a blog about revolutionizing education. I just happened in while he was doing a special series. I kept following his blog, though.<br/><br/>At any rate, Mr. Burell now has a new blog at <a href="http://education.change.gov">education.change.org</a>. In particular, one recent post impressed me, and I wanted to increase its distribution, at least by the tiny amount that people actually view this blog :P<br/><br/><a href="http://education.change.org/blog/view/why_schoolwork_doesnt_have_to_suck_learning_20">Why Schoolwork Doesn't Have to Suck</a><br/><br/>There's some important ideas here. The concept that our technology could (should, must) become the medium through which we engage in learning is as groundbreaking as it is obvious. Enjoy.
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,15 @@
|
||||
---
|
||||
layout: post
|
||||
title: It is pitch black. You are likely to be flamed by a fanboy.
|
||||
date: '2009-01-17T19:53:00.000-05:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- stupid people
|
||||
- linux
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.667-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-9201740383633416989
|
||||
blogger_orig_url: http://www.stringofbits.net/2009/01/it-is-pitch-black-you-are-likely-to-be.html
|
||||
---
|
||||
|
||||
I feel the need to comment about <a href="http://www.wkowtv.com/Global/story.asp?S=9667184&nav=menu1362_8_6">this</a> (and, subsequently, <a href="http://www.wkowtv.com/Global/story.asp?S=9682258&nav=menu1362_2">this</a> and <a href="http://addins.wkowtv.com/blogs/behindthenews/archives/84">this</a>).<br/><br/>First, a summary, for those who get a case of the tl;dr's. A woman bought a laptop to use for her coursework at a local college. She accidentally bought a Dell laptop with Ubuntu on it. When she realized her ISP's setup disk wouldn't work, she tried to get Dell to swap the laptop for one with Windows. The Dell representative apparently convinced her to keep the one she had.<br/><br/>She claims that this problem, combined with a lack of Microsoft Office, forced her to withdraw from classes. The local news ran the linked article; it is worth noting that the bottom portion (the part where the news agency contacted the college and Verizon, and everything got cleaned up) did not appear in the initial article.<br/><br/><a name='more'></a><br/>Needless to say, the Linux community (and the Ubuntu community in particular) exploded. The article hit digg, slashdot, and reddit. The angry letters and phone calls started pouring in to the news station (though they got tons of traffic, naturally). More significantly, the woman in question was harassed on facebook.<br/><br/>This story shows mistakes from every party involved. The Dell representative should have helped her switch to a machine she was more comfortable with. The woman herself should have taken initiative, called Verizon and asked what she could do to get her connection working. Alternately, what's wrong with using another computer (say, at a local library) until you can get the laptop issue sorted out? Dropping all your classes for the semester is overly drastic and melodramatic.<br/><br/>The worst perpetrators of stupidity here, though, are the Linux community members who not only lambasted and ridiculed this woman publicly on forums and blogs, but also attacked her personally on her Facebook account. This is childish, pointless, and it paints the entire Linux community as anti-social assholes.<br/><br/>Unlike most groups, the Linux community IS Linux. If a Star Wars fan blogs about how everyone who doesn't know the difference between a Sith and a Dark Jedi is an idiot, the Star Wars franchise is not going to be damaged; there is a clear disparity between the creators (Lucasfilm et al) and the consumers (fans). On the other hand, if a Linux fanboy blogs that everyone should know the intricacies of iptables configuration before being allowed on the Internet, this will color peoples' perception of Linux.<br/><br/>Why does this happen? Because Linux is Free, open to the world. Anyone can add to it. The community and the product are intricately intertwined.<br/><br/>This is a false perception, though; in reality, the rabid fanboys who would harass a woman on Facebook are a completely different set of people than the assholes that argue fine technical points on <a href="http://lkml.org/">LKML</a>. (I'm using asshole here in its rare application as a compliment) However, the impression that an outsider has looking in is that Linux is some wild, anarchistic (or maybe communist) creation. This stems from the growing cultural knowledge that Linux was created by and for the people that use it. This is not quite true. Linux was created by and for developers and technology enthusiasts, true. However, not every vocal member of the community actually contributes to Linux itself; only a fairly small subset of users are actively involved in improving the software.<br/><br/>I don't mean to devalue the role of the community in development. Community contributors are important, welcome, and numerous. Bug submitters and other "active users" are vital to the strength of the open development model. However, the active users aren't even the people that we see evident in this article. What we see here are fanboys:<br/><blockquote>fanboy (n): Someone who is so obsessed with some subject or thing that they are blind to its faults and harass and deride anyone whose opinion differs.</blockquote><br/>These are precisely the people that Linux does not need. The community would be doing itself a favor by creating public distance from this subset of itself. We need more rational, clear-headed people speaking out about the benefits of Linux. Fanboys ranting and harassing people will get us nowhere.<br/><div>I am aware that I haven't offered any advice on <strong>how</strong> to make the fanboys go away, and that's because I don't have any. I don't know how to do it, or if it is even possible. This is just a statement of a problem that I see; anyone with ideas, please share them.</div>
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,12 @@
|
||||
---
|
||||
layout: post
|
||||
title: How to fix PulseAudio in Fedora in 2 easy steps!
|
||||
date: '2009-05-27T18:40:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
modified_time: '2013-10-22T11:19:50.692-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-4378190064502829048
|
||||
blogger_orig_url: http://www.stringofbits.net/2009/05/how-to-fix-pulseaudio-in-fedora-in-2.html
|
||||
---
|
||||
|
||||
1. su -c "yum -y remove alsa-plugins-pulseaudio"<br/><br/>2. su -c "reboot"
|
18
_posts/technology/2009-06-25-my-new-project-netjatafl.html
Normal file
18
_posts/technology/2009-06-25-my-new-project-netjatafl.html
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
layout: post
|
||||
title: My new project - netjatafl
|
||||
date: '2009-06-25T10:06:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- go
|
||||
- tafl
|
||||
- mancala
|
||||
- programming
|
||||
- chess
|
||||
- Gaming
|
||||
modified_time: '2013-10-22T11:19:50.698-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-4703066947394332908
|
||||
blogger_orig_url: http://www.stringofbits.net/2009/06/my-new-project-netjatafl.html
|
||||
---
|
||||
|
||||
I've been pretty busy the last month working on <a href="http://netjatafl.sourceforge.net">netjatafl</a>. Netjatafl will eventually be a networked client for playing various board and/or card games. It was originally created for hnefatafl and other tafl games. However, I have designed it to be extensible; I'm working on adding mancala games, and it looks like my design makes it pretty easy to add a new game. (I've added most of the logic for mancala to the client and server in just a couple hours of work). I intend to add shogi, xiangqi, chess, and possibly even go at some point in the future.<br/><br/>The netjatafl server (taflserv) operates on a simple, completely open protocol; it will eventually support authenticated logins and statistics tracking. Anyone could write a netjatafl client for any platform, if they wished. My clients will all be in C++, because this let's me reuse the 'libboardgame' library, which contains the game logic used by the server. I will also build in a "capabilities" system at some point, so the client and server can both advertise which games they support.<br/><br/>The whole thing is theoretically usable in its current state; the client is an ncurses-based text UI that is pretty cumbersome, but can be used. As far as I know, it only works in Linux. Anyone who wants to cross-compile it for Windows and send me a patch with everything you had to add, feel free! I will eventually add a proper GUI, probably gtk+-based.<br/><br/>Like the sound of this project? Feel free to check out the code, compile it, and let me know what you think!<br/><br/><br/>Etymology notes: netjatafl is Old Norse for "net-table"; i.e. a networked table you can gather around to play games. 'taflbordh' is ON for 'tafl board' (tafl can also refer to tafl games in general), which sounds a little redundant, but it made a nice name for a client. And 'taflserv' is just 'tafl server'... 'serv' was meant to be short for 'server', but I later noticed that it's also a French word meaning 'it serves". I find this somewhat appropriate.
|
16
_posts/technology/2009-07-02-twitter-from-command-line.html
Normal file
16
_posts/technology/2009-07-02-twitter-from-command-line.html
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: post
|
||||
title: Twitter from the command line
|
||||
date: '2009-07-02T11:38:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- programming
|
||||
- linux
|
||||
- twitter
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.705-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-6156350980105195782
|
||||
blogger_orig_url: http://www.stringofbits.net/2009/07/twitter-from-command-line.html
|
||||
---
|
||||
|
||||
I've recently started playing with twitter. A nice way to use it via the command-line (using curl) was suggested <a href="http://binnyva.blogspot.com/2007/03/using-twitter-part-1-command-line.html">here</a>. I have taken that and improved slightly on it.<br/><br/><a name='more'></a><br/><br/>Here is the result:<br/><br/><blockquote><code>#!/bin/sh<br/>echo -n "twitter> "<br/>read text<br/><br/>while [ ${#text} -gt 140 ]; do<br/><br/>echo<br/>echo "Message too long; used ${#text}/140 characters."<br/>echo<br/>echo -n "twitter> "<br/>read text<br/><br/>done<br/><br/>echo<br/>echo "Message is ${#text}/140 characters. Press enter to post, or Ctrl+C to cancel."<br/>read<br/><br/>curl --basic --user "username:password" --data-ascii "status=`echo $text|tr ' ' '+'`" "http://twitter.com/statuses/update.json" &> /dev/null<br/></code><br/></blockquote><br/><br/>To use the script, copy all of that into a file somewhere in your path, then make the file executable (e.g., <code>chmod 755 /usr/local/bin/twitter</code>). Now you can type 'twitter', type in your tweet, and you're done!<br/><br/>I even set up fluxbox so that mod4+t launches a terminal with the script running. To do that, I added this to ~/.fluxbox/keys:<br/><br/><blockquote><br/><code><br/>Mod4 t :Exec xterm -e "twitter"<br/></code><br/></blockquote><br/><br/>If you're not familiar with 'mod4', it is the Windows key on most PC keyboards.<br/><br/>I'll eventually get around to writing a slightly more full-featured twitter updater in c or c++. Until then, enjoy this script!
|
File diff suppressed because one or more lines are too long
15
_posts/technology/2009-08-22-d20tools-03-is-here.html
Normal file
15
_posts/technology/2009-08-22-d20tools-03-is-here.html
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
layout: post
|
||||
title: d20tools 0.3 is here
|
||||
date: '2009-08-22T17:27:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- dungeons amp; dragons
|
||||
- programming
|
||||
- Gaming
|
||||
modified_time: '2013-10-22T11:19:50.721-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-7260032130913791473
|
||||
blogger_orig_url: http://www.stringofbits.net/2009/08/d20tools-03-is-here.html
|
||||
---
|
||||
|
||||
I've released a new version of d20tools. In addition to using a new, simpler file saving/loading scheme and better keyboard handling, the new feature is also a lot more stable. Other highlights include a more sensible entity/group management system, and the ability for any creature to be a henchman.<br/><br/>Get it <a href="http://sourceforge.net/projects/d20tools">here</a>.<br/><br/>I'm lifting my moratorium on D&D 4e, as well. This means that d20tools will eventually support 4e creatures. However, this is a huge undertaking, and I have to decide how best to handle it. I'm leaning towards a system that will allow anyone to write system templates; then, any gaming system could be plugged in, theoretically. In practice, this is a lot of work for a single developer, so I wouldn't anticipate this happening any time soon.
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,15 @@
|
||||
---
|
||||
layout: post
|
||||
title: emacs 23, dbus, and libnotify
|
||||
date: '2009-08-31T18:47:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- emacs
|
||||
- programming
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.826-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-6878792725228849848
|
||||
blogger_orig_url: http://www.stringofbits.net/2009/08/emacs-23-dbus-and-libnotify.html
|
||||
---
|
||||
|
||||
A new major version of <a href="http://www.gnu.org/software/emacs/">emacs</a> is out, and it includes dbus support. This is great, because it means we can do things like this:<br/><br/><blockquote><pre><br/>(require 'dbus)<br/>(defun send-desktop-notification (summary body timeout)<br/> "call notification-daemon method METHOD with ARGS over dbus"<br/> (dbus-call-method<br/> :session ; use the session (not system) bus<br/> "org.freedesktop.Notifications" ; service name<br/> "/org/freedesktop/Notifications" ; path name<br/> "org.freedesktop.Notifications" "Notify" ; Method<br/> "emacs"<br/> 0<br/> ""<br/> summary<br/> body<br/> '(:array)<br/> '(:array :signature "{sv}")<br/> ':int32 timeout))<br/><br/>(defun pw/compile-notify (buffer message)<br/> (send-desktop-notification "emacs compile" message 0))<br/><br/>(setq compilation-finish-function 'pw/compile-notify)<br/></pre></blockquote><br/><br/>Add this to your .emacs file and you will receive a libnotify popup when M-x compile completes. It will even give you the exit message, so you know whether the compile was successful.<br/><br/>So now you can let that long compile run, and work on <a href="http://xkcd.com/303/">something else</a>. emacs will let you know when the compile finishes.<br/><br/>As written above, the notifications will stay on your screen until you dismiss them (by clicking on them). If you would like them to vanish after a preset time limit, change the 0 in the call to send-desktop-notification. Set it to the number of milliseconds the popup should remain on the screen.<br/><br/>[caption id="attachment_173" align="alignright" width="300" caption="Screenshot of libnotify popup showing a compiler error"]<a href="http://stringofbits.files.wordpress.com/2009/08/compile_bad1.png"><img src="http://stringofbits.files.wordpress.com/2009/08/compile_bad1.png?w=300" alt="Screenshot of libnotify popup showing a compiler error" title="compile_bad" width="300" height="99" class="size-medium wp-image-173" /></a>[/caption]<br/><br/>This is just the tip of the iceberg, of course. Any application that presents a dbus interface can be interacted with from emacs, which means that emacs can also integrate itself with the Linux desktop in <a href="http://emacs-fu.blogspot.com/2009/01/using-d-bus-example.html">other interesting ways</a>.
|
15
_posts/technology/2009-08-31-so-close-netflix.html
Normal file
15
_posts/technology/2009-08-31-so-close-netflix.html
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
layout: post
|
||||
title: so close, Netflix
|
||||
date: '2009-08-31T12:54:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- netflix
|
||||
- rant
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.841-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-5182228409816232070
|
||||
blogger_orig_url: http://www.stringofbits.net/2009/08/so-close-netflix.html
|
||||
---
|
||||
|
||||
I like Netflix. I think they're a great service, reasonably priced, and they have completely replaced cable television for me. However, I have found one problem. According to Netflix:<br/><br/><blockquote><br/>If you are renting a series or seasons, we will ship the DVDs in order. That means:<br/>...<br/>* If there is a wait for a particular DVD in a series, will we wait until we ship you that DVD until we ship the next DVD in that series.<br/></blockquote><br/><br/>Which is great. If I add, say, Excel Saga to my queue, I can be certain that I will get disc 1 first, followed by disc 2 and 3. Under no circumstances will I have to worry about getting, say, disc 4 before disc 2. Right?<br/><br/>Well, in theory. In practice, some TV series (notably, Excel Saga) have discs missing completely. These discs go into your "Saved DVDs" list instead of your queue, and they aren't considered to be discs with a "wait". As a result, they get skipped over completely, and you get the next disc in the series that isn't missing.<br/><br/>Why am I complaining here instead of directly to Netflix? Because Netflix doesn't have any reasonable way that I can find to open a bug report or provide feedback. And I wanted to vent a little.
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: post
|
||||
title: Bulding bridges in the metaverse
|
||||
date: '2010-01-08T07:24:00.000-05:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- second life
|
||||
- programming
|
||||
- metaverse
|
||||
- Technology
|
||||
modified_time: '2013-10-22T11:19:50.818-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-5217322832347511984
|
||||
blogger_orig_url: http://www.stringofbits.net/2010/01/bulding-bridges-in-metaverse.html
|
||||
---
|
||||
|
||||
If/once you "get it", <a href="http://secondlife.com">Second Life</a> is pretty cool. It can be a lot of different things, and its potential has barely even been scratched. Sure, the tools are cumbersome, but they are getting better. And some of Linden Lab's policies suck, but that will just drive people to OSGrid, eventually.<br/><br/>Anyway, there are people in Second Life that I like being able to communicate with. However, when I'm at work, it's a lot of trouble to create an SSH tunnel home, then forward a text-only client like <a href="http://omvviewer-light.byteme.org.uk/">ommviewer-light</a> just so I can log in and see who is online.<br/><br/>So, as I always do, I went way overboard and created a system that can relay chat between an IRC channel (or channels) and any location (or locations) inside Second Life (or any other grid that supports LSL). It can also check the online status of users and send them one-way IMs. I call the entire system slrelay, and you can get it <a href="http://stringofbits.net/slrelay/">here</a>.<br/><br/>It requires a few things to work: a running webserver is absolutely necessary. If you want the IRC features, then you also need an IRC network of your choice and a machine that can execute perl scripts. I have my IRC bot connected to irc.slashnet.org.<br/><br/>slrelay has a number of possible uses. You could use it to relay chat between key locations on a large landmass (say, an area that spans 3 or 4 sims). It could relay chat between Second Life and another metaverse grid like OSGrid. It can be used as a simple IRC tool to check who is online very quickly. Or it can do all of these things at once.
|
17
_posts/technology/2011-05-26-bittorrent-linux-way.html
Normal file
17
_posts/technology/2011-05-26-bittorrent-linux-way.html
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,17 @@
|
||||
---
|
||||
layout: post
|
||||
title: The Escapist - decline of a website
|
||||
date: '2011-06-18T08:00:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- Duke Nukem Forever
|
||||
- The Escapist
|
||||
- angry rant
|
||||
- ads
|
||||
- hey hey click me click me
|
||||
modified_time: '2013-10-22T11:19:51.320-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-5626626020120565644
|
||||
blogger_orig_url: http://www.stringofbits.net/2011/06/the-escapist-decline-of-website.html
|
||||
---
|
||||
|
||||
I have been a fan of <a href="http://www.escapistmagazine.com/">The Escapist</a> for a long time. I've been watching <a href="http://www.escapistmagazine.com/videos/view/zero-punctuation">Zero Punctuation</a> almost since it began. I've been following <a href="http://www.escapistmagazine.com/videos/view/unskippable">Unskippable</a>, <a href="http://www.escapistmagazine.com/articles/view/columns/experienced-points">Experienced Points</a>, and <a href="http://www.escapistmagazine.com/articles/view/comics/stolen-pixels">Stolen Pixels</a> for a long time as well. And I regularly browse around the site, watching videos and reading columns that look interesting. You could say I'm a fairly loyal customer of The Escapist.<br/><br/>But I've had it. I can't stand it any more. Look, Themis Media, I get that your product is advertising. That the Escapist exists, to you, as a medium through which you can deliver ads to people. But you've gone overboard. Your site now has all the charm of a geocities page from 1998 combined with an ad/malware site from 2005. You have made your site so horrible to look at and difficult to use that I can only conclude you are actually <strong>trying</strong> to drive people <em>away</em> from your site. Were you getting too many pageviews? Is that it? Because if that's the case, feel free to redirect every, oh, 10th user or so over to http://stringofbits.net instead. I could use the traffic.<br/><br/>If you <strong>are</strong> trying to drive people away from your site, well, you succeeded. I'm unsubscribing from my Zero Punctuation and Unskippable RSS feeds, and I'll be ignoring Shamus' blog posts about Experienced Points and Stolen Pixels. Because your site really is that bad.<br/><br/>Look, I can't even always <em>use</em> your site. Sometimes, when I try? I get this:<br/><br/><a href="http://stringofbits.files.wordpress.com/2011/06/escapist_crash1.png"><img class="alignnone size-full wp-image-429" title="escapist_crash" src="http://stringofbits.files.wordpress.com/2011/06/escapist_crash1.png" alt="" width="339" height="317" /></a><br/><br/>I tried to watch the latest Zero Punctuation recently, and that's what I got. Your ads crashed my browser. If I looked at an ad in a magazine, and it sprayed me with a chemical that temporarily blinded me, I think we could probably agree that it is a poorly designed advertisement (the cause, by the way, appears to be a full-screen flash ad that overlays the entire screen with a semi-transparent background, then plays a video in the middle of that). And even when the site doesn't crash, well, it still isn't exactly pretty:<br/><br/><a href="http://stringofbits.files.wordpress.com/2011/06/escapist_ugly3.png"><img class="alignnone size-large wp-image-432" title="escapist_ugly" src="http://stringofbits.files.wordpress.com/2011/06/escapist_ugly3.png?w=1024" alt="" width="717" height="360" /></a><br/><br/>I've already enumerated <a href="http://stringofbits.net/2011/06/15/duke-nukem-forever-should-not-exist/">my objections</a> to Duke Nukem Forever, and I have to say I'm a bit disappointed that you're still agreeing to show ads for that now that you've had time to learn about the game's <em>content</em>. Also, that image is repulsive all by itself. But mostly it's the sheer <strong>number</strong> of things vying for my attention here. It's obnoxious, and it immediately drains the excitement that was building at the thought of watching another Zero Punctuation.<br/><br/>And keep in mind, this was a fairly light instance of the page, ad-wise. Usually I get a full-screen video ad, or an ad popping up annoyingly from the bottom of the screen (usually right as I'm trying to click play, so it intercepts my mouse click).<br/><br/>This just isn't a good way to do business. I know, I know. You're giving away free content! Why am I complaining? Well, yes, you're giving away free content. So are tons of other ad-revenue-driven sites, and they manage to find a way to make my browsing experience much more pleasant. There are better ways to spend my time. And even if there weren't, you have exceeded my personal threshold for how much I'm willing to be annoyed when I'm trying to be entertained. You have literally made it <em>not worth my time</em> to visit your site.<br/><br/>Congratulations, I guess?
|
16
_posts/technology/2011-06-26-project-treewars-beginning.html
Normal file
16
_posts/technology/2011-06-26-project-treewars-beginning.html
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: post
|
||||
title: 'Project TreeWars: the road to OpenGL'
|
||||
date: '2011-07-13T08:00:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- Programming
|
||||
- OpenGL
|
||||
- C++
|
||||
- TreeWars
|
||||
modified_time: '2013-10-22T11:19:51.444-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-3584809911798792164
|
||||
blogger_orig_url: http://www.stringofbits.net/2011/07/project-treewars-road-to-opengl.html
|
||||
---
|
||||
|
||||
Over on Shamus Young's blog, he recently said this when talking about a <a href="http://www.shamusyoung.com/twentysidedtale/?p=12293">programming project of his</a>:<br/><blockquote>One of the things I like about this project is that it is uncluttered by goofy, awkwardly-designed libraries.</blockquote><br/>Shamus is working on a procedurally-generated 3D world using OpenGL. Now, I know what he <em>means</em>. He is trying to avoid relying on things like graphics and physics engines, or 3D model importers, or any of a number of other tools that often have asinine and byzantine APIs. I am, in fact, trying to do the same thing in my project (in my case, it is because I am using this project to learn graphics programming).<br/><br/>However, I have to object. libgl is a goofy, awkwardly-designed library. Of course, the fact that it that is <strong>has</strong> to be, in order to do what it does. However, code like this:<br/><br/>[sourcecode language="cpp" gutter="false"]<br/>glBegin(GL_QUADS);<br/>glColor3f(r1, g1, b1);<br/>glVertex2i(x1, y1);<br/>glColor3f(r_mid, g_mid, b_mid);<br/>glVertex2i(x2, x1);<br/>glColor3f(r2, g2, b2);<br/>glVertex2i(x2, y2);<br/>glColor3f(r_mid, g_mid, b_mid);<br/>glVertex2i(x1, y2);<br/>glEnd();<br/>[/sourcecode]<br/><br/>is pretty goofy. Anyone with experience writing GUI code using a Windowing toolkit would be appalled to learn that this is how you draw a rectangle. A more reasonable API would let you get a 'rectangle' object, then define things like its x/y position, its width and height, colour, etc. Then, you might make a call like:<br/><br/>[sourcecode language="cpp" gutter="false"]<br/>window->add(rectangle);<br/>window->update(); // to draw the window<br/>[/sourcecode]<br/><br/>But in OpenGL, we have to tell OpenGL that we want to start drawing a polygon, then tell it the colour and position of each vertex on the polygon, and then tell it when we're done, all with different function calls. And gods help you if you get them out of order:<br/><br/><a href="http://stringofbits.files.wordpress.com/2011/07/treewars_missing_triangle.png"><img class="alignnone size-full wp-image-480" title="treewars_missing_triangle" src="http://stringofbits.files.wordpress.com/2011/07/treewars_missing_triangle.png" alt="" width="450" height="349" /></a><br/><br/>What happened here? I told OpenGL to draw a rectangle, and I gave it the top-left vertex first, then the top-right, then the bottom-left, then the bottom-right. This is a pretty obvious way to think about listing the points on a rectangle, right?<br/><br/>Except that OpenGL is designed to actually create the polygon's bounding box based on the order you list the vertices, like so:<br/><br/><a href="http://stringofbits.files.wordpress.com/2011/07/treewars_missing_triangle_notes.png"><img class="alignnone size-full wp-image-481" title="treewars_missing_triangle_notes" src="http://stringofbits.files.wordpress.com/2011/07/treewars_missing_triangle_notes.png" alt="" width="450" height="349" /></a><br/><br/>So, OpenGL did exactly what I told it to do; we just weren't speaking exactly the same language. OpenGL requires that I list the vertices in clockwise (or counter-clockwise) order around the edge of the polygon.<br/><br/>OpenGL is an iceberg, though, and this is just the tip. There are Display Lists, Vertex Buffer Objects, shaders, 3D objects, normal vectors, projection matrices - it is a very complex beast, and all of that complexity is exposed directly to the user. So why does Shamus knock on all those other libraries, but give OpenGL a pass?<br/><br/>The answer is that OpenGL *has* to be this complicated. The reason? OpenGL lives on the graphics card. This is something that it is easy to miss the ramifications of, but they're huge - the OpenGL function calls are talking directly to analogous function calls <em>hard-coded</em> in a chip on a piece of hardware. When you call glVertex2i(), you put data about a vertex directly into your video card's memory. OpenGL is fast; it's what lets us have advanced graphical environments that change and that we can interact with, rendering in realtime. So, subsequently, OpenGL's end-user libraries are complicated; they have to be to let you take full advantage of what OpenGL is designed to do.<br/><br/>That doesn't make it any less goofy, though.
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,17 @@
|
||||
---
|
||||
layout: post
|
||||
title: 'Project TreeWars: How Anna got her Title Screen back'
|
||||
date: '2011-07-24T08:00:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- Programming
|
||||
- OpenGL
|
||||
- C++
|
||||
- TreeWars
|
||||
- GLSL
|
||||
modified_time: '2013-10-22T11:19:51.474-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-5288894543073667200
|
||||
blogger_orig_url: http://www.stringofbits.net/2011/07/project-treewars-how-anna-got-her-title.html
|
||||
---
|
||||
|
||||
In my <a href="http://stringofbits.net/2011/07/17/project-treewars-opengl-vs-opengl/">last post</a>, I re-implemented all of my rendering code to take advantage of <em>Shaders</em>. After doing this, nothing rendered. Despite the fact that I was following a tutorial, more or less. I have been modifying it to fit my project, which has a lot of code around the rendering code already and is in C++ instead of C, and also modifying it to do something that will actually be useful for me down the line.<br/><br/>But, at any rate, I've checked every function call I make against the ones used in the tutorial. They all match. Everything is <strong>exactly</strong> the sa...<br/><br/>Oh. Wait.<br/><br/>One of the things you create when using shaders is an index buffer (also called an element buffer); a list of what order the vertices of your polygon should be drawn in. From the tutorial:<br/><br/>[sourcecode lang="cpp" gutter="false"]<br/>static const GLushort g_element_buffer_data[] = { 0, 1, 2, 3 };<br/>[/sourcecode]<br/><br/>And the equivalent line from my code:<br/><br/>[sourcecode lang="cpp" gutter="false"]<br/>GLfloat Renderer::rect_elements[] = {0, 1, 2, 3};<br/>[/sourcecode]<br/><br/>I got so used to things being GLfloat type that I made my index buffer floats, even though that doesn't make any sense (you can't have vertex number 0.5, after all). Not only does it not make sense, OpenGL <strong>requires</strong> that the element buffer be composed of integers. Even better, if your element buffer is of the wrong type, OpenGL fails silently: no error message, no crash. The rendering simply doesn't happen.<br/><br/>So, a couple hours of debugging, down to one simple line of code. I really wish GLSL had a way to report meaningful errors back to the program using it. At any rate, after I fix the line:<br/><br/><a href="http://stringofbits.files.wordpress.com/2011/07/treewars_fixedtitle.png"><img src="http://stringofbits.files.wordpress.com/2011/07/treewars_fixedtitle.png" alt="" title="treewars_fixedtitle" width="450" height="349" class="alignnone size-full wp-image-499" /></a><br/><br/>I'm back to where I was several days ago. But this time, I'm using shaders, which are both less deprecated and more flexible; I've set up a framework that will allow me to do more interesting things later on.<br/><br/>Now, on to the next challenge: rendering text. In SDL this was fairly easy; the SDL_ttf library made it pretty simple to render text to the screen. In OpenGL, however, rendering text is a bit trickier. There are a few libraries out there that do it (FTGL seemingly the best option), but they all use the fixed-pipeline functions. I'd even be willing to settle for that, and worry about ripping the code out later and putting in something more shader-friendly, except switching back and forth between Shaders and the fixed pipeline seems to be a bit tricky.<br/><br/>So, my options are:<br/><br/><ol><br/><li>Figure out how to switch 'out' of the Shading pipeline properly and render text with FTGL, or</li><br/><li>Use freetype2 directly and implement my own font loading, render the text to a Framebuffer Object, then blit that to the backbuffer (the buffer that represents the next visual frame).</li><br/></ol><br/><br/>The first option might be easier in the short term, but the latter sounds more robust, all things considered. The problem is that stopping to get font rendering working without any deprecated functions could take quite a while (I'm not even sure on a good estimate for the time). So, I hack FTGL into working and move on.<br/><br/>Now, I'm ready to get things back to the way they looked before I decided GLSL was something that needed to happen. I just need to figure out the best way to draw a circle with GLSL...
|
14
_posts/technology/2011-09-07-more-thoughts-on-escapist.html
Normal file
14
_posts/technology/2011-09-07-more-thoughts-on-escapist.html
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
layout: post
|
||||
title: More thoughts on the Escapist
|
||||
date: '2011-09-07T14:00:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- Extra Credits
|
||||
- The Escapist
|
||||
modified_time: '2013-10-22T11:19:51.549-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-586694393592148985
|
||||
blogger_orig_url: http://www.stringofbits.net/2011/09/more-thoughts-on-escapist.html
|
||||
---
|
||||
|
||||
I've talked about the <a href="http://www.escapistmagazine.com/">Escapist</a> before. Specifically, when I mentioned I would <a href="http://stringofbits.net/2011/06/18/the-escapist-decline-of-a-website/">no longer be visiting their website</a>. My reasons then were essentially practical - they had simply made viewing content more annoying than it was worth.<br/><br/>Recent events, however, are making me re-evaluate that post. In that post, I didn't really analyze <em>why</em> the Escapist had such awful ads. But now I think it's worth doing. The most obvious explanation, which was more or less implicit in my earlier angry rant, is that the annoying, screen-filling, content-swamping ads didn't show up because of incompetent programming or oversight, but rather through a complete disregard for the consumer.<br/><br/>The Escapist (well, Themis Media) is a company. Companies exist to make money. Basic economics. Themis media makes money by selling advertisements; the more advertisements they can get to viewers, the more their advertisements will be worth to advertisers, the more advertisements they can sell, and the more money they make. Again, nothing ground-breaking here, just basic mathematics.<br/><br/>There are two basic ways to get these ads to the eyes of more viewers (and thus up their potential value, increasing profits): show more or larger ads per page, or attract more viewers (to create more page views). As a company that wants to Maximize Profits™, ideally they want to do a whole lot of both of these things.<br/><br/>The problem is that these two goals are counter to each other. The more (or more obvious) ads you display, the more people will start to say 'too many ads, see you later'. Like I did in my previous post on the subject. The trick, and the thing that most websites eventually figure out, is that there is an equilibrium - a quantity and size of advertisements that will not produce a significant hit on the number of viewers you attract.<br/><br/>Now, the way to actually attract more viewers is to have content that people want to view. And the Escapist has been damn good at this. They have a great deal of very good content, much of which is very popular. They have attracted a lot of grade A talent to work for them. And that may be the problem - they've got such good content, their equilibrium point has tipped so far that they can pull off obnoxious full-screen ads without driving away a significant number of users.<br/><br/>However, at some point, the volume of ads you display becomes anti-consumer. There's a point where you are failing your customers, where suggesting that what you are asking is a 'reasonable price to pay' for the content is farcical. Many modern magazines have fallen prey to this: I flipped through a fashion magazine recently, for instance, and counted 12 pages of ads before reaching the table of contents. That's patently absurd, and what it shows is that the company that produces the product cares more about money than they do about the consumer's experience.<br/><br/>But all of that was an overly long prelude to what I really want to talk about: Themis is now being accused of being anti-creator as well. Extra Credits, one of the Escapist's video features, has <a href="http://www.joystickdivision.com/2011/08/extra_credits_leaves_the_escap.php">left</a> <a href="http://geek.pikimal.com/2011/08/10/extra-credits-leaves-the-escapist-under-shocking-circumstances/">the Escapist</a>, with some very troubling accusations about Themis' payment practices. Basically, the Extra Credits crew says they haven't been paid for a long time, and that Themis is claiming that Extra Credits owes *them* money from a fund raiser that they ran to keep the show alive (and to finance surgery for their artist).<br/><br/>Now, in fairness, Themis has some counter-claims, which are enumerated at the second link above. However, given Themis' anti-consumer ad practices, I don't have much difficulty believing that they might be willing to cheat their creative people as well. Of course, this doesn't constitute proof of wrongdoing on their part, but it is certainly useful to observe that they already have a pattern of preferring money to delivering a good experience.<br/><br/>Of course, the upshot of all this, for us consumers, is that Extra Credits is no longer encumbered by the horrible pit of a website that is The Escapist. So I watched <a href="http://penny-arcade.com/patv/episode/episode-07-pacing">the most recent episode</a>. Based on this one episode, it seems like a pretty good show: smart and engaging, with enough humour scattered throughout to keep it from feeling dry. They point out a lot of things that may be obvious to (some) people in the industry, but that many individual gamers are unlikely to have ever had reason to consider.<br/><br/>I'll probably watch it regularly now that I don't have to risk a stress headache just to watch it.
|
File diff suppressed because one or more lines are too long
15
_posts/technology/2011-10-14-dmr.html
Normal file
15
_posts/technology/2011-10-14-dmr.html
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
layout: post
|
||||
title: dmr
|
||||
date: '2011-10-14T08:18:00.000-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- Programming
|
||||
- dmr
|
||||
- C++
|
||||
modified_time: '2013-10-22T11:19:51.746-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-502111200679400757
|
||||
blogger_orig_url: http://www.stringofbits.net/2011/10/dmr.html
|
||||
---
|
||||
|
||||
<a href="http://en.wikipedia.org/wiki/The_C_Programming_Language_%28book%29">K&R</a> is a book that has had a profound influence on my life. And I'm not just talking about the influence of it and the C language on computing in general; the direct course of my life has hinged on the language.<br/><br/>I didn't read K&R while I was in college (I did read it after, and it's a great reference. Anyone who wants to understand C better should have a copy). C was not even the first programming language I learned: that was C++. But the two are intimately related, and most Computer Science programs that teach C++ start with programs that are very C-like (and depending on how you do I/O, may be indistinguishable from C). The idioms and quirks of C are synonymous with the very idea of programming to me. And I owe many of those idioms and quirks to Dennis Ritchie.<br/><br/>C and C++ took my kindled interest in programming and stoked it into a towering inferno of inspiration. I don't think I would have been nearly as charmed if my introduction to programming had been Java, or even Python or Perl, which now make up the majority of the programming I do (and perl certainly owes much of its syntax to the C family as well). C has a certain low-level beauty to it. It's more elegant than assembly, and is minimalist and clean in a way few other languages are.<br/><br/>30 years ago, Dennis Ritchie said hello to the world. And now the world says goodbye.
|
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: post
|
||||
title: Desura - what Steam should have been
|
||||
date: '2011-11-12T09:00:00.000-05:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- linux
|
||||
- Desura
|
||||
- Gaming
|
||||
- Amnesia
|
||||
modified_time: '2013-10-22T11:19:51.766-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-6872361963031367113
|
||||
blogger_orig_url: http://www.stringofbits.net/2011/11/desura-what-steam-should-have-been.html
|
||||
---
|
||||
|
||||
I like <a href="http://steampowered.com/">Steam</a>. In a gaming world of ubiquitous DRM, Steam strikes a nice balance between functionality and nuisance. That is, Steam makes it dead simple to install and launch games, and the trade-off is that it does some fairly unobtrusive DRM. This is a good model, although I can think of several ways in which it could provide a better end-user experience.<br/><br/>At the very top of my personal list of improvements to Steam would be "native Linux support". And I know, I know, I've heard all of the conventional wisdom: There isn't a big enough market to justify porting it. Even if there was, there aren't enough Linux-native games to make the service very useful. Everybody knows Windows is the OS for gaming.<br/><br/>But sitting here staring down that conventional wisdom is <a href="http://www.desura.com/">Desura</a>. I've known that Desura existed for a while - the Frozenbyte Bundle and the Humble Bundle 3 both had options to acquire 'Desura keys', so it was obviously a Steam competitor. Until recently, though, I had just dismissed the product - obviously, I thought, any Steam competitor is going to lag far behind in available games and basic feature set, given Steam's popularity. Faulty logic, but there it is.<br/><br/>So when a friend told me that Desura works in Linux, I was pretty stunned. I had gotten used to not being the 'target audience' for game companies. And now, a few hours later, I've got Desura installed, my humble bundle keys redeemed, and I've purchased Amnesia: The Dark Descent (which was on sale at the time, and I've been meaning to buy for some time anyway).<br/><br/>Desura's (native Linux!) install is smooth and painless, and its (native Linux!) interface is pretty nice. It has some rough edges, to be fair: most of what it does is load websites that are skinned to feel like part of the interface (much like Steam does), and some of those pages are still obviously works in progress. On the other hand, everything works quickly and smoothly. The main options menu is accessed by clicking the Desura logo, which doesn't look obviously like a button. So that's a design flaw, but it didn't take too long to work out. Redeeming gift keys is more streamlined than in Steam (once you find where to do it!).<br/><br/>Now, Desura certainly isn't perfect, and it lacks very useful features that Steam has had for some time. One problem I noticed is that it lacks Steam's resume-after-closing feature; I started to install Amnesia, absent-mindedly closed the client later, and it didn't auto-resume after I opened Desura again. Desura doesn't track how much time you've sunk into a given game. It also doesn't have any way to access your save games from multiple locations (a la Steam's cloud sync), and while their developer info mentions achievements, I haven't seen any games implement Desura-specific achievements, nor would I even know where to look to find them.<br/><br/>Another feature that both Steam and Desura need are tags, or some sort of organizational system for your games. Right now all Desura has are 'all games' and 'favorite games'. Steam has a categories system, but it doesn't always save that information across accounts, and you can't tag games with multiple categories. A proper tagging-based sorting system would be great.<br/><br/>So, Desura has a spartan interface, but it's also still very young. And more importantly, it runs flawlessly in Linux, which makes it very appealing to me. If you game in Linux at all, check out Desura. It's already a great service, and it looks like it's only going to get better.
|
File diff suppressed because one or more lines are too long
20
_posts/technology/2012-04-19-pygo-go-game-client.html
Normal file
20
_posts/technology/2012-04-19-pygo-go-game-client.html
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1,19 @@
|
||||
---
|
||||
layout: post
|
||||
title: What the hell is happening to PSN?
|
||||
date: '2014-12-27T13:45:00.000-05:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- DDoS
|
||||
- security
|
||||
- PSN
|
||||
- System Administration
|
||||
- Sony
|
||||
- Musings of an SRE
|
||||
- Technology
|
||||
modified_time: '2014-12-27T13:49:42.848-05:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-3128031459361770482
|
||||
blogger_orig_url: http://www.stringofbits.net/2014/12/what-hell-is-happening-to-psn.html
|
||||
---
|
||||
|
||||
All day yesterday, I watched my husband trying to log into FF XIV on the PS4. All day, the PSN sign in servers remained down. They're still listed as offline now. Xbox Live has been back up since yesterday afternoon. So what's taking Sony so long?<br /><br />Keeping production servers online is a large part of what I do professionally, so... I know this problem domain pretty well. And I've seen a lot of... speculation that is deeply misinformed. Here are my thoughts on the problem.<br /><br />First: the cause of the outage. All evidence points to this being a DDoS (<a href="http://en.wikipedia.org/wiki/Denial-of-service_attack">Distributed Denial of Service</a>) attack. This is when a whole lot of computers from a lot of different locations send as much traffic as they can at a service, in an attempt to overwhelm it and knock it offline. The most common tool used to send all this traffic is a <a href="http://en.wikipedia.org/wiki/Botnet">botnet</a>. Building and maintaining a botnet requires a large amount of technical expertise. *Using* a botnet, on the other hand, just requires money and connections. Because the people who take the time to build a botnet often want to make money from it, so they sell time on them.<br /><br />Which brings us to the culprits of the DDoS; a group calling themselves Lizard Squad has taken credit for the attack. Whether they have any technical expertise is unknown, but they certainly seem to have access to one or more reasonably effective botnets. However, they claim to have stopped their attack yesterday, and PSN remains offline. Mitigating DDoS attacks is a tricky problem; there are things that work pretty well, but there's always an upper bound on how much traffic you can mitigate.<br /><br />So there are a few possibilities.<br /><br /><br /><ol><li><b>Lizard Squad is lying, and is still attacking PSN.</b> If they have some vested interest in making Microsoft look more competent than Sony, this is pretty plausible. Mitigating a DDoS is a real challenge, and Sony and Microsoft both clearly can't cope with these attacks. The usual solution would be to bring up more instances of the signin server; if that isn't mitigating the issue then the network infrastructure may not be able to cope either. Which doesn't say great things about Sony or Microsoft's network infrastructure. But then, this whole scenario doesn't say great things about the infrastructures of either services.</li><li><b>Another group is also attacking PSN.</b> Not much to add here; if Sony is still overwhelmed with traffic there's little they can do.</li><li><b>Sony intentionally kept PSN offline to do some sort of emergency upgrades.</b> This seems really unlikely to me; there's simply too much demand during the holidays to justify this. Sony would surely bring the servers back up and work on patches in parallel with that.</li><li><b>The attack exposed a software bug in Sony's signin servers.</b> If the signin server software is crash-looping or inexplicably serving errors now, it may be down despite engineers working on a fix as hard as they can. This would suggest that they're relying pretty heavily on some sort of stateful information that has entered a bad state, possibly a cache of some kind. (which can't be invalidated for some reason) Another possibility, which would suck for everyone involved, is that some bug caused user authentication data to be corrupted when the server was overloaded. If Sony is having to restore username/password hash data from a backup, that would explain why they are still offline. It would also explain why PSN seems to be working for some users but not others right now.</li></ol><div>Personally, I suspect #4. It fits the evidence and observed behavior of the system the best. If so, we can only hope that there's no permanent authentication data lost, because that could mean broken, unrecoverable login accounts.</div>
|
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: post
|
||||
title: Intel NUC, remote controls, and Fedora 22
|
||||
date: '2015-10-30T18:12:00.002-04:00'
|
||||
author: Anna Wiggins
|
||||
tags:
|
||||
- Media
|
||||
- System Administration
|
||||
- linux
|
||||
- Technology
|
||||
modified_time: '2015-10-30T18:14:24.849-04:00'
|
||||
blogger_id: tag:blogger.com,1999:blog-4209116010564764361.post-2467150110977202956
|
||||
blogger_orig_url: http://www.stringofbits.net/2015/10/intel-nuc-remote-controls-and-fedora-22.html
|
||||
---
|
||||
|
||||
I've had a fun time getting <a href="http://kodi.tv/" target="_blank">kodi</a> to work with <a href="http://www.amazon.com/gp/product/B003WM5J0O?psc=1&redirect=true&ref_=oh_aui_detailpage_o00_s00" target="_blank">my new remote</a> on an <a href="http://www.intel.com/content/www/us/en/nuc/nuc-kit-nuc5i3ryh.html" target="_blank">Intel NUC</a>. So, in case you're in a similar situation, here's what worked for me! These instructions are for Fedora 22 and the hardware I linked to in this paragraph, but a lot of the instructions should be applicable in slightly different situations as well.<br /><ol><li>Update your Intel NUC to the latest bios. At least on the RYH line, they fixed some problems with the IR receiver in a recent update.</li><li>In the NUC bios, make sure the IR port is enabled and set the IR controller type to "RC6". Kodi works much better out of the box with this protocol. Some of your buttons aren't going to work right, though. The hard part is fixing that.</li><li><b>Do not install lirc. lirc is an unintentional trap created by well-meaning people. It will not help you here.</b></li><li>Instead of lirc, install v4l-utils to get ir-keytable:<br /><code>dnf -y install v4l-utils</code></li><li>Now, here's why you don't want lirc: with an RC6 receiver, the kernel is going to parse your remote's input and output keyboard events. Unfortunately, many of the keysyms it sends aren't properly handled by Xorg. So, you need to remap those keysyms to working keysyms of your choice. To do that, you need exactly one bit of the process described <a href="http://forum.kodi.tv/showthread.php?tid=114124" target="_blank">here</a>. Copy the <code>/etc/rc_keymaps/rc6_mce</code> file provided by wstewart at that link, and then run the command they mention:<br /><code>ir-keytable -c -p RC-5,RC-6 -w /etc/rc_keymaps/rc6_mce</code><br />You'll need to get that command to run at startup, as well. I found that all the rest of wstewart's instructions were unnecessary with a modern kernel and kodi installation.</li><li>Now, fire up kodi, and bask in the glory of your remote working correctly!</li></ol>If you want to remap what some of the buttons do, you can get the scancodes with <code>ir-keytable -t</code>, then edit <code>/etc/rc_keymaps/rc6_mce</code>. See the <a href="http://kodi.wiki/view/Keyboard_controls" target="_blank">kodi keyboard shortcuts</a> page for details on what keypress you need to send. If you can't figure out what the constant name for a key is, (most of them are obvious) refer to the kernel source's <a href="http://lxr.free-electrons.com/source/include/uapi/linux/input.h" target="_blank">input.h</a>.
|
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user