Information as requested, Or not!

Did I receive Spam Mail from Keith Griggs?

I received a mail today from a gentleman wanting to start up a joint venture with me. The proposal was based around creating an SEO business (something he said that he was already very good at). So how did I respond to the mail?

I suppose I could’ve been flattered by his approach, I mean it seemed financially to not be such a bad deal (apart from the 100 quid I’d have to fork over to show my commitment of course)… but even before I started looking into the key content of the mail 2 things struck me which meant I didn’t think that this guy really wanted to start a business with me.

Firstly he didn’t address me by name… this is something that unless you’re hidden deep in a large organisation, shouldn’t be too hard to find out. Yup, this was (content aside) starting to smell of a mass mail campaign.

Second up (though I should really have spotted this first) was the email subject line “SEO Experts – Information as requested”… so there we have it… I have never asked for any information from these guys. I honestly have never understood why spammers use such subject lines. Perhaps they think that my business is so big that someone else (who I don’t talk to but knows that I’d want the information) passed a request on for me?

Either way I filed it under spam and Keith Griggs can go suck an egg and see just how well this article will rank for “Keith Griggs send me spam mail”. I’ll check back in a few days to see if google index me for that.

I have also tweeted Keith Griggs to ask him to not send me spam… at the time of writing he hadn’t responded.

I don’t know for sure that this is spam… but to me it sure seems like it.

Posted in opinion, technology | 2 Comments

The Developer’s Linux Setup

A quick foreword, this is how I’ve got my relatively new Linux setup running so please, please leave comments to let me know what I’ve overlooked.

As someone who flits between different computers it’s nice to have a common set of tools to help me as a developer… and have a new Ubuntu setup in my home office I thought I’d document those which really help me in day to day work etc.

Development Tools

SciTE - As an all-round editor I just love SciTE (and it’s fun to say it’s name too). It’s a no-nonsense editor with a vast amount of languages supported.

Eclipse – OK, so I don’t really like eclipse but as a tool for developing for Android it does it’s job just fine.

Firefox – Yup, an excellent browser which also hosts some excellent add-ons (Firebug, Web Developer, ColorZilla)

Designer Tools

Balsamiq – For wireframing websites, web apps and mobile applications Balsamiq is pretty good.

Communication

Tweetdeck – What can I say about Tweetdeck apart from it’s a brilliant client for Twitter and Facebook.

Skype – The current Skype client on linux is a little ‘clumsy’ in my opinion and is a fair few releases behind it’s Windows counterparts. As a basic VoIP client though it’s second to none.

Utilities

Adobe Air – This cross platform runtime environment enables you to take advantage of some really super tools and applications.

Dropbox – This is just one of the dandiest apps around… brilliant cloud based storage with cross platforms clients. If you haven’t got it yet what are you waiting for… go get Dropbox now!

EvernoteEvernote is a brilliant cloud based note taking and management app

Filezilla – A few linux fans might not appreciate me mentioning GUI (s)FTP clients such as Filezilla but as an ex-Windows user having familiar tools to winSCP makes the migration much easier.

Posted in linux, opinion, technology | Tagged , , | Leave a comment

How to get Dropbox on Linux Working through a Proxy

I was recently a little stumped on getting Dropbox working on my Ubuntu 10.10 install (Maverick Meerkat) through our corporate proxy…. having got it working though I thought I’d share with you.

Dropbox Logo

In a terminal start Dropbox with the following command.

dropbox start
Starting Dropbox...
The Dropbox daemon is not installed!
Run "dropbox start -i" to install the daemon

This tells us that the Dropbox daemon needs to be installed… so run the command as suggested

dropbox start -i

This will start the installer and if you have a proxy in the way then this process will throw you an error. What you need to do is specify the proxy settings (including username and password. For some reason setting it via Gnome (System->Preferences -> Network Proxy) does not seem to work and we need to set the Environment variable http_proxy.

export http_proxy=http://username:password@proxy:8080

If you re-run the dropbox start -i command now the install should proceed as required and you’ll have a nice working install of Dropbox running. Note also that during installation it is possible to set the Proxy information that will be used by Dropbox for everyday running so there is no need to put the previously mentioned export command in your .bashrc file.



Get Dropbox
If you haven’t got Dropbox yet go grab it from here.
Posted in linux, technology | Tagged , , | Leave a comment

5 Tricks to Spice up your WordPress Blog

By adding a few lines of code or installing a plugin or two you can add some extra spice to your WordPress blog (or other WordPress powered site) and at the same time  bring a lot more value to your readers.

Wordpress LogoOf course these tips are dependant on your ability to install plugins/widgets etc and some are also only applicable to themes with certain functionality, but you should see at least one tip here that you can apply nice and easily.

1) Enhance your Sidebar

If your blog has a sidebar (and let’s face it most blogging themes proide at least one) then this gives you prime screen real estate to give extra information to your readers about you and your blog or subject matter. There are many, many plugins out there which cater for all sorts of users and content type.

As you can see on my sidebar I provide a list of events that I’m attending, giving hopefully some more context to the things that I’m interested in. This is powered by the My Lanyrd Widget and as such pulls information from my Lanyrd account.

As I’ve said, there are many sidebar widgets available… so what are you waiting for, go get some!

2) Put Widgets in your Posts

Following on from Step 1 is the perfect tip for adding extra “dynamic” content to otherwise fairly static blog posts or pages… Add your widgets to them!

All you need to do is install the Widgets on Pages plugin and then add the widgets that you want to the newly created sidebars and then place a simple shortcode in your post content and your widgets will be displayed inline. For example I’m displaying my “posts calandar” right here

    3) Shortcodes

    Shortcodes can be extremely powerful and can provide you with a quick way to add extra content/design to your posts and pages. There are many “shortcode” plugins available and a lot can be downloaded for free from WordPress.org. A simple example is the J Shortcodes plugin which among other things enables you to quickly add styled areas to your posts.

    This text is in a nice styled box using the J Shortcodes plugin

    4) Customise your Feed

    A key way to give your readers more is to improve the default RSS feed that goes out to them. This is done by adding some short code to the functions.php file (located in your WordPress theme’s directory). I add the featured image to my articles as well as a short finishing line to thanks the reader for the time and to send them to my blog.

    The options here are really only limited by your imagination, you could add links to related posts for example.

    The code to add a nice sign off is as follows;

    function feedFilter($query) {
    if ($query->is_feed) {
    add_filter('the_content', 'feedContentFilter');
    }
    return $query;
    }
    add_filter('pre_get_posts','feedFilter');
    function feedContentFilter($content) {
    $content .= '<p>Thanks for reading, check out <a href="'.
    get_bloginfo('url') .'">'. get_bloginfo('name') .
    '</a> for more from Todd Halfpenny</p>';
    return $content;
    }

    5) Make it Device Ready

    With every day that goes by there are more and more Internet-ready devices on the market and these come in all sorts of sizes. And it’s with this in mind that having your blog ready to display optimally on this wide range of fixed and mobile devices you should really start thinking about making your blog “responsive”… or at least mobile phone friendly.

    There are various free and paid for ways of getting your site to work well for readers who aren’t just using their PC at home or work, but I’m gonna focus on just 2 here.

    Make you Site Responsive

    This is the best place for your site to be… it means that your site is future-prrof (ish) for devices of all various sizes to access it. Implementing this generally means having to get a theme tweaked to utilise media queries and various other CSS techniques… but I have a cunning plan for those using the default TwentyTen WordPress theme… the Responsive TwentyTen plugin. This plugin (free) instantly turns your site into a responsive one and means that as the browser window size changes your site re-formats itself to display in the most optimal fashion. Don’t believe me? Just try it on this site.

    WordPress Mobile Plugins

    There are several plugin available which will server up optimised content for mobiles. A decent review of different plugins and approaches can be seen over at WP Candy.

    Get Started
    So what are you waiting for?

    Get downloading the great Widgets on Pages plugin and check out check out how to make your site look good on mobiles.

    Posted in technology, wordpress | Tagged , , | Leave a comment

    Working from Home – One man’s take on it

    In a recent survey by Skype (and a follow up report on Mashable) it seems that Working from Home is becoming more and more acceptable and in some companies is even seen as an aid to productivity. In my employment history WFH has always been part of everyday working… in fact my first ever boss was actually a full-time homeworker.

    Desk at home

    There are many reasons I like working from home and these cover a broad range of benefits and to be honest I would certainly look to have “Working from Home” factored into any future employment contracts that I may move into. I may in fact even go so far as to say I’d have to think twice about taking on employment in an organisation that didn’t provide such a benefit.

    So, what do I think the pros and cons are of working from home?

    Let’s start with the downsides

    Distractions : Yup, this can be an issue… especially when I first got the opportunity to work from home. It’s very tempting to have the TV on in the background but for me this meant my productivity plummeted. Of course there can be far bigger distractions, such as kids and spouses… these are probably harder to work around. In these latter cases it might be worth looking into Shed Working instead.

    Lack Of Contact : If you’re job doesn’t involve much interaction then its not too uncommon to go a bit crazy and get cabin fever. I find that the increasing amount of social circles such as Facebook and Twitter though have certainly helped me feel me like I’m part of a crowd even when sitting at my desk at home… all by myself.

    Drawing the line : Here I’m referring to the line between working hours and non-working hours. With work only be a room away it’s easy to start earlier and finish later… it can be tough sometimes to get out of the “work” mindset when you’re at home. I have heard that some home-workers actually dress for work and wear shoes during working hours. And others even leave the house and walk around the block.

    But on the positive

    Fewer Distractions : OK, so I listed this above as a con but if you’ve mastered to control the negative distractions then actually working from home can provide some much sought after “quiet time”. I find this most desirable when I’ve got some work on that requires me to get my head down and just be productive. Imagine the last time you had to do something which required a fairly high level of concentration but all you could here was Jane and “that guy from marketing” chattering away about which was better, Zizzi’s on Pizza Express… or if it’s not them it’s a constant queue of people at your desk… your work is just never gone get done.

    Delivery Men : Nope, I don’t want to go down that route you dirty minded lot! What I’m referring to is the freedom to be at home when you know that you’ve got a delivery coming or when the boilers being serviced. Being able to be around for these kinds of events is truly a benefit. In fact the plus-side to be able to be geographically at home stretches to many scenarios.

    Your Own Coffee : Yes, this really is a big deal. I get to drink my favourite coffee… in my favourite mug… and perhaps I’ll even accompany it with a hot cross bun.

    The Commute : Speaks for itself really.

    So in summary

    I love it… in fact I love the ability to work from home just as much as the actual working from home.

    Posted in opinion | Tagged , | Leave a comment

    2011 Goals Update – Quarter 1

    It’s been 3 months since I laid down the goals for 2011 and as such I thought I’d give a quick update on the progress (or lack of).

    • Complete work on our house – slow progress on this one… seems that trades people can be very reluctant to turn up when they say they will. I mean, WHAT?!? Do they not want our money?
    • Give Blood – no progress… I’m ashamed.
    • Slight weight loss – I didn’t expect much following overdoing it at Christmas and the New Year. Currently still hovering around the same weight as the start of December
    • Take up drawing – Finally some progress… I purchased a manga book and have been doodling from it.

    • Release a WordPress theme – I really tried hard to make headway here… I even had a theme in mind, the Responsive TwentyTen one I had made as a child theme. Sadly the WordPress.org theme repository doesn’t take child themes (at the time of writing) so I just recreated the base TwentyTen theme with an additional CSS file to add the responsiveness. Twice this was rejected by the repository moderators. Not one to give up though I found a new way to skin the cat and released the Responsive TwentyTen plugin which basically enables a child theme without actually being a theme. So, this is some progress though not strictly what I was after.
    • Create another Android App – More success! Based on the Asssist application which is an Android client for Dribbble I released the Asssist Widget. If you’re an Android users and fan of design then I suggest you go and check them out. Asssist App + Asssist Widget
    • Get listed in the next Web Designers’ Ideas book – Lord knows how this is going… poorly I would think from the small amount of web work I’ve been doing.
    • Get drafted to Dribbble – No progress on this one either. I have been updating my 3 Pointers page though with new work in the hope that this will aid the cause. On a fairly similar note though I have been invited onto Forrst, which runs along the same lines as Dribbble but also includes more for the developer-types… perhaps a better suiting for me? You can view my Forrst profile here.

    So, there we are… a real mixed bag of “failure”, “mixed fortune” and “success”… couldn’t really ask for more I say.

    Posted in Uncategorized | Tagged , , | Leave a comment

    Goals for 2011

    Inspired by a few folk around the web I’ve decided to put together a post outlining some of the goals I have for 2011. My thinking was to list here some personal and non-personal goals I’d like to complete and as such set myself up for fall if I fail… hopefully meaning I’ll have more motivation to complete them.

    • Complete work on our house – I’d like for us to complete our intial phase of improvements to our house, this includes replacing all the internal doors, replace all the carpet, fit the new (enlarged) loft hatch, insulate and board the loft and finish making good the works we’ve already started in the kitchen.
    • Give blood – This has been on my long-term list for some years now but I keep chickening out… that has to stop,
    • Slight weight loss – I’d like to get down to around 11 stone, this year I dropped 2 stone but feel a slight further drop would be good.
    • Take up drawing – This is a little vague… I suppose I just want to improve my drawing/illustrating. Perhaps I’ll go on a course or 2… perhaps I’ll just practice more.
    • Release a WordPress theme – Would be nice to have a fully developed theme released into the WordPress theme directory. I have built many themes for projects but all have been bespoke so far.
    • Create another Android App – Following the release (and subsequent lessons learnt) from the development and release of Asssist I’d like to take on a new Android project. I’m still at a loss in terms of what the project could be so please let me know if you have any ideas.
    • Get listsed in the next Web Designer’s Ideas Book – On the face of it this seems a tad vain, and perhaps it is. The core idea behind this is to keep pushing myself to create sites which have that extra punch. To be inspired yourself check out the either volume of the Web Designer’s Ideas Book
    • Get Drafted to DribbbleDribbble is a “show and tell” for designers and I’d just love to be invited into the community… especially as I’ve developed the Android client for the site (Asssist). At present the membership of the site is by invite only. My 1st step to getting drafted is my recently published 3 Pointers page which I’ll keep updated with my latest design snippets which I hope I can share and impress with.
    Posted in android, design, technology, wordpress | 3 Comments

    WordPress Ribbon Menu with CSS


    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3753

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3753

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3761

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3761

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3764

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3764

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2026

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2026

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2398

    Warning: implode() [function.implode]: Argument must be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3351

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3374

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3374

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3415

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3467

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3467

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3612

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3612

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3753

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3753

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3761

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3761

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3764

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3764

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2026

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2026

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2398

    Warning: implode() [function.implode]: Argument must be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3351

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3374

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3374

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3415

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3467

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3467

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3612

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3612

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3753

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3753

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3761

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3761

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3764

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3764

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2026

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2026

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2398

    Warning: implode() [function.implode]: Argument must be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3351

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3374

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3374

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3415

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3467

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3467

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3612

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3612

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3753

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3753

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3761

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3761

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3764

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3764

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2026

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2026

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2398

    Warning: implode() [function.implode]: Argument must be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3351

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3374

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3374

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3415

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3467

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3467

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3612

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3612

    For a recent project I was asked to replace a Flash site with a CSS/HTML version which was to match the existing look as closely as possible. This was essentially straight forward apart from the menu that was needed. The menu had a ‘wrapped ribbon’ affect on the currently visited item.

    Flash Ribbon menu

    Flash Ribbon menu

    What I’m going to do here is run you through how I replicated this in CSS/HTML on a WordPress powered site. The finshed menu should look like the following;

    CSS WordPress Ribbon Menu

    CSS WordPress Ribbon Menu

    The approach I took was to use the built in wp_nav_menu hook in WordPress to display the menu (which gives a lot of control) but to pass in an extra parameter to the call to define an extra div with a class defined which would be output before the link text.

    wp_nav_menu( array( 'container_class' =&gt; 'menu-header','theme_location' =&gt; 'primary','link_before' =&gt; '&lt;div class="ribbon"&gt;&lt;/div&gt;') );

    With some fairly standard CSS (all source can be found below) I now had a menu which looked like the following;

    CSS Ribbon Menu Work in progress

    The trick now was create the actual wrapped ribbon affect… and to do this I gave the selected item negative left margin

    margin-left: -20px;

    CSS Ribbon menu work in progress

    The next step was to creat an image to make it look like the ribbon wrapped back around the menu. This is simply a triangle image with a radial gradient along it’s angled edge to give a feel of depth. For my menu the image I used was this one.

    I then assigned this image as a background to the div element we added earlier in our wp_nav_menu call for the selected menu item.

    #access ul li.current_page_item .ribbon {
    float:left;
    background:url(../images/ribbon_triangle_02.png)  no-repeat;
    position:relative;
    top: 38px;
    left: -11px;
    width: 20px;
    height: 20px;
    }

    And there you have it… our finished article

    CSS WordPress Ribbon Menu

    CSS WordPress Ribbon Menu

    #access .menu-header,
    div.menu {
    	font-size: 13px;
    	margin-left: 0px;
    	width: 100%;
    }
    #access .menu-header ul,
    div.menu ul {
    	margin: 0;
    }
    #access a {
    	color: #fff;
        background: #333;
        background-image: -moz-linear-gradient(-65deg, rgba(51, 51, 51, 1), rgba(51, 51, 51, 0.6)20%, rgba(0, 0, 0, 0.8) );
      background-image: -webkit-gradient(linear, left top, right bottom, from(rgba(51, 51, 51, 1)), to(rgba(0, 0, 0, 0.8)), color-stop(20%, rgba(51, 51, 51, 0.6)));
    	display: block;
    	line-height: 38px;
    	padding: 0 10px;
    	text-decoration: none;
        border-bottom: 1px solid #000;
    }
    #access li:hover > a,
    #access ul ul :hover > a {
    	background: #ccc;
        background-image: -moz-linear-gradient(-65deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.4)30%, rgba(0, 0, 0, 0.6) );
      background-image: -webkit-gradient(linear, left top, right bottom, from(rgba(0,0,0,0)), to(rgba(0, 0, 0, 0.6)), color-stop(30%, rgba(0,0,0,0.4)));
    	color: #000;
        border-bottom: 1px solid #000;
    }
    #access ul li.current_page_item .ribbon {
      float:left;
      background:url(../images/ribbon_triangle_02.png)  no-repeat;
      position:relative;
      top: 38px;
      left: -11px;
      width: 20px;
      height: 20px;
    }
     
    #access ul li.current_page_item > a,
    #access ul li.current-menu-ancestor > a,
    #access ul li.current-menu-item > a,
    #access ul li.current-menu-parent > a {
    	color: #444;
        background: #15c692;
        background-image: -moz-linear-gradient(-65deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2)50%, rgba(0, 0, 0, 0.3) );
      background-image: -webkit-gradient(linear, left top, right bottom, from(rgba(0,0,0,0)), to(rgba(0, 0, 0, 0.3)), color-stop(50%, rgba(0,0,0,0.2)));
        border-bottom: 1px solid #000;
        margin-left: -20px;
    }
    * html #access ul li.current_page_item a,
    * html #access ul li.current-menu-ancestor a,
    * html #access ul li.current-menu-item a,
    * html #access ul li.current-menu-parent a,
    * html #access ul li a:hover {
    	color: #444;
        border-bottom: 1px solid #000;
        background: #15c692;
        background-image: -moz-linear-gradient(-65deg, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.3)30%, rgba(19, 185, 136, 1) );
    }
    Posted in design, technology, wordpress | Leave a comment

    Android – Getting apps to appear on the market


    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3753

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3753

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3761

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3761

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3764

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3764

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2026

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2026

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2398

    Warning: implode() [function.implode]: Argument must be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3351

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3374

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3374

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3415

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3467

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3467

    Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3612

    Warning: Invalid argument supplied for foreach() in /home/gingerb/public_html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3612

    When I first started working on Asssist for Gingerbread Design we all knew that we wanted the app to be available across as many devices as possible. We wanted to cover devices with smaller screens and lower densities such as the HTC Wildfire as well as more advanced devices. Little did I know that being able to do this would take so much searching and trial and error.

    And even after trying the app out the on the Android emulator with it’s settings to match the Wildfire (which seemed to work OK) when we came to launch the device in the Google Market it seemed that the device wasn’t being displayed to all users.

    We were told our app didn't appear on the market

    We were told our app didn't appear on the market

    Then, after weeks of searching I came across a little gem of info (sorry can’t remember where)… all you have to do is include the following in your project’s AndroidManifest.xml file.

    <supports-screens
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:anyDensity="true" />

    This seemed to work for me and I hope it does for you too.

    Posted in android, technology | Tagged , , | Leave a comment

    Android emulator not installing apps – a solution

    During my revisit to app building for the Android platform I started to notice that the emulator (when using Eclipse) was a bit hit and miss when it came to loading the freshly compiled applications onto it. After much surfing on the web I had found that some folk had seen partial succes when killing the adb server. I played with this and I too had some partial success. Then after much trial and error I struck upon a solution that works everytime… it’s not pretty but it does do the job.

    The Solution – Installing apps on the emulator

    So what I do is this;

    1. Start eclipse
    2. Start the emulator… let it get to the point where it is fully loaded (i.e. at the home screen)
    3. From the command prompt kill the adb server with the command adb kill-server. This adb command is in my C:Program File/Android/app-inventor-extras folder on my windows setup (your may be different)
    4. The above command will cause eclipse to try 11 times to re-initialise the emuulator link. While this is happening (and after) I click the run button… I do this every second until the output in the console tells me that my app is being installed.
    5. Voila!

    And that’s it… like I said it’s not pretty but it does mean that my apps install onto my emulator. Note this only needs to be done once, perhaps to set up the link between eclipse and the adb.

    Posted in android, technology | Tagged , , , | 2 Comments