RSS
 

Archive for May, 2011

Honest Logos by Viktor Hertz

03 May

Honest Logos by Viktor Hertz

Come on, let’s be real. That’s what Viktor Hertz is saying with his redesigned “Honest Logos.”

Honest Logos by Viktor Hertz

Honest Logos by Viktor Hertz

Honest Logos by Viktor Hertz

Honest Logos by Viktor Hertz

Honest Logos by Viktor Hertz

See the rest in Viktor’s portfolio on Behance.


Share This: Twitter | Facebook | Discover more great design by following Design Milk on Twitter and Facebook.
© 2011 Design Milk | Posted by Jaime in Art | Permalink | 1 comment
 
 

002_National_Animals_design.png (PNG Image, 350×455 pixels)

03 May

via http://www.flyingmouse365.com/store/index.php?dispatch=products.view&product_id=29794

 
 

Tweets per second during Bin Laden announcement

02 May

Osama Bin Laden

As I listened to my young neighbors run around the parking lot chanting, "U-S-A! U-S-A!" I glanced at my Twitter feed, and it showed a burst of similar sentiment. On the announcement of Osama Bin Laden's death, Twitter recorded the highest sustained rate of tweets ever, at an average of 3,000 per second. The above shows the progression from 9:30pm to 12:30am EST.

[Image Link via @nickbilton]

 
 

Fixed – Problem passing search query from Websphere Portal header to the Onimfind Enterprise Search 9.1 portlet

02 May

Page edited by Ben Shoemate

Issue: Searches from the Websphere portal header do not submit to the Omnifind 9.1 portlet

We had an issue with Websphere portal 6.1.5 and Omnifind enterprise search version 9.1  where searches submitted from search bar in the portal header are not passed to the Omnifind portlet. The page will redirect to the right page but the keyword is not passed to the search portlet and the search is not submitted.

Steps to recreate the problem.

If you follow the steps in the documentation to integrate omnifind with portal (run the install script which creates a portal page and deploys the omnifind portlet and a servlet to encode and submit search keyword) and modify the search bar in the portal theme to send searches to the new page – you will end with a working version of portal where everything works correctly. However, if you modify that page in anyway, it will stop working. The portlet will still submit search typed directly into the portlet but searches typed into the header will not work.

Know ways to break it:

  • Create a new search page, deploy the omnifind portlet to the page and change the search bar to point to this page.
  • Change the layout of the page original page created by the omnifind integration install scripts with the page builder theme.
  • Remove the omnifind portlet from the page and re-add it.
  • Giving the Omnifind portlet (“Search portlet for enterprise search”) a unique name. Note that the portlet it does not have a unique name when installed using the script

Solution

  1. Uninstall the omnifind portlet using the uninstall script provided with omnifind.
  2. Delete any custom pages of copies of the portlet that the script missed.
  3. Reinstall the omnifind portlet using the script provided with omnifind.

Detailed steps:

Step 1: Get the JAR that contains the scripts and files.
Go to the master server where the Omnifind application is running. Find es.wp61.install.jar (note version 7 has its own jar file) and copy it to the portal server and unpack it.

Step 2: with the command prompt (or bash for linux) navigate to the folder you unpacked – es.wp61.install and type the following command (change .bat to .sh for linux) and update the parameters for your server:

wp61_uninstall.bat
 -WPSProfileDir "C:\\IBM\\WebSphere\\wp_profile"
 -WASDir "C:\\IBM\\WebSphere\\AppServer"
 -WASUser wpsadmin
 -WASPassword wpsadmin
 -WPSDir "C:\\IBM\\WebSphere\\PortalServer"
 -WPSUser wpsadmin
 -WPSPassword wpsadmin
 -WPSHost "wps1.base22.com:10040"

Step 3: If it runs successful, log in and check that all omnifind portlets and pages were removed.

Step 4: Run the install script from the command line (just press up to get the command from the unistall and change it to install)

wp61_install.bat
 -WPSProfileDir "C:\\IBM\\WebSphere\\wp_profile"
 -WASDir "C:\\IBM\\WebSphere\\AppServer"
 -WASUser wpsadmin
 -WASPassword wpsadmin
 -WPSDir "C:\\IBM\\WebSphere\\PortalServer"
 -WPSUser wpsadmin
 -WPSPassword wpsadmin
 -WPSHost "wps1.base22.com:10040"

From the omnifind documentation:

Removing OmniFind Enterprise Edition  from WebSphere Portal

 

When you remove OmniFind® Enterprise Edition from WebSphere® Portal, the parameters that you specified for the portlets when you deployed them must be specified again.

To remove OmniFind Enterprise Edition from WebSphere Portal, run the script that is appropriate for operating system and your version of WebSphere Portal or Lotus Quickr for WebSphere Portal:

  • wp61_uninstall.bat or wp61_uninstall.sh
  • wp70_uninstall.bat or wp70_uninstall.sh
  • qkr80_uninstall.bat or qkr80_uninstall.sh

When you start the script, the script stops the WebSphere Portal server. After the OmniFind Enterprise Edition software is removed, the script restarts the WebSphere Portal server.

To remove OmniFind Enterprise Edition from a WebSphere Portal system:

At a command prompt, run the setup script for your operating system and your version of WebSphere Portal. The following example shows parameters on separate lines for readability; you must specify the parameters with the command:

In version 6.1.5

wp61_uninstall.bat
 -WPSProfileDir "C:\\IBM\\WebSphere\\wp_profile"
 -WASDir "C:\\IBM\\WebSphere\\AppServer"
 -WASUser wpsadmin
 -WASPassword wpsadmin
 -WPSDir "C:\\IBM\\WebSphere\\PortalServer"
 -WPSUser wpsadmin
 -WPSPassword wpsadmin
 -WPSHost "wps1.base22.com:10040"

In version 7:

wp70_uninstall.bat \-WPSProfileDir "C:\\IBM\\WebSphere\\wp_profile"
 -WASDir "C:\\IBM\\WebSphere\\AppServer"
 -WASUser wpsbind
 -WASPassword wpsbind
 -WPSDir "C:\\IBM\\WebSphere\\PortalServer"
 -WPSUser wpsadmin
 -WPSPassword wpsadmin
 -WPSHost "portalserver.ibm.com:10040"

Install Omnifind Portal integration – From the documentation

Step 1: Copy the appropriate JAR file from the OmniFind Enterprise Edition server to the WebSphere Portal server, and then use the Java™ JAR command (or the TAR command) to unpack the file.

  1. At a command prompt, run the setup script for your operating system and your version of WebSphere Portal. The following example shows options on separate lines for readability; you must specify the options with the command:
wp70_install.bat
  -WPSProfileDir "C:\\IBM\\WebSphere\\wp_profile"
  -WASDir "C:\\IBM\\WebSphere\\AppServer"
  -WASUser wpsbind \-WASPassword wpsbind
  -WPSDir "C:\\IBM\\WebSphere\\PortalServer"
  -WPSUser wpsadmin
  -WPSPassword wpsadmin
  -WPSHost "portalserver.ibm.com:10040"

Definitions of parameters:

  • WPSProfileDir
    The fully qualified path for the WebSphere Portal profile directory. The default path is /usr/IBM/WebSphere/wp_profile on AIX® systems, /opt/IBM/WebSphere/wp_profile on Linux® or Solaris systems, and C:\IBM\WebSphere\wp_profile on Windows® systems.
  • WASDir The fully qualified path for the WebSphere Application Server root directory; required on AIX, Linux, and Solaris systems only. The default root directory path is/usr/IBM/WebSphere/AppServer on AIX systems and /opt/IBM/WebSphere/AppServer on Linux or Solaris systems.
  • WASUser
    The user name for the WebSphere Application Server administrative user for this installation of WebSphere Portal; required only if global security is enabled in WebSphere Application Server.
  • WASPassword
    The password for the administrative user, if specified.
  • WPSDir
    The fully qualified path for the WebSphere Portal installation directory.
  • WPSUser
    The user name for the WebSphere Portal administrative user.
  • WPSPassword
    The password for the specified WebSphere Portal administrative user.
  • WPSHost
    The WebSphere Portal server host name and port number.
  • InstallClassic
    If you run the wp61_install script, specify this option to install the portlet for classic search collections in addition to the portlet for search collections.
  • IntegrateClassic
    If you run the wp61_install script, and you specify the InstallClassic parameter, specify this parameter if you want to integrate the portlet for classic search collections with the WebSphere Portal Search bar and deploy the portlet for classic search collections as the default search page.

Step 2: Configure the following settings to set up the new portlet or portlets:

  1. Log in to WebSphere Portal with the Portal administrator ID and password.
  2. Click Administration in the lower left corner.
  3. Click Portlet Management in the navigation area to the left, and then click Portlets.
  4. Change the Search by option to Title contains.
  5. Enter the appropriate portlet title in the Search field and then click the Search button:
    • If you deployed the portlet for search collections, enter Search portlet for search collections. (actually its called: “Search portlet for enterprise search” – note that it has no unique name, do not give it one)
    • If you deployed the portlet for classic search collections, enter Search portlet for classic search collections.
  6. After new icons are displayed to the right, click the wrench icon to configure the portlet.
  7. In the list of portlet parameters, modify the following parameters:
    • hostname
      Specify the fully qualified host name of the OmniFind Enterprise Edition search server.
    • port
      Specify the port number used by the OmniFind Enterprise Edition search server. The default value is 8394.
    • username
      The user name for the OmniFind Enterprise Edition administrative user; required only if the embedded application server login is enabled in OmniFind Enterprise Edition.
    • password
      The password for the administrative user, if specified.
    • protocol
      Specify the protocol used for communication between WebSphere Portal and the search server. The default is HTTP. If you use SSL, specify HTTPS.
    • trustStore
      If you use SSL, specify the fully qualified path (with the file name) for the SSL certificate store.
    • trustPassword
      If you use SSL, specify the password for the specified trustStore file.
    • ssoCookieName
      Specify the name of the cookie that contains the single sign-on (SSO) token string. The default value is LtpaToken.
    • proxyHost
      If a proxy server is required to access the search server, specify the fully qualified host name of a proxy server.
    • proxyPort
      If you specified a proxy server, specify the port number for the proxy server.
    • proxyUser
      If the proxy server requires basic authentication, specify a user name to use to log in to the proxy server.
    • proxyPassword
      If you specified a user name for the proxy server, specify the corresponding password.
  8. Click OK to save your changes.
     
 
 

Whitney Hess: Design Principles — The Philosophy of UX

02 May

The second speaker at this mornings An Event Apart in Boston is Whitney Hess. Here goes with the liveblogging…

Whitney’s talk is about design principles. As a consultant, she spends a lot of time talking about UX and inevitably, the talk turns to deliverables and process but really we should be establishing a philosophy about how to treat people, in the same way that visual design is about establishing a philosophy about how make an impact. Visual design has principles to achieve that: contrast, emphasis, balance, proportion, rhythm, movement, texture, harmony and unity.

Why have these principles? It’s about establishing a basis for your design decisions, leading to consistency. It’s about having a shared vision and they allow for an objective evaluation of the outcome.

But good design doesn’t necessarily equate to a good experience. The Apple G4 Cube was beautifully designed but it was limited in where and how it could be used.

Good design can equal good experience. That’s why Whitney does what she does. But she needs our help. She’s going to propose a set of design principles that she feels are universally applicable.

  1. Stay out of people’s way. The Tumblr homepage does this. You can find out more about Tumblr further down the page, but it doesn’t assume that’s what you want to have thrust in your face. Instead the primary content is all about getting started with Tumblr straight away.
  2. Create a hierarchy that matches people’s needs. This is about prioritisation. Mint.com uses different font sizes to match the hierarchy of importance on its “ways to save” page. Give the most crucial elements the greatest prominence. Use hierarchy to help people process information.
  3. Limit distractions. Don’t put pregnancy test kits next to condoms. On the web, Wanderfly does this right: one single path, completely self-contained. Multi-tasking is a myth. Let people focus on one task. Design for consecutive tasks, not concurrent.
  4. Provide strong information scent. Quora does a great job at this with its suggested search options. It’s actively helping you choose the right one. People don’t like to guess haphazardly, they like to follow their nose.
  5. Provide signposts and cues. Labelling is important. The Neiman Marcus e-commerce site does this right. It’s always clear where you are: the navigation is highlighted. You’d think that in 2011 this would be standard but you’d be surprised. Never let people get lost, especially on the web where there’s a limitless number of paths. Show people where they came from and where they’re going.
  6. Provide context. A sign that says “Back in 30 minutes” isn’t helpful if you’re in a hurry—you don’t know when the sign was put up. On the web, AirBnB provides everything you need to know on a listing page, all in one place. It’s self-contained and everything is communicated up-front.
  7. Use constraints appropriately. Preventing error is a lot better than recovering from it. If you know there are restrictions ahead of time, stop people from going down that route in the first place.
  8. Make actions reversible. (illustrated with a misspelled Glee tattoo) Remember The Milk provides an “undo?” link with almost every action. There’s no such thing as perfect design; people will make errors, so you should have a contingency plan. Undo is probably the most powerful control you can provide to people.
  9. Provide feedback. How do you know when you’re asthma inhaler is empty? You don’t. You won’t find out until the worst moment. On the web, loading indicators provide useful feedback. Tell people that a task is underway. Design is a conversation, not a monologue.
  10. Make a good first impression. Vimeo has one of the best first-time user experiences: “Welcome. You’re new, aren’t you?” Establish the rules, set expectations about the relationship you’re about to initiate on your site.

The basis for all of these principles are Aristotle’s modes of persuasion: logos, ethos and pathos—the rhetorical triangle.

Are universal principles enough? Probably not. Every company is different. Some companies publicly share their principles. Take Google’s “Ten Principles That Contribute to a Googley User Experience” as an example, or Facebook’s design principle …or Windows design principles for a good laugh. Look beyond the tech world too, like Charles and Ray Eames or Burning Man’s design principles.

So what are your company’s principles? Without principles, we don’t know what we’re trying to achieve. Here are some guiding ideas:

  1. Research available principles from elsewhere.
  2. Gather, list and print out the business goals and user needs.
  3. Brainstorm with key collaborators.
  4. Narrow down to no more than 10, preferably 7.
  5. Make sure they don’t overlap.
  6. Make them peppy.

Use the design principles at kickoff meetings, when your prioritising features, brainstorming sessions, design critiques, stakeholder presentations, resolving conflict, postmortems and web metric analysis: evaluating the success of the feature or product.

Remember, user experience is the establishment of a philosophy of how to treat people. Help people make their lives better.


Tagged with

 
 

Custom Scrollbars in WebKit

02 May

Way back in the day, you could customize scrollbars in IE (5.5) with non-standard CSS properties like scrollbar-base-color which you would use on the element that scrolls (like the <body>) and do totally rad things. IE dropped that.

These days, customizing scrollbars is back, but it's WebKit this time. It's a bit better now, because the properties are vendor-prefixed (e.g. ::-webkit-scrollbar) and use the "Shadow DOM". This has been around for a couple of years. David Hyatt blogged it in early 2009 and put together an example page of just about every combination of scrollbar possibilities you could ever want.

The Goods

The Different Pieces

These are the pseudo elements themselves. The actual parts of the scrollbars.

::-webkit-scrollbar              { /* 1 */ }
::-webkit-scrollbar-button       { /* 2 */ }
::-webkit-scrollbar-track        { /* 3 */ }
::-webkit-scrollbar-track-piece  { /* 4 */ }
::-webkit-scrollbar-thumb        { /* 5 */ }
::-webkit-scrollbar-corner       { /* 6 */ }
::-webkit-resizer                { /* 7 */ }

The Different States

These are the pseudo class selectors. They allow for more specific selection of the parts, like when the scrollbar is in different states.

:horizontal
:vertical
:decrement
:increment
:start
:end
:double-button
:single-button
:no-button
:corner-present
:window-inactive

I'm going to steal this whole section from David's blog post on the WebKit blog because it explains each part well:

:horizontal – The horizontal pseudo-class applies to any scrollbar pieces that have a horizontal orientation.

:vertical – The vertical pseudo-class applies to any scrollbar pieces that have a vertical orientation.

:decrement – The decrement pseudo-class applies to buttons and track pieces. It indicates whether or not the button or track piece will decrement the view’s position when used (e.g., up on a vertical scrollbar, left on a horizontal scrollbar).

:increment – The increment pseudo-class applies to buttons and track pieces. It indicates whether or not a button or track piece will increment the view’s position when used (e.g., down on a vertical scrollbar, right on a horizontal scrollbar).

:start – The start pseudo-class applies to buttons and track pieces. It indicates whether the object is placed before the thumb.

:end – The end pseudo-class applies to buttons and track pieces. It indicates whether the object is placed after the thumb.

:double-button – The double-button pseudo-class applies to buttons and track pieces. It is used to detect whether a button is part of a pair of buttons that are together at the same end of a scrollbar. For track pieces it indicates whether the track piece abuts a pair of buttons.

:single-button – The single-button pseudo-class applies to buttons and track pieces. It is used to detect whether a button is by itself at the end of a scrollbar. For track pieces it indicates whether the track piece abuts a singleton button.

:no-button – Applies to track pieces and indicates whether or not the track piece runs to the edge of the scrollbar, i.e., there is no button at that end of the track.

:corner-present – Applies to all scrollbar pieces and indicates whether or not a scrollbar corner is present.

:window-inactive – Applies to all scrollbar pieces and indicates whether or not the window containing the scrollbar is currently active. (In recent nightlies, this pseudo-class now applies to ::selection as well. We plan to extend it to work with any content and to propose it as a new standard pseudo-class.)

All together now

These pseudo elements and pseudo class selectors work together. Here are some random examples:

::-webkit-scrollbar-track-piece:start {
   /* Select the top half (or left half) or scrollbar track individually */
}

::-webkit-scrollbar-thumb:window-inactive {
   /* Select the thumb when the browser window isn't in focus */
}

::-webkit-scrollbar-button:horizontal:decrement:hover {
   /* Select the down or left scroll button when it's being hovered by the mouse */
}

Very Simple Example

To make a really simple custom scrollbar we could do this:

::-webkit-scrollbar {
    width: 12px;
}

::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    border-radius: 10px;
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
}

In which we'd get this on a simple div with vertically overflowing text:

In The Wild

Check out the very subtle and nice scrollbars on Tim Van Damme's blog Maxvoltar:

The particularly nice bit here is that the scrollbar is on the body element, yet the scrollbar isn't stuck to the top, bottom, or right edge of the browser window as scroll bars normally are. I made a test page with copy-and-pasteable code to achieve that a similar effect:

View Demo

On Forrst, they use custom scollbars on code snippets which are also pretty nice. They are less visually intense and so don't fight as much with the code highlighting.

Related


Advertise here with BSA

 
 

The Hot/Crazy Solid State Drive Scale

02 May

As an early advocate of solid state hard drives …

… I feel ethically and morally obligated to let you in on a dirty little secret I've discovered in the last two years of full time SSD ownership. Solid state hard drives fail. A lot. And not just any fail. I'm talking about catastrophic, oh-my-God-what-just-happened-to-all-my-data instant gigafail. It's not pretty.

I bought a set of three Crucial 128 GB SSDs in October 2009 for the original two members of the Stack Overflow team plus myself. As of last month, two out of three of those had failed. And just the other day I was chatting with Joel on the podcast (yep, it's back), and he casually mentioned to me that the Intel SSD in his Thinkpad, which was purchased roughly around the same time as ours, had also failed.

Portman Wills, friend of the company and generally awesome guy, has a far scarier tale to tell. He got infected with the SSD religion based on my original 2009 blog post, and he went all in. He purchased eight SSDs over the last two years … and all of them failed. The tale of the tape is frankly a little terrifying:

  • Super Talent 32 GB SSD, failed after 137 days
  • OCZ Vertex 1 250 GB SSD, failed after 512 days
  • G.Skill 64 GB SSD, failed after 251 days
  • G.Skill 64 GB SSD, failed after 276 days
  • Crucial 64 GB SSD, failed after 350 days
  • OCZ Agility 60 GB SSD, failed after 72 days
  • Intel X25-M 80 GB SSD, failed after 15 days
  • Intel X25-M 80 GB SSD, failed after 206 days

You might think after this I'd be swearing off SSDs as unstable, unreliable technology. Particularly since I am the world's foremost expert on backups.

Well, you'd be wrong. I just went out and bought myself a hot new OCZ Vertex 3 SSD, the clear winner of the latest generation of SSDs to arrive this year. Storage Review calls it the fastest SATA SSD we've seen.

Beta firmware or not though, the Vertex 3 is a scorcher. We'll get into the details later in the review, but our numbers show it as clearly the fastest SATA SSD to hit our bench.

ocz-vertex-3

While that shouldn't be entirely surprising, it's not just faster like, "Woo, it edged out the prior generation SF-1200 SSDs, yeah!" It's faster like, "Holy @&#% that's fast," boasting 69% faster results in some of our real-world tests.

Solid state hard drives are so freaking amazing performance wise, and the experience you will have with them is so transformative, that I don't even care if they fail every 12 months on average! I can't imagine using a computer without a SSD any more; it'd be like going back to dial-up internet or 13" CRTs or single button mice. Over my dead body, man!

It may seem irrational, but … well, I believe the phenomenon was explained best on the television show How I Met Your Mother by Barney Stinson, a character played brilliantly by geek favorite Neil Patrick Harris:

Barney: There's no way she's above the line on the 'hot/crazy' scale.

Ted: She's not even on the 'hot/crazy' scale; she's just hot.

Robin: Wait, 'hot/crazy' scale?

Barney: Let me illustrate!

The-hot-crazy-scale1

Barney: A girl is allowed to be crazy as long as she is equally hot. Thus, if she's this crazy, she has to be this hot. You want the girl to be above this line. Also known as the 'Vickie Mendoza Diagonal'. This girl I dated. She played jump rope with that line. She'd shave her head, then lose 10 pounds. She'd stab me with a fork, then get a boob job. [pause] I should give her a call.

Thing is, SSDs are so scorching hot that I'm willing to put up with their craziness. Consider that just in the last two years, their performance has doubled. Doubled! And the latest, fastest SSDs can even saturate existing SATA interfaces; they need brand new 6 Gbps interfaces to fully strut their stuff. No CPU or memory upgrade can come close to touching that kind of real world performance increase.

Just make sure you have a good backup plan if you're running on a SSD. I do hope they iron out the reliability kinks in the next 2 generations … but I've spent the last two months checking out the hot/crazy solid state drive scale in excruciating detail, and trust me, you want one of these new Vertex 3 SSDs right now.