RSS
 

Archive for the ‘Google Reader’ Category

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.

 
 

I Work Because I Love This Shit | The Donut Project

29 Apr

via http://www.thedonutproject.com/wallpapers/i-work-because-i-love-this-shit/

 
 

25 Abandoned Soviet Monuments that look like they’re from the Future | Crack Two

29 Apr

via http://www.cracktwo.com/2011/04/25-abandoned-soviet-monuments-that-look.html

 
 

Allow your Clients to Update their Websites on the Go

29 Apr

Advertise here

Today, we’re going to learn how to set up a website that can be easily edited via your iPhone and the Pagelime mobile app. If you’re unfamiliar with Pagelime, it’s an incredibly easy-to-use CMS that makes the process of editing a website as easy as possible.


Pagelime Basics

Pagelime is unique in that it allows you to design and code your website in plain HTML first, and add the Pagelime editable CSS tags as the last step in the process. Once your site is finished, you can go through the site and add “class=cms-editable” and a unique ID to any elements in your HTML that you want to be editable. Pagelime takes care of the rest.


An Example Situation

For this article, I’m you…and you are perhaps a web designer that makes websites for local businesses, law firms, restaurants, etc. So I make a lot of well designed 6-7 page brochure sites.

So I was pitching a restaurant for their web business, and I downloaded a lovely template from ThemeForest with the amazingly descriptive title of “Restaurant Website 01″. It just so happened to have everything our client was looking for.

Pagelime intro

I’ve decided to use Pagelime because my client doesn’t make many drastic changes, but when he does (let’s call him Chef Tony) he wants to be able to do them himself. Let’s say that I was competing with a few other developers for the contract, and I sold Tony on being able to update his recipe of the month, his employee of the month, and a daily Paella dish photo from his iPhone. Needless to say Tony was impressed. Tony is rarely impressed; so now we have to deliver on our Paella updating promises!


Digging in!

On our template’s homepage, we can see there are quite a few areas on the page that I’ll need to make editable. Since making things editable with the Pagelime mobile app is no different than with the Pagelime web app, we go about adding the editable classes to the different parts we’re interested in.

Here’s the markup for the welcome message.

<div class="headingrow">
	<h1>Welcome to our website</h1>
	<p>Lorem ipsum dolor sit…</p>
</div>

We’re going to make the p tag editable with Pagelime. Since we’re using the mobile app, we’ll also give it a descriptive title.

	<p id="welcome" class="cms-editable" title="Welcome Text">Lorem ipsum dolor sit…</p>
	

Here’s the next section:

<div class="subheadingrow">
	<h2>Employee of the month - Jenny Smith</h2>
	<img class="leftalign"src="images/home-image-sample1.gif" alt="" />
	<p>Tasty and fullfiling, … </p>
</div>

I want to make the headline, the promo image and the main content itself editable.

	<h2 id="eomtitle" class="cms-editable" title="EOM Headline">Employee of the month - Jenny Smith</h2>
	<img id="eomimg" class="leftalign cms-editable" title="EOM Image" src="images/home-image-sample1.gif" alt="" />
	<p id="eomtext" class="cms-editable" title="EOM Text">Tasty and fullfiling, … </p>
	

The Recipe of the month section mirrors the above format exactly, so we make the same changes to that block of HTML.

Finally we make the image in the upper left corner editable:

<img id="changer" class="cms-editable" title="Changing Image" src="images/changer.png" />

This doesn’t affect the site layout in any way, and only a couple moments to code. Pretty sweet so far! If we open the site in the Pagelime web app, we now see that all of our elements are editable.

Pagelime intro

Now I’ve delivered the first version of the site to Chef Tony, and he can download the Pagelime Mobile App here:

He can log in with his email and password, and he’ll see his site on the dashboard:

Pagelime intro

At this point, he has the ability to edit the site, manage images, view documents, use Google Analytics, and even make new pages and templates. For the purposes of this article, we’re only going to deal with editing the Site and Images.

Clicking on Edit Site brings you to the Select Page screen where Tony can choose the homepage for editing:

Pagelime intro

The next screen provides you with a list of the editable areas we defined earlier.

Pagelime intro

Clicking on “EOM Headline” will allow us to change the employee of the month text. Tony makes it Chef Tony, because he just so happened to cook a mean Paella today. We tap “Done,” switch to “Preview,” and can now see now the ‘employee of the month’ section has now, indeed, been updated to “Chef Tony.”

Pagelime intro

We’re now going to update the Changer Image. To do so, we’re going to use the “Edit” view. We tap the button in the subnav which brings up a preview of the website with green overlays. The overlays show you what’s editable and can be tapped to open that region – similar to the live editing in the Pagelime web app.

Pagelime intro

This gives us a preview of the image we’re changing. We now have the option of taking a live picture on the fly, choosing an image from our phone, or choosing an image stored in the Pagelime image manager. For this tutorial, I’ll take a picture of a Paella, and then use the auto-cropper tool, which allows us to proportionally scale and crop our image to match the dimensions of the editable image on the site.

Pagelime intro

We can now check the preview and see how it looks before clicking publish…

Pagelime intro

When we check the actual website…

Pagelime intro

… we see that everything has been updated — all from our phone! No real technical knowledge is needed, and you have an awesome bit of client candy to help upsell your clients and make more money. (We won’t tell Tony he forgot to update his Employee of the Month Photo.)

So there you have it: a website integrated with a CMS with the added benefit of iPhone – on the fly – updating! Go make a glass of Limeade, enjoy the spring air, and the smell of all the extra green you’ll be making.

 
 

Too Hard For Science? David Brin – Raising Animals to Human Levels of Intelligence

29 Apr

If we cannot find aliens in the stars, we might create alien intelligences on Earth

 

[More]
 
 

The first sign that humans are on the verge of evolving into another species [Evolution]

28 Apr
A scientist who studies the small, silver elephantfish may have stumbled on the key to speciation, the process that allows one species to evolve into two or more. And it's all about developing new sensory perceptions. More »