Search Results

Search found 19525 results on 781 pages for 'say'.

Page 399/781 | < Previous Page | 395 396 397 398 399 400 401 402 403 404 405 406  | Next Page >

  • The Incremental Architect&acute;s Napkin - #2 - Balancing the forces

    - by Ralf Westphal
    Originally posted on: http://geekswithblogs.net/theArchitectsNapkin/archive/2014/06/02/the-incremental-architectacutes-napkin---2---balancing-the-forces.aspxCategorizing requirements is the prerequisite for ecconomic architectural decisions. Not all requirements are created equal. However, to truely understand and describe the requirement forces pulling on software development, I think further examination of the requirements aspects is varranted. Aspects of Functionality There are two sides to Functionality requirements. It´s about what a software should do. I call that the Operations it implements. Operations are defined by expressions and control structures or calls to frameworks of some sort, i.e. (business) logic statements. Operations calculate, transform, aggregate, validate, send, receive, load, store etc. Operations are about behavior; they take input and produce output by considering state. I´m not using the term “function” here, because functions - or methods or sub-programs - are not necessary to implement Operations. Functions belong to a different sub-aspect of requirements (see below). Operations alone are not enough, though, to make a customer happy with regard to his/her Functionality requirements. Only correctly implemented Operations provide full value. This should make clear, why testing is so important. And not just manual tests during development of some operational feature, but automated tests. Because only automated tests scale when over time the number of operations increases. Without automated tests there is no guarantee formerly correct operations are still correct after more got added. To retest all previous operations manually is infeasible. So whoever relies just on manual tests is not really balancing the two forces Operations and Correctness. With manual tests more weight is put on the side of the scale of Operations. That might be ok for a short period of time - but in the long run it will bite you. You need to plan for Correctness in the long run from the first day of your project on. Aspects of Quality As important as Functionality is, it´s not the driver for software development. No software has ever been written to just implement some operation in code. We don´t need computers just to do something. All computers can do with software we can do without them. Well, at least given enough time and resources. We could calculate the most complex formulas without computers. We could do auctions with millions of people without computers. The only reason we want computers to help us with this and a million other Operations is… We don´t want to wait for the results very long. Or we want less errors. Or we want easier accessability to complicated solutions. So the main reason for customers to buy/order software is some Quality. They want some Functionality with a higher Quality (e.g. performance, scalability, usability, security…) than without the software. But Qualities come in at least two flavors: Most important are Primary Qualities. That´s the Qualities software truely is written for. Take an online auction website for example. Its Primary Qualities are performance, scalability, and usability, I´d say. Auctions should come within reach of millions of people; setting up an auction should be very easy; finding a suitable auction and bidding on it should be as fast as possible. Only if those Qualities have been implemented does security become relevant. A secure auction website is important - but not as important as a fast auction website. Nobody would want to use the most secure auction website if it was unbearably slow. But there would be people willing to use the fastest auction website even it was lacking security. That´s why security - with regard to online auction software - is not a Primary Quality, but just a Secondary Quality. It´s a supporting quality, so to speak. It does not deliver value by itself. With a password manager software this might be different. There security might be a Primary Quality. Please get me right: I don´t want to denigrate any Quality. There´s a long list of non-functional requirements at Wikipedia. They are all created equal - but that does not mean they are equally important for all software projects. When confronted with Quality requirements check with the customer which are primary and which are secondary. That will help to make good economical decisions when in a crunch. Resources are always limited - but requirements are a bottomless ocean. Aspects of Security of Investment Functionality and Quality are traditionally the requirement aspects cared for most - by customers and developers alike. Even today, when pressure rises in a project, tunnel vision will focus on them. Any measures to create and hold up Security of Investment (SoI) will be out of the window pretty quickly. Resistance to customers and/or management is futile. As long as SoI is not placed on equal footing with Functionality and Quality it´s bound to suffer under pressure. To look closer at what SoI means will help to become more conscious about it and make customers and management aware of the risks of neglecting it. SoI to me has two facets: Production Efficiency (PE) is about speed of delivering value. Customers like short response times. Short response times mean less money spent. So whatever makes software development faster supports this requirement. This must not lead to duct tape programming and banging out features by the dozen, though. Because customers don´t just want Operations and Quality, but also Correctness. So if Correctness gets compromised by focussing too much on Production Efficiency it will fire back. Customers want PE not just today, but over the whole course of a software´s lifecycle. That means, it´s not just about coding speed, but equally about code quality. If code quality leads to rework the PE is on an unsatisfactory level. Also if code production leads to waste it´s unsatisfactory. Because the effort which went into waste could have been used to produce value. Rework and waste cost money. Rework and waste abound, however, as long as PE is not addressed explicitly with management and customers. Thanks to the Agile and Lean movements that´s increasingly the case. Nevertheless more could and should be done in many teams. Each and every developer should keep in mind that Production Efficiency is as important to the customer as Functionality and Quality - whether he/she states it or not. Making software development more efficient is important - but still sooner or later even agile projects are going to hit a glas ceiling. At least as long as they neglect the second SoI facet: Evolvability. Delivering correct high quality functionality in short cycles today is good. But not just any software structure will allow this to happen for an indefinite amount of time.[1] The less explicitly software was designed the sooner it´s going to get stuck. Big ball of mud, monolith, brownfield, legacy code, technical debt… there are many names for software structures that have lost the ability to evolve, to be easily changed to accomodate new requirements. An evolvable code base is the opposite of a brownfield. It´s code which can be easily understood (by developers with sufficient domain expertise) and then easily changed to accomodate new requirements. Ideally the costs of adding feature X to an evolvable code base is independent of when it is requested - or at least the costs should only increase linearly, not exponentially.[2] Clean Code, Agile Architecture, and even traditional Software Engineering are concerned with Evolvability. However, it seems no systematic way of achieving it has been layed out yet. TDD + SOLID help - but still… When I look at the design ability reality in teams I see much room for improvement. As stated previously, SoI - or to be more precise: Evolvability - can hardly be measured. Plus the customer rarely states an explicit expectation with regard to it. That´s why I think, special care must be taken to not neglect it. Postponing it to some large refactorings should not be an option. Rather Evolvability needs to be a core concern for every single developer day. This should not mean Evolvability is more important than any of the other requirement aspects. But neither is it less important. That´s why more effort needs to be invested into it, to bring it on par with the other aspects, which usually are much more in focus. In closing As you see, requirements are of quite different kinds. To not take that into account will make it harder to understand the customer, and to make economic decisions. Those sub-aspects of requirements are forces pulling in different directions. To improve performance might have an impact on Evolvability. To increase Production Efficiency might have an impact on security etc. No requirement aspect should go unchecked when deciding how to allocate resources. Balancing should be explicit. And it should be possible to trace back each decision to a requirement. Why is there a null-check on parameters at the start of the method? Why are there 5000 LOC in this method? Why are there interfaces on those classes? Why is this functionality running on the threadpool? Why is this function defined on that class? Why is this class depending on three other classes? These and a thousand more questions are not to mean anything should be different in a code base. But it´s important to know the reason behind all of these decisions. Because not knowing the reason possibly means waste and having decided suboptimally. And how do we ensure to balance all requirement aspects? That needs practices and transparency. Practices means doing things a certain way and not another, even though that might be possible. We´re dealing with dangerous tools here. Like a knife is a dangerous tool. Harm can be done if we use our tools in just any way at the whim of the moment. Over the centuries rules and practices have been established how to use knifes. You don´t put them in peoples´ legs just because you´re feeling like it. You hand over a knife with the handle towards the receiver. You might not even be allowed to cut round food like potatos or eggs with it. The same should be the case for dangerous tools like object-orientation, remote communication, threads etc. We need practices to use them in a way so requirements are balanced almost automatically. In addition, to be able to work on software as a team we need transparency. We need means to share our thoughts, to work jointly on mental models. So far our tools are focused on working with code. Testing frameworks, build servers, DI containers, intellisense, refactoring support… That´s all nice and well. I don´t want to miss any of that. But I think it´s not enough. We´re missing mental tools, tools for making thinking and talking about software (independently of code) easier. You might think, enough of such tools already exist like all those UML diagram types or Flow Charts. But then, isn´t it strange, hardly any team is using them to design software? Or is that just due to a lack of education? I don´t think so. It´s a matter value/weight ratio: the current mental tools are too heavy weight compared to the value they deliver. So my conclusion is, we need lightweight tools to really be able to balance requirements. Software development is complex. We need guidance not to forget important aspects. That´s like with flying an airplane. Pilots don´t just jump in and take off for their destination. Yes, there are times when they are “flying by the seats of their pants”, when they are just experts doing thing intuitively. But most of the time they are going through honed practices called checklist. See “The Checklist Manifesto” for very enlightening details on this. Maybe then I should say it like this: We need more checklists for the complex businss of software development.[3] But that´s what software development mostly is about: changing software over an unknown period of time. It needs to be corrected in order to finally provide promised operations. It needs to be enhanced to provide ever more operations and qualities. All this without knowing when it´s going to stop. Probably never - until “maintainability” hits a wall when the technical debt is too large, the brownfield too deep. Software development is not a sprint, is not a marathon, not even an ultra marathon. Because to all this there is a foreseeable end. Software development is like continuously and foreever running… ? And sometimes I dare to think that costs could even decrease over time. Think of it: With each feature a software becomes richer in functionality. So with each additional feature the chance of there being already functionality helping its implementation increases. That should lead to less costs of feature X if it´s requested later than sooner. X requested later could stand on the shoulders of previous features. Alas, reality seems to be far from this despite 20+ years of admonishing developers to think in terms of reusability.[1] ? Please don´t get me wrong: I don´t want to bog down the “art” of software development with heavyweight practices and heaps of rules to follow. The framework we need should be lightweight. It should not stand in the way of delivering value to the customer. It´s purpose is even to make that easier by helping us to focus and decreasing waste and rework. ?

    Read the article

  • Object/Module not found: RDS from VB6 app to a Win2003 server

    - by Cyberherbalist
    I have a rather legacy application EXE written in VB6 and running on a Windows 2000 server that uses RDS (Remote Data Services) to access a business object DLL (also written in VB6) running on a Windows 2003 server. The DLL has never run on this server (we're moving the component off the old W2K server), but it is registered and defined as a component on the W2k+3 server. The specific code where the DLL is being called is: Private m_rdsDS As RDS.DataSpace Dim oARImport As Object Set oARImport = m_rdsDS.CreateObject("ARBatches.BL_ARBatches", txtWebServer) MsgBox oARImport.AddBatches(m_vConnParms, arbParseString, LinesFromFile) The CreateObject appears to work fine, but calling the method AddBatches raises the error number 8209 "Internet Server Error: Object/module not found." I'm leaning towards the idea that there is a permission issue somewhere at the root of the problem, but if this were the case, why wouldn't it say "You don't have permission"? I'd really like to rewrite the whole app but "they" won't let me.

    Read the article

  • Python - Check if numbers in list are factors of a number

    - by Zach
    Hey, I have a list of numbers (integers) (say, from 1 to 10). They're not necessarily consecutive, but they are in ascending order. I've prompted the user multiple times to enter a choice of the available numbers. When that number is entered, it is removed from the list along with any of its factors that may be there. I've prevented the user from selecting prime numbers. However, at some point in time, there may be non-prime numbers there, which have no factors remaining. I'm relatively new to Python, so I'm having trouble implementing: Checking if the number selected has no factors remaining (even if it is not prime). Checking if only prime numbers remain, or numbers without factors. I'm thinking of using for statements, but I'm not sure exactly how to implement them. Can anyone offer advice, or code? Thanks in advance... PS. In case anyone's wondering, I'm doing an implementation of the game of Taxman in Python.

    Read the article

  • Hash of unique value = unique hash?

    - by Nebs
    Theoretically does hashing a unique value yield a unique value? Let's say I have a DB table with 2 columns: id and code. id is an auto-incrementing int and code is a varchar. If I do ... $code = sha1($id); ... and then store $code into the same row as $id. Will my code column be unique as well? What about if I append the current time? eg: $code = sha1($id . time()); Thanks.

    Read the article

  • How to sketch out an event-driven system?

    - by Jordan
    I'm trying to design a system in Node.js (an attempt at solving one of my earlier problems, using Node's concurrency) but I'm running into trouble figuring out how to draw a plan of how the thing should operate. I'm getting very tripped up thinking in terms of callbacks instead of returned values. The flow isn't linear, and it's really boggling my ability to draft it. How does one draw out an operational flow for an event-driven system? I need something I can look at and say "Ok, yes, that's how it will work. I'll start it over here, and it will give me back these results over here." Pictures would be very helpful for this one. Thanks. Edit: I'm looking for something more granular than UML, specifically, something that will help me transition from a blocking and object-oriented programming structure, where I'm comfortable, to a non-blocking and event driven structure, where I'm unfamiliar.

    Read the article

  • C++ streams operator << and manipulators / formatters

    - by Ayman
    First, most of my recent work was Java. So even though I "know" C++, I do not want to write Java in C++. And C++ templates are one thing I will really miss when going back to Java. Now that this out of the way, if I want to do create a new stream formatter, say pic, that will have a single std::string parameter in it's constructor. I would like the user to be able to write something like: cout << pic("Date is 20../../..") << "100317" << endl; The output should be Date is 2010/03/17 How do I write the pic class? when the compiler sees the cout what are the underlying steps the compiler does?

    Read the article

  • Storing hierarchical (parent/child) data in Python/Django: MPTT alternative?

    - by Parand
    I'm looking for a good way to store and use hierarchical (parent/child) data in Django. I've been using django-mptt, but it seems entirely incompatible with my brain - I end up with non-obvious bugs in non-obvious places, mostly when moving things around in the tree: I end up with inconsistent state, where a node and its parent will disagree on their relationship. My needs are simple: Given a node: find its root find its ancestors find its descendants With a tree: easily move nodes (ie. change parent) My trees will be smallish (at most 10k nodes over 20 levels, generally much much smaller, say 10 nodes with 1 or 2 levels). I have to think there has to be an easier way to do trees in python/django. Are there other approaches that do a better job of maintaining consistency?

    Read the article

  • MinGW GCJ libiconv path problem

    - by Hussain
    I'm having a problem with the MinGW implementation of GCJ. I read that you have to install libiconv before you can use it. However, the documentation wasn't very specific, and it did not say where to extract the binaries and developer files (libiconv-bin and libiconv-lib). I have tried the following paths: $p = c:\mingw $p\libiconv-1.9.2-1-[bin|lib]\ $p\libiconv-[bin|lib]\ $p\mingw32\libiconv-1.9.2-1-[bin|lib] $p\mingw32[bin|lib]\libiconv $p\mingw[bin|lib]\liconv $p\bin\libiconv-1.9.2-1-[bin|lib] $p\bin\libiconv-[bin|lib] None of these work. Any help on where I'm supposed to put the libiconv files?

    Read the article

  • Collection.contains(Enum.Value) in HQL?

    - by Seth
    I'm a little confused about how to do something in HQL. So let's say I have a class Foo that I'm persisting in hibernate. It contains a set of enum values, like so: public class Foo { @CollectionOfElements private Set<Bar> barSet = new HashSet<Bar>(); //getters and setters here ... } and public enum Bar { A, B } Is there an HQL statement I can use to fetch only Foo instances who'se barSet containst Bar.B? List foos = session.createQuery("from Foo as foo " + "where foo.barSet.contains.Bar.B").list(); Or am I stuck fetching all Foo instances and filtering them out at the DAO level? List foos = session.createQuery("from Foo as foo").list(); List results = new ArrayList(); for(Foo f : foos) { if(f.barSet.contains(Bar.B)) results.add(f); } Thanks!

    Read the article

  • Need to get .obj file names of Executable(which one is crrently executing) at runtime programaticall

    - by Usman
    Suppose I have a VC++ project contains no of(say e.g 5) Source files(.cpp files),it will generate 5 .obj files(obj files corresponding to my .cpp's files not all kernel and OS layers including .obj files) e.g my project includes xyz_1.cpp,xyz_2.cpp,xyz_3.cpp,xyz_4.cpp,it will corresponds 4 respective .objs. By programtaically HOW CAN I TAKE AND GET THE NAMES OF THESE 4 .OBJ files at runtime(On run time I need to check how many obj files & names of those objs). REMEMBER I DON'T NEED ALL KERNEL AND OS LAYER .OBJS I ONLY NEED OBJS OF MY .CPPs. Regards Usman

    Read the article

  • Eclipse CDT: Import source / header files into my new project, without duplicating them

    - by Tom
    Hi all, Im sure there is a very simple solution for this. I have a bunch of .cpp / .h files from a project, say in directory ~/files On the other hand, I want to create a c++ project using eclipse to work on those files, so I put my workspace on ~/wherever. Then I create a c++ project: ~/wherever/project, and include the source files (located in /~files). The problem i'm having is that files are now duplicated in ~/wherever/project, and I would like to avoid that, specially so I know which copy of the file to commit. Is this possible? Im sure it is, but cant get it. Thanks in advance.

    Read the article

  • Storing and comparing biometric information

    - by Chathuranga Chandrasekara
    I am not sure whether this is the best place to post this. But this is strongly related with programming so decided to put this here. In general we use biometrics in computer applications say for authentication. Lets get 2 examples finger prints and facial recognition. In those cases how we keep the information for comparison. As an example we can't keep a image and process it every time. So what are the methodologies we use to store/determine the similarity in such cases? Are there any special algorithms that designed for that purposes.? (Ex : To return a approximately equal value for a finger print of a certain person every time)

    Read the article

  • Back button loop with IFRAMES

    - by Tim Jackson
    In my (school) website we use Iframes to display class blogs (on blogger). This works well EXCEPT if the user then clicks on (say) a photo inside the iframe. Blogger (in this case) then displays the photo in the whole browser window and the back button loops; that is if the back button is hit, the browser (IE, FF, Chrome) stays on the same page. The only way out is for the user to jump back two pages (which many of our users don't know how to do). I've read a lot of posts on back buttons and iframes and there doesn't appear to be a simple solution. Bear in mind that I don't have control over the iframe content (so no embedded back buttons in the frame are possible). Ideas anyone?

    Read the article

  • Flash / actionscript 3 sound delay.

    - by Ole
    Hey. Im working on a flash project where I am loading multiple sounds from external files. The problem is that when I play them within my project there is a small delay from when they should be played until they are actually playing. My sounds are very short and are loaded before the project is actually using them. I have looked up the problem online and it looks like the problem is not something that is only happening for me. But, non of the resources I found had any clear ways of fixing this. Some resources say that you can fix this my constantly having a sound playing in the background. I have that but it does not help. I have also looked at the actual sound file in a sound tool and there is a small delay before the sound starts, but it is very very small and should not result in the delay im seeing in my flash project. Does anyone know of a good way to fix it?

    Read the article

  • .net 4.0 with Code Access Security NetFx40_LegacySecurityPolicy won't work

    - by user210903
    Hi- I'm trying to use an external library DevExpress.XtraTreeList.v8.1.dll in my vsto office addin built using VS2010 beta 2. I am getting the following compile time error: DevExpress.Utils.AppareanceObject threw an exception -- System.NotSupportedException. The error message goes on to say that for compatibility reasons I can use the NetFx40_LegacySecurityPolicy switch. I've tried putting this config variable in all of the following locations: 1) my applications config file. 2) C:\Windows\Microsoft.NET\Framework\v4.0.21006\msbuild.exe.config 3) C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\dev.exe.config None of these have resolved the problem. Here were the references I've used. re-enable cas msdn.microsoft.com/en-us/library/ee191568(VS.100).aspx How do I get rid of this error so I can build the application in vs 2010?

    Read the article

  • How to digitally sign XML document using Oracle 9i PL/SQL

    - by Andris Krauze
    Let's say we have a simple XML document (doc.xml) like this: <?xml version="1.0" encoding="UTF-8"?> <Envelope xmlns="http://www.someexample.com/examples"> <Salutation Id="test"> Welcome! </Salutation> </Envelope> And a certificate file:test.p12 How to make a solution using Oracle 9i PL/SQL that digitally signs XML document according to http://www.w3.org/2000/09/xmldsig# Any Digital Signature form (e.g. Enveloped) and method (e.g. RSAwithSHA1) example would be great.

    Read the article

  • How to Pregreplace {number}) with \n{number})

    - by streetparade
    How can i replace {number}) with \n{number}) Say i have something like this 1) test string testing new string. 2) that is also a new string no new line. 3) here also no new lines. The output should be something like this 1) test string testing new string. 2) that is also a new string no new line. 3) here also no new lines. How can i do that with a regex?

    Read the article

  • Problem copying files through xcopy using VBScript

    - by sushant
    I am using VBScript to copy files using xcopy. The problem is that the folder path has to be entered by the user. Assuming I put that path in a variable, say h, how do I use this variable in the xcopy command? Here is the code I tried: Dim WshShell, oExec, g, h h = "D:\newfolder" g = "xcopy $h D:\y\ /E" Set WshShell = CreateObject("WScript.Shell") Set oExec = WshShell.Exec(g) I also tried &h but it did not work. Could anyone help me work out the correct syntax? Any help is appreciated.

    Read the article

  • LaTeX beamer free-flowing two column?

    - by anon
    So in standard LaTeX, there is \twocolumn, where I can just type text, and it'll go down the left side of the page, then continue at the top of the right side of the page. Now, I know that inside of a Beamer frame, I can manually create two columns, of various width, with text in them -- however, is there a way to have the text freely flow from one column to the next? [I.e. I want to say "this text goes in these two columns; and have beamer figure out which goes into which column]. Thanks!

    Read the article

  • How do I put array into columns

    - by mathew
    $db = mysql_connect("", "", "") or die("Could not connect."); mysql_select_db("",$db)or die(mysql_error()); $sql = "SELECT * FROM table where 1"; $pager = new pager($sql,'page',6); while($row = mysql_fetch_array($pager->result)) { echo $row['persons']."<br>"; } mysql_close($db); above code output : Mathew Thomas John Stewart Watson Kelvin What I need is it should split inot multiple columns say: Mathew Stewart Thomas Watson John Kelvin HOw do I do this??

    Read the article

  • Wpf nesting containers

    - by dortzur
    On a window control, my main container is a grid. My grid has 2 rows, one row definition is 50*, and the other is 250*. Now i want to add a right sidebar, lets say with a StackPanel. I would like to have a ListBox inside the StackPanel that aligns with the 50* grid row, so as the window height gets bigger, the ListBox size will also get bigger. My question is whether i can achieve this behavior while the ListBox is inside the StackPanel (which is nested inside the grid) or must the ListBox be placed directly inside the grid?

    Read the article

  • Creating a function in ruby

    - by Micke
    Hello, i have some problem with creating a function to my Rails app. I want it to work like this: str = "string here" if str.within_range?(3..30) puts "It's withing the range!" end To do that i added this into my application helper: def within_range?(range) if self.is_a?(String) (range).include?(self.size) elsif self.is_a?(Integer) (range).include?(self) end end But i get this error: undefined method `within_range?' for &quot;&quot;:String Do you know what the problem is? and could you please help me. If there is a easier way please say so then. Thanks in advance, Micke.

    Read the article

  • rendering JSON in GRAILS with part of the attributes of an object

    - by bsreekanth
    Hello, I am trying to build JSON from two fields. Say, I have a list of object(party), and I only need to pass 2 items as JSON pair. def list = getMyList() //it contains 2 party objects partyTo = array { for (i in list) { x partyId: i.id y partyName: i.toString() } } The JSON string is {"partyTo":[ {"partyId":12}, {"partyName":"Ar"}, {"partyId":9}, {"partyName":"Sr"} ] } when I extract it at the client, it is treated as 4 objects. I wanted as 2 objects, with the below format. {"partyTo":[ {"partyId":12 , "partyName":"Ar"}, {"partyId":9 , "partyName":"Sr"} ] } I'm getting 4 objects, probably because I use an array to build JSON. I'm new to groovy and JSON, so not sure about the right syntax combinations. Any help highly appreciated. thanks.

    Read the article

  • How to convert a Java object (bean) to key-value pairs (and vice versa)?

    - by Shahbaz
    Say I have a very simple java object that only has some getXXX and setXXX properties. This object is used only to handle values, basically a record or a type-safe (and performant) map. I often need to covert this object to key value pairs (either strings or type safe) or convert from key value pairs to this object. Other than reflection or manually writing code to do this conversion, what is the best way to achieve this? An example might be sending this object over jms, without using the ObjectMessage type (or converting an incoming message to the right kind of object).

    Read the article

  • Custom Forum ~ Suggestions for topics pages (eg. active topics page, unanswered topics page) +1 othe

    - by Joe
    Lets say I was to develop a small forum script, what types of topics pages would you find most helpful? I'd like to get an idea of what should be added. Viewing popular phpBB forums, they offer "Unanswered Posts", "Active Topics" and "Unread Topics". Obviously I'm already including a page to view your own topics and posts. My other question was, is it a big deal that I'm not tracking whether or not you've read a topic? I already provide the page showing all topics you've participated in... just not ones that you've "viewed". Would this be something forum users would only end up complaining about? I don't like the options available to track topics that are read/not read, that's the only reason I am not considering adding this feature at this stage. Many thanks everyone for any help.

    Read the article

< Previous Page | 395 396 397 398 399 400 401 402 403 404 405 406  | Next Page >