Icon_search
Travis

Git With the Program

Posted on 06/23/08 by Travis
1 Comment

Git is "an open source version control system designed to handle very large projects with speed and efficiency." It's also well-suited for smaller repositories and is very popular in the open source community because of its ability for many people to work on the same project. Git is much faster than most other, more common version control systems.

We're still running Subversion here at Plexus, which has suited our needs spectacularly. Despite its features, I don't imagine that we'll move to git anytime soon, particularly because of its rather steep learning curve. I have created an account with github, a free online git repository hosting service, to help me get better acquanted with git. It definitely takes a little while to get the hang of. It's a lot different than Subversion.

Git resources:


Projects using git:

  • The Linux Kernel (after all, git was written by Linus Torvalds)
  • One Laptop Per Child core development
  • Ruby on Rails

Tagged:  git, subversion

Back to top

Colin

Arrays: Iterating + Deleting = BAD

Posted on 06/19/08 by Colin
0 Comments

Going through some legacy Ruby code that I'm updating for a client, I came across a seemingly random problem where some elements of an array weren't being removed properly. Here's a simplified version. Can you see the problem?

@example_array = ["a","b","c","d","e","f"]
@example_array.each do |example_element|         
  @example_array.delete(example_element)
end

The element after each element that got deleted successfully doesn't get deleted. Why? The delete call re-indexes the array in place before the iterator comes around again. The same is true, incidentally, of the insert method, which in the same context could continue infinitely.

Moral of the story: don't mess with the number of items in an enumerable as you're iterating through it. If you need this functionality, maybe just make a copy and modify that:

@example_array = ["a","b","c","d","e","f"]
@example_array_copy = @example_array.dup
@example_array.each do |example_element|         
  @example_array_copy.delete(example_element)
end
@example_array = @example_array_copy

Tagged:  array, iterate, delete

Back to top

Natalie2

My New Personalized Home Screen

Posted on 06/18/08 by Natalie
0 Comments

netvibes_white

Have you checked out Netvibes ? I think I'm its newest user and so far as I navigate through it, I think it's pretty handy.

Netvibes is an application that lets you create your own personalized home page, pulling in all of the information and features that matter to you.

When you create your account, it asks for your whereabouts so that on your page, it pulls in a weather display from The Weather Channel. In addition, you select the items that interest you and it pulls in feeds from your selections including news, sports, stocks, etc. In addition, you can create the specific areas that interest you (one of mine is the University of Georgia) and it sets up a tab in your Netvibes profile specifically for information from that subject. Also, any site that offers RSS feeds, you can easily integrate into your NetVibes page. So far, I've loaded news and blog feeds from Bulldawg Illustrated .

Probably the most useful is how it pulls in all of your social media tools. Since I am notorious for not checking Facebook , I linked it up with NetVibes and now have it available on my dash to see what is going on with friends. Other social aspects I've pulled in is Twitter and LinkedIn .

Another cool feature is that once you add all of your content, you can drag and drop all of the boxes to lay out your page how you want to. So, if you want the most interesting Flickr photos to appear above the most popular YouTube videos, you can.

There are other functions that I'm sure I don't even know about yet including a developers platform to create widgets to work with Netvibes.

Check it out and while you're there, add me as a friend (you might be my first)!

Tagged:  personalized home screen, Netvibes

Back to top

Charlie

Our New Old Home

Posted on 06/17/08 by Charlie
0 Comments

As some of you may already know, Plexus recently moved to a new office space near downtown Athens in a building known as the Leathers Building. Since I'm into local history and architecture I thought I'd blog a little bit about the building and its past.

Leathers Building

Originally constructed in 1946, the building is a typical factory in the style of the late 19th and early 20th centuries, with thick masonry exterior walls, high vaulted ceilings supported by iron trusses, and skylights providing natural light to work by. It sits adjacent to the main railroad line running through Athens.

The L.M. Leathers manufacturing company occupied the building for the early part of its life, cranking out various things from sheet metal for roofing and trouser guards to peanut butter crackers and Moon Pies. In the early 1990's, L.M. Leathers & Sons moved to a newer, larger facility, leaving the original building empty and unused. It sat that way for over a decade, gathering weeds and watching trains go by. Here's a picture of it from 2003, when it was just another abandoned factory:

Leathers Building

Shortly after that picture was taken, the building was bought and developed as an adaptive re-use development for retail and professional offices. The concept of adaptive re-use, in short, is the idea that clear-cutting wooded areas on the edge of town to make office complexes is wasteful and unnecessary when historic buildings such as the Leathers building exist and are just waiting for a second (or third) incarnation. Adaptive re-use is a way to counter urban sprawl and is far more environmentally friendly than new development. It is intelligent urban planning, reinforces the local flavor of this very unique community, and enhances our appreciation of local history.

Plexus at the Leathers Building

In addition to being within walking distance of downtown Athens, the Leathers Building also sits about two blocks from my house (another historic building which is actually twice as old as the Leathers), making it very easy for me to get to work these days. Look for my bike out front on nice days when I don't have to dress up for clients.

Plexus at the Leathers Building

So now Plexus Global Headquarters sits beside the tracks cranking out websites from a factory that once cranked out roofing metal and Moon Pies. We still work under iron trusses by the light of the original skylights. Few things have changed -- although we probably have a much faster internet connection than they did in '46.

Tagged:  Leathers Building, Adaptive Re-use, historic buildings, architecture, Athens

Back to top

Stephanie

Leaving a bad taste

Posted on 06/11/08 by Stephanie
1 Comment

I'd heard the phrase "Domain Tasting" but had never had any personal experience with the concept. This week I learned a valuable lesson...if you want something, buy it right away. Well I guess this doesn't apply to everything but it does apply to domain names.

Domain tasting as defined by Wikipedia is: the practice of a domain name registrant using the five-day "grace period" at the beginning of the registration of an ICANN-regulated second level domain to test the marketability of the domain. During this period, when a registration must be fully refunded by the domain registry, a cost-benefit analysis is conducted by the registrant on the viability of deriving income from advertisements being placed on the domain's web site.

So what's the story? Now I have personally been building web sites and purchasing domains for over 10 years through the same registrar. I always check the availability of a domain at my registrar, report back to the client what is available, and a few days later will return to purchase the select domain(s). Well this past week I did just that and got a wake up call.

We recently launched a new web site for Bulldawg Illustrated (www.bulldawgillustrated.com). We thought it would be a good idea for the client to purchase www.bulldogillustrated.com because of the possibility that someone might not know it is "dawg" instead of "dog". So like always I performed the search and it was available. I let the client know to let me know if they wanted us to register it.

Later that night, when the client decided to purchase it, it was no longer available. It had been registered it that very day.

Now let me go ahead and say we do not use Network Solutions, Godaddy, Register.com or any of the other major registrars - many of who are being investigated for the very practice of registering domains that have been searched on their sites for a variety of reasons they feel are ethical. The registar we use have never used any of those practices - again we have a 10 year history with them.

I immediately contacted the registrar to find out if there had been changes to their system that would have allowed for a breach of their search data. They assured me that is not the case and that they have never had a report of a domain being sniped during a search query.

Well since it was obvious that this domain was indeed sniped for the purpose of "tasting" the best thing we could do was NOT to go to the site, and certainly not to click on any of the ads that immediately showed up on the site as soon as the domain was sniped.

About 5 days later I searched to see if the domain was available again, and it was. I was able to register it, which I did for 5 years. Luckily this domain wasn't one that would get alot of accidental traffic and ad click throughs. Had it generated enough traffic and click through revenue it would have been lost forever.

Our registrar still isn't quite sure how a breach like this occured through their system but they have assured me that they are conducting a thorough investigation. But the simple and affordable lesson is, if you want a domain name, and it is available, buy it right away. At $15 or less per year, its a gamble you can afford to take!

Tagged:  domain name tasting, domain tasting, domain sniping, sniping, tasting, georgia web design

Back to top