Search Results

Search found 59959 results on 2399 pages for 'time complexity'.

Page 212/2399 | < Previous Page | 208 209 210 211 212 213 214 215 216 217 218 219  | Next Page >

  • Project Euler 19: (Iron)Python

    - by Ben Griswold
    In my attempt to learn (Iron)Python out in the open, here’s my solution for Project Euler Problem 19.  As always, any feedback is welcome. # Euler 19 # http://projecteuler.net/index.php?section=problems&id=19 # You are given the following information, but you may # prefer to do some research for yourself. # # - 1 Jan 1900 was a Monday. # - Thirty days has September, # April, June and November. # All the rest have thirty-one, # Saving February alone, # Which has twenty-eight, rain or shine. # And on leap years, twenty-nine. # - A leap year occurs on any year evenly divisible by 4, # but not on a century unless it is divisible by 400. # # How many Sundays fell on the first of the month during # the twentieth century (1 Jan 1901 to 31 Dec 2000)? import time start = time.time() import datetime sundays = 0 for y in range(1901,2001): for m in range(1,13): # monday == 0, sunday == 6 if datetime.datetime(y,m,1).weekday() == 6: sundays += 1 print sundays print "Elapsed Time:", (time.time() - start) * 1000, "millisecs" a=raw_input('Press return to continue')

    Read the article

  • D key not working on Ubuntu

    - by Jonathan
    For some inexplicable reason the capital d key on my Ubuntu system is no longer producing output. Hitting caps lock and then d produces a D. I've tried multiple keyboards and the issue is the same. There's nothing bound to Shift+d under System Preferences Keyboard Shortcuts. xev produces the following: shift + a KeyPress event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31268952, (130,-16), root:(1000,525), state 0x10, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31269376, (130,-16), root:(1000,525), state 0x11, keycode 38 (keysym 0x41, A), same_screen YES, XLookupString gives 1 bytes: (41) "A" XmbLookupString gives 1 bytes: (41) "A" XFilterEvent returns: False KeyRelease event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31269584, (130,-16), root:(1000,525), state 0x11, keycode 38 (keysym 0x41, A), same_screen YES, XLookupString gives 1 bytes: (41) "A" XFilterEvent returns: False KeyRelease event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31269608, (130,-16), root:(1000,525), state 0x11, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False shift + d KeyPress event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31102792, (115,-13), root:(985,528), state 0x10, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False FocusOut event, serial 36, synthetic NO, window 0x4c00001, mode NotifyGrab, detail NotifyAncestor FocusIn event, serial 36, synthetic NO, window 0x4c00001, mode NotifyUngrab, detail NotifyAncestor KeymapNotify event, serial 36, synthetic NO, window 0x0, keys: 2 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KeyRelease event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31103104, (115,-13), root:(985,528), state 0x11, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False

    Read the article

  • How do you keep from running into the same problems over and over?

    - by Stephen Furlani
    I keep running into the same problems. The problem is irrelevant, but the fact that I keep running into is completely frustrating. The problem only happens once every, 3-6 months or so as I stub out a new iteration of the project. I keep a journal every time, but I spend at least a day or two each iteration trying to get the issue resolved. How do you guys keep from making the same mistakes over and over? I've tried a journal but it apparently doesn't work for me. [Edit] A few more details about the issue: Each time I make a new project to hold the files, I import a particular library. The library is a C++ library which imports glew.h and glx.h GLX redefines BOOL and that's not kosher since BOOL is a keyword for ObjC. I had a fix the last time I went through this. I #ifndef the header in the library to exclude GLEW and GLX and everything worked hunky-dory. This time, however, I do the same thing, use the same #ifndef block but now it throws a bunch of errors. I go back to the old project, and it works. New project no-worky. It seems like it does this every time, and my solution to it is new each time for some reason. I know #defines and #includes are one of the trickiest areas of C++ (and cross-language with Objective-C), but I had this working and now it's not.

    Read the article

  • difference between Casini [IIS express] and VS Development server or Expression web

    - by anirudha
    MVC3 project can be run within Expression web and Visual studio as opened like a website not a project. they work same even if you open blogengine.net project in VS they take a time when you have more theme but expression web debug them in a second. well because theme design not matter for code. Expression web is a good because they save time for compile the code. even changes we make a little in design nothing in backend code.   i found a little difference between Casini and VS development server that if image putted in wrong way like <img src=”//img.png”/> instead of <img src=”/img.png”/> the error we make // instead of / that’s not worked in Expression web or Visual studio debugging but in Cassini it’s work fine.   Well i found that debug Blogengine.net in Expression web is a great thing because in VS they take a time like a minute to debug when you trying to debug first time. Expression Web save a time when we design themes within them and that’s much good option because web is also maked for design.   Well if you want to debug application faster then use casini but Expression web debugging is a good option when they take a long time to debug in Visual studio and EW debug them in a seconds.

    Read the article

  • Can't get Wireless to work! (Fujitsu siemens ESPRIMO Mobile u9200) Ubuntu 12.4

    - by Martin Oscarsson
    I can't get wireless to work on my computer. I have recently installed 12.04. Computer name: (Fujitsu siemens ESPRIMO Mobile u9200) Hardware button starts bluetooth - so can't start that way. Have searched the Internet for help but can't find any on my specific problem! State: connected (global) - Device: wlan0 ---------------------------------------------------------------- Type: 802.11 WiFi Driver: ath5k State: disconnected Default: no *-network beskrivning: Trådlöst gränssnitt produkt: AR242x / AR542x Wireless Network Adapter (PCI-Express) tillverkare: Atheros Communications Inc. *-network beskrivning: Ethernet interface produkt: 88E8055 PCI-E Gigabit Ethernet Controller tillverkare: Marvell Technology Group Ltd. HERE IS ALL THE NETWORK INFO: ellika@ellikas:~$ ifconfig eth0 Link encap:Ethernet HWaddr 00:1e:33:00:96:9a inet addr:192.168.1.26 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::21e:33ff:fe00:969a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:13778 errors:0 dropped:0 overruns:0 frame:0 TX packets:9510 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14022669 (14.0 MB) TX bytes:1001621 (1.0 MB) Interrupt:17 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1542 errors:0 dropped:0 overruns:0 frame:0 TX packets:1542 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:125040 (125.0 KB) TX bytes:125040 (125.0 KB) ellika@ellikas:~$ sudo ifconfig [sudo] password for ellika: eth0 Link encap:Ethernet HWaddr 00:1e:33:00:96:9a inet addr:192.168.1.26 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::21e:33ff:fe00:969a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:13801 errors:0 dropped:0 overruns:0 frame:0 TX packets:9528 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14024965 (14.0 MB) TX bytes:1002836 (1.0 MB) Interrupt:17 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1542 errors:0 dropped:0 overruns:0 frame:0 TX packets:1542 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:125040 (125.0 KB) TX bytes:125040 (125.0 KB) ellika@ellikas:~$ sudo ifconfig wlan0 up SIOCSIFFLAGS: Operationen inte möjlig p.g.a. RF-kill ellika@ellikas:~$ phy0 Wireless LAN phy0: command not found ellika@ellikas:~$ rfkill Usage: rfkill [options] command Options: --version show version (0.4-1ubuntu2 (Ubuntu)) Commands: help event list [IDENTIFIER] block IDENTIFIER unblock IDENTIFIER where IDENTIFIER is the index no. of an rfkill switch or one of: <idx> all wifi wlan bluetooth uwb ultrawideband wimax wwan gps fm ellika@ellikas:~$ sudo rf-kill unblock all sudo: rf-kill: kommandot hittades inte ellika@ellikas:~$ sudo rfkill unblock all ellika@ellikas:~$ sedan sudo ifconfig wlan0 sedan: command not found ellika@ellikas:~$ sudo ifconfig wlan0 wlan0 Link encap:Ethernet HWaddr 00:22:5f:3f:63:76 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) ellika@ellikas:~$ ^C ellika@ellikas:~$ ^C ellika@ellikas:~$ sudo rfkill unblock all ellika@ellikas:~$ sudo ifconfig wlan0 up SIOCSIFFLAGS: Operationen inte möjlig p.g.a. RF-kill ellika@ellikas:~$ sudo rfkill unblock all ellika@ellikas:~$ sudo rfkill list 0: phy0: Wireless LAN Soft blocked: no Hard blocked: yes ellika@ellikas:~$ sudo rfkill unblock all ellika@ellikas:~$ echo -e "sudo lshw --class network:\n\n$(sudo lshw -c network)\n\nlspci -nnn | grep Ethernet:\n\n$(lspci -nnn | grep Ethernet)\n\nlsusb:\n\n$(lsusb)\n\niwlist wlan0 scanning:\n\n$(iwlist wlan0 scanning)\n\nrfkill list:\n\n$(rfkill list)\n\nping -c 5 google.com:\n\n$(ping -c 5 google.com)\n\nhost google.com 8.8.8.8:\n\n$(host google.com 8.8.8.8)\n\nlsb_release -a:\n\n$(lsb_release -a)\n\nuname -a:\n\n$(uname -a)" ^[[C^[[C^[[C^[[C^[[C^[[B wlan0 Failed to read scan data : Network is down No LSB modules are available. sudo lshw --class network: *-network beskrivning: Ethernet interface produkt: 88E8055 PCI-E Gigabit Ethernet Controller tillverkare: Marvell Technology Group Ltd. physical id: 0 bus info: pci@0000:04:00.0 logiskt namn: eth0 version: 14 serienummer: 00:1e:33:00:96:9a storlek: 100Mbit/s kapacitet: 1Gbit/s bredd: 64 bits klocka: 33MHz förmågor: pm vpd msi pciexpress bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation konfiguration: autonegotiation=on broadcast=yes driver=sky2 driverversion=1.30 duplex=full firmware=N/A ip=192.168.1.26 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s resurser: irq:44 memory:f8000000-f8003fff ioport:3000(storlek=256) memory:f2000000-f201ffff *-network INAKTIVERAD beskrivning: Trådlöst gränssnitt produkt: AR242x / AR542x Wireless Network Adapter (PCI-Express) tillverkare: Atheros Communications Inc. physical id: 0 bus info: pci@0000:06:00.0 logiskt namn: wlan0 version: 04 serienummer: 00:22:5f:3f:63:76 bredd: 64 bits klocka: 33MHz förmågor: pm msi pciexpress msix bus_master cap_list ethernet physical wireless konfiguration: broadcast=yes driver=ath5k driverversion=3.2.0-30-generic-pae firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11bg resurser: irq:18 memory:fa000000-fa00ffff lspci -nnn | grep Ethernet: 04:00.0 Ethernet controller [0200]: Marvell Technology Group Ltd. 88E8055 PCI-E Gigabit Ethernet Controller [11ab:4363] (rev 14) 06:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR242x / AR542x Wireless Network Adapter (PCI-Express) [168c:001c] (rev 04) lsusb: Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 002: ID 05e3:0715 Genesys Logic, Inc. USB 2.0 microSD Reader Bus 001 Device 003: ID 05c8:0103 Cheng Uei Precision Industry Co., Ltd (Foxlink) FO13FF-65 PC-CAM iwlist wlan0 scanning: rfkill list: 0: phy0: Wireless LAN Soft blocked: no Hard blocked: yes ping -c 5 google.com: PING google.com (173.194.32.34) 56(84) bytes of data. 64 bytes from arn06s02-in-f2.1e100.net (173.194.32.34): icmp_req=1 ttl=55 time=10.6 ms 64 bytes from arn06s02-in-f2.1e100.net (173.194.32.34): icmp_req=2 ttl=55 time=10.5 ms 64 bytes from arn06s02-in-f2.1e100.net (173.194.32.34): icmp_req=3 ttl=55 time=10.4 ms 64 bytes from arn06s02-in-f2.1e100.net (173.194.32.34): icmp_req=4 ttl=55 time=10.4 ms 64 bytes from arn06s02-in-f2.1e100.net (173.194.32.34): icmp_req=5 ttl=55 time=10.4 ms --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 10.451/10.517/10.631/0.062 ms host google.com 8.8.8.8: Using domain server: Name: 8.8.8.8 Address: 8.8.8.8#53 Aliases: google.com has address 173.194.32.36 google.com has address 173.194.32.38 google.com has address 173.194.32.41 google.com has address 173.194.32.37 google.com has address 173.194.32.35 google.com has address 173.194.32.39 google.com has address 173.194.32.33 google.com has address 173.194.32.34 google.com has address 173.194.32.46 google.com has address 173.194.32.32 google.com has address 173.194.32.40 google.com has IPv6 address 2a00:1450:400f:801::100e google.com mail is handled by 40 alt3.aspmx.l.google.com. google.com mail is handled by 20 alt1.aspmx.l.google.com. google.com mail is handled by 30 alt2.aspmx.l.google.com. google.com mail is handled by 50 alt4.aspmx.l.google.com. google.com mail is handled by 10 aspmx.l.google.com. lsb_release -a: Distributor ID: Ubuntu Description: Ubuntu 12.04.1 LTS Release: 12.04 Codename: precise uname -a: Linux ellikas 3.2.0-30-generic-pae #48-Ubuntu SMP Fri Aug 24 17:14:09 UTC 2012 i686 i686 i386 GNU/Linux ellika@ellikas:~$ ellika@ellikas:~$ clear ellika@ellikas:~$ echo -e "sudo lshw --class network:\n\n$(sudo lshw -c network)\n\nlspci -nnn | grep Ethernet:\n\n$(lspci -nnn | grep Ethernet)\n\nlsusb:\n\n$(lsusb)\n\niwlist wlan0 scanning:\n\n$(iwlist wlan0 scanning)\n\nrfkill list:\n\n$(rfkill list)\n\nping -c 5 google.com:\n\n$(ping -c 5 google.com)\n\nhost google.com 8.8.8.8:\n\n$(host google.com 8.8.8.8)\n\nlsb_release -a:\n\n$(lsb_release -a)\n\nuname -a:\n\n$(uname -a)" wlan0 Failed to read scan data : Network is down No LSB modules are available. sudo lshw --class network: *-network beskrivning: Ethernet interface produkt: 88E8055 PCI-E Gigabit Ethernet Controller tillverkare: Marvell Technology Group Ltd. physical id: 0 bus info: pci@0000:04:00.0 logiskt namn: eth0 version: 14 serienummer: 00:1e:33:00:96:9a storlek: 100Mbit/s kapacitet: 1Gbit/s bredd: 64 bits klocka: 33MHz förmågor: pm vpd msi pciexpress bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation konfiguration: autonegotiation=on broadcast=yes driver=sky2 driverversion=1.30 duplex=full firmware=N/A ip=192.168.1.26 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s resurser: irq:44 memory:f8000000-f8003fff ioport:3000(storlek=256) memory:f2000000-f201ffff *-network INAKTIVERAD beskrivning: Trådlöst gränssnitt produkt: AR242x / AR542x Wireless Network Adapter (PCI-Express) tillverkare: Atheros Communications Inc. physical id: 0 bus info: pci@0000:06:00.0 logiskt namn: wlan0 version: 04 serienummer: 00:22:5f:3f:63:76 bredd: 64 bits klocka: 33MHz förmågor: pm msi pciexpress msix bus_master cap_list ethernet physical wireless konfiguration: broadcast=yes driver=ath5k driverversion=3.2.0-30-generic-pae firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11bg resurser: irq:18 memory:fa000000-fa00ffff lspci -nnn | grep Ethernet: 04:00.0 Ethernet controller [0200]: Marvell Technology Group Ltd. 88E8055 PCI-E Gigabit Ethernet Controller [11ab:4363] (rev 14) 06:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR242x / AR542x Wireless Network Adapter (PCI-Express) [168c:001c] (rev 04) lsusb: Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 002: ID 05e3:0715 Genesys Logic, Inc. USB 2.0 microSD Reader Bus 001 Device 003: ID 05c8:0103 Cheng Uei Precision Industry Co., Ltd (Foxlink) FO13FF-65 PC-CAM iwlist wlan0 scanning: rfkill list: 0: phy0: Wireless LAN Soft blocked: no Hard blocked: yes ping -c 5 google.com: PING google.com (173.194.32.34) 56(84) bytes of data. 64 bytes from arn06s02-in-f2.1e100.net (173.194.32.34): icmp_req=1 ttl=55 time=10.6 ms 64 bytes from arn06s02-in-f2.1e100.net (173.194.32.34): icmp_req=2 ttl=55 time=10.5 ms 64 bytes from arn06s02-in-f2.1e100.net (173.194.32.34): icmp_req=3 ttl=55 time=10.4 ms 64 bytes from arn06s02-in-f2.1e100.net (173.194.32.34): icmp_req=4 ttl=55 time=10.4 ms 64 bytes from arn06s02-in-f2.1e100.net (173.194.32.34): icmp_req=5 ttl=55 time=10.5 ms --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 10.476/10.522/10.602/0.045 ms host google.com 8.8.8.8: Using domain server: Name: 8.8.8.8 Address: 8.8.8.8#53 Aliases: google.com has address 173.194.32.36 google.com has address 173.194.32.38 google.com has address 173.194.32.41 google.com has address 173.194.32.37 google.com has address 173.194.32.35 google.com has address 173.194.32.39 google.com has address 173.194.32.33 google.com has address 173.194.32.34 google.com has address 173.194.32.46 google.com has address 173.194.32.32 google.com has address 173.194.32.40 google.com has IPv6 address 2a00:1450:400f:801::100e google.com mail is handled by 40 alt3.aspmx.l.google.com. google.com mail is handled by 20 alt1.aspmx.l.google.com. google.com mail is handled by 30 alt2.aspmx.l.google.com. google.com mail is handled by 50 alt4.aspmx.l.google.com. google.com mail is handled by 10 aspmx.l.google.com. lsb_release -a: Distributor ID: Ubuntu Description: Ubuntu 12.04.1 LTS Release: 12.04 Codename: precise uname -a: Linux ellikas 3.2.0-30-generic-pae #48-Ubuntu SMP Fri Aug 24 17:14:09 UTC 2012 i686 i686 i386 GNU/Linux

    Read the article

  • Choosing Technology To Include In Software Design

    How many of us have been forced to select one technology over another when designing a new system? What factors do we and should we consider? How can we ensure the correct business decision is made? When faced with this type of decision it is important to gather as much information possible regarding each technology being considered as well as the project itself. Additionally, I tend to delay my decision about the technology until it is ultimately necessary to be made. The reason why I tend to delay such an important design decision is due to the fact that as the project progresses requirements and other factors can alter a decision for selecting the best technology for a project. Important factors to consider when making technology decisions: Time to Implement and Maintain Total Cost of Technology (including Implementation and maintenance) Adaptability of Technology Implementation Team’s Skill Sets Complexity of Technology (including Implementation and maintenance) orecasted Return On Investment (ROI) Forecasted Profit on Investment (POI) Of the factors to consider the ROI and POI weigh the heaviest because the take in to consideration the other factors when calculating the profitability and return on investments.For a real world example let us consider developing a web based lead management system for a new company. This system can either be hosted on Microsoft Windows based web server or on a Linux based web server. Important Factors for this Example Implementation Team’s Skill Sets Member 1  Skill Set: Classic ASP, ASP.Net, and MS SQL Server Experience: 10 years Member 2  Skill Set: PHP, MySQL, Photoshop and MS SQL Server Experience: 3 years Member 3  Skill Set: C++, VB6, ASP.Net, and MS SQL Server Experience: 12 years Total Cost of Technology (including Implementation and maintenance) Linux Initial Year: $5,000 (Random Value) Additional Years: $3,000 (Random Value) Windows Initial Year: $10,000 (Random Value) Additional Years: $3,000 (Random Value) Complexity of Technology Linux Large Learning Curve with user driven documentation Estimated learning cost: $30,000 Windows Minimal based on Teams skills with Microsoft based documentation Estimated learning cost: $5,000 ROI Linux Total Cost Initial Total Cost: $35,000 Additional Cost $3,000 per year Windows Total Cost Initial Total Cost: $15,000 Additional Cost $3,000 per year Based on the hypothetical numbers it would make more sense to select windows based web server because the initial investment of the technology is much lower initially compared to the Linux based web server.

    Read the article

  • LUKS no longer accepts my my passphrase

    - by Two Spirit
    I created a 4 drive RAID5 setup using mdadm and upgrading from 2TB drives to the new Hitachi 7200RPM 4TB drives. I can initially open my luks partition, but later can no longer access it. I can no longer access my LUKS partition even tho I have the right passphrases. It was working and then at an unknown point in time loose access to LUKS. I've used the same procedures for upgrading from 500G to 1TB to 1.5TB to 2TB. After the first time this happened a week ago, I thought maybe there was some corruption so I added a 2nd Key as a backup. After the second time the LUKS became unaccessible, none of the keys worked. I put LUKS on it using cryptsetup -c aes -s 256 -y luksFormat /dev/md0 # cryptsetup luksOpen /dev/md0 md0_crypt Enter LUKS passphrase: Enter LUKS passphrase: Enter LUKS passphrase: Command failed: No key available with this passphrase. The first time this happened while I was upgrading to 4TB drives, I thought it was a fluke, and ultimately had to recover from backups. I went an used luksAddKey to add a 2nd key as a backup. It happened again and I tried both passphrases, and neither worked. The only thing I'm doing differently this time around is that I've upgraded to 4TB drives which use GPT instead of fdisk. The last time I had to even reboot the box was over 2 years ago. I'm using ubuntu-8.04-server with kernel 2.6.24-29 and upgraded to -2.6.24-31, but that didn't fix the problem.

    Read the article

  • Showing Egde Shaped Event Duration in StreamInsight using Debugger

    Whilst writing some courseware I wanted to be able to see the start and end times of Edge shaped events from within the debugger.  A quick recap on Edge events At the start of the event you do not know the end time and most probably cannot work it out or you should be using one of the other shapes. You enqueue an event (Start Edge) with the start time and payload of the event.  The end time of the event is set to infinity When you see the end edge come through, you enqueue another event (End Edge) with the previous start time and payload and restate the event’s end time.  This is the Retract Event All seems simple enough.  The problem is the debugger is a little shy about showing you what you need but you can get it to show you everything by also reading this article Here’s what I mean. Here is what the Event Debugger looks like by default when viewing 2 complete edge events.  Notice how all the end times are set to infinity   The above does not tell you for how long an event was valid.  I then add the “NewEndTime” column to the debugger output and there I can now see the duration of events.  You will see the Retract events (End Edge) have the same start time and payload as their respective start events (Start Edge)   You can follow the exact same logic when looking at Interval shape events.  They look a little different on the output adapter but using this article you can easily see what is happening.

    Read the article

  • An experiment: unlimited free trial

    - by Alex.Davies
    The .NET Demon team have just implemented an experiment that is quite a break from Red Gate's normal business model. Instead of the tool expiring after the trial period, it now continues to work, but with a new message that appears after the tool has saved you a certain amount of time. The rationale is that a user that stops using .NET Demon because the trial expired isn't doing anyone any good. We'd much rather people continue using it forever, as long as everyone that finds it useful and can afford it still pays for it. Hopefully the message appearing is annoying enough to achieve that, but not for people to uninstall it. It's true that many companies have tried it before with mixed results, but we have a secret weapon. The perfect nag message? The neat thing for .NET Demon is that we can easily measure exactly how much time .NET Demon has saved you, in terms of unnecessary project builds that Visual Studio would have done. When you press F5, the message shows you the time saved, and then makes you wait a shorter time before starting your application. Confronted with the truth about how amazing .NET Demon is, who can do anything but buy it? The real secret though, is that while you wait, .NET Demon gives you entertainment, in the form of a picture of a cute kitten. I've only had time to embed one kitten so far, but the eventual aim is for a random different kitten to appear each time. The psychological health benefits of a dose of kittens in the daily life of the developer are obvious. My only concern is that people will complain after paying for .NET Demon that the kittens are gone.

    Read the article

  • Another good free utility - Campwood Software Source Monitor

    - by TATWORTH
    The Campwoood Source Monitor at http://www.campwoodsw.com/sourcemonitor.html  says in its introduction "The freeware program SourceMonitor lets you see inside your software source code to find out how much code you have and to identify the relative complexity of your modules. For example, you can use SourceMonitor to identify the code that is most likely to contain defects and thus warrants formal review. SourceMonitor, written in C++, runs through your code at high speed, typically at least 10,000 lines of code per second." It is indeed very high-speed and is useful as it: Collects metrics in a fast, single pass through source files. Measures metrics for source code written in C++, C, C#, VB.NET, Java, Delphi, Visual Basic (VB6) or HTML. Includes method and function level metrics for C++, C, C#, VB.NET, Java, and Delphi. Offers Modified Complexity metric option. Saves metrics in checkpoints for comparison during software development projects. Displays and prints metrics in tables and charts, including Kiviat diagrams. Operates within a standard Windows GUI or inside your scripts using XML command files. Exports metrics to XML or CSV (comma-separated-value) files for further processing with other tools.

    Read the article

  • Tell me why I should bother using Linux if it's all about problems getting the OS to install or work properly? [closed]

    - by Vilhjalmur Magnussin
    Why should I spend day's trying to get Ubuntu to either install and/or work properly? I'm using an Acer Timeline X laptop and if I install 10.04 the wireless doesn't work, and if I try installing 11.04 it either won't install, or if it installs it's full of bugs causing my computer to freeze all the time. So please, I'm all open ears. Someone give me one or two good reasons to continue wasting time (in hope it eventually works) before I decide to focus my time on other things like productivity (using Windows like I've been doing successfully the last 10 years). This is the second time I give Ubuntu a try, the first time was in 2010 using Ubuntu Studio and Ubuntu Desktop, and it ended with me shifting back to Windows since I had spent more time getting everything to work than actually working while trying Ubuntu. I really don't understand why it needs to be like this. Why go on trying when all I see is forums full of discussions about problems which people are having difficulties fixing. Or maybe there is just one special type of computer which works well with Linux? Would very much like to know which computer that is. SO please, if it's not to much trouble I really want to here from someone who has something good to say about going through all this trouble just to get a working environment up and running since I already have a working environment up and running called Windows. Thanks, Villi.

    Read the article

  • Developing wheel reinventing tendencies into a skill as opposed to reluctantly learning wheel-finding skills? [duplicate]

    - by Korey Hinton
    This question already has an answer here: Is reinventing the wheel really all that bad? 20 answers I am more of a high-level wheel reinventor. I definitely prefer to make use of existing API features built into a language and popular third-party frameworks that I know can solve the problem, however when I have a particular problem that I feel capable of solving within a reasonable time I am very reluctant to find someone else's solution. Here are a few reasons why I reinvent: It takes time to learn a new API API restrictions might exist that I don't know about Avoiding re-work of unfamiliar code I am conflicted between doing what I know and shifting to a new technique I don't feel comfortable with. On one hand I feel like following my instincts and getting really good at solving problems, especially ones that I would never challenge myself with if all I did was try to find answers. And on the other hand I feel like I might be missing out on important skills like saving time by finding the right framework and expanding my knowledge by learning how to use a new framework. I guess my question comes down to this: My current attitude is to stick to the built-in API and APIs I know well* and to not spend my time searching github for a solution to a problem I know I can solve myself within a reasonable amount of time. Is that a reasonable balance for a successful programmer? *Obviously I will still look around for new frameworks that save time and solve/simplify difficult problems.

    Read the article

  • Collision planes confusion

    - by Jeffrey
    I'm following this tutorial by thecplusplusguy and in the linked video he explain that for example for the world basement and walls we need to create the actual rendered (shown to the player) walls and then duplicate them, place them in the same coordinates as the rendered walls and call them collision (by defining their material to collision). Then it defines in the Object loader function that those objects with material == collision are collision planes and should not be rendered but just used to check collision. Now I'm pretty confused. Why would we add this kind of complexity to a problem that can easily be solved by a simple loadObject(string plane_object, bool check_collision);: Creating only the walls object (by loading .obj file in plane_object) Define them also as collision planes whenever the check_collision is set to true In this case we have lowered the complexity of his method and make it more flexible and faster to develop (faster because we don't always have to make a copy for each plane and flexible because we don't hardcode the Object loader). The only case in which this method could not work is when we need hidden collision planes, and for that we could modify the loadObject() function like this: loadObject(string plane_object, bool check_collision = true, bool hide_object = false); Creating only the walls object (by loading .obj file in plane_object) Define them also as collision planes whenever the check_collision is set to true And add the ability to actually show the object or hide it based on hide_object. The final question is: am I right? What would the possible problem encountered with my solution versus his?

    Read the article

  • The Enterprise Side of JavaFX: Part Two

    - by Janice J. Heiss
    A new article, part of a three-part series, now up on the front page of otn/java, by Java Champion Adam Bien, titled “The Enterprise Side of JavaFX,” shows developers how to implement the LightView UI dashboard with JavaFX 2. Bien explains that “the RESTful back end of the LightView application comes with a rudimentary HTML page that is used to start/stop the monitoring service, set the snapshot interval, and activate/deactivate the GlassFish monitoring capabilities.”He explains that “the configuration view implemented in the org.lightview.view.Browser component is needed only to start or stop the monitoring process or set the monitoring interval.”Bien concludes his article with a general summary of the principles applied:“JavaFX encourages encapsulation without forcing you to build models for each visual component. With the availability of bindable properties, the boundary between the view and the model can be reduced to an expressive set of bindable properties. Wrapping JavaFX components with ordinary Java classes further reduces the complexity. Instead of dealing with low-level JavaFX mechanics all the time, you can build simple components and break down the complexity of the presentation logic into understandable pieces. CSS skinning further helps with the separation of the code that is needed for the implementation of the presentation logic and the visual appearance of the application on the screen. You can adjust significant portions of an application's look and feel directly in CSS files without touching the actual source code.”Check out the article here.

    Read the article

  • Where to implement storable items

    - by James Hay
    I'm creating a multiplayer online trading game. The things that are traded range from raw items to complex products. For example Steel is a raw item. Mechanical Assembly is a more complex item that requires 2x Steel and maybe 1x Rubber. Then Hydraulics is an item that contains 2x Mechanical Assemblies and 1x Electronics (which is another complex item). So and so forth. These items will be created by me, players can't create their own items, so it doesn't need to be able to handle arbitrary layers of complexity for items. If my example isn't clear, think Minecraft. You have wooden planks, which can be made into sticks. From there the sticks - combined with metals - can be made into tools. My game is nothing to do with minecraft or any sandbox building game, but it uses a similar progressive complexity to creating items that I want to have in my game. My question is basically, how do you store something like this assuming that I will want to add more items in the future? Do you store it in a database or in a seperate library that the game uses? EDIT None of the items actually "do" anything, they are simply there to either sell, purchase, or combine with other items to make a more complex item, which can then be sold, purchased or combined... you get the idea. The items themselves would not have any properties, but the instances of the items would. For example an item that one player has would have a certain "quality" and if they were selling it a certain "price". An instance of that same item that a different player had would need to have a different "quality" and "price" if they were selling it. I think the price part will not be required on an individual item because instead I would have a "sale" object which was for a price and contained certain items.

    Read the article

  • You wouldn&rsquo;t drink 9 year old milk would you?

    - by Jim Duffy
    This is an absolutely brilliant campaign to urge users that its time to move on from IE 6. I like how it puts it terms that everyone can understand and has probably experienced at one time or another. How many times have you opened the milk, took a sniff, and experienced that visceral reaction that accompanies catching a whiff of milk that has turned to the dark side of the force? I call it Darth Vader milk. :-) Of course I’m assuming that you haven’t used IE 6 for a long time now. It is our responsibility as information technology workers to communicate to our friends and family how lame using IE 6 is. Shame them into upgrading if necessary. I don’t care how you get through to them but get through. Tell them that only losers use IE 6. Tell them you’ll cut them out of the your will. Tell them they’re banned from your annual BBQ blowout. Tell them that [insert their favorite celebrity’s name here] thinks people using IE6 are losers.  :-) Seriously, IE6 sucks and blows at the same time and has got to go for a number of reasons including the security leaks that come with using it. Confidentially, I urge them to upgrade for purely selfish reasons. Because I am the first level of computer support for waaaaaay to many of my family members I always advocate they use a current browser (IE 8 or Firefox) and anti-virus software (AVG). Call me selfish but I’d rather not waste my time dealing with a virus or malware that could potentially slip through with IE6. Yes, I’m selfish with my time that way. :-) Have a day. :-|

    Read the article

  • Ubuntu 12.04 Freezes at Bootup

    - by Ryan Yu
    I have an Acer Aspire One Model AO722, that has a dual-boot configuration with Windows 7 Home Premium and Ubuntu 12.04. Processor: AMD C-50, 1.00GHz 2.00GB ram, 64-bit, AMD Radeon HD 6250 Graphics. I installed Ubuntu two days ago, and since then, loading it has been sporadic. Windows 7 still loads just fine, but Ubuntu will sometimes freeze. First time I booted Ubuntu up, it ran no problem. Worked with it for half an hour, then shut down the computer. The second time I booted it up, it froze after ten minutes when I was trying to set up Thunderbird. Third time, same thing. Fourth time, it froze about 5 minutes after bootup when I was trying to connect to my wifi. Fifth time, it ran no problems for about 5~ hours. Then, three consecutive times I've restarted (what is it, the 6th, 7th, and 8th times?) it has gotten to the login screen, I've entered my password, all the text on the page disappears as if its going to load my desktop, and it freezes. A minute ago when I booted Ubuntu up for the 9th time, it loaded the desktop fine. Who knows if it'll crash soon; probably, though. Any ideas?

    Read the article

  • Do you think Scala will be the dominant JVM langauge, ie be the next Java? [on hold]

    - by user1037729
    From what I've read about Scala do far I think it has some nice features but I do not think it should be "the next Java". It might however end up being the next Java (due to fashion rather than fact) but lets not hope it does not... To me adds a lot of complexity over Java which is a simple and scalable language. Scala Pattern matching allows you to perform some type/value checking in a more concise way, this is possible in Java, Scala's pattern matching has a limit to it, you cannot continuously match deeper and deeper down the object graph, so why not just stick to Java and use decent invariants? Scala provides tuples, easy enough to make in Java, create a static factory method and it all reads nicely too. Scala provides mixins, why not just use composition? I believe Scala implicit's are bad, they can lead to code becoming complex and hard to maintain, explicitness is good. Scala provides closures, well they will be in Java 8 too. Scala has lazy keyword for lazy instantiation, this is easy enough to do in Java by calling a getter which creates the instance when needed, no hidden magic here. Scala can be used with AKKA, well so can Java, there is an Java AKKA implementation. Scala offers addition functional features but these can all be created in Java, there are many frameworks with have implemented functional features in Java. All in all Scala seems to offer is addition complexity and thats it...

    Read the article

  • How to Assure an Effective Data Model

    As a general rule in my opinion the effectiveness of a data model can be directly related to the accuracy and complexity of a project’s requirements. For example there is no need to work on very detailed data models when the details surrounding a specific data model have not been defined or even clarified. Developing data models when the clarity of project requirements is limited tends to introduce designed issues because the proper details to create an effective data model are not even known. One way to avoid this issue is to create data models that correspond to the complexity of the existing project requirements so that when requirements are updated then new data models can be created based any new discoveries regarding requirements on a fine grain level.  This allows for data models to be composed of general entities to be created initially when a project’s requirements are very vague and then the entities are refined as new and more substantial requirements are defined or redefined. This promotes communication amongst all stakeholders within a project as they go through the process of defining and finalizing project requirements.In addition, here are some general tips that can be applied to projects in regards to data modeling.Initially model all data generally and slowly reactor the data model as new requirements and business constraints are applied to a project.Ensure that data modelers have the proper tools and training they need to design a data model accurately.Create a common location for all project documents so that everyone will be able to review a project’s data models along with any other project documentation.All data models should follow a clear naming schema that tells readers the intended purpose for the data and how it is going to be applied within a project.

    Read the article

  • Capital D key not working / producing output

    - by Jonathan
    For some inexplicable reason the capital d key on my Ubuntu system is no longer producing output. Hitting caps lock and then d produces a D. I've tried multiple keyboards and the issue is the same. There's nothing bound to Shift+d under System Preferences Keyboard Shortcuts. xev produces the following: shift + a KeyPress event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31268952, (130,-16), root:(1000,525), state 0x10, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31269376, (130,-16), root:(1000,525), state 0x11, keycode 38 (keysym 0x41, A), same_screen YES, XLookupString gives 1 bytes: (41) "A" XmbLookupString gives 1 bytes: (41) "A" XFilterEvent returns: False KeyRelease event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31269584, (130,-16), root:(1000,525), state 0x11, keycode 38 (keysym 0x41, A), same_screen YES, XLookupString gives 1 bytes: (41) "A" XFilterEvent returns: False KeyRelease event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31269608, (130,-16), root:(1000,525), state 0x11, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False shift + d KeyPress event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31102792, (115,-13), root:(985,528), state 0x10, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False FocusOut event, serial 36, synthetic NO, window 0x4c00001, mode NotifyGrab, detail NotifyAncestor FocusIn event, serial 36, synthetic NO, window 0x4c00001, mode NotifyUngrab, detail NotifyAncestor KeymapNotify event, serial 36, synthetic NO, window 0x0, keys: 2 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KeyRelease event, serial 36, synthetic NO, window 0x4c00001, root 0x27a, subw 0x0, time 31103104, (115,-13), root:(985,528), state 0x11, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False

    Read the article

  • An experiment: unlimited free trial

    - by Alex.Davies
    The .NET Demon team have just implemented an experiment that is quite a break from Red Gate's normal business model. Instead of the tool expiring after the trial period, it now continues to work, but with a new message that appears after the tool has saved you a certain amount of time. The rationale is that a user that stops using .NET Demon because the trial expired isn't doing anyone any good. We'd much rather people continue using it forever, as long as everyone that finds it useful and can afford it still pays for it. Hopefully the message appearing is annoying enough to achieve that, but not for people to uninstall it. It's true that many companies have tried it before with mixed results, but we have a secret weapon. The perfect nag message? The neat thing for .NET Demon is that we can easily measure exactly how much time .NET Demon has saved you, in terms of unnecessary project builds that Visual Studio would have done. When you press F5, the message shows you the time saved, and then makes you wait a shorter time before starting your application. Confronted with the truth about how amazing .NET Demon is, who can do anything but buy it? The real secret though, is that while you wait, .NET Demon gives you entertainment, in the form of a picture of a cute kitten. I've only had time to embed one kitten so far, but the eventual aim is for a random different kitten to appear each time. The psychological health benefits of a dose of kittens in the daily life of the developer are obvious. My only concern is that people will complain after paying for .NET Demon that the kittens are gone.

    Read the article

  • When I shoot from a gun while walking, the bullet is off the center, but when stand still it's fine

    - by Vlad1k
    I am making a small project in Unity, and whenever I walk with the gun and shoot at the same time, the bullets seem to curve and shoot off 2-3 CMs from the center. When I stand still this doesn't happen. This is my main Javascript code: @script RequireComponent(AudioSource) var projectile : Rigidbody; var speed = 500; var ammo = 30; var fireRate = 0.1; private var nextFire = 0.0; function Update() { if(Input.GetButton ("Fire1") && Time.time > nextFire) { if(ammo != 0) { nextFire = Time.time + fireRate; var clone = Instantiate(projectile, transform.position, transform.root.rotation); clone.velocity = transform.TransformDirection(Vector3 (0, 0, speed)); ammo = ammo - 1; audio.Play(); } else { } } } I assume that these two lines need to be tweaked: var clone = Instantiate(projectile, transform.position, transform.root.rotation); clone.velocity = transform.TransformDirection(Vector3 (0, 0, speed)); Thanks in advanced, and please remember that I just started Unity, and I might have a difficult time understanding some things. Thanks!

    Read the article

  • Basic is Best

    - by Eric A. Stephens
    Fellow foodies will recognize the recent movement towards "farm-to-table" restaurants. These venues attempt to simplify their menus and source ingredients as close to the source as possible. I had the opportunity to dine at such a restaurant the other evening. I was gushing about the appetizer to my server when she described the preparation for the item and then punctuated her comments with "basic is best". I reminded my fellow enterprise architect diners there was an architecture lesson in that statement. They rolled their eyes and chuckled. But they also knew I was right. I'm reminded of Frederick Brooks' book The Mythical Man Month and his latest The Design of Design. The former must read book talks about complexity. But he refrains from damning all complexity. The world we live in and enterprises we strive to transform with enterprise architecture are complicated organisms, much like the human body. But sometimes a simple solution is the best approach. Fewer applications (think: portfolio rationalization). Fewer components. Fewer lines of code. Whatever level of abstraction you are working at, less is more. I'm reminded of the enterprise architecture principle "Control Technical Diversity". At one firm I created pithy catch phrases for each principles. I named this one "Less is More". But perhaps another variation is what my server said the other night, "Basic is Best".

    Read the article

  • visit counts in advanced segments not consistant

    - by user671201
    My organization has recently noticed an issue when applying advanced segments to visit counts during different time ranges. With no advanced segments turned on, here are the visit counts for Oct 1st - Oct 4th during the time range Sept 8th - Oct 8th: Oct 1 - 7 Oct 2 - 7 Oct 3 - 8 Oct 4 - 5 Again, with no advanced segments turned on, here are the visit counts for Oct 1st - Oct 4th but I've changed the time range to Oct 1st - Oct 4th. As expected, the numbers are the exact same as above: Oct 1 - 7 Oct 2 - 7 Oct 3 - 8 Oct 4 - 5 Now, I turn on the "Non paid search traffic" advanced segment. Here are the visit counts for Oct 1st - Oct 4th during the time range Sept 8th - Oct 8th: Oct 1 - 0 Oct 2 - 0 Oct 3 - 0 Oct 4 - 2 Here is where it gets weird. I keep the advanced segment on, and change the time range to Oct 1st - Oct 4th. This is what I get for the exact same dates as above: Oct 1 - 4 Oct 2 - 2 Oct 3 - 6 Oct 4 - 5 We've found the same inconsistency in our other GA profiles that get much more traffic (the above numbers come from one of our specialized topic blogs), but the inconsistency is less pronounced where there are more visits. My question is: why are the visit counts different for different time ranges when advanced segments are turned on, but exactly the same when no advanced segments are applied? Is this a GA bug or am I missing something about how the advanced segments work?

    Read the article

  • Tail-recursive implementation of take-while

    - by Giorgio
    I am trying to write a tail-recursive implementation of the function take-while in Scheme (but this exercise can be done in another language as well). My first attempt was (define (take-while p xs) (if (or (null? xs) (not (p (car xs)))) '() (cons (car xs) (take-while p (cdr xs))))) which works correctly but is not tail-recursive. My next attempt was (define (take-while-tr p xs) (let loop ((acc '()) (ys xs)) (if (or (null? ys) (not (p (car ys)))) (reverse acc) (loop (cons (car ys) acc) (cdr ys))))) which is tail recursive but needs a call to reverse as a last step in order to return the result list in the proper order. I cannot come up with a solution that is tail-recursive, does not use reverse, only uses lists as data structure (using a functional data structure like a Haskell's sequence which allows to append elements is not an option), has complexity linear in the size of the prefix, or at least does not have quadratic complexity (thanks to delnan for pointing this out). Is there an alternative solution satisfying all the properties above? My intuition tells me that it is impossible to accumulate the prefix of a list in a tail-recursive fashion while maintaining the original order between the elements (i.e. without the need of using reverse to adjust the result) but I am not able to prove this. Note The solution using reverse satisfies conditions 1, 3, 4.

    Read the article

< Previous Page | 208 209 210 211 212 213 214 215 216 217 218 219  | Next Page >