Archive for the 'Mozilla' Category

Another minor usability tweak to MDC

Wednesday, July 1st, 2009

We’ve deployed our new editor plugin on the Mozilla Developer Center this afternoon. It currently doesn’t do a lot, but what it does is — at least for me — very nice.

When you open the editor on MDC, the table of contents sidebar now disappears, allowing you to use nearly the full width of your browser window for editing the article’s content. When you close the editor (either by saving your change or canceling the editor), the sidebar returns automatically.

This is especially helpful because the sidebar would often get in the way while editing tables and other wider formatted content, including code samples.

Now that Firefox 3.5 is out the door, I plan to ramp up work on back-end stuff even further, including adding more capabilities to our plugins; in addition, I’m gearing up on some organizational work, and talking with Mindtouch about implementing some scripts to help automate more administrative tasks.

Happy Firefox 3.5 release day!

Tuesday, June 30th, 2009

Firefox 3.5 was released about an hour and a half ago, and downloads are going strong. Seems like a good opportunity for me to thank everyone that contributed to the documentation for Firefox 3.5. While there are far too many people to thank them all by name (so I won’t be calling anyone out by name today, to avoid leaving anyone out), I’ll call out a few specific groups of people:

  • Thanks to all the developers that made Firefox 3.5 all kinds of awesome. It’s because of you that we had so much writing work to do for this release!
  • Thanks also to everyone that wrote content for the Firefox 3.5 documentation. This includes not just the folks that wrote articles on the wiki, but also people that blogged about new features and about fixed bugs, because your blog posts helped us get the documentation whipped into shape.
  • I’d also like to thank people that helped tag bugs with the “dev-doc-needed” keyword so that we’d know what needed to be written about, as well as folks that filed bugs against the documentation.
  • Last, but not least, I’d like to thank everyone that offered feedback on the documentation, as well as the folks that were so helpful when I had questions about the technical details.

The quality of our documentation rests largely in the hands of our engineers and contributors; there’s far too much for me to get it all right by myself, so thanks to everyone for your help!

For the next little while, while the plan for the next release is still coalescing, I’ll be working mostly on back-end stuff, such as our MindTouch wiki add-ons, as well as organization clean-up work. My goal for the next few months is to make the Mozilla Developer Center easier to use, as well as easier to contribute to.

I’d like to remind everyone to start tagging relevant bugs for Firefox.next as dev-doc-needed! It’s never too early; we’ve already got some docs for Gecko 1.9.2 on MDC!

Mindtouch “Minneopa” planning and Mozilla

Monday, June 22nd, 2009

For obvious reasons, I keep a close eye on MindTouch’s development plans, and have been watching their planning work on the “Minneopa” release tentatively scheduled to ship in late July. This is a pretty short turnaround from the “Lyons” release that shipped just a couple of months ago, which is the one we’re currently using.

Judging from the sorts of things they’re working on as the primary features for this release, I suspect they’re doing this work for one or more specific corporate clients (other than Mozilla), since of the major work they’re doing, none of it appears to correspond to anything on our wish list. One or two of these items do look like they might be potentially interesting, but they’re not well specced out yet, so we’ll see.

However, looking in their bug database, we can find an assortment of bugs I reported that are tentatively planned to be investigated — and hopefully fixed — in the Minneopa release. Being targeted for the upcoming release is of course not a guarantee, but it’s a hopeful sign.

The things from my wish list that are tentatively slated to be worked on for Minneopa:

  • The side-by-side diff view, which currently lists the entire article side by side, which limits its usefulness, will hopefully only show the blocks containing changes, instead of the entire content.
  • The link editor dialog will hopefully get some love; it needs some!
  • Currently, if the wiki encounters timeouts while communicating with the database, it can become unreliable, even after the database returns to normal. Hopefully progress will be made on fixing this; if nothing else, they plan to complete some refactoring of the database code that should make it more reliable going forward. With luck, just doing that will help with this problem.

There are several other items that I’ve filed tickets for that they plan to look at for the Minneopa release, although they’re not on my major concerns list.

At this point, these are:

  • Currently, if the login cookie disappears while you’re editing, trying to save instead loses your work.
  • We’d like to be able to add customized descriptive text to any Special:Tags page, so we can use them as category pages that offer introductory text.
  • Special:Tags pages currently show page titles with spaces even if the titles have been overridden to use underscores.
  • The edit summary entry field is currently very narrow; they will hopefully widen it for us.
  • I’ve requested the ability to disallow the invention of new tags in the tag editing feature for pages; instead, tags will hopefully be created using a separate interface accessible to certain trusted users, and when tagging articles, users will only be allowed to use pre-defined tags. This will hopefully improve the validity and usefulness of tags by ensuring that tags are used more consistently.
  • Currently, links to talk pages that have no content are rendered as normal links, instead of “no content” links. This means people will follow the links hoping to learn more, only to be disappointed.
  • The feature that lets you recover your password currently requires you to type spaces instead of underscores, even if you used underscores when creating your username. This should be fixed.
  • We requested an option to allow image and file management for articles to be handled on a separate page from the article page itself, so that you don’t have the “Images” and “Files” sections tacked at the bottom of articles. This would make the interface for people not editing the content cleaner, but I’m no longer certain we’d use this. I’d like opinions!

Hopefully more things will make their way in, but given the short schedule for this release, I don’t expect miracles. With luck, once this update is out the door, they can start working on more of our big requests!

Still, just getting the improved link editor and side-by-side views will be big wins for ease-of-use for us, I think.

And, again, keep in mind that there’s no guarantee that all of these things will actually be addressed in this release! I don’t want people whining to MindTouch (or to me, actually) if anything gets cut from this short timeframe release!

A technical writer’s place in the world

Friday, June 19th, 2009

Lately I’ve been thinking more about my place in the developer relations team at Mozilla. It’s sort of an odd place for me to be, sometimes. While my work managing the Mozilla Developer Center is obviously a component of developer relations, in past organizations I’ve worked in, technical writing was actually part of the engineering group.

Developer relations

Sometimes while I’m sitting in meetings, I find myself feeling vaguely adrift, since a lot of what goes on doesn’t all that directly relate to what I’m doing on a day-to-day basis. While my work involves interacting with developers, it’s generally on a different level than most of the rest of developer relations. I’m more interested in getting down information than in what exactly people choose to do with it.

To be honest, the sort of public relations work that a lot of developer relations involves — while incredibly important — isn’t really my forte.  I’m glad we have a bunch of folks that are both good at it and enjoy it, because that’s certainly not me!

Engineering

On the other hand, attending engineering meetings can be an interesting experience for me. As a writer, I’m in the complicated position of needing to know what’s coming while avoiding knowing too much about things that are in a state of flux.

For example, let’s say a new technology is being introduced in the next version of Gecko. Great! I’ll need to write about that, of course.

The problem is this: when do I start studying up on it? If I start learning the technology too soon, I risk learning details that may change over time, requiring re-learning stuff later when the specifics change.

This happens fairly often. For that reason, I try to wait until a technology appears to be entering a relatively steady state before starting to learn details about it, let alone write about it. There’s probably nothing as frustrating as writing documentation about something only to have to redo it all because of drastic changes to an API.

However, I have to balance that with the need to have the documentation ready by the product’s ship date, and preferably by around the time it enters beta, so that developers have the material in hand when they need it.

It’s a tricky fine line to walk, but I like to think I’ve mostly done a good job of this. Our documentation for the releases of Firefox (and by extension, Gecko) that we’ve shipped since I joined Mozilla four years ago has generally been pretty good. Especially given the enormous amount of material there is to cover!

Between worlds

So basically, I sometimes feel sort of adrift between engineering and developer relations. Maybe that’s the right place to be. I don’t know. I suppose it helps to ensure I’m in touch with everyone I need to be dealing with.

But occasionally it can be slightly frustrating, too.

I’m not sure there’s anything that can be done about that. Writing developer documentation is a strange world to live in. It’s exciting and rewarding work, though, and I feel like I found my calling when I took my first technical writing job, which, ironically, I took because it was the only job I came close to qualifying for at a company I badly wanted to work for, and not because I was specifically looking to be a writer.

Hack it, baby!

Friday, June 19th, 2009

If you haven’t been following the Mozilla hacks blog, where we’re featuring 35 days worth of Firefox 3.5 improvements for web developers — including tons of awesome demos and clever tricks — you’re missing a lot of great stuff.

The stuff being shared on the hacks blog is a preview of sorts of the direction in which the Web is going. Armed with the stuff going on there, you’ll be able to do stuff that previously simply couldn’t be done without resorting to tedious and/or proprietary techniques. Now you can do wicked cool stuff using open technologies.

More tweaks to Mozilla Developer Center

Wednesday, June 17th, 2009

Today we installed a few minor tweaks to the Mozilla Developer Center web site.

First, we moved the “Page Notifications” box so that instead of being next to the page title, it’s at the top of the Table of Contents box. This fixes the problem that was causing the edit area to be annoyingly narrow.

Second, we fixed the missing resource string errors that were appearing in a couple of places.

Third, we installed a new MindTouch plugin that we developed. Currently, all this does is add some explanatory text to the new user registration page, explaining some policy information.

We also installed a new plugin for the editor used by the wiki, but it’s not currently working. Once we figure out why it doesn’t work (it works in the test VM I developed the code on), we’ll fix it and I’ll go into more detail then.

More subtle changes on MDC

Thursday, June 4th, 2009

As I continue to explore the latest changes to the Mozilla Developer Center, here are a few subtle — but useful — changes you may enjoy.

I’m hard at work to make more additions and improvements. One of these that should be landing soon is a feature that will automatically hide the table of contents sidebar while you’re editing articles. This gives you the full width of your browser window for editing, which not only gives you a broader canvas on which to write, but also presents your content more like it will appear when the article is rendered for viewing.

The code for that has been written; I’m working with IT to get it checked in and activated. We need to sort out the best way to manage it in SVN to ensure it stays up to date as we upgrade the MindTouch software in the future.

New keyboard shortcuts

Among the many keyboard shortcuts supported by the MindTouch editor, there are a couple of newly-supported ones that I find useful.

First, you can now press shift-space to insert a non-breaking space.

Second, and more useful, you can press shift-enter to exit out of the current block. For example, if you’re editing a pre block, shift-enter drops you out of the block so you can resume editing the body text.

Saving from source mode

You can now save your changes while in source editing mode. This is a big improvement; previously, if you were editing an article’s raw XHTML code, you had to switch back to the WYSIWYG view before you could save your changes. It was quite frustrating. Now it’s all better!

Paste as plain text

Next to the Cancel button in the second row of the toolbar is the new “Paste as plain text” button, which pastes the contents of your clipboard with all formatting stripped out. This makes copying and pasting from one place to another much easier. Sometimes you do want to keep all the styling and links, but often you don’t. Now you can do it either way.

Create div containers

It’s now easy to create a div block using a new popup div editor. You can choose among styles to apply to the block from a list, or use a more advanced form to build a custom block. You can also still drop into the source editor to do it if you like, of course.

More new features on MDC

Thursday, June 4th, 2009

Yesterday we applied a new skin change that exposes a couple more new features.  Today, let’s take a look at them!

Page notifications

The new Page Notifications box can be found to the right of the article title. It looks like this:

Clicking on this pops up a list of notification options:

From here, you can choose whether you want to be notified of changes for the current page or that page and all its subpages.

This should prove to be very useful — with this feature, we can start making progress toward having subject matter experts watch the site’s contents for changes to ensure the content remains accurate.  I’ll want to experiment with this a bit before I start asking people to sign up for notifications, although of course people are welcome to go for it if they like.

New tag editor

The new tag editor will hopefully help people find and apply appropriate tags to articles a little bit better. Previously, clicking the “add or edit tags” button popped up a dialog in which you would type in all the tags. Now tag editing is done inline.

Underneath the list of tags for the page is a new “Edit tags” link. Clicking that activates the new inline tag editor:

When you mouse over each tag, a button appears that lets you delete the tag from the list. Adding a new tag is as simple as typing it into the edit box and pressing the return key.  A nice touch is that the tag entry box autocompletes based on existing tags:

This helps make it easier to track down the tag or tags you want to add to the article.

When you’re done editing tags, click the “Return to view tags” link to close the tag editor.

This isn’t a perfect solution; what I actually want to eventually have is a separate interface for creating tags, so that we have a predefined list of tags, and then to only allow those tags to be used. We get a lot of people creating bogus tags, often filled with spam, and they get quite frustrating to clean up every day!

MDC gets more helpful

Monday, June 1st, 2009

I’ve just changed the Help link at the top of the Mozilla Developer Center site to link to a new article entitled “Using the Mozilla Developer Center.”

This article provides helpful tips and techniques, from “as a wiki, you can edit it yourself if you see problems” to “you can do wicked cool stuff with Lucene search queries”. It also includes a link to the previously existing, but now upgraded, “MDC editor guide,” which offers information about keyboard shortcuts, the toolbar, and more.

Hopefully these will help people learn to make better use of the Mozilla Developer Center.

Let me know what you think!

MDC upgraded to MindTouch 2009 9.02.2

Friday, May 29th, 2009

So we got the Mozilla Developer Center upgrade done last night, thanks to the awesome dudes in IT! Over the next few days, I’ll be blogging a bit about the things we gain from this upgrade, from the major stuff to the little stuff (and not necessarily in that order).

Things that need doing still

There are a few things left to do; I’ll be revamping our editor toolbar today to make the editor more convenient to use. I’ve got a better feel now for which features we use and which we don’t, so I can make a better toolbar than the one we currently have.

There are some skin changes I need to make to support new features; for example, we currently don’t support the new notification system because our skin doesn’t expose it to the user. That’s an oversight on my part; I forgot to add support for that to the skin before the upgrade, but I’ll be working on that over the next few days.

In addition, there’s a new tag editor that in theory provides a nicer interface for editing tags, but at present looks awful because we haven’t skinned it yet. I’ll be dealing with that too.

Also, some under-the-hood changes have been made to how custom string resources are stored; previously, we had to manually append our custom strings to the standard resource files every time we updated the software. Now they’re kept in separate files. We haven’t moved them into their own files yet, because we weren’t aware of this capability at the time. We’ll be doing that sometime in the next week or two, once we work through the other stuff that needs doing.

A few improvements

A much-requested improvement that we have now is that the version comparison page now shows you the two versions side-by-side, instead of intermingled and hard to read. The RSS feed still does it the old way, but this is definite progress!

Another helpful improvement is that when you’re editing, there’s now an “Edit summary” box at the bottom, where you can enter an explanation of what you’re changing and why. This is a much-requested feature that we definitely missed when we switched away from MediaWiki, and I’m thrilled to have it now!

One small but pleasant change is that, finally, when you enter edit mode, there’s no longer a spurious extra scroll bar. Instead, the edit box is scrolled along with the rest of your content using the main scroll bar on the browser window. In addition, the edit box more reliably resizes along with the content you’re editing. This will make the editing experience much more pleasant, I think.

There is now a “View page” link on Talk pages that takes you back to the main article; currently, it’s being drawn dimmed as if it’s disabled (due to a minor MindTouch bug that I’ve filed a ticket for), but the button does actually work.

I’ve also configured the table of contents that draws in the top-right corner of pages to only show the top three levels of headings; this prevents certain pages — especially interface references — from having unreasonably long tables of contents, leaving them much easier to navigate.

The RSS feed for new changes on the wiki now only shows the blocks that have changed, instead of embedding the entire article. It also calls out each individual edit, instead of lumping all edits together, leaving you to guess who made what changes.

One thing you can do — which I think you were actually able to do in the previous version, but I never mentioned before — is subscribe to RSS feeds for individual pages and subtrees of the site; click the RSS feed icon in your location bar, and the popup that appears lets you choose between the “What’s new feed” (for all changes on the wiki), the “Page and subpages changes feed” (for all changes in the subtree of the site rooted at the page you’re looking at), and the “Page changes feed” (which only covers changes to the page you’re looking at).

That’s not the same as the excellent notification system that we’ll expose soon, but it’s still a handy feature.

But wait, there’s more…

There are other changes, too, but these are the ones that come immediately to mind. I’ll go into more detail, and discuss other changes, in future blog posts over the coming days and weeks.  But this should get you started exploring the improved Mozilla Developer Center!


levitra no rx viagra bangalore buy viagra super active canada cialis online cialis compare levitra tadalafil pills cialis bangkok online viagra uk viagra without a prescription herbal viagra cartridge viagra prescription charges revatio online viagra drugs vardenafil uk sildenafil vs tadalafil cialis mastercard levitra coupons buy viagra cheap online generic viagra blue pill 25mg blue viagra cialis buy buy viagra in france buy cialis discount viagra online ordering buy vardenafil cialis 10 mg daily safe viagra online kamagra uk buy viagra in los angeles viagra over counter viagra generic cialis sales buy viagra in amsterdam cheapest viagra in canada viagra sell viagra homemade buy viagra in singapore viagra pricing buy cialis uk caverta 50mg tablet viagra pill picture online levitra female cialis viagra vietnam canada cialis viagra naturel mexico viagra tadalafil softtabs levitra no prescription apcalis gel cialis south africa tadalafil drug levitra vs. viagra canada viagra online sildenafil citrate uk purchase viagra online no prescription low cost cialis buy viagra in britain levitra tablets buy sildenafil cialis generic tadalafil cialis orders viagra card buy viagra online generic viagra reviews cialis discount viagra india pharmacy viagra samples online levitra online cheap buy cialis soft cialis sales canada cialis new zealand tadalafil in india viagra herbal generic caverta levitra online prescription viagra or levitra viagra generic names viagra safety cialis super viagra sildenafil dose viagra gels viagra cost per pill canada viagra viagra no prescription required buy apcalis revatio tablet tadalafil tablets 10mg discount online viagra cialis next day tadalafil soft ordering viagra cialis us pharmacy buy viagra pill online cialis generic online viagra hong kong viagra hangover buy levitra generic tadalafil generic buy cialis europe sildenafil 20 mg viagra cialis cheap viagra melbourne cialis promise program cailis viagra san diego buy viagra from canada viagra non prescription cheap viagra cialis viagra europe cheap generic levitra india viagra generic viagra super active 100 mg viagra france viarga cheapest viagra in uk levitra shelf life viagra length indian generic cialis online viagra sale kamagra oral gel generic cialis tadalafil levitra how long does it last viagra tablets for sale viagra espanol sildenafil india viagra online rx buy cialis generic cialis once a day revatio for ed generic cialis no prescription cialis for sale cialis purchase prescriptions viagra hamster viagra viagra new zealand generic viagra no prescription cialis no prescription canada viagra online buy order kamagra apcalis tadalafil viagra free consultation viagra counterfeit cialic cialis liquid cialis daily cost viagra online sales cheap cialis online pharmacy viagra pharmacology buy viagra in new zealand online prescription cialis sildenafil synthesis order tadalafil lovegra tablets cialis discount generic cialis tablet buy levitra without prescription cialis tablets vardenafil hcl 20 mg herbal viagra review viagra peru buy viagra in toronto cialis suppliers levitra results generic levitra india buy viagra in the uk viagra sales in india otc viagra alternative erectalis uk sildenafil tabs viagra dublin buy cheap cialis citrate vigora viagra romania cialis online shopping tadalafil price comparison cheap viagra without prescription viagra with no prescription sildenafil online cialis 50mg viagra shopping viagra retail discount viagra treatment cialis prices canada viagra by intas pharma viagra uk no prescription viagra austria cialis tablete cialis uk supplier viagra discount cheap viagra online uk kamagra sildenafil viagra how to take viagra jellies viagra fedex viagra over the counter sildenafil heart online viagra canada cialis use viagra produced in india levitra now online viagra ordering viagra pills for men apcalis plus 20 viagra females viagra competition buying viagra in australia viagra sildenafil levitra sales sildenafil uk cialis singapore generic cialis cheap woman viagra order cialis without prescription cialis how long does it last levitra buy buy cialis super active buy viagra in dublin cheapest viagra cialis package insert online generic viagra overnight viagra viagra comparison viagra buy online sildenafil powder viagra levitra comparison canadian viagra viagra online australia viagra indications china viagra free cialis pills kaufen online viagra viagra tips online viagra australia cialis viagra compared viagra canada sales viagra brands consultation online viagra viagra impotence buy levitra cheap viagra india online viagra in the water viagra italia levitra india buy viagra in uk viagra super active sildenafil cialis gels viagra jelly vardenafil hcl 10mg viagra 200mg purchase viagra viagra drug store kamagra tabs tadalafil prescription viagra mexico 20mg cialis generic viagra professional vs viagra viagra shelf life viagra manufacturer viagra in india viagra buy on line cialis over the counter viagra professional uk cheap viagra for sale cialis online pharmacy viagra indian buy viagra in italy discount retail viagra sildenafil pharmacy canada cialis generic cialis in canada sildenafil wikipedia generic viagra fast shipping cialis generic search kamagra jelly 100mg discount cialis pill cialis color viagra water levitra vs cialis vs viagra tadalafil liquid online pharmacy viagra levitra tab 20mg levitra mexico purchase levitra online buy viagra pills silagra 100mg generic viagra buy viagra online cheap female viagra 2007 viagra pill sildenafil wiki tadalafil oral jelly sildenafil medication buy viagra in korea cialis vs levitra vs viagra revatio prescribing information kamagra viagra herbal viagra pills viagra next day delivery cialis online prescription kamagra online levitra 5mg generic cialis price suhagra 50 buy viagra over the counter cialis by mail viagra coupons generic indian cialis levitra drug cialis sales uk levitra in mexico viagra soft generic viagra chicago viagra fast shipping viagra online legal viagra vs generic price viagra viagra tokyo revatio price tablet viagra cialis cheap canada kamagra australia cheap caverta online women viagra viagra products in india toronto viagra cialis bestellen buy viagra without a prescription viagra soft tab viagra calgary cialis alternative viagra prescription drug viagra prescription uk levitra faq cialis diet pill generic cialis from india viagra substitutes viagra discounts kamagra jellies cialis voucher levitra directions buy viagra ireland viagra online reviews tadalafil soft tabs buy viagra soft tabs online generic cialis soft viagra made in india revatio tabs viagra 50mg cost generic cialis compare cialis best prices viagra natural viagra replacement buy cialis online us purchase cialis buy viagra no prescription viagra cialis levitra compared viagra beograd viagra over the counter alternative generic viagra pharmacy viagra 100mg tablets viagra super active reviews natural viagra alternatives viagra buy uk cialis pharmacy levitra dosages order cialis daily vardenafil 10 mg cialis soft tabs generic tadalafil ic 351 discount cialis online cialis drug prescription viagra montreal kamagra gel purchase viagra australia herbal viagra does it work best price cialis kamagra in uk viagra how much generic viagra cialis viagra sales buy vigora levitra online viagra dubai oral sildenafil viagra overnight shipping viagra online sale buy tadalafil no prescription levitra alternatives viagra 100mg viagra ukraine free kamagra indian sildenafil viagra value card viagra for sale india generic cialis canada female viagra use cialis online pill cialis 20mg price liquid tadalafil citrate revatio coupon generic sildenafil viagra canada viagra uk cheap herbal viagra for women viagra questions cialis soft tab viagra mastercard viagra online order guide buy viagra in montreal women levitra viagra prices generic online viagra viagra no prescription needed buy viagra paypal buy generic tadalafil expired viagra tadalafil online generic sildenafil citrate tablets generic cialis soft tabs viagra uk buy viagra soft cialis better than viagra levitra experiences viagra mailing list generic viagra online uk levitra without prescription cheap generic viagra online sildenafil tablets sample viagra buy sildenafil citrate buy kamagra jelly tadalafil dosage buy viagra generic levitra over the counter viagra internet generic cialis safety sildenafil and nitrates generic levitra sildenafil price viagra for sale cialis vs viagra vs levitra viagra naturale buy levitra 20 mg cialis online rezeptfrei cialis uk buy cialis best price buy cialis online cheap cialis viagra compare buy viagra in mexico natural viagra substitute sildenafil soft viagra prescribing information indian viagra tablets buy caverta online levitra prescriptions online buy viagra professional sildenafil 50mg buy cheap kamagra cialias levitra online order levitra overnight delivery cialis 10mg price sildenafil citrate tablets viagra online safely cialis professional canada buy viagra alternative viagra doctors cialis online uk counterfeit viagra oral jelly viagra cialis ingredients drug prescription viagra viagra kaufen prescription cialis uk viagra viagra cheap online cialis online buy liquid tadalafil buy cialis in germany buy viagra india online viagra viagra pills uk fedex viagra tadalafil sample kamagra 100mg free levitra buy kamagra uk cealis viagra 100mg price vardenafil online cialis trial discount levitra levitra versus cialis tadalafil generic cialis buy viagra pill over the counter sildenafil viagra effective time buy cialis in australia sildenafil tadalafil vardenafil buy online viagra securely cheap viagra australia viagra philippines viagra jersey cialis mexico cialis online cheap cialis trial pack viagra over the counter in canada levitra free levitra in canada levitra 20 mg price cialis made in india generic viagra uk tadalafil canada cialis order cialis 20 mg drug silagra india tadalafil soft tablets 20mg viagra ssri cheap kamagra jelly generic viagra in canada kamagra wholesale sildenafil cheap cheap generic viagra uk viagra sales 2006 cheap cialis no prescription viagra price in india cheap cialis online purchase viagra 6 free samples cialis no prescription needed calis order cialis online sildenafil pulmonary levitra in india cialis pill splitting wholesale viagra cheap cialis delivery free usa viagra viagra recreational use viagra vancouver viagra information cheap viagra uk cialis tadalafil cheap viagra from india cheap viagra pills buy viagra meds online generic levitra without prescription viagra 15 mg purchase viagra without a prescription viagra paypal buy cialis without prescription buy cialis daily use cialis and viagra together viagra suppositories levitra order suhagra tablets buy viagra in australia viagra buy in uk online viagra buying buy viagra in canada viagra vs. levitra buy viagra online in the uk viagra cialis silagra tablets viagra cost in india viagra female generic viagra in india silagra brand name order levitra without prescription tadalafil sales cialis pills for sale safe viagra oral jelly sildenafil buy viagra online australia viagra best prices levitra vardenafil hcl viagra online generic free viagra samples online cialis active ingredient cialis australia cialis without a prescription kamagra next day delivery buying viagra in canada viagra professional review boots viagra price cheap cialis professional