Search Results

Search found 559 results on 23 pages for 'nathan dewitt'.

Page 4/23 | < Previous Page | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >

  • Can I remove the systems from a component entity system?

    - by nathan
    After reading a lot about entity/component based engines. I feel like there is no real definition for this kind of engine. Reading this thread: Implementing features in an Entity System and the linked article made me think a lot. I did not feel that comfortable using System concept so I'll write something else, inspired by this pattern. I'd like to know if you think it's a good way to organize game code and what improvements can be made. Regarding a more strict implementation of entity/component based engine, is my solution viable? Do I risk getting stuck at any point due to the lack of flexibility of this implementation (or anything else)? My engine, as for entity/component patterns has entities and components, no systems since the game logic is handled by components. Also, I think the main difference is the fact that my engine will use inherence and OOP concepts in general, I mean, I don't try to minimize them. Entity: an entity is an abstract class. It holds his position, width and height, scale and a list of linked components. The current implementation can be found here (java). Every frame, the entity will be updated (i.e all the components linked to this entity will be updated), and rendered, if a render component is specified. Component: like for entity, a component is an abstract class that must be extended to create new components. The behavior of an entity is created through his components collection. The component implementation can be found here. Components are updated when the owning entity is updated or for only one specific component (render component), rendered. Here is an example of a logic component (i.e not a renderable component, a component that's updated each frame) in charge of listening for keyboard events and a render component in charge of display a plain sprite (i.e not animated).

    Read the article

  • How do I make the directories in a zip file relative to the target directory instead of my working directory

    - by Nathan
    I'm calling the zip command from a script where I cannot change directory. I need to make a zip file of the stuff in data/kit123/ from the directory which data resides in, but I want the contents of the zip to only be the contents of kit123, with paths relative to kit123. This is the directory structure myworkingdir data kit123 kitpart1 file.xcf anotherfile.xcf kitpart2 ... kit124 ... My script runs in myworkingdir and cannot change directories. If I call zip -r kit123.zip data/kit123 then the structure in the zip file will be data kit123 kitpart1 file.xcf anotherfile.xcf kitpart2 but I want it to be kit123 kitpart1 file.xcf anotherfile.xcf kitpart2 Is there a zip option I can use to accomplish this? It seems odd that it should depend on my working directory I know it's not -j. that one destroys the structure within kit123

    Read the article

  • LWJGL - Mixing 2D and 3D

    - by nathan
    I'm trying to mix 2D and 3D using LWJGL. I have wrote 2D little method that allow me to easily switch between 2D and 3D. protected static void make2D() { glEnable(GL_BLEND); GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glLoadIdentity(); glOrtho(0.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 0.0f, 0.0f, 1.0f); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glLoadIdentity(); } protected static void make3D() { glDisable(GL_BLEND); GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glLoadIdentity(); // Reset The Projection Matrix GLU.gluPerspective(45.0f, ((float) SCREEN_WIDTH / (float) SCREEN_HEIGHT), 0.1f, 100.0f); // Calculate The Aspect Ratio Of The Window GL11.glMatrixMode(GL11.GL_MODELVIEW); glLoadIdentity(); } The in my rendering code i would do something like: make2D(); //draw 2D stuffs here make3D(); //draw 3D stuffs here What i'm trying to do is to draw a 3D shape (in my case a quad) and i 2D image. I found this example and i took the code from TextureLoader, Texture and Sprite to load and render a 2D image. Here is how i load the image. TextureLoader loader = new TextureLoader(); Sprite s = new Sprite(loader, "player.png") And how i render it: make2D(); s.draw(0, 0); It works great. Here is how i render my quad: glTranslatef(0.0f, 0.0f, 30.0f); glScalef(12.0f, 9.0f, 1.0f); DrawUtils.drawQuad(); Once again, no problem, the quad is properly rendered. DrawUtils is a simple class i wrote containing utility method to draw primitives shapes. Now my problem is when i want to mix both of the above, loading/rendering the 2D image, rendering the quad. When i try to load my 2D image with the following: s = new Sprite(loader, "player.png); My quad is not rendered anymore (i'm not even trying to render the 2D image at this point). Only the fact of creating the texture create the issue. After looking a bit at the code of Sprite and TextureLoader i found that the problem appears after the call of the glTexImage2d. In the TextureLoader class: glTexImage2D(target, 0, dstPixelFormat, get2Fold(bufferedImage.getWidth()), get2Fold(bufferedImage.getHeight()), 0, srcPixelFormat, GL_UNSIGNED_BYTE, textureBuffer); Commenting this like make the problem disappear. My question is then why? Is there anything special to do after calling this function to do 3D? Does this function alter the render part, the projection matrix?

    Read the article

  • Bluetooth pairing works in 10.10 but not in 11.04

    - by Nathan Haines
    My laptop, a Compaq Presario V2000, has a built-in Bluetooth module that has worked well since at least Ubuntu 8.04 LTS. I use it to pair with headphones and a mouse. These both worked great in Ubuntu 10.10 (and still do with a live CD) but I cannot pair to any Bluetooth device in Ubuntu 11.04, even from a live CD. I can see the Bluetooth module in lspci and when I try to set up a new device from the Bluetooth indicator my computer detects all Bluetooth devices around me but pairing always fails. At the moment I'm most concerned with getting my Microsoft Wireless Notebook Presenter Mouse 8000 paired. Relevant output of lspci: Bus 003 Device 002: ID 03f0:011d Hewlett-Packard Integrated Bluetooth Module

    Read the article

  • Cannot run one of two OS

    - by Nathan
    first i am happy cuz i updated to ubuntu 12.10! yeah The grub had an error, but using this guide https://help.ubuntu.com/community/Boot-Repair i fixed it. yeah again I show you the page that gives me the program http://paste.ubuntu.com/1370085/ I have the system selection screen in violet, but i cannot run Windows XP. Only Ubuntu. When i press enter to start windows, the screen turns black and it returns automatically to the system selection screen. Is just that little problem, i need to use twos OS for job's reason. Thanks in advance and sorry for my little english!

    Read the article

  • Where can I find a legal "permission to work on open source" document?

    - by Nathan Long
    One of the things I really like about my current job is that we developers are encouraged to make open source contributions. However, this encouragement has always been verbal. I've read some horror stories about developers having their open-source work legally claimed by their employer. I'd be more comfortable if we had something in writing from my employer saying that contributions are allowed and not owned by the company. Understanding that you are not lawyers, does anyone know where to find a boilerplate document to this effect?

    Read the article

  • Elantech trackpad being identified as a logitech wheel mouse.

    - by Nathan Cox
    I recently purchased a Samsung RF510 laptop computer, which I absolutely love. However, upon installing Ubuntu 10.10 onto it I couldn't get the trackpad to function properly. It worked as a basic mouse (point and click) but had no functionality for edge scrolling or any of the multitouch settings the trackpad is capable of. After doing a lot of research I discovered the reason is a known issue where the Ubuntu kernel will improperly detect an Elantech trackpad as a logitech PS/2 wheel mouse, and as such will gain none of the functionality that seems to be coded for synaptics trackpads. The question I have is: does anyone know a way to get this working properly? This is my first time trying to run Ubuntu on a laptop (actually, it's my first laptop in the last 12 years) and I'm finding the experience to be intolerable without the basic scrolling/zooming/etc I've been used to using for as long as I can remember.

    Read the article

  • How do produce a "mucus spreading" effect in a 2D environment?

    - by nathan
    Here is an example of such a mucus spreading. The substance is spread around the source (in this example, the source would be the main alien building). The game is starcraft, the purple substance is called creep. How this kind of substance spreading would be achieved in a top down 2D environment? Recalculating the substance progression and regenerate the effect on the fly each frame or rather use a large collection of tiles or something else?

    Read the article

  • AMD Catalyst diskless cluster

    - by Nathan Moos
    I'm using Ubuntu 13.10 to set up a diskless compute cluster. When I use the procedure detailed in https://help.ubuntu.com/community/DisklessUbuntuHowto, I successfully am able to boot all four nodes. However, once I install Catalyst, I immediately have problems: only one diskless node boots properly, with the other two hanging while attempting to start X. My assumption is that my Catalyst build was somehow specific to the node which I booted from first, which somehow prevents the other nodes from loading Catalyst. Can anyone provide hints to help solve this? Thank you in advance!

    Read the article

  • Can I minify Javascript that requires copyright notice?

    - by Nathan Long
    I guess this is actually a legal question, but it relates to software. I'm about to include a JS plugin in a project. The comments include: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Is using this in my web site "redistribution?" If I minify this to conserve bandwidth, I assume it will strip all comments. If the answer to #1 is yes, doesn't that imply I'm legally not allowed to minify it? (That would stink, since I was planning to auto-minify all JS as part of the deploy process.)

    Read the article

  • screen does not wake up after suspend/ brightness will not adjust

    - by Nathan
    My computer is one of these: http://www.newegg.com/Product/Product.aspx?Item=N82E16834230467 Asus Zenbook UX32A-DB51 Just bought it yesterday. Set to "suspend" when I close the lid, but when I open it up again I just get a black screen. Pressing the power button doesn't work, not does clicking the mouse or any key combination. The same is true if I leave the computer until it suspends. Black screen, no response, have to reboot. I also can't seem to adjust the brightness. I put "brightness up" and "brightness down" function keys in, and when I push them it shows the brightness level as going up and down on the meter, but the screen does not actually become more or less bright. I am totally new to all of this. Please tell me what additional information you need to help me and where I can find it. Thanks! Edit: Tried the following: sudo gedit /etc/default/grub Change the line GRUB_CMDLINE_LINUX="" into GRUB_CMDLINE_LINUX="acpi_osi=Linux" sudo update-grub Restart your linux And "acpi_backlight=vendor" both to no avail.

    Read the article

  • Gnome3 pointer barrier not working with dual monitors

    - by Nathan
    I have a dual monitor setup using Gnome3. Misc Info : In the past I used Fedora, there was a pointer barrier between my two monitors in the upper left corner so that I can hit the hot corner when moving from the right monitor to the left monitor. Problem : However, with my new Ubuntu installation, the barrier no longer exists and my mouse pointer glides straight to the next screen. This makes that hot corner nearly useless. I've looked around, messed with the values in /usr/share/gnome-shell/js/ui/layout.js, but I can't figure out how to make the pointer barrier work. may someone suggest hot to get the full utilization of hot cornet.

    Read the article

  • Can't export Blender model for use in jMonkeyEngine SDK

    - by Nathan Sabruka
    I have a scene rendered in blender called "civ1.blend" which contains multiple materials (for example, I have one called "white"). I want to use this model in jMonkeyEngine, so I used the OGRE exporter to create .scene and .material files. This gives me, for example, a civ1.scene file and a white.material file.However, when I then try to import civ1.scene into the jMonkeyEngine SDK, I get an error along the lines of "Cannot find material file 'civ1.material'". Like I said, I have a white.material file, but I do not have a civ1.material file. Did anyone encounter this problem? How do I fix this?

    Read the article

  • Move the home directory back to single partition

    - by Nathan J. Brauer
    I've seen a ton of tutorials on how to move your home directory to a separate partition. I want to do the opposite. I have two HDDs. One /home/ and the other is everything else (both drives have only one partition). I'm selling the computer but want to keep one of the hard drives. So, I'd like to move the home directory and system files back onto a single drive. Which ever way is quickest/easiest (separate partitions or all on one partition). Thank you!

    Read the article

  • Copying an SSH Public Key to a Server

    - by Nathan Arthur
    I'm attempting to setup a git repository on my Dreamhost web server by following the "Setup: For the Impatient" instructions here. I'm having difficulty setting up public key access to the server. After successfully creating my public key, I ran the following command: cat ~/.ssh/[MY KEY].pub | ssh [USER]@[MACHINE] "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys" ...replacing the appropriate placeholders with the correct values. Everything seemed to go through fine. The server asked for my password, and, as far as I can tell, executed the command. There is indeed a ~/.ssh/authorized_keys file on the server. The problem: When I try to SSH into the server, it still asks for my password. My understanding is that it shouldn't be asking for my password anymore. What am I missing?

    Read the article

  • One monitor getting spilled over into other monitor: how to do a 100% reset of gnome graphics configuration

    - by Paul Nathan
    I had to kill a VMWare process and afterwards, my monitor's configuration is buggy. I have 2 monitors in a side-by-side configuration. My right-hand monitor is the secondary monitor. Upon its right-hand side there are about 50 pixels showing from the left side of the lefthand monitor (ie, as if it was wrapped around). Further, my mouse clicks are registering as about 50 pixels sideways from where they should be. It's as if those 50 pixels between monitors got gobbled. What have I done? I've reset the screen configuration in multiple ways, using xrandr, multiple monitors app, etc. This persists in different side-by-side configurations, and also persists with another user. It does not occur with XFCE. Resetting the Window manager with the Compiz reset WM app does not fix this. I've concluded the burn-to-the-ground approach is likely the best, and would like to do a 100% reset of my graphics settings. It's an Intel integrated chipset. Removing ~/.config/monitors.xml did not work. Also, interestingly, the mouse can mouse-over the 50 errant pixels on the rhs of the right-hand monitor. I hypothesize that it's a compositing problem occurring at the layer where the background, selection, and clicks are caught. Also, inverting the right-hand monitor removes the issue, but renders the screen unusable. Even more datapoints: This happens in KDE as well Sometimes logging into Gnome and running xrandr --output DVI1 --auto resets it, but the issue immediately reappears when I press alt-tab. With Compiz Application Switch turned on, the workspace is 'pushed back' a bit, and the slice on the RHS follows it as well. I'm wondering if it's a flaw in the compiz workspace compositing configuration. I suspect the error was in the compositing configuration. I installed 11.10.

    Read the article

  • Ubuntu 12.04 using b43-fwcutter

    - by Nathan
    I have used 10.04 with the b43-fwcutter driver to drive my BCM4318 Broadcom card (a Linksys WPC54G v3) on my old Dell Inspiron 8100 for two years+ with no troubles. I just upgraded to 12.04 and although everything worked fine after install, before I added the b43-fwcutter driver, once I installed the driver, the system refuses to boot. Even before I install the Linksys card!! It just hangs on boot with graphical garbage on the screen. I tried several attempts to recover the system using the live CD, and finally reinstalled completely. I have been thru the cycle, install fresh system, verify everything works, then install b43-fwcutter and it is hung, several times. Consistent hard fail. The system runs fine on hardwire Ethernet, and wireless was fine on 10.04. But I cannot get there with 12.04. So after several attempts, I am now ready to admit defeat and ask for help. I have read every thread that search turned up, and either the advice is to do what I did, i.e. install fwcutter, or does not apply (Different Broadcom, STA, legacy, whatever) So what do I need to do to fix it? Or is the B43-fwcutter driver broken for 12.04? Thoughts? Tips? Log files needed??

    Read the article

  • How should I handle search engines auto-correcting the spelling of a site's name?

    - by Nathan G.
    A client's site and company is called 'Tranin Communications' (Tranin is her last name). It ranks well in searches for her name but rather poorly in searches for the name of her site/company. I realized that this is largely due to* search engines (Google especially) assuming that the query was misspelled and automatically including results for both 'train communications' and 'communications training'. Both of those queries yield many high-ranking sites that completely drown out hers. Sometimes Google even shows results for 'communications training' instead of 'tranin communications', hiding her site altogether. Is there a way to report an incorrect auto-correction to Google or something I can do to discourage this behavior (e.g. a meta tag)? My searches have come up cold, any suggestions would be appreciated. *I've come to this conclusion because her site ranks very highly when the same queries are put in quotes.

    Read the article

  • Still prompted for a password after adding SSH public key to a server

    - by Nathan Arthur
    I'm attempting to setup a git repository on my Dreamhost web server by following the "Setup: For the Impatient" instructions here. I'm having difficulty setting up public key access to the server. After successfully creating my public key, I ran the following command: cat ~/.ssh/[MY KEY].pub | ssh [USER]@[MACHINE] "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys" ...replacing the appropriate placeholders with the correct values. Everything seemed to go through fine. The server asked for my password, and, as far as I can tell, executed the command. There is indeed a ~/.ssh/authorized_keys file on the server. The problem: When I try to SSH into the server, it still asks for my password. My understanding is that it shouldn't be asking for my password anymore. What am I missing? EDIT: SSH -v Log: Macbook:~ michaeleckert$ ssh -v [USER]@[SERVER URL] OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011 debug1: Reading configuration data /etc/ssh_config debug1: /etc/ssh_config line 20: Applying options for * debug1: /etc/ssh_config line 53: Applying options for * debug1: Connecting to [SERVER URL] [[SERVER IP]] port 22. debug1: Connection established. debug1: identity file /Users/michaeleckert/.ssh/id_rsa type -1 debug1: identity file /Users/michaeleckert/.ssh/id_rsa-cert type -1 debug1: identity file /Users/michaeleckert/.ssh/id_dsa type -1 debug1: identity file /Users/michaeleckert/.ssh/id_dsa-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_6.2 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6+squeeze3 debug1: match: OpenSSH_5.5p1 Debian-6+squeeze3 pat OpenSSH_5* debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 none debug1: kex: client->server aes128-ctr hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Server host key: RSA [STRING OF NUMBERS AND LETTERS SEPARATED BY SEMI-COLONS] debug1: Host ‘[SERVER URL]' is known and matches the RSA host key. debug1: Found key in /Users/michaeleckert/.ssh/known_hosts:2 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,password debug1: Next authentication method: publickey debug1: Trying private key: /Users/michaeleckert/.ssh/id_rsa debug1: Trying private key: /Users/michaeleckert/.ssh/id_dsa debug1: Next authentication method: password [USER]@[SERVER URL]'s password: debug1: Authentication succeeded (password). Authenticated to [SERVER URL] ([[SERVER IP]]:22). debug1: channel 0: new [client-session] debug1: Requesting [email protected] debug1: Entering interactive session. debug1: Sending environment. debug1: Sending env LANG = en_US.UTF-8 Welcome to [SERVER URL] Any malicious and/or unauthorized activity is strictly forbidden. All activity may be logged by DreamHost Web Hosting. Last login: Sun Nov 3 12:04:21 2013 from [MY IP] [[SERVER NAME]]$

    Read the article

  • Blank screen when "boot from USB"

    - by Nathan
    OK so, here is what I have done: I downloaded the iso "ubuntu-12.04-desktop-amd64" I used "Universal-USB-Installer-1.9.0.0" to make a bootable USB I restart PC and change the boot option to USB HDD I get the menu to: Boot from USB Install to Hard drive Help etc When I click Boot from USB or Install to hard drive, loads of text flies past and then I get a blank screen and I cant see anything? What can I do so I can see the installation screen? Im using a dual monitor setup from my GFX card and my main display is on my HDMI port to my TV.

    Read the article

  • booting into 12.04 results in a purple sceen for just a second.

    - by Super Nathan
    I have a vanilla Ubuntu install running on an Ivy-Bridge ultrabook that is using Intel 4000 graphics. I have enabled autologin via a line in the lightdm config file. My boot is very fast, however, it is ugly. The screen will be black, all solid purple for a second, then Plymouth for a second, then desktop. I would really like to figure out what the solid purple is and how to remove it. I would like to either have a different color (black) or skipped entirely.

    Read the article

  • Chrome install failed on ubuntu 12.04

    - by Nathan
    I have tried sudo apt-get install -f and then sudo apt-get update but I still have the same dependency problems: dpkg: dependency problems prevent configuration of google-chrome-stable:i386: google-chrome-stable:i386 depends on xdg-utils And idea how to fix it? BTW, when I use sudo apt-get install -f, I got an output: After this operation, 119 MB disk space will be freed. Do you want to continue [Y/n]? y which seems to remove the files.

    Read the article

  • Static / Shared Helper Functions vs Built-In Methods

    - by Nathan
    This is a simple question but a design consideration that I often run across in my day to day development work. Lets say that you have a class that represents some kinds of collection. Public Class ModifiedCustomerOrders Public Property Orders as List(Of ModifiedOrders) End Class Within this class you do all kinds of important work, such as combining many different information sources and, eventually, build the Modified Customer Orders. Now, you have different processes that consume this class, each of which needs a slightly different slice of the ModifiedCustomerOrders items. To enable this, you want to add filtering functionality. How do you go about this? Do you: Add Filtering calls to the ModifiedCustomerOrders class so that you can say: MyOrdersClass.RemoveCanceledOrders() Create a Static / Shared "tooling" class that allows you to call: OrdersFilters.RemoveCanceledOrders(MyOrders) Create an extension method to accomplish the same feat as #2 but with less typing: MyOrders.RemoveCanceledOrders() Create a "Service" method that handles the getting of Orders as appropriate to the calling function, while using one of the previous approaches "under the hood". OrdersService.GetOrdersForProcessA() Others? I tend to prefer the tooling / extension method approaches as they make testing a little bit simpler. Although I dependency inject all my sourcing data into the ModifiedCustomerOrders, having it as part of the class makes it a little bit more complicated to test. Typically, I choose to use extension methods where I am doing parameterless transformations / filters. As they get more complex, I will move it into a static class instead. Thoughts on this approach? How would you approach it?

    Read the article

  • How to optimize a box2d simulation in action game?

    - by nathan
    I'm working on an action game and i use box2d for physics. The game use a tiled map. I have different types of body: Static ones used for tiles Dynamic ones for player and enemies Actually i tested my game with ~150 bodies and i have a 60fps constantly on my computer but not on my mobile (android). The FPS drop as the number of body increase. After having profiled the android application, i saw that the World.step took around 8ms in CPU time to execute. Here are few things to note: Not all the world is visible on screen, i use a scrolling system Enemies are constantly moving toward the player so there is alaways to force applied to their body Enemies need to collide between each others Enemies collide with tiles I also now that i can active/desactive or sleep/awake bodies. Considering the fact that only a part of the enemies are possibly displayed on screen, is there any optimizations i can do to reduce the execution time of box2d simulation? I found a guy trying an optimization based on distance of enemies from the player (link). But i seems like he just desactives far bodies (in my case, i could desactive bodies that are not visible). But my enemies need to move even when they are not visible on screen, and applying forces will not workd on inactive bodies. Should i play with sleeping bodies here? Also, enemies are composed by two fixtures and are constantly colliding with each others and with tiles but i really never need to get notified about that. Is there anything i can do to optimize this kind of scenario? Finally, am i wrong to try to run simulation at 60FPS on mobile and should i try to make it run at 30FPS?

    Read the article

  • Is it okay to introduce LESS to not so savvy UI Designers?

    - by Jason Nathan
    I just got a job as lead developer and I thought it would be best to seek the expertise of my peers (that's you) before proceeding! I had the opportunity to review my designers and they are mostly photoshop pros with dreamweaver as their main HTML/CSS editor. A more visual experience. I, on the other hand, have had much experience hand-writing all my code. From HTML markup to CSS. From my understanding, my designers have basic CSS knowledge and I am considering a simple 101 style set of tutorials for them to get a better grasp of markup before I moved into more advanced topics like accessibility and microformat markup. We need to get started up quickly. Do you think it's okay to dive into LESS from the get-go?

    Read the article

< Previous Page | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >