Your Ad Here

August 27, 2008

Changing Customers Password Without Consent

risinganger writes "BBC News is reporting that a customer had his password changed without his knowledge. After some less than satisfactory service the customer in question changed his password to 'Llyods is pants'. At some point after that a member of staff changed the password to 'no it's not'. Requests to change it back to 'Llyods is pants', 'Barclays is better' or censorship were met with refusal. Personally I found the original change funny, like the customer did. After all, god forbid a sense of humour rears it's ugly head in business. What isn't acceptable is the refusal to change it per the customers requests after that."

Read more of this story at Slashdot.

Immersion Settles Up With Microsoft: Hands Over $20.75 Million Of Money It Got From Sony

Apparently this is the week for force feedback "haptics" company Immersion to settle its various patent lawsuits. We already noted the infamous teledildonics case has been settled and now it's settled an ongoing lawsuit with Microsoft as well. We wrote about the details back in May. It's a case that highlights just how wasteful some patent lawsuits can be.

In this case, Immersion had sued both Sony and Microsoft for violating its patents, and it offered them a deal that's becoming all too typical: giving competitors a chance to settle first in order to join the other side of the case. It's a neat trick. Basically, you tell both sides that they can just pay up, and close out the case, while also getting the chance to claim some of that money back if Immersion wins against their competitor. Of course, Immersion took it to another level after Microsoft agreed to this deal, originally handing over to Immersion $26 million. After it got Sony to pay $130 million, it told Microsoft that the deal wasn't technically a "settlement," and thus it was excluded from the terms of the deal it gave Microsoft. Hence the lawsuit from Microsoft.

This latest settlement has Immersion apparently realizing it was never going to win the case, and forking over $20.75 million back to Microsoft, ostensibly from its winnings against Sony. It makes you wonder what's up that Immersion seems to be rushing to settle its various cases. Either way, it shows another aspect of how the patent abuse game is played these days, with patent holders pitting competitors against each other to pressure companies into settling.

Permalink | Comments | Email This Story

Automatic “Awesompersands”

Patrick Haney kicks it up a notch, automating awesompersands using jQuery. A few other worthy points are brought up as well: unbolding to get the proper italic version, and Jeremy Keith's clever suggestion that an ampersand is in fact an abbreviation (of the Latin et), therefore we could use <abbr> instead of <span>. Jeffrey Veen later added (at the An Event Apart San Francisco speakers dinner) that the lang="la" attribute should be added. I feel a SimpleQuiz resurrection coming on! #

New Map From Fermi Gamma-Ray Space Telescope

I Don't Believe in Imaginary Property writes "NASA has received interesting results from the Fermi Gamma-ray Space Telescope, originally known as GLAST, which has allowed them to create new map of the gamma-ray sky. The secret to its ability to resolve gamma-rays is that they use layers of tungsten interleaved with silicon detectors. When a gamma-ray strikes tungsten, it produces an electron/positron pair due to the photoelectric effect, which cascades as it goes through further layers of tungsten. Meanwhile, they record which silicon detectors had electrons or positrons pass through them to determine the direction of the source and they also record the total energy of the electron/positron pairs to calculate the wavelength of the gamma-ray using Planck's Law. The data gathered in just its first few hours of operation is reportedly comparable to the data from the Energetic Gamma-Ray Experiment Telescope, which gathered data for nine years back in the 1990's and there are hopes that it could detect dark matter in the form of weakly interacting massive particles (WIMPs)."

Read more of this story at Slashdot.

Viruses… In… Spaaaaaaaaace

NASA is admitting that laptop brought to the international space station in July apparently contained a virus designed to swipe user passwords, though they're not sure how it happened. The computers don't control anything mission critical, but are used by astronauts to send email and to track their nutritional programs. The computers were never connected to the internet, so NASA is guessing that an astronaut had an infected USB key or something that resulted in the virus getting onto the computer.

Permalink | Comments | Email This Story

Time lapse video of slime mold and mushrooms


Time lapse video of unusual looking molds and mushrooms erupting. Be sure to check out the related mushroom videos, too. (Via Grow-A-Brain)


Love and Rockets: New Stories, Vol 1

200808271820.jpg

National treasures Jaime and Gilbert Hernandez have relaunched Love and Rockets with a new format and a new approach. I can hardly wait.

Love and Rockets: New Stories #1 reboots the beloved ongoing "Love and Rockets" comic into a fat, all-new annual graphic novel length package.

Jaime launches the new format with a story that's unusual even for him... A full-on, pulse-pounding super-hero yarn! Maggie's longtime friend Penny Century has finally realized her longtime dream of acquiring super-powers, but at a terrible personal cost. Now she rampages through the galaxy, half mad with grief, and a motley group of super-heroes assembles to try to stop her -- led by Maggie's girlfriend Angel and her mysterious neighbor Alarma, and involving a number of characters longtime Love and Rockets fans will delight in recognizing.

The epic-length 50-page story (only the first half of the saga!) combines Jaime's razor sharp characterization and superlative art with wildly inventive, Kirby-style slam-bang super-hero action.

Then Gilbert Hernandez explodes with a similarly generous helping of his fantastically creative one-shot short stories: "Tamanny" (rookie cop vs. demonic drug users); "Papa" (a turn-of-the-century story involving a traveling businessman); "The New Adventures of Duke and Sammy" (super-powered Martin and Lewis impostors in outer space); "The Tender Room" (Into the Wild as re-imagined by Beto); "Chiro el Indio" (written by third brother Mario Hernandez); and "Never Say Never" (a kangaroo gets lucky in Las Vegas).

One hundred pages of Jaime, Gilbert and Mario Hernandez at the peak of their powers: this is a major graphic-novel event!

Love and Rockets: New Stories #1

Small gallery of old comic book ads

200808271813.jpg

Datajunkie has a small galley of choice comic book ads from the days of yore. If you like these, you should get a copy of Hey Skinny! Great Advertisements from the Golden Age of Comic Books. Old comic book ads


45th Known Mersenne Prime Found?

An anonymous reader writes "The Great Internet Mersenne Prime Search (GIMPS) has apparently discovered a new world-record prime number. A GIMPS client computer reported the number on August 23rd, and verification is currently under way. The verification could take up to two weeks to complete. The last Mersenne prime discovered was over 9.8 million digits long, strongly suggesting that the new value may break the 10 million digit barrier — qualifying for the EFF's $100000 prize!"

Read more of this story at Slashdot.

Telus Kicks Customers Off Of Unlimited Plan It Sold Them Not Too Long Ago

For the last few years, various connectivity providers sold "unlimited" data plans when the reality was the plans weren't unlimited at all. Many providers are now changing the plans and instituting more clear caps, but it still seems a bit ridiculous to have marketed unlimited data plans and then pulled the rug out from under those who bought exactly what you sold them. Up in Canada, it seems that TELUS is taking it a step further. Not only did it sell people "unlimited" plans that it now regrets, it's exercising some vague language in its contract that allows them to simply cancel the plans of those who had bought into the "unlimited" plan even just a short while ago. The company is forcing users to switch from a $75 unlimited plan to a $65 plan that is limited to just one GB per month, and dumping anyone who won't switch. That would seem to be a pretty strong bait-and-switch claim. Sure, perhaps the telcos oversold these unlimited plans, but that doesn't mean they shouldn't be required to live up to what they sold.

Permalink | Comments | Email This Story

Behind the scenes: Redesigning and coding the Highrise sidebar modules

I’ve wanted to redesign the Highrise sidebars for a long time. They’ve felt cluttered and messy to me, and as we add more features to Highrise the mess will only multiply. So I was glad to have the chance this week to redesign the sidebar modules. The visual side of the redesign was straightforward, but implementing the design in code required a few tricks. Here’s a look behind the scenes at the coding decisions we made for the new Highrise sidebars.

“Subjects” in Highrise

Which sidebar modules am I talking about? In Highrise you can keep track of People, Companies, and Cases. These all have the same basic code and UI. You can keep notes about them, set tasks for the future, and manage some common types of metadata. Since People, Companies and Cases share so much plumbing, we’ve abstracted them as subjects. A subject is anything in Highrise that you can attach notes and tasks to. When you look at a subject’s page, you see a sidebar with some modules for adding or editing metadata such as contact information, background information (a kind of static text description), dates to remember for that subject, and more. The screenshot below shows a subject page with the sidebar modules highlighted.

Redesigning the modules

Each module has a header like “Contact Bob” or “Dates to remember” and data below. In the original design, modules can be either “active” or “empty” based on whether they have any data in them. Empty modules have a grey header and an “add” link floated right. Active modules have a light blue header and an “edit” link on the right. We made this distinction so your eye would more easily catch active modules when you’re looking for information. The idea was good, but the original implementation looked messy with its mix of grey and blue, scattered red action links, and lack of separation between modules.

For the first redesign (above) we cleaned up the modules. Active modules are now wrapped entirely in a light grey box with a tiny drop shadow. We killed the blue header style, relying instead on the space between modules to separate them. Empty modules no longer have a header. They are grey boxes collapsed down to a single link to add the content relevant to that module. Finally we replaced all the red links with grey links in order to put the focus on the data within active modules rather than all the possible actions. One last tweak: we changed the text for “About [subject’s name]” to “Add background information.” We’ve gone back and forth a number of times on the language for this feature, and at this stage we decided to try “background info” on for size again.

The first redesign was a big improvement. But we didn’t like the way active and empty modules looked mixed together. The dim bar in between those two active modules creates a kind of striped look that we want to avoid. The problem was worse on subjects with more sidebar modules, like companies or cases. So we decided to group all the active modules together on the top, and then group the empty modules on the bottom. The result is much cleaner, and it’s easier to scan when you load up a subject in order to quickly grab some info like an email address or birthday.

The re-ordered sidebar was a winner. But it came at a price. We couldn’t just change the CSS and call it a day. Now we also had to write code to re-order the sidebar modules dynamically based on whether they were empty or active. Ruby’s power and flexibility really came in handy for this job.

The code

I said earlier that people, companies, and cases are handled by the same plumbing because we abstracted them as subjects. The result of this abstraction is that whether you are looking at a person, a company or a case, the sidebar is rendered by the same template: subjects/_sidebar.rhtml.

(This kind of “view polymorphism” has been subject to a lot of internal debate since we first released the app. It makes maintenance both easier and harder because the code has less repetition on one hand but on the other it is less intention-revealing due to the abstractions and indirection.)

This is what the original template code looked like to render the subject sidebars:

in app/views/subjects/_sidebar.rhtml:

  <% if @subject.is_a?(Party) %>
    <%= render(:partial => 'parties/contact_info') %>
  <% end %>

  <% if show_company_contact_info?(@subject) %>
    <%= render(:partial => 'parties/contact_info', :object => @subject.company) %>
  <% end %>

  <%= render :partial => 'backgrounds/show' %>
  <%= render :partial => 'contact_dates/index' %>

  <% if @subject.is_a?(Kase) %>
    <%= render :partial => 'kases/parties' %> 
  <% end %>

  <% if @subject.is_a?(Company) %>
    <%= render :partial => 'companies/people' %>
  <% end %>

Don’t worry too much about the individual partials and conditions. The key point is that each partial is a sidebar module, and each module is conditioned based on the particular subject we are rendering. A different mixture of partials will be rendered depending on whether the subject is a person, a company or a case, but they’ll always render in the same order.

We want to re-order these partials dynamically based on whether each module is active or empty. That means we need to represent the possible partials, the conditions for displaying them, and also the conditions for determining whether they are active or empty within some kind of data structure. So we popped open our Rails subjects_helper.rb and represented this information in an array.

in app/views/helpers/subjects_helper.rb:

  def sidebar_modules_to_sort
    returning [] do |m|
            # partial to render       module_is_active?                 options                          render the module for this subject? 
      m << ['parties/contact_info'  , show_contact_info_module_on_top?, {}                             ] if @subject.is_a?(Party)
      m << ['parties/contact_info'  , true                            , {:object => @subject.company}  ] if show_company_contact_info?(@subject)
                                        #necessarily true per the condition at right
      m << ['backgrounds/show'      , !@subject.background.blank?     , {}                             ]
      m << ['contact_dates/index'   , @contact_dates.any?             , {}                             ]
      m << ['collections/parties'   , @subject.parties.any?           , {}                             ] if looking_at_collection?
      m << ['companies/people'      , @subject.people.any?            , {}                             ] if @subject.is_a?(Company)
    end
  end

The helper method sidebar_modules_to_sort returns a parent array full of child arrays, one for each module with an element for the template path, a true/false value to show if it is active, and an options hash for the render method. The conditions that used to determine whether each partial should be rendered now determine whether each child array should be included in the parent array. Thanks to that boolean in the second element of each child array, we can partition the parent array into two groups: those where the second element which represents that the module is ‘active’ are true, and those were that element is false. We use another helper method to partition and reassemble the array into groups.

in app/views/helpers/subjects_helper.rb:

  def sidebar_modules_in_order
    active_group, empty_group  = sidebar_modules_to_sort.partition {|m| m[1]}
    active_group.concat empty_group
  end

Finally we return to our sidebar template to do the actual rendering.

in app/views/subjects/_sidebar.rhtml:

<%= sidebar_modules_in_order.map {|m| render sidebar_module_partial(m)}.join %>

This line in the template takes the sorted array of sidebar modules and replaces each element in the array with the rendered partial. Then the join method converts each element to a string and concatenates them. sidebar_module_partial is a call to one more helper. This helper assembles the arguments for render out of the elements provided in the array. It looks like this:

in app/helpers/subjects_helper.rb:

  def sidebar_module_partial(m)
    m[2].merge({:partial => m[0]})
  end

In the snippet above, sidebar_module_partial takes the third element of each module array, which is either an empty hash or some special options for render, and merges a key specifying the template path onto that hash.

We definitely could’ve hidden these rendering gymnastics behind a helper, perhaps called render_sidebar_modules or something similar. However we’ve decided for style reasons to avoid calling render from within our helpers. Therefore we decided to use a helper to merely fill in the arguments to the call to render within the template itself.

In the end, we have a new sidebar design and some clean and intention-revealing code. This was a fun chance for me to expand my Ruby knowledge by dipping into the nuts and bolts of arrays and hashes. Thanks to Jamis for reviews and advice when I knew there had to be “a better way.” We hope you enjoy the new sidebar modules in Highrise.

Related: What belongs in a helper method?

How to create a super shiny pencil icon in Photoshop

200808271717.jpg

Eren Göksel wrote a tutorial that anyone can follow to create a drawing of a pencil in Photoshop.

The Pencil is one of the visual metaphors most used to express creativity. In this tutorial, I'll show you how to draw a pencil icon. We'll have a look at gradients, selection tools, and basic transform operations. Let's have some fun with this.
I'd love to see Boing Boing readers' variations on this. If you create one, please link to it in the comments section.

How to create a super shiny pencil icon in Photoshop


The Power Grid Can’t Handle Wind Farms

DesScorp writes "The Times reports on the problems of adding wind farms to the power grid. Because of the grid's old design, it can't handle the various spikes that wind farms sometimes have, and there's no efficient way to currently move massive amounts of that power from one section of the country to the other. Further complicating things is the fact that under current laws, power grid regulation is a state matter, and the Federal government has comparatively little authority over it right now. Critics are calling for federal authority over the grid, and massive new construction of "superhighways" to share the wind power wealth nationally. Quoting the article, 'The dirty secret of clean energy is that while generating it is getting easier, moving it to market is not.'"

Read more of this story at Slashdot.

Do We Need a National CTO?

The 463 blog points us to an interview with Mitch Kapor of Lotus and EFF fame, in which he makes the case for a national Chief Technology Officer. The idea seems to be that technology policy in the United States is currently fragmented among a bunch of different positions, and having a designated top technologist in the government would help to bring coherence to the nation's technology policy. It sounds like a reasonable idea at first blush, but on closer examination it might create more problems than it solves.

To start with, it's important to distinguish between two jobs that are really quite different. One job is to coordinate the government's own IT infrastructure. Currently, IT decisions are made by the various federal agencies and departments within the federal government. A national CTO could conceivably set guidelines or policies related to IT infrastructure that would apply across the executive branch. The other job is to advise the president on substantive tech policy issues like network neutrality, patents, copyrights, etc. The two jobs are very different, and it's not at all clear it would make sense to have the same guy doing both. But let's consider each position in turn.

It's not clear how significant the potential savings or efficiency gains would be from having a single guy in charge of all government IT deployments. Up to a certain point, there are efficiency gains to be had from greater IT integration, but the federal government is probably so large that those economies of scale have already been exhausted. That's especially true when we consider that the different parts of the government have widely different requirements. Some parts, such as the FBI and NASA, have offices all over the country, while others are located almost entirely in Washington. Federal agencies do different kinds of work and need a wide variety of software packages. The current arrangement, in which each agency manages its own IT infrastructure, seems likely to give each agency more flexibility to choose technologies that meet its specific needs.

The idea of a designated tech policy advisor is more promising, but that also has potential downsides. A good choice could help bring coherence and vigor to a president's tech agenda, but, given enough power, a bad choice could cause just as much mischief. Therefore, if the next president does create a CTO position, he ought to limit its function to advising the president, rather than pursuing an independent policy agenda. A good model for this is the president's Council of Economic Advisors, which advises the president on economic policy and produces an annual report on the state of the economy but doesn't wield any significant authority in its own right.

Timothy Lee is an expert at the Techdirt Insight Community. To get insight and analysis from Timothy Lee and other experts on challenges your company faces, click here.



Permalink | Comments | Email This Story

Digital Storage To Survive a 25-Year Dirt Nap?

AlHunt writes "I've been tasked with finding a way to bury digitally stored photographs in a small underground time capsule to be opened in 25 years. It looks like we'll be using a steel vessel, welded closed. I've thought of CDs, DVDs, a hard drive, or a thumb drive — but they all have drawbacks, not the least of which is outdated technology 25 years from now. Maybe I'll put a CD and a CD-ROM drive in the capsule and hope that the IDE interface is still around in 25 years? Ideas and feedback will be appreciated."

Read more of this story at Slashdot.

Activation fees are obscene

Wanna feel ripped off today? Sign up for an online virtual service that charges a one-time activation fee. It’s a special feeling to hand over $35 for nothing.

I’d almost understand if there was actual work involved. Or hardware was manually set up. Or someone had to climb some stairs and walk down a few halls to flip something on.

But to charge me $35 to “activate” my account by adding a few records to a few databases, well, that feels like… You know what that feels like.