October 14, 2018

rhit tag @ flickr: Professional Review Guide for the RHIA and RHIT Examinations, 2017 Edition

Pick your books posted a photo:

Professional Review Guide for the RHIA and RHIT Examinations, 2017 Edition

Professional Review Guide for the RHIA and RHIT Examinations, 2017 Edition
Patricia Schnering (Author)

Publication Date: January 18, 2017
Buy new: $107.95

(Visit the Hot New Releases in Insurance list for authoritative information on this product's current rank.)

Buy now: #4: Professional Review Guide for the RHIA and RHIT Examinations, 2017 Edition www.pickyourbook.net/?p=111462

posted at 11:25 AM.

July 30, 2018

Kent Rosenkoetter: How to inject a database connection in an ASP.NET Core application.

This is a follow-up to my last post, the one about database connections in C# and .NET Core. I figured out a way to make using a database connection in C# a tad less of an anti-pattern and a tad more like how Java does it. In particular, I found a slick and simple way to encapsulate the connection string so that components using the database connection do not need to know or care what the connection string is.

namespace Foo
    class Startup
        public IConfiguration Configuration { get; }

        public Startup(IConfiguration configuration)
            Configuration = configuration;

        public void ConfigureServices(IServiceCollection services)
            services.AddSingleton<DbConnectionStringBuilder>(new SqlConnectionStringBuilder
                    ConnectionString = Configuration.GetConnectionString("ImportantDatabase");
                    Password = Configuration.GetSection("SecurePasswords").GetValue<string>("ImportantDatabasePassword");
             services.AddTransient<IDbConnection>(provider =>
                    var builder = provider.GetRequiredService<DbConnectionStringBuilder>();
                    var providerFactory = DbProviderFactories.GetFactory("System.Data.SqlClient");
                    var conn = providerFactory.CreateConnection();
                    conn.ConnectionString = builder.ConnectionString;
                    return conn;

Then in your consuming code, all you need to do is retrieve an IDbConnection from the injection system.

namespace Foo.Bar
    class DAL
        private readonly IServiceProvider _provider;

        public DAL(IServiceProvider provider)
            _provider = provider;

        public void SomethingImportant()
            using (var dbConnection = _provider.GetRequiredService<IDbConnection>())

                using (var dbCommand = dbConnection.CreateCommand())
                    // do stuff

I apologize if I got any class names or method names wrong. I am writing this from memory, because the code I wrote is at work and I am at home.

I split out the database password because I firmly believe that database connection strings should be standard configuration, and that they should not contain credentials. Store the secret credentials separately. And obviously the provider invariant name ("System.Data.SqlClient") should be configuration instead of hard-coded. This is just example code to demonstrate the technique.

posted at 02:51 AM.

June 08, 2018

Kent Rosenkoetter: C# and Java

My new job is entirely working with C# on the Azure platform. After my brief stint at Microsoft, I deliberately avoided adding C# to my resume because I did not want to work in it again. A couple co-workers from my previous job convinced me to join them at Starbucks, and since I like them I decided to go for it and give C# another try.

The new codebase is wildly better than anything I had to deal with at Microsoft. It uses standard design patterns, is modular, has dependency injection and normal logging and unit tests. Overall it is a significantly better experience than the prior one.

However, even though I've been able to find C# analogues for most of the things I've come to rely on in the Java ecosystem, there is a constant stream of little frustrations and gotchas that make me appreciate all the things that Java provided for me.

Here is an example. Today I tried to figure out how to inject a database connection into a handler in a standard C#-idiomatic way. I was looking for something akin to JNDI in an application container, where I set up the database connection in external configuration and the code merely accepts and uses a generic connection interface.

After a few hours of searching online, I managed to cobble together enough tiny clues and analyze enough bad code samples to produce roughly this code (edited to remove company-specific details).

using System.Data;
using System.Data.Common;

namespace Org.Silnith
    public class DatabaseToucher
        private readonly DbProviderFactory _dbProviderFactory;
        private readonly string _connectionString;
        public DatabaseToucher(DbProviderFactory dbProviderFactory, string connectionString)
            _dbProviderFactory = dbProviderFactory;
            _connectionString = connectionString;

        public async Task<int> Update(string transactionId)
            using (var connection = _dbProviderFactory.CreateConnection())
                if (connection == null)
                    throw new Exception();
                connection.ConnectionString = _connectionString;

                await connection.OpenAsync();
                    using (var command = connection.CreateCommand())
                        const string transactionIdParameterName = "@transactionId";
                        const string requestSentParameterName = "@requestSent";
                        var insertStatement = $"insert into transactions (transaction_id, request_sent) values ({transactionIdParameterName}, {requestSentParameterName})";

                        var transactionIdParameter = command.CreateParameter();
                        transactionIdParameter.ParameterName = transactionIdParameterName;

                        var requestSentParameter = command.CreateParameter();
                        requestSentParameter.ParameterName = requestSentParameterName;

                        command.CommandText = insertStatement;


                        transactionIdParameter.Value = transactionId;
                        requestSentParameter.Value = false;

                        using (var transaction = connection.BeginTransaction(IsolationLevel.Serializable))
                            command.Transaction = transaction;

                            var rowsUpdated = await command.ExecuteNonQueryAsync();


                            return rowsUpdated;

        public async Task<bool> Query(string transactionId)
            using (var connection = _dbProviderFactory.CreateConnection())
                if (connection == null)
                    throw new Exception();
                connection.ConnectionString = _connectionString;

                await connection.OpenAsync();
                    using (var command = connection.CreateCommand())
                        const string transactionIdParameterName = "@transactionId";
                        const string requestSentParameterName = "@requestSent";
                        var selectStatement = $"select count(*) from transactions where transaction_id = {transactionIdParameterName}";

                        var transactionIdParameter = command.CreateParameter();
                        transactionIdParameter.ParameterName = transactionIdParameterName;

                        command.CommandText = selectStatement;


                        transactionIdParameter.Value = transactionId;

                        using (var transaction = connection.BeginTransaction(IsolationLevel.Serializable))
                            command.Transaction = transaction;

                            var count = (int) await command.ExecuteScalarAsync();


                            return count > 0;

When my co-worker asked me what about the .NET database connection API was making me grumble, I took a deep breath and produced a rant a good thirty seconds long, cut off only because I started a coughing fit and could not continue.

For reference, this is the Java code that I wrote tonight that provides the same functionality.

package org.silnith.temp;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.inject.Inject;
import javax.sql.DataSource;

public class DatabaseToucher {
    private final DataSource dataSource;
    public DatabaseToucher(final DataSource dataSource) {
        this.dataSource = dataSource;

    public int insert(final String transactionId) throws SQLException {
        try (final Connection connection = dataSource.getConnection()) {
            try (final PreparedStatement insertStatement = connection.prepareStatement("insert into transactions (transaction_id, request_sent) values (?, ?)")) {
                insertStatement.setString(1, transactionId);
                insertStatement.setBoolean(2, false);
                final int rowsUpdated = insertStatement.executeUpdate();
                return rowsUpdated;
    public boolean query(final String transactionId) throws SQLException {
        try (final Connection connection = dataSource.getConnection()) {
            try (final PreparedStatement selectStatement = connection.prepareStatement("select count(*) from transactions where transaction_id = ?")) {
                selectStatement.setString(1, transactionId);
                try (final ResultSet resultSet = selectStatement.executeQuery()) {
                    while (resultSet.next()) {
                        int count = resultSet.getInt(1);
                        return count > 0;
                    throw new IllegalStateException("Cannot reach this point.");

Note that I added extra lines to the Java version in an attempt to make it as functionally-equivalent to the C# version as possible. The original was actually shorter.

So why does the C# version bother me so much? Let me count the ways.

  1. The DbProviderFactory object only provides a mechanism for instantiating database drivers. It does not encapsulate all the information needed to create a connection to a specific database. Therefore, you also need to inject the database connection string to every location where you want to use a connection. Why does every object need to know what the database connection string is? That's breaking the abstraction in a horrible way, and allowing a significant source of errors.
  2. The DbProviderFactory.CreateConnection method can return null. So inside of a using block, you also need to check the variable to see if it is null and handle the failure.
  3. I already created a connection, now I also have to set the connection string and then open the connection, too? I think of a database connection as a functional object, not a class that provides the functionality for connecting manually. I said give me a connection, not give me the means to build a connection. In Java, when I get a connection it is an open connection to the database, ready to execute queries and updates.
  4. The idea of having named parameters always sounds nice in theory, but once you try it in practice you quickly discover that you have to repeat yourself constantly. I can either type the parameter names twice, once when specifying them and again when using them in the SQL statement, or I can use string interpolation to re-use a constant with the names in them. Reality does not come out as clean as theory predicted.
  5. I create objects to represent the parameters in the statement. It sounds reasonable, but in practice it does not really add any additional descriptive power or improve the type safety at all. And why do I need to attach the parameters back onto the command from which I created them in the first place? I said, Have this command create a parameter, it is perfectly reasonable to expect the parameter object to be associated with the command when I receive it.
  6. On a similar note, why do I have to use the connection to create a command, use the same connection to create a transaction, and then associate the two myself? A connection is inherently stateful, the whole point of having a persistent connection is so it can maintain state. If I can create a command and not associate it with the transaction, does that mean I can run multiple transactions on a single connection? That truly defies logic, you would be maintaining multiple states for a single stateful object (the connection). So if it makes no sense to have a command not associated with the open transaction, then why are they not pre-associated? It is additional work for the programmer and an opportunity for errors.
  7. Oh, yay. Asynchronous method calls. So instead of the thread blocking and the operating system doing a context switch, instead the programming language runtime can emulate a context switch. You still need to save and restore the stack, and you still incur the same cache and buffer change costs. But now there are two context switching mechanisms instead of one, and the new mechanism breaks a lot of the assumptions that the operating system was built around, as well as making useless any specialized hardware the machine offers for context switching.
  8. Oh, and since we had to manually open the connection instead of having the open implicit in acquiring it, we are also responsible for closing it as well, and we cannot make use of a using block for it since the open was a simple method call, not an object retrieval.

Now contrast with the Java version.

  1. The DataSource is an abstraction for the database itself, not a piece of code used to communicate with the database. Acquiring a connection gets a functional connection, ready to be used. Any failure throws an exception, so the returned object is guaranteed to never be null.
  2. Creation of the SQL prepared statement parameters is implicit in creating the statement abstraction object itself. Parameters are positional, so no need to keep names in multiple locations synchronized.
  3. In Java there is no such thing as disposing of an object. If an object maintains resources that must be released, it is closed, which is what the try-with-resources block does. There is only one abstraction for releasing resources, not two. (Distinct close versus dispose.)
  4. Transactions are part of the state of a connection, not a distinct entity. It is not possible to have a statement outside of a transaction, or to have multiple open transactions associated with a connection. A transaction begins when the previous one ends.

The Java version is just so much cleaner, conceptually, than the C# version that it boggles my mind anybody could see the C# code as superior in any way to the Java code. I know many people do, and many of them are very smart and experienced people. I just cannot see the world in the way that they do. I really do not mean to belittle or denigrate those people. I am simply befuddled.

posted at 08:02 AM.

December 07, 2017

rhit tag @ flickr: Pdf Online Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the

booksmospafitra posted a photo:

Pdf Online Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the

Download : smartbooks.space/?book=1610728289

Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam Read PDF Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam, read online Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam, Full PDF Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam,Download Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam by #A#, Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam for kindle by #A#, unlimited Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam, Read [FREE],Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam pdf download [free] by #A# ,Full Epub Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam by #A#,PDF and EPUB Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam, Book PDF Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam, Full Download Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam,Download Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam by #A#, Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam For Mobile by #A#, Read online Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam, Download [FREE],Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam pdf download [free] by #A# ,Best ebook Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam by #A#,read online Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam, Read Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam,Download Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam by #A#, Rhit Exam Flashcard Study System: Rhit Test Practice Questions and Review for the Registered Health Information Technician Exam For ipad by #A#

posted at 01:35 PM.

March 07, 2017

Nathan Froyd: nibbles and ironclad releases

I have released new versions of nibbles (0.13) and ironclad (0.34). They are available from their respective tags in their github repositories; I have not created tarballs for them. Ironclad, in particular, has many new features; please see the NEWS files for both packages for some of the changes.

This is also an appropriate time to announce that I will no longer be maintaining nibbles, ironclad, nor any of my other Common Lisp packages. This has been the de facto state of affairs for several years now; we might as well make it official.

posted at 12:12 PM.

January 19, 2017

Garrett Mace: Audio Sensor Development Part 4: Taming the Transient Tiger

It’s been a long time since Part 3 of this design series, but most of that is because we solved the main problems with the design and moved into production. In this article, I’ll go over the changes and release the OSHW design files for the newest version of the Shades Audio Sensor.

The first major problem with the sensor was, at no surprise to any analog designer, power supply noise. The RGB Shades posed a perfect recipe for analog difficulty:

  • A low voltage power supply delivered through several feet of thin cable
  • 68 RGB (or 204 individual) LEDs on the same supply, controlled via PWM
  • An electret microphone with millivolt-level output
  • A single-supply op-amp with about 30x gain
  • A mixed analog/digital chip with another 12x gain
  • Positive feedback (explained more below)

The positive feedback issue was pretty difficult. Any supply noise from the LEDs would leak into the microphone supply circuit, which would then be amplified greatly along with the actual audio signal. This audio signal was processed and used to drive the LEDs. Since most audio-reactive patterns show more/brighter LEDs when there is higher audio input signal, this could cause a feedback loop that drove the input to the top of the range and kept it there.

 Read more»

posted at 01:57 AM.

October 23, 2016

Garrett Mace: Using the Shades Audio Sensor without RGB Shades

While the Shades Audio Sensor was designed to work with the RGB Shades, it's really just a breakout board for the MSGEQ7 spectrum analyzer chip. It also has a microphone, pre-amplifier, and gain switch to select high and low sensitivity modes. We've gone through a number of revisions of the hardware, mostly fine-tuning the power supply filtering to make the Shades Audio Sensor reject most of the power supply noise caused by LED applications.

Here's a video showing how to connect the Shades Audio Sensor to an Arduino UNO. We're using a ShiftBrite Shield, but any proto shield or a simple breadboarded circuit would work. As a demo of the finished project, we've connected it to an old ShiftBrite project (Rusty VU) from 2008.

Example code: Rusty VU MSGEQ7

posted at 02:11 AM.

April 26, 2016

Edward O'Connor: Updating Our Prefixing Policy

When implementing new features for the Web, it’s important for us to be able to get them into the hands of developers early, so they can give new things a try. (Of course, this also helps us identify and fix bugs!) In the past, browsers did this by using vendor-prefixed names for features. This was intended to protect the Web from the churn of spec and implementation changes. Browsers would eventually implement the standard version with no prefix and drop support for the prefixed version.

Over time this strategy has turned out not to work so well. Many websites came to depend on prefixed properties. They often used every prefixed variant of a feature, which makes CSS less maintainable and JavaScript programs trickier to write. Sites frequently used just the prefixed version of a feature, which made it hard for browsers to drop support for the prefixed variant when adding support for the unprefixed, standard version. Ultimately, browsers felt pressured by compatibility concerns to implement each other’s prefixes.

The current consensus among browser implementors is that, on the whole, prefixed properties have hurt more than they’ve helped. So, WebKit’s new policy is to implement experimental features unprefixed, behind a runtime flag. Runtime flags allow us to continue to get experimental features into developers’ hands while avoiding the various problems vendor prefixes had. Runtime flags also make it easier for us to have different default settings between stable builds and preview builds such as Safari Technology Preview.

We’ll be applying our updated policy to new feature work going forward. Whether or not a runtime flag should be on or off on WebKit trunk (and thus in nightly builds) depends on the maturity of the feature, both in terms of its spec stability and implementation maturity.

What does this mean for Web developers?

Initially, developers shouldn’t notice anything different. In the longer term we hope this change will make it easier for you to try out upcoming features. As always, we encourage you to give in-progress features a try. Feedback and bug reports on experimental features are very welcome.

What about currently prefixed features?

We’ll be evaluating existing features on a case-by-case basis. We expect to significantly reduce the number of prefixed properties supported over time but Web compatibility will require us to keep around prefixed versions of some features.

We invite comments and feedback on the new policy from Web developers, educators, and our colleagues working on other browser engines. Feel free to reach out to me on Twitter (@hober), Jon Davis (@jonathandavis), @webkit, or email me directly at hober@apple.com.

posted at 01:54 PM.

Nathan Froyd: the power of reality

The sight and smell of so much manure reminded me of an allegorical article I was made to read in high school during the Cultural Revolution. A group of urban youths sent down to the rural areas to receive &lquotreeducation&rquot stumble upon a pile of fresh cow dung on a similar muddy path. As they search for a shovel to scoop it up, a peasant girl appears, cups the dung in both hands, and carries it to the communal manure pond. The young peasant girl sets a powerful example for the young city people who are unable to see past their petty bourgeois habits. Our teacher left us with a series of questions: Which was worse--the horse dung or petty bourgeois thinking? Who had the purer mind--the peasant girl or the urban youths? Some forty years later, school teachers no longer imbue cow shit with Communist ideology. Chinese people know shit stinks and that anyone in his right mind would use a shovel to collect it, whether proletariat or bourgeoisie.

God is Red by Liao Yiwu

posted at 01:22 AM.

November 09, 2015

Dave Heigl: Kid thing

Today I brought home a used kid thing, put it together, cut it up some, then reinforced it elsewhere. Hopefully it will be a fun play spot through the cold months.


posted at 06:39 AM.

October 12, 2015

Dave Heigl: Deck, part 3

The deck is done except for sealing it. Need to figured out when that should be done.


posted at 12:52 PM.

February 01, 2015

John Pederson: Destiny and Its Discontents

Destiny's big problem is that it's design doc probably reads like "what if we bolted Halo's FPS to a vanilla WoW-like theme part MMO and made lots of money?" This would be a minor variation on the "What if we made a WoW?" thing that was circulating through the games industry a while back. I had thought the last gasp of this idea was ESO, but further reflection suggests it's actually Destiny.

I think Bungie underestimated the amount of content this really required, probably suffered some internal and external political (corporate politics, not federal politics) pressures that made a dysfunctional hash of the story content, and attempted to streamline a progression model that is practically death to a meaningful endgame experience (in this, I think they were successful, but it exaggerates the problems that already went with this design). I'm not sure to what degree the loot and progression system are aimed at extending the paltry content offering vs. being a result of Bungie misunderstanding the sort of game they'd built. It doesn't really matter.

There's some rumors spinning around their forum at the moment that the next expansion will break progression, again, in a way that will favor the raiders over regular PvE shlubs. That's probably good news for me: it'll be a good excuse to give up on this train wreck, if I haven't, already.

posted at 12:00 AM.

John Pederson: Happy Groundhog Day

The latter half of last year was long and often both bleak and unpleasant.

So, we'll say no more about it.

posted at 12:00 AM.

March 13, 2013

Edward O'Connor: Herodotus on standards work

It is also their general practice to deliberate upon affairs of weight when they are drunk; and then on the morrow, when they are sober, the decision to which they came the night before is put before them by the master of the house in which it was made; and if it is then approved of, they act on it; if not, they set it aside. Sometimes, however, they are sober at their first deliberation, but in this case they always reconsider the matter under the influence of wine.

Book 1 of the History of Herodotus

posted at 10:46 PM.

December 26, 2012

Robin: My Favorite Ways to Clean Up a Windows Computer

My computers all have huge hard drives and large amounts of RAM, but that doesn't mean they can hold everything and do everything and still run smoothly.  Computers, Windows computers at least, run better and are much happier the less stuff they have on them.  Here are my favorite ways to clean up my computers and improve performance and security:

1) Delete old restore points.  This isn't obviously presented as an option and isn't possible unless you've got administrator privileges. But it can reclaim a lot of hard drive space.  Restore points build up each time Windows Update installs or updates anything on your computer.  I haven't found an option that auto-cleans them up, so here is the method for manual deletion.  These instructions are for Windows 7, but there is something very similar in Windows Vista and even Windows XP Professional.

A) Open a Windows Explorer window (windows key + E) and select your computer in the left pane, so that the hard drives are visible in the right pane.  For fun, make note of the free space on your hard drive.

B) Select the main hard drive, right mouse button, and select properties.  In the window that pops up, find the button that says Disk Cleanup and click that.

C) Even if you are logged in as an Administrator, you need to do this step.  On the new window that pops up, find the button that says "Clean up system files" and click that.  If you aren't logged in as an administrator, you have to give administrator permissions to do this.

D) Windows recalculates things, and pops up that same window as before, but this time there is another tab to choose from.  Go to the More Options tab.  Find the "System Restore and Shadow Copies" section, and click the button that says "Clean up..."

E) Yes, you are sure.  Click Delete.  (That doesn't actually do the deletion, it just sets the option that you WANT to do the deletion.)  Back at the window, go back to the main Disk Cleanup tab.  Review the options in the list and make sure you agree with the other checked items.  Then click OK.  Yes you are sure.  Click Delete Files.  Now you can close out of the properties dialog box and Refresh the view in Windows Explorer to see how much space you have regained.

2) Don't put an office suite on your computer.  This makes the most sense for laptops with smaller SSD hard drives and computers that are mainly used for entertainment instead of work.  Instead, use a free web-based office suite.  The Google Docs suite has been an option for a while, but now even nicely functional versions of Microsoft Office products are available.  I wouldn't recommend this for a business computer, or if you always need the ability to open a spreadsheet even if the internet is down.  But it saves a lot of space and hassle with updates if none of this lives on your computer.

* Microsoft Office with Sky Drive.  This was a pleasant surprise to find online.  You sign up for an account and get 7 GB of free cloud storage to use with online versions of Word, Excel, PowerPoint, or OneNote. https://skydrive.live.com/

3) Delete programs and plugins without mercy.  Update everything else.  Go into Add/Remove programs, and start going down the list.  If you don't use a program, uninstall it.  If you do use a program, open it and check for updates - usually this is in the Help/About menu or screen.  Uninstall all the versions of Java you see in the list, and reinstall just the freshest version from their website.  Uninstall all the browser toolbars, all the partially functional software that came with the DVD drive, and all of the virus scanning and security software that isn't Microsoft Security Essentials.  Do get MSE if you don't have it.  It is free, unobtrusive, and has worked well for everyone I know who uses it.

4) The outside of the computer can be cleaned, too.  A slightly damp microfiber towel works very well to scrub grime off of mice, controllers, and laptop surfaces.  Dry microfiber cloths will remove dust.  Start with clean cloths and don't press down to avoid scratching displays.  I have used the CyberClean product, and find it helps most on standard keyboards because it gets between the keys. http://www.thinkgeek.com/product/b88d/ 
Just noticing your computer is sticky or discolored and doing something about it can make a huge difference in how new it seems.

Finally, resolve to keep your software up to date and set up an online backup service.  I paid for CrashPlan+ service, which I consider a bargain - only $139 for four years of unlimited backup from one computer.  http://www.crashplan.com/consumer/crashplan-plus.html  That is cheaper than one external hard drive, which in my experience will either fail or run out of space in less than four years.  Sorry if most of this post is obvious or things you already knew, I hope it helps a few people with maintaining their computers.

posted at 07:05 PM.

Robin: Sinusoidal Scarf

This is an easy pattern for a knitted scarf.  I made it up to practice knit and purl stitches, to build up speed and work on keeping an even gauge as I go.  It is supposed to be wavy when finished, resembling the shape of a sinusoid curve.  This is done simply by alternating garter stitch sections, which lay flat, with stockinette stitch sections, which tend to curl towards the knit side.  I alternate the side the stockinette faces to form the max and min points.  So, this is a very nerdy project.

(Any yarn and needle size can be used, gauge is not important, adjust stitch count for the width of scarf you want.)

Yarn: St. Denis Nordique, 100% wool, 50g per 150 yards, 2 to 3 balls, blue eggshell

Gauge: 19 stitches for 4 inches

Needle: US 8 or 5.00mm

Cast on 30 stitches.

Rows 1-4: knit all stitches.
Row 5: purl all stitches.
Row 6: knit all stitches.
Row 7: purl all stitches.
Rows 8-13: knit all stitches.
Repeat rows 5 through 13 until scarf is desired length.  Bind off.




posted at 06:05 PM.

September 19, 2011

Sarah Nelson: Delux!

posted at 04:13 AM.

Sarah Nelson: the master gardener

posted at 02:27 AM.

November 02, 2010

L. Burke: No subject.

Every once in a while I think, "Hey, I should start blogging again."

And then I think, "Nah."

posted at 01:07 AM.

September 13, 2010

Matt Burke: Parental enlightenment

"... if your children ask for a loaf of bread, do you give them a stone instead?" (Matthew 7:9, NLT)

Since I became a parent, I've had this verse floating in my head as something like "If your child asked for food, would you refuse him?" I took that a bit as a challenge, and tried to be accommodating. When my son asks for food, I try to get it for him.

However, this has its limits. For a while, at bedtime, he would ask for food. I could ask if he was hungry and wanted food, then ten minutes later say it was time for bed, and he'd ask for food. As this game became more obvious, more limits were defined, usually in the form of a timer.

So, having been a parent for almost four years, I would answer Jesus's rhetorical question now with, "Of course not. I might not always give him the food he's asking for, but it would be very cruel to give him a stone. Sometimes he gets bread, and sometimes he gets nothing."

posted at 06:37 PM.

July 30, 2010

Ryan Johnson: Convert 720p/ac3 mkv to 720p/aac iPad-compatible mp4/m4v on Mac OS X Snow Leopard

# Video is not transcoded, just demuxed/muxed
# Audio is downmixed to stereo with DRC 
# You need these tools:
# * mkvextract (to demux the Matroska file)
#   * http://www.bunkus.org/videotools/mkvtoolnix/
#   * Just install through MacPorts, it doesn't pull in anything annoying
# * a52dec (to decompress and downmix the ac3)
#   * http://liba52.sourceforge.net/
#   * Compile from source
# * faac (to recompress the audio to mp4a/aac)
#   * http://www.audiocoding.com/
#   * Compile from source
# * MP4Box (to remux into MPEG-4 container) 
#   * http://kurtnoise.free.fr/mp4tools/
#   * Pre-compiled standalone OS X executable

mkvextract tracks ${BASE}.mkv 1:${BASE}.ac3 2:${BASE}.264
a52dec -o wav ${BASE}.ac3 > ${BASE}.wav
faac -b 96 --mpeg-vers 4 -o ${BASE}.aac ${BASE}.wav
MP4Box -add ${BASE}.264:fps=23.976 -add ${BASE}.aac ${BASE}.m4v
rm ${BASE}.{264,ac3,wav,aac}
Update: Here's a gist of an mkv2m4v script that automates the process: http://gist.github.com/502844

posted at 03:47 AM.

June 11, 2010

Dave Imler: Nerding Right Along

Software Nerd
So, in the past two weeks I’ve kicked out a prototype web site for a theatre I work with: The Improv Shop , which is a great place for those who are interested in long form story based improvisation. The theatre owner wanted something minimal, which was great for me, since I don’t really relish doing art much.

So, now, of course, I’m taking the static file template and redoing it in as a full fledged CMS in django, as my, “Dave teaches himself Django” project.

Improv Nerd

Last weekend was spent making a film for the STL 48 hour Film Festival.   It showed last night, and will show again at the Tuesday ‘best of’ showcase. Which is so wonderful.

I was lucky enough to work with Clinic Improv, and act, film, light in that one.  Rhiannon busted out her violin to provide depressing Eastern European riffs for our ‘foreign film’. I’ll post that one as soon as the festival’s publishing embargo is lifted.

posted at 06:38 PM.

May 14, 2010

Dave Imler: A Relaxed Moment

I’m working in the home office, snacking on coffee and stuff from the local coffee shop, listening to Cake and Mc Frontalot. Rhiannon is taking a half day. We had kolaches together for lunch. Now she’s napping on the couch with a DVD of Daria playing in the background. The screen door is open, and the house smells like gentle rain.

I didn’t have to comb my hair today.

posted at 08:50 PM.

March 05, 2010

Matt Burke: "Biotechnology" == evil

Now that he's not at Microsoft, I generally find myself more tolerant of Bill Gates. I think it's awesome that he's throwing himself (and his fortune) into solving some big problems. I might not totally agree with it all, but it's certainly more noble than his previous occupation.

That said, I really really wish I could convince him that biotechnology (specifically, genetically engineered food) is not the answer to modern or future food supply issues. It's not his main deal, but I was reminded of his views by his article about a new farming book.

My thoughts on this subject have gone from almost complete ignorance a couple years ago, to vague malaise a couple months ago, to downright disgust with biotechnology in farming (read: GE crops). Granted, much of my education has been from biased sources, but I think I still have some fairly reasonable reasoning. And I'm not ragging on other kinds of biotech -- there is clearly a lot of good that it can do. But I am very opposed to GE food, for two basic reasons. The first is the way it is treated from an intellectual property perspective. The second is its lack of benefit when compared to its known and unknown risks.

The problem with GE intellectual property is this: when you put an unnatural gene into an organism, you can patent it. Not just the process, but the actual seed, the organism. This means that every plant with that gene belongs to the patent-holder. Farmers are criminals if they save seed. Compare this to conventional breeding: when I make a better variety of some plant, you can keep the seed. This change in options for the farmer results in a change in the formula for pricing the seed. If the farmer has the option of saving seed, the breeder has to keep the price low enough that it makes more sense to buy seed than to save it. If the farmer doesn't have the option to save seed, the breeder just has to keep the price low enough that the farmer still farms. This exact thing has happened: seed corn is somewhere around 400% of its price 20 years ago. Compare that to the CPI, currently about 200% of its value 25 years ago. So, if I make a GE seed, I can gouge you. And if I make the best conventionally-bred variety and then stick in a gene that you don't really care about, then I can gouge you some more.

The other problem with GE crops is the lack of benefits when compared to problems. The promise is this: higher yields, drought-resistance, pest-resistance, herbicide-tolerance. Compared to conventional breeding, GE fails to produce higher yields. GE has not produced a drought-resistant crop. GE achieved pest-resistance by making plants produce a toxin. Granted it's a "safe for humans" toxin. At least, it is when used in moderation and given a certain amount of time to wash off. However, the toxin is produced by plants at a rate 2-40 times higher than the toxin would have been applied by farmers, according to one estimate I heard. And every cell of the plant is producing the toxin: there is no "wash it off". Herbicide tolerance encourages the use of more herbicides. And that's the mostly-known effects of planting GE crops. GE seed is notoriously closed to scientific scrutiny.

So, that's my rant. I could go on and on, but that's enough for now.

posted at 03:40 PM.

December 11, 2009

Scott Tomlinson: Time,

I've started writing 2010 on things. In my mind it's still June. I think I just lost 6 months. How odd.

posted at 07:08 PM.

October 18, 2009

Herb Mann: The Puffin Perch

Renaming A Dead Horse

I decided that the previous name of this blog was becoming unseemly, so it is now “The Puffin Perch”.  Maybe I’ll finish some of those drafted posts now that I won’t be embarrassed to have people find them.  But no promises!

posted at 05:21 AM.

October 13, 2009

Dan Moore: Weighing myself in THE FUTURE

Why am I posting about a bathroom scale? Because this thing is probably the slickest, most polished gadget I've ever used.

Yes, I bought the Withings Wi-Fi Scale. If you're connected to me via any social networks or meet me in person, you've probably heard me drone on and on about my recent weight loss. But keeping track of that with pen and paper, or even an iPhone app as I had been for a while is so early-to-mid-2009. Now, I have a bathroom scale that connects to my wireless network at home and updates a private Web site and iPhone application. It measures not only weight, but also fat percentage by measuring impedance in one's feet (though I wonder how accurate that is).

What makes it so slick? Withings seems to have gotten everything right from the start. I've been using their iPhone app to manually track weight for a while, and after setting up the scale, bam - the scale displayed my name (taken from the website/iPhone app) on its screen, uploaded the data, and seconds later I had a push notification (badge) to my iPhone indicating there were new measurements to view. The new measurements uploaded from the scale appear just like the ones I was putting in manually, only now with additional information.

Of course, it should be easy to be easy when you're talking about a bathroom scale, but the setup is what could have been really complicated. While the scale does have a screen, it doesn't make sense to integrate a whole input device into the scale so you can configure the wireless networking, which they could have done but would have been really bad. Even worse would have been to do something where pressing on the scale would scroll through letters or something obtuse like that.

What Withings did, which is brilliant, is to let you configure it with an iPhone. To do that, all you do is load up the iPhone app in configuration mode and turn the scale over. There's a little iPhone shaped indentation on the bottom, with a single button below it. When you press the button on the bottom of the scale, it emits a tone and the iPhone and scale communicate audibly like a modem. Then you just configure the scale using a full interface on the iPhone. There's also a USB cable included that connects to an equally slick Mac or Windows application to configure it. Both processes work as easily as I could possibly imagine. I think that in addition to my name that it also pulls some other info from the website, but I need to play with it a bit more to make sure.

When I said "polished" up above, I meant cosmetically as well as functionally. It is an awfully good looking scale. The display is bright and easy to read. By looking at the photos on their website you can tell they spent some time on design, and it looks even better in person.

The iPhone app and Web interface to view the data is still a little clunky to me, but I'm pretty picky about software and besides, that can always be upgraded later. They got the hardware and integration parts down flawlessly and that's what counts. I'm hoping they come up with a real API to access the data, but for now, you can get a CSV export of all the data recorded through the website.

So, bravo Withings. My only complaint about the hardware is that it doesn't work well on the stupid carpet in my bathroom, even when using the special carpet feet included.

Disclaimer: I've only used the thing for a day, so if you want to buy one you might want to wait and make sure I don't rant about it breaking in a week or something.

posted at 05:42 PM.

October 04, 2009

Ryan Johnson: repos.rb

The RubyCocoa project makes Ruby an incredibly powerful scripting language in Mac OS X.

As an example, here's a script that I used to rearrange windows when switching between various monitors. Based on the width of the main screen (something which I couldn't find a robust way to query outside of the NSScreen Cocoa API), it applies my preferred size and positioning to specific windows I care about. If you run it with '-q', it instead dumps a structure with those windows' current sizes and positions, for feeding back into the script as configuration.


#!/usr/bin/env ruby -w

require 'optparse'
require 'osx/cocoa' # http://rubycocoa.sourceforge.net
require 'pp'

options = { :query => false }
OptionParser.new do |opts|
  opts.banner = 'Usage: repos.rb [options]'
  opts.on( '-q', '--query', 'Query rather than set positioning' ) do |q|
    options[:query] = q

def first_window_of( s ) %Q{the first window of process "#{s}"} end
WindowsOfInterest = {
  :adium_chat     => first_window_of('Adium')   + ' whose name is not "Contacts"',
  :adium_contacts => first_window_of('Adium')   + ' whose name is "Contacts"',
  :firefox        => first_window_of('Firefox') + ' whose name is not "Downloads"',
  :ical           => first_window_of('iCal'),
  :iterm          => first_window_of('iTerm'),
  :itunes         => first_window_of('iTunes'),
  :mail           => first_window_of('Mail'),
  :terminal       => first_window_of('Terminal'),
  :tweetie        => first_window_of('Tweetie') + ' whose name is "Tweetie"',
PropertiesOfInterest = [ :position, :size ]
ConfigurationForWidth = {
  2560 => {
    :adium_chat     => { :position => [2058, 1241], :size => [501, 357]   },
    :adium_contacts => { :position => [2419, 22],   :size => [141, 357]   },
    :firefox        => { :position => [632, 223],   :size => [1459, 1096] },
    :ical           => { :position => [3199, 800],  :size => [640, 715]   },
    :iterm          => { :position => [0, 740],     :size => [786, 860]   },
    :itunes         => { :position => [1080, 22],   :size => [1336, 946]  },
    :mail           => { :position => [0, 22],      :size => [1079, 717]  },
    :terminal       => { :position => [2560, 800],  :size => [641, 795]   },
    :tweetie        => { :position => [2058, 549],  :size => [500, 690]   },
  1920 => {
    :adium_chat     => { :position => [1419, 844],  :size => [501, 357]   },
    :adium_contacts => { :position => [1785, 22],   :size => [135, 319]   },
    :firefox        => { :position => [397, 72],    :size => [1208, 1034] },
    :ical           => { :position => [949, 1203],  :size => [640, 715]   },
    :iterm          => { :position => [0, 355],     :size => [810, 844]   },
    :itunes         => { :position => [494, 22],    :size => [1280, 715]  },
    :mail           => { :position => [0, 22],      :size => [1079, 717]  },
    :terminal       => { :position => [312, 1202],  :size => [641, 723]   },
    :tweetie        => { :position => [1418, 293],  :size => [501, 550]   },

def do_apple_script(s)
  result = OSX::NSAppleScript.alloc.initWithSource(s).executeAndReturnError(nil)

  # Return an array of the values (AppleScript uses 1-based indexing)
  (1..result.numberOfItems).map do |i|
    result.descriptorAtIndex( i ).int32Value

main_display_width = Integer( OSX::NSScreen.mainScreen.frame.width )
window_properties = {}

if options[:query]

  WindowsOfInterest.each do |key,spec|
    window_properties[key] = {}
    PropertiesOfInterest.each do |prop|
      window_properties[key][prop] = do_apple_script(
        %Q{tell application "System Events" to get the #{prop} of #{spec}}

  puts "#{main_display_width} =>"
  pp window_properties


  config = ConfigurationForWidth[main_display_width] or
    raise "No configuration for main display width #{main_display_width}"

  config.each do |window,props|
    props.each do |prop,rubyval|
      value = '{' + rubyval.join(',') + '}'
        %Q{tell application "System Events" to set the #{prop} of #{WindowsOfInterest[window]} to #{value}}

  system %Q{/Users/ryan/bin/emacsclient -e '(rdj-smartsize-frame-for #{main_display_width}))' > /dev/null}


posted at 08:55 PM.

September 29, 2009

Dan Moore: Quoting Myself

Dave Imler's IM status earlier: "Are you there, God? It's me, Dave. I've found several usability bugs in creation. Enclosed are the instructions for reproduction. Do you have any ideas about a bugfix timetable?"

Me: Can't you just fork the project?
Me: Or hasn't He gotten around to putting it on github yet?
Him: Man, I don't like reading that code. I can't even get through his 'documentation'. Leviticus reads like a freaking switch statement.
Me: BEGAT considered harmful
Him: winner is you!

posted at 07:24 PM.

August 21, 2009

Scott Tomlinson: 6 month update

Smiley here! Forget the dreaded post-less month, I've been out of it for 6. And I really don't know where to start, but I haven't updated Live Journal in the last six months, or the equivalent of an Appalachian Trail Thru-Hike. And when I put it in those terms, it's hard to think about.

The biggest news that most people know, is that I'm engaged to Audrey (Homeward Bound)! Yay!

After that, I'm hanging in there. Still employed, and in the Arlington Heights IL area for awhile longer. (Lease is up in mid-November so will be switching apartments then for sure.)

I don't know how much I'll be updating, but my continual goal is to make time for social interactions. How well I meet that goal is another thing entirely.

Good luck to everyone, and even if I have been hiding away just trying to survive for the last year, that doesn't mean I haven't been thinking of you. And yes that includes my family, friends from Robinson and college, friends from the trail, and all of my running buddies from Chicago! I'm Wishing I was better at striking a balance, and I'm working every day to be better. But lately that's all that it feels like I can do, work at getting through one day at a time, doing the best I can. And that's what I'll keep doing, the best I can.

All in all, life is good, and worth every effort. Still Smiling!

Scott (Smiley Happy Feet :-)

posted at 12:20 PM.

June 16, 2009

Herb Mann: WordPressalypse

Something went terribly wrong in my WordPress install today, and I’m not sure what, or why.  The database is fine, along with all the posts and comments, as far as I can tell.  Those who read by feed probably won’t even notice a difference.

Once I have time to descend back into the Jeffries Tubes around here, I’ll get it sorted.

posted at 05:58 AM.

June 07, 2009

L. Burke: My thoughts on a piece of bad news

A really terrible story.


I am on another web site from whence I am familiar with this woman and her children. Sometimes I have a feeling about people but not this time. When she took her blog off line I figured it was because the child was dying and she didn't want any more public scrutiny.

But no, it was not that. At all. Much worse.

I do wonder what makes someone crack up like this. Certainly she was under a lot of pressure and was something of an overachiever (raising three young children, one with a lot of special needs, while going to school as well.) But what kind of person are you to start with, that this is what happens inside your head? Why do some depressed/ mentally ill individuals hurt others, while most just destroy themselves? If science could solve that problem the world would bow down and worship it..

I'm glad that technology was used for so much good in this instance. Modern medicine saved her child over and over. A camera caught her in the act. So often I tend toward seeing the darker side of technology and medicine. It was good to see them as the heroes (along with the medical professionals who suspected something like this) of a detective story. For my fellow bloggers who ask, "What is redemptive about this?" I'm going to answer, "The surveillance camera, and the people who figured out what was going on."

posted at 09:45 PM.

April 14, 2009

Angel Johnson: I can't win!

I had my annual physical exam today. Nothing exciting to report, although it amuses me that I'm apparently having the opposite problem as before.

I've seen the same doctor the past couple of years now. For a while, my weight was hanging out somewhere between 105-110, usually on the lower end. Since starting my job, however, I've actually gained a bit of weight and that range has moved up about 5 pounds. Add onto that the recent visit from family, which included a couple of meals at restaurants, and I weighed in at 116 this morning. After going over the other measurements the nurse had taken — blood pressure, heart rate, temperature — she gets to the weight, then looks at me and asks if that's normal for me now. She then strongly encouraged that I start exercising, because this sort of thing "can sneak up on you gradually, and before you know it you're 50 pounds heavier and wondering how the heck that happened"!

Normally, stress makes it even more difficult for me to keep on weight, and my job gives me a fair helping of that. I'm also on my feet all day and do a fair amount of walking around during that time. I'm still not eating breakfast regularly. I suspect it's a combination of eating a Hot Pocket for lunch about 75% of the time and then getting home ravenously hungry every day and snacking while making dinner. (Shame on me, I know. =) ) The weekly Friday donuts probably didn't help much either, but those are gone now thanks to budget cuts.

In any case, between that and the knee pain I've been starting to develop, that's two more strikes against my current job. ^^b

Or maybe my metabolism is finally winding its way down, which would be a shame. I'd hate to actually have to make an effort to stay thin. ;-)

posted at 12:27 AM.

March 03, 2009

Angel Johnson: Baaaaaaaaby Electronics

When we had some slow time at work, I went upstairs as a part of my large inventorying project to clean out the storage rooms. I found quite a few things that I would not have expected to find at a bank, including cowboy hats and doctor costumes. I guess at one point they had dress-up themes to go along with promotions. *shrug*

Apparently when they first came out with their Online Banking, they were giving out mini USB mice along with a free Online/Bill Pay consultation. I found one left and asked my manager if I could have it, and she said yes! :D

So now I have a ridiculously tiny (but functional!) mouse on my desk at home. It's shiny!

posted at 01:28 AM.

November 15, 2007

Chris Prince: Uhh...

Pardon my French, but what the fuck? And this is an ally?

For what it's worth:
Royal Embassy of Saudi Arabia
601 New Hampshire Avenue, NW
Washington, DC 20037

posted at 10:02 PM.

December 21, 2006

Chris Prince: Hilbert, party of n+1?

I'm in Indianapoils now, and have been for about 26 hours. I spent most of those last 26 hours either sleeping or working, though. I won't write about work just yet, since I'm now furious with my boss over a few issues, and I'd rather write about it when I've calmed down.

That said, I am glad to be home and relaxing (after work today, anyway). Is there going to be a Hilbert party heading out sometime over the holiday? I'd like to see the old Rose crowd again.

Lastly, I was a bad Chris this year and didn't send out any holiday cards, so, as appropriate, Happy Christmas/Hanukkah/Solstice/Kwaanza/Festivus/New Year, or if none of those apply (what, no New Year celebration?) hope you enjoy whatever time off you have coming to you.

posted at 06:26 AM.

June 05, 2006

Looptid.com: The Humpty Dance

Verse One

All right!
Stop whatcha doin'
'cause I'm about to ruin
the image and the style that ya used to.
I look funny,
but yo I'm makin' money, see
so yo world I hope you're ready for me.
Now gather round
I'm the new fool in town
and my sound's laid down by the Underground.
I drink up all the Hennessy ya got on ya shelf
so just let me introduce myself
My name is Humpty, pronounced with a Umpty.
Yo ladies, oh how I like to hump thee.
And all the rappers in the top ten--please allow me to bump thee.
I'm steppin' tall, y'all,
and just like Humpty Dumpty
you're gonna fall when the stereos pump me.
I like to rhyme,  
I like my beats funky,
I'm spunky.  I like my oatmeal lumpy.
I'm sick wit dis, straight gangsta mack
but sometimes I get ridiculous
I'll eat up all your crackers and your licorice
hey yo fat girl, c'mere--are ya ticklish?
Yeah, I called ya fat.
Look at me, I'm skinny
It never stopped me from gettin' busy
I'm a freak 
I like the girls with the boom
I once got busy in a Burger King bathroom
I'm crazy.
Allow me to amaze thee.
They say I'm ugly but it just don't faze me.
I'm still gettin' in the girls' pants
and I even got my own dance


The Humpty Dance is your chance to do the Hump
Do the Humpty Hump, come on and do the Humpty Hump
Do the Humpty Hump, just watch me do the Humpty Hump
Do ya know what I'm doin', doin' the Humpty Hump
Do the Humpty Hump, do the Humpty Hump

Verse Two

People say Yo, Humpty, you're really funny lookin'
that's all right 'cause I get things cookin'
Ya stare, ya glare, ya constantly try to compare me
but ya can't get near me
I give 'em more, see, and on the floor, B,
all the girls they adore me
Oh yes, ladies, I'm really bein' sincere
'cause in a 69 my Humpty nose will tickle ya rear. 
My nose is big, uh-uh I'm not ashamed
Big like a pickle, I'm still gettin' paid
I get laid by the ladies, ya know I'm in charge,
both how I'm livin' and my nose is large
I get stoopid, I shoot an arrow like Cupid,
I use a word that don't mean nothin', like looptid
I sang on Doowutchyalike, and if ya missed it,
I'm the one who said just grab 'em in the biscuits
Also told ya that I like to bite
Well, yeah, I guess it's obvious, I also like to write.
All ya had to do was give Humpty a chance 
and now I'm gonna do my dance.

{ Chorus }


Oh, yeah, that's the break, y'all
Let me hear a little bit of that bass groove right here
Oh, yeah!
Now that I told ya a little bit about myself
let me tell ya a little bit about this dance
It's real easy to do--check it out

Verse Three

First I limp to the side like my leg was broken
Shakin' and twitchin' kinda like I was smokin'
Crazy wack funky
People say ya look like M.C. Hammer on crack, Humpty
That's all right 'cause my body's in motion
It's supposed to look like a fit or a convulsion
Anyone can play this game
This is my dance, y'all, Humpty Hump's my name
No two people will do it the same
Ya got it down when ya appear to be in pain
Humpin', funkin', jumpin',
jig around, shakin' ya rump,
and when the dude a chump pump points a finger like a stump
tell him step off, I'm doin' the Hump

{ Chorus }

Black people, do the Humpty Hump, do the Humpty Hump
White people, do the Humpty Hump, do the Humpty Hump
Puerto Ricans, do the Humpty Hump, just keep on doin' the Hump
Samoans, do the Humpty Hump, do the Humpty Hump

Let's get stoopid!

{ Chorus }

Oh, yeah, come on and break it down


Once again, the Underground is in the house
I'd like to send a shout out to the whole world,
keep on doin' the Humpty Dance,
and to the ladies,
peace and Humptiness forever

{ Music and fade }

posted at 04:30 PM.

May 15, 2006

RGSB LiveJournal community: Upgraded planet; needs tweaking

Hi all,

I've upgraded rgsb.org to use Sam Ruby's flavor of Planet. Expect several time-units of tweaking to follow. Please yell if you notice any problems.

posted at 08:41 PM.

May 11, 2005

RHIT photoblog: Untitled

I'm Andrea Brown. I haven't been doing much with Phot club or photography for that matter outside of Thorn business. Here is one of my favorite photos from the two years of photography I did in high school. If you would like to see more, go to http://www.fotki.com/Nappy4Eeyore and type in the password: insight. Those are the works I currently have hard copies of. Hope you like :)Posted by Hello

posted at 01:00 PM.

April 15, 2005

RHIT photoblog: Welcome! Getting Started with the RHIT photoblog...

If you love photography or are just curious about it here at Rose-Hulman, then this blog is for you! Use it to share pictures, stories, techniques, and any other related stuff you want. Check it out!

For those interested in adding their own ideas to this blog, follow these steps:

1. First you will need to be invited to this blog as a contributing member. To get an invitation, email baxterjn@rose-hulman.edu (please use your RHIT account to verify that you're actually a student). Currently there is no criteria required to become a member other than being a Rose-Hulman student.
2. If you don't already have an account with Blogger, you will need to create one (it's free and easy!) Sign in, and then you will have access to post and edit your own work to this photoblog. It's that simple.

If you'd like a more automated way to upload pictures specifically, check out these programs:
Picasa 2: http://www.picasa.com/
Hello: http://www.hello.com/
These programs are both excellent and free! I highly recommend them...

Again, this blog is for everyone's fun and enjoyment, so please be respectful of the work that everyone has contributed, as well as with your submissions. Let's keep it fresh, clean, and just plain awesome!

Thanks a bunch, Enjoy!
Photo Club
Rose-Hulman Institute of Technology

posted at 05:08 AM.