Monthly Archives

Articles indexed in November 2012

Page 160/450 | < Previous Page | 156 157 158 159 160 161 162 163 164 165 166 167  | Next Page >

  • Solaris 11.1 changes building of code past the point of __NORETURN

    - by alanc
    While Solaris 11.1 was under development, we started seeing some errors in the builds of the upstream X.Org git master sources, such as: "Display.c", line 65: Function has no return statement : x_io_error_handler "hostx.c", line 341: Function has no return statement : x_io_error_handler from functions that were defined to match a specific callback definition that declared them as returning an int if they did return, but these were calling exit() instead of returning so hadn't listed a return value. These had been generating warnings for years which we'd been ignoring, but X.Org has made enough progress in cleaning up code for compiler warnings and static analysis issues lately, that the community turned up the default error levels, including the gcc flag -Werror=return-type and the equivalent Solaris Studio cc flags -v -errwarn=E_FUNC_HAS_NO_RETURN_STMT, so now these became errors that stopped the build. Yet on Solaris, gcc built this code fine, while Studio errored out. Investigation showed this was due to the Solaris headers, which during Solaris 10 development added a number of annotations to the headers when gcc was being used for the amd64 kernel bringup before the Studio amd64 port was ready. Since Studio did not support the inline form of these annotations at the time, but instead used #pragma for them, the definitions were only present for gcc. To resolve this, I fixed both sides of the problem, so that it would work for building new X.Org sources on older Solaris releases or with older Studio compilers, as well as fixing the general problem before it broke more software building on Solaris. To the X.Org sources, I added the traditional Studio #pragma does_not_return to recognize that functions like exit() don't ever return, in patches such as this Xserver patch. Adding a dummy return statement was ruled out as that introduced unreachable code errors from compilers and analyzers that correctly realized you couldn't reach that code after a return statement. And on the Solaris 11.1 side, I updated the annotation definitions in <sys/ccompile.h> to enable for Studio 12.0 and later compilers the annotations already existing in a number of system headers for functions like exit() and abort(). If you look in that file you'll see the annotations we currently use, though the forms there haven't gone through review to become a Committed interface, so may change in the future. Actually getting this integrated into Solaris though took a bit more work than just editing one header file. Our ELF binary build comparison tool, wsdiff, actually showed a large number of differences in the resulting binaries due to the compiler using this information for branch prediction, code path analysis, and other possible optimizations, so after comparing enough of the disassembly output to be comfortable with the changes, we also made sure to get this in early enough in the release cycle so that it would get plenty of test exposure before the release. It also required updating quite a bit of code to avoid introducing new lint or compiler warnings or errors, and people building applications on top of Solaris 11.1 and later may need to make similar changes if they want to keep their build logs similarly clean. Previously, if you had a function that was declared with a non-void return type, lint and cc would warn if you didn't return a value, even if you called a function like exit() or panic() that ended execution. For instance: #include <stdlib.h> int callback(int status) { if (status == 0) return status; exit(status); } would previously require a never executed return 0; after the exit() to avoid lint warning "function falls off bottom without returning value". Now the compiler & lint will both issue "statement not reached" warnings for a return 0; after the final exit(), allowing (or in some cases, requiring) it to be removed. However, if there is no return statement anywhere in the function, lint will warn that you've declared a function returning a value that never does so, suggesting you can declare it as void. Unfortunately, if your function signature is required to match a certain form, such as in a callback, you not be able to do so, and will need to add a /* LINTED */ to the end of the function. If you need your code to build on both a newer and an older release, then you will either need to #ifdef these unreachable statements, or, to keep your sources common across releases, add to your sources the corresponding #pragma recognized by both current and older compiler versions, such as: #pragma does_not_return(exit) #pragma does_not_return(panic) Hopefully this little extra work is paid for by the compilers & code analyzers being able to better understand your code paths, giving you better optimizations and more accurate errors & warning messages.

    Read the article

  • Query Tuning Mastery at PASS Summit 2012: The Demos

    - by Adam Machanic
    For the second year in a row, I was asked to deliver a 500-level "Query Tuning Mastery" talk in room 6E of the Washington State Convention Center, for the PASS Summit. ( Here's some information about last year's talk, on workspace memory. ) And for the second year in a row, I had to deliver said talk at 10:15 in the morning, in a room used as overflow for the keynote, following a keynote speaker that didn't stop speaking on time. Frustrating! Last Thursday, after very, very quickly setting up and...(read more)

    Read the article

  • Responding to Invites

    - by Daniel Moth
    Following up from my post about Sending Outlook Invites here is a shorter one on how to respond. Whatever your choice (ACCEPT, TENTATIVE, DECLINE), if the sender has not unchecked the "Request Response" option, then send your response. Always send your response. Even if you think the sender made a mistake in keeping it on, send your response. Seriously, not responding is plain rude. If you knew about the meeting, and you are happy investing your time in it, and the time and location work for you, and there is an implicit/explicit agenda, then ACCEPT and send it. If one or more of those things don't work for you then you have a few options. Send a DECLINE explaining why. Reply with email to ask for further details or for a change to be made. If you don’t receive a response to your email, send a DECLINE when you've waited enough. Send a TENTATIVE if you haven't made up your mind yet. Hint: if they really require you there, they'll respond asking "why tentative" and you have a discussion about it. When you deem appropriate, instead of the options above, you can also use the counter propose feature of Outlook but IMO that feature has questionable interaction model and UI (on both sender and recipient) so many people get confused by it. BTW, two of my outlook rules are relevant to invites. The first one auto-marks as read the ACCEPT responses if there is no comment in the body of the accept (I check later who has accepted and who hasn't via the "Tracking" button of the invite). I don’t have a rule for the DECLINE and TENTATIVE cause typically I follow up with folks that send those.   The second rule ensures that all Invites go to a specific folder. That is the first folder I see when I triage email. It is also the only folder which I have configured to show a count of all items inside it, rather than the unread count - when sending a response to an invite the item disappears from the folder and hence it is empty and not nagging me. Comments about this post by Daniel Moth welcome at the original blog.

    Read the article

  • Sending Outlook Invites

    - by Daniel Moth
    Sending an Outlook invite for a meeting (also referred to as S+ in Microsoft) is a simple thing to get right if you just run the quick mental check below, which is driven by visual cues in the Outlook UI. I know that some folks don’t do this often or are new to Outlook, so if you know one of those folks share this blog post with them and if they read nothing else ask them to read step 7. Add on the To line the folks that you want to be at the meeting. Indicate optional invitees. Click on the “To” button to bring up the dialog that lets you move folks to be Optional (you can also do this from the Scheduling Assistant). Set the Reminder according to the attendee that has to travel the most. 5 minutes is the minimum. Use the Response Options and uncheck the "Request Response" if your event is going ahead regardless of who can make it or not, i.e. if everyone is optional. Don’t force every recipient to make an extra click, instead make the extra click yourself - you are the organizer. Add a good subject Make the subject such that just by reading it folks know what the meeting is about. Examples, e.g. "Review…", "Finalize…", "XYZ sync up" If this is only between two people and what is commonly referred to as a one to one, the subject would be something like "MyName/YourName 1:1" Write the subject in such a way that when the recipient sees this on their calendar among all the other items, they know what this meeting is about without having to see location, recipients, or any other information about the invite. Add a location, typically a meeting room. If recipients are from different buildings, schedule it where the folks that are doing the other folks a favor live. Otherwise schedule it wherever the least amount of people will have to travel. If you send me an invite to come to your building, and there is more of us than you, you are silently sending me the message that you are doing me a favor so if you don’t want to do that, include a note of why this is in your building, e.g. "Sorry we are slammed with back to back meetings today so hope you can come over to our building". If this is in someone's office, the location would be something like "Moth's office (7/666)" where in parenthesis you see the office location. If some folks are remote in another building/country, or if you know you picked a time which wasn't free for everyone, add an Online option (click the Lync Meeting button). Add a date and time. This MUST be at a time that is showing on the recipients’ calendar as FREE or at worst TENTATIVE. You can check that on the Scheduling Assistant. The reality is that this is not always possible, so in that case you MUST say something about it in the Invite Body, e.g. "Sorry I can see X has a conflict, but I cannot find a better slot", or "With so many of us there are some conflicts and I cannot find a better slot so hope this works", or "Apologies but due to Y we must have this meeting at this time and I know there are some conflicts, hope you can make it anyway". When you do that, I better not be able to find a better slot myself for all of us, and of course when you do that you have implicitly designated the Busy folks as optional. Finally, the body of the invite. This has the agenda of the meeting and if applicable the courtesy apologies due to messing up steps 6 & 7. This should not be the introduction to the meeting, in other words the recipients should not be surprised when they see the invite and go to the body to read it. Notifying them of the meeting takes place via separate email where you explain the purpose and give them a heads up that you'll be sending an invite. That separate email is also your chance to attach documents, don’t do that as part of the invite. TIP: If you have sent mail about the meeting, you can then go to your sent folder to select the message and click the "Meeting" button (Ctrl+Alt+R). This will populate the body with the necessary background, auto select the mandatory and optional attendees as per the TO/CC line, and have a subject that may be good enough already (or you can tweak it). Long to write, but very quick to remember and enforce since most of it is common sense and the checklist is driven of the visual cues in the UI you use to send the invite. Comments about this post by Daniel Moth welcome at the original blog.

    Read the article

  • Get external metadata with streamripper using python script

    - by user72379
    Hi I like using streamripper to rip music from the web. I have a favorite radio station that doesn't have the metadata for the songs, so I have to screen scrape it from its website manually. I created this neat python script in the format that the docs suggest, and linked the address in the GUI for streamriper. But it still doesn't work, any one know how to make it work..? I know it used to work. It gives you a sample here: http://streamripper.sourceforge.net/history.php import http import time import re u = 'SEE IMAGE FOR THIS URL' s = http.Session(0, 0) s.add_headers(h, persistent=1) while 1: c = unicode(s.get(u)) pat = r'class="title"([^<]+)([^<]+)' m = re.search(pat, c) title = m.group(1) artist = m.group(2) print 'TITLE='+title+'\n'+'ARTIST='+artist+'\n.\n' time.sleep(30) [img]http://s11.postimage.org/sok928lsz/urlstream.png[/img] I put the address to the script here: [img]http://s17.postimage.org/4bhmhi4yn/streamripper.png[/img] I've tried putting it in the root of the streamripper application and doing this: lax.py I've even compiled it to a EXE, and tried linking to that.. nothing What am I doing wrong?

    Read the article

  • Immutable Method Java

    - by Chris Okyen
    In Java, there is the final keyword in lieu of the const keyword in c and c++. In the latter languages their is mutable and immutable methods such as stated in one answer by Johannes Schaub - litb the question how-many-and-which-are-the-uses-of-const-in-ce Use const to tell others methods won't change the logical state of this object. struct SmartPtr { int getCopies() const { return mCopiesMade; } }ptr1; ... int var = ptr.getCopies(); // returns mCopiesMade and is specified that to not modify objects state. How is this performed in Java?

    Read the article

  • RESTful API design - should a PUT return related data?

    - by alexmcroberts
    I have an API which allows a user to update their system status; and a separate call to retrieve system status updates from other users. Would it make sense to unify them under a PUT request where a user would request a PUT update with their own status update, and they would receive the status updates of other users? My solution would allow the PUT request to call the GET request method internally. The reason behind this is that when a user updates their system status they should be informed of other users status immediately, and I don't feel that having 2 seperate requests is necessary - and should be optional. I intend to keep the GET request for other users status as a status update for a user is not necessarily required in order to retrieve other users status', but once they update their own status is it vital that they get information about other users.

    Read the article

  • would a composite design pattern be useful for group membership?

    - by changokun
    I'm trying to think about the best way to handle group memberships on a website. People sign up and select checkboxes in a list of interests. Every week we send out interest-themed emails to those members that indicated that interest. however i store the information in the database, while i am working with the lists and generating lists of email addresses or manipulating group memberships, the composite design pattern looked interesting. it would be easy to populate the group, then do some aggregating functions that say... generate the list of email addresses based on the interests. but i'm not sure i'm seeing any other advantages. i do need something scalable, and flexible. thoughts?

    Read the article

  • Lightweight, dynamic, fully JavaScript web UI library recommendations

    - by Matt Greer
    I am looking for recommendations for a lightweight, dynamic, fully JavaScript UI library for websites. Doesn't have to be amazing visually, the end result is for simple demos I create. What I want can be summed up as "Ext-like, but not GPL'ed, and a much smaller footprint". I want to be able to construct UIs dynamically and fully through code. My need for this is currently driven by this particle designer. Depending on what query parameters you give it, the UI components change, example 1, example2. Currently this is written in Ext, but Ext's license and footprint are turn offs for me. I like UKI a lot, but it's not very good for dynamically building UIs since everything is absolutely positioned. Extending Uki to support that is something I am considering. Ideally the library would let me make UIs with a pattern along the lines of: var container = new SomeUI.Container(); container.add(new SomeUI.Label('Color Components')); container.add(new SomeUI.NumberField('R')); container.add(new SomeUI.NumberField('G')); container.add(new SomeUI.NumberField('B')); container.add(new SomeUI.CheckBox('Enable Alpha')); container.renderTo(someDiv);

    Read the article

  • Mentioning a price for a service behind a free app in App Store

    - by David
    We are making a business service and have created an app to be used as a front-end. The app is free, but the service is not. Due to Apple taking 30% of in-app purchases, our service cannot be bought as an in-app purchase. My question is: Could Apple choose to throw out our app if we mention the price of the service in the description of our app in iTunes or in a help-text in the app? It seems unreasonable that this would cause problems, but the potential consequences to our business could be terrible so I want to make sure.

    Read the article

  • Lubuntu 12.10: Icon Display Problems

    - by SlcBullseye
    First off, I would like to let you know that I am new to Linux. I finally decided to give it a try and my first project was installing Lubuntu on an old PC and using it for a media server for my PS3. So, one thing that I noticed right away is that my icons for applications, files, folders, etc...are not visible. If I move my mouse over the name of the application or file (It only works if I move the mouse up from the bottom of the name) then the icon will appear, but if I move my mouse back over any other place on the file the icon will disappear again. Also, if I open a folder sometimes an icon or two will be displayed but the rest won't, and like I said before if I move my mouse over the top of the application or file the icon will disappear. Is there any way to fix this? Is this normal? Or could it be a problem with my hardware? I never had this issue when I was running the last OS (Windows XP). Any help would be greatly appreciated. Remember, I am new to Linux so a thorough explanation would be helpful. Also, if there are any tips, tricks, references, or recommendations any of you have to help me jump in and become more familiar with using Linux that would be great! I'm very interested in taking advantage of the power Linux has. Currently I am studying computer programming so maybe one day I will be able to develop my own Linux distribution.

    Read the article

  • Samba Server Make Multiple User Permissions Profiles

    - by Scriptonaut
    I have a Samba file server running, and I was wondering how I could make multiple user accounts that have different permissions. For example, at the moment I have a user, smbusr, but when I ssh to the share, I can read, write, execute, and even navigate out of the samba directory and do stuff on the actual computer. This is bad because I want to be able to give out my IP so friends/family can use the server, but I don't want them to be able to do just anything. I want to lock the user in the samba share directory(and all the sub directories). Eventually I would like several profiles such as (smbusr_R, smbusr_RW, smbguest_R, smbguest_RW). I also have a second question related to this, is SSH the best method to connect from other unix machines? What about VPN? Or simply mounting like this: mount -t ext3 -o user=username //ipaddr/share /mnt/mountpoint Is that mounting command above the same thing as a vpn? This is really confusing me. Thanks for the help guys, let me know if you need to see any files, or need anymore information.

    Read the article

  • Metacity malfunction preventing custom Gnome session from launching?

    - by QuietThud
    When I try to run Metacity in Ubuntu2D(12.04), I get the following message: alisa@ubuntu:~$ metacity Window manager warning: Screen 0 on display ":2.0" already has a window manager; try using the --replace option to replace the current window manager. I get the same message when running Compiz from the command line in 3D (it opens fine through the GUI (same thing for AWN)). I understand that these should be the default managers for the respective sessions. I'm trying to create a custom Gnome session using the following instructions: unity launcher-free session. Here is what I've put into my .session file: [GNOME Session] Name=Custom Unity2D Session RequiredComponents=gnome-settings-daemon; RequiredProviders=windowmanager;panel; DefaultProvider-windowmanager=metacity DefaultProvider-panel=unity-2d-panel FallbackSession=ubuntu-2d DesktopName=GNOME Since I'm having problems identifying my default, and the code refers to Metacity, I figured this may be relevant to my inability to load the custom session (it shows up on my login screen, but won't launch). I tried specifying Metacity as my default manager by adding exec metacity to the .xinitrc file, and I tried running metacity --replace, but neither worked. How do I determine my current default window manager, what should the default be, and how do I re-assign it? Also, please let me know if you think there may be other issues affecting my custom session. I am new to Linux, so list anything you think might be helpful. Thank you!

    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

  • bumblebee does not work with metacity and KWin, but works with compiz

    - by cpu2
    If I try to launch something with optirun under compiz, it works. If I try to launch something with optirun under KDE or metacity, it gives me: [ 247.384077] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) [ 247.384117] [ERROR]Aborting because fallback start is disabled. If it matters, I'm trying to launch Portal 2 with wine I have: Nvidia GeForce GT540M with optimus Acer Aspire Timeline X Intel core i5 and 3000 Integrated Graphics

    Read the article

  • Someone tell me why people writing GNU code use { like that?

    - by Deus Deceit
    I saw the rules on how to type code for UNITY project or GNU software in general. Why do they write code in such an ugly form? Is there a particular reason why they don't put brackets the way (from what I know) most people do? Why like this: for (i = 0; i < 5; i++) { //do something } and not like this: for (i = 0; i < 5; i++) { //Do something } or this: for(i = 0; i < 5l i++) { //Do Something } ???

    Read the article

  • Updating NVIDIA drivers from 295.40: What will happen to TwinView?

    - by Spice
    Right now, I have the NVIDIA proprietary drivers enabled without the Ubuntu-X repo, so the driver version is 295.40 (which is on the official Ubuntu repo) instead of the current 304.64 for my card, but I want to update to the current (using the Ubuntu-X repo). From what I heard, after 302.xx, NVIDIA started supporting RandR and removed TwinView. My question is, I have TwinView enabled for two monitors. If I update to the new version, what will happen to my TwinView settings? Will there be any extra work to do to migrate to the new driver?

    Read the article

  • What Language is unity written in?

    - by John
    What Language is Unity written in? Also, where can i get its source code? I have an idea for a windowing enviroment or shell (dont know what to call it). What i want to do is teach myself to create it. i like some of several ideas i have seen, but i want to redo all of them, also the concept of how a desktop works. I figured learning the language Unity is written in, and studying Unity and Gnomes code would be a good start. i am on Ubuntu 12.04 acer aspire 5920 3 gb ram 160 gb hard drive

    Read the article

  • Tired of windows. How Can Switch to Ubuntu ?

    - by Noah
    Im thinking strongly about starting to use Ubuntu. I am tired of windows and how every computer i get/have runs with it. I'm not real good with computers, but I'm good enough for my needs. Ive used Ubuntu in the past of a friends computer and always pretty impressed with what he could make it do, look like, and the fact that was able to run windows along with it. His computer never crashed or got viruses. That sounds like something i could get used to. Id like to here what some of you think.Also I keep reading about a live cd that allows you to run Ubuntu with windows to basically try it and not have to commit. If so how can I get that. i havent been able to find it anywhere.

    Read the article

  • Unable to install Skype on 12.10 64bit

    - by Nidhin
    I am receiving the following message while I am trying to install Skype: nidhin@ubuntu:~$ sudo apt-get update nidhin@ubuntu:~$ sudo apt-get install skype Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: skype : Depends: skype-bin but it is not installable E: Unable to correct problems, you have held broken packages How can I fix this?

    Read the article

  • Installing Ubuntu 12.10 on new computer with Windows 8

    - by rft183
    I recently purchased a new HP computer (P6-2330) with Windows 8. I have tried unsuccessfully to install Ubuntu 12.10 64bit alongside Windows 8. The computer is UEFI with Secure Boot enabled. I've tried following the instruction at https://help.ubuntu.com/community/UEFI. I am able to get the GRUB menu to show up. However, as soon as I press Enter on either Try Ubuntu or Install Ubuntu, the screen goes blank. Nothing works at all, not even the Num Lock or Caps Lock keys on the keyboard. I have to use the power button to restart the computer. Does anyone have any suggestions on how to get Ubuntu installed? To clarify, I have actually tried installing using both a USB stick and a DVD. The USB stick gave a blank screen, while the DVD gave the error message "Empty Security Header" after pressing Enter at the GRUB screen.

    Read the article

  • Webapps don't open correctly when using Chromium

    - by Alex
    I have just installed Ubuntu 12.10 completely fresh, the old version of Ubuntu was discarded or overwritten (or whatever you call it). I want to use the Ubuntu webapps with Chromium but I've had several problems. }The first problem is that Chromium won't ask me if I want to install a webapp if I go to a supported site (and I don't already have the webapp installed). The second problem is that when I install the webapp by visiting the site in Firefox, and then I try to open it in Chromium, Ubuntu will open a completely new Chromium icon and window in the Launcher, and the icon will be labeled "Untitled"; also there is no search bar in the new window, only the tab at the top. I've tried using several webapps with Firefox set as the default browser and they work as expected: once the webapp icon is clicked a Firefox window is opened on the Firefox launcher icon, and the window has 'new tab' button and search bar.

    Read the article

  • How do I fix a "Could not resolve hostname" Error in juju status?

    - by czajkowski
    I have my nodes in ready and one node in allocated to root stage , now when i bootstrap it gives success but when i do juju status it gives an error as below : juju bootstrap 2012-08-15 21:32:34,449 INFO Bootstrapping environment 'maas' (origin: distro type: maas)... 2012-08-15 21:32:34,636 INFO juju environment previously bootstrapped. 2012-08-15 21:32:34,637 INFO 'bootstrap' command finished successfully juju status 2012-08-15 21:33:17,833 INFO Connecting to environment... 2012-08-15 21:33:23,013 ERROR Invalid host for SSH forwarding: ssh: Could not resolve hostname node-000c29d63ebb.local: Name or service not known 2012-08-15 21:33:53,166 ERROR Invalid host for SSH forwarding: ssh: Could not resolve hostname node-000c29d63ebb.local: Name or service not known

    Read the article

  • Are libc versions tied to kernel versions?

    - by mathematician1975
    After reading the answers to my previous question I have come to the conclusion that an answer to the following question is what I was actually looking for: Does a particular version of the kernel require a particular version of libc to run properly? Basically my problem stems from building an application on my 12.04 ubuntu and trying to run it on 8.04. I have since learned from this and other stackexchange forums that it is backward compatibility of libc that causes these problems. Therefore what I am perhaps naively trying to do is build the same version of libc that exists on my target and then link against that on my host when I build the application. Then in an ideal world when I copy this to the host, having been linked to the "correct" libc it should work (in my head at least). I have been totally unable to find a way to install an older libc on my system, and wondered if each version is tightly bound to a kernel version, hence the above question.

    Read the article

  • How do I install OpenStack?

    - by csgeek
    Supposedly openstack can be installed easily under Ubuntu 12.04 LTS. I've installed 32 and 64bit versions of Ubuntu Server with the same behavior. sudo tasksel check OpenStack hit Okay then I get a tasksel: aptitude failed (100) I've seen: http://www.hastexo.com/resources/docs/installing-openstack-essex-20121-ubuntu-1204-precise-pangolin and https://github.com/EmilienM/doc-openstack documentation, but I was hoping that since it was an LTS released and it was an option in tasksel that I was simply overlooking something obvious and it's just a matter of selecting the right checkbox and hitting okay. Too much wishful thinking?

    Read the article

< Previous Page | 156 157 158 159 160 161 162 163 164 165 166 167  | Next Page >