Monthly Archives

Articles indexed in November 2013

Page 32/211 | < Previous Page | 28 29 30 31 32 33 34 35 36 37 38 39  | Next Page >

  • Is a Mission Oriented Architecture (MOA) a better way to describe things than SOA?

    - by Brian Langbecker
    I might sound like a troll, but I would like to seriously understand this deeper. The place I work at has started to use the term MOA, versus SOA as we believe it drives more clarity and want to compare it to the true goals of SOA. A Mission Oriented Architecture is an approach whereby an application is broken down into various business mission elements, with the database, file assets, batch and real time functionality all tightly coupled in terms of delivering that piece of the functionality. The mission allows the developers to focus on a specific piece of functionality to get it right, and to build it with the ability for that piece to scale as an independent entity within the overall application. By tightly coupling the data, file assets and business logic you achieve the goals of working on a very large problem in bite size pieces. Some definitions of SOA mix it up with what is essentially a method call on a web service versus a true "service". As an architect, I have always found it fun getting everyone on the same page regarding SOA. Is it better to call it a "mission" versus a "service"?

    Read the article

  • What are common patterns for handling possible pluralization in message properties?

    - by C. Ross
    Obviously users like to see text properly pluralized, and pluralization schemes vary in the various written languages one may encounter. When internationalizing an app, what pattern(s) are useful for handling messages with possible pluralization? What about messages with multiple possible pluralization? For example: "N review(s):" One pattern would be reviews.title.singular="{0} review:" reviews.title.singular="{0} reviews:" And this may not support all languages. Or a more complicated case: "Found M question(s) with N comment(s)." This would be difficult to support in English?

    Read the article

  • How can a collection class instantiate many objects with one database call?

    - by Buttle Butkus
    I have a baseClass where I do not want public setters. I have a load($id) method that will retrieve the data for that object from the db. I have been using static class methods like getBy($property,$values) to return multiple class objects using a single database call. But some people say that static methods are not OOP. So now I'm trying to create a baseClassCollection that can do the same thing. But it can't, because it cannot access protected setters. I don't want everyone to be able to set the object's data. But it seems that it is an all-or-nothing proposition. I cannot give just the collection class access to the setters. I've seen a solution using debug_backtrace() but that seems inelegant. I'm moving toward just making the setters public. Are there any other solutions? Or should I even be looking for other solutions?

    Read the article

  • DOMDocument groupping nodes, with clone, nodeClone, importNode, fragment... What the better way?

    - by Peter Krauss
    A "DOMNodeList grouper" (groupList() function below) is a function that envelopes a set of nodes into a tag. Example: INPUT <root><b>10</b><a/><a>1</a><b>20</b><a>2</a></root> OUTPUT of groupList($dom->getElementsByTagName('a'),'G') <root><b>10</b> <G><a/><a>1</a><a>2</a></G> <b>20</b></root> There are many ways to implement it, what is the better? function groupList_v1(DOMNodeList &$list,$tag,&$dom) { $list = iterator_to_array($list); // to save itens $n = count($list); if ($n && $list[0]->nodeType==1) { $T = $dom->createDocumentFragment(); $T->appendChild($dom->createElement($tag)); for($i=0; $i<$n; $i++) { $T->firstChild->appendChild( clone $list[$i] ); if ($i) $list[$i]->parentNode->removeChild($list[$i]); } $dom->documentElement->replaceChild($T,$list[0]); }//if return $n; }//func function groupList_v2(DOMNodeList &$list,$tag,&$dom) { $list = iterator_to_array($list); // to save itens $n = count($list); if ($n && $list[0]->nodeType==1) { $T = $dom->createDocumentFragment(); $T->appendChild($dom->createElement($tag)); for($i=0; $i<$n; $i++) $T->firstChild->appendChild( clone $list[$i] ); $dom->documentElement->replaceChild($T,$list[0]); for($i=1; $i<$n; $i++) $list[$i]->parentNode->removeChild($list[$i]); }//if return $n; }//func // ... YOUR SUGGESTION ... // My ugliest function groupList_vN(DOMNodeList &$list,$tag,&$dom) { $list = iterator_to_array($list); // to save itens $n = count($list); if ($n && $list[0]->nodeType==1) { $d2 = new DOMDocument; $T = $d2->createElement($tag); for($i=0; $i<$n; $i++) $T->appendChild( $d2->importNode($list[$i], true) ); $dom->documentElement->replaceChild( $dom->importNode($T, true), $list[0] ); for($i=1; $i<$n; $i++) $list[$i]->parentNode->removeChild($list[$i]); }//if return $n; }//func Related questions: at stackoverflow, at codereview.

    Read the article

  • How to Implement a Parallel Workflow

    - by Paul
    I'm trying to implement a parallel split task using a workflow system. I'm using .NET but my process is very simple and I don't want to use WF or anything heavy like that. I've tried using Stateless. So far is was easy to set up and run, but I may be using the wrong tool for the job because I'm not sure how you're supposed to model parallel split workflows, where you have multiple sub-tasks required before you can advance to the next state, but the steps don't require being performed in any particular order. I can easily use the dynamic configuration options to check my data model manually to see if the model is in the correct state (all sub-tasks completed) and can transition to the next state, but this seems to completely break the workflow paradigm. What is the proper, orthodox way to implement a parallel split process? Thanks

    Read the article

  • Java regex patterns - compile time constants or instance members?

    - by KepaniHaole
    Currently, I have a couple of singleton objects where I'm doing matching on regular expressions, and my Patterns are defined like so: class Foobar { private final Pattern firstPattern = Pattern.compile("some regex"); private final Pattern secondPattern = Pattern.compile("some other regex"); // more Patterns, etc. private Foobar() {} public static Foobar create() { /* singleton stuff */ } } But I was told by someone the other day that this is bad style, and Patterns should always be defined at the class level, and look something like this instead: class Foobar { private static final Pattern FIRST_PATTERN = Pattern.compile("some regex"); private static final Pattern SECOND_PATTERN = Pattern.compile("some other regex"); // more Patterns, etc. private Foobar() {} public static Foobar create() { /* singleton stuff */ } } The lifetime of this particular object isn't that long, and my main reason for using the first approach is because it doesn't make sense to me to hold on to the Patterns once the object gets GC'd. Any suggestions / thoughts?

    Read the article

  • IL and case-sensitivity

    - by Ali .NET
    Quoted from A Brief Introduction To IL code, CLR, CTS, CLS and JIT In .NET CLS stands for Common Language Specifications. It is a subset of CTS. CLS is a set of rules or guidelines which if followed ensures that code written in one .NET language can be used by another .NET language. For example one rule is that we cannot have member functions with same name with case difference only i.e we should not have add() and Add(). This may work in C# because it is case-sensitive but if try to use that C# code in VB.NET, it is not possible because VB.NET is not case-sensitive. Based on above text I want to confirm two points here: Does the case-sensitivity of IL is a condition for member functions only, and not for member properties? Is it true that C# wouldn't be inter-operable with VB.NET if it didn't take care of the case sensitivity?

    Read the article

  • How to handle lookup data in a C# ASP.Net MVC4 application?

    - by Jim
    I am writing an MVC4 application to track documents we have on file for our clients. I'm using code first, and have created models for my objects (Company, Document, etc...). I am now faced with the topic of document expiration. Business logic dictates certain documents will expire a set number of days past the document date. For example, Document A might expire in 180 days, Document 2 in 365 days, etc... I have a class for my documents as shown below (simplified for this example). What is the best way for me to create a lookup for expiration values? I want to specify documents of type DocumentA expire in 30 days, type DocumentB expire in 75 days, etc... I can think of a few ways to do this: Lookup table in the database I can query New property in my class (DaysValidFor) which has a custom getter that returns different values based on the DocumentType A method that takes in the document type and returns the number of days and I'm sure there are other ways I'm not even thinking of. My main concern is a) not violating any best practices and b) maintainability. Are there any pros/cons I need to be aware of for the above options, or is this a case of "just pick one and run with it"? One last thought, right now the number of days is a value that does not need to be stored anywhere on a per-document basis -- however, it is possible that business logic will change this (i.e., DocumentA's are 30 days expiration by default, but this DocumentA associated with Company XYZ will be 60 days because we like them). In that case, is a property in the Document class the best way to go, seeing as I need to add that field to the DB? namespace Models { // Types of documents to track public enum DocumentType { DocumentA, DocumentB, DocumentC // etc... } // Document model public class Document { public int DocumentID { get; set; } // Foreign key to companies public int CompanyID { get; set; } public DocumentType DocumentType { get; set; } // Helper to translate enum's value to an integer for DB storage [Column("DocumentType")] public int DocumentTypeInt { get { return (int)this.DocumentType; } set { this.DocumentType = (DocumentType)value; } } [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)] public DateTime DocumentDate { get; set; } // Navigation properties public virtual Company Company { get; set; } } }

    Read the article

  • What's the relationship between meta-circular interpreters, virtual machines and increased performance?

    - by Gomi
    I've read about meta-circular interpreters on the web (including SICP) and I've looked into the code of some implementations (such as PyPy and Narcissus). I've read quite a bit about two languages which made great use of metacircular evaluation, Lisp and Smalltalk. As far as I understood Lisp was the first self-hosting compiler and Smalltalk had the first "true" JIT implementation. One thing I've not fully understood is how can those interpreters/compilers achieve so good performance or, in other words, why is PyPy faster than CPython? Is it because of reflection? And also, my Smalltalk research led me to believe that there's a relationship between JIT, virtual machines and reflection. Virtual Machines such as the JVM and CLR allow a great deal of type introspection and I believe they make great use it in Just-in-Time (and AOT, I suppose?) compilation. But as far as I know, Virtual Machines are kind of like CPUs, in that they have a basic instruction set. Are Virtual Machines efficient because they include type and reference information, which would allow language-agnostic reflection? I ask this because many both interpreted and compiled languages are now using bytecode as a target (LLVM, Parrot, YARV, CPython) and traditional VMs like JVM and CLR have gained incredible boosts in performance. I've been told that it's about JIT, but as far as I know JIT is nothing new since Smalltalk and Sun's own Self have been doing it before Java. I don't remember VMs performing particularly well in the past, there weren't many non-academic ones outside of JVM and .NET and their performance was definitely not as good as it is now (I wish I could source this claim but I speak from personal experience). Then all of a sudden, in the late 2000s something changed and a lot of VMs started to pop up even for established languages, and with very good performance. Was something discovered about the JIT implementation that allowed pretty much every modern VM to skyrocket in performance? A paper or a book maybe?

    Read the article

  • Defining work days and work time

    - by user2553268
    I'm working on development of SMS parking software, and I'm stuck at one point for a month... I need to implement periods of payment (or work time, of a work day, if you will). Here's the problem: For an example, traffic wardens work from Monday to Saturday. From Monday to Friday, the work times are from 07:00 to 21:00, and on Saturday, the work time is from 07:00 to 14:00. The project request was, that the customer can pay parking by SMS unlimited, which I did, but didn't implement this logic. I started with making a table for this periods of payment, it consists of: dayofweek (INT, for use with mysql function DAYOFWEEK, to tell me which day in week is the current date), work_start and work_stop (DATETIME, for defining starting and ending the work day), but I'm unsure if I should use DATETIME, beacuse of the date, or should I use only TIME. The idea is this: If you send an SMS, at 20:50, Monday, it should be valid until 07:50, Tuesday (it's payed by the hour). Extending the time of payment, regarding the work time in week. Currently, it works with extending time by the hour without this rule. Really would use some help, or some ideas, I'm stuck with this for quite some time...

    Read the article

  • How best to merge/sort/page through tons of JSON arrays?

    - by Joshiatto
    Here's the scenario: Say you have millions of JSON documents stored as text files. Each JSON document is an array of "activity" objects, each of which contain a "created_datetime" attribute. What is the best way to merge/sort/filter/page through these activities via a web UI? For example, say we want to take a few thousand of the documents, merge them into a gigantic array, sort the array by the "created_datetime" attribute descending and then page through it 10 activities at a time. Also keep in mind that roughly 25% of these JSON documents are updated every day, and updates have to make it into the view within 5 minutes. My first thought is to parse all of the documents into an RDBMS table and then it would just be a simple query such as "select top 10 name, created_datetime from Activity where user_id=12345 order by created_datetime desc". Some have suggested I use NoSQL techniques such as hadoop or map/reduce instead. How exactly would this work? For more background, see: Why is NoSQL better for this scenario?

    Read the article

  • Cannot copy MP3 files from a CD

    - by MountainX
    I purchased a set of spoken word audio CD's that have MP3 and FLAC audio files; I think they also play as regular audio CD's because I see a CDA directory and .cda files. But I'm only interested in playing the MP3 files by copying them to my phone. Dolphin file manager shows all the files on the CD. However, it will not copy any of them to my hard drive, which is what my goal is. Dolphin shows no error, but the copy progress is zero. Amarok will play the files but not easily. I only tried the flac files. To play a file, I click the file in Dolphin, then I have to cancel a job using KDE's notification system, then Amarok proceeds to copy the file to a tmp directory which takes a long time, then it finally plays. kb3 will rip the audio, but I would prefer to copy the files directly from the CD. Since Dolphin would not copy the files, I thought I would try the terminal, but I can't get that to work either. mount -t auto -o ro /dev/sr0 /mnt/temp that gives the error: wrong fs type, bad option, bad superblock, etc. I get the same error using -t iso9660 and -t udf. so I started troubleshooting: ~$ wodim --devices wodim: Overview of accessible drives (1 found) : ------------------------------------------------------------------------- 0 dev='/dev/sg1' rwrw-- : 'MATSHITA' 'DVD-RAM UJ8A0AS' ------------------------------------------------------------------------- /dev/sg1 is not a block device sudo file -s /dev/sr0 ERROR: cannot read /dev/sr0 (input/output error) sudo file -s /dev/sg1 just hangs How can I copy these files to my computer hard disk?

    Read the article

  • Step 2 of instructions is not clear to me

    - by Albert Frye
    I want to make a bootable USB stick. I run the UUI. I see the instructions on this site: http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows Step 1 says: Select "Ubuntu Desktop Edition" from the dropdown list Okay, so the actual title of the drop down box is: Select a "Linux Distribution" from the dropdown to put on your USB I am pretty new to computers. 67 years old. Live alone. Bought my first computer 3 months ago. So I will have to assume that when the instructions say "Ubuntu Desktop Edition", that means the same thing as "Linux Distribution". Okay, No big leap there. So far, so good . . . . . . . So I pick the very first selection: Ubuntu 13.10 Desktop i386 I'm not sure why there are so many choices, but I'm guessing I'm pretty safe with the first one. It's for a Toshiba Satellite laptop 64 bit Windows 7. Okay, now for step 2: The instructions say: Click 'Browse' and open the downloaded ISO file. The message in the window just before the "Browse" button says: Browse to your ubuntu-13.10*desktop*i386.iso -- Okay, so where's that file? So I click "Browse" and start looking for that file. It is nowhere to be found. So where the heck is it?

    Read the article

  • I don't have permission to access other drives

    - by mcjohnalds45
    After messing with the user accounts & names, I found I can't access my external drives without using sudo. So when I access one normally with cd "/media/john/FreeAgent Drive" I receive bash: cd: /media/john/FreeAgent Drive: Permission denied However, using sudo: sudo cd /media/john sudo ls -l It gives: drwx------ 1 john john 20480 Sep 24 10:45 FreeAgent Drive/ And id returns uid=1003(john) gid=1003(john) groups=1003(john), ... So I'm interpreting this is as "you are john, only john can access this drive, however, you cannot access this drive." I have tried sudo chown john:john "FreeAgent Drive" and sudo chmod o+rw "john/FreeAgent Drive"but I still can't access it.

    Read the article

  • I get the following error when i open any progaram in vi please help me

    - by Adithya Chakilam
    E325: ATTENTION Found a swap file by the name ".ptr.c.swp" owned by: honey dated: Sat Oct 26 12:49:38 2013 file name: ~honey/ptr.c modified: YES user name: honey host name: honey-desktop process ID: 2542 While opening file "ptr.c" dated: Sun Nov 3 09:05:49 2013 NEWER than swap file! (1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution. (2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r ptr.c" to recover the changes (see ":help recovery"). If you did this already, delete the swap file ".ptr.c.swp" to avoid this message. "ptr.c" 9L, 136C Press ENTER or type command to continue

    Read the article

  • Up, down, right arrow keys and delete key not working

    - by user210780
    I have already read Delete and arrow keys not working and tried what is written there. I have also tried restarting my computer. I have also searched elsewhere for answers, but I haven't found any solution. I am using Ubuntu 12.04, and there were not problems yesterday, but for the last hour, I've had the following problem. When I press the up or the right arrow, nothing happens. When I press the down arrow, it doesn't make anything go down, but something appears in the upper right corner of my screen: http://i.imgur.com/pmnFOCD.png When I press the delete key, nothing gets deleted, but something appears in the upper right corner of my screen: http://i.imgur.com/Wu9czel.png The left arrow still works. Can anybody help me get my three arrow keys and delete key back?

    Read the article

  • Bluetooth Issues Ubuntu 13.10

    - by Eduardo
    I have a bluetooth headset which works perfectly on Ubuntu 13.04. Now I update to 13.10, and here is what's happing: After installing blueman, bluetooth-suport, pulseaudio-module-bluetooth and so on, I can find my device, pair it and connect to the headset service. But the device does not appear on the Sound Settings, so I just can't select it as input/output device. In other words, it's connected but "useless". So, searching around for solutions, I found a software called stream2ip. With this I can connect the device and it appears on the Sound Settings, the sound plays on the device as well, but I microphone does not work, even when selected on the settings, also the A2DP option still not working. Stream2ip isn't a solution at all, I mean everything was working without it in the previous Ubuntu version. Maybe I'm missing something, and I hope someone could give me any hint. And formally, the question: How can I get the A2DP output option and the input working again, on the Ubuntu 13.10? Thanks!

    Read the article

  • Probably the dumbest and poitnless question to ask

    - by Anthony Adams
    How can I dual boot this with Windows 8? I've tried to burn to a CD, never have a enough memory or the program tells me that the CD isn't writable. So, I want to run from USB. But I never understood how to run the program from the USB, how to download it on to the USB and how to set up the computer to run the USB before the Hard Drive. I am a beginner trying to learn Linux, if any one could help a newbie like me, that would be much appreciated.

    Read the article

  • cuda install in ubuntu13.10?

    - by hexiangpeng
    the cuda_install_.log show ERROR: Unable to build the NVIDIA kernel module. ERROR: Installation has failed. Please see the file '/var/log/nvidia-installer.log' for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com. The driver installation is unable to locate the kernel source. Please make sure that the kernel source packages are installed and set up correctly. and the other .log show ^ /tmp/selfgz3964/NVIDIA-Linux-x86-319.37/kernel/nv-i2c.c: In function ‘nv_i2c_del_adapter’: /tmp/selfgz3964/NVIDIA-Linux-x86-319.37/kernel/nv-i2c.c:327:14: error: void value not ignored as it ought to be osstatus = i2c_del_adapter(pI2cAdapter); ^ make[3]: * [/tmp/selfgz3964/NVIDIA-Linux-x86-319.37/kernel/nv-i2c.o] ?? 1 make[2]: * [module/tmp/selfgz3964/NVIDIA-Linux-x86-319.37/kernel] ?? 2 NVIDIA: left KBUILD. nvidia.ko failed to build! make[1]: * [module] ?? 1 make: * [module] ?? 2 - Error. ERROR: Unable to build the NVIDIA kernel module. ERROR: Installation has failed. Please see the file '/var/log/nvidia-installer.log' for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com. i don't understand

    Read the article

  • No sound on fresh install of 13.10

    - by Totalnon
    I installed a new copy of 13.10 today and cannot get my audio to work. Speakers test good on other devices, enabled in the BIOS, worked this morning in a Windows environment. I ran all of the available updates through apt-get. aplay -l lists my card (which tells me Ubuntu recognizes the hardware, I have been looking around the web and trying various things to no avail. Pulse folder permissions seem fine, I've reinstalled ALSA, and the card shows both digital and analog in the system settings sound section. I have tried this guide: Sound Troubleshooting Guide As well as looked through these forums under the tags sound and 13.10 Anyone have any ideas that may help me?

    Read the article

  • Some problems with the keyboard layout

    - by user203053
    When I press some keys, sometimes some letters are replaced by others. For example e is replaced with "0we" and c with "x9a". Also other keys are changed. My keyboard layout is actually German. But whenever this problem occurs, it changes to English and I cannot change it back. Occasionally everything works fine. How do I find out whether the keyboard is damaged or just some settings are not right?

    Read the article

  • After upgrading to 13.10, biblatex and biber are not compiling my references

    - by Lewelma
    I am working on a thesis using LaTeX, with my references relying on biblatex-apa. Ubuntu 13.04 provided all my LaTeX needs. But after upgrading to 13.10, the biblatex / biber combo will no longer compile my APA-style references. No other changes have been made to my documents or references -- and the rest of the document appears fine (albeit with broken references and no bibliography). I found reference to a possible cause -- which is that biblatex 1.7-1 is incompatible with texlive 2013 (as available through the 13.10 repositories) -- and that issue may be fixed by biblatex 2.7a-1 which has been committed upsteam in Debian. See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718244 However, that doesn't help me much, as I need to compile my references quite soon. How can I get my references to compile in the meantime? Is there a patched biblatex or biber that I can manually slot in place? Is the upstream fix on its way? or do I need to go to TexLive and do a replacement install directly (which is not my preference). Thanks!

    Read the article

  • Suddely internet is not accessible

    - by user189708
    I am going crazy here. One day everything was working fine. I turned pc off and went to sleep. Next day turn pc on and cannot access internet (from any browser). The situation is: I cannot open any webpage from browser (tried Firefox and Epiphany) and cannot receive emails in thunderbird. BUT if I run firefox from console as sudo, I can use it as usual. I can access Skype and pretty much any other network stuff (like installing software with apt-get etc.), also if I use Astrill VPN software I can access webpages even running without sudo. I haven't install any software or anything like that for several days = I have not a clue what could cause this. Just by the way, other Win PC in our home has no issue. Here is what I have tried to fix this: I have tried to restart my pc, router, modem - multiple times I have tried to change permissions to my firefox profile I have tried to completely re-install firefox and start with blank profile, thus no addons I have tried to change /etc/resolv.conf to an IP of my router (it was 127.0.1.1) I have tried to change my hostname (from tomino-NB to tominoNB) I think I might try even more stuff. None of it works. Can someone please try to help me. Thank you UPDATE 1: I have tried this: Removing resolv.conf - Didn't help Also "ping" and "dig" commands cannot resolve host UPDATE 2: I have tried to edit nameservers in resolv.conf but still no effect. I can ping router as well as I can ping outside IP. So definitely just some DNS issue. Is it possible that something is rewriting path to resolv.conf and using different file? UPDATE 3: I have just restarted PC and everything works now... resolv.conf went back to nameserver 127.0.1.1 . I have no clue what happened that it works again...

    Read the article

  • Setting PIdgin up for Lync2013

    - by Stu2000
    I having difficulty setting up pidgin to work with my company's microsoft 365's communicator lync 2013 (not 2010) account. I either receive a message stating authentication failed, or Incompatible authentication scheme chosen: NTLM depending upon the user agent values used from this wiki It appears that both the user agent values that start with UCCAPI provide authentication failed error, which I'm guessing is "closer" to the solution. I have triple checked that the password is correct. Below are some images of my settings (I have changed the company name to "company" for annonymity. I am running pidgin with a script in order to fix a write error issue: export NSS_SSL_CBC_RANDOM_IV=0 pidgin -d I am also using the latest version of SIPE (1.10.1) by using this ppa: https://launchpad.net/~aavelar/+archive/ppa What settings do I need to change/add to get it to work?

    Read the article

  • How can I make the function keys the default on a Logitech K760 Bluetooh keyboard?

    - by Chas. Owens
    I had hoped that solaar would help, but it seems to only work for the Logitech wireless devices that use Logitech's proprietary scheme. I have Bluetooth keyboard (K760). I know it can be told to use the function keys (rather than the media keys) by default because I can do it on under OS X with software from Logitech. Just remapping the keys won't work as F1, F2, and F3 are special in that they switch which Bluetooth device I connect to and the keys are not sent to the OS.

    Read the article

< Previous Page | 28 29 30 31 32 33 34 35 36 37 38 39  | Next Page >