Search Results

Search found 14255 results on 571 pages for 'managed properties'.

Page 216/571 | < Previous Page | 212 213 214 215 216 217 218 219 220 221 222 223  | Next Page >

  • Pirates, Treasure Chests and Architectural Mapping

    Pirate 1: Why do pirates create treasure maps? Pirate 2: I do not know.Pirate 1: So they can find their gold. Yes, that was a bad joke, but it does illustrate a point. Pirates are known for drawing treasure maps to their most prized possession. These documents detail the decisions pirates made in order to hide and find their chests of gold. The map allows them to trace the steps they took originally to hide their treasure so that they may return. As software engineers, programmers, and architects we need to treat software implementations much like our treasure chest. Why is software like a treasure chest? It cost money, time,  and resources to develop (Usually) It can make or save money, time, and resources (Hopefully) If we operate under the assumption that software is like a treasure chest then wouldn’t make sense to document the steps, rationale, concerns, and decisions about how it was designed? Pirates are notorious for documenting where they hide their treasure.  Shouldn’t we as creators of software do the same? By documenting our design decisions and rationale behind them will help others be able to understand and maintain implemented systems. This can only be done if the design decisions are correctly mapped to its corresponding implementation. This allows for architectural decisions to be traced from the conceptual model, architectural design and finally to the implementation. Mapping gives software professional a method to trace the reason why specific areas of code were developed verses other options. Just like the pirates we need to able to trace our steps from the start of a project to its implementation,  so that we will understand why specific choices were chosen. The traceability of a software implementation that actually maps back to its originating design decisions is invaluable for ensuring that architectural drifting and erosion does not take place. The drifting and erosion is prevented by allowing others to understand the rational of why an implementation was created in a specific manor or methodology The process of mapping distinct design concerns/decisions to the location of its implemented is called traceability. In this context traceability is defined as method for connecting distinctive software artifacts. This process allows architectural design models and decisions to be directly connected with its physical implementation. The process of mapping architectural design concerns to a software implementation can be very complex. However, most design decision can be placed in  a few generalized categories. Commonly Mapped Design Decisions Design Rationale Components and Connectors Interfaces Behaviors/Properties Design rational is one of the hardest categories to map directly to an implementation. Typically this rational is mapped or document in code via comments. These comments consist of general design decisions and reasoning because they do not directly refer to a specific part of an application. They typically focus more on the higher level concerns. Components and connectors can directly be mapped to architectural concerns. Typically concerns subdivide an application in to distinct functional areas. These functional areas then can map directly back to their originating concerns.Interfaces can be mapped back to design concerns in one of two ways. Interfaces that pertain to specific function definitions can be directly mapped back to its originating concern(s). However, more complicated interfaces require additional analysis to ensure that the proper mappings are created. Depending on the complexity some Behaviors\Properties can be translated directly into a generic implementation structure that is ready for business logic. In addition, some behaviors can be translated directly in to an actual implementation depending on the complexity and architectural tools used. Mapping design concerns to an implementation is a lot of work to maintain, but is doable. In order to ensure that concerns are mapped correctly and that an implementation correctly reflects its design concerns then one of two standard approaches are usually used. All Changes Come From ArchitectureBy forcing all application changes to come through the architectural model prior to implementation then the existing mappings will be used to locate where in the implementation changes need to occur. Allow Changes From Implementation Or Architecture By allowing changes to come from the implementation and/or the architecture then the other area must be kept in sync. This methodology is more complex compared to the previous approach.  One reason to justify the added complexity for an application is due to the fact that this approach tends to detect and prevent architectural drift and erosion. Additionally, this approach is usually maintained via software because of the complexity. Reference:Taylor, R. N., Medvidovic, N., & Dashofy, E. M. (2009). Software architecture: Foundations, theory, and practice Hoboken, NJ: John Wiley & Sons  

    Read the article

  • Allow any arguments for a given command with sudo

    - by Mark L
    I have the following sudo config entry which I added via sudo visudo: mark ALL = NOPASSWD: /usr/bin/lxc-ls* I can run lxc-ls with my user fine but I can't append any parameters without it demanding I prefix the command with sudo. $ whoami mark $ lxc-ls test-container $ lxc-ls --fancy lxc-ls: error: You must be root to access advanced container properties. Try running: sudo /usr/bin/lxc-ls Any idea how I can edit via sudo visudo to allow for any argument after the command? I don't want to prefix the command with sudo as I'm using a python library to execute the command and it's being funny about sudo prefixes.

    Read the article

  • Tales from the Coal Face - Speeding up a C# compilation

    - by TATWORTH
    At one place, I was faced with a C# solution which when XML documentation was turned on, the compilation time increased from 45 seconds to over 8 minutes. This slowdown was unacceptable, however some digging revealed an excellent suggestion by Eric Woodruff at http://social.msdn.microsoft.com/Forums/en-US/devdocs/thread/9bbad4cc-e229-49da-a6f7-3cdf470ac53a/ where he suggested "just suppress the warning by entering it's number (1591 for C#) in the Suppress Warnings field on the Build tab of the project properties". I followed Eric's suggestion and the compilation time went back down to 45 seconds. Now that CS1591 is suppressed how was missing documentation to be found? All that was necessary was to run StyleCop!

    Read the article

  • Different Not Automatically Implies Better

    - by Alois Kraus
    Originally posted on: http://geekswithblogs.net/akraus1/archive/2013/11/05/154556.aspxRecently I was digging deeper why some WCF hosted workflow application did consume quite a lot of memory although it did basically only load a xaml workflow. The first tool of choice is Process Explorer or even better Process Hacker (has more options and the best feature copy&paste does work). The three most important numbers of a process with regards to memory are Working Set, Private Working Set and Private Bytes. Working set is the currently consumed physical memory (parts can be shared between processes e.g. loaded dlls which are read only) Private Working Set is the physical memory needed by this process which is not shareable Private Bytes is the number of non shareable which is only visible in the current process (e.g. all new, malloc, VirtualAlloc calls do create private bytes) When you have a bigger workflow it can consume under 64 bit easily 500MB for a 1-2 MB xaml file. This does not look very scalable. Under 64 bit the issue is excessive private bytes consumption and not the managed heap. The picture is quite different for 32 bit which looks a bit strange but it seems that the hosted VB compiler is a lot less memory hungry under 32 bit. I did try to repro the issue with a medium sized xaml file (400KB) which does contain 1000 variables and 1000 if which can be represented by C# code like this: string Var1; string Var2; ... string Var1000; if (!String.IsNullOrEmpty(Var1) ) { Console.WriteLine(“Var1”); } if (!String.IsNullOrEmpty(Var2) ) { Console.WriteLine(“Var2”); } ....   Since WF is based on VB.NET expressions you are bound to the hosted VB.NET compiler which does result in (x64) 140 MB of private bytes which is ca. 140 KB for each if clause which is quite a lot if you think about the actually present functionality. But there is hope. .NET 4.5 does allow now C# expressions for WF which is a major step forward for all C# lovers. I did create some simple patcher to “cross compile” my xaml to C# expressions. Lets look at the result: C# Expressions VB Expressions x86 x86 On my home machine I have only 32 bit which gives you quite exactly half of the memory consumption under 64 bit. C# expressions are 10 times more memory hungry than VB.NET expressions! I wanted to do more with less memory but instead it did consume a magnitude more memory. That is surprising to say the least. The workflow does initialize in about the same time under x64 and x86 where the VB code does it in 2s whereas the C# version needs 18s. Also nearly ten times slower. That is a too high price to pay for any bigger sized xaml workflow to convert from VB.NET to C# expressions. If I do reduce the number of expressions to 500 then it does need 400MB which is about half of the memory. It seems that the cost per if does rise linear with the number of total expressions in a xaml workflow.  Expression Language Cost per IF Startup Time C# 1000 Ifs x64 1,5 MB 18s C# 500 Ifs x64 750 KB 9s VB 1000 Ifs x64 140 KB 2s VB 500 Ifs x64 70 KB 1s Now we can directly compare two MS implementations. It is clear that the VB.NET compiler uses the same underlying structure but it has much higher offset compared to the highly inefficient C# expression compiler. I have filed a connect bug here with a harsher wording about recent advances in memory consumption. The funniest thing is that one MS employee did give an Azure AppFabric demo around early 2011 which was so slow that he needed to investigate with xperf. He was after startup time and the call stacks with regards to VB.NET expression compilation were remarkably similar. In fact I only found this post by googling for parts of my call stacks. … “C# expressions will be coming soon to WF, and that will have different performance characteristics than VB” … What did he know Jan 2011 what I did no know until today? ;-). He knew that C# expression will come but that they will not be automatically have better footprint. It is about time to fix that. In its current state C# expressions are not usable for bigger workflows. That also explains the headline for today. You can cheat startup time by prestarting workflows so that the demo looks nice and snappy but it does hurt scalability a lot since you do need much more memory than necessary. I did find the stacks by enabling virtual allocation tracking within XPerf which is still the best tool out there. But first you need to look at your process to check where the memory is hiding: For the C# Expression compiler you do not need xperf. You can directly dump the managed heap and check with a profiler of your choice. But if the allocations are happening on the Private Data ( VirtualAlloc ) you can find it with xperf. There is a nice video on channel 9 explaining VirtualAlloc tracking it in greater detail. If your data allocations are on the Heap it does mean that the C/C++ runtime did create a heap for you where all malloc, new calls do allocate from it. You can enable heap tracing with xperf and full call stack support as well which is doable via xperf like it is shown also on channel 9. Or you can use WPRUI directly: To make “Heap Usage” it work you need to set for your executable the tracing flags (before you start it). For example devenv.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\devenv.exe DWORD TracingFlags 1 Do not forget to disable it after you did complete profiling the process or it will impact the startup time quite a lot. You can with xperf attach directly to a running process and collect heap allocation information from a gone wild process. Very handy if you need to find out what a process was doing which has arrived in a funny state. “VirtualAlloc usage” does work without explicitly enabling stuff for a specific process and is always on machine wide. I had issues on my Windows 7 machines with the call stack collection and the latest Windows 8.1 Performance Toolkit. I was told that WPA from Windows 8.0 should work fine but I do not want to downgrade.

    Read the article

  • ubuntu 12.04 how do I select a custom program to open specific file type

    - by user68477
    I want to set a filetype to be opened by a specific program other than ubuntu's default. I usually right click properties open with and select the application I need. This however does not work in this case. The application I want is not shown in the "open with" dialog and there apparently is no way I can browse to it or type in a custom command like I used to in 10.04. Is this a bug that I should file or a feature that can be worked around?

    Read the article

  • How Uranium Refinement Works [Video]

    - by Jason Fitzpatrick
    While building a nuclear weapon is a complex task in and of itself, the most difficult part is refining uranium. In this informative video, Bill Hammack explains. Weapons and power plants require uranium that contains a greater amount of the isotope uranium-235 than found in natural uranium, which is mostly uranium-238. He outlines the key difficulty in separating the two isotope: They have nearly identical properties. He explains the two key methods for separation: Gas diffusion and centrifuges. What Keeps Nuclear Weapons from Proliferating HTG Explains: What Is Two-Factor Authentication and Should I Be Using It? HTG Explains: What Is Windows RT and What Does It Mean To Me? HTG Explains: How Windows 8′s Secure Boot Feature Works & What It Means for Linux

    Read the article

  • If I create a link to a folder, how can I get from that linked folder to the "real" folder from within Nautilus?

    - by snowguy
    Say I have a folder several layers down in my documents folder. And I want easy access to it from my desktop. To do that I: Go to the parent folder in Nautilus. Right click on the folder's Icon and choose Make Link Cut / Paste the new "Link to ..." folder onto my desktop. Great. And mostly this works fine for me. But suppose I want to get to that folder's parent. I can of course get there using the original path--what Nautilus calls the "link path" which I can see in the properties of the folder. But that seems harder than it ought to be. How can I click on the folder and go to the link path directly?

    Read the article

  • Sample code and slides for my TechDays10 (Belgium) talks

    - by Laurent Bugnion
    The source code for my MVVM talk titled “Understanding the MVVM Pattern” given at TechDays 2010 in Antwerpen, Belgium, is available online. It is actually the same code than the MIX10 one, but I added the Windows Phone 7 MVVM Light application (available in the folder titled “Mix10.MvvmDemo2-End”. Note: before unpacking the zip file, you should right click on it, and select properties / Unblock. I also published the slides for my two talks: Understanding the MVVM Pattern A day in the life of a WPF/SL integrator As far as I know, the videos will be online soon, stay tuned and I will announce when it is the case. Get Started page for the MVVM Light Toolkit: http://www.galasoft.ch/mvvm/getstarted   Laurent Bugnion (GalaSoft) Subscribe | Twitter | Facebook | Flickr | LinkedIn

    Read the article

  • Targeting .Net framework version 3.0. (4 replies)

    I have developed a VB.NET application and am trying to target .net framework V3.0. The project was initially developed using Visual Studio 2005. I am now using VS 2008 Professional. I go to project\properties\compile\advanced compile options. From the &quot;Target Framework&quot; dropdown list box, I select .NET Framework 3.0. VS informs me that it needs to close and re open the project. Fine. Once the proj...

    Read the article

  • Nautilus uses different permissions for mounted drives

    - by farhad0011
    I've written two bash scripts to give read-only or read/write access to my NTFS partition: read-only access: sudo umount /media/Data_Drive/ sudo mount -t ntfs-3g -o ro,user,auto,nls=utf8,umask=0000,uid=1000 /dev/sda2 /media/Data_Drive read/write access: sudo umount /media/Data_Drive/ sudo mount -t ntfs-3g -o rw,user,auto,nls=utf8,umask=0000,uid=1000 /dev/sda2 /media/Data_Drive It works perfectly if I only use terminal to work with the files. It also works with Nautilus in read-only mode but not in the read/write mode. In fact, Nautilus gives me an error when I try to copy a file to Data_Drive saying "The destination is read-only". More funny, when I look at the permissions (by right-clicking on Data_Drive and then properties-permissions) I have all the required permissions to write a file in Data_Drive! I am so confused why Nautilus behaves strangely. I appreciate if anybody could solve the mystery!

    Read the article

  • Why is this happening with the wine menu?

    - by Patrick
    Some of the items in the Wine menu are given a prefix that is their entire path. The items that don't have the long prefix seem to work fine, but those that do, don't respond to the Properties button or double-click in the menu editor. They take a lot of space, and look ugly, but I can't rename them. I've tried editing their associated files, there doesn't appear to be anything different about them to the ones that are working fine. They weren't always like that - it just happened after an upgrade one day and it's been like that ever since.

    Read the article

  • Debugging-Setting Consoles in Games

    - by ShrimpCrackers
    Right now I have the graphical and input portions of a console for my game (command parsing hasn't been implemented yet). I was wondering how you would go about making changes to properties in game objects. For example, if I typed in the console: skeletonMonster maxHP 20 That would change all of the existing in-game skeletons' max hit points to 20. After you parse this information what are some ways to change the value? How can I change the variable(s) without violating information hiding? I'd like to implement this so I don't have to change variables in the code and recompile every time while playtesting.

    Read the article

  • Google analytics/adwords account and leaking of private data

    - by Satellite
    I am frequently asked to log into clients google analytics and adwords accounts. If I forget to log out before visiting other google properties (google search, youtube etc), this leaves tracks of my views/searches etc, exposing my activities to the client. Summary: Client gives me access to their Google Analytics / AdWords account I log into clients Analytics account and do some stuff Then in another tab I perform some related google searches to solve some related issues Issues solved, I then close the Analytics tab I then visit google.com, perform some unrelated searches I then visit YouTube, view some unrelated videos All Web and YouTube searches are recorded in clients google account, thus leaking potentially sensitive data Even assuming that I remember to log out correctly at step 4 (as I do 95% of the time), anything I do at step 3 is exposed to the client. I would be surprised if this is not a very common issue. I'm looking for a technical solution to ensure that this can never happen. Any ideas?

    Read the article

  • Implementing Ads on any page in your Windows 8 XAML app–part 2

    - by nmarun
    In my previous article , you saw how you can start implementing ads on some of the page templates. In this one, we’ll see how we can add something called ‘interstitial ads’ – ads that appear as part of the content in your app. I have added a Grouped Items page to my project. My data model is set to show a few appliances. I have a BaseModel class and the ApplianceModel that inherits the BaseModel class has two properties to represent an appliance. The ProductHolder acts as a container for a list of...(read more)

    Read the article

  • Places Folders Open in Archive Manager

    - by PansophySR
    Am relatively new to Ubuntu. Currently running 10.10, which was an upgrade from 10.4, which was an upgrade from 9.10, which was a fresh install. Have never compressed anything in Ubuntu, but because I wanted to use the contents of a large folder on a Windows machine, I installed 7zip. Using Places, I navigated to the folder I wanted to compress, right-clicked, chose Compress, selected 7-zip and started the compression. This took many minutes to complete (the final 7z file is over 2.2 GB), but when I copied it to the windows machine, 7-zip handles it fine. However, now when I open Places, the Home Folder, User folder, Documents, Music, Pictures, Videos and Downloads all open the Archive Manager which gives an error message that it "Could not create the archive" because the "Archive type not supported." If I open Places/Computer choose the usr folder from places on the left and right-click/Properties on any of the folders, Music for instance, there is no place to change the "open with." Anyone know how to get this working again.

    Read the article

  • Why are Back In Time snapshots so large?

    - by Chethan S.
    I just backed up the contents of my home partition onto my external hard drive using Back In Time. I browsed to the backed up contents in the external drive and under properties it showed me the size as 9.6 GB. As I read that in next snapshots I create, Back In Time does not backup everything but creates hard links for older contents and saves newer contents, I wanted to test it. So I copied two small files into my home partition and ran 'Take Snapshot' again. The operation completed within a minute - first it checked previous snapshot, assessed the changes, detected two new files and synced them. After this when I browsed to the backed up contents, I was surprised to see the newer and older backup taking up 9.6 GB each. Isn't this a waste of hard drive space? Or did I interpret something wrongly?

    Read the article

  • No sound in 12.04 on VirtualBox

    - by john crisp
    No sound when installed in VirtualBox. When I boot from the live CD in Windows, sound works fine on my speakers. When in boot the live CD in VirtualBox it does not see my speakers. In sound properties only digital output built in S/PDIF and headphones! I've done the pavcontrol - alsamixer - all settings are OK. I've tried both 32/64 versions of Ubuntu. Running current version VirtualBox. System: Windows 7 64 - i5. What am I overlooking?

    Read the article

  • Why setter method when getter method enough in PHP OOP

    - by phphunger
    I am practicing OOP with PHP, and I am struck at setter and getter methods. I can directly access the class properties and methods with getter method then what's the use of setter method? See my example. <?php class MyClass{ public $classVar = "Its a class variable"; public function Getter(){ return $this -> classVar; } } $obj = new MyClass; echo $obj -> Getter(); ?>

    Read the article

  • Access Control Service V2 and Facebook Integration

    - by Your DisplayName here!
    I haven’t been blogging about ACS2 in the past because it was not released and I was kinda busy with other stuff. Needless to say I spent quite some time with ACS2 already (both in customer situations as well as in the classroom and at conferences). ACS2 rocks! It’s IMHO the most interesting and useful (and most unique) part of the whole Azure offering! For my talk at VSLive yesterday, I played a little with the Facebook integration. See Steve’s post on the general setup. One claim that you get back from Facebook is an access token. This token can be used to directly talk to Facebook and query additional properties about the user. Which properties you have access to depends on which authorization your Facebook app requests. You can specify this in the identity provider registration page for Facebook in ACS2. In my example I added access to the home town property of the user. Once you have the access token from ACS you can use e.g. the Facebook SDK from Codeplex (also available via NuGet) to talk to the Facebook API. In my sample I used the WIF ClaimsAuthenticationManager to add the additional home town claim. This is not necessarily how you would do it in a “real” app. Depends ;) The code looks like this (sample code!): public class ClaimsTransformer : ClaimsAuthenticationManager {     public override IClaimsPrincipal Authenticate( string resourceName, IClaimsPrincipal incomingPrincipal)     {         if (!incomingPrincipal.Identity.IsAuthenticated)         {             return base.Authenticate(resourceName, incomingPrincipal);         }         string accessToken;         if (incomingPrincipal.TryGetClaimValue( "http://www.facebook.com/claims/AccessToken", out accessToken))         {             try             {                 var home = GetFacebookHometown(accessToken);                 if (!string.IsNullOrWhiteSpace(home))                 {                     incomingPrincipal.Identities[0].Claims.Add( new Claim("http://www.facebook.com/claims/HomeTown", home));                 }             }             catch { }         }         return incomingPrincipal;     }      private string GetFacebookHometown(string token)     {         var client = new FacebookClient(token);         dynamic parameters = new ExpandoObject();         parameters.fields = "hometown";         dynamic result = client.Get("me", parameters);         return result.hometown.name;     } }  

    Read the article

  • Why won't Remmina connect to Windows 7 Remote Desktop?

    - by rfc1484
    I'm using Ubuntu and I'm trying to connect to another machine in a different network using remote desktop. In Windows7 I have made the following in order to activate remote desktop: I've gone to computer - properties - remote settings I've selected the option: "Allow connections from computers running any version of Remote Desktop I've opened "Windows Firewall with Advanced Security" In inbound rules I've enabled the rules for remote desktop (public and domain) I have also installed Remmina in the Ubuntu machine. For configuring it I did the following steps: Selected the RDP protocol In the server input I have written the Windows machine public IP. In username / password I have typed my login credentials (the same as my Windows admin account) But when I try to connect I get this error message: "Unable to connect to RDP server 89.130.251.160" If I ping my Windows7 machine, I have a correct response. Any suggestions?

    Read the article

  • pop up html as javascript string instead of hidden div for seo [closed]

    - by user1324762
    Possible Duplicate: How bad is it to use display: none in CSS? I have heard that using display:none or visibility:hidden css properties are not a very good idea for seo purposes. I have about 4 different pop up windows to display and each one has about 20 words inside it. I can create hidden divs. Another option is to store div html elements as javascript string. In this way pop up html elements will be generated from javascript string. This will be still faster than using ajax since the data is static. Is this method absolutely safe for SEO? P.S.: I was just asking about similar question on http://stackoverflow.com/questions/12389075/storing-data-in-javascript-array-for-further-use, but this one is different, it is about static data and about SEO.

    Read the article

  • How get and set accessors work

    - by Chris Halcrow
    The standard method of implementing get and set accessors in C# and VB.NET is to use a public property to set and retrieve the value of a corresponding private variable. Am I right in saying that this has no effect of different instances of a variable? By this I mean, if there are different instantiations of an object, then those instances and their properties are completely independent right? So I think my understanding is correct that setting a private variable is just a construct to be able to implement the get and set pattern? Never been 100% sure about this.

    Read the article

  • EPM 11.1.2 - Receive Anonymous Level Security token message in IE8 when trying to access Shared Services or Workspace URL

    - by Ahmed A
    If you get "Receive Anonymous Level Security token" message in IE8 when trying to access Shared Services or Workspace URL.Workaround:a. Go to Start > Run and enter dcomcnfgb. Expand Component Services, Expand Computers and right click on My Computer and select Propertiesc. Click on the Default Properties tab.  Change the Default Authentication Level to Connect.  Click apply and then OK.d. Launch the IE browser again and you will be able to access the URL.

    Read the article

  • Visual Studio 2010 - Faster Startup with /nosplash

    - by MikeParks
    I read a blog the other day about the /nosplash switch in Visual Studio. Apparently, it's been around a while and I'm a little late on finding out about it. I figured I'd share it for those of you that come across this and didn't know about it as well. Basically all it does is turn off the Visual Studio splash screen which speeds up initial startup time. It's not a big difference but every little bit helps. I choose speed over looks. You can set the switch by right clicking on Visual Studio, selecting Properties, and adding "/nosplash" on the target Property, so it will look like this: "C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" /nosplash. Feel free to try it out and see if you like it. You can always change it back by just removing the /nosplash switch when you're done testing. There are plenty more Visual Studio switches out there but this is the main one that came in handy for me.   - Mike

    Read the article

  • Printing Problem on Shared Printer

    - by paulus_almighty
    I'm using Ubuntu 11.10 on two machines. One has a USB printer connected. I want to share this printer with the other over the wireless network. Under Printing > Server > Settings: I have Publish shared printers connected to this system and Allow printing from the internet enabled. All other checkboxes are disabled. When I right click on the printer icon, I can see enabled and shared are ticked. On my other machine, I can now click on add network printer. It finds the machine name of the server and correctly identifies the printer. However, print test page fails. Under printer properties the printer state says: Processing - Unable to connect to printer; will retry in 30 seconds... What's gone wrong?

    Read the article

< Previous Page | 212 213 214 215 216 217 218 219 220 221 222 223  | Next Page >