Total Perspective Vortex - RSS Feed URL - Blog rss feeds
Home | Most popular rss | Newest feed urls | Popular search | Tags | Submit RSS URL
RSS Feed Categories
.NET
Adult
Advertising & Marketing
Africa
Americas
Art & writing
Articles & tutorials
Asia
Australia
Automobile
C/C++
CA
Cisco
Computers
Construction
Developer News
Europe
Finance
Foods & Beverages
Fun & Entertainment
Games
General
Hardware & PDA
Health
Human resources
IBM
Internet
Java
Legal
Locals
Media
Microsoft
Moreover
News & Opportunities
News4Sites
NewsIsFree
Real Estate
Science & Education
Security
Shopping
Society
Software
Sports
SQL & databases
Sun
Telecom & Wireless
Thoughts & comments
Travel
UK
US
Web development
World
 
Recommended sites
Christian Music & MP3
Publish News
News archive
Music lyrics
Free recipes
Free cheat codes
Apartment for rent
Yellow Pages Philippines Inspirational quotes
Sponsors
Total Perspective Vortex
RSS Feed URL : http://www.jroller.com/rss/pawnxing
Category : Web development
Total Views : 14
Latest entries from this feed url
Locale Testing
I posted the following question to Dr. International but I'm not sure if he'll ever answer it. So I'm coping it here just incase someone finds this and is able to provide an resonable answer.
I have a question regarding testing internationalized products. My concern is that we are all developing and testing on English versions of Windows XP and Windows 2003. We change the regional settings in the control panel but I have a nagging feeling that we are missing something. Are there peculiar idiosyncrasies between versions of windows built for specific locales? Basically, if we continue on this path should we expect to see potential major problems later on? If we want to sell our product in China should we have a dedicated testing system that is running a Chinese version of the operating system?

Where the hell have I been?

About seven months ago I had written that the company I work for was undergoing major changes by moving to a Agile development methodology. Well I've gone down that road and I'm happy to say that I'm still here but this past half year has been a terrific ride. The company with its 500+ developers has jumped into the agile process head first and are now looking back feeling that the move had been a fantastic success. Though the data is still being collected the software scheduled for release this year contains the features we wanted with the quality we where striving for and in the timeframe we had set.

Before moving to agile, and part of the reason for the move, was that it was taking longer and longer to release our software and the quality (read number of bugs) was rising and rising. Getting the software out the door before the move was riddled with unpleasent surprises. Now we have a better idea of where we are then ever before.

That's not the only changes. During the past 6 months I was acting principle engineer for a feature to be developed by my group. We embraced the Agile method, delivered the feature, I've been promoted. Recently I have been asked to join a new group within the compnay to act as a principle engineer for a high-profile change to the product.

Needless to say I'm pysched but after the move I've encountered some new unpleasent surprises. The new group is in disarray, there is not clear chain of command and the focus is lacking. The current set of employees are already showing the early signs of being burnt out and panic is evident in the air. I've made attempts just this past week to address these issues and the group has taken a step back to re-evaluate oru situation. It's a good start to resolving some of our problems. But even that said I am not terribly positive. If I could move back easily to my old group I would have to admit that I would be very tempted. But the situation here is dire but it is and we need to do the best we can. I'm hoping that I can keep my head enough above the shit to update this blog more frequently. At least post something before September ;).


The Agile Introduction

As I mentioned in my last post my company is moving torward an Agile Methodology. The primary reason for the switch from the waterfall method to an agile one was attributed to the increasingly complex software we are producing. This was incurring longer and longer release schedules and an increasing number of defects.

I for one have been looking foward to learning all I could about Agile and I welcome the change. But I understand there are going to be many growing pains along the way. And the pains have already begun. Now just because we are introducing a new methodolgoy doesn't mean we can stop operating as a revenue generating busienss. So up to this point my team has been planning the way we normally do. This is mainly because we simply did not know what to expect. It's sort of like being in limbo, you konw that there are going to be major changes coming over the horizon but you don't know exactly when or how those chagnes will manifest. So, to the best of our abilities we began to design and estimate what we where going to do for the feature we are responsible for.

Now having been to the introductionary training program the work we've done is almost useless. Our project plans and estimates can basically be trashed. The detailed document artifacts describing the designs have very limited value given the "evolutionary design" we will be practicing. But we still arn't there yet and this limbo continues. We have been given a taste of what's to come but the main course has yet to be served.

The next steps are going to be training workshops for the various roles. And while these will help answer a lot of questions they are causing their own problems. This is because not eveyone on the team has the same training schedule. For example the developers are having their training this week but the project manager is training next month. So while we are trying to get our jobs done half of us will be thinking in the Agile way while others are still doing things the same old way. This is going to cause great conflict in my opinion and a lot of time is going to be wasted. How can we take the first steps like building the stories when a major part of the customer community deson't even know they are the "Customer Community"? Our kickoff for iterative development starts in two weeks and we have a lot of work to do beforehand. Like development stories for one. How can this possibly occur with any accuracy without them?

So I'm stuck in a bad place while this chaos proceeds. The next month is most likely going to be total anarchy and will mimic on a larger scale the chaos that occured during the introductionary training. I haven't talked in detail of the traning itself but suffice to say it was left with a horrible impression of things to come in the short term. By the feel in the room and the questions asked there appeared to be a lot of doubt. In that training class we went through a comical simulation of what the agile process is. It was a laughable mess with people just lingering around with no idea of what to do. It was poorly executed to say the least.

And I'm back to the same old question. What the hell do we do now knowing we don't know what we don't know. I keep coming back to the same conclusion, proceed as best we can. We have an good idea of how we would do things using our old methodolgoy so for now we will proceed with that. I'm thinking that we can at a later point in time take what we produce and consider it as "legacy code" that needs to be refactored and integrated into the new scheme of things. I don't see any other choice given the overall deadlines for shipping.

I'll post again after the intensive developer training sessions. Hopefully things will not look so dismal then.


Agile Comes to the Workplace

There has been a lot of changes occuring at the place I work these days. What first started off as rumors and water cooler discussion has finally taken shape. Several weeks ago it became apparent that the Agile methodology was coming to my workplace. And just last week we had an offical sending off in terms of an all-hands meeting to discuss the coming changes. At that meeting we discussed the reasons for the change but not the actual change itself. This week a bunch of us are in training; or a boot camp on how we will be implementing the Agile methodology. I will try to capture this tansition from a traditional development environment to this new Agile method here so stay tuned.


Patent Confusion

Software patents are confusing. Call me stupid but I don't think I'm alone in this respect. By confusing I don't mean the whole this is my idea and you need to respect that part but rather what defines something as being intellectual property. For example the infamous patent that Microsoft has put on the todo list in IDEs. Yes I know it's old new but I'm not going to rant about that particular patent but rather use it as a reference point for discussing my angst with software patents in general and what actually defines something as being intellectual property.

So, let me try to get a handle on this. In essence the todo list patent covers the ability of placing comments into source code that are then used to generate a line item in a todo list. There is more to it but that's the heart of the matter. Now what is actually happening here? Microsoft is saying that todo lists that are driven by the code belong to their intellectual property. Is that correct? Now they are not patenting todo lists, nor source code but rather the idea that you can build and manage a todo list from source code.

Functionally what's going on? Adding text to the source code file is used to populate a control that the user can utilize. Well isn't that just about 90% of what the IDE is designed for? Why doesn't someone patent the tree explorer of source code? You know that panel that is usually on the left of right that you can use to manage your source code. You type in code the tree is automatically generated you click on an entry and you are magically whisked to the code segment you clicked on. What about annotations in code. Shouldn't the first company that came up with the idea that you can put annotations into code that are then used to generate documentation patent this idea? Shouldn't the creators of Eiffel or whoever came up with this first get on it?

What defines something as being intellectual property or not? The criteria for this eludes me and appears to be rather vague. Why doesn't Sun patent the idea of using a virtual machine to run an interpreted language to achieve software independence of the underlying hardware? If I can't use a todo list in my java IDEs then hell that whole CLR thing belongs to us.


Expand my Horizons

For the past 6 months with the exception of two weeks I have been strictly working with Java. Even beyond this for many years I have considered myself a Java guy. Well now that the worst of my current project looks to be behind me I'm thinking it's time to expand my horizons and pick up something new.

I have had an affectionate relationship with Java for many years now and will most likely continue to work with the language for years to come. And I'm not saying this because I fear that the end if near for Java. But rather that as the years progress I don't want to be that guy that has nothing else to fall onto if times change.

So the question for me is do I dive back into .Net? Should I try Ruby and play with Ruby on Rails? Or how about the little know Water project? Speaking of Water there is a user's group meeting in boston tonight. But looking at their code samples makes me hesitate. Man that is some ugly stuff but hey it might be quite useful and extradionary. I hear that Ruby on Rails supports AJAX which is another techonlogy (composite) that I want to check out. And there are many more. The good thing about this decision is that there are so many choices. The bad thing is that there are so many choices.


Searchable JavaDocs - Sweet

Check out http://javadocs.org/. It allows you to search the javadoc api.

I actually was on a team that built a parametric search engine for the core api for the new http://java.sun.com/. It was built using rdf and searching would return not only a class but also all references to that class rank accordingly up to a configurable maximum number of results. The results would provide the entity name, type (class, field, method), package, and file. Open a result would load that file highlighting all occurances of the searched for word. You could also limit the the results to particular classes, or you could search for only methods or fields. rdf and the triples it represents performed nicely in this building of relationships.

But this is all moot the prototype was canned after a useability study showed there was no interest. I wish they would bring back as I think there would be a lot of uses for such a tool.

it would have looked like:


Architecture Weenies

I was on the phone this morning interviewing a candidate for several openings that we have. My goal was to simply determine his technical expertise in Java. The conversation started off promising, progressed to bad, then became horrible and concluded with a hilarious ending.

For the first fifteen minutes the candidate was doing a great job describing at a high level the architecture of the last project he was working on. His descriptions of the components involved how they worked and interacted where fantastic and I was feeling pretty confident at this point. So I steered the conversation onto more detailed discussions of java, which I have paraphrased below:

Me >> "I'd like to determine your level of expertise in Java so let's discuss that in more detail. In the Java API there is a package called 'java.util'. Could you explain to me what it is used for?"

Candidate >> "java.util?"

Me >> "Yes in the Java API the packaged named 'java.util' could you tell me what its general purpose is?"

Candidate >> pause, "I'm not really sure."

Me >> "You know the package in java that has the collections"

Candidate >> "I've never worked with that before."

Me >> "You've never worked with a Vector, ArrayList, HashMap, HashTable or any other collection before?"

Candidate >> "No. I don't think I have"

Me >> "Ok, you should really take a look at the classes in that java.util package. They have a number of useful features like storing objects into a 'collection'."

Candidate >> "I've never had the opportunity to work that them before. I can talk about my Struts experience, would you like to hear about my Struts experience?"

Me >> "No, I'd like to discover more about what your level of expertise in Java are. In Java how would you convert a primitive into an object?"

Candidate >> pause ... incoherent mumbling ... "I don't know that."

Me >> "You've never taken an int, character, float, double and converted it into an object before?"

Candidate >> "I've never had to do that before. I'm not sure how I would do that. But I can talk about my Struts experience."

At this point the interview has entered the horrible stage. I'm figuring that I should end it but I was taken aback by the fact that he was doing so well in the beginning. I was thinking that maybe he didn't understand the question on primitives. I was determined to find out if he really didn't know:

Me >> "Let me ask you this, Imagine that you have an array. You've worked with arrays before right?"

Candidate >> "An array, yes I have."

Me >> "Ok, well imagine that this array is an array of Objects. You have an int and you need to put that int into the array. How would you do that?"

Candidate >> "That depends on what type of array it is."

Me >> "It's an array of Objects."

Candidate >> "Objects?"

Me >> "Yes the class Object. The class that is at the top of the class hierarchy. The one that all other classes extend from. How would you put an int into an array of objects."

Candidate >> "I guess you would convert it."

Me >> "Yes, but how would you convert it?"

Candidate >> "I'm not sure."

I'm now convinced he has no idea what I'm talking about. It simply amazes me that someone could go on and on with a sufficient amount of detail on the architecture of a project and yet not have the slightest clue on how to convert an int into an Integer. So, not wanting to depart on a bad foot (I guess I have some type of heart). I've decided that I'll finally ask him about his Struts experience:

Me >> "Ok, so tell me about your Struts experience."

Candidate >> "Well I've never actually worked with Struts before but I can tell you about how it works..."

SOA

After a brief conversation with a friend of mine on IM he started talking about SOA and how some proclaim it will be the end of anything not SOA. He even mentioned that Microsoft claimed that it would be the end of object orientated programing. Well I'm not sure what Microsoft claimed but here are my responses. Considering it's been a while since I blogged anything I might as well as start with something controversal. So without further delay here is my brief diatribe:

[15:16] CJ: have you heard that object-oriented design is going to be obsolete - replaced by SOA?
[15:29] Matt: Do they really claim SOA is going to replace OOP?
[15:29] CJ: microsoft does
[15:34] Matt: Everytime someone makes a statement about some big pie in the sky ground shaking achievement or advancement of technology I catagorically dismiss it as simple ego stroking, hand-waving, baloney
[15:36] Matt: SOA is going to be as popular as Web Service. And dont' get me wrong I'm not saying web service don't work I'm just saying after 2 years of listening lunatics web services is now where it belongs as a simple bridging technology. SOA is just a framework that utilizes said bridge.
[15:38] Matt: and that's about it. They'll tell you about how business will be united, and system gaps will be closed and how poor starving children in africa will be feed 3 square meals a day but at the end it's just some silly framework that's banking on a bunch of competing companies to hold hands. And it may even happen some day in the very distant future in a galexy far far way

There you have my humble opinion of SOA. Sorry for any spelling errors and whatnot. This is simply from my IM history unedited.


Some things are best left undone

I just finished reading a posting titled "Pains of Legacy" that references an article on JavaLobby: "Changing Legacy Code Without Making a Mess". They both started me thinking of my own approach to code I did not write. My feelings on refactoring legacy code mimic my feelings on performance optimization. Don't do it, and don't do it yet. In fact I apply this logic to any code which did not originate with me legacy or not.

Programmers when handed a task that involves code written by people forgotten or even their fellow developers take it as a personal crusade to set things right. This often involves reformatting the code and now these days refactoring it as well. Unless you are explicitly told to do so with the project plan and schedule to back it up it is my opinion that you have make as minor a change as possible with full documentation as to why. You further have to do it using the same style as the remainder of the code otherwise the readability will drop even further when you begin mixing styles.

The reasoning for my approach are simple. If you choose the path of refactoring something completely you're throwing yourself into the fire. The code your looking at while awkward looking probably conformed to some type of programming style back in it's day. On top of that most developers aren't the most verbose in their comments or documentation. What rules or contracts they had in mind when the wrote the code have long been forgotten. And you can't count on unit tests to ack as a safety net in these circumstances. In fact your unit tests will most likely all pass and you'll fell good about yourself. But take just a moment to think about that. What are you testing? Are you testing code for which the design contract has long been forgotten or are you testing some refactored code that you now understand. I guess you could add the unit tests first, refactor and the update your unit tests. But I don't see how that is any better. I would be a good exercise in understanding what the current code base is doing a little better and help with testing if you made a minor change. Even bigger than all that is that you'll end up checking in something that's a needle in a haystack of legacy code. Considering the bigger picture your unit tests lose their meaning. While testing the evident you may have over looked little side effects and whatnot.

In conclusion refactoring legacy code, in my opinion, is unnecessary and error prone. The only time it is safe and makes sense to do it if you can refactor an entire system of an application. But that is an project onto itself.


Check out the following products
100 Diff Casino Matchcovers US Mostly Nevada
US $7.10 (2 Bids)
End Date: Wednesday Jan-07-2009 19:05:12 PST
Bid now | Add to watch list

NIB LANVIN HIGH TOP SNEAKERS US SIZE 8.5
US $699.00
End Date: Wednesday Jan-07-2009 19:05:18 PST
Buy It Now for only: US $699.00
Buy it now | Add to watch list

US NAVY FLAG & US FLAG (two 3ft x 5ft polyester flags)
US $16.95 (0 Bid)
End Date: Wednesday Jan-07-2009 19:05:18 PST
Buy It Now for only: US $18.95
Bid now | Buy it now | Add to watch list

Genesis/PETER GABRIEL "Us" CD VG No Reserve
US $3.49 (0 Bid)
End Date: Wednesday Jan-07-2009 19:05:30 PST
Bid now | Add to watch list

2004 US LEWIS & CLARK COLLECTOR COIN CURRENCY SET UNC
US $84.95 (0 Bid)
End Date: Wednesday Jan-07-2009 19:05:37 PST
Bid now | Add to watch list

US Cover to Turkey w Sc#304 Lincoln
US $49.00 (0 Bid)
End Date: Wednesday Jan-07-2009 19:05:39 PST
Bid now | Add to watch list

US Airforce B-36 Heavy Bomber Military Art Print Poster
US $0.99 (0 Bid)
End Date: Wednesday Jan-07-2009 19:05:40 PST
Buy It Now for only: US $1.25
Bid now | Buy it now | Add to watch list

WHITE US 16/SALE/KURTI/KURTA/COTTON/GAUZE/50"/BRAND NEW
US $12.33 (0 Bid)
End Date: Wednesday Jan-07-2009 19:05:41 PST
Bid now | Add to watch list

USB Power Charger Adapter Adaptor for iPod- US Plug
US $6.50
End Date: Wednesday Jan-07-2009 19:05:48 PST
Buy It Now for only: US $6.50
Buy it now | Add to watch list

 
Random News Feed
Poederbrief bij zorgverzekeraar
Bij zorgverzekeraar Agis in Amersfoort was het even schrikken afgelopen maandag. Ze ontvingen daar een poederbrief van een vooralsnog onbekende afzender. Het poeder bleek geen giftige stoffen te bevatten en ook geen uitslag of andere allergische reactie op te roepen. Erg vervelend voor de postkamer. Misschien van een verzekerde die te laat was met opzeggen? Of bij wie een declaratie geweigerd was?
Een derde van de schadeverzekeringen online gesloten
Een op de drie schadeverzekeringen is vorig jaar online gesloten. Dat stelt TNS Nipo, na een vorig jaar gehouden onderzoek onder bijna 4.300 mensen. Centraal Beheer is de meest gekozen internetverzekeraar. Van de online gesloten verzekeringen komt 15% bij de Apeldoornse Achmea-dochter uit. Univé volgt met 13% op korte afstand. Wat ruimer is het gat met Postbank (9%), FBTO (8%) en Ohra (7%). "Meest doorslaggevend bij het kiezen van een maatschappij blijft toch de bekendheid van een verzekeraar", stelt onderzoeksdirecteur Adriaan Eecen. "Dit betekent dat alle initiatieven om nieuwe internetverzekeraars te lanceren gepaard moeten gaan met een omvangrijke reclamecampagne. Volgens TNS Nipo vroegen vorig jaar 2,9 miljoen huishoudens informatie of offertes op over schade-, zorg- of levensverzekeringen en maakte 2,3 miljoen daarbij gebruik van internet. "Het idee controle te hebben over de informatie die wordt ingewonnen en dat online verzekeren goedkoper is, bevalt potentiële klanten", aldus Eecen. Uiteindelijk sloot een derde (ruim driekwart miljoen) de polis ook via internet, waarbij er geen noemenswaardige verschillen in leeftijdsgroepen waren. (Bron: Assurantie Magazine)
Oneerlijke transparantie?
Per 1 januari 2009 is het zover: tussenpersonen moeten aan hun klanten laten zien welke vergoeding ze krijgen voor het afsluiten van een financieel product. Dat tussenpersonen hier niet blij mee zijn laat zich raden: de bakker hoeft immers ook niet te vertellen hoeveel marge hij maakt op het brood dat hij verkoopt. Om de doorzichtigheid van de financiële dienstverlening te bevorderen is de provisietransparantie een middel - het wordt een adviseur lastiger gemaakt om in de adviezen specifiek te kiezen voor de producten waar hij zelf het meeste aan verdient. Er zit echter een oneerlijk aspect aan de provisietransparantie. Banken en verzekeraars die hun producten zonder tussenpersoon aan de man brengen hoeven niets te zeggen over de verdiensten en kosten. Daar wordt nu in de politiek over gesproken.
Spaarrente daalt
Er waren al even tekenen van een daling van de spaarrente. Met name de rente op de deposito’s werd in de afgelopen tijd door veel banken naar beneden bijgesteld. De vrij opvraagbare spaarrekeningen werden door veel banken nog met rust gelaten, omdat die rentepercentages het meest in het oog springen. Per vandaag heeft één van de koplopers qua rente op vrij opvraagbaar spaargeld het rentepercentage verlaagd. NIBC Direct stond op een gedeelde hoogste positie met Credit Europe Bank met een rentevergoeding van 5,25%. Bij NIBC Direct is deze rente per vandaag verlaagd naar 5,1%. Ook de rente op de deposito’s, die op dit moment bij NIBC nog erg hoog is, wordt verlaagd per 19 januari. Kunnen we hiermee concluderen dat de spaaroorlog afgelopen is?
Fiscale veranderingen in 2009
De jaarwisseling staat voor de deur, en daarmee ook de wijziging van een aantal fiscale zaken. Met verschillende maatregelen probeert de regering te stimuleren dat we langer blijven doorwerken bijvoorbeeld. Zo wordt de doorwerkbonus ingevoerd: een korting op de inkomstenbelasting voor wie na zn 62e nog aan het werk is. Deze korting wordt ieder jaar hoger. Ook krijgen werkgevers voordeeltjes als ze ouderen in dienst nemen of houden. Ook met de arbeidskorting wordt er nog wat gestuurd om (blijven en meer) werken aantrekkelijker te maken. De kindertoeslag, die maar een jaar heeft bestaan als vervanging van de kinderkorting, wordt alweer vervangen. In plaats ervan komt er per 1 januari 2009 een kindgebonden budget. Gezinnen ontvangen dan een bedrag per kind in plaats van de toeslag, wat een vast bedrag per gezin was (onafhankelijk van het aantal kinderen). Zoals Verzekeringen-Online u al eerder aangaf vervalt de aftrekpost voor de Buitengewone uitgaven. Dat heeft bijvoorbeeld gevolgen voor de aftrekbaarheid van uitvaartverzekeringen en grote medische uitgaven. Spectaculaire wijzigingen op verzekeringsgebied zijn er niet. In januari 2008 was dat wel anders. Toen werd de mogelijkheid tot banksparen ingevoerd als alternatief voor de Kapitaalverzekering Eigen Woning en voor de lijfrenteverzekering. Bovendien ging toen de assurantiebelasting omhoog.Meer onderwerpen Minder afrekposten in 2009
Icesave weer in het nieuws
Het failliet van de Nederlandse tak van de IJslandse bank Landsbanki was een grote gebeurtenis in de Nederlandse financiële wereld het afgelopen jaar. Talloze spaarders zaten in onzekerheid over het al dan niet terugkrijgen van hun spaarcenten, omdat de eerste € 20.000 gegarandeerd waren door de overheid van IJsland. De regering gaf aan die garantie niet te kunnen waarmaken waardoor de kans bestond dat mensen hun geld kwijt zouden zijn. Wouter Bos schoot te hulp door de Nederlandse depositogarantieregeling - die net was verhoogd naar € 100.000 per persoon per bank - van toepassing te verklaren. Mensen wiens saldo niet boven een ton uitkwam waren dus geholpen en hebben inmiddels hun geld teruggekregen van De Nederlandsche Bank (DNB). De spaarders met meer geld op de Icesave-rekening hebben nog steeds wel een probleem; het meerdere valt onder geen enkele garantie. De afgelopen dagen zijn er weer twee onderwerpen over Icesave in het nieuws. Allereerst de mededeling van DNB dat er nog 70 miljoen van de Icesave-tegoeden niet is opgevraagd. Er zijn dus nog steeds rekeninghouders die hun claim niet hebben ingediend, maar ook zijn er aanvragen niet volledig of niet correct ingevuld. Een aandachtspunt is dat rekeninghouders met een gezamenlijke rekening allebei hun eigen deel moeten claimen. Er kan dus niet volstaan worden met één formulier bij een rekening op twee namen. Verder stelt de bewindvoerder van Icesave dat er verschillende banken serieuze interesse hadden in het overnemen van de rekeningen en verplichtingen van Icesave. Hij stelt - gesteund door andere bronnen - dat deze overname geblokkeerd is door DNB. De centrale bank wilde hierop in eerste instantie niet reageren, en is inmiddels overgegaan tot ontkenning van de berichten. Wat is waarheid? Bij een overname was dat een redding geweest voor de rekeninghouders met meer dan € 100.000 bij Icesave. Nu het gros van de Icesave-rekeningen is afgewikkeld door uitbetaling vanuit het garantiestelsel is de kans op overname ongetwijfeld verkeken.
Most popular Searches
news feed news right now current news Acne articles web marketing business writing free ipod free ads music videos News and Opportunities ramshackle games blogs personal loan Developer News search engine Newest All Sex Movies None search engine optimization

Copyright buymyscripts.net