Search Results

Search found 5221 results on 209 pages for 'low latency'.

Page 86/209 | < Previous Page | 82 83 84 85 86 87 88 89 90 91 92 93  | Next Page >

  • Best peer-to-peer game architecture

    - by Dejw
    Consider a setup where game clients: have quite small computing resources (mobile devices, smartphones) are all connected to a common router (LAN, hotspot etc) The users want to play a multiplayer game, without an external server. One solution is to host an authoritative server on one phone, which in this case would be also a client. Considering point 1 this solution is not acceptable, since the phone's computing resources are not sufficient. So, I want to design a peer-to-peer architecture that will distribute the game's simulation load among the clients. Because of point 2 the system needn't be complex with regards to optimization; the latency will be very low. Each client can be an authoritative source of data about himself and his immediate environment (for example bullets.) What would be the best approach to designing such an architecture? Are there any known examples of such a LAN-level peer-to-peer protocol? Notes: Some of the problems are addressed here, but the concepts listed there are too high-level for me. Security I know that not having one authoritative server is a security issue, but it is not relevant in this case as I'm willing to trust the clients. Edit: I forgot to mention: it will be a rather fast-paced game (a shooter). Also, I have already read about networking architectures at Gaffer on Games.

    Read the article

  • Android: Layouts and views or a single full screen custom view?

    - by futlib
    I'm developing an Android game, and I'm making it so that it can run on low end devices without GPU, so I'm using the 2D API. I have so far tried to use Android's mechanisms such as layouts and activities where possible, but I'm beginning to wonder if it's not easier to just create a single custom view (or one per activity) and do all the work there. Here's an example of how I currently do things: I'm using a layout to display the game's background as an image view and the square game area, which is a custom view, centered in the middle. What would you say? Should I continue to use layouts where possible or is it more common/reasonable to just use a large custom view? I'm thinking that this would probably also make it easier to port my code to other platforms.

    Read the article

  • Wubi downloaded and installed 64bit 12.10 on my 32bit netbook

    - by Troy
    I downloaded the Wubi installer on my atom N450 netbook. When I started up Ubuntu I got an error that read failed to change the mode of /ect/passwd- to 0600. Then while it booted it froze and several strange characters filled the screen. Finally it loaded it ran pretty slow, and I could connect to my router, but not to the internet. Ping 8.8.8.8 showed no server found. So I checked the about computer and it said I was running the 64 bit installation. Now I know that my computer has a low power 32 bit chip and even the Ubuntu iso download suggested a 32 bit installation. So I went to double check and see if I just missed the option for a 32 bit Wubi install and I did not. There was no option. Is there any way to download a 32 bit version of 12.10 through the Wubi?

    Read the article

  • What 2D game engines are there available for C++?

    - by dysoco
    I just realized there are not C++ 2D Game Engines that I know of. For example, something like Pygame in Python, or Slick2D in Java. We have the following: SDL - Too low level, not a Game Engine SFML - Handles more things than SDL and it's more modern, but still not a Game Engine. I like it, but I have found it a little bit buggy with the 2.0 version. Irrlitch - It's a Game Engine, but 3D focused. Ogre3D - Same as Irrlitch Allegro - This is a Game Engine, but it's C based, I'd like a modern C++ library. Monocle Engine - This looks like what I need... but sadly there is no Documentation, no community... nothing, all I have is the Github repo. So, do you know any ? I'd like to use C++, not C#, not Java: I'm just more comfortable with C++.

    Read the article

  • Need help installing the Intel VGA Driver [closed]

    - by Ary Catur Wicaksono
    Possible Duplicate: How do I install the Intel Graphics driver in my system? how to install intel VGA drive..?? I've been searching on google but did not see too I've been trying to ask the ubuntu forum in Indonesia. but they did not reply my post.. is there anything that can help me? *I am sorry my English is rather chaotic arthur@Chunx:~$ lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation 82G33/G31 Express Integrated Graphics Controller (rev 10) arthur@Chunx:~$ sudo lshw -c display [sudo] password for arthur: *-display description: VGA compatible controller product: 82G33/G31 Express Integrated Graphics Controller vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 10 width: 32 bits clock: 33MHz capabilities: msi pm vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:42 memory:fea80000-feafffff ioport:dc00(size=8) memory:e0000000-efffffff memory:fe900000-fe9fffff arthur@Chunx:~$ sudo apt-get install xserver-xorg-video-intel Sedang membaca daftar paket... Selesai Membangun pohon ketergantungan Membaca informasi yang tersedia... Selesai xserver-xorg-video-intel telah berada dalam versi terbaru. 0 dimutakhirkan, 0 baru terinstal, 0 akan dihapus dan 190 tidak akan dimutakhirkan.

    Read the article

  • Panda 4: Reducing #indexed pages. How much is enough?

    - by Noam
    I've been hit by panda 4 (40% decrease). I didn't see any change during panda 1-3. From what I've read it and when compared to my site, the change is probably due to the fact that I have over 30M pages indexed on Google, and they've starting seeing that as some sort of bad indication. Although I feel all of the pages have a unique value that Google should crawl, it seems I should make some tough calls and deduce the indexed pages according to some prioritization I will conduct. The question is what should be my target, or what factors should help me figure out a relevant target. How many pages should I try to reduce to? - 25M - 15M - 1M - 2000 Is it enough to add noindex to low priority pages or should I also remove all internal linking to them?

    Read the article

  • 5 Reasons to Upgrade to WebLogic Server 11g

    - by ruma.sanyal
    Do you want to optimize your middleware performance and manageability? Are you looking to modernize your IT infrastructure and lower your total cost of ownership? Don't miss this upcoming Webcast to learn five reasons why you should switch to Oracle WebLogic Server 11g. Mike Lehmann, Senior Director of Product Management for Oracle WebLogic Server, will share best practices and helpful tips for a fast, low-risk upgrade. You will also learn how your company can leverage the optimal support, rich capabilities, and extensive options in Oracle WebLogic Server 11g to: Diagnose and fix performance issues Improve data center utilization and density Shorten application release cycles Run applications in a shared services infrastructure Manage heterogeneous infrastructures Register for this complimentary Webcast.

    Read the article

  • What makes Instagram so valuable? [closed]

    - by ????
    If as in the FAQ, that topics about business (computer industry) is allowed here, I'd like to find out why Instagram can be so valuable, that it is acquired for $1 billion dollars (USD). To put it simply, isn't it just a photo enhancement app (such as making a photo vintage look), plus sharing those photos on Facebook? That's because in contrast, PlayFish had superb Facebook games, and many of them, and are so much more sophisticated (such as Restaurant City and Pet Society). And PlayFish was merely acquired for $400 million. Some companies such as RockYou, had the number one app on Facebook, but wasn't even acquired for a low price like $200 million. And now just a photo filter app and sharing photos, and it is a business considered to be worth a billion dollars. Why is that?

    Read the article

  • How to get the correct battery status?

    - by GUI Junkie
    At this moment, ever since I installed Ubuntu on this machine, the battery status says: not present. Looking at this answer, however, I find that /proc/acpi/battery/BAT1/info (sometimes its /proc/acpi/battery/BAT0/info, use tab complete to help) has the following info: present: yes design capacity: 4400 mAh last full capacity: 4400 mAh battery technology: rechargeable design voltage: 11100 mV design capacity warning: 300 mAh design capacity low: 132 mAh cycle count: 0 capacity granularity 1: 32 mAh capacity granularity 2: 32 mAh model number: BAT1 serial number: 11 battery type: 11 OEM info: 11 In accordance to this answer, I've checked the /proc/acpi/battery/BAT1/state file: present: yes capacity state: ok charging state: charged present rate: unknown remaining capacity: unknown present voltage: 10000 mV The acpi -b command returns: Battery 0: Unknown, 0%, rate information unavailable Any suggestions on getting the battery info updated?

    Read the article

  • Which features of user story management should an agile team look for?

    - by Sonja Dimitrijevic
    In my research study, I need to identify the key features of user story management tools that can be used to support agile development. So far, I identified the following general groups of features: User role modeling and personas support, User stories and epics management, Acceptance testing support, High-level release planning, Low-level iteration planning, and Progress tracking. Each group contains some specific features, e.g., support for story points, writing of acceptance tests, etc. Which features of user story management should an agile team look for especially when switching from tangible tools (index cards, pin boards and big visible charts) to a software tool? Are some features more important than the others? Many thanks in advance!

    Read the article

  • Mouse and keyboard stop working after suspend or screensaver lock

    - by LEo
    If I leave the computer and let it run into screensaver and lock the screen, the mouse left click won't go back to work. If I suspend the computer, the keyboard won't get back to work. It started after upgrading to Ubuntu 11.04. Any tips to solve this problem? The follwing lines I got on dmesg after the problem happened [30536.564415] psmouse.c: TouchPad at isa0060/serio1/input0 lost sync at byte 1 [30536.565725] psmouse.c: TouchPad at isa0060/serio1/input0 lost sync at byte 1 [30536.568466] psmouse.c: TouchPad at isa0060/serio1/input0 lost sync at byte 1 [30536.569790] psmouse.c: TouchPad at isa0060/serio1/input0 lost sync at byte 1 [30536.571123] psmouse.c: TouchPad at isa0060/serio1/input0 lost sync at byte 1 [30536.571126] psmouse.c: issuing reconnect request and that after I tried to plug again my USB mouse: [31570.040088] usb 6-1: USB disconnect, address 2 [31573.490095] usb 6-1: new low speed USB device using uhci_hcd and address 3 [31573.687376] input: Microsoft Basic Optical Mouse as /devices/pci0000:00/0000:00:1d.1/usb6/6-1/6-1:1.0/input/input12 [31573.687544] generic-usb 0003:045E:0084.0002: input,hidraw0: USB HID v1.10 Mouse [Microsoft Basic Optical Mouse] on usb-0000:00:1d.1-1/input0

    Read the article

  • How do I design a game framework for fast reaction to user input?

    - by Miro
    I've played some games at cca 30 fps and some of them had low reaction time - cca 0.1sec. I hadn't knew why. Now when I'm designing my framework for crossplatform game, I know why. Probably they've been preparing new frame during rendering the previous. RENDER 1 | RENDER 2 | RENDER 3 | RENDER 4 PREPARE 2 | PREPARE 3 | PREPARE 4 | PREPARE 5 I see first frame when second frame is being rendered and third frame being prepared. If I react in that time to 1st frame it will result in forth frame. So it takes 3/FPS seconds to appear results. In 30 fps it would be 100ms, what is quite bad. So i'm wondering what should I design my framework to response to user interaction quickly?

    Read the article

  • How can I stop LibreOffice from randomly crashing?

    - by Sam Mercier
    Libreoffice keeps on crashing randomly. It will do this when I am typing and when I am switching desktops or anything. There is no patter to it. I need some help here. Anyone had this problem or problem similar to it? Anyone have found a fix. Also it seems to happen especially prominently after my screensaver has started. I would say it happens about 97% of the time after that. This is an annoying bug and is keeping my productivity low.

    Read the article

  • Ubuntu 13.10 and Dell Inspiron 7520 SE (Intel 4000 and ATI radeon HD 7730m)

    - by pjgowtham
    I installed 13.10 and i have problems with my display. Everything else works fine. I cant control my brightness. I thought the graphics driver is the problem. So i went to software updates, switched to another driver (proprietary) and the Ubuntu screen went black and i wasn't able to boot either. I cant use my lap with such low brightness. Then i reinstalled 13.10 again, This time full hdd reset. Same problem occurred. I grabbed radeon hd7730m for Linux x64 from the amd site, installed it, and the screen went black with only the "x" cursor showing on the next boot. What should i need to do to make my brightness work and stabilize graphic cards as mine is switchable graphics type.

    Read the article

  • Trendnet tew-424ub wireless not working after update 12.10

    - by dwa
    I updated packages from the software manager and now my wireless won't work. It's a Trendnet tew-424ub iwconfig says lo no wireless extensions. eth0 no wireless extensions. sudo lshw -C network: description: Ethernet interface product: RTL8111/8168B PCI Express Gigabit Ethernet controller vendor: Realtek Semiconductor Co., Ltd. physical id: 0 bus info: pci@0000:02:00.0 logical name: eth0 version: 02 serial: 1c:6f:65:46:e9:d4 size: 100Mbit/s capacity: 1Gbit/s width: 64 bits clock: 33MHz capabilities: pm msi pciexpress msix vpd bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full ip=192.168.1.137 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s resources: irq:41 ioport:de00(size=256) memory:fdaff000-fdafffff memory:fdae0000-fdaeffff memory:fda00000-fda0ffff lsusb: Bus 003 Device 002: ID 0bc2:3332 Seagate RSS LLC Expansion Bus 003 Device 003: ID 05e3:0605 Genesys Logic, Inc. USB 2.0 Hub [ednet] Bus 003 Device 006: ID 0457:0163 Silicon Integrated Systems Corp. 802.11 Wireless LAN Adapter Bus 005 Device 002: ID 046d:c00c Logitech, Inc. Optical Wheel Mouse 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:0002 Linux Foundation 2.0 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 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 005: ID 0781:5530 SanDisk Corp. Cruzer Bus 010 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Help? I'm not sure where to start. I've been browsing forums and such for a long time and nothing I try is working.

    Read the article

  • Extension GLX missing...on a desktop PC

    - by Bart van Heukelom
    I just installed Ubuntu 12.10 on a new PC with an Nvidia GTX 560 graphics card, but after installing the Nvidia proprietary drivers (either -current or -current-updates), Unity won't start. When trying to start it manually I get the message "extension GLX missing". I've searched around and found results like this question which point out it's a problem with Nvidia Optimus laptops. However, I don't have this problem on a laptop, but on a desktop PC. lshw output for the graphics card: *-display description: VGA compatible controller product: GF114 [GeForce GTX 560 SE] vendor: NVIDIA Corporation physical id: 0 bus info: pci@0000:01:00.0 version: a1 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress vga_controller bus_master cap_list rom configuration: driver=nouveau latency=0 resources: irq:16 memory:f4000000-f5ffffff memory:e0000000-e7ffffff memory:e8000000-ebffffff ioport:e000(size=128) memory:f6000000-f607ffff and CPU: *-cpu description: CPU product: Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz vendor: Intel Corp. physical id: 40 bus info: cpu@0 version: Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz slot: SOCKET 0 size: 1600MHz capacity: 3800MHz width: 64 bits clock: 100MHz capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms cpufreq configuration: cores=4 enabledcores=4 threads=4

    Read the article

  • Recommended 2D Game Engine for prototyping

    - by Thomas Dufour
    What high-level game engine would you recommend to develop a 2D game prototype on windows? (or mac/linux if you wish) The kind of things I mean by "high-level" includes (but is definitely not limited to): not having to manage low-level stuff like screen buffers, graphics contexts having an API to draw geometric shapes well, I was going to omit it but I guess being based on an actual "high-level" language is a plus (automatic resource management and the existence a reasonable set of data structures in the standard library come to mind). It seems to me that Flash is the proverbial elephant in the room for this query but I'd very much like to see different answers based on all kinds of languages or SDKs.

    Read the article

  • how to launch grub menu for ubuntu guests in virtualbox?

    - by Ubuntuser
    I have ubuntu 12.04 alpha installed in virtualbox. When the virtual machine is started, it boots directly to the login screen without showing the grub menu. How can I get the grub menu to show up on start? Please note: the graphics is broken after recent updates, so i cannot login and make the changes. it is stuck at the screen "Ubuntu is running on low graphics mode" and the mouse and other keys do not work. [URL=http://img862.imageshack.us/i/screenshotat20120127171.png/][IMG]http://img862.imageshack.us/img862/9783/screenshotat20120127171.th.png[/IMG][/URL]

    Read the article

  • Why have mp3 files ripped with Lame always have 128 kbit/s irrespect of settings?

    - by Takkat
    Using Sound Juicer I am able to rip Cds very conveniently. I would like to rip them in about 256 kbit/s variable bitrate. To accomplish this I have defined the settings for mp3 in gnome-audio-profiles-properties as follows: audio/x-raw-int,rate=44100,channels=2 ! lame name=enc mode=0 vbr-quality=0 ! id3v2mux where vbr-quality=0 should give me a variable bitrate averaging 245 kbit/s. The resulting files however always say they are in 128 kbit/s. Is this only a tagging bug or is indeed the bitrate that low? How could I find out?

    Read the article

  • Sound not working after installing PCI video card and then removing it

    - by bakhshu
    I am running 11.10 on a HP/Compaq Presario sr1010z, and the video/audio was working fine with whatever was in the machine already. Then I installed a new video card (PCI/nVidia), which disabled the audio/video on the old one automatically. But that card didn't work out too well so I removed it. Now the video is back to normal, but the audio is gone. I have tried the following: 1. In BIOS, set audio to on/enable rather than Auto 2. Looked for hardware in System Settings Sound, but nothing shows up there 3. But when I run the sysinfo utility, I get the description of the audio controller When I do a 'sudo aplay -l', I get 'aplay: device_list:240: no soundcards found...' And then when I do a 'lspci -v | grep -A7 -i "audio"' I get the following: 00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller (rev a0) Subsystem: Hewlett-Packard Company Device 2a05 Flags: bus master, medium devsel, latency 32, IRQ 5 I/O ports at a000 [size=256] I/O ports at a400 [size=128] Capabilities: 00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f) (prog-if 10 [OHCI]) Any ideas on how to fix this? Thanks

    Read the article

  • Extremely Hybrid Game requirements

    - by tugrul büyükisik
    What system specifications would a game need if it was: Total players per planet: ~20000 Total players per team:~1M Total players per map(small volume of space or small surface over a planet): ~2000 Total players: ~10M(world has more players than this amount i think) Two of the players are commanders of opposite quadrants(from HUD of a strategy game). Lots of players use space-crafts as a captain(like 3d fps and rts). Many many players control consoles in those space-crafts as under command of captains.(fps ) Some players are still in stone-age trying to reinvent wheel in some planet. Players design and construct any vehicles they have. With good physics engine Has puzzles inside. Everyone get experience by doing stuff(RPG). Commerce, income or totally different resource-based group(like starcraft) Player classes(primitive: cunning and strong, wrapped: healthy, wealthy) Arcade top-down style firing with ships when people get bored very low chance of miraculous things.(mediclorians, wormholes, bugs) Different game-modes: persistent(living world), resetted periodically(a new chance for noobs), instant(pre-built space + hack&slash) I suspect this would need 128GB ram and 2048 cores.

    Read the article

  • Intel prévoit de lancer des smartphones tournant sous Windows 8, contrairement aux voeux de Microsoft

    Intel prévoit de lancer des smartphones tournant sous Windows 8, contrairement aux voeux de Microsoft Juste après avoir annoncé ses profits records pour 2010, Intel a donné quelques informations sur son futur, et une partie de celui-ci sera lié à Microsoft. En effet, Paul Otellini (CEO de la compagnie) a réagit au portage de la prochaine génération de Windows sur la plateforme ARM, action dans laquelle il perçoit des avantages pour sa propre société. "Le plus pour Intel, c'est qu'avec l'unification de leurs systèmes d'exploitation, nous avons désormais pour la première fois avoir un OS tactile pour tablettes compatible avec nos produits. Nous pourrons insérer nos processeurs low-power tournant sous Windows 8 dans des téléphone...

    Read the article

  • Restart and/or graphics problem in Ubuntu 12.04

    - by kara
    I having been using 12.04 for a couple of months now, with v. little problems. The other day I restarted my computer, and though I think it rebooted, the screen would be black. I could not even get a visual from a live cd. Finally, I was able to get it to load, but the resolution has been completely off. The computer thinks I have a laptop screen, when I actually have a ViewSonic VP2330wb, and it detects only two resolutions. And still, I have a problem with rebooting. If the screen locks after I leave it for a while, I can't get a visual back, and then when I force a shutdown, it takes 3 times for me to get a grub screen. Then I have to boot in recovery mode, and then finally in normal mode, but the screen is still always off. This is my video card: description: VGA compatible controller product: 2nd Generation Core Processor Family Integrated Graphics Controller vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 09 width: 64 bits clock: 33MHz capabilities: msi pm vga_controller bus_master cap_list configuration: latency=0 resources: memory:fe000000-fe3fffff memory:d0000000-dfffffff ioport:f000(size=64) I am a new ubuntu user, and am at my wits end. Any help would be greatly appreciated.

    Read the article

  • Can I delete Generic kernel if I use Generic

    - by user206049
    I currently can't update my release as there is not enough space on boot. I just have the one kernel version there, but seem to have both the Generic and Low Latency versions. uname -r just shows 3.8.0-32-lowlatency ls -lah /boot shows -rw-r--r-- 1 root root 899K Oct 2 00:00 abi-3.8.0-32-generic -rw-r--r-- 1 root root 899K Oct 7 09:27 abi-3.8.0-32-lowlatency -rw-r--r-- 1 root root 152K Oct 2 00:00 config-3.8.0-32-generic -rw-r--r-- 1 root root 152K Oct 7 09:27 config-3.8.0-32-lowlatency drwxr-xr-x 3 root root 2.0K Jan 1 1970 efi drwxr-xr-x 5 root root 1.0K Oct 22 10:05 grub -rw-r--r-- 1 root root 32M Oct 22 09:51 initrd.img-3.8.0-32-generic -rw-r--r-- 1 root root 32M Oct 22 10:05 initrd.img-3.8.0-32-lowlatency drwxr-xr-x 2 root root 12K Feb 25 2013 lost+found -rw-r--r-- 1 root root 173K Dec 5 2012 memtest86+.bin -rw-r--r-- 1 root root 175K Dec 5 2012 memtest86+_multiboot.bin -rw------- 1 root root 3.0M Oct 2 00:00 System.map-3.8.0-32-generic -rw------- 1 root root 3.0M Oct 7 09:27 System.map-3.8.0-32-lowlatency -rw------- 1 root root 5.2M Oct 2 00:00 vmlinuz-3.8.0-32-generic -rw------- 1 root root 5.2M Oct 7 09:27 vmlinuz-3.8.0-32-lowlatency So what can I do to allow me to update? Apparently I need 174m on boot and am 40m short.

    Read the article

  • Convert Java program to C

    - by imicrothinking
    I need a bit of guidance with writing a C program...a bit of quick background as to my level, I've programmed in Java previously, but this is my first time programming in C, and we've been tasked to translate a word count program from Java to C that consists of the following: Read a file from memory Count the words in the file For each occurrence of a unique word, keep a word counter variable Print out the top ten most frequent words and their corresponding occurrences Here's the source program in Java: package lab0; import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; public class WordCount { private ArrayList<WordCountNode> outputlist = null; public WordCount(){ this.outputlist = new ArrayList<WordCountNode>(); } /** * Read the file into memory. * * @param filename name of the file. * @return content of the file. * @throws Exception if the file is too large or other file related exception. */ public char[] readFile(String filename) throws Exception{ char [] result = null; File file = new File(filename); long size = file.length(); if (size > Integer.MAX_VALUE){ throw new Exception("File is too large"); } result = new char[(int)size]; FileReader reader = new FileReader(file); int len, offset = 0, size2read = (int)size; while(size2read > 0){ len = reader.read(result, offset, size2read); if(len == -1) break; size2read -= len; offset += len; } return result; } /** * Make article word by word. * * @param article the content of file to be counted. * @return string contains only letters and "'". */ private enum SPLIT_STATE {IN_WORD, NOT_IN_WORD}; /** * Go through article, find all the words and add to output list * with their count. * * @param article the content of the file to be counted. * @return words in the file and their counts. */ public ArrayList<WordCountNode> countWords(char[] article){ SPLIT_STATE state = SPLIT_STATE.NOT_IN_WORD; if(null == article) return null; char curr_ltr; int curr_start = 0; for(int i = 0; i < article.length; i++){ curr_ltr = Character.toUpperCase( article[i]); if(state == SPLIT_STATE.IN_WORD){ article[i] = curr_ltr; if ((curr_ltr < 'A' || curr_ltr > 'Z') && curr_ltr != '\'') { article[i] = ' '; //printf("\nthe word is %s\n\n",curr_start); if(i - curr_start < 0){ System.out.println("i = " + i + " curr_start = " + curr_start); } addWord(new String(article, curr_start, i-curr_start)); state = SPLIT_STATE.NOT_IN_WORD; } }else{ if (curr_ltr >= 'A' && curr_ltr <= 'Z') { curr_start = i; article[i] = curr_ltr; state = SPLIT_STATE.IN_WORD; } } } return outputlist; } /** * Add the word to output list. */ public void addWord(String word){ int pos = dobsearch(word); if(pos >= outputlist.size()){ outputlist.add(new WordCountNode(1L, word)); }else{ WordCountNode tmp = outputlist.get(pos); if(tmp.getWord().compareTo(word) == 0){ tmp.setCount(tmp.getCount() + 1); }else{ outputlist.add(pos, new WordCountNode(1L, word)); } } } /** * Search the output list and return the position to put word. * @param word is the word to be put into output list. * @return position in the output list to insert the word. */ public int dobsearch(String word){ int cmp, high = outputlist.size(), low = -1, next; // Binary search the array to find the key while (high - low > 1) { next = (high + low) / 2; // all in upper case cmp = word.compareTo((outputlist.get(next)).getWord()); if (cmp == 0) return next; else if (cmp < 0) high = next; else low = next; } return high; } public static void main(String args[]){ // handle input if (args.length == 0){ System.out.println("USAGE: WordCount <filename> [Top # of results to display]\n"); System.exit(1); } String filename = args[0]; int dispnum; try{ dispnum = Integer.parseInt(args[1]); }catch(Exception e){ dispnum = 10; } long start_time = Calendar.getInstance().getTimeInMillis(); WordCount wordcount = new WordCount(); System.out.println("Wordcount: Running..."); // read file char[] input = null; try { input = wordcount.readFile(filename); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); System.exit(1); } // count all word ArrayList<WordCountNode> result = wordcount.countWords(input); long end_time = Calendar.getInstance().getTimeInMillis(); System.out.println("wordcount: completed " + (end_time - start_time)/1000000 + "." + (end_time - start_time)%1000000 + "(s)"); System.out.println("wordsort: running ..."); start_time = Calendar.getInstance().getTimeInMillis(); Collections.sort(result); end_time = Calendar.getInstance().getTimeInMillis(); System.out.println("wordsort: completed " + (end_time - start_time)/1000000 + "." + (end_time - start_time)%1000000 + "(s)"); Collections.reverse(result); System.out.println("\nresults (TOP "+ dispnum +" from "+ result.size() +"):\n" ); // print out result String str ; for (int i = 0; i < result.size() && i < dispnum; i++){ if(result.get(i).getWord().length() > 15) str = result.get(i).getWord().substring(0, 14); else str = result.get(i).getWord(); System.out.println(str + " - " + result.get(i).getCount()); } } public class WordCountNode implements Comparable{ private String word; private long count; public WordCountNode(long count, String word){ this.count = count; this.word = word; } public String getWord() { return word; } public void setWord(String word) { this.word = word; } public long getCount() { return count; } public void setCount(long count) { this.count = count; } public int compareTo(Object arg0) { // TODO Auto-generated method stub WordCountNode obj = (WordCountNode)arg0; if( count - obj.getCount() < 0) return -1; else if( count - obj.getCount() == 0) return 0; else return 1; } } } Here's my attempt (so far) in C: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> // Read in a file FILE *readFile (char filename[]) { FILE *inputFile; inputFile = fopen (filename, "r"); if (inputFile == NULL) { printf ("File could not be opened.\n"); exit (EXIT_FAILURE); } return inputFile; } // Return number of words in an array int wordCount (FILE *filePointer, char filename[]) {//, char *words[]) { // count words int count = 0; char temp; while ((temp = getc(filePointer)) != EOF) { //printf ("%c", temp); if ((temp == ' ' || temp == '\n') && (temp != '\'')) count++; } count += 1; // counting method uses space AFTER last character in word - the last space // of the last character isn't counted - off by one error // close file fclose (filePointer); return count; } // Print out the frequencies of the 10 most frequent words in the console int main (int argc, char *argv[]) { /* Step 1: Read in file and check for errors */ FILE *filePointer; filePointer = readFile (argv[1]); /* Step 2: Do a word count to prep for array size */ int count = wordCount (filePointer, argv[1]); printf ("Number of words is: %i\n", count); /* Step 3: Create a 2D array to store words in the file */ // open file to reset marker to beginning of file filePointer = fopen (argv[1], "r"); // store words in character array (each element in array = consecutive word) char allWords[count][100]; // 100 is an arbitrary size - max length of word int i,j; char temp; for (i = 0; i < count; i++) { for (j = 0; j < 100; j++) { // labels are used with goto statements, not loops in C temp = getc(filePointer); if ((temp == ' ' || temp == '\n' || temp == EOF) && (temp != '\'') ) { allWords[i][j] = '\0'; break; } else { allWords[i][j] = temp; } printf ("%c", allWords[i][j]); } printf ("\n"); } // close file fclose (filePointer); /* Step 4: Use a simple selection sort algorithm to sort 2D char array */ // PStep 1: Compare two char arrays, and if // (a) c1 > c2, return 2 // (b) c1 == c2, return 1 // (c) c1 < c2, return 0 qsort(allWords, count, sizeof(char[][]), pstrcmp); /* int k = 0, l = 0, m = 0; char currentMax, comparedElement; int max; // the largest element in the current 2D array int elementToSort = 0; // elementToSort determines the element to swap with starting from the left // Outer a iterates through number of swaps needed for (k = 0; k < count - 1; k++) { // times of swaps max = k; // max element set to k // Inner b iterates through successive elements to fish out the largest element for (m = k + 1; m < count - k; m++) { currentMax = allWords[k][l]; comparedElement = allWords[m][l]; // Inner c iterates through successive chars to set the max vars to the largest for (l = 0; (currentMax != '\0' || comparedElement != '\0'); l++) { if (currentMax > comparedElement) break; else if (currentMax < comparedElement) { max = m; currentMax = allWords[m][l]; break; } else if (currentMax == comparedElement) continue; } } // After max (count and string) is determined, perform swap with temp variable char swapTemp[1][20]; int y = 0; do { swapTemp[0][y] = allWords[elementToSort][y]; allWords[elementToSort][y] = allWords[max][y]; allWords[max][y] = swapTemp[0][y]; } while (swapTemp[0][y++] != '\0'); elementToSort++; } */ int a, b; for (a = 0; a < count; a++) { for (b = 0; (temp = allWords[a][b]) != '\0'; b++) { printf ("%c", temp); } printf ("\n"); } // Copy rows to different array and print results /* char arrayCopy [count][20]; int ac, ad; char tempa; for (ac = 0; ac < count; ac++) { for (ad = 0; (tempa = allWords[ac][ad]) != '\0'; ad++) { arrayCopy[ac][ad] = tempa; printf("%c", arrayCopy[ac][ad]); } printf("\n"); } */ /* Step 5: Create two additional arrays: (a) One in which each element contains unique words from char array (b) One which holds the count for the corresponding word in the other array */ /* Step 6: Sort the count array in decreasing order, and print the corresponding array element as well as word count in the console */ return 0; } // Perform housekeeping tasks like freeing up memory and closing file I'm really stuck on the selection sort algorithm. I'm currently using 2D arrays to represent strings, and that worked out fine, but when it came to sorting, using three level nested loops didn't seem to work, I tried to use qsort instead, but I don't fully understand that function as well. Constructive feedback and criticism greatly welcome (...and needed)!

    Read the article

< Previous Page | 82 83 84 85 86 87 88 89 90 91 92 93  | Next Page >