Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Monday, April 5, 2010

Interesting Links

Time for a new link dump. Are you enjoying these?

The Internet Archive recently announced a new project called OpenLibrary. It's essentially Wikipedia for books. That's still needed, since LibraryThing lacks a good way of summarizing things for people interested in discovering books in a non-social manner (not that there's anything wrong with using social networking to discover interesting books - if you ask me, LibraryThing is an example of social networking done right because it actually uses the social model to purposefully manage meaningful data).

For April Fool's Day, XKCD decided to change the site's format to a command line interface. In addition to commands that were functional (and a few that just appeared to be), there were also jokes and games. That interface is still available for those of you who missed the joke or want to relive it (more than I can say for YouTube's TEXTp feature by the time I blogged about it at LMOTD). Most of the source code (some last minute changes were made during the day) is available on github. Naturally, the next step would be to build a version of this that can be used with YubNub - then you will have a true command line for the web (I'm not up for coding this myself due to lack of time, but I'm definitely excited about the idea).

YubNub is worth trying out anyway, if you're not familiar with it. The description of it on it's website probably isn't appealing to most, but trust me, it's worth it (I intend to revisit the topic in a future post and describe why I think all LEGO fans should use it - type "ls lego" into it if you want a taste of that).

Monday, February 8, 2010

Google AI Challenge

I know that I shouldn't have started this with all of the other things I have on my plate, but it's fun and not too difficult to get started on. The Google AI Challenge contest going on now (February 4th 2010 - February 26, 2010) is a simple contest to create the best AI that plays Tron. It's a fun, lightweight little bit of ASCII-art action that you can watch right at the command line. No word on prizes for winners yet. Full details at the link above.

You could probably beat the relatively simple approach I've used so far (after I finished my first two real entries, I realized both had been suggested on the strategy page). It's pretty exciting watching scores jump - each entry is graded and ranked against the other entries (the server hosting the challenge is set up to automatically play the bots against each other).

Saturday, December 26, 2009

New Years' Resolutions

I've decided to make some New Years' Resolutions for 2010. There are some things I want to do fairly soon that are generic wishes or goals, and then there are things I know I can accomplish if I just sit down and really focus on them. Once they are done, they will stay done and be useful in the "lifehack" sense. Most of these are items to get back on-track after letting myself develop some bad habits during college. Only these items - those that can be quickly tackled if I focus on them, and don't require excessive planning or new resources - are being listed here as resolutions. Here's the list (which I will continue making changes to over the next week - I'm hoping to make this fairly comprehensive and then be able to use it as a checklist):

  • Get the e-mail backlog under control. I suspect that most people reading this are familiar with this phenomenon - once upon a time (probably in 2002 or 2003), I used to promptly reply to all e-mails. Now it's not unusual for things to sit for months or even years. I suspect that if there wasn't an ocean to get lost in, I'd be able to get things moving more quickly when they come in. Part of this will likely be accomplished by condensing mailing lists (I'm told that more than a few contacts of mine have quit mailing lists outright recently, but I'm hoping to avoid that jump). I have several e-mail accounts to tame, and I'm also looking to completely break ties with the NC State webmail system (and back-up the old e-mails).
  • Get my Projects blog looking respectable. While I don't intend to change older content on here (for the sake of my own sanity, I need to learn to trust my younger self to have not done anything too embarrassing - and to be honest, even the potentially scandalous things I've posted here and elsewhere are nothing I'd mind owning up to, even in cases where the tone is a bit more hysteric than I'd like), I do need to finally get the layout under control. I'd like this to look a bit like a portfolio, and to not use a generic Blogger template. I'm well aware of all the "The cobbler's children have no shoes" problems here, and I want this to be my home on the web. As I continue to loosen my chains to other "social" platforms (and hold out against joining Bebo/MySpace/Friendster/Facebook/any other trendy closed site), I feel a need for this blog to be a bit more functional.
  • Determine a real photo hosting solution. I may decide that the best approach here is the popular flickr pro approach, but I'm yet to make my final decision. I want to be able to get LEGO photos out faster, upload some photos done just for the sake of learning to take better photos, and even push out decent event coverage (concerts, LEGO conventions, etc).
  • Determine a semi-permanent music collection solution. I'm not sure what exactly I'd like in terms of a repository for music that I don't need on my laptop regularly, but I'd like to have a clue (OK, this may be a longer-term goal). At a minimum, I need some new database/spreadsheet/cloud whatever solution for keeping track of what I own and what I think of things. I also need to repair some holes in my digital collection caused by various hard drive crashes (doing back-ups on the cheap using my parent's older computers seemed like a good idea at the time...)
  • Determine a new process for adding music to my collection. When should I rip CD's? How many listens should I give something before deciding to add it to my library? How many new (current to the year) CD's should I be purchasing? What's a healthy dollar amount to limit this hobby to? As a sidenote, I'm weary to ask for advice here because I'm told few people are as anti-illegal downloading as I am (the legal sort, especially of the "free promotion" variety, is awesome if you ask me though). It's time to get some sort of process in order here, though.
  • Get off of floppy disks and Zip disks. Yes, I still have floppy disks around the house. I still have data on them I want preserved. I really need to get those moved to at least my external hard drive (again, a longer-term, safer storage solution would be wise, but I'm trying to think in terms of what I have already bought and can use instead of in terms of additional resources).
  • Get out of the MiniDisc format. It was never a great idea to get into a proprietary format designed by Sony, but hey, YOU didn't get several hundred dollars worth of professional-grade, easily mobile recording equipment for $30 when you were in high school. I have many exciting stories and concerts captured on minidiscs, and some of those concert bootlegs have been promised to various people over the years. It's time to liberate this stuff and get the taper-friendly stuff shared. I have since bought a newer recording device that makes transferring recordings to a PC (and then to the format of my choice) much easier.
  • Cover political issues better on this blog or a separate channel. I'm not sure yet if I want to do this right here, but it should be done. On the previous bullet point, I mentioned owning a recording device that can easily record things and make it easy for me to archive those recordings. However, using it for casual conversations or without the consent of everyone who appears on the recording is illegal in some states. I'd like to do a better job of covering that (and other legal and political issues related to me and what I've written about) in the future. I also see the occasional opening for further political commentary, but sometimes I suspect it's for the better that I don't get too into the pathetic day-to-day battles.
  • Begin uploading more content of my own. Even as I've shied away from using the computer as much in my non-work times (I'm on the PC all day - as much as I love coding, it's healthy to step back a bit when I can), I've noticed that I've been creating many more things worth sharing online. I'm hoping to share way more photos, LEGO ideas and creations, legal music from taper-friendly bands, and original music by me (with and without robots) in the future.
  • Finish writing those articles I keep saying I'll write. Writing about RSS, simple web design, Google reader, yubnub, and other technologies I consider daily necessities really needs to be done soon. I'd like to be able to share the resources I love so much! It would be great if I could actually direct people to my website when I want to explain how I use things.

Saturday, April 18, 2009

Projects Coming to A Close

As graduation approaches, my four project courses are coming to a close.

One of these (for the DBMS course) isn't really exciting to share - no creative skills are used, it's just a matter of struggling with mediocre documentation and figuring out which methods need to be written (and how they should be written). Sometimes I fear that "the real world" of computer coding is more like that than like most of my more enjoyable computer-based projects, but I really hope it is not.

Speaking of documentation, that's how the majority of the remaining time for my Senior Design Project will be spent. We have an event this upcoming Wednesday (April 22nd, 2009) called "Posters and Pies" - all are invited to attend, but you must RSVP (at http://www.csc.ncsu.edu/rsvp/posters-pies/) by tomorrow if you plan on coming. I will not be delivering our presentation downstairs, but I will be involved with that as the "clicker" and will be available with my team upstairs for questions. That's actually not the culmination of that project - a final presentation will be given to our sponsor at a later date, and we may have some additional work to do regarding finalizing code and documentation.

There is an additional presentation for an "Innovating in Technology" class later that day. I will begin blogging more about that project once a decision has been made on whether or not to continue the project after graduation. This presentation isn't truly open to the public, but I'm allowed to invite anyone I would like - if you would like to attend, send me an e-mail at 316danny@gmail.com

My fourth project concludes on Thursday instead of Wednesday, and also may be continued after graduation. As mentioned previously, I'm using some discoveries from my still-unblogged "Robot Rock Band" project in my computer music course. The assignment for this project requires us to compose a piece of music between 5 and 7 minutes in length, however, my desire to experiment with various structural ideas and compositional algorithms means that my piece will take almost the whole 7 minutes, and would be trivial to expand to a longer period of time (at one point, the NXC program controlling the LEGO components had a 10-minute runtime). The current premise of this piece is based on historical approximations of pi. The NXT-based section is based on mappings of historical approximations, and these determine the current structure of the piece. A "performer" (myself) will be playing an electric guitar part alongside the LEGO electronica, and this will be based on a Markov process I am still tinkering with in Java.

...additional compositional algorithms learned in that class will be used in the future for new variations on my "Robot Rock Band" project, some of which will be bland and accessible pop music that my professor would abhor.

Thursday, February 12, 2009

Marathon Weeks, Post 2: FOSS Fair

Most of these fall under "interesting notes to self", but hey, it's actually getting something written down.

Here's the run-down of Monday, February 2nd:

9:35 AM, first FOSS fair session, decided to attend a section called Predicting Vulnerabilities with Software Metrics. This was a bit dry and awkward - my Software Engineering instructor was overseeing it, and the people running it were her grad students (one of which was "Andy Programmer" of iTrust fame). If you know Dr. Williams at all, you know that she's actually pretty well known in the field for writing research papers on software methodologies, pair programming, and other things that most of us find a bit dull. Trust me, though, it's important and respected. My biggest issue with this section is that it felt too much like an abstract for an academic paper - it covered some findings, information about using metrics, but no actual metrics. I would have preferred to see some code instead of just hearing statistics about what was discovered when open-source software was analyzed (OK, the graphs were a bit intriguing - but again, not really something practical for someone like me coming in with no real knowledge of the subject).

In spite of all the other events during those few weeks, I attended all my courses regularly. So I still went to my "course" which featured my classmates giving updates on our big Senior Design Projects. I was really disappointed that this made me miss some of the more exciting FOSS Fair sessions (at least they sounded exciting to me from the descriptions on the site), and frankly, my classmates aren't that good at presenting and didn't have much to say. Sorry, but c'mon, nobody really wants to hear undergrads go on for 5+ minutes each about how they're just starting to work on something. Let me know when something interesting's already been done. Again, I'm not trying to be rude here, but note how I haven't said anything about my own project for that course yet either - I know nobody wants to hear it.

After lunch, I made it to another FOSS Fair session - this one an overall look at the benefits of open source. This was fairly interesting, with some discussion of major projects and how things fit together, but it was ultimately just a well-presented version of the sort of thing cranky Slashdotters are always saying. I was a bit surprised by a slide near the end that listed ways open source is changing the world - I hadn't really thought OLPC as an open-source project before (another interesting point, about open government policy under the Obama administration, is one I've made myself in an earlier blog post here).

The next FOSS Fair thing I was able to make it to was focused on Cloud Computing. I didn't really know much about Cloud beforehand, and this worked as a good introduction. There was some unforeseen technical issues, though, that kept the "simple" demonstration from working on campus.

The night went a bit long for me - I visited with a potential employer for an info session on a training program I ultimately did not get into, and after that I got a chance to catch up with the local amateur robotics club. This was a bit wonky for my tastes (big emphasis on discussing designs on the white board), but interesting nonetheless. I need to properly join the Yahoo! Group for that still. I briefly discussed my 'bots that I had shown up at UNC the previous weekend, and one person even asked a bit more info about LUG's (needless to say, most of the people there knew a little bit about Mindstorms already). One thing that sounded pretty interesting to me (not for the immediate future but for potential use in months to come) was that the group was talking about moving the meetings off-campus to a place in Durham that would allow people to rent metal-working machines. That has some serious potential for some larger robotics projects (not that I'm ready to give up on Mindstorms, but once you've tried building a musical project, you start to notice the limitations of LEGO parts and the presence of gear lash...)

Overall, an exciting day, and I'm hoping to make it to the next FOSS Fair (whenever that ends up being) and to catch up with the amateur robotics crowd more frequently. I'm also planning on looking into the other robotics groups on campus more - it looks like I'll have a good time to try out the UAV club next week.

Friday, February 6, 2009

Marathon Weeks, Post 1


This picture was taken by another NCLUG member, I forget who at the moment. You can see me tweaking the code for guitar-playing robot, though. You can also click on that picture to go to flickr, where there are more photos from LEGOPalooza. Mike Walsh has rounded up some photos and videos from LEGOPalooza over at the NCLUG site. Normally I'd be doing that sort of thing, but I've been very busy these past few weeks - the three days of LEGOPalooza have been surrounded by coursework, homework, a FOSS Fair, a two-day career fair, and a variety of smaller events and BrickLink orders.

I had a pretty interesting set-up at Palooza for my robot band (one of several displays I was "running" essentially by myself, and the only one I was able to actually keep an eye on) - a dual monitor set-up much like I got used to working on iTrust last semester (Oops, haven't blogged that yet either). I had originally planned on doing some things with LEGO Vision Command, as the previous post suggests, but I ultimately wound up putting the camera away (after a kid said "he's recording us" I realized that it's actually quite creepy to leave a camera out if you're not doing something with it) and showing off IDE's and code on the monitor facing outward.

This lead to an interesting situation - during LEGOPalooza, I spent much of my weekend talking about code, open-source, LEJOS, Bricx CC, NXC, various pbricks, etc, and not much time focusing on LEGO. During Monday (which I had written off as booked due to the FOSS Fair I attended), I wound up going to an amateur robotics meeting and talking LEGO. Not that I mind, but it's certainly unusual.

That's not even the worst of the whiplash of the past two weeks. On Saturday at LEGOPalooza, I had kids coming up to me that recognized my robotic band from my most recent appearance on the LAML Radio podcast and was asked some questions by numerous newspaper reporters (only article I've successfully dug up featuring me so far is in the Daily Tar Heel, UNC's student paper). People I'd never met before were acting like I was someone famous, and I guess in the online LEGO community, I sort of am (in spite of how few of my own models I've actually posted). On Thursday, I was at a career fair being asked if anything sets me apart from my classmates (the list of things I can actually put on a resume is surprisingly short). On the bright side, at least I had something to say when people asked if I had any embedded C experience (everybody forgets that NXT programming is technically a form of cross-compiling for an embedded device)...

I intend to post a bit more recapping this past week (LEGOPalooza in particular, since I know most people who read this are LEGO people and not software people or graduating Computer Science majors) soon, but that's probably about it for today.

One last thing, though: My family has moved suddenly twice now because of work shortly before a LEGO store has opened in our area (we lived in southern New Hampshire shortly before the first store in northern Massachusetts opened, and we moved out of Sammamish, WA, just as the Bellevue store opened minutes away from where I was attending college at the time). I've been joking for a while that Raleigh, NC will get a LEGO store as soon as I have to move away. Although I don't have any serious job offers yet, it's hard not to take the news that we're getting a LEGO store in mid-May as a sign that I'll be working elsewhere shortly after graduation (in early May). We'll see, I guess, and if I don't get something lined up by May, perhaps I'll just apply there - I certainly don't have any issue proving credentials as a LEGO nut. I'm not making any long-term plans, though, just in case I do end up moving out of the Triangle area.

Thursday, January 29, 2009

Vision Command XP Install

Mostly noting this for personal reference (I'm still rushing to set software up for this weekend's show):

I originally tried the approach prescribed at this site: http://www.abs-robotics.com/tips/install/winxp/download.asp to get Vision Command running. All 5 files were ran, but when it came time for the registry update, I ran into a bug because apparently I didn't have RIS 2.0 in the default install directory (RIS 2.0 is on there, of course, and thanks to Cary selling me a new USB IR tower on the cheap, I got it to work again shortly before I started again in trying to install Vision Command).

After that failed, I tried following the advice seen on this website (the second result for "vision command xp" on Google): http://www.ntcompatible.com/Vision_Command_Updater_LEGO_t23827.html - so far, so good, but it's rebooting now. We'll all see soon enough if I'm able to successfully launch an air-guitar system before Saturday morning...it's really the last big goal left.

Oh, and before anyone starts wondering: Yes, I tried doing the properly nerdy thing and interfacing an NXT with the Logitech SDK. I didn't get very far, and I figured this program could be simple enough just to try in a kid-oriented graphical language. Sure, I don't get to do anything to show off my fancy Computer Science college-learning, but at some level just the novelty of having a working LEGO guitar player controlled by air-guitar playing children is already exciting.

Thursday, November 6, 2008

Track Designer

I'm not really working on this project (I need to try out Visual C++, but as of yet, I have not started using it) - but this is awesome. After years of being unable to update one of the most popular LEGO CAD programs for collaborative layouts - as well as a few competing software packages, including one where someone tried to reverse engineer TD - the Track Designer source code has finally been found. This LUGNET thread has the details. If you're new to all this, you're better off reading RailBricks issue 2 than anything else I have to say on the topic.